{"version":3,"file":"scripts/chunk.a058492bc94d6e2683e7.js","mappings":"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","sources":["webpack://easyfy.hayppgroup/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://easyfy.hayppgroup/./node_modules/domready/ready.js","webpack://easyfy.hayppgroup/./node_modules/i18next-chained-backend/dist/esm/i18nextChainedBackend.js","webpack://easyfy.hayppgroup/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://easyfy.hayppgroup/./node_modules/i18next-localstorage-backend/dist/esm/i18nextLocalStorageBackend.js","webpack://easyfy.hayppgroup/./node_modules/keen-slider/keen-slider.es.js","webpack://easyfy.hayppgroup/./node_modules/lazysizes/lazysizes.js","webpack://easyfy.hayppgroup/./node_modules/mobile-detect/mobile-detect.js","webpack://easyfy.hayppgroup/./node_modules/ts-debounce/dist/src/index.esm.js","webpack://easyfy.hayppgroup/./node_modules/i18next-http-backend/esm/getFetch.cjs","webpack://easyfy.hayppgroup/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://easyfy.hayppgroup/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://easyfy.hayppgroup/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://easyfy.hayppgroup/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://easyfy.hayppgroup/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/adapters/xhr.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/adapters/adapters.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/InterceptorManager.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/dispatchRequest.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/mergeConfig.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/env/data.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/validator.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/Axios.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/cancel/CancelToken.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/axios.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/spread.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/cancel/CanceledError.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/cancel/isCancel.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/AxiosError.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/buildFullPath.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/settle.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/core/transformData.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/defaults/index.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/defaults/transitional.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/bind.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/buildURL.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/combineURLs.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/cookies.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/null.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/speedometer.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/helpers/toFormData.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/platform/browser/index.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://easyfy.hayppgroup/./node_modules/axios/lib/utils.js","webpack://easyfy.hayppgroup/./node_modules/i18next-http-backend/esm/utils.js","webpack://easyfy.hayppgroup/./node_modules/i18next-http-backend/esm/request.js","webpack://easyfy.hayppgroup/./node_modules/i18next-http-backend/esm/index.js","webpack://easyfy.hayppgroup/./node_modules/i18next/dist/esm/i18next.js"],"sourcesContent":["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","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\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}\nfunction createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n}\n\nfunction getDefaults() {\n return {\n handleEmptyResourcesAsFailed: true,\n cacheHitMode: 'none'\n // reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000\n };\n}\n\nfunction handleCorrectReadFunction(backend, language, namespace, resolver) {\n var fc = backend.read.bind(backend);\n if (fc.length === 2) {\n // no callback\n try {\n var r = fc(language, namespace);\n if (r && typeof r.then === 'function') {\n // promise\n r.then(function (data) {\n return resolver(null, data);\n })[\"catch\"](resolver);\n } else {\n // sync\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n\n // normal with callback\n fc(language, namespace, resolver);\n}\nvar Backend = /*#__PURE__*/function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nextOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.backends = [];\n this.type = 'backend';\n this.allOptions = i18nextOptions;\n this.init(services, options);\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 i18nextOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = i18nextOptions;\n this.options.backends && this.options.backends.forEach(function (b, i) {\n _this.backends[i] = _this.backends[i] || createClassOnDemand(b);\n _this.backends[i].init(services, _this.options.backendOptions && _this.options.backendOptions[i] || {}, i18nextOptions);\n });\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var _this2 = this;\n var bLen = this.backends.length;\n var loadPosition = function loadPosition(pos) {\n if (pos >= bLen) return callback(new Error('non of the backend loaded data', true)); // failed pass retry flag\n var isLastBackend = pos === bLen - 1;\n var lengthCheckAmount = _this2.options.handleEmptyResourcesAsFailed && !isLastBackend ? 0 : -1;\n var backend = _this2.backends[pos];\n if (backend.read) {\n handleCorrectReadFunction(backend, language, namespace, function (err, data) {\n if (!err && data && Object.keys(data).length > lengthCheckAmount) {\n callback(null, data, pos);\n savePosition(pos - 1, data); // save one in front\n if (backend.save && _this2.options.cacheHitMode && ['refresh', 'refreshAndUpdateStore'].indexOf(_this2.options.cacheHitMode) > -1) {\n var nextBackend = _this2.backends[pos + 1];\n if (nextBackend && nextBackend.read) {\n handleCorrectReadFunction(nextBackend, language, namespace, function (err, data) {\n if (err) return;\n if (!data) return;\n if (Object.keys(data).length <= lengthCheckAmount) return;\n savePosition(pos, data);\n if (_this2.options.cacheHitMode !== 'refreshAndUpdateStore') return;\n if (_this2.services && _this2.services.resourceStore) {\n _this2.services.resourceStore.addResourceBundle(language, namespace, data);\n }\n });\n }\n }\n } else {\n loadPosition(pos + 1); // try load from next\n }\n });\n } else {\n loadPosition(pos + 1); // try load from next\n }\n };\n\n var savePosition = function savePosition(pos, data) {\n if (pos < 0) return;\n var backend = _this2.backends[pos];\n if (backend.save) {\n backend.save(language, namespace, data);\n savePosition(pos - 1, data);\n } else {\n savePosition(pos - 1, data);\n }\n };\n loadPosition(0);\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var clb = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function () {};\n var opts = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n this.backends.forEach(function (b) {\n if (!b.create) return;\n var fc = b.create.bind(b);\n if (fc.length < 6) {\n // no callback\n try {\n var r;\n if (fc.length === 5) {\n // future callback-less api for i18next-locize-backend\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n // promise\n r.then(function (data) {\n return clb(null, data);\n })[\"catch\"](clb);\n } else {\n // sync\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n return;\n }\n\n // normal with callback\n fc(languages, namespace, key, fallbackValue, clb /* unused callback */, opts);\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this3 = 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; // avoid loading resources for cimode\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 _this3.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';\n\nexport { Backend as default };\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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}","import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n/* eslint-disable max-classes-per-file */\nvar Storage = /*#__PURE__*/function () {\n function Storage(options) {\n _classCallCheck(this, Storage);\n this.store = options.store;\n }\n _createClass(Storage, [{\n key: \"setItem\",\n value: function setItem(key, value) {\n if (this.store) {\n try {\n this.store.setItem(key, value);\n } catch (e) {\n // f.log('failed to set value for key \"' + key + '\" to localStorage.');\n }\n }\n }\n }, {\n key: \"getItem\",\n value: function getItem(key, value) {\n if (this.store) {\n try {\n return this.store.getItem(key, value);\n } catch (e) {\n // f.log('failed to get value for key \"' + key + '\" from localStorage.');\n }\n }\n return undefined;\n }\n }]);\n return Storage;\n}();\nfunction getDefaults() {\n var store = null;\n try {\n store = window.localStorage;\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.log('Failed to load local storage.', e);\n }\n }\n return {\n prefix: 'i18next_res_',\n expirationTime: 7 * 24 * 60 * 60 * 1000,\n defaultVersion: undefined,\n versions: {},\n store: store\n };\n}\nvar Cache = /*#__PURE__*/function () {\n function Cache(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Cache);\n this.init(services, options);\n this.type = 'backend';\n }\n _createClass(Cache, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), this.options), options);\n this.storage = new Storage(this.options);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var nowMS = new Date().getTime();\n if (!this.storage.store) {\n return callback(null, null);\n }\n var local = this.storage.getItem(\"\".concat(this.options.prefix).concat(language, \"-\").concat(namespace));\n if (local) {\n local = JSON.parse(local);\n var version = this.getVersion(language);\n if (\n // expiration field is mandatory, and should not be expired\n local.i18nStamp && local.i18nStamp + this.options.expirationTime > nowMS &&\n // there should be no language version set, or if it is, it should match the one in translation\n version === local.i18nVersion) {\n delete local.i18nVersion;\n delete local.i18nStamp;\n return callback(null, local);\n }\n }\n return callback(null, null);\n }\n }, {\n key: \"save\",\n value: function save(language, namespace, data) {\n if (this.storage.store) {\n data.i18nStamp = new Date().getTime();\n\n // language version (if set)\n var version = this.getVersion(language);\n if (version) {\n data.i18nVersion = version;\n }\n\n // save\n this.storage.setItem(\"\".concat(this.options.prefix).concat(language, \"-\").concat(namespace), JSON.stringify(data));\n }\n }\n }, {\n key: \"getVersion\",\n value: function getVersion(language) {\n return this.options.versions[language] || this.options.defaultVersion;\n }\n }]);\n return Cache;\n}();\nCache.type = 'backend';\n\nexport { Cache as default };\n","var n=function(){return n=Object.assign||function(n){for(var t,i=1,e=arguments.length;i0?1:0)-(n<0?1:0)||+n}function f(n){var t=n.getBoundingClientRect();return{height:e(t.height,n.offsetHeight),width:e(t.width,n.offsetWidth)}}function p(n,t,i,e){var r=n&&n[t];return null==r?i:e&&\"function\"==typeof r?r():r}function v(n){return Math.round(1e6*n)/1e6}function h(n){var t,i,e,r,a,o;function u(t){o||(o=t),s(!0);var a=t-o;a>e&&(a=e);var l=r[i];if(l[3]0?1:-1),{abs:u+i*s*a,origin:o,rel:u}}function I(n,t,i){var e;if(t||!S())return A(n,i);if(!D(n))return null;var r=z(null!=i?i:T),a=r.abs,o=n-r.rel,u=a+o;e=A(u);var c=A(u-s*l(o));return(null!==c&&Math.abs(c)6&&(w=w.slice(-6)),T=v(t);var e=H().abs;if(e!==M){var a=null!==M;M=e,a&&n.emit(\"slideChanged\")}}function H(t){var r=t?null:function(){if(s){var n=S(),t=n?(T%e+e)%e:T,i=(n?T%e:T)-u[0][2],r=0-(i<0&&n?e-Math.abs(i):i),c=0,d=z(T),f=d.abs,p=d.rel,v=u[p][2],y=u.map((function(t,i){var a=r+c;(a<0-t[0]||a>1)&&(a+=(Math.abs(a)>e-1&&n?e:0)*l(-a));var u=i-p,d=l(u),h=u+f;n&&(-1===d&&a>v&&(h+=s),1===d&&ab&&(a-=e));var m=a+t[0]+t[1],x=Math.max(a>=0&&m<=1?1:m<0||a>1?0:a<0?Math.min(1,(t[0]+a)/t[0]):(1-a)/t[0],0);return c+=t[0]+t[1],{abs:h,distance:o.rtl?-1*a+1-t[0]:a,portion:x,size:t[0]}}));return f=L(f),p=O(f),{abs:L(f),length:a,max:k,maxIdx:m,min:x,minIdx:h,position:T,progress:n?t/e:T/a,rel:p,slides:y,slidesLength:e}}}();return i.details=r,n.emit(\"detailsChanged\"),r}return i={absToRel:O,add:C,details:null,distToIdx:E,idxToDist:I,init:function(t){if(function(){if(o=n.options,u=(o.trackConfig||[]).map((function(n){return[p(n,\"size\",1),p(n,\"spacing\",0),p(n,\"origin\",0)]})),s=u.length){e=v(u.reduce((function(n,t){return n+t[0]+t[1]}),0));var t,i=s-1;a=v(e+u[0][2]-u[i][0]-u[i][2]-u[i][1]),c=u.reduce((function(n,i){if(!n)return[0];var e=u[n.length-1],r=n[n.length-1]+(e[0]+e[2])+e[1];return r-=i[2],n[n.length-1]>r&&(r=n[n.length-1]),r=v(r),n.push(r),(!t||t200||(l(e)!==l(t.distance)&&t.distance&&(t={distance:0,lastTimestamp:0,time:0}),t.time&&(t.distance+=e),t.lastTimestamp&&(t.time+=r-t.lastTimestamp),t.lastTimestamp=r),t}),{distance:0,lastTimestamp:0,time:0});return t.distance/t.time||0}}}function g(n){var t,i,e,r,a,o,u,s;function c(n){return 2*n}function f(n){return d(n,u,s)}function p(n){return 1-Math.pow(1-n,3)}function v(){return e?n.track.velocity():0}function h(){b();var t=\"free-snap\"===n.options.mode,i=n.track,e=v();r=l(e);var u=n.track.details,s=[];if(e||!t){var d=m(e),h=d.dist,g=d.dur;if(g=c(g),h*=r,t){var x=i.idxToDist(i.distToIdx(h),!0);x&&(h=x)}s.push({distance:h,duration:g,easing:p});var k=u.position,y=k+h;if(yo){var w=yo||u=M)return t;if(u0||u>T&&i<0)return t;var c=(uM&&x0||x===T&&i<0)&&s(t),g+=c,!b&&Math.abs(g*r)>5&&(b=!0),n.track.add(c),m=o,n.emit(\"dragged\")}}function z(t){!f&&n.track.details&&n.track.details.length&&(g=0,f=!0,b=!1,h=!0,v=t.id,A(t),m=D(t),n.emit(\"dragStarted\"))}function I(t){f&&v===t.idChanged&&(f=!1,n.emit(\"dragEnded\"))}function A(n){var t=L(),i=t?n.y:n.x,e=t?n.x:n.y,r=void 0!==x&&void 0!==k&&Math.abs(k-e)<=Math.abs(x-i);return x=i,k=e,r}function D(n){return L()?n.y:n.x}function L(){return n.options.vertical}function S(){r=n.size,a=L()?window.innerHeight:window.innerWidth;var t=n.track.details;t&&(M=t.min,T=t.max)}function O(n){b&&(s(n),u(n))}function _(){if(C.purge(),n.options.drag&&!n.options.disabled){var i;i=n.options.dragSpeed||1,p=\"function\"==typeof i?i:function(n){return n*i},e=n.options.rtl?-1:1,S(),t=n.container,function(){var n=\"data-keen-slider-clickable\";o(\"[\".concat(n,\"]:not([\").concat(n,\"=false])\"),t).map((function(n){C.add(n,\"dragstart\",s),C.add(n,\"mousedown\",s),C.add(n,\"touchstart\",s)}))}(),C.add(t,\"dragstart\",(function(n){u(n)})),C.add(t,\"click\",O,{capture:!0}),C.input(t,\"ksDragStart\",z),C.input(t,\"ksDrag\",E),C.input(t,\"ksDragEnd\",I),C.input(t,\"mousedown\",z),C.input(t,\"mousemove\",E),C.input(t,\"mouseleave\",I),C.input(t,\"mouseup\",I),C.input(t,\"touchstart\",z,{passive:!0}),C.input(t,\"touchmove\",E,{passive:!1}),C.input(t,\"touchend\",I),C.input(t,\"touchcancel\",I),C.add(window,\"wheel\",(function(n){f&&u(n)}));var r=\"data-keen-slider-scrollable\";o(\"[\".concat(r,\"]:not([\").concat(r,\"=false])\"),n.container).map((function(n){return function(n){var t;C.input(n,\"touchstart\",(function(n){t=D(n),w=!0,y=!0}),{passive:!0}),C.input(n,\"touchmove\",(function(i){var e=L(),r=e?n.scrollHeight-n.clientHeight:n.scrollWidth-n.clientWidth,a=t-D(i),o=e?n.scrollTop:n.scrollLeft,s=e&&\"scroll\"===n.style.overflowY||!e&&\"scroll\"===n.style.overflowX;if(t=D(i),(a<0&&o>0||a>0&&o=1||(n.origin=1-t-(d>1?0:1-d)),n}))}e.options.trackConfig=a}function E(){I();var n=e.size;e.options.disabled||n===u||(u=n,T())}function z(){E(),setTimeout(E,500),setTimeout(E,2e3)}function I(){var n=f(e.container);e.size=(e.options.vertical?n.height:n.width)||1}function A(){e.slides=o(e.options.selector,e.container)}e.container=(v=o(t,l||document)).length?v[0]:null,e.destroy=function(){h.purge(),e.emit(\"destroyed\"),m(!0)},e.prev=function(){e.moveToIdx(e.track.details.abs-1,!0)},e.next=function(){e.moveToIdx(e.track.details.abs+1,!0)},e.update=T,y(e.options)}}var y=function(n,i,e){try{return function(n,t){var i,e={};return i={emit:function(n){e[n]&&e[n].forEach((function(n){n(i)}));var t=i.options&&i.options[n];t&&t(i)},moveToIdx:function(n,t,e){var r=i.track.idxToDist(n,t);if(r){var a=i.options.defaultAnimation;i.animator.start([{distance:r,duration:p(e||a,\"duration\",500),easing:p(e||a,\"easing\",(function(n){return 1+--n*n*n*n*n}))}])}},on:function(n,t,i){void 0===i&&(i=!1),e[n]||(e[n]=[]);var r=e[n].indexOf(t);r>-1?i&&delete e[n][r]:i||e[n].push(t)},options:n},function(){if(i.track=m(i),i.animator=h(i),t)for(var n=0,e=t;n 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","// THIS FILE IS GENERATED - DO NOT EDIT!\n/*!mobile-detect v1.4.5 2021-03-13*/\n/*global module:false, define:false*/\n/*jshint latedef:false*/\n/*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/\n(function (define, undefined) {\ndefine(function () {\n 'use strict';\n\n var impl = {};\n\n impl.mobileDetectRules = {\n \"phones\": {\n \"iPhone\": \"\\\\biPhone\\\\b|\\\\biPod\\\\b\",\n \"BlackBerry\": \"BlackBerry|\\\\bBB10\\\\b|rim[0-9]+|\\\\b(BBA100|BBB100|BBD100|BBE100|BBF100|STH100)\\\\b-[0-9]+\",\n \"Pixel\": \"; \\\\bPixel\\\\b\",\n \"HTC\": \"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\\\bEVO\\\\b|T-Mobile G1|Z520m|Android [0-9.]+; Pixel\",\n \"Nexus\": \"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 5X|Nexus 6\",\n \"Dell\": \"Dell[;]? (Streak|Aero|Venue|Venue Pro|Flash|Smoke|Mini 3iX)|XCD28|XCD35|\\\\b001DL\\\\b|\\\\b101DL\\\\b|\\\\bGS01\\\\b\",\n \"Motorola\": \"Motorola|DROIDX|DROID BIONIC|\\\\bDroid\\\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\\\bMoto E\\\\b|XT1068|XT1092|XT1052\",\n \"Samsung\": \"\\\\bSamsung\\\\b|SM-G950F|SM-G955F|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C|SM-A310F|GT-I9190|SM-J500FN|SM-G903F|SM-J330F|SM-G610F|SM-G981B|SM-G892A|SM-A530F\",\n \"LG\": \"\\\\bLG\\\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323|M257)|LM-G710\",\n \"Sony\": \"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533|SOV34|601SO|F8332\",\n \"Asus\": \"Asus.*Galaxy|PadFone.*Mobile\",\n \"Xiaomi\": \"^(?!.*\\\\bx11\\\\b).*xiaomi.*$|POCOPHONE F1|MI 8|Redmi Note 9S|Redmi Note 5A Prime|N2G47H|M2001J2G|M2001J2I|M1805E10A|M2004J11G|M1902F1G|M2002J9G|M2004J19G|M2003J6A1G\",\n \"NokiaLumia\": \"Lumia [0-9]{3,4}\",\n \"Micromax\": \"Micromax.*\\\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\\\b\",\n \"Palm\": \"PalmSource|Palm\",\n \"Vertu\": \"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature\",\n \"Pantech\": \"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790\",\n \"Fly\": \"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250\",\n \"Wiko\": \"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM\",\n \"iMobile\": \"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)\",\n \"SimValley\": \"\\\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\\\b\",\n \"Wolfgang\": \"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q\",\n \"Alcatel\": \"Alcatel\",\n \"Nintendo\": \"Nintendo (3DS|Switch)\",\n \"Amoi\": \"Amoi\",\n \"INQ\": \"INQ\",\n \"OnePlus\": \"ONEPLUS\",\n \"GenericPhone\": \"Tapatalk|PDA;|SAGEM|\\\\bmmp\\\\b|pocket|\\\\bpsp\\\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\\\bwap\\\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser\"\n },\n \"tablets\": {\n \"iPad\": \"iPad|iPad.*Mobile\",\n \"NexusTablet\": \"Android.*Nexus[\\\\s]+(7|9|10)\",\n \"GoogleTablet\": \"Android.*Pixel C\",\n \"SamsungTablet\": \"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y?|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y|SM-T585|SM-T285|SM-T825|SM-W708|SM-T835|SM-T830|SM-T837V|SM-T720|SM-T510|SM-T387V|SM-P610|SM-T290|SM-T515|SM-T590|SM-T595|SM-T725|SM-T817P|SM-P585N0|SM-T395|SM-T295|SM-T865|SM-P610N|SM-P615|SM-T970|SM-T380|SM-T5950|SM-T905|SM-T231|SM-T500|SM-T860\",\n \"Kindle\": \"Kindle|Silk.*Accelerated|Android.*\\\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\\\b|Android.*Silk\\/[0-9.]+ like Chrome\\/[0-9.]+ (?!Mobile)\",\n \"SurfaceTablet\": \"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)\",\n \"HPTablet\": \"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10\",\n \"AsusTablet\": \"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\\\bK00F\\\\b|\\\\bK00C\\\\b|\\\\bK00E\\\\b|\\\\bK00L\\\\b|TX201LA|ME176C|ME102A|\\\\bM80TA\\\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\\\bME70C\\\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\\\bP027\\\\b|\\\\bP024\\\\b|\\\\bP00C\\\\b\",\n \"BlackBerryTablet\": \"PlayBook|RIM Tablet\",\n \"HTCtablet\": \"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410\",\n \"MotorolaTablet\": \"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617\",\n \"NookTablet\": \"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2\",\n \"AcerTablet\": \"Android.*; \\\\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\\\b|W3-810|\\\\bA3-A10\\\\b|\\\\bA3-A11\\\\b|\\\\bA3-A20\\\\b|\\\\bA3-A30|A3-A40\",\n \"ToshibaTablet\": \"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO\",\n \"LGTablet\": \"\\\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\\\b\",\n \"FujitsuTablet\": \"Android.*\\\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\\\b\",\n \"PrestigioTablet\": \"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002\",\n \"LenovoTablet\": \"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)|TB-X103F|TB-X304X|TB-X304F|TB-X304L|TB-X505F|TB-X505L|TB-X505X|TB-X605F|TB-X605L|TB-8703F|TB-8703X|TB-8703N|TB-8704N|TB-8704F|TB-8704X|TB-8704V|TB-7304F|TB-7304I|TB-7304X|Tab2A7-10F|Tab2A7-20F|TB2-X30L|YT3-X50L|YT3-X50F|YT3-X50M|YT-X705F|YT-X703F|YT-X703L|YT-X705L|YT-X705X|TB2-X30F|TB2-X30L|TB2-X30M|A2107A-F|A2107A-H|TB3-730F|TB3-730M|TB3-730X|TB-7504F|TB-7504X|TB-X704F|TB-X104F|TB3-X70F|TB-X705F|TB-8504F|TB3-X70L|TB3-710F|TB-X704L\",\n \"DellTablet\": \"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7\",\n \"YarvikTablet\": \"Android.*\\\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\\\b\",\n \"MedionTablet\": \"Android.*\\\\bOYO\\\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB\",\n \"ArnovaTablet\": \"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2\",\n \"IntensoTablet\": \"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004\",\n \"IRUTablet\": \"M702pro\",\n \"MegafonTablet\": \"MegaFon V9|\\\\bZTE V9\\\\b|Android.*\\\\bMT7A\\\\b\",\n \"EbodaTablet\": \"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)\",\n \"AllViewTablet\": \"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)\",\n \"ArchosTablet\": \"\\\\b(101G9|80G9|A101IT)\\\\b|Qilive 97R|Archos5|\\\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\\\b\",\n \"AinolTablet\": \"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark\",\n \"NokiaLumiaTablet\": \"Lumia 2520\",\n \"SonyTablet\": \"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP641|SGP612|SOT31|SGP771|SGP611|SGP612|SGP712\",\n \"PhilipsTablet\": \"\\\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\\\b\",\n \"CubeTablet\": \"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT\",\n \"CobyTablet\": \"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010\",\n \"MIDTablet\": \"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10\",\n \"MSITablet\": \"MSI \\\\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\\\b\",\n \"SMiTTablet\": \"Android.*(\\\\bMID\\\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)\",\n \"RockChipTablet\": \"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A\",\n \"FlyTablet\": \"IQ310|Fly Vision\",\n \"bqTablet\": \"Android.*(bq)?.*\\\\b(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris ([E|M]10|M8))\\\\b|Maxwell.*Lite|Maxwell.*Plus\",\n \"HuaweiTablet\": \"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim|M2-A01L|BAH-L09|BAH-W09|AGS-L09|CMR-AL19\",\n \"NecTablet\": \"\\\\bN-06D|\\\\bN-08D\",\n \"PantechTablet\": \"Pantech.*P4100\",\n \"BronchoTablet\": \"Broncho.*(N701|N708|N802|a710)\",\n \"VersusTablet\": \"TOUCHPAD.*[78910]|\\\\bTOUCHTAB\\\\b\",\n \"ZyncTablet\": \"z1000|Z99 2G|z930|z990|z909|Z919|z900\",\n \"PositivoTablet\": \"TB07STA|TB10STA|TB07FTA|TB10FTA\",\n \"NabiTablet\": \"Android.*\\\\bNabi\",\n \"KoboTablet\": \"Kobo Touch|\\\\bK080\\\\b|\\\\bVox\\\\b Build|\\\\bArc\\\\b Build\",\n \"DanewTablet\": \"DSlide.*\\\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\\\b\",\n \"TexetTablet\": \"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE\",\n \"PlaystationTablet\": \"Playstation.*(Portable|Vita)\",\n \"TrekstorTablet\": \"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab\",\n \"PyleAudioTablet\": \"\\\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\\\b\",\n \"AdvanTablet\": \"Android.* \\\\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\\\b \",\n \"DanyTechTablet\": \"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1\",\n \"GalapadTablet\": \"Android [0-9.]+; [a-z-]+; \\\\bG1\\\\b\",\n \"MicromaxTablet\": \"Funbook|Micromax.*\\\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\\\b\",\n \"KarbonnTablet\": \"Android.*\\\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\\\b\",\n \"AllFineTablet\": \"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide\",\n \"PROSCANTablet\": \"\\\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\\\b\",\n \"YONESTablet\": \"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026\",\n \"ChangJiaTablet\": \"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503\",\n \"GUTablet\": \"TX-A1301|TX-M9002|Q702|kf026\",\n \"PointOfViewTablet\": \"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10\",\n \"OvermaxTablet\": \"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)|Qualcore 1027\",\n \"HCLTablet\": \"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync\",\n \"DPSTablet\": \"DPS Dream 9|DPS Dual 7\",\n \"VistureTablet\": \"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10\",\n \"CrestaTablet\": \"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989\",\n \"MediatekTablet\": \"\\\\bMT8125|MT8389|MT8135|MT8377\\\\b\",\n \"ConcordeTablet\": \"Concorde([ ]+)?Tab|ConCorde ReadMan\",\n \"GoCleverTablet\": \"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042\",\n \"ModecomTablet\": \"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003\",\n \"VoninoTablet\": \"\\\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\\\bQ8\\\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\\\b\",\n \"ECSTablet\": \"V07OT2|TM105A|S10OT1|TR10CS1\",\n \"StorexTablet\": \"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab\",\n \"VodafoneTablet\": \"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497|VFD 1400\",\n \"EssentielBTablet\": \"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2\",\n \"RossMoorTablet\": \"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711\",\n \"iMobileTablet\": \"i-mobile i-note\",\n \"TolinoTablet\": \"tolino tab [0-9.]+|tolino shine\",\n \"AudioSonicTablet\": \"\\\\bC-22Q|T7-QC|T-17B|T-17P\\\\b\",\n \"AMPETablet\": \"Android.* A78 \",\n \"SkkTablet\": \"Android.* (SKYPAD|PHOENIX|CYCLOPS)\",\n \"TecnoTablet\": \"TECNO P9|TECNO DP8D\",\n \"JXDTablet\": \"Android.* \\\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\\\b\",\n \"iJoyTablet\": \"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)\",\n \"FX2Tablet\": \"FX2 PAD7|FX2 PAD10\",\n \"XoroTablet\": \"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151\",\n \"ViewsonicTablet\": \"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a\",\n \"VerizonTablet\": \"QTAQZ3|QTAIR7|QTAQTZ3|QTASUN1|QTASUN2|QTAXIA1\",\n \"OdysTablet\": \"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\\\bXELIO\\\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10\",\n \"CaptivaTablet\": \"CAPTIVA PAD\",\n \"IconbitTablet\": \"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S\",\n \"TeclastTablet\": \"T98 4G|\\\\bP80\\\\b|\\\\bX90HD\\\\b|X98 Air|X98 Air 3G|\\\\bX89\\\\b|P80 3G|\\\\bX80h\\\\b|P98 Air|\\\\bX89HD\\\\b|P98 3G|\\\\bP90HD\\\\b|P89 3G|X98 3G|\\\\bP70h\\\\b|P79HD 3G|G18d 3G|\\\\bP79HD\\\\b|\\\\bP89s\\\\b|\\\\bA88\\\\b|\\\\bP10HD\\\\b|\\\\bP19HD\\\\b|G18 3G|\\\\bP78HD\\\\b|\\\\bA78\\\\b|\\\\bP75\\\\b|G17s 3G|G17h 3G|\\\\bP85t\\\\b|\\\\bP90\\\\b|\\\\bP11\\\\b|\\\\bP98t\\\\b|\\\\bP98HD\\\\b|\\\\bG18d\\\\b|\\\\bP85s\\\\b|\\\\bP11HD\\\\b|\\\\bP88s\\\\b|\\\\bA80HD\\\\b|\\\\bA80se\\\\b|\\\\bA10h\\\\b|\\\\bP89\\\\b|\\\\bP78s\\\\b|\\\\bG18\\\\b|\\\\bP85\\\\b|\\\\bA70h\\\\b|\\\\bA70\\\\b|\\\\bG17\\\\b|\\\\bP18\\\\b|\\\\bA80s\\\\b|\\\\bA11s\\\\b|\\\\bP88HD\\\\b|\\\\bA80h\\\\b|\\\\bP76s\\\\b|\\\\bP76h\\\\b|\\\\bP98\\\\b|\\\\bA10HD\\\\b|\\\\bP78\\\\b|\\\\bP88\\\\b|\\\\bA11\\\\b|\\\\bA10t\\\\b|\\\\bP76a\\\\b|\\\\bP76t\\\\b|\\\\bP76e\\\\b|\\\\bP85HD\\\\b|\\\\bP85a\\\\b|\\\\bP86\\\\b|\\\\bP75HD\\\\b|\\\\bP76v\\\\b|\\\\bA12\\\\b|\\\\bP75a\\\\b|\\\\bA15\\\\b|\\\\bP76Ti\\\\b|\\\\bP81HD\\\\b|\\\\bA10\\\\b|\\\\bT760VE\\\\b|\\\\bT720HD\\\\b|\\\\bP76\\\\b|\\\\bP73\\\\b|\\\\bP71\\\\b|\\\\bP72\\\\b|\\\\bT720SE\\\\b|\\\\bC520Ti\\\\b|\\\\bT760\\\\b|\\\\bT720VE\\\\b|T720-3GE|T720-WiFi\",\n \"OndaTablet\": \"\\\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\\\b[\\\\s]+|V10 \\\\b4G\\\\b\",\n \"JaytechTablet\": \"TPC-PA762\",\n \"BlaupunktTablet\": \"Endeavour 800NG|Endeavour 1010\",\n \"DigmaTablet\": \"\\\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\\\b\",\n \"EvolioTablet\": \"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\\\bEvotab\\\\b|\\\\bNeura\\\\b\",\n \"LavaTablet\": \"QPAD E704|\\\\bIvoryS\\\\b|E-TAB IVORY|\\\\bE-TAB\\\\b\",\n \"AocTablet\": \"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712\",\n \"MpmanTablet\": \"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\\\bMPG7\\\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010\",\n \"CelkonTablet\": \"CT695|CT888|CT[\\\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\\\bCT-1\\\\b\",\n \"WolderTablet\": \"miTab \\\\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\\\b\",\n \"MediacomTablet\": \"M-MPI10C3G|M-SP10EG|M-SP10EGP|M-SP10HXAH|M-SP7HXAH|M-SP10HXBH|M-SP8HXAH|M-SP8MXA\",\n \"MiTablet\": \"\\\\bMI PAD\\\\b|\\\\bHM NOTE 1W\\\\b\",\n \"NibiruTablet\": \"Nibiru M1|Nibiru Jupiter One\",\n \"NexoTablet\": \"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI\",\n \"LeaderTablet\": \"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100\",\n \"UbislateTablet\": \"UbiSlate[\\\\s]?7C\",\n \"PocketBookTablet\": \"Pocketbook\",\n \"KocasoTablet\": \"\\\\b(TB-1207)\\\\b\",\n \"HisenseTablet\": \"\\\\b(F5281|E2371)\\\\b\",\n \"Hudl\": \"Hudl HT7S3|Hudl 2\",\n \"TelstraTablet\": \"T-Hub2\",\n \"GenericTablet\": \"Android.*\\\\b97D\\\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\\\bA7EB\\\\b|CatNova8|A1_07|CT704|CT1002|\\\\bM721\\\\b|rk30sdk|\\\\bEVOTAB\\\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\\\bM6pro\\\\b|CT1020W|arc 10HD|\\\\bTP750\\\\b|\\\\bQTAQZ3\\\\b|WVT101|TM1088|KT107\"\n },\n \"oss\": {\n \"AndroidOS\": \"Android\",\n \"BlackBerryOS\": \"blackberry|\\\\bBB10\\\\b|rim tablet os\",\n \"PalmOS\": \"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino\",\n \"SymbianOS\": \"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\\\bS60\\\\b\",\n \"WindowsMobileOS\": \"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Windows Mobile|Windows Phone [0-9.]+|WCE;\",\n \"WindowsPhoneOS\": \"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;\",\n \"iOS\": \"\\\\biPhone.*Mobile|\\\\biPod|\\\\biPad|AppleCoreMedia\",\n \"iPadOS\": \"CPU OS 13\",\n \"SailfishOS\": \"Sailfish\",\n \"MeeGoOS\": \"MeeGo\",\n \"MaemoOS\": \"Maemo\",\n \"JavaOS\": \"J2ME\\/|\\\\bMIDP\\\\b|\\\\bCLDC\\\\b\",\n \"webOS\": \"webOS|hpwOS\",\n \"badaOS\": \"\\\\bBada\\\\b\",\n \"BREWOS\": \"BREW\"\n },\n \"uas\": {\n \"Chrome\": \"\\\\bCrMo\\\\b|CriOS|Android.*Chrome\\/[.0-9]* (Mobile)?\",\n \"Dolfin\": \"\\\\bDolfin\\\\b\",\n \"Opera\": \"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\\/[0-9.]+$|Coast\\/[0-9.]+\",\n \"Skyfire\": \"Skyfire\",\n \"Edge\": \"\\\\bEdgiOS\\\\b|Mobile Safari\\/[.0-9]* Edge\",\n \"IE\": \"IEMobile|MSIEMobile\",\n \"Firefox\": \"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS\",\n \"Bolt\": \"bolt\",\n \"TeaShark\": \"teashark\",\n \"Blazer\": \"Blazer\",\n \"Safari\": \"Version((?!\\\\bEdgiOS\\\\b).)*Mobile.*Safari|Safari.*Mobile|MobileSafari\",\n \"WeChat\": \"\\\\bMicroMessenger\\\\b\",\n \"UCBrowser\": \"UC.*Browser|UCWEB\",\n \"baiduboxapp\": \"baiduboxapp\",\n \"baidubrowser\": \"baidubrowser\",\n \"DiigoBrowser\": \"DiigoBrowser\",\n \"Mercury\": \"\\\\bMercury\\\\b\",\n \"ObigoBrowser\": \"Obigo\",\n \"NetFront\": \"NF-Browser\",\n \"GenericBrowser\": \"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger\",\n \"PaleMoon\": \"Android.*PaleMoon|Mobile.*PaleMoon\"\n },\n \"props\": {\n \"Mobile\": \"Mobile\\/[VER]\",\n \"Build\": \"Build\\/[VER]\",\n \"Version\": \"Version\\/[VER]\",\n \"VendorID\": \"VendorID\\/[VER]\",\n \"iPad\": \"iPad.*CPU[a-z ]+[VER]\",\n \"iPhone\": \"iPhone.*CPU[a-z ]+[VER]\",\n \"iPod\": \"iPod.*CPU[a-z ]+[VER]\",\n \"Kindle\": \"Kindle\\/[VER]\",\n \"Chrome\": [\n \"Chrome\\/[VER]\",\n \"CriOS\\/[VER]\",\n \"CrMo\\/[VER]\"\n ],\n \"Coast\": [\n \"Coast\\/[VER]\"\n ],\n \"Dolfin\": \"Dolfin\\/[VER]\",\n \"Firefox\": [\n \"Firefox\\/[VER]\",\n \"FxiOS\\/[VER]\"\n ],\n \"Fennec\": \"Fennec\\/[VER]\",\n \"Edge\": \"Edge\\/[VER]\",\n \"IE\": [\n \"IEMobile\\/[VER];\",\n \"IEMobile [VER]\",\n \"MSIE [VER];\",\n \"Trident\\/[0-9.]+;.*rv:[VER]\"\n ],\n \"NetFront\": \"NetFront\\/[VER]\",\n \"NokiaBrowser\": \"NokiaBrowser\\/[VER]\",\n \"Opera\": [\n \" OPR\\/[VER]\",\n \"Opera Mini\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"Opera Mini\": \"Opera Mini\\/[VER]\",\n \"Opera Mobi\": \"Version\\/[VER]\",\n \"UCBrowser\": [\n \"UCWEB[VER]\",\n \"UC.*Browser\\/[VER]\"\n ],\n \"MQQBrowser\": \"MQQBrowser\\/[VER]\",\n \"MicroMessenger\": \"MicroMessenger\\/[VER]\",\n \"baiduboxapp\": \"baiduboxapp\\/[VER]\",\n \"baidubrowser\": \"baidubrowser\\/[VER]\",\n \"SamsungBrowser\": \"SamsungBrowser\\/[VER]\",\n \"Iron\": \"Iron\\/[VER]\",\n \"Safari\": [\n \"Version\\/[VER]\",\n \"Safari\\/[VER]\"\n ],\n \"Skyfire\": \"Skyfire\\/[VER]\",\n \"Tizen\": \"Tizen\\/[VER]\",\n \"Webkit\": \"webkit[ \\/][VER]\",\n \"PaleMoon\": \"PaleMoon\\/[VER]\",\n \"SailfishBrowser\": \"SailfishBrowser\\/[VER]\",\n \"Gecko\": \"Gecko\\/[VER]\",\n \"Trident\": \"Trident\\/[VER]\",\n \"Presto\": \"Presto\\/[VER]\",\n \"Goanna\": \"Goanna\\/[VER]\",\n \"iOS\": \" \\\\bi?OS\\\\b [VER][ ;]{1}\",\n \"Android\": \"Android [VER]\",\n \"Sailfish\": \"Sailfish [VER]\",\n \"BlackBerry\": [\n \"BlackBerry[\\\\w]+\\/[VER]\",\n \"BlackBerry.*Version\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"BREW\": \"BREW [VER]\",\n \"Java\": \"Java\\/[VER]\",\n \"Windows Phone OS\": [\n \"Windows Phone OS [VER]\",\n \"Windows Phone [VER]\"\n ],\n \"Windows Phone\": \"Windows Phone [VER]\",\n \"Windows CE\": \"Windows CE\\/[VER]\",\n \"Windows NT\": \"Windows NT [VER]\",\n \"Symbian\": [\n \"SymbianOS\\/[VER]\",\n \"Symbian\\/[VER]\"\n ],\n \"webOS\": [\n \"webOS\\/[VER]\",\n \"hpwOS\\/[VER];\"\n ]\n },\n \"utils\": {\n \"Bot\": \"Googlebot|facebookexternalhit|Google-AMPHTML|s~amp-validator|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom|contentkingapp|AspiegelBot\",\n \"MobileBot\": \"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\\/M1A1-R2D2\",\n \"DesktopMode\": \"WPDesktop\",\n \"TV\": \"SonyDTV|HbbTV\",\n \"WebKit\": \"(webkit)[ \\/]([\\\\w.]+)\",\n \"Console\": \"\\\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|Nintendo Switch|PLAYSTATION|Xbox)\\\\b\",\n \"Watch\": \"SM-V700\"\n }\n};\n\n // following patterns come from http://detectmobilebrowsers.com/\n impl.detectMobileBrowsers = {\n fullPattern: /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n shortPattern: /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n tabletPattern: /android|ipad|playbook|silk/i\n };\n\n var hasOwnProp = Object.prototype.hasOwnProperty,\n isArray;\n\n impl.FALLBACK_PHONE = 'UnknownPhone';\n impl.FALLBACK_TABLET = 'UnknownTablet';\n impl.FALLBACK_MOBILE = 'UnknownMobile';\n\n isArray = ('isArray' in Array) ?\n Array.isArray : function (value) { return Object.prototype.toString.call(value) === '[object Array]'; };\n\n function equalIC(a, b) {\n return a != null && b != null && a.toLowerCase() === b.toLowerCase();\n }\n\n function containsIC(array, value) {\n var valueLC, i, len = array.length;\n if (!len || !value) {\n return false;\n }\n valueLC = value.toLowerCase();\n for (i = 0; i < len; ++i) {\n if (valueLC === array[i].toLowerCase()) {\n return true;\n }\n }\n return false;\n }\n\n function convertPropsToRegExp(object) {\n for (var key in object) {\n if (hasOwnProp.call(object, key)) {\n object[key] = new RegExp(object[key], 'i');\n }\n }\n }\n\n function prepareUserAgent(userAgent) {\n return (userAgent || '').substr(0, 500); // mitigate vulnerable to ReDoS\n }\n\n (function init() {\n var key, values, value, i, len, verPos, mobileDetectRules = impl.mobileDetectRules;\n for (key in mobileDetectRules.props) {\n if (hasOwnProp.call(mobileDetectRules.props, key)) {\n values = mobileDetectRules.props[key];\n if (!isArray(values)) {\n values = [values];\n }\n len = values.length;\n for (i = 0; i < len; ++i) {\n value = values[i];\n verPos = value.indexOf('[VER]');\n if (verPos >= 0) {\n value = value.substring(0, verPos) + '([\\\\w._\\\\+]+)' + value.substring(verPos + 5);\n }\n values[i] = new RegExp(value, 'i');\n }\n mobileDetectRules.props[key] = values;\n }\n }\n convertPropsToRegExp(mobileDetectRules.oss);\n convertPropsToRegExp(mobileDetectRules.phones);\n convertPropsToRegExp(mobileDetectRules.tablets);\n convertPropsToRegExp(mobileDetectRules.uas);\n convertPropsToRegExp(mobileDetectRules.utils);\n\n // copy some patterns to oss0 which are tested first (see issue#15)\n mobileDetectRules.oss0 = {\n WindowsPhoneOS: mobileDetectRules.oss.WindowsPhoneOS,\n WindowsMobileOS: mobileDetectRules.oss.WindowsMobileOS\n };\n }());\n\n /**\n * Test userAgent string against a set of rules and find the first matched key.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {String|null} the matched key if found, otherwise null\n * @private\n */\n impl.findMatch = function(rules, userAgent) {\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n return key;\n }\n }\n }\n return null;\n };\n\n /**\n * Test userAgent string against a set of rules and return an array of matched keys.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {Array} an array of matched keys, may be empty when there is no match, but not null\n * @private\n */\n impl.findMatches = function(rules, userAgent) {\n var result = [];\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n result.push(key);\n }\n }\n }\n return result;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {String} version or null if version not found\n * @private\n */\n impl.getVersionStr = function (propertyName, userAgent) {\n var props = impl.mobileDetectRules.props, patterns, i, len, match;\n if (hasOwnProp.call(props, propertyName)) {\n patterns = props[propertyName];\n len = patterns.length;\n for (i = 0; i < len; ++i) {\n match = patterns[i].exec(userAgent);\n if (match !== null) {\n return match[1];\n }\n }\n }\n return null;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {Number} version or NaN if version not found\n * @private\n */\n impl.getVersion = function (propertyName, userAgent) {\n var version = impl.getVersionStr(propertyName, userAgent);\n return version ? impl.prepareVersionNo(version) : NaN;\n };\n\n /**\n * Prepare the version number.\n *\n * @param {String} version\n * @return {Number} the version number as a floating number\n * @private\n */\n impl.prepareVersionNo = function (version) {\n var numbers;\n\n numbers = version.split(/[a-z._ \\/\\-]/i);\n if (numbers.length === 1) {\n version = numbers[0];\n }\n if (numbers.length > 1) {\n version = numbers[0] + '.';\n numbers.shift();\n version += numbers.join('');\n }\n return Number(version);\n };\n\n impl.isMobileFallback = function (userAgent) {\n return impl.detectMobileBrowsers.fullPattern.test(userAgent) ||\n impl.detectMobileBrowsers.shortPattern.test(userAgent.substr(0,4));\n };\n\n impl.isTabletFallback = function (userAgent) {\n return impl.detectMobileBrowsers.tabletPattern.test(userAgent);\n };\n\n impl.prepareDetectionCache = function (cache, userAgent, maxPhoneWidth) {\n if (cache.mobile !== undefined) {\n return;\n }\n var phone, tablet, phoneSized;\n\n // first check for stronger tablet rules, then phone (see issue#5)\n tablet = impl.findMatch(impl.mobileDetectRules.tablets, userAgent);\n if (tablet) {\n cache.mobile = cache.tablet = tablet;\n cache.phone = null;\n return; // unambiguously identified as tablet\n }\n\n phone = impl.findMatch(impl.mobileDetectRules.phones, userAgent);\n if (phone) {\n cache.mobile = cache.phone = phone;\n cache.tablet = null;\n return; // unambiguously identified as phone\n }\n\n // our rules haven't found a match -> try more general fallback rules\n if (impl.isMobileFallback(userAgent)) {\n phoneSized = MobileDetect.isPhoneSized(maxPhoneWidth);\n if (phoneSized === undefined) {\n cache.mobile = impl.FALLBACK_MOBILE;\n cache.tablet = cache.phone = null;\n } else if (phoneSized) {\n cache.mobile = cache.phone = impl.FALLBACK_PHONE;\n cache.tablet = null;\n } else {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n }\n } else if (impl.isTabletFallback(userAgent)) {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n } else {\n // not mobile at all!\n cache.mobile = cache.tablet = cache.phone = null;\n }\n };\n\n // t is a reference to a MobileDetect instance\n impl.mobileGrade = function (t) {\n // impl note:\n // To keep in sync w/ Mobile_Detect.php easily, the following code is tightly aligned to the PHP version.\n // When changes are made in Mobile_Detect.php, copy this method and replace:\n // $this-> / t.\n // self::MOBILE_GRADE_(.) / '$1'\n // , self::VERSION_TYPE_FLOAT / (nothing)\n // isIOS() / os('iOS')\n // [reg] / (nothing) <-- jsdelivr complaining about unescaped unicode character U+00AE\n var $isMobile = t.mobile() !== null;\n\n if (\n // Apple iOS 3.2-5.1 - Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3), iPad 3 (5.1), original iPhone (3.1), iPhone 3 (3.2), 3GS (4.3), 4 (4.3 / 5.0), and 4S (5.1)\n t.os('iOS') && t.version('iPad')>=4.3 ||\n t.os('iOS') && t.version('iPhone')>=3.1 ||\n t.os('iOS') && t.version('iPod')>=3.1 ||\n\n // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)\n // Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM\n // Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices\n // Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7\n ( t.version('Android')>2.1 && t.is('Webkit') ) ||\n\n // Windows Phone 7-7.5 - Tested on the HTC Surround (7.0) HTC Trophy (7.5), LG-E900 (7.5), Nokia Lumia 800\n t.version('Windows Phone OS')>=7.0 ||\n\n // Blackberry 7 - Tested on BlackBerry Torch 9810\n // Blackberry 6.0 - Tested on the Torch 9800 and Style 9670\n t.is('BlackBerry') && t.version('BlackBerry')>=6.0 ||\n // Blackberry Playbook (1.0-2.0) - Tested on PlayBook\n t.match('Playbook.*Tablet') ||\n\n // Palm WebOS (1.4-2.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0)\n ( t.version('webOS')>=1.4 && t.match('Palm|Pre|Pixi') ) ||\n // Palm WebOS 3.0 - Tested on HP TouchPad\n t.match('hp.*TouchPad') ||\n\n // Firefox Mobile (12 Beta) - Tested on Android 2.3 device\n ( t.is('Firefox') && t.version('Firefox')>=12 ) ||\n\n // Chrome for Android - Tested on Android 4.0, 4.1 device\n ( t.is('Chrome') && t.is('AndroidOS') && t.version('Android')>=4.0 ) ||\n\n // Skyfire 4.1 - Tested on Android 2.3 device\n ( t.is('Skyfire') && t.version('Skyfire')>=4.1 && t.is('AndroidOS') && t.version('Android')>=2.3 ) ||\n\n // Opera Mobile 11.5-12: Tested on Android 2.3\n ( t.is('Opera') && t.version('Opera Mobi')>11 && t.is('AndroidOS') ) ||\n\n // Meego 1.2 - Tested on Nokia 950 and N9\n t.is('MeeGoOS') ||\n\n // Tizen (pre-release) - Tested on early hardware\n t.is('Tizen') ||\n\n // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser\n // @todo: more tests here!\n t.is('Dolfin') && t.version('Bada')>=2.0 ||\n\n // UC Browser - Tested on Android 2.3 device\n ( (t.is('UC Browser') || t.is('Dolfin')) && t.version('Android')>=2.3 ) ||\n\n // Kindle 3 and Fire - Tested on the built-in WebKit browser for each\n ( t.match('Kindle Fire') ||\n t.is('Kindle') && t.version('Kindle')>=3.0 ) ||\n\n // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet\n t.is('AndroidOS') && t.is('NookTablet') ||\n\n // Chrome Desktop 11-21 - Tested on OS X 10.7 and Windows 7\n t.version('Chrome')>=11 && !$isMobile ||\n\n // Safari Desktop 4-5 - Tested on OS X 10.7 and Windows 7\n t.version('Safari')>=5.0 && !$isMobile ||\n\n // Firefox Desktop 4-13 - Tested on OS X 10.7 and Windows 7\n t.version('Firefox')>=4.0 && !$isMobile ||\n\n // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7\n t.version('MSIE')>=7.0 && !$isMobile ||\n\n // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7\n // @reference: http://my.opera.com/community/openweb/idopera/\n t.version('Opera')>=10 && !$isMobile\n\n ){\n return 'A';\n }\n\n if (\n t.os('iOS') && t.version('iPad')<4.3 ||\n t.os('iOS') && t.version('iPhone')<3.1 ||\n t.os('iOS') && t.version('iPod')<3.1 ||\n\n // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770\n t.is('Blackberry') && t.version('BlackBerry')>=5 && t.version('BlackBerry')<6 ||\n\n //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3\n ( t.version('Opera Mini')>=5.0 && t.version('Opera Mini')<=6.5 &&\n (t.version('Android')>=2.3 || t.is('iOS')) ) ||\n\n // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)\n t.match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||\n\n // @todo: report this (tested on Nokia N71)\n t.version('Opera Mobi')>=11 && t.is('SymbianOS')\n ){\n return 'B';\n }\n\n if (\n // Blackberry 4.x - Tested on the Curve 8330\n t.version('BlackBerry')<5.0 ||\n // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)\n t.match('MSIEMobile|Windows CE.*Mobile') || t.version('Windows Mobile')<=5.2\n\n ){\n return 'C';\n }\n\n //All older smartphone platforms and featurephones - Any device that doesn't support media queries\n //will receive the basic, C grade experience.\n return 'C';\n };\n\n impl.detectOS = function (ua) {\n return impl.findMatch(impl.mobileDetectRules.oss0, ua) ||\n impl.findMatch(impl.mobileDetectRules.oss, ua);\n };\n\n impl.getDeviceSmallerSide = function () {\n return window.screen.width < window.screen.height ?\n window.screen.width :\n window.screen.height;\n };\n\n /**\n * Constructor for MobileDetect object.\n *
\n * Such an object will keep a reference to the given user-agent string and cache most of the detect queries.
\n *
\n * Find information how to download and install:\n * github.com/hgoebl/mobile-detect.js/\n *
\n *\n * @example
\n     *     var md = new MobileDetect(window.navigator.userAgent);\n     *     if (md.mobile()) {\n     *         location.href = (md.mobileGrade() === 'A') ? '/mobile/' : '/lynx/';\n     *     }\n     * 
\n *\n * @param {string} userAgent typically taken from window.navigator.userAgent or http_header['User-Agent']\n * @param {number} [maxPhoneWidth=600] only for browsers specify a value for the maximum\n * width of smallest device side (in logical \"CSS\" pixels) until a device detected as mobile will be handled\n * as phone.\n * This is only used in cases where the device cannot be classified as phone or tablet.
\n * See Declaring Tablet Layouts\n * for Android.
\n * If you provide a value < 0, then this \"fuzzy\" check is disabled.\n * @constructor\n * @global\n */\n function MobileDetect(userAgent, maxPhoneWidth) {\n this.ua = prepareUserAgent(userAgent);\n this._cache = {};\n //600dp is typical 7\" tablet minimum width\n this.maxPhoneWidth = maxPhoneWidth || 600;\n }\n\n MobileDetect.prototype = {\n constructor: MobileDetect,\n\n /**\n * Returns the detected phone or tablet type or null if it is not a mobile device.\n *
\n * For a list of possible return values see {@link MobileDetect#phone} and {@link MobileDetect#tablet}.
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone, UnknownTablet or\n * UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get UnknownMobile here.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key for the phone family or tablet family, e.g. \"Nexus\".\n * @function MobileDetect#mobile\n */\n mobile: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.mobile;\n },\n\n /**\n * Returns the detected phone type/family string or null.\n *
\n * The returned tablet (family or producer) is one of following keys:
\n *
iPhone, BlackBerry, Pixel, HTC, Nexus, Dell, Motorola, Samsung, LG, Sony, Asus,\n * Xiaomi, NokiaLumia, Micromax, Palm, Vertu, Pantech, Fly, Wiko, iMobile,\n * SimValley, Wolfgang, Alcatel, Nintendo, Amoi, INQ, OnePlus, GenericPhone
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone or UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the phone family or producer, e.g. \"iPhone\"\n * @function MobileDetect#phone\n */\n phone: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.phone;\n },\n\n /**\n * Returns the detected tablet type/family string or null.\n *
\n * The returned tablet (family or producer) is one of following keys:
\n *
iPad, NexusTablet, GoogleTablet, SamsungTablet, Kindle, SurfaceTablet,\n * HPTablet, AsusTablet, BlackBerryTablet, HTCtablet, MotorolaTablet, NookTablet,\n * AcerTablet, ToshibaTablet, LGTablet, FujitsuTablet, PrestigioTablet,\n * LenovoTablet, DellTablet, YarvikTablet, MedionTablet, ArnovaTablet,\n * IntensoTablet, IRUTablet, MegafonTablet, EbodaTablet, AllViewTablet,\n * ArchosTablet, AinolTablet, NokiaLumiaTablet, SonyTablet, PhilipsTablet,\n * CubeTablet, CobyTablet, MIDTablet, MSITablet, SMiTTablet, RockChipTablet,\n * FlyTablet, bqTablet, HuaweiTablet, NecTablet, PantechTablet, BronchoTablet,\n * VersusTablet, ZyncTablet, PositivoTablet, NabiTablet, KoboTablet, DanewTablet,\n * TexetTablet, PlaystationTablet, TrekstorTablet, PyleAudioTablet, AdvanTablet,\n * DanyTechTablet, GalapadTablet, MicromaxTablet, KarbonnTablet, AllFineTablet,\n * PROSCANTablet, YONESTablet, ChangJiaTablet, GUTablet, PointOfViewTablet,\n * OvermaxTablet, HCLTablet, DPSTablet, VistureTablet, CrestaTablet,\n * MediatekTablet, ConcordeTablet, GoCleverTablet, ModecomTablet, VoninoTablet,\n * ECSTablet, StorexTablet, VodafoneTablet, EssentielBTablet, RossMoorTablet,\n * iMobileTablet, TolinoTablet, AudioSonicTablet, AMPETablet, SkkTablet,\n * TecnoTablet, JXDTablet, iJoyTablet, FX2Tablet, XoroTablet, ViewsonicTablet,\n * VerizonTablet, OdysTablet, CaptivaTablet, IconbitTablet, TeclastTablet,\n * OndaTablet, JaytechTablet, BlaupunktTablet, DigmaTablet, EvolioTablet,\n * LavaTablet, AocTablet, MpmanTablet, CelkonTablet, WolderTablet, MediacomTablet,\n * MiTablet, NibiruTablet, NexoTablet, LeaderTablet, UbislateTablet,\n * PocketBookTablet, KocasoTablet, HisenseTablet, Hudl, TelstraTablet,\n * GenericTablet
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownTablet or UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the tablet family or producer, e.g. \"SamsungTablet\"\n * @function MobileDetect#tablet\n */\n tablet: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.tablet;\n },\n\n /**\n * Returns the (first) detected user-agent string or null.\n *
\n * The returned user-agent is one of following keys:
\n *
Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
\n *
\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {String} the key for the detected user-agent or null\n * @function MobileDetect#userAgent\n */\n userAgent: function () {\n if (this._cache.userAgent === undefined) {\n this._cache.userAgent = impl.findMatch(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgent;\n },\n\n /**\n * Returns all detected user-agent strings.\n *
\n * The array is empty or contains one or more of following keys:
\n *
Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
\n *
\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {Array} the array of detected user-agent keys or []\n * @function MobileDetect#userAgents\n */\n userAgents: function () {\n if (this._cache.userAgents === undefined) {\n this._cache.userAgents = impl.findMatches(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgents;\n },\n\n /**\n * Returns the detected operating system string or null.\n *
\n * The operating system is one of following keys:
\n *
AndroidOS, BlackBerryOS, PalmOS, SymbianOS, WindowsMobileOS, WindowsPhoneOS,\n * iOS, iPadOS, SailfishOS, MeeGoOS, MaemoOS, JavaOS, webOS, badaOS, BREWOS
\n *\n * @returns {String} the key for the detected operating system.\n * @function MobileDetect#os\n */\n os: function () {\n if (this._cache.os === undefined) {\n this._cache.os = impl.detectOS(this.ua);\n }\n return this._cache.os;\n },\n\n /**\n * Get the version (as Number) of the given property in the User-Agent.\n *
\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} key a key defining a thing which has a version.
\n * You can use one of following keys:
\n *
Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
\n *\n * @returns {Number} the version as float or NaN if User-Agent doesn't contain this version.\n * Be careful when comparing this value with '==' operator!\n * @function MobileDetect#version\n */\n version: function (key) {\n return impl.getVersion(key, this.ua);\n },\n\n /**\n * Get the version (as String) of the given property in the User-Agent.\n *
\n *\n * @param {String} key a key defining a thing which has a version.
\n * You can use one of following keys:
\n *
Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
\n *\n * @returns {String} the \"raw\" version as String or null if User-Agent doesn't contain this version.\n *\n * @function MobileDetect#versionStr\n */\n versionStr: function (key) {\n return impl.getVersionStr(key, this.ua);\n },\n\n /**\n * Global test key against userAgent, os, phone, tablet and some other properties of userAgent string.\n *\n * @param {String} key the key (case-insensitive) of a userAgent, an operating system, phone or\n * tablet family.
\n * For a complete list of possible values, see {@link MobileDetect#userAgent},\n * {@link MobileDetect#os}, {@link MobileDetect#phone}, {@link MobileDetect#tablet}.
\n * Additionally you have following keys:
\n *
Bot, MobileBot, DesktopMode, TV, WebKit, Console, Watch
\n *\n * @returns {boolean} true when the given key is one of the defined keys of userAgent, os, phone,\n * tablet or one of the listed additional keys, otherwise false\n * @function MobileDetect#is\n */\n is: function (key) {\n return containsIC(this.userAgents(), key) ||\n equalIC(key, this.os()) ||\n equalIC(key, this.phone()) ||\n equalIC(key, this.tablet()) ||\n containsIC(impl.findMatches(impl.mobileDetectRules.utils, this.ua), key);\n },\n\n /**\n * Do a quick test against navigator::userAgent.\n *\n * @param {String|RegExp} pattern the pattern, either as String or RegExp\n * (a string will be converted to a case-insensitive RegExp).\n * @returns {boolean} true when the pattern matches, otherwise false\n * @function MobileDetect#match\n */\n match: function (pattern) {\n if (!(pattern instanceof RegExp)) {\n pattern = new RegExp(pattern, 'i');\n }\n return pattern.test(this.ua);\n },\n\n /**\n * Checks whether the mobile device can be considered as phone regarding screen.width.\n *
\n * Obviously this method makes sense in browser environments only (not for Node.js)!\n * @param {number} [maxPhoneWidth] the maximum logical pixels (aka. CSS-pixels) to be considered as phone.
\n * The argument is optional and if not present or falsy, the value of the constructor is taken.\n * @returns {boolean|undefined} undefined if screen size wasn't detectable, else true\n * when screen.width is less or equal to maxPhoneWidth, otherwise false.
\n * Will always return undefined server-side.\n */\n isPhoneSized: function (maxPhoneWidth) {\n return MobileDetect.isPhoneSized(maxPhoneWidth || this.maxPhoneWidth);\n },\n\n /**\n * Returns the mobile grade ('A', 'B', 'C').\n *\n * @returns {String} one of the mobile grades ('A', 'B', 'C').\n * @function MobileDetect#mobileGrade\n */\n mobileGrade: function () {\n if (this._cache.grade === undefined) {\n this._cache.grade = impl.mobileGrade(this);\n }\n return this._cache.grade;\n }\n };\n\n // environment-dependent\n if (typeof window !== 'undefined' && window.screen) {\n MobileDetect.isPhoneSized = function (maxPhoneWidth) {\n return maxPhoneWidth < 0 ? undefined : impl.getDeviceSmallerSide() <= maxPhoneWidth;\n };\n } else {\n MobileDetect.isPhoneSized = function () {};\n }\n\n // should not be replaced by a completely new object - just overwrite existing methods\n MobileDetect._impl = impl;\n \n MobileDetect.version = '1.4.5 2021-03-13';\n\n return MobileDetect;\n}); // end of call of define()\n})((function (undefined) {\n if (typeof module !== 'undefined' && module.exports) {\n return function (factory) { module.exports = factory(); };\n } else if (typeof define === 'function' && define.amd) {\n return define;\n } else if (typeof window !== 'undefined') {\n return function (factory) { window.MobileDetect = factory(); };\n } else {\n // please file a bug if you get this error!\n throw new Error('unknown environment');\n }\n})());","function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\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 _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _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, toPropertyKey(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}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\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}","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n if (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else {\n requestHeaders.setContentType('multipart/form-data;', false); // mobile/desktop app frameworks\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.5.0\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: platform.isNode ? 'http' : 'xhr',\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\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}\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\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 var resolver = function resolver(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 };\n if (typeof fetch === 'function') {\n fetch(url, fetchOptions).then(resolver).catch(callback);\n } else {\n fetchApi(url, fetchOptions).then(resolver).catch(callback);\n }\n};\nvar omitFetchOptions = false;\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};\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 && url.indexOf('file:') !== 0) {\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 _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); }\nfunction _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, _toPropertyKey(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) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 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 parseLoadPayload: function parseLoadPayload(languages, namespaces) {\n return undefined;\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 var lng = typeof languages === 'string' ? [languages] : languages;\n var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;\n var payload = this.options.parseLoadPayload(lng, ns);\n this.options.request(this.options, url, payload, 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 (typeof callback === 'function') 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 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;","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let 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 log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n this.observers[event] = this.observers[event] || [];\n this.observers[event].push(listener);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(l => l !== listener);\n }\n 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 if (this.observers[event]) {\n const cloned = [].concat(this.observers[event]);\n cloned.forEach(observer => {\n observer(...args);\n });\n }\n if (this.observers['*']) {\n const cloned = [].concat(this.observers['*']);\n cloned.forEach(observer => {\n observer.apply(observer, [event, ...args]);\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((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(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\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 const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const 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 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, s => _entityMap[s]);\n }\n return data;\n}\nconst chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = new RegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const paths = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n let j = 2;\n let p = paths.slice(i, i + j).join(keySeparator);\n let mix = current[p];\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 if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n const joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let 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 if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n const 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 addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const 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 if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const 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 if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\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 const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\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 let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const defaultValue = options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...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 let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let 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 const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n this.pluralResolver.getSuffixes(language, options).forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\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 if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: resolved,\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${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 codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let 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 static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const 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 return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const 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 getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\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 return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n 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 let 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 toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || 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 fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet 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}];\nlet _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};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (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 this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\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 const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${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 return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const 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 reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const regexpStr = `${this.prefix}(.+?)${this.suffix}`;\n this.regexp = new RegExp(regexpStr, 'g');\n const regexpUnescapeStr = `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n const nestingRegexpStr = `${this.nestingPrefix}(.+?)${this.nestingSuffix}`;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\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 replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\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 if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\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 const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const 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 return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\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 if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.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 if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\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 loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\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(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\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 if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${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 if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\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: false,\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 let 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 if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: (value, format, lng, options) => value,\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 if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\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 const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\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 let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const 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 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 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 _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\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 _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\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 const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const 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, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n 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 if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\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 if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\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 options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...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 const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\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 const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\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 loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n 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 const 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 const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\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 clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n 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}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n"],"names":["global","self","this","__self__","F","fetch","DOMException","prototype","exports","support","Symbol","Blob","e","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","map","forEach","append","Array","isArray","header","getOwnPropertyNames","consumed","body","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","type","rejected","Error","arrayBuffer","then","text","readAsText","chars","length","i","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","push","values","entries","methods","Request","input","options","method","upcased","url","credentials","mode","signal","toUpperCase","referrer","form","trim","split","bytes","replace","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","err","message","stack","create","constructor","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","key","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","addEventListener","onreadystatechange","readyState","removeEventListener","send","polyfill","defineProperty","ponyfill","ctx","module","listener","fns","doc","hack","domContentLoaded","loaded","document","documentElement","doScroll","fn","setTimeout","arr","each","handleCorrectReadFunction","backend","language","namespace","resolver","fc","read","bind","r","data","Backend","services","arguments","i18nextOptions","backends","allOptions","_this","source","prop","defaults","handleEmptyResourcesAsFailed","cacheHitMode","b","ClassOrObject","backendOptions","reloadInterval","setInterval","reload","_this2","bLen","savePosition","pos","save","loadPosition","isLastBackend","lengthCheckAmount","nextBackend","resourceStore","addResourceBundle","languages","fallbackValue","clb","opts","_this3","_this$services","backendConnector","languageUtils","logger","currentLanguage","toLoad","lng","toResolveHierarchy","l","preload","ns","warn","concat","log","_defineProperty","toPropertyKey","enumerable","configurable","writable","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","getOwnPropertyDescriptors","defineProperties","Storage","store","setItem","getItem","Cache","window","localStorage","prefix","expirationTime","defaultVersion","versions","getDefaults","storage","nowMS","Date","getTime","local","version","getVersion","i18nStamp","i18nVersion","stringify","n","assign","t","a","Math","floor","now","removeAttribute","setAttribute","o","querySelectorAll","HTMLElement","NodeList","u","raw","cancelable","defaultPrevented","preventDefault","s","stopPropagation","c","add","addListener","nativeEvent","changedTouches","targetTouches","detail","x","id","identifier","idChanged","screenX","pageX","y","screenY","pageY","purge","removeListener","d","min","max","f","getBoundingClientRect","height","offsetHeight","width","offsetWidth","p","v","round","m","h","g","k","w","M","T","C","_","E","z","abs","D","reduce","origin","rel","I","S","A","O","L","loop","distance","timestamp","H","emit","rtl","portion","size","maxIdx","minIdx","position","progress","slides","slidesLength","details","absToRel","distToIdx","idxToDist","trackConfig","range","track","Number","to","velocity","lastTimestamp","time","pow","dist","dur","animator","stop","on","start","duration","easing","earlyExit","rubberband","moveToIdx","vertical","innerHeight","innerWidth","drag","disabled","dragSpeed","container","capture","passive","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","style","overflowY","overflowX","active","requestAnimationFrame","renderMode","transform","getComputedStyle","getPropertyValue","matches","__media","breakpoints","matchMedia","spacing","selector","destroy","prev","update","defaultAnimation","targetIdx","cancelAnimationFrame","initial","console","factory","lazySizes","lazysizes","lazySizesCfg","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","requestIdleCallback","regPicture","loadEvents","regClassCache","hasClass","ele","cls","RegExp","addClass","removeClass","reg","addRemoveLoadEvents","dom","action","evt","triggerEvent","elem","noBubbles","noCancelable","event","createEvent","instance","initEvent","dispatchEvent","updatePolyfill","el","full","picturefill","pf","src","reevaluate","elements","getCSS","getWidth","parent","_lazysizesWidth","parentNode","rAF","firstFns","secondFns","run","runFns","running","waiting","rafBatch","queue","hidden","_lsFlush","rAFIt","simple","that","args","throttle","lastTime","gDelay","rICTimeout","idleCallback","timeout","isPriority","delay","debounce","func","wait","later","last","loader","regImg","regIframe","supportScroll","navigator","userAgent","shrinkExpand","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isBodyHidden","isNestedVisible","elemExpand","outerRect","visible","eLtop","eLbottom","eLleft","eLright","offsetParent","left","right","top","bottom","checkElements","eLlen","rect","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","_defEx","eLvW","elvH","isCompleted","preloadElems","preloadAfterLoad","throttledCheckElements","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","changeIframeSrc","getAttribute","contentWindow","handleSources","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","srcset","isPicture","firesLoad","nodeName","clearTimeout","resetPreloadingTimer","getElementsByTagName","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","started","persisted","loadingElements","img","MutationObserver","observe","childList","subtree","attributes","checkElems","unveil","_aLSL","sizeElement","sources","len","dataAttr","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","uP","aC","rC","hC","fire","gW","define","impl","fullPattern","shortPattern","tabletPattern","hasOwnProp","equalIC","containsIC","array","valueLC","convertPropsToRegExp","MobileDetect","maxPhoneWidth","ua","substr","prepareUserAgent","_cache","FALLBACK_PHONE","FALLBACK_TABLET","FALLBACK_MOBILE","verPos","mobileDetectRules","props","substring","oss","phones","tablets","uas","utils","oss0","WindowsPhoneOS","WindowsMobileOS","findMatch","rules","findMatches","getVersionStr","propertyName","patterns","match","exec","prepareVersionNo","NaN","numbers","isMobileFallback","detectMobileBrowsers","isTabletFallback","prepareDetectionCache","cache","mobile","phone","tablet","phoneSized","isPhoneSized","mobileGrade","$isMobile","os","is","detectOS","getDeviceSmallerSide","screen","userAgents","versionStr","pattern","grade","_impl","isImmediate","maxWait","cancel","fetchApi","default","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_toPrimitive","hint","prim","toPrimitive","res","_toPropertyKey","arg","_typeof","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","total","lengthComputable","progressBytes","rate","estimated","config","requestData","requestHeaders","AxiosHeaders","from","normalize","onCanceled","cancelToken","unsubscribe","isFormData","isStandardBrowserEnv","isStandardBrowserWebWorkerEnv","setContentType","auth","username","password","unescape","encodeURIComponent","btoa","fullPath","buildFullPath","baseURL","onloadend","responseHeaders","settle","buildURL","params","paramsSerializer","AxiosError","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","isURLSameOrigin","xsrfCookieName","cookies","xsrfHeaderName","toJSON","val","isUndefined","onDownloadProgress","onUploadProgress","upload","CanceledError","subscribe","protocol","parseProtocol","protocols","ERR_BAD_REQUEST","knownAdapters","http","getAdapter","adapters","nameOrAdapter","adapter","isString","isFunction","handlers","use","fulfilled","synchronous","runWhen","eject","clear","throwIfCancellationRequested","throwIfRequested","dispatchRequest","transformData","transformRequest","transformResponse","reason","isCancel","headersToObject","thing","mergeConfig","config1","config2","getMergedValue","caseless","isPlainObject","merge","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","maxContentLength","maxBodyLength","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","validateStatus","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","opt","desc","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","silentJSONParsing","boolean","forcedJSONParsing","serialize","encode","function","contextHeaders","common","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","token","_listeners","onfulfilled","_resolve","index","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","context","extend","allOwnKeys","toFormData","Cancel","all","promises","spread","isAxiosError","payload","isObject","formToJSON","formDataToJSON","isHTMLForm","ERR_CANCELED","inherits","__CANCEL__","code","captureStackTrace","description","number","fileName","lineNumber","columnNumber","toJSONObject","descriptors","customProps","axiosError","toFlatObject","cause","ignoreDuplicateOf","toObjectSet","$internals","normalizeHeader","matchHeaderValue","isHeaderNameFilter","isRegExp","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","findKey","setHeaders","parsed","parseHeaders","parser","str","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","format","normalized","char","formatHeader","targets","asStrings","toStringTag","first","computed","accessor","accessors","defineAccessor","accessorName","toCamelCase","methodName","arg1","arg2","arg3","buildAccessors","reduceDescriptors","mapped","headerValue","freezeMethods","requestedURL","ERR_BAD_RESPONSE","isNode","contentType","getContentType","hasJSONContentType","isObjectPayload","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isURLSearchParams","isFileList","classes","visitor","path","helpers","defaultVisitor","toURLEncodedForm","formSerializer","_FormData","env","rawValue","encoder","stringifySafely","JSONRequested","strictJSONParsing","charMap","AxiosURLSearchParams","_pairs","_encode","pair","serializeFn","serializedParams","hashmarkIndex","combineURLs","relativeURL","write","expires","domain","secure","cookie","isNumber","toGMTString","remove","buildPath","isNumericKey","isFinite","isLast","arrayToObject","forEachEntry","matchAll","parsePropPath","isAbsoluteURL","msie","urlParsingNode","createElement","originURL","resolveURL","href","host","search","hash","hostname","port","pathname","charAt","requestURL","samplesCount","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","isVisitable","removeBrackets","endsWith","renderKey","dots","predicates","metaTokens","indexes","option","useBlob","isSpecCompliantForm","convertValue","isDate","toISOString","isTypedArray","Buffer","some","isFlatArray","toArray","exposedHelpers","build","pop","isBrowser","product","WorkerGlobalScope","importScripts","getPrototypeOf","kindOf","kindOfTest","typeOfTest","_key","_global","globalThis","isContextDefined","TypedArray","reducer","reducedDescriptors","ret","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","kind","isBoolean","pipe","assignValue","targetKey","stripBOM","content","charCodeAt","superConstructor","sourceObj","destObj","propFilter","merged","searchString","lastIndex","regExp","arrayOrString","delimiter","p1","p2","noop","toFiniteNumber","defaultValue","generateString","alphabet","random","visit","reducedValue","isThenable","catch","hasXMLHttpRequest","XmlHttpRequestApi","ActiveXObjectApi","ActiveXObject","addQueryString","queryString","paramName","fetchIt","fetchOptions","omitFetchOptions","queryStringParams","customHeaders","reqOptions","requestOptions","requestWithFetch","crossDomain","overrideMimeType","requestWithXmlHttpRequest","loadPath","addPath","parsePayload","parseLoadPayload","namespaces","_readAny","loadUrlLanguages","loadUrlNamespaces","maybePromise","isPromise","resolvedLoadPath","interpolator","interpolate","loadUrl","parseErr","_this4","finished","dataArray","resArray","_this5","consoleLogger","output","Logger","concreteLogger","debug","_len","forward","_len2","_key2","_len3","_key3","deprecate","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","off","observer","defer","rej","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","newValue","getPath","deepExtend","overwrite","regexEscape","_entityMap","escape","deepFind","keySeparator","paths","current","j","mix","joinedPath","getCleanedCode","ResourceStore","defaultNS","super","ignoreJSONStructure","addNamespaces","removeNamespaces","getResource","addResource","silent","addResources","resources","deep","pack","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","find","postProcessor","processors","addPostProcessor","handle","translator","processor","process","checkedLoadedFor","Translator","copy","changeLanguage","exists","interpolation","resolved","extractFromKey","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","ki","looksLikeObjectPath","nestingRegexp","translate","lastKey","overloadTranslationOptionHandler","returnDetails","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","getFallbackCodes","fallbackLng","saveMissingTo","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","na","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsZeroSuffixLookup","shouldUseIntlApi","needsContextHandling","codes","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","capitalize","string","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","specialCases","lowerCaseLng","part","cleanCode","isSupportedCode","load","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","compatibilityJSON","includes","Intl","PluralRules","plurals","createRules","addRule","getRule","needsPlural","rule","resolvedOptions","pluralCategories","getPluralFormsOfKey","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","defaultData","getPathWithDefaults","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","createCachedFormatter","formatter","Formatter","formats","NumberFormat","currency","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","list","ListFormat","addCached","mem","formatName","formatOptions","formatStr","optStr","rest","isNaN","parseInt","parseFormatStr","formatted","valOptions","formatParams","locale","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","state","queueLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","pendingCount","errors","q","pushPath","removePending","loadedKeys","fcName","tried","prepareLoading","loadOne","isUpdate","initImmediate","partialBundledLanguages","tDescription","transformOptions","I18n","inst","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","lu","languageDetector","detection","deferred","finish","initializedStoreOnce","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","li","lngInLngs","isLanguageChangingTo","setLngProps","setLng","cacheUserLanguage","async","detect","getFixedT","keyPrefix","fixedT","resultKey","setDefaultNamespace","lastLng","loadNotPending","loadState","precheck","preResult","loadNamespaces","loadLanguages","preloaded","newLngs","dir","cloneInstance","forkResourceStore","mergedOptions"],"sourceRoot":""}