{"version":3,"file":"index-B7RtkfKJ.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/@xsolla/login-sdk/lib/index.es6.js","../../src/lstorage.ts","../../src/ym.ts","../../src/xsolla.ts","../../src/i18n.ts","../../src/premium-plan.tsx","../../src/v8-config.ts","../../src/app.tsx","../../src/main.tsx"],"sourcesContent":["var n,l,u,t,i,o,r,f,e,c,s,a,h={},p=[],v=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){var l=n.parentNode;l&&l.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function k(n){return n.children}function b(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));P.__r=0}function S(n,l,u,t,i,o,r,f,e,c,s){var a,v,y,d,w,_=t&&t.__k||p,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=L(i,u,r,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a--:f==r+1?a++:f>r?s>e-r?a+=f-r:a--:f(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=p.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},b.prototype.render=k,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,e=0,c=F(!1),s=F(!0),a=0;export{b as Component,k as Fragment,E as cloneElement,G as createContext,_ as createElement,m as createRef,_ as h,D as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n=u.__.length&&u.__.push({}),u.__[n]}function h(n){return o=1,p(D,n)}function p(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=d(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function _(n,u){var i=d(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function T(n,r){var u=d(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=d(t++,10),i=h();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,p as useReducer,A as useRef,h as useState};\n//# sourceMappingURL=hooks.module.js.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nvar global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global$1.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar process = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\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\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\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$1)\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$1 = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +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\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && nextTick || _setImmediate);\n\n// *********************\n\nvar utils = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\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: noop$1,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\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\n// eslint-disable-next-line strict\nvar httpAdapter = null;\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 (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\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$1 = AxiosURLSearchParams.prototype;\n\nprototype$1.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype$1.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\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$1(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 */\nfunction 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$1;\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\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\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\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 hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\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 */\nconst hasStandardBrowserWebWorkerEnv = (() => {\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\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nvar utils$1 = /*#__PURE__*/Object.freeze({\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv,\n origin: origin\n});\n\nvar platform$2 = {\n ...utils$1,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform$2.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform$2.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\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\n if (name === '__proto__') return true;\n\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\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: ['xhr', 'http', 'fetch'],\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 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 utils.isReadableStream(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 (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\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$2.classes.FormData,\n Blob: platform$2.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\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 */\nvar parseHeaders = 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\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 if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\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\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 */\nfunction 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\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\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\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 */\nfunction 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\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\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\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n };\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs);\n }, threshold - passed);\n }\n }\n };\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(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 lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n};\n\nconst progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n};\n\nconst asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n\nvar isURLSameOrigin = platform$2.hasStandardBrowserEnv ?\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 its 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\nvar cookies = platform$2.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\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 */\nfunction 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\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 */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\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 */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : 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 */\nfunction 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 withXSRFToken: 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\nvar resolveConfig = (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform$2.hasStandardBrowserEnv || platform$2.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\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\n if (platform$2.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n};\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, 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 // 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 (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\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(_config.url);\n\n if (protocol && platform$2.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\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n };\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT));\n }, timeout);\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n };\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n};\n\nconst streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\n\nconst readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n};\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n };\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n};\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n};\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform$2.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n};\n\nvar fetchAdapter = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n };\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader);\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n isStreamResponse && onFinish();\n }, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\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\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\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 */\nfunction 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\nconst VERSION = \"1.7.4\";\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\nvar validator = {\n assertOptions,\n validators\n};\n\nconst validators$1 = 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 async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\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$1.transitional(validators$1.boolean),\n forcedJSONParsing: validators$1.transitional(validators$1.boolean),\n clarifyTimeoutError: validators$1.transitional(validators$1.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$1.function,\n serialize: validators$1.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\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\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 */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\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 */\nfunction isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst 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\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\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar js_cookie = createCommonjsModule(function (module, exports) {\n(function (factory) {\n\tvar registeredInModuleLoader;\n\t{\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n});\n\nvar APIError = /** @class */ (function (_super) {\r\n __extends(APIError, _super);\r\n function APIError(code) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.code = code;\r\n _this.name = _this.constructor.name;\r\n _this.message = code;\r\n Object.setPrototypeOf(_this, APIError.prototype);\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, APIError);\r\n }\r\n return _this;\r\n }\r\n return APIError;\r\n}(Error));\n\nvar SDKError = /** @class */ (function (_super) {\r\n __extends(SDKError, _super);\r\n function SDKError(message) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.message = message;\r\n _this.name = _this.constructor.name;\r\n _this.message = message;\r\n Object.setPrototypeOf(_this, SDKError.prototype);\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(_this, SDKError);\r\n }\r\n return _this;\r\n }\r\n return SDKError;\r\n}(Error));\n\n// Mapping for nginx geoip module country names\r\n// Made from this link: https://www.maxmind.com/en/geoip2-city-accuracy-comparison\r\nvar LANGUAGE_MAP = {\r\n ae: 'ar',\r\n bh: 'ar',\r\n dz: 'ar',\r\n eg: 'ar',\r\n iq: 'ar',\r\n jo: 'ar',\r\n km: 'km',\r\n kw: 'ar',\r\n lb: 'ar',\r\n ly: 'ar',\r\n ma: 'ar',\r\n mr: 'ar',\r\n om: 'ar',\r\n ps: 'ar',\r\n qa: 'ar',\r\n sa: 'ar',\r\n sd: 'ar',\r\n sy: 'ar',\r\n tn: 'ar',\r\n ye: 'ar',\r\n bg: 'bg',\r\n cz: 'cs',\r\n de: 'de',\r\n at: 'de',\r\n li: 'de',\r\n ch: 'de',\r\n es: 'es',\r\n ar: 'es',\r\n bo: 'es',\r\n cl: 'es',\r\n co: 'es',\r\n cr: 'es',\r\n cu: 'es',\r\n do: 'es',\r\n ec: 'es',\r\n eh: 'es',\r\n gq: 'es',\r\n gt: 'es',\r\n hn: 'es',\r\n mx: 'es',\r\n ni: 'es',\r\n pa: 'es',\r\n pe: 'es',\r\n pr: 'es',\r\n py: 'es',\r\n sv: 'es',\r\n uy: 'es',\r\n ve: 'es',\r\n fr: 'fr',\r\n bf: 'fr',\r\n bi: 'fr',\r\n bj: 'fr',\r\n bl: 'fr',\r\n cd: 'fr',\r\n cf: 'fr',\r\n cg: 'fr',\r\n ci: 'fr',\r\n dj: 'fr',\r\n ga: 'fr',\r\n gf: 'fr',\r\n gn: 'fr',\r\n gp: 'fr',\r\n ht: 'fr',\r\n lu: 'fr',\r\n mc: 'fr',\r\n mg: 'fr',\r\n ml: 'fr',\r\n mq: 'fr',\r\n nc: 'fr',\r\n ne: 'fr',\r\n pf: 'fr',\r\n pm: 'fr',\r\n re: 'fr',\r\n sc: 'fr',\r\n sn: 'fr',\r\n td: 'fr',\r\n tf: 'fr',\r\n tg: 'fr',\r\n wf: 'fr',\r\n yt: 'fr',\r\n il: 'he',\r\n hu: 'hu',\r\n it: 'it',\r\n sm: 'it',\r\n va: 'it',\r\n jp: 'ja',\r\n kr: 'ko',\r\n kp: 'ko',\r\n pt: 'pt',\r\n ao: 'pt',\r\n br: 'pt',\r\n cv: 'pt',\r\n gw: 'pt',\r\n mz: 'pt',\r\n st: 'pt',\r\n tl: 'pt',\r\n ro: 'ro',\r\n md: 'ro',\r\n ru: 'ru',\r\n kz: 'ru',\r\n ua: 'ru',\r\n by: 'ru',\r\n th: 'th',\r\n tr: 'tr',\r\n vn: 'vi',\r\n cn: 'zh',\r\n hk: 'zh',\r\n mo: 'zh',\r\n tw: 'zh',\r\n id: 'id',\r\n lo: 'lo',\r\n my: 'my',\r\n ph: 'ph',\r\n};\r\nvar SUPPORTED_LANGUAGES = [\r\n 'ar',\r\n 'bg',\r\n 'cs',\r\n 'de',\r\n 'en',\r\n 'es',\r\n 'fr',\r\n 'he',\r\n 'hu',\r\n 'it',\r\n 'ja',\r\n 'ko',\r\n 'pl',\r\n 'pt',\r\n 'ro',\r\n 'ru',\r\n 'th',\r\n 'tr',\r\n 'vi',\r\n 'zh',\r\n 'km',\r\n 'id',\r\n 'lo',\r\n 'my',\r\n 'ph',\r\n 'ne',\r\n];\n\nvar defaultLocale = 'en-XX';\r\nvar browserLanguages = [\r\n // In Chrome, navigator.language is the language of the browser UI, and is not guaranteed to be equal to navigator.languages[0].\r\n // See https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLanguage/languages\r\n navigator.language\r\n].concat(navigator.languages);\r\nvar getLocale = function (languages, preferredLocale) {\r\n var findInLanguages = [preferredLocale].concat(languages);\r\n var result = findInLanguages.find(function (lang) { return !!lang && SUPPORTED_LANGUAGES.includes(lang.substring(0, 2)); }) || defaultLocale;\r\n if (preferredLocale && result !== preferredLocale) {\r\n // tslint:disable-next-line:no-console\r\n console.error(\"Locale \" + result + \" cannot be applied, language code should be one of \" + SUPPORTED_LANGUAGES.join(', '));\r\n return defaultLocale;\r\n }\r\n return result;\r\n};\r\nvar getBrowserLocale = function (preferredLang) { return getLocale(browserLanguages, preferredLang); };\n\nvar ConfirmationType;\r\n(function (ConfirmationType) {\r\n ConfirmationType[\"CODE\"] = \"code\";\r\n ConfirmationType[\"LINK\"] = \"link\";\r\n})(ConfirmationType || (ConfirmationType = {}));\r\nvar PostMessageEvents;\r\n(function (PostMessageEvents) {\r\n PostMessageEvents[\"ThemeUpdate\"] = \"@xsolla-login/sdk:theme-update\";\r\n PostMessageEvents[\"Close\"] = \"@xsolla-login/sdk:close\";\r\n PostMessageEvents[\"Open\"] = \"@xsolla-login/sdk:open\";\r\n PostMessageEvents[\"Dimensions\"] = \"@xsolla-login/sdk:dimensions\";\r\n PostMessageEvents[\"PageOpen\"] = \"@xsolla-login/sdk:page:open\";\r\n PostMessageEvents[\"IframeOpen\"] = \"@xsolla-login/sdk:iframe:open\";\r\n PostMessageEvents[\"GetRedirectCode\"] = \"@xsolla-login/sdk:get-redirect-url\";\r\n PostMessageEvents[\"WidgetStep\"] = \"@xsolla-login/sdk:widget:step\";\r\n PostMessageEvents[\"GoogleOneTapOpen\"] = \"@xsolla-login/sdk:google-one-tap:open\";\r\n PostMessageEvents[\"GoogleOneTapSuccess\"] = \"@xsolla-login/sdk:google-one-tap:success\";\r\n PostMessageEvents[\"LoginSuccess\"] = \"@xsolla-login/sdk:login:success\";\r\n PostMessageEvents[\"LoginError\"] = \"@xsolla-login/sdk:login:error\";\r\n PostMessageEvents[\"SignupSuccess\"] = \"@xsolla-login/sdk:signup:success\";\r\n PostMessageEvents[\"SignupError\"] = \"@xsolla-login/sdk:signup:error\";\r\n PostMessageEvents[\"SocialLogin\"] = \"@xsolla-login/sdk:social-login\";\r\n PostMessageEvents[\"SocialLoginSuccess\"] = \"@xsolla-login/sdk:social-login-success\";\r\n PostMessageEvents[\"BabkaLogin\"] = \"@xsolla-login/sdk:babka-login\";\r\n PostMessageEvents[\"BabkaLoginPopup\"] = \"@xsolla-login/sdk:babka-login-popup\";\r\n PostMessageEvents[\"OpenBabkaPopupWidget\"] = \"@xsolla-login/sdk:open-babka-popup-widget\";\r\n PostMessageEvents[\"RequestAncestorsLocation\"] = \"@xsolla-login/sdk:request-ancestors-location\";\r\n PostMessageEvents[\"ResponseAncestorsLocation\"] = \"@xsolla-login/sdk:response-ancestors-location\";\r\n PostMessageEvents[\"BabkaPopupWidgetLoad\"] = \"@xsolla-login/sdk/babka-widget:open\";\r\n PostMessageEvents[\"BabkaPopupWidgetClose\"] = \"@xsolla-login/sdk/babka-widget:close\";\r\n})(PostMessageEvents || (PostMessageEvents = {}));\r\nvar WidgetPages;\r\n(function (WidgetPages) {\r\n WidgetPages[\"SignUpPage\"] = \"signUp\";\r\n WidgetPages[\"LogInPage\"] = \"logIn\";\r\n WidgetPages[\"LogInPresetPage\"] = \"logInUserPreset\";\r\n WidgetPages[\"ResetPasswordPage\"] = \"passwordReset\";\r\n WidgetPages[\"SetPasswordPage\"] = \"passwordSet\";\r\n WidgetPages[\"AskPage\"] = \"ask\";\r\n WidgetPages[\"ErrorPage\"] = \"error\";\r\n WidgetPages[\"SocialsPage\"] = \"socials\";\r\n WidgetPages[\"AgreementPage\"] = \"agreement\";\r\n WidgetPages[\"TwoFactorPage\"] = \"otp\";\r\n})(WidgetPages || (WidgetPages = {}));\r\nvar CloseSource;\r\n(function (CloseSource) {\r\n CloseSource[CloseSource[\"Button\"] = 0] = \"Button\";\r\n})(CloseSource || (CloseSource = {}));\n\nvar sendMessage = function (_a) {\r\n var message = _a.message, targetOrigin = _a.targetOrigin, target = _a.target, _b = _a.globalObject, globalObject = _b === void 0 ? window : _b;\r\n var windowParent = globalObject.parent;\r\n var isTopFrame = windowParent === globalObject;\r\n if (windowParent && !isTopFrame) {\r\n var messageType = message.type.replace('@xsolla/login-sdk', '@xsolla-login/sdk');\r\n switch (messageType) {\r\n case PostMessageEvents.Close:\r\n case PostMessageEvents.Open:\r\n case PostMessageEvents.Dimensions:\r\n case PostMessageEvents.WidgetStep:\r\n case PostMessageEvents.PageOpen:\r\n case PostMessageEvents.GetRedirectCode:\r\n case PostMessageEvents.GoogleOneTapOpen:\r\n case PostMessageEvents.LoginSuccess:\r\n case PostMessageEvents.LoginError:\r\n case PostMessageEvents.SignupSuccess:\r\n case PostMessageEvents.SignupError:\r\n case PostMessageEvents.SocialLogin:\r\n case PostMessageEvents.OpenBabkaPopupWidget:\r\n // @xsolla-login/sdk\r\n windowParent.postMessage(__assign({}, message), targetOrigin);\r\n break;\r\n case PostMessageEvents.ThemeUpdate:\r\n case PostMessageEvents.IframeOpen:\r\n case PostMessageEvents.GoogleOneTapSuccess:\r\n case PostMessageEvents.BabkaPopupWidgetLoad:\r\n case PostMessageEvents.RequestAncestorsLocation:\r\n case PostMessageEvents.ResponseAncestorsLocation:\r\n if (target !== undefined) {\r\n target.postMessage(__assign({}, message), targetOrigin);\r\n }\r\n break;\r\n case PostMessageEvents.BabkaLogin:\r\n windowParent.opener.postMessage(__assign({}, message), '*');\r\n break;\r\n }\r\n }\r\n else if (target !== undefined) {\r\n switch (message.type) {\r\n case PostMessageEvents.PageOpen:\r\n case PostMessageEvents.ThemeUpdate:\r\n case PostMessageEvents.GoogleOneTapSuccess:\r\n case PostMessageEvents.IframeOpen:\r\n case PostMessageEvents.BabkaLoginPopup:\r\n case PostMessageEvents.BabkaPopupWidgetLoad:\r\n case PostMessageEvents.RequestAncestorsLocation:\r\n case PostMessageEvents.ResponseAncestorsLocation:\r\n case PostMessageEvents.SocialLoginSuccess:\r\n target.postMessage(__assign({}, message), targetOrigin);\r\n break;\r\n }\r\n }\r\n};\n\nvar eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';\r\nvar eventer = window[eventMethod];\r\nvar prefix = eventMethod !== 'addEventListener' ? 'on' : '';\r\nvar attachEvent = function (event, func) {\r\n eventer(prefix + event, func, false);\r\n};\n\nfunction purify(obj) {\r\n if (obj === null || obj === void 0)\r\n return void 0;\r\n var result = Array.isArray(obj) ? [] : {};\r\n Object.keys(obj).forEach(function (key) {\r\n var prop = obj[key];\r\n if (typeof prop === 'object') {\r\n result[key] = purify(prop);\r\n }\r\n else if (prop !== '') {\r\n result[key] = prop;\r\n }\r\n });\r\n return result;\r\n}\n\nfunction merge$1(target, source) {\r\n if (target === void 0)\r\n return source;\r\n for (var prop in source) {\r\n if (prop in target && typeof source[prop] === 'object') {\r\n merge$1(target[prop], source[prop]);\r\n }\r\n else if (source[prop] !== void 0) {\r\n target[prop] = source[prop];\r\n }\r\n }\r\n return target;\r\n}\n\nvar getEmailFieldFromUrl = function () {\r\n var fieldsMapped = [];\r\n var urlParams = new URLSearchParams(window.location.search);\r\n var fields = urlParams.getAll('fields');\r\n if (fields.length !== 0) {\r\n var fieldsArray = fields[0].split(',');\r\n for (var _i = 0, fieldsArray_1 = fieldsArray; _i < fieldsArray_1.length; _i++) {\r\n var field = fieldsArray_1[_i];\r\n if (field === 'email') {\r\n fieldsMapped.push({\r\n name: 'email',\r\n required: true,\r\n type: 'email',\r\n validation: { regexps: [] },\r\n step: 0,\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n return fieldsMapped;\r\n};\n\nvar watch = createCommonjsModule(function (module) {\n(function () {\n var XsollaAnalytics = function (params) {\n var Config = {\n counterId: 0,\n clientId: 0,\n siteDomains: null,\n server: \"\",\n hitUrl: \"\",\n userParamsUrl: \"\",\n externalId: null,\n extraValues : \"\",\n hit : true,\n extLink: true,\n click: true,\n scroll: true,\n sendLoadMetrics: false,\n abParams: \"\",\n isBrowser: (typeof window !== 'undefined')\n };\n var ScrollTimer = null;\n var ScrollFirst = false;\n var ScrollMiddle = false;\n var ScrollBottom = false;\n var LCP = 0;\n var firstHiddenTime = 0;\n Config.isBrowser && (firstHiddenTime = document.visibilityState === 'hidden' ? 0 : Infinity);\n \n var Util = {\n isArray: function (a) {\n return \"function\" === typeof Array.isArray ? Array.isArray(a) : \"[object Array]\" === Object.prototype.toString.call(a)\n },\n isString: function (a) {\n return \"[object String]\" === Object.prototype.toString.call(a)\n },\n random: function (a, b) {\n 2 > arguments.length && (b = a, a = 0);\n 1 > arguments.length && (b = 1073741824);\n return Math.floor(Math.random() * (b - a)) + a\n },\n mergeObjects: function (obj, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) obj[key] = src[key];\n }\n return obj;\n },\n apiHelper: function(eventType, obj){\n if (eventType != 2) {\n ScrollFirst = false;\n ScrollMiddle = false;\n ScrollBottom = false;\n }\n var externalId = obj && obj.eid ? obj.eid : Config.externalId;\n var exv = obj && obj.exv ? JSON.stringify(obj.exv) : Config.extraValues;\n var abParams = obj && typeof obj.abParams === 'object' ? JSON.stringify(obj.abParams) : Config.abParams;\n var data = {\n et: eventType,\n eid: externalId\n };\n if (exv) {\n data.exv = exv;\n }\n if (abParams) {\n data.abParams = abParams;\n }\n if (typeof obj != \"object\") {\n obj = {};\n }\n obj = Util.mergeObjects(obj, data);\n return obj;\n }\n };\n var Browser = {\n firstContentfulPaintTime: function () {\n if (firstHiddenTime === 0) {\n return null\n }\n var FCP = 0;\n if (window.performance && window.performance.getEntriesByType) {\n var paints = window.performance.getEntriesByType('paint');\n for (var i = 0; i < paints.length; i++){\n if (\"first-contentful-paint\" === paints[i].name) {\n FCP = Math.round(paints[i].startTime);\n return FCP < firstHiddenTime ? FCP : null;\n }\n }\n return null;\n }\n if (\"object\" === typeof window.chrome && window.chrome.loadTimes) {\n var a = window.chrome.loadTimes();\n if (a.requestTime && a.firstPaintTime && window.performance && window.performance.timing) {\n FCP = Math.round(1E3 * a.firstPaintTime - window.performance.timing.navigationStart);\n return FCP < firstHiddenTime ? FCP : null;\n }\n } else if (window.performance && window.performance.timing && (a = window.performance.timing,\n a.navigationStart && a.msFirstPaint)) {\n FCP = a.msFirstPaint - a.navigationStart;\n return FCP < firstHiddenTime ? FCP : null;\n }\n return null\n },\n largestContentfulPaintTime: function() {\n try {\n function updateLCP(entry) {\n if (entry.startTime < firstHiddenTime) {\n LCP = Math.round(entry.startTime);\n // отправить LCP для страниц без скролла\n if (Config.sendLoadMetrics) {\n var scrollHeight = document.documentElement.scrollHeight || 0;\n var pageHeight = document.documentElement.clientHeight || 0;\n if (pageHeight >= scrollHeight) {\n Api.eventForLCP();\n }\n }\n }\n }\n var po = new PerformanceObserver(function(entryList) {\n var entries = entryList.getEntries();\n for (var i = 0; i < entries.length; i++) {\n updateLCP(entries[i]);\n }\n });\n po.observe({type: 'largest-contentful-paint', buffered: true});\n \n document.addEventListener('visibilitychange', function f(){\n if (document.visibilityState === 'hidden') {\n document.removeEventListener('visibilitychange', f, true);\n var rec = [];\n if (po.takeRecords) {\n rec = po.takeRecords();\n }\n for (var i = 0; i < rec.length; i++) {\n updateLCP(rec[i], po);\n }\n po.disconnect();\n }\n }, true);\n } catch (e) {}\n },\n netType: function () {\n var a = (navigator.connection || {type: \"\"}).type;\n return a === undefined ? \"\" : a\n },\n getLanguage: function () {\n var a = (window.navigator ? navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage : \"\").toLowerCase();\n return Util.isString(a) ? a : \"\"\n },\n getJavaEnabled: function () {\n try {\n return navigator.javaEnabled()\n } catch (a) {\n return !1\n }\n },\n getNotificationPermission: function () {\n try {\n var a = Notification.permission;\n } catch (b) {\n }\n switch (a) {\n case \"denied\":\n return 0;\n case \"granted\":\n return 1\n }\n },\n isIframe: function () {\n try {\n return window.top !== window.self\n } catch (a) {\n return !1\n }\n },\n getCookiesEnabled: function () {\n if (navigator.cookieEnabled) return true;\n // set and read cookie\n document.cookie = \"cookietest=1\";\n var ret = document.cookie.indexOf(\"cookietest=\") !== -1;\n // delete cookie\n document.cookie = \"cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT\";\n return ret;\n },\n };\n \n var Time = {\n getSeconds: function () {\n return Math.round(+new Date / 1E3)\n },\n getTimezone: function () {\n return -(new Date).getTimezoneOffset()\n }\n };\n \n var Cookies = {\n getVid: function () {\n var generateNew = Document.isFromAd();\n var vid = generateNew ? 0 : this.readM(\"vid\");\n \n if (!vid) {\n vid = Time.getSeconds() + \"\" + Util.random();\n }\n this.create(\"vid\", vid, 30);\n \n return vid;\n },\n getUid: function () {\n this.globalDomain();\n var uid = this.readM(\"uid\");\n var uidLS = this.readLocalStorage(\"uid\");\n \n if (!uid && !uidLS) {\n uid = Time.getSeconds() + \"\" + Util.random();\n this.create(\"uid\", uid, 1036800);\n this.createLocalStorage(\"uid\", uid);\n } else if (!uid && uidLS) {\n uid = uidLS;\n this.create(\"uid\", uidLS, 1036800);\n } else if (uid && !uidLS) {\n this.createLocalStorage(\"uid\", uid);\n }\n return uid;\n },\n getXsollauid: function (id) {\n this.globalDomain();\n var xid = this.readM(\"xsollauid\");\n var xidLS = this.readLocalStorage(\"xsollauid\");\n \n if (!id) {\n if (xid && !xidLS) {\n this.createLocalStorage(\"xsollauid\", xid);\n } else if (!xid && xidLS) {\n this.create(\"xsollauid\", xidLS, 5184000);\n }\n return xid || xidLS;\n }\n \n this.create(\"xsollauid\", id, 5184000);\n this.createLocalStorage(\"xsollauid\", id);\n \n return id;\n },\n createLocalStorage: function (name, value) {\n try {\n localStorage.setItem(this._prepareName(name), encodeURIComponent(value));\n } catch(e){}\n },\n \n create: function (name, value, minutes) {\n var b, a = [this._prepareName(name) + \"\\x3d\" + encodeURIComponent(value)];\n minutes && (b = new Date, b.setTime(b.getTime() + 6E4 * minutes), a.push(\"expires\\x3d\" + b.toGMTString()));\n this._domain && a.push(\"domain\\x3d\" + this._domain);\n a.push(\"path\\x3d/\");\n try {\n document.cookie = a.join(\";\");\n } catch (d) {\n }\n },\n globalDomain: function () {\n this._domain = Document.extractHostname(window.location.host);\n return this._domain\n },\n readM: function (name) {\n name = this._prepareName(name);\n return this.read(name)\n },\n read: function (name) {\n try {\n var b = document.cookie;\n } catch (c) {\n }\n return b && b.match(new RegExp(\"(?:^|;\\\\s*)\" + name + \"\\x3d([^;]*)\")) ? decodeURIComponent(RegExp.$1) : null\n },\n readLocalStorage: function (name) {\n name = this._prepareName(name);\n try{\n return localStorage.getItem(name);\n } catch(d) {\n return null;\n }\n },\n erase: function (name) {\n this.create(name, \"\", -1);\n },\n _prepareName: function (name) {\n if (name === 'xsollauid') {\n return name\n }\n return \"_mm_\" + name + (Config.counterId ? \"_\" + Config.counterId : \"\")\n }\n };\n \n var Document = {\n getDocumentCharset: function () {\n return (\"\" + (document.characterSet || document.charset || \"\")).toLowerCase()\n },\n getRootElement: function () {\n var a = document.documentElement;\n return \"CSS1Compat\" === document.compatMode ? a : document.body || a\n },\n getViewportSize: function () {\n var a = this.getRootElement();\n return [a.clientWidth || window.innerWidth, a.clientHeight || window.innerHeight]\n },\n getDocumentTitle: function () {\n var a = document.title;\n \"string\" !== typeof a && (a = (a = document.getElementsByTagName(\"title\")) && a.length ? a[0].innerHTML : \"\");\n return a\n },\n isFromAd: function () {\n if (!document.referrer) {\n return false;\n }\n \n var adSystemSources = ['adfox', 'admitad', 'adnews', 'adnous', 'adriver', 'advmaker', 'aport', 'aport.ru', 'AvitoPromo', 'AvitoContext', 'begun', 'bing', 'B2BContext', 'criteo', 'directadvert', 'directadvert.ru', 'drivenetwork', 'facebook', 'fb', 'facebook.com', 'fb.com', 'giraffio', 'google', 'adwords', 'adsense', 'instagram', 'kavanga', 'ladycenter', 'link', 'magna', 'marketgid', 'medialand', 'merchant', 'moimir', 'nnn', 'nnn.ru', 'odnoklassniki', 'price', 'price.ru', 'prre', 'mytarget', 'targetmailru', 'taboola', 'torg.mail.ru', 'trorer', 'rorer', 'Ttarget', 'ubn.ua', 'banner.ua', 'videonow', 'vkontakte', 'vk', 'vk.com', 'whisla', 'youtube'];\n var adSystemMediums = [\"cpc\", \"ppc\", \"paidsearch\", \"cpv\", \"cpa\", \"cpp\", \"display\", \"cpm\", \"banner\"];\n \n var queryParams = window.location.search.replace(\"?\", \"\").split('&');\n var hashParams = window.location.hash.replace(\"#\", \"\").split('&');\n var params = hashParams.concat(queryParams);\n \n var isAd = false;\n params.forEach(function (item) {\n var p = item.split(\"=\");\n if (p[0] === \"utm_source\" && p[1] && adSystemSources.indexOf(p[1])) {\n return isAd = true;\n }\n if (p[0] === \"utm_medium\" && p[1] && adSystemMediums.indexOf(p[1])) {\n return isAd = true;\n }\n });\n \n return isAd;\n },\n extractHostname: function (url) {\n if (url === undefined || url === '') {\n return '';\n }\n var hostname;\n //find & remove protocol (http, ftp, etc.) and get hostname\n \n if (url.indexOf(\"://\") > -1) {\n hostname = url.split('/')[2];\n } else {\n hostname = url.split('/')[0];\n }\n \n //find & remove port number\n hostname = hostname.split(':')[0];\n //find & remove \"?\"\n hostname = hostname.split('?')[0];\n hostname = hostname.replace(/^www\\./, '');\n hostname = hostname.replace('#', '');\n \n return hostname;\n },\n isExternal: function (linkUrl) {\n var hostname = this.extractHostname(linkUrl);\n if (Array.isArray(Config.siteDomains)) {\n if (Config.siteDomains.indexOf(hostname) > -1 || hostname === '') {\n return false;\n }\n } else {\n return !(this.extractHostname(window.location.hostname) === hostname || hostname === '')\n }\n return true;\n },\n isInternal: function(linkUrl){\n var hostname = this.extractHostname(linkUrl);\n var currHostname = this.extractHostname(window.location.hostname);\n if (currHostname === hostname) {\n return false;\n }\n if (Array.isArray(Config.siteDomains)) {\n if (Config.siteDomains.indexOf(hostname) > -1 || hostname === '') {\n return true;\n }\n } else {\n return true;\n }\n return false;\n }\n };\n \n var Request = {\n send: function (url, data) {\n url === Config.hitUrl && (data.ident = this.prepareBrowserInfo());\n if (Config.xsollauid && url.indexOf('_xm') === -1) {\n var param = '_xm=' + Config.xsollauid;\n url = url.indexOf('?') === -1 ? url + '?' + param : url + '&' + param;\n }\n var body = typeof data !== 'string' ? JSON.stringify(data) : data;\n if (!Config.xsollauid && Config.hitCount === 0) {\n Config.hitCount = 1;\n this.sendXHR(url, body);\n } else if (!Config.xsollauid && Config.hitCount === 1) {\n setTimeout(function () {\n Config.hitCount = 2;\n Request.send(url, data);\n }, 1000);\n } else if (!this.sendBeacon(url, body)) {\n this.sendXHR(url, body);\n }\n },\n sendUserParams: function (data) {\n data.clid = Config.clientId;\n data.cid = Config.counterId;\n var body = JSON.stringify(data);\n var url = Config.userParamsUrl;\n if (!this.sendBeacon(url, body)) {\n this.sendXHR(url, body);\n }\n },\n \n sendBeacon: function (url, body) {\n if (\"function\" === typeof navigator.sendBeacon && navigator.onLine) {\n navigator.sendBeacon(url, body);\n return true;\n }\n return false;\n },\n sendXHR: function (url, body) {\n if (window.XMLHttpRequest) {\n var xhr = new XMLHttpRequest;\n try {\n xhr.open(\"POST\", url, true);\n } catch (e) {\n return false\n }\n xhr.timeout = 10000;\n xhr.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\n xhr.withCredentials = true;\n xhr.ontimeout = function () {\n Request.sendXHR(url, body);\n };\n xhr.onload = function () {\n var xsollauidFromUrl = Request.getValueFromUrl(xhr.responseURL, '_xm');\n if (xsollauidFromUrl && xsollauidFromUrl !== Config.xsollauid) {\n Config.xsollauid = Cookies.getXsollauid(xsollauidFromUrl);\n } else {\n var xsollauidFromBody = Request.getValueFromBody(xhr.responseText, 'xsollauid');\n if (xsollauidFromBody && xsollauidFromBody !== Config.xsollauid) {\n Config.xsollauid = Cookies.getXsollauid(xsollauidFromBody);\n }\n }\n };\n xhr.send(body);\n return true;\n }\n return false;\n },\n getValueFromUrl: function(url, key) {\n if (url && url.indexOf(key + '=') > -1) {\n var regexp = new RegExp('https?:\\/\\/.*' + key + '=([^&]*)');\n var valueFromURL = url.match(regexp);\n if (valueFromURL && valueFromURL.length > 1) {\n return valueFromURL[1];\n }\n }\n return null;\n },\n getValueFromBody: function(body, key) {\n try {\n var valueFromBody = body ? JSON.parse(body)[key] : null;\n } catch (e) {\n valueFromBody = null;\n }\n return valueFromBody;\n },\n setXsollauidFromUrl: function (url) {\n var params = Request.getValueFromUrl(url, '_xm');\n if (params) {\n params = params.split('.');\n if (params && params.length === 2 && params[0] === '' + Config.counterId && params[1] !== Config.xsollauid) {\n Config.xsollauid = Cookies.getXsollauid(params[1]);\n }\n } else {\n params = Request.getValueFromUrl(url, '_xsollauid');\n if (params && params !== Config.xsollauid) {\n Config.xsollauid = Cookies.getXsollauid(params);\n }\n }\n },\n prepareBrowserInfo: function () {\n var p = {};\n var screen = window.screen;\n \n var ntf = Browser.getNotificationPermission();\n ntf !== \"\" && (p.ntf = ntf);\n var net = Browser.netType();\n net !== \"\" && (p.net = net);\n \n p.t = Document.getDocumentTitle();\n p.pc = Document.getDocumentCharset();\n p.tz = Time.getTimezone();\n \n var vs = Document.getViewportSize();\n p.wcw = vs[0];\n p.wch = vs[1];\n \n p.plt = Browser.firstContentfulPaintTime();\n p.lcp = Config.sendLoadMetrics ? LCP : 0;\n \n p.la = Browser.getLanguage();\n p.j = Browser.getJavaEnabled() ? 1 : 0;\n \n p.clid = Config.clientId;\n p.cid = Config.counterId;\n p.vid = Cookies.getVid();\n p.c = Browser.getCookiesEnabled() ? 1 : 0;\n p.sw = screen.width;\n p.sh = screen.height;\n p.sc = screen.colorDepth || screen.pixelDepth;\n Browser.isIframe() && (p.ifr = 1);\n \n var yid = Cookies.read(\"_ym_uid\");\n if (yid) {\n p.yid = yid;\n }\n try {\n var ga = Cookies.read(\"_ga\");\n if (ga.length > 0) {\n ga = ga.split(\".\");\n p.gaid = ga[2] + \".\" + ga[3];\n }\n } catch (e) {\n }\n var pv = Cookies.read(\"paystation_visit\");\n if (pv) {\n p.pv = pv;\n }\n var cv = Cookies.read(\"corpsite_visit\");\n if (cv) {\n p.cv = cv;\n }\n var pav = Cookies.read(\"pa_visit\");\n if (pav) {\n p.pav = pav;\n }\n var dv = Cookies.read(\"dev_visit\");\n if (dv) {\n p.dv = dv;\n }\n var fvp = Cookies.read(\"first_visit\");\n if (fvp) {\n p.fvp = fvp;\n }\n return p\n }\n };\n \n var Events = {\n setHandlers: function (hit, extLink, click, scroll, sendLoadMetrics, crossDomainTracking) {\n sendLoadMetrics && this.documentVisibilityChange();\n sendLoadMetrics && this.documentReadyEvent(Browser.largestContentfulPaintTime);\n hit && this.documentReadyEvent(this.onDocumentReady);\n extLink && this.documentReadyEvent(this.clickEvent);\n click && this.documentReadyEvent(this.selectorEvent);\n scroll && this.documentReadyEvent(this.scrollEvent);\n crossDomainTracking && this.documentReadyEvent(this.externalTransitionEvent);\n },\n documentReadyEvent: function (func) {\n if (document.attachEvent ? document.readyState === \"complete\" : document.readyState !== \"loading\") {\n func();\n } else {\n document.addEventListener('DOMContentLoaded', func);\n }\n },\n documentVisibilityChange: function() {\n document.addEventListener('visibilitychange', function fn(e){\n if (document.visibilityState === 'hidden') {\n firstHiddenTime = Math.min(firstHiddenTime, Math.round(e.timeStamp));\n document.removeEventListener('visibilitychange', fn);\n }\n });\n },\n clickEvent: function () {\n var Anchors = document.getElementsByTagName(\"a\");\n for (var i = 0; i < Anchors.length; i++) {\n Events.setEvents(Anchors[i], \"click\", Events.onClick);\n }\n },\n setEvents: function (el, eventType, func) {\n el.addEventListener ? el.addEventListener(eventType, func) : el.attachEvent && el.attachEvent(\"on\" + eventType, func);\n },\n onDocumentReady: function () {\n var url = window.location.href;\n var data = {\n et: 1,\n url: url,\n eid: Config.externalId,\n exv: Config.extraValues,\n abParams: Config.abParams\n };\n \n // не нужно отправлять редирект с дефолтным merchant_id\n if (data.eid && data.eid === 2340) {\n return\n }\n \n if (document.referrer) {\n data.referer = document.referrer;\n if (!Document.isExternal(data.referer)) {\n data.ss = 1;\n }\n Request.setXsollauidFromUrl(url);\n }\n Request.send(Config.hitUrl, data);\n },\n onClick: function () {\n if (Document.isExternal(this.href)) {\n Request.send(Config.hitUrl, {\n et: 2,\n referer: window.location.href,\n url: this.href,\n eid: Config.externalId,\n exv: Config.extraValues,\n abParams: Config.abParams\n });\n }\n },\n selectorEvent: function () {\n var Anchors = document.querySelectorAll(\"[data-analytics]\");\n for (var i = 0; i < Anchors.length; i++) {\n Events.setEvents(Anchors[i], \"click\", Events.onSelectorClick);\n }\n },\n onSelectorClick: function () {\n Request.send(Config.hitUrl, {\n et: 3,\n en: this.dataset.analytics,\n url: window.location.href,\n eid: Config.externalId,\n exv: Config.extraValues,\n abParams: Config.abParams\n });\n },\n scrollEvent: function () {\n Events.setEvents(window, \"scroll\", Events.onScroll);\n },\n onScroll: function () {\n if (ScrollTimer !== null) {\n clearTimeout(ScrollTimer);\n }\n ScrollTimer = setTimeout(function () {\n // отправляем скролл только если страница не помещается в экран\n var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n var scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight;\n if (!ScrollFirst && scrollTop > 0) {\n ScrollFirst = true;\n Request.send(Config.hitUrl, {\n et: 10,\n url: window.location.href,\n eid: Config.externalId,\n exv: Config.extraValues,\n abParams: Config.abParams\n });\n }\n if (!ScrollMiddle && 2 * scrollTop > (scrollHeight - document.documentElement.clientHeight)) {\n ScrollMiddle = true;\n Request.send(Config.hitUrl, {\n et: 11,\n url: window.location.href,\n eid: Config.externalId,\n exv: Config.extraValues,\n abParams: Config.abParams\n });\n }\n if (!ScrollBottom && scrollTop >= (scrollHeight - document.documentElement.clientHeight) * 0.9) {\n ScrollBottom = true;\n Request.send(Config.hitUrl, {\n et: 12,\n url: window.location.href,\n eid: Config.externalId,\n exv: Config.extraValues,\n abParams: Config.abParams\n });\n }\n \n \n }, 150);\n },\n onFormSubmit: function () {\n },\n externalTransitionEvent: function() {\n Events.setEvents(document, \"mousedown\", Events.onExternalTransition);\n Events.setEvents(document, \"keyup\", Events.onExternalTransition);\n },\n onExternalTransition: function(e) {\n e = e || window.event;\n a: {\n var trg = e.target || e.srcElement;\n for (e = 100; trg && 0 < e; ) {\n if (trg.href && trg.nodeName.match(/^a(?:rea)?$/i)) {\n var l = trg;\n break a\n }\n trg = trg.parentNode;\n e--;\n }\n l = {};\n }\n if ((\"http:\" === l.protocol || \"https:\" === l.protocol) && l.href && Document.isInternal(l.href)) {\n if (!(l.href.indexOf('_xm=') > -1) && Config.xsollauid && Config.counterId) {\n var newParam = '_xm=' + Config.counterId + '.' + Config.xsollauid;\n l.href = l.href.indexOf('?') !== -1 ? l.href + '&' + newParam : l.href + '?' + newParam;\n }\n }\n }\n };\n \n var Api = {\n hit: function (url, obj) {\n if (!Config.isBrowser) { return }\n var dataObj = Util.apiHelper(1, obj);\n var ref = (window.location != window.parent.location) ? document.referrer : document.location.href;\n var refererUrl = dataObj && dataObj.referer ? dataObj.referer : ref;\n dataObj.referer = refererUrl;\n if (dataObj.referer != document.location.href) {\n Request.setXsollauidFromUrl(url);\n }\n dataObj.url = url;\n Request.send(Config.hitUrl, dataObj);\n },\n externalLink: function (url, obj) {\n if (!Config.isBrowser) { return }\n var dataObj = Util.apiHelper(2, obj);\n dataObj.referer = window.location.href;\n dataObj.url = url;\n Request.send(Config.hitUrl, dataObj);\n },\n elementClick: function (name, obj) {\n if (!Config.isBrowser) { return }\n var dataObj = Util.apiHelper(3, obj);\n dataObj.url = window.location.href;\n dataObj.en = name;\n Request.send(Config.hitUrl, dataObj);\n },\n formData: function (name, formData, obj) {\n if (!Config.isBrowser) { return }\n var dataObj = Util.apiHelper(4, obj);\n dataObj.url = window.location.href;\n var formDataStr = formData ? JSON.stringify(formData) : \"\";\n dataObj.form = formDataStr;\n dataObj.en = name;\n Request.send(Config.hitUrl, dataObj);\n },\n customEvent: function (name, obj) {\n if (!Config.isBrowser) { return }\n var dataObj = Util.apiHelper(5, obj);\n dataObj.url = window.location.href;\n dataObj.en = name;\n Request.send(Config.hitUrl, dataObj);\n },\n eventForLCP: function () {\n if (!Config.isBrowser) { return }\n var dataObj = {\n et: 6,\n url: window.location.href\n };\n Request.send(Config.hitUrl, dataObj);\n },\n setABParams: function (obj) {\n if (!Config.isBrowser) { return }\n Config.abParams = typeof obj === 'object' ? JSON.stringify(obj) : \"\";\n },\n setUserParams: function (obj) {\n var dataObj = typeof obj != 'object' ? \"\" : {uprm: obj};\n dataObj && Request.sendUserParams(dataObj);\n },\n addXsollauidToUrl: function(url) {\n if (url.indexOf('_xsollauid\\x3d') > -1) { return url }\n var xuid = Cookies.getXsollauid();\n var xuidParam = xuid ? '_xsollauid\\x3d' + xuid : '';\n var newUrl = xuidParam ? (url.indexOf('?') !== -1 ? url + '&' + xuidParam : url + '?' + xuidParam) : url;\n return newUrl\n },\n sendCustomData: function (route, data) {\n var url = route ? Config.server + '/' + route : \"\";\n var xuidParam = Config.xsollauid ? '_xm\\x3d' + Config.xsollauid : '';\n url = xuidParam ? (url.indexOf('?') !== -1 ? url + '&' + xuidParam : url + '?' + xuidParam) : url;\n url && Request.send(url, data);\n }\n };\n\n Config.counterId = params.id;\n Config.siteDomains = params.siteDomains;\n var server = params.server.match(/(https?:\\/\\/[^\\/]*)/g);\n Config.server = server && server.length ? server[0] : console.log('Не удалось извлечь адрес сервера! Установлено значение по умолчанию - https://datagather.xsolla.com') || 'https://datagather.xsolla.com';\n Config.hitUrl = Config.server + '/hit';\n Config.userParamsUrl = Config.server + '/users_params';\n Config.externalId = params.externalId || params.merchantId;\n Config.extraValues = params.extraValues ? JSON.stringify(params.extraValues) : \"\";\n Config.hit = typeof params.hit != \"undefined\" ? params.hit : true;\n Config.extLink = typeof params.extLink != \"undefined\" ? params.extLink : true;\n Config.click = typeof params.click != \"undefined\" ? params.click : true;\n Config.scroll = typeof params.scroll != \"undefined\" ? params.scroll : true;\n Config.sendLoadMetrics = typeof params.sendLoadMetrics != \"undefined\" ? params.sendLoadMetrics : false;\n Config.crossDomainTracking = typeof params.crossDomainTracking != \"undefined\" ? params.crossDomainTracking : true;\n Config.hitCount = 0;\n if (Config.isBrowser) {\n Config.clientId = Cookies.getUid();\n Config.visitId = Cookies.getVid();\n Config.xsollauid = params.xsollauid || Cookies.getXsollauid();\n params.abParams && Api.setABParams(params.abParams);\n Config.server && Config.counterId && Events.setHandlers(Config.hit, Config.extLink, Config.click, Config.scroll, Config.sendLoadMetrics, Config.crossDomainTracking);\n params.userParams && Api.setUserParams(params.userParams);\n }\n return Api;\n };\n\n if (typeof window !== 'undefined') {\n window.XsollaAnalytics = XsollaAnalytics;\n } else {\n module.exports = XsollaAnalytics;\n }\n})();\n});\n\nvar MetrikaEventNames;\r\n(function (MetrikaEventNames) {\r\n MetrikaEventNames[\"initiate\"] = \"login-widget_sign-in_initiate\";\r\n MetrikaEventNames[\"secure_account\"] = \"login-widget_sign-in_secure-account\";\r\n MetrikaEventNames[\"email_confirm\"] = \"login-widget_email-verification_confirm\";\r\n MetrikaEventNames[\"confirm_secure_email\"] = \"login-widget_email-verification_secure-confirm\";\r\n MetrikaEventNames[\"phone_confirm\"] = \"login-widget_phone-verification_confirm\";\r\n MetrikaEventNames[\"confirm_secure_phone\"] = \"login-widget_phone-verification_secure-confirm\";\r\n MetrikaEventNames[\"sign_up\"] = \"login-widget_sign-up_email\";\r\n MetrikaEventNames[\"reset_pass_init\"] = \"login-widget_reset-pass_initiate\";\r\n MetrikaEventNames[\"widget_open\"] = \"login-widget_opening_initiate\";\r\n MetrikaEventNames[\"performance\"] = \"widget_performance\";\r\n MetrikaEventNames[\"performanceJSLoad\"] = \"widget_performance_js_load\";\r\n MetrikaEventNames[\"performanceRequest\"] = \"widget_performance_request\";\r\n MetrikaEventNames[\"pageOpen\"] = \"widget_page_open\";\r\n MetrikaEventNames[\"passwordlessAuthDeclined\"] = \"passwordless_auth_declined\";\r\n MetrikaEventNames[\"attemptToInputRussianLocalPhone\"] = \"attempt_to_input_russian_local_phone\";\r\n MetrikaEventNames[\"babka_login_consent_open\"] = \"babka-login_consent_open\";\r\n MetrikaEventNames[\"babka_login_consent_allow\"] = \"babka-login_consent_allow\";\r\n MetrikaEventNames[\"babka_login_consent_deny\"] = \"babka-login_consent_deny\";\r\n MetrikaEventNames[\"babka_login_consent_error\"] = \"babka-login_consent_error\";\r\n})(MetrikaEventNames || (MetrikaEventNames = {}));\r\nvar SocialPosition;\r\n(function (SocialPosition) {\r\n SocialPosition[\"primary\"] = \"primary\";\r\n SocialPosition[\"secondary\"] = \"secondary\";\r\n SocialPosition[\"other\"] = \"other\";\r\n})(SocialPosition || (SocialPosition = {}));\r\nvar TRACK_ID_COOKIE_NAME = 'xl_track_id';\r\n// Closure for projectId and trackId to pass it to the analytics methods\r\nvar projectId = '';\r\nvar trackId = '';\r\nvar initAnalytics = function (_a) {\r\n var passedProjectId = _a.projectId, passedTrackId = _a.trackId, analyticsProductName = _a.analyticsProductName, sendLoadMetrics = _a.sendLoadMetrics;\r\n try {\r\n var loginDomains = ['login-widget.xsolla.com'];\r\n var babkaLoginDomains = loginDomains.concat(['account.xsolla.com']);\r\n projectId = passedProjectId;\r\n trackId = passedTrackId;\r\n var extraValues = {\r\n projectId: projectId,\r\n trackId: trackId,\r\n };\r\n if (analyticsProductName) {\r\n extraValues.productName = analyticsProductName;\r\n }\r\n var commonParams = {\r\n extraValues: extraValues,\r\n sendLoadMetrics: sendLoadMetrics,\r\n server: 'https://datagather.xsolla.com/hit',\r\n externalId: projectId,\r\n };\r\n window.XA = new window.XsollaAnalytics(__assign({}, commonParams, { id: 2222, siteDomains: loginDomains }));\r\n window.XA_BabkaLogin = new window.XsollaAnalytics(__assign({}, commonParams, { id: 2002, hit: false, extLink: false, click: false, scroll: false, siteDomains: babkaLoginDomains }));\r\n return true;\r\n }\r\n catch (e) {\r\n return e;\r\n }\r\n};\r\nvar getMetrikaEventName = function (eventName) {\r\n if (typeof eventName === 'object') {\r\n var block = eventName.block, section = eventName.section, action = eventName.action;\r\n return \"lg_\" + block + \"_\" + section + \"_\" + action;\r\n }\r\n return \"lg_\" + eventName;\r\n};\r\nvar enrichExtraValues = function (options) {\r\n var richOptions = __assign({}, options, { exv: __assign({}, (options && options.exv ? options.exv : {}), { projectId: projectId, trackId: '' }) });\r\n richOptions.exv.trackId = getTrackId() || trackId || '';\r\n return richOptions;\r\n};\r\nvar getTrackId = function () {\r\n return js_cookie.get(TRACK_ID_COOKIE_NAME);\r\n};\r\nvar addEvent = function (eventName, options) {\r\n var event = getMetrikaEventName(eventName);\r\n if (window.XA) {\r\n var richOptions = enrichExtraValues(options);\r\n window.XA.elementClick(event, richOptions);\r\n }\r\n};\r\nvar openEvent = function (url, options) {\r\n if (window.XA) {\r\n var richOptions = enrichExtraValues(options);\r\n window.XA.hit(url, richOptions);\r\n }\r\n};\r\nvar addBabkaLoginEvent = function (eventName, options) {\r\n if (window.XA_BabkaLogin) {\r\n var richOptions = enrichExtraValues(options);\r\n window.XA_BabkaLogin.elementClick(eventName, richOptions);\r\n }\r\n};\n\n// Object for country to region mapping for social ranking\r\n// 1 - Europe\r\n// 2 - China\r\n// 3 - Korea\r\n// 4 - CIS\r\n// 5 - America\r\n// 6 - World (All other countries)\r\nvar regionMap = {\r\n AD: 6,\r\n AE: 6,\r\n AF: 6,\r\n AG: 6,\r\n AI: 6,\r\n AL: 1,\r\n AM: 4,\r\n AO: 6,\r\n AQ: 6,\r\n AR: 4,\r\n AS: 5,\r\n AT: 1,\r\n AU: 6,\r\n AW: 5,\r\n AX: 1,\r\n AZ: 4,\r\n BA: 1,\r\n BB: 5,\r\n BD: 6,\r\n BE: 1,\r\n BF: 6,\r\n BG: 1,\r\n BH: 6,\r\n BI: 6,\r\n BJ: 6,\r\n BL: 5,\r\n BM: 5,\r\n BN: 6,\r\n BO: 5,\r\n BQ: 5,\r\n BR: 5,\r\n BS: 5,\r\n BT: 6,\r\n BV: 6,\r\n BW: 6,\r\n BY: 4,\r\n BZ: 5,\r\n CA: 5,\r\n CC: 5,\r\n CD: 6,\r\n CF: 6,\r\n CG: 6,\r\n CH: 1,\r\n CI: 6,\r\n CK: 6,\r\n CL: 1,\r\n CM: 6,\r\n CN: 2,\r\n CO: 1,\r\n CR: 1,\r\n CU: 1,\r\n CV: 6,\r\n CW: 5,\r\n CX: 6,\r\n CY: 1,\r\n CZ: 1,\r\n DE: 1,\r\n DJ: 6,\r\n DK: 1,\r\n DM: 5,\r\n DO: 5,\r\n DZ: 6,\r\n EC: 5,\r\n EE: 1,\r\n EG: 6,\r\n EH: 6,\r\n ER: 6,\r\n ES: 1,\r\n ET: 6,\r\n FI: 1,\r\n FJ: 6,\r\n FK: 5,\r\n FM: 5,\r\n FO: 6,\r\n FR: 1,\r\n GA: 6,\r\n GB: 1,\r\n GD: 5,\r\n GE: 4,\r\n GF: 5,\r\n GG: 1,\r\n GH: 6,\r\n GI: 1,\r\n GL: 6,\r\n GM: 6,\r\n GN: 6,\r\n GP: 5,\r\n GQ: 6,\r\n GR: 1,\r\n GS: 1,\r\n GT: 5,\r\n GU: 6,\r\n GW: 6,\r\n GY: 6,\r\n HK: 2,\r\n HM: 6,\r\n HN: 5,\r\n HR: 1,\r\n HT: 5,\r\n HU: 1,\r\n ID: 6,\r\n IE: 1,\r\n IL: 6,\r\n IM: 1,\r\n IN: 6,\r\n IO: 6,\r\n IQ: 6,\r\n IR: 6,\r\n IS: 6,\r\n IT: 1,\r\n JE: 1,\r\n JM: 5,\r\n JO: 6,\r\n JP: 6,\r\n KE: 6,\r\n KG: 4,\r\n KH: 6,\r\n KI: 6,\r\n KM: 6,\r\n KN: 5,\r\n KP: 3,\r\n KR: 3,\r\n KW: 6,\r\n KY: 5,\r\n KZ: 4,\r\n LA: 6,\r\n LB: 6,\r\n LC: 5,\r\n LI: 1,\r\n LK: 6,\r\n LR: 6,\r\n LS: 6,\r\n LT: 1,\r\n LU: 1,\r\n LV: 1,\r\n LY: 6,\r\n MA: 6,\r\n MC: 1,\r\n MD: 4,\r\n ME: 1,\r\n MF: 1,\r\n MG: 6,\r\n MH: 6,\r\n MK: 1,\r\n ML: 6,\r\n MM: 6,\r\n MN: 6,\r\n MO: 2,\r\n MP: 6,\r\n MQ: 1,\r\n MR: 5,\r\n MS: 5,\r\n MT: 1,\r\n MU: 6,\r\n MV: 6,\r\n MW: 6,\r\n MX: 5,\r\n MY: 6,\r\n MZ: 6,\r\n NA: 6,\r\n NC: 6,\r\n NE: 6,\r\n NF: 6,\r\n NG: 6,\r\n NI: 5,\r\n NL: 1,\r\n NO: 1,\r\n NP: 6,\r\n NR: 6,\r\n NU: 6,\r\n NZ: 6,\r\n OM: 6,\r\n PA: 5,\r\n PE: 5,\r\n PF: 6,\r\n PG: 6,\r\n PH: 6,\r\n PK: 6,\r\n PL: 1,\r\n PM: 5,\r\n PN: 6,\r\n PR: 6,\r\n PS: 6,\r\n PT: 1,\r\n PW: 6,\r\n PY: 5,\r\n QA: 6,\r\n RE: 6,\r\n RO: 1,\r\n RS: 1,\r\n RU: 4,\r\n RW: 6,\r\n SA: 6,\r\n SB: 6,\r\n SC: 6,\r\n SD: 6,\r\n SE: 1,\r\n SG: 6,\r\n SH: 6,\r\n SI: 1,\r\n SJ: 6,\r\n SK: 1,\r\n SL: 6,\r\n SM: 1,\r\n SN: 6,\r\n SO: 6,\r\n SR: 5,\r\n SS: 6,\r\n ST: 6,\r\n SV: 5,\r\n SX: 5,\r\n SY: 6,\r\n SZ: 6,\r\n TC: 5,\r\n TD: 6,\r\n TF: 6,\r\n TG: 6,\r\n TH: 6,\r\n TJ: 4,\r\n TK: 6,\r\n TL: 6,\r\n TM: 4,\r\n TN: 6,\r\n TO: 6,\r\n TR: 1,\r\n TT: 5,\r\n TV: 6,\r\n TW: 2,\r\n TZ: 6,\r\n UA: 4,\r\n UG: 6,\r\n UM: 6,\r\n US: 5,\r\n UY: 5,\r\n UZ: 4,\r\n VA: 1,\r\n VC: 5,\r\n VE: 5,\r\n VG: 6,\r\n VI: 6,\r\n VN: 6,\r\n VU: 6,\r\n WF: 1,\r\n WS: 6,\r\n YE: 6,\r\n YT: 6,\r\n ZA: 6,\r\n ZM: 6,\r\n ZW: 6,\r\n ZZ: 6,\r\n};\n\nvar addQueryParamsToURL = function (originUrl, params) {\r\n var url = originUrl;\r\n Object.entries(params).forEach(function (_a, index) {\r\n var paramKey = _a[0], paramValue = _a[1];\r\n if (index === 0 && !url.includes('?')) {\r\n url += \"?\" + paramKey + \"=\" + paramValue;\r\n }\r\n else {\r\n url += \"&\" + paramKey + \"=\" + paramValue;\r\n }\r\n });\r\n return url;\r\n};\n\nvar extendURLSearchParams = function (searchParams) {\r\n searchParams.appendIfNotEmpty = function (key, value) {\r\n if (value)\r\n searchParams.append(key, value);\r\n };\r\n return searchParams;\r\n};\n\nvar getParsedSettings = function (settings) {\r\n var tos_url = settings.tos_url, consent_url = settings.consent_url, cookie_policy = settings.cookie_policy, privacy_policy = settings.privacy_policy;\r\n var locale = 'en';\r\n if (navigator.language) {\r\n locale = navigator.language.trim().split(/-|_/)[0];\r\n }\r\n return __assign({}, settings, { tos_url: appendLocale(tos_url, locale), consent_url: appendLocale(consent_url, locale), cookie_policy: appendLocale(cookie_policy, locale), privacy_policy: appendLocale(privacy_policy, locale) });\r\n};\r\nvar appendLocale = function (url, locale) {\r\n if (!url) {\r\n return '';\r\n }\r\n return addQueryParamsToURL(url, { xsolla_lang: locale });\r\n};\r\nvar getParsedSocialsNew = function (socialResp, country, isOauth2, params) {\r\n var projectId = params.projectId, _a = params.client_id, client_id = _a === void 0 ? '' : _a, _b = params.scope, scope = _b === void 0 ? '' : _b, _c = params.state, state = _c === void 0 ? '' : _c, _d = params.response_type, response_type = _d === void 0 ? '' : _d, _e = params.redirect_uri, redirect_uri = _e === void 0 ? '' : _e, _f = params.login_url, login_url = _f === void 0 ? '' : _f, _g = params.payload, payload = _g === void 0 ? '' : _g, _h = params.locale, locale = _h === void 0 ? '' : _h;\r\n var searchParams = extendURLSearchParams(new URLSearchParams());\r\n searchParams.appendIfNotEmpty('projectId', projectId);\r\n searchParams.appendIfNotEmpty('login_url', login_url);\r\n searchParams.appendIfNotEmpty('payload', payload);\r\n searchParams.appendIfNotEmpty('locale', locale);\r\n if (isOauth2) {\r\n searchParams.appendIfNotEmpty('client_id', client_id.toString());\r\n searchParams.appendIfNotEmpty('redirect_uri', redirect_uri);\r\n searchParams.appendIfNotEmpty('response_type', response_type);\r\n searchParams.appendIfNotEmpty('scope', scope);\r\n searchParams.appendIfNotEmpty('state', state);\r\n }\r\n var paramsString = \"?\" + searchParams.toString();\r\n var socials = Object.keys(regionMap).includes(country) ? socialResp[regionMap[country]] : socialResp[regionMap.US];\r\n var primarySocials = socials.primary.map(function (item) { return ({\r\n name: item.name,\r\n url: isOauth2 ? \"\" + item.oauth2 + paramsString : \"\" + item.jwt + paramsString,\r\n }); });\r\n var secondarySocials = socials.secondary.map(function (item) { return ({\r\n name: item.name,\r\n url: isOauth2 ? \"\" + item.oauth2 + paramsString : \"\" + item.jwt + paramsString,\r\n }); });\r\n if (socials.custom) {\r\n primarySocials.unshift({\r\n name: socials.custom.name,\r\n url: isOauth2 ? \"\" + socials.custom.oauth2 + paramsString : \"\" + socials.custom.jwt + paramsString,\r\n });\r\n }\r\n return {\r\n primary: primarySocials,\r\n secondary: secondarySocials,\r\n all: primarySocials.concat(secondarySocials),\r\n showOtherLink: false,\r\n };\r\n};\n\nvar initGoogleOneTap = function (appId, callback) {\r\n var googleLibScript = document.createElement('script');\r\n googleLibScript.type = 'text/javascript';\r\n googleLibScript.src = 'https://accounts.google.com/gsi/client';\r\n googleLibScript.async = true;\r\n googleLibScript.defer = true;\r\n document.getElementsByTagName('head')[0].appendChild(googleLibScript);\r\n // @ts-ignore\r\n window.onGoogleLibraryLoad = function () {\r\n // @ts-ignore\r\n window.google.accounts.id.initialize({\r\n client_id: appId,\r\n callback: function (data) { return callback(data); },\r\n context: 'signin',\r\n cancel_on_tap_outside: false,\r\n });\r\n // @ts-ignore\r\n window.google.accounts.id.prompt();\r\n };\r\n};\n\nfunction getUrlVersion(pathname) {\r\n var urlVersionMatch = pathname.match(/\\/([^/]+)\\//);\r\n return urlVersionMatch !== null ? urlVersionMatch[1] : 'latest';\r\n}\r\nfunction getPageName(pathname) {\r\n var match = pathname.lastIndexOf('/');\r\n return pathname.substring(match + 1, pathname.length);\r\n}\n\nvar defaultTheme = {\r\n background: {\r\n color: '#FFFFFF',\r\n image: {\r\n url: '',\r\n opacity: '1',\r\n },\r\n },\r\n primary_color: '#0073F7',\r\n secondary_color: '#DADADA',\r\n text_color: '#000000',\r\n error_color: '#eb002f',\r\n button_image: '',\r\n rounding: {\r\n inputs: '6px',\r\n buttons: '100px',\r\n widget: '6px',\r\n },\r\n scene: {\r\n color: '#f7faff',\r\n },\r\n};\r\nvar defaultConfig = {\r\n apiUrl: 'https://login.xsolla.com/api/',\r\n cdnUrl: 'https://cdn.xsolla.net/login-widget/',\r\n consentUrl: 'https://consent-api.xsolla.com/v2/consen',\r\n projectId: '',\r\n theme: defaultTheme,\r\n is_oauth2: false,\r\n};\n\nvar parseError = function (responseData) {\r\n return (responseData &&\r\n responseData.data &&\r\n responseData.data.error &&\r\n (responseData.data.error.code || (responseData.data.error.code === 0 && '0'))) ||\r\n null;\r\n};\r\nvar oauthTwoGetParams = ['clientId', 'scope', 'state', 'redirectUri', 'responseType'];\r\nvar oauthTwoBabkaGetParams = oauthTwoGetParams.concat(['audience']);\r\nvar jwtAuthGetParams = ['projectId', 'fullLocale', 'callbackUrl', 'payload', 'with_logout'];\r\nvar extendedCustomization = ['customStyle', 'customLabels'];\r\nvar sendLetterParams = ['emailTemplate'];\r\nvar otpGetParams = ['challenge_id', 'fullLocale'];\r\nvar collectParams = function (config, addGetParams, xRequestId) {\r\n if (addGetParams === void 0) { addGetParams = []; }\r\n var params = {\r\n projectId: config.projectId,\r\n };\r\n if (xRequestId)\r\n params['x-request-id'] = xRequestId;\r\n addGetParams.forEach(function (param) {\r\n if (config[param]) {\r\n switch (param) {\r\n case 'callbackUrl':\r\n params.login_url = config.callbackUrl;\r\n break;\r\n case 'fullLocale':\r\n params.locale = config.fullLocale ? config.fullLocale.replace('-', '_') : config.fullLocale;\r\n break;\r\n case 'clientId':\r\n params.client_id = config.clientId;\r\n break;\r\n case 'redirectUri':\r\n params.redirect_uri = config.redirectUri;\r\n break;\r\n case 'responseType':\r\n params.response_type = config.responseType;\r\n break;\r\n case 'emailTemplate':\r\n params.email_template = config.emailTemplate;\r\n break;\r\n default:\r\n params[param] = config[param];\r\n break;\r\n }\r\n }\r\n });\r\n return params;\r\n};\n\nvar getLoginClientApi = function (config) { return function (requestName) {\r\n var apiClient = axios.create();\r\n apiClient.defaults.baseURL = config.apiUrl || 'https://login.xsolla.com/api';\r\n apiClient.defaults.withCredentials = true;\r\n var xTraceIdEnabledApi = [\r\n '/login/email/request',\r\n '/login/phone/request',\r\n '/login/email/confirm',\r\n '/login/phone/confirm',\r\n '/login',\r\n '/user',\r\n ];\r\n // Request interceptor for capturing start time\r\n apiClient.interceptors.request.use(function (request) {\r\n // @ts-ignore\r\n request.analytics = {\r\n requestName: requestName,\r\n requestUrl: \"\" + request.baseURL + request.url,\r\n projectId: config.projectId,\r\n startTime: new Date().getTime(),\r\n requestType: request.method,\r\n };\r\n if (request.url && xTraceIdEnabledApi.includes(request.url)) {\r\n request.headers['X-REQUEST-ID'] = getTrackId();\r\n }\r\n return request;\r\n }, function (err) {\r\n return Promise.reject(err);\r\n });\r\n // Response interceptor for computing duration\r\n apiClient.interceptors.response.use(function (response) {\r\n // @ts-ignore\r\n var _a = response.config.analytics, startTime = _a.startTime, analyticsData = __rest(_a, [\"startTime\"]);\r\n addEvent(MetrikaEventNames.performanceRequest, {\r\n exv: __assign({}, analyticsData, { isError: false, load_time: new Date().getTime() - startTime }),\r\n });\r\n return response;\r\n }, function (err) {\r\n // @ts-ignore\r\n var _a = err.response.config.analytics, startTime = _a.startTime, analyticsData = __rest(_a, [\"startTime\"]);\r\n var code = parseError(err.response);\r\n addEvent(MetrikaEventNames.performanceRequest, {\r\n exv: __assign({}, analyticsData, { isError: code, load_time: new Date().getTime() - startTime }),\r\n });\r\n return Promise.reject(err);\r\n });\r\n return apiClient;\r\n}; };\n\nvar isValidJSONObject = function (str) {\r\n try {\r\n JSON.parse(str);\r\n return true;\r\n }\r\n catch (error) {\r\n return false;\r\n }\r\n};\n\nvar Api = /** @class */ (function () {\r\n function Api(config) {\r\n this.config = defaultConfig;\r\n this.updateConfig(config);\r\n this.loginApi = getLoginClientApi(config);\r\n }\r\n Api.prototype.getConfig = function () {\r\n return this.config;\r\n };\r\n Api.prototype.updateConfig = function (config) {\r\n var puredConfig = purify(config);\r\n merge$1(this.config, puredConfig);\r\n var _a = this.config, clientId = _a.clientId, redirectUri = _a.redirectUri, responseType = _a.responseType, state = _a.state;\r\n if (clientId && responseType && redirectUri && state) {\r\n this.config.is_oauth2 = true;\r\n }\r\n return this.config;\r\n };\r\n Api.prototype.fetchConfig = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, _a, settingsJSON, socialsJSON, themeJSON, projectId, apiUrl, disableCache, apiUrlMode, settingsURL, socialsURL, themeURL, startTime, sendExv, currTime, getSettings;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n params = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams));\r\n _a = this.config, settingsJSON = _a.settingsJSON, socialsJSON = _a.socialsJSON, themeJSON = _a.themeJSON, projectId = _a.projectId, apiUrl = _a.apiUrl, disableCache = _a.disableCache;\r\n apiUrlMode = apiUrl === 'https://login.xsolla.com/api' ? 'https://cdn.xsolla.net/xsolla-login-widget' : apiUrl;\r\n settingsURL = new URL(settingsJSON ? settingsJSON : apiUrlMode + \"/projects/\" + projectId + \"/settings/auth\");\r\n socialsURL = new URL(socialsJSON ? socialsJSON : apiUrlMode + \"/projects/\" + projectId + \"/settings/socials/by_region\");\r\n themeURL = new URL(themeJSON ? themeJSON : apiUrlMode + \"/projects/\" + projectId + \"/settings/widget\");\r\n startTime = new Date().getTime();\r\n sendExv = {\r\n projectId: projectId,\r\n requestName: 'fetchConfigWidget',\r\n requestType: 'get',\r\n requestUrl: [settingsURL, socialsURL, themeURL, apiUrl + \"/client/details\"],\r\n };\r\n /* for analytics */\r\n if (disableCache) {\r\n currTime = Date.now();\r\n settingsURL.searchParams.append('currTime', currTime.toString());\r\n socialsURL.searchParams.append('currTime', currTime.toString());\r\n themeURL.searchParams.append('currTime', currTime.toString());\r\n }\r\n getSettings = [\r\n axios.get(settingsURL.toString(), { withCredentials: false }),\r\n axios.get(socialsURL.toString(), { withCredentials: false }),\r\n axios.get(themeURL.toString(), { withCredentials: false }),\r\n this.loginApi('details').get('/client/details'),\r\n ];\r\n return [2 /*return*/, Promise.all(getSettings)\r\n .then(function (response) {\r\n /* for analytics */\r\n addEvent(MetrikaEventNames.performanceRequest, {\r\n exv: __assign({}, sendExv, { isError: false, load_time: new Date().getTime() - startTime }),\r\n });\r\n /* for analytics */\r\n var _a = response, settingsResp = _a[0], socialResp = _a[1], themeResp = _a[2], clientResp = _a[3];\r\n var clientCountry = clientResp.data.geo_ip_country.toUpperCase() || 'US';\r\n var parsedSocialsNew = getParsedSocialsNew(socialResp.data, clientCountry, _this.config.is_oauth2 || false, params);\r\n var parsedSettings = getParsedSettings(settingsResp.data);\r\n return _this.updateConfig(__assign({ apiUrl: '', projectId: '' }, parsedSettings, { social_links: __assign({}, parsedSocialsNew), theme: themeResp.data, geo_ip_country: clientCountry }));\r\n })\r\n .then(function (config) {\r\n return themeJSON\r\n ? axios\r\n .get(themeJSON, { withCredentials: false })\r\n .then(function (response) { return _this.updateConfig(__assign({}, config, { theme: response.data })); })\r\n : config;\r\n })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n /* for analytics */\r\n addEvent(MetrikaEventNames.performanceRequest, {\r\n exv: __assign({}, sendExv, { isError: code, load_time: new Date().getTime() - startTime }),\r\n });\r\n /* for analytics */\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.signup = function (_a) {\r\n var userInfo = _a.userInfo;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, requestUrl;\r\n return __generator(this, function (_b) {\r\n params = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams, sendLetterParams));\r\n requestUrl = this.config.is_oauth2 ? '/oauth2/user' : '/user';\r\n return [2 /*return*/, this.loginApi('signup')\r\n .post(requestUrl, userInfo, {\r\n params: params,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.login = function (_a) {\r\n var credentials = _a.credentials, captchaData = _a.captchaData;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, headers, requestUrl;\r\n return __generator(this, function (_b) {\r\n params = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams));\r\n headers = {};\r\n if (this.config.callbackUrl) {\r\n params.login_url = this.config.callbackUrl;\r\n }\r\n if (captchaData) {\r\n headers['X-LOT-NUMBER'] = captchaData.lot_number;\r\n headers['X-CAPTCHA-OUTPUT'] = captchaData.captcha_output;\r\n headers['X-PASS-TOKEN'] = captchaData.pass_token;\r\n headers['X-GEN-TIME'] = captchaData.gen_time;\r\n }\r\n requestUrl = this.config.is_oauth2 ? '/oauth2/login' : '/login';\r\n return [2 /*return*/, this.loginApi('login')\r\n .post(requestUrl, credentials, {\r\n params: params,\r\n headers: headers,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n var captchaHeader = error.response.headers['x-captcha-enabled'];\r\n if (code === '003-038' && captchaHeader && captchaHeader === '1') {\r\n throw new APIError('003-338');\r\n }\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.agreement = function (_a) {\r\n var token = _a.token, isAccepted = _a.isAccepted, consentId = _a.consentId;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_b) {\r\n params = {\r\n token: token,\r\n projectId: this.config.projectId,\r\n accept_consent: isAccepted,\r\n };\r\n if (consentId)\r\n params.consent_id = consentId;\r\n return [2 /*return*/, this.loginApi('socialConsent')\r\n .put('/social/consent', params)\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.reset = function (username) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, jwtAuthGetParams.concat(sendLetterParams));\r\n if (this.config.callbackUrl)\r\n params.login_url = this.config.callbackUrl;\r\n return [2 /*return*/, this.loginApi('passwordResetRequest')\r\n .post('/password/reset/request', username, {\r\n params: params,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.set = function (setParams) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, body;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, jwtAuthGetParams);\r\n if (this.config.callbackUrl)\r\n params.login_url = this.config.callbackUrl;\r\n body = {\r\n new_password: setParams.newPassword,\r\n reset_code: setParams.code,\r\n user_id: setParams.user_id,\r\n };\r\n return [2 /*return*/, this.loginApi('passwordResetConfirm')\r\n .post('/password/reset/confirm', body, {\r\n params: params,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.getConfirmCode = function (confirmParams) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_a) {\r\n params = {\r\n projectId: this.config.projectId,\r\n login: confirmParams.login.toLowerCase(),\r\n operation_id: confirmParams.operation_id,\r\n };\r\n return [2 /*return*/, this.loginApi('getConfirmCode')\r\n .get('/otc/code', {\r\n params: params,\r\n cancelToken: confirmParams.cancelToken.token,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.pushConfirmCode = function (pushCodeParams) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_a) {\r\n params = __assign({ projectId: this.config.projectId }, pushCodeParams);\r\n return [2 /*return*/, this.loginApi('pushConfirmCode')\r\n .get('/otc/push', {\r\n params: params,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.ask = function (askParams) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, _b, customLabels, _c, customStyle, params, stylesParams, stylesParamsString, settingsData, headers, body, requestUrl;\r\n var _d;\r\n return __generator(this, function (_e) {\r\n _a = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams, sendLetterParams, extendedCustomization)), _b = _a.customLabels, customLabels = _b === void 0 ? '' : _b, _c = _a.customStyle, customStyle = _c === void 0 ? '' : _c, params = __rest(_a, [\"customLabels\", \"customStyle\"]);\r\n stylesParams = extendURLSearchParams(new URLSearchParams());\r\n stylesParams.appendIfNotEmpty('customStyle', customStyle);\r\n stylesParams.appendIfNotEmpty('customLabels', customLabels);\r\n stylesParamsString = stylesParams.toString();\r\n settingsData = (_d = {},\r\n _d[askParams.fields.email ? 'email' : 'phone_number'] = {\r\n link_url: stylesParamsString ? askParams.link_url + \"/?\" + stylesParamsString : askParams.link_url,\r\n send_link: this.config.enable_magic_link && !this.config.disableConfirmByLink,\r\n },\r\n _d);\r\n headers = {};\r\n if (askParams.captchaData) {\r\n headers['X-LOT-NUMBER'] = askParams.captchaData.lot_number;\r\n headers['X-CAPTCHA-OUTPUT'] = askParams.captchaData.captcha_output;\r\n headers['X-PASS-TOKEN'] = askParams.captchaData.pass_token;\r\n headers['X-GEN-TIME'] = askParams.captchaData.gen_time;\r\n }\r\n body = {\r\n updatedFields: askParams.fields,\r\n token: askParams.token,\r\n settings: settingsData,\r\n email: this.config.is_oauth2 ? askParams.fields.email : '',\r\n };\r\n requestUrl = this.config.is_oauth2 ? '/oauth2/user/ask' : '/token/update';\r\n return [2 /*return*/, this.loginApi('userAsk')\r\n .post(requestUrl, body, {\r\n params: params,\r\n headers: headers,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n var captchaHeader = error.response.headers['x-captcha-enabled'];\r\n if (code === '003-038' && captchaHeader && captchaHeader === '1') {\r\n throw new APIError('003-338');\r\n }\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.getAskFields = function (token) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, headers;\r\n return __generator(this, function (_a) {\r\n params = { projectId: this.config.projectId };\r\n headers = {};\r\n headers.Authorization = \"Bearer \" + token;\r\n return [2 /*return*/, this.loginApi('getAskFields')\r\n .get('/users/me/ask', {\r\n params: params,\r\n headers: headers,\r\n })\r\n .then(function (resp) {\r\n if (resp.data.length !== 0) {\r\n return resp.data;\r\n }\r\n return getEmailFieldFromUrl();\r\n })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.getSocialLink = function (socialProvider, customParams) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var vid, params, requestUrl;\r\n return __generator(this, function (_a) {\r\n vid = js_cookie.get()._mm_vid_2222;\r\n params = collectParams(__assign({}, this.config, customParams), jwtAuthGetParams.concat(oauthTwoGetParams), vid);\r\n requestUrl = this.config.is_oauth2\r\n ? \"oauth2/social/\" + socialProvider + \"/login_url\"\r\n : \"/social/\" + socialProvider + \"/login_url\";\r\n return [2 /*return*/, this.loginApi('getSocialLink')\r\n .get(requestUrl, {\r\n params: params,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.otpLogin = function (_a) {\r\n var code = _a.code, _b = _a.remember_me, remember_me = _b === void 0 ? true : _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_c) {\r\n params = collectParams(this.config, otpGetParams);\r\n return [2 /*return*/, this.loginApi('otpLoginValidate')\r\n .get('/otp/validate', {\r\n params: {\r\n code: code,\r\n remember_me: remember_me,\r\n challenge_id: params.challenge_id,\r\n },\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var apiCode = parseError(error.response);\r\n if (apiCode) {\r\n throw new APIError(apiCode);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.otpResendCode = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, otpGetParams);\r\n return [2 /*return*/, this.loginApi('otpResendCode')\r\n .put('/otp/resend', { locale: params.locale }, { params: { challenge_id: params.challenge_id } })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var apiCode = parseError(error.response);\r\n if (apiCode) {\r\n throw new APIError(apiCode);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.phoneGetCode = function (_a) {\r\n var phone_number = _a.phone_number, link_url = _a.link_url, isOauth2 = _a.isOauth2, captchaData = _a.captchaData;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _b, _c, customLabels, _d, customStyle, params, headers, postUrl, stylesParams, stylesParamsString;\r\n return __generator(this, function (_e) {\r\n _b = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams, extendedCustomization)), _c = _b.customLabels, customLabels = _c === void 0 ? '' : _c, _d = _b.customStyle, customStyle = _d === void 0 ? '' : _d, params = __rest(_b, [\"customLabels\", \"customStyle\"]);\r\n headers = {};\r\n if (captchaData) {\r\n headers['X-LOT-NUMBER'] = captchaData.lot_number;\r\n headers['X-CAPTCHA-OUTPUT'] = captchaData.captcha_output;\r\n headers['X-PASS-TOKEN'] = captchaData.pass_token;\r\n headers['X-GEN-TIME'] = captchaData.gen_time;\r\n }\r\n postUrl = (isOauth2 ? '/oauth2' : '') + \"/login/phone/request\";\r\n stylesParams = extendURLSearchParams(new URLSearchParams());\r\n stylesParams.appendIfNotEmpty('customStyle', customStyle);\r\n stylesParams.appendIfNotEmpty('customLabels', customLabels);\r\n stylesParamsString = stylesParams.toString();\r\n return [2 /*return*/, this.loginApi('phoneGetCode')\r\n .post(postUrl, {\r\n link_url: stylesParamsString ? link_url + \"/?\" + stylesParamsString : link_url,\r\n phone_number: phone_number || '',\r\n send_link: this.config.enable_magic_link && !this.config.disableConfirmByLink,\r\n }, { params: params, headers: headers })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var apiCode = parseError(error.response);\r\n var captchaHeader = error.response.headers['x-captcha-enabled'];\r\n if (apiCode === '003-038' && captchaHeader && captchaHeader === '1') {\r\n throw new APIError('003-338');\r\n }\r\n if (apiCode) {\r\n throw new APIError(apiCode);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.loginWithPhoneCode = function (_a) {\r\n var phone_number = _a.phone_number, code = _a.code, operation_id = _a.operation_id, isOauth2 = _a.isOauth2;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, postUrl;\r\n return __generator(this, function (_b) {\r\n params = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams));\r\n postUrl = (isOauth2 ? '/oauth2' : '') + \"/login/phone/confirm\";\r\n return [2 /*return*/, this.loginApi('loginWithPhoneCodeConfirm')\r\n .post(postUrl, { phone_number: phone_number, code: code, operation_id: operation_id }, { params: params })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var apiCode = parseError(error.response);\r\n if (apiCode) {\r\n throw new APIError(apiCode);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.emailGetCode = function (_a) {\r\n var email = _a.email, isOauth2 = _a.isOauth2, link_url = _a.link_url, captchaData = _a.captchaData;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _b, _c, customLabels, _d, customStyle, params, headers, postUrl, stylesParams, stylesParamsString;\r\n return __generator(this, function (_e) {\r\n _b = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams, extendedCustomization)), _c = _b.customLabels, customLabels = _c === void 0 ? '' : _c, _d = _b.customStyle, customStyle = _d === void 0 ? '' : _d, params = __rest(_b, [\"customLabels\", \"customStyle\"]);\r\n headers = {};\r\n if (captchaData) {\r\n headers['X-LOT-NUMBER'] = captchaData.lot_number;\r\n headers['X-CAPTCHA-OUTPUT'] = captchaData.captcha_output;\r\n headers['X-PASS-TOKEN'] = captchaData.pass_token;\r\n headers['X-GEN-TIME'] = captchaData.gen_time;\r\n }\r\n postUrl = (isOauth2 ? '/oauth2' : '') + \"/login/email/request\";\r\n stylesParams = extendURLSearchParams(new URLSearchParams());\r\n stylesParams.appendIfNotEmpty('customStyle', customStyle);\r\n stylesParams.appendIfNotEmpty('customLabels', customLabels);\r\n stylesParamsString = stylesParams.toString();\r\n return [2 /*return*/, this.loginApi('emailGetCode')\r\n .post(postUrl, {\r\n link_url: stylesParamsString ? link_url + \"/?\" + stylesParamsString : link_url,\r\n email: email ? email.toLowerCase() : '',\r\n send_link: this.config.enable_magic_link && !this.config.disableConfirmByLink,\r\n }, { params: params, headers: headers })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var apiCode = parseError(error.response);\r\n var captchaHeader = error.response.headers['x-captcha-enabled'];\r\n if (apiCode === '003-038' && captchaHeader && captchaHeader === '1') {\r\n throw new APIError('003-338');\r\n }\r\n if (apiCode) {\r\n throw new APIError(apiCode);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.loginWithEmailCode = function (_a) {\r\n var email = _a.email, code = _a.code, operation_id = _a.operation_id, isOauth2 = _a.isOauth2;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, postUrl;\r\n return __generator(this, function (_b) {\r\n params = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams));\r\n postUrl = (isOauth2 ? '/oauth2' : '') + \"/login/email/confirm\";\r\n return [2 /*return*/, this.loginApi('loginWithEmail_CodeConfirm')\r\n .post(postUrl, { email: email, code: code, operation_id: operation_id }, { params: params })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var apiCode = parseError(error.response);\r\n if (apiCode) {\r\n throw new APIError(apiCode);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.resendEmail = function (username) {\r\n var params = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams, sendLetterParams));\r\n var requestUrl = (this.config.is_oauth2 ? '/oauth2' : '') + \"/user/resend_confirmation_link\";\r\n return this.loginApi('resendEmailConfirmationLink')\r\n .post(requestUrl, { username: username }, { params: params })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n });\r\n };\r\n Api.prototype.oneTapLogin = function (accessToken, providerName) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, requestUrl;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, jwtAuthGetParams.concat(oauthTwoGetParams));\r\n requestUrl = (this.config.is_oauth2 ? '/oauth2' : '') + \"/social/\" + providerName + \"/one_tap/complete\";\r\n return [2 /*return*/, this.loginApi('oneTapLoginComplete')\r\n .post(requestUrl, {\r\n access_token: accessToken,\r\n }, { params: params })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.checkUserAuthSSO = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, jwtAuthGetParams);\r\n return [2 /*return*/, this.loginApi('oneTapLoginComplete')\r\n .get('/jwt/sso', { params: params })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.userAuthSSOWithRedirect = function (loginUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, jwtAuthGetParams);\r\n return [2 /*return*/, this.loginApi('userAuthSSOWithRedirect')\r\n .get('/jwt/sso/redirect', {\r\n params: __assign({}, params, { login_url: loginUrl }),\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.logout = function (token, session) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var headers;\r\n return __generator(this, function (_a) {\r\n headers = {};\r\n headers.Authorization = \"Bearer \" + token;\r\n return [2 /*return*/, this.loginApi('logout')\r\n .get('/oauth2/logout', {\r\n headers: headers,\r\n params: {\r\n sessions: session,\r\n },\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.oauth2Auth = function () {\r\n var params = collectParams(this.config, oauthTwoBabkaGetParams);\r\n var _a = this.config, payload = _a.payload, enablePostMessageLogin = _a.enablePostMessageLogin;\r\n var trackId = payload && isValidJSONObject(payload) && JSON.parse(payload).trackId;\r\n var loginUri = this.config.apiUrl + \"/oauth2/auth?response_type=code\";\r\n if (trackId) {\r\n loginUri += \"&trackId=\" + trackId;\r\n }\r\n Object.entries(params).forEach(function (_a) {\r\n var paramKey = _a[0], paramValue = _a[1];\r\n loginUri += \"&\" + paramKey + \"=\" + encodeURIComponent(paramValue);\r\n });\r\n if (enablePostMessageLogin && window.parent.opener) {\r\n sendMessage({\r\n message: {\r\n loginUri: loginUri,\r\n type: PostMessageEvents.BabkaLogin,\r\n },\r\n targetOrigin: '*',\r\n });\r\n window.parent.close();\r\n }\r\n else {\r\n if (window.top) {\r\n window.top.location.href = loginUri;\r\n }\r\n }\r\n };\r\n Api.prototype.oauth2ConsentValidate = function (token) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, headers, validateUrl;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, oauthTwoGetParams);\r\n headers = {};\r\n headers.Authorization = \"Bearer \" + token;\r\n validateUrl = this.config.apiUrl + \"/oauth2/consent/validate\";\r\n return [2 /*return*/, this.loginApi('oauth2ConsentValidate')\r\n .post(validateUrl, { client_id: params.client_id, scope: params.scope }, { headers: headers })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code)\r\n throw new APIError(code);\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.oauth2PostConsent = function (token, approval) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params, headers;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config, oauthTwoGetParams);\r\n headers = {};\r\n headers.Authorization = \"Bearer \" + token;\r\n return [2 /*return*/, this.loginApi('oauth2PostConsent')\r\n .post('/oauth2/consent', __assign({}, params, { approval: approval }), { headers: headers })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code)\r\n throw new APIError(code);\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.clearSSO = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var params;\r\n return __generator(this, function (_a) {\r\n params = collectParams(this.config);\r\n return [2 /*return*/, this.loginApi('clear_sso')\r\n .get('/oauth2/clear_sso', {\r\n params: params,\r\n })\r\n .then(function (resp) { return resp.data; })\r\n .catch(function (error) {\r\n var code = parseError(error.response);\r\n if (code) {\r\n throw new APIError(code);\r\n }\r\n throw error;\r\n })];\r\n });\r\n });\r\n };\r\n Api.prototype.protectedRedirect = function (url) {\r\n var _a = this.config, projectId = _a.projectId, clientId = _a.clientId;\r\n var loginUri = this.config.apiUrl + \"/protected_redirect?url=\" + url;\r\n if (clientId) {\r\n loginUri += \"&client_id=\" + clientId;\r\n }\r\n else {\r\n loginUri += \"&projectId=\" + projectId;\r\n }\r\n return loginUri;\r\n };\r\n return Api;\r\n}());\n\n// Copyright Joyent, Inc. and other Node contributors.\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n\nvar ReflectOwnKeys;\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nvar events = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nvar addSandbox = function (iframe) {\r\n iframe.sandbox.add('allow-forms');\r\n iframe.sandbox.add('allow-scripts');\r\n iframe.sandbox.add('allow-same-origin');\r\n iframe.sandbox.add('allow-top-navigation');\r\n iframe.sandbox.add('allow-modals');\r\n iframe.sandbox.add('allow-popups');\r\n iframe.sandbox.add('allow-popups-to-escape-sandbox');\r\n iframe.sandbox.add('allow-presentation');\r\n iframe.sandbox.add('allow-orientation-lock');\r\n iframe.sandbox.add('allow-pointer-lock');\r\n};\n\nvar DEFAULT_CONFIG = {\r\n projectId: '8513c380-0336-4927-b351-02ccec7f3cb6',\r\n url: 'https://login-widget.xsolla.com/latest',\r\n popupBackgroundColor: 'rgba(0, 0, 0, 0.6)',\r\n showPopupBackground: true,\r\n iframeZIndex: 9000,\r\n siteHaveGDPRBanner: false,\r\n showCloseButton: false,\r\n};\r\nvar GET_PARAMS = [\r\n 'preferredLocale',\r\n 'callbackUrl',\r\n 'disableConfirmByLink',\r\n 'payload',\r\n 'with_logout',\r\n 'clientId',\r\n 'emailTemplate',\r\n 'scope',\r\n 'state',\r\n 'redirectUri',\r\n 'responseType',\r\n 'isDemo',\r\n 'challenge_id',\r\n 'analyticsProductName',\r\n 'theme',\r\n 'authData',\r\n 'page',\r\n 'customStyle',\r\n 'customLabels',\r\n 'parentIsFrame',\r\n 'settingsJSON',\r\n 'socialsJSON',\r\n 'themeJSON',\r\n 'siteHaveGDPRBanner',\r\n 'sendLoadMetrics',\r\n 'enablePostMessageLogin',\r\n 'disableCache',\r\n 'audience',\r\n 'token',\r\n 'showCloseButton',\r\n 'babkaLoginFlow',\r\n 'socialLoginFlow',\r\n 'disableSocials',\r\n 'appleIdPriority',\r\n 'trackId',\r\n];\r\nvar pages = {\r\n signUp: '/sign-up',\r\n confirm: '/confirm',\r\n logIn: '/',\r\n passwordReset: '/password/reset',\r\n passwordSet: '/password/set',\r\n ask: '/ask',\r\n error: '/404',\r\n socials: '/socials',\r\n agreement: '/agreement',\r\n otp: '/otp',\r\n logInUserPreset: '/',\r\n externalOauth2: '/external_oauth2',\r\n};\r\nvar Widget = /** @class */ (function (_super) {\r\n __extends(Widget, _super);\r\n function Widget(config) {\r\n var _this = _super.call(this) || this;\r\n _this.events = PostMessageEvents;\r\n _this.eventsArray = Object.values(PostMessageEvents);\r\n _this.handler = {};\r\n _this.config = __assign({}, DEFAULT_CONFIG, config);\r\n _this.api = new Api(__assign({}, defaultConfig, config));\r\n _this.inFullscreenMode = false;\r\n _this.page = _this.config.page ? pages[_this.config.page] : '';\r\n _this.setLocale(_this.config.preferredLocale);\r\n _this.on('newListener', function (type) {\r\n if (_this.eventsArray.indexOf(type) > -1) {\r\n if (type === PostMessageEvents.Close) {\r\n _this.handler[type] = true;\r\n }\r\n }\r\n else {\r\n throw new SDKError('Invalid event');\r\n }\r\n });\r\n _this.postMessageHandler = _this.onPostMessage.bind(_this);\r\n window.addEventListener('message', _this.postMessageHandler);\r\n return _this;\r\n }\r\n Widget.prototype.mount = function (elementId) {\r\n var _a = this.config, isHardMounted = _a.isHardMounted, babkaLoginPopup = _a.babkaLoginPopup;\r\n this.iframe = document.createElement('iframe');\r\n this.iframe.style.width = '100%';\r\n this.iframe.style.height = '100%';\r\n this.iframe.style.border = 'none';\r\n this.iframe.style.borderRadius = 'inherit';\r\n if (isHardMounted) {\r\n this.iframe.style.position = 'absolute';\r\n this.iframe.style.top = '0';\r\n this.iframe.style.bottom = '0';\r\n this.iframe.style.left = '0';\r\n this.iframe.style.right = '0';\r\n }\r\n if (this.iframe.sandbox) {\r\n addSandbox(this.iframe);\r\n }\r\n var el = isHardMounted ? document.body : document.getElementById(elementId);\r\n if (el) {\r\n var elStyle = window.getComputedStyle(el);\r\n this.config.sendLoadMetrics = elStyle.display !== 'none' && elStyle.visibility !== 'hidden';\r\n if (babkaLoginPopup) {\r\n el.style.display = 'none';\r\n }\r\n el.appendChild(this.iframe);\r\n }\r\n this.updateWidget();\r\n addEvent(MetrikaEventNames.widget_open);\r\n this.initDispatcher();\r\n if (this.config.babkaLoginFlow === 'popup') {\r\n this.babkaLoginIframe = document.createElement('iframe');\r\n this.babkaLoginIframe.style.width = '100%';\r\n this.babkaLoginIframe.style.height = '100%';\r\n this.babkaLoginIframe.style.border = 'none';\r\n this.babkaLoginIframe.style.borderRadius = 'inherit';\r\n this.babkaLoginIframe.style.position = 'absolute';\r\n this.babkaLoginIframe.style.top = '0';\r\n this.babkaLoginIframe.style.bottom = '0';\r\n this.babkaLoginIframe.style.left = '0';\r\n this.babkaLoginIframe.style.right = '0';\r\n this.babkaLoginIframe.style.zIndex = '9999';\r\n this.babkaLoginIframe.style.display = 'none';\r\n this.babkaLoginIframe.style.background = 'rgba(0, 0, 0, 0.4)';\r\n if (this.babkaLoginIframe.sandbox) {\r\n addSandbox(this.babkaLoginIframe);\r\n }\r\n if (el) {\r\n el.appendChild(this.babkaLoginIframe);\r\n }\r\n }\r\n };\r\n Widget.prototype.unmount = function () {\r\n if (!this.iframe || !this.iframe.parentNode) {\r\n throw new SDKError('Widget is not mounted');\r\n }\r\n this.iframe.parentNode.removeChild(this.iframe);\r\n window.removeEventListener('message', this.postMessageHandler);\r\n };\r\n Widget.prototype.setLocale = function (preferredLocale) {\r\n if (preferredLocale) {\r\n this.locale = getBrowserLocale(preferredLocale);\r\n this.updateWidget();\r\n }\r\n };\r\n Widget.prototype.setTheme = function (theme) {\r\n if (!this.iframe || !this.iframe.contentWindow) {\r\n throw new SDKError('Widget is not mounted');\r\n }\r\n sendMessage({\r\n message: {\r\n theme: theme,\r\n type: PostMessageEvents.ThemeUpdate,\r\n },\r\n targetOrigin: this.config.url || window.location.origin,\r\n target: this.iframe.contentWindow,\r\n });\r\n };\r\n Widget.prototype.setPage = function (page) {\r\n if (page) {\r\n if (!this.iframe || !this.iframe.contentWindow) {\r\n throw new SDKError('Widget is not mounted');\r\n }\r\n sendMessage({\r\n message: {\r\n page: page,\r\n type: PostMessageEvents.PageOpen,\r\n },\r\n targetOrigin: this.config.url || window.location.origin,\r\n target: this.iframe.contentWindow,\r\n });\r\n }\r\n };\r\n Widget.prototype.open = function () {\r\n if (!this.iframe || !this.iframe.contentWindow) {\r\n return Error('Widget is not mounted');\r\n }\r\n var babkaLoginPopup = this.config.babkaLoginPopup;\r\n if (babkaLoginPopup) {\r\n sendMessage({\r\n message: {\r\n type: PostMessageEvents.BabkaLoginPopup,\r\n },\r\n targetOrigin: this.config.url || window.location.origin,\r\n target: this.iframe.contentWindow,\r\n });\r\n }\r\n else {\r\n var iframeStyle = this.iframe.style;\r\n iframeStyle.position = 'fixed';\r\n iframeStyle.zIndex = String(this.config.iframeZIndex);\r\n iframeStyle.left = '0';\r\n iframeStyle.top = '0';\r\n iframeStyle.width = '100%';\r\n iframeStyle.height = '100%';\r\n this.inFullscreenMode = true;\r\n this.config.showPopupBackground && this.config.popupBackgroundColor\r\n ? (iframeStyle.backgroundColor = this.config.popupBackgroundColor)\r\n : (iframeStyle.backgroundColor = 'transparent');\r\n }\r\n addEvent(MetrikaEventNames.widget_open);\r\n sendMessage({\r\n message: {\r\n type: PostMessageEvents.IframeOpen,\r\n },\r\n targetOrigin: this.config.url || window.location.origin,\r\n target: this.iframe.contentWindow,\r\n });\r\n };\r\n Widget.prototype.close = function () {\r\n if (!this.iframe || !this.iframe.contentWindow) {\r\n return Error('Widget is not mounted');\r\n }\r\n var iframeStyle = this.iframe.style;\r\n iframeStyle.position = '';\r\n iframeStyle.zIndex = '';\r\n iframeStyle.left = '';\r\n iframeStyle.top = '';\r\n iframeStyle.width = '0';\r\n iframeStyle.height = '0';\r\n iframeStyle.backgroundColor = '';\r\n };\r\n Widget.prototype.initDispatcher = function () {\r\n var _this = this;\r\n var messageHandler = function (e) {\r\n if (e.data.type === PostMessageEvents.Close && !_this.handler[PostMessageEvents.Close]) {\r\n _this.onCloseEvent(e.data.source);\r\n }\r\n if (e.data.type === PostMessageEvents.GoogleOneTapOpen) {\r\n _this.onOpenGoogleOneTapEvent(e.data.params);\r\n }\r\n else {\r\n _this.emit(e.data.type, e.data);\r\n }\r\n };\r\n attachEvent('message', messageHandler);\r\n };\r\n Widget.prototype.onCloseEvent = function (source) {\r\n if (this.inFullscreenMode || source === CloseSource.Button) {\r\n this.close();\r\n }\r\n };\r\n Widget.prototype.onOpenGoogleOneTapEvent = function (params) {\r\n var _this = this;\r\n if (!this.iframe || !this.iframe.parentNode) {\r\n throw new SDKError('Widget is not mounted');\r\n }\r\n var appId = params.appId;\r\n var callback = function (resp) {\r\n sendMessage({\r\n message: {\r\n type: PostMessageEvents.GoogleOneTapSuccess,\r\n credential: resp.credential,\r\n },\r\n targetOrigin: _this.config.url || window.location.origin,\r\n // @ts-ignore\r\n target: _this.iframe.contentWindow,\r\n });\r\n };\r\n initGoogleOneTap(appId, callback);\r\n };\r\n Widget.prototype.updateWidget = function () {\r\n var _this = this;\r\n if (this.iframe) {\r\n var getParams_1 = '';\r\n GET_PARAMS.forEach(function (param) {\r\n var value = _this.config[param];\r\n if (value) {\r\n switch (param) {\r\n case 'preferredLocale':\r\n getParams_1 += \"&locale=\" + value;\r\n break;\r\n case 'clientId':\r\n getParams_1 += \"&client_id=\" + value;\r\n break;\r\n case 'redirectUri':\r\n getParams_1 += \"&redirect_uri=\" + value;\r\n break;\r\n case 'responseType':\r\n getParams_1 += \"&response_type=\" + value;\r\n break;\r\n case 'theme':\r\n getParams_1 += \"&theme=\" + JSON.stringify(value);\r\n break;\r\n case 'authData':\r\n getParams_1 += \"&auth_data=\" + JSON.stringify(value);\r\n break;\r\n case 'siteHaveGDPRBanner':\r\n getParams_1 += \"&\" + param + \"=\" + value;\r\n break;\r\n default:\r\n getParams_1 += \"&\" + param + \"=\" + value;\r\n break;\r\n }\r\n }\r\n });\r\n this.iframe.src = \"\" + this.config.url + this.page + \"?projectId=\" + this.config.projectId;\r\n this.iframe.src += getParams_1;\r\n }\r\n };\r\n Widget.prototype.onPostMessage = function (e) {\r\n switch (e.data.type) {\r\n case PostMessageEvents.OpenBabkaPopupWidget:\r\n if (!this.babkaLoginIframe)\r\n return;\r\n if (e.data.src)\r\n this.babkaLoginIframe.src = e.data.src;\r\n else\r\n this.babkaLoginIframe.style.display = 'block';\r\n return;\r\n case PostMessageEvents.BabkaPopupWidgetClose:\r\n if (this.babkaLoginIframe)\r\n this.babkaLoginIframe.style.display = 'none';\r\n return;\r\n case PostMessageEvents.BabkaPopupWidgetLoad:\r\n if (this.babkaLoginIframe)\r\n this.babkaLoginIframe.style.display = 'block';\r\n if (!this.iframe || !this.iframe.src || !this.iframe.contentWindow)\r\n return;\r\n sendMessage({\r\n message: {\r\n type: PostMessageEvents.BabkaPopupWidgetLoad,\r\n },\r\n targetOrigin: this.config.url || window.location.origin,\r\n target: this.iframe.contentWindow,\r\n });\r\n return;\r\n case PostMessageEvents.SocialLoginSuccess:\r\n if (!window.top || !this.config.callbackUrl || this.config.enablePostMessageLogin) {\r\n return;\r\n }\r\n var loginUrl = new URL(this.config.callbackUrl);\r\n loginUrl.searchParams.append('token', e.data.params.token);\r\n window.top.location.href = loginUrl.toString();\r\n return;\r\n default:\r\n return;\r\n }\r\n };\r\n return Widget;\r\n}(events));\n\nvar Socials;\r\n(function (Socials) {\r\n Socials[\"amazon\"] = \"amazon\";\r\n Socials[\"apple\"] = \"apple\";\r\n Socials[\"babka\"] = \"babka\";\r\n Socials[\"baidu\"] = \"baidu\";\r\n Socials[\"battlenet\"] = \"battlenet\";\r\n Socials[\"china_telecom\"] = \"china_telecom\";\r\n Socials[\"discord\"] = \"discord\";\r\n Socials[\"email\"] = \"email\";\r\n Socials[\"epicgames\"] = \"epicgames\";\r\n Socials[\"facebook\"] = \"facebook\";\r\n Socials[\"github\"] = \"github\";\r\n Socials[\"google\"] = \"google\";\r\n Socials[\"google-plus\"] = \"google-plus\";\r\n Socials[\"instagram\"] = \"instagram\";\r\n Socials[\"kabam\"] = \"kabam\";\r\n Socials[\"kakao\"] = \"kakao\";\r\n Socials[\"kefir\"] = \"kefir\";\r\n Socials[\"linkedin\"] = \"linkedin\";\r\n Socials[\"mailru\"] = \"mailru\";\r\n Socials[\"microsoft\"] = \"microsoft\";\r\n Socials[\"msn\"] = \"msn\";\r\n Socials[\"naver\"] = \"naver\";\r\n Socials[\"ok\"] = \"ok\";\r\n Socials[\"okta\"] = \"okta\";\r\n Socials[\"paradox\"] = \"paradox\";\r\n Socials[\"paypal\"] = \"paypal\";\r\n Socials[\"paxdei\"] = \"paxdei\";\r\n Socials[\"paxdeidev\"] = \"paxdeidev\";\r\n Socials[\"pinterest\"] = \"pinterest\";\r\n Socials[\"qq\"] = \"qq\";\r\n Socials[\"reddit\"] = \"reddit\";\r\n Socials[\"steam\"] = \"steam\";\r\n Socials[\"slack\"] = \"slack\";\r\n Socials[\"twitch\"] = \"twitch\";\r\n Socials[\"twitter\"] = \"twitter\";\r\n Socials[\"vimeo\"] = \"vimeo\";\r\n Socials[\"vk\"] = \"vk\";\r\n Socials[\"wbgames\"] = \"wbgames\";\r\n Socials[\"wechat\"] = \"wechat\";\r\n Socials[\"weibo\"] = \"weibo\";\r\n Socials[\"xbox\"] = \"xbox\";\r\n Socials[\"yahoo\"] = \"yahoo\";\r\n Socials[\"yandex\"] = \"yandex\";\r\n Socials[\"youtube\"] = \"youtube\";\r\n})(Socials || (Socials = {}));\n\nexport { Api, defaultConfig, Widget, ConfirmationType, PostMessageEvents, WidgetPages, CloseSource, APIError, Socials, SUPPORTED_LANGUAGES, LANGUAGE_MAP, sendMessage, initGoogleOneTap, getUrlVersion, getPageName, initAnalytics, TRACK_ID_COOKIE_NAME, getTrackId, addEvent, openEvent, MetrikaEventNames, SocialPosition, addBabkaLoginEvent, addQueryParamsToURL };\n","const MAX_VALUE_SIZE = 1024;\nconst NEXT_PART_SYMBOL = \"@\";\nconst NEXT_PART_SYFFIX = \".\";\n\nclass MemStorage implements Storage {\n length = 0;\n\n private storage: {[key: string]: string} = {};\n\n setItem(key: string, value: string): void {\n this.storage[key] = value;\n this.length = Object.keys(this.storage).length;\n }\n\n getItem(key: string): string | null {\n const value = this.storage[key];\n return value === undefined ? null : value;\n }\n\n removeItem(key: string): void {\n delete this.storage[key];\n this.length = Object.keys(this.storage).length;\n }\n\n key(index: number): string | null {\n const keys = Object.keys(this.storage);\n return keys[index] === undefined ? null : keys[index];\n }\n\n clear() {\n this.length = 0;\n this.storage = {};\n }\n}\n\n\nclass LStorage implements Storage {\n private backend: Storage;\n length: number;\n prefix: string;\n\n constructor(backend: Storage | undefined, prefix: string) {\n this.prefix = prefix;\n\n try {\n this.backend = backend || localStorage;\n this.testBackend();\n } catch (e) {\n this.backend = new MemStorage();\n }\n\n this.length = this.backend.length;\n\n if (typeof this.backend.sync === \"function\") {\n (this as any).sync = (callback: any) => {\n this.backend.sync(callback);\n };\n }\n }\n\n private testBackend() {\n const testKey = this.prefix + \".test.record\";\n const testValue = \"123\";\n this.backend.setItem(testKey, testValue);\n const readedValue = this.backend.getItem(testKey);\n this.backend.removeItem(testKey);\n const valid = readedValue === testValue && this.backend.getItem(testKey) === null;\n\n if (!valid) {\n throw new Error(\"Storage backend is not working properly\");\n }\n }\n\n setLocalStoragePrefix(prefix: string) {\n this.prefix = prefix;\n }\n\n clear(): void {\n if (!this.backend.length) {\n return;\n }\n\n const toRemove: string[] = [];\n for (let i = 0; i < this.backend.length; ++i) {\n const next = this.backend.key(i);\n if (next && next.startsWith(this.prefix)) {\n toRemove.push(next);\n }\n }\n\n for (const next of toRemove) {\n this.backend.removeItem(next);\n }\n this.length = this.backend.length;\n }\n\n key(index: number): string | null {\n return this.backend.key(index);\n }\n\n setItem(key: string, value: string): void {\n if (!value || value.length === undefined || value.length === 0) {\n this.writeStringToKey(key, \"\");\n return;\n }\n\n let offset = 0;\n while (offset < value.length) {\n let substr = value.substr(offset, MAX_VALUE_SIZE);\n offset += substr.length;\n\n if (offset < value.length) {\n substr += NEXT_PART_SYMBOL;\n }\n\n this.writeStringToKey(key, substr);\n key += NEXT_PART_SYFFIX;\n }\n }\n\n getItem(key: string): string | null {\n let value = this.readStringFromKey(key);\n if (value === null) {\n return null;\n }\n\n if (value.length === 0) {\n return value;\n }\n\n while (value[value.length - 1] === NEXT_PART_SYMBOL) {\n value = value.substr(0, value.length - 1);\n key += NEXT_PART_SYFFIX;\n const next = this.readStringFromKey(key);\n value += next === null ? \"\" : next;\n }\n\n return value;\n }\n\n removeItem(key: string): void {\n this.backend.removeItem(this.prefix + key);\n this.length = this.backend.length;\n }\n\n private writeStringToKey(key: string, value: string) {\n this.backend.setItem(this.prefix + key, value);\n this.length = this.backend.length;\n }\n\n private readStringFromKey(key: string) {\n return this.backend.getItem(this.prefix + key);\n }\n}\n\nexport const lStorage = new LStorage(undefined, \"jsdos.v8.auth.\");\n","declare const ym: any;\n\ntype Goal = \"buy-click\" | \"buy\" | \"cancel\" | \"login\" | \"gen\";\nconst reachedGoals: { [goal: string]: boolean } = {};\n\nexport function reachGoal(goal: Goal) {\n try {\n if (reachedGoals[goal] !== true) {\n ym(27763311, \"reachGoal\", goal);\n }\n } catch (e) {\n // ignore\n }\n}\n","import { Widget } from \"@xsolla/login-sdk\";\nimport { lStorage } from \"./lstorage\";\nimport { reachGoal } from \"./ym\";\n\nconst auth = {\n projectId: \"1018115e-f7d3-4f60-8028-ddbdb13fa72b\",\n callbackUrl: location.protocol + \"//\" + location.host + \"/key/\",\n clientId: 3508,\n};\n\nconst xsollaOAuth2 = \"https://login.xsolla.com/api/oauth2/token\";\nconst xsollaMe = \"https://login.xsolla.com/api/users/me\";\nexport const xsollaSubscriptons = \"https://subscriptions.xsolla.com​/api/user/v1/projects/184012/subscriptions\";\nexport const xsollaPremiumId = \"sumOxNVr\";\n\ninterface RefreshToken {\n refresh_token: string,\n}\n\ninterface Token extends RefreshToken {\n access_token: string,\n scope: string,\n expires_in: number,\n validUntilMs: number;\n}\n\nexport interface Account {\n id: string,\n email: string,\n name: null | string,\n picture: null | string,\n token: Token,\n}\n\ntype XsollaWidget = {\n show: () => void,\n};\ntype LoginWidget = { elId: string, mounted: boolean } & Widget;\n\nexport function initWidget(el: HTMLDivElement): XsollaWidget {\n let widget: LoginWidget | null = null;\n\n return {\n show: () => {\n if (widget === null) {\n widget = new Widget({\n ...auth,\n responseType: \"code\",\n state: encodeURIComponent(auth.callbackUrl),\n redirectUri: auth.callbackUrl,\n scope: \"offline\",\n showPopupBackground: false,\n showCloseButton: false,\n }) as LoginWidget;\n\n el.setAttribute(\"id\", \"xsolla-widget\");\n widget.elId = el.id;\n widget.mounted = false;\n }\n\n if (!widget.mounted) {\n widget.mount(widget.elId);\n widget.mounted = true;\n }\n },\n };\n}\n\nexport async function loadAccount(): Promise {\n async function responseToToken(response: Response): Promise {\n if (response.status !== 200) {\n throw new Error(\"Auth error (\" + response.status + \"): \" + response.statusText);\n }\n\n const token: Token = await response.json();\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n if (typeof (token as any).error === \"object\") {\n throw new Error(JSON.stringify((token as any).error));\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n if (typeof token.access_token !== \"string\" ||\n typeof token.refresh_token !== \"string\" ||\n typeof token.expires_in !== \"number\") {\n throw new Error(\"Unknown auth response: \" + JSON.stringify(token));\n }\n\n token.validUntilMs = Date.now() + (token.expires_in - 5) * 1000;\n return token;\n }\n\n async function initToken() {\n const params = new URLSearchParams(location.search);\n const authCode = params.get(\"code\");\n const authState = params.get(\"state\");\n const authScope = params.get(\"scope\");\n\n if (authCode || authScope || authState) {\n history.replaceState(null, \"\", auth.callbackUrl);\n }\n\n if (authCode !== null && authState !== null && authScope !== null) {\n reachGoal(\"login\");\n const response = await fetch(xsollaOAuth2, {\n method: \"POST\",\n cache: \"no-cache\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n body: `client_id=${auth.clientId}&code=${authCode}&state=${authState}` +\n `&grant_type=authorization_code&scope=${authScope}&redirect_uri=${auth.callbackUrl}`,\n\n });\n\n const token = await responseToToken(response);\n lStorage.setItem(\"token\", JSON.stringify(token));\n return token;\n } else {\n const cachedToken = lStorage.getItem(\"token\");\n if (cachedToken) {\n const token: Token = JSON.parse(cachedToken);\n if (token.validUntilMs <= Date.now()) {\n const response = await fetch(xsollaOAuth2, {\n method: \"POST\",\n cache: \"no-cache\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded;charset=UTF-8\",\n },\n body: `client_id=${auth.clientId}&refresh_token=${token.refresh_token}` +\n `&grant_type=refresh_token&redirect_uri=${auth.callbackUrl}`,\n\n });\n const freshToken = await responseToToken(response);\n lStorage.setItem(\"token\", JSON.stringify(freshToken));\n return freshToken;\n } else if (token.refresh_token && token.access_token) {\n return token;\n } else {\n return null;\n }\n } else {\n return null;\n }\n }\n }\n\n try {\n const token = await initToken();\n if (token !== null) {\n const response = await fetch(xsollaMe, {\n method: \"GET\",\n cache: \"no-cache\",\n headers: {\n Authorization: token.access_token,\n },\n });\n\n const data = await response.json();\n if (typeof data.error !== \"undefined\") {\n throw new Error(data.error.code + \": \" + data.error.description);\n }\n\n const account = {\n token,\n id: data.id,\n name: data.name ?? data.first_name ?? null,\n email: data.email,\n picture: data.picture ?? null,\n };\n\n return account;\n }\n } catch (e) {\n console.error(e);\n }\n return null;\n};\n\nexport function logout() {\n lStorage.removeItem(\"token\");\n location.reload();\n}\n\nexport async function linkToBuy(token: string): Promise {\n const response = await fetch(xsollaSubscriptons + \"/buy\", {\n method: \"POST\",\n cache: \"no-cache\",\n headers: {\n \"Authorization\": \"Bearer \" + token,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n plan_external_id: xsollaPremiumId,\n }),\n });\n\n const json = await response.json();\n\n if (json.link_to_ps === undefined) {\n console.error(\"Unexpected subscriptions response:\", json);\n return null;\n }\n\n return json.link_to_ps;\n}\n\nexport async function cancelSubscription(token: string, subscription: string): Promise {\n // eslint-disable-next-line\n // https://subscriptions.xsolla.com/api/doc/user#/Subscriptions/put_xsolla_subscription_apiuser_cancelusersubscription\n const response = await fetch(xsollaSubscriptons + \"/\" + subscription + \"/cancel\", {\n method: \"PUT\",\n cache: \"no-cache\",\n headers: {\n \"Authorization\": \"Bearer \" + token,\n },\n });\n\n const json = await response.json();\n if (json.error) {\n console.error(\"Unexpected subscriptions response:\", json);\n return false;\n }\n\n return true;\n}\n","const translations: {[lang: string]: {[key: string]: string} } = {\n ru: {\n title: \"Подписка js-dos 8.xx\",\n hello: \"Привет\",\n logout: \"Выйти\",\n local_saves: \"Локальные сохранения в браузере\",\n please_login: \"Пожалуйста войдите или зарегистрируйтесь:\",\n greetings: \"Здесь вы можете управлять подпиской js-dos и ключами доступа для плеера.\",\n plan: \"Ваш план (зеленый):\",\n free: \"Бесплатный\",\n readonly_win9x: \"Эмуляция Win9x только для чтения\",\n please_reload_page: \"Перезагрузите страницу\",\n key: \"Ваш ключ (для плеера):\",\n unable_to_cancel_subscription: \"Не удалось отменить подписку\",\n subscription_cancelled: \"Подписка отменена\",\n premium: \"Подписка\",\n cancel: \"Отказаться\",\n try_free: \"дней бесплатно\",\n buy: \"Купить\",\n cloud_saves: \"Облачные сохранения\",\n experimental_features: \"Доступ к экспериентальным функциям\",\n writeable_fat32: \"Эмуляция Win9x в режиме записи\",\n net_no_limits: \"Выбор сервера для стевой игры\",\n please_reload_on_success: \"Пожалуйста перезгрузите эту страницу после покупки\",\n can_i_share_key: \"Могу я поделиться секретным ключом?\",\n can_i_share_content: `Да, конечно.\n Только имейте ввиду, что секретный ключ предоставляет полный доступ к Вашим дискам.\n В случае конкурентной записи файловая система может быстро выйти из строя.`,\n help: \"Нужна помощь?\",\n help_content: \"Документация js-dos (подписки)\",\n sso_title: \"Вход через js-dos\",\n sso_greetings: \"\",\n },\n en: {\n title: \"js-dos 8.xx subscription\",\n hello: \"Hello\",\n logout: \"logout\",\n local_saves: \"Local saves in browser\",\n please_login: \"Please login or register:\",\n greetings: \"Here you can manage your js-dos subscription and access keys for player.\",\n plan: \"Your plan (green):\",\n free: \"Free\",\n please_reload_page: \"Please reload the page\",\n readonly_win9x: \"Win9x emulation in read only mode\",\n unable_to_cancel_subscription: \"Unable to cancel subscription\",\n subscription_cancelled: \"Subscription cancelled\",\n key: \"You key (to use in player):\",\n premium: \"Subscription\",\n cancel: \"Cancel\",\n try_free: \"days for free\",\n buy: \"Buy\",\n cloud_saves: \"Cloud saves\",\n experimental_features: \"Access to all experimental features\",\n writeable_fat32: \"Win9x emulation with write support\",\n net_no_limits: \"Change the network region\",\n please_reload_on_success: \"Please reload this page after purchase\",\n can_i_share_key: \"Can I share secret key?\",\n can_i_share_content: `Yep, you can.\n But take in mind that secret key provides direct access to your disk drives and saves.\n In the case of concurrent writing, they will quickly become broken.`,\n help: \"Need help?\",\n help_content: \"js-dos documentation (subscription)\",\n sso_title: \"js-dos login\",\n sso_greetings: \"\",\n },\n};\n\nexport const lang = navigator.language.startsWith(\"ru\") ? \"ru\" : \"en\";\n\nexport function useT() {\n return (key: string) => {\n return translations[lang][key] ?? key;\n };\n};\n","import { useState } from \"preact/hooks\";\nimport { lang, useT } from \"./i18n\";\nimport { Account, cancelSubscription, linkToBuy } from \"./xsolla\";\nimport { reachGoal } from \"./ym\";\n\nconst cancelSubscriptionPage: {[lang: string]: string} = {\n en: \"https://v8.js-dos.com/cancel-your-subscription/\",\n ru: \"https://v8.js-dos.com/ru/cancel-your-subscription/\",\n};\n\nexport function PremiumPlan(props: { account: Account, premium: boolean, subscription: string }) {\n const t = useT();\n const { account, premium, subscription } = props;\n const [locked, setLocked] = useState(false);\n\n const token = account.token.access_token;\n function onBuy() {\n if (locked) {\n return;\n }\n\n reachGoal(\"buy-click\");\n\n linkToBuy(token)\n .then((link) => {\n if (link !== null) {\n reachGoal(\"buy\");\n // alert(t(\"please_reload_on_success\"));\n window.open(link, \"_blank\");\n setLocked(true);\n document.addEventListener(\"visibilitychange\", () => {\n if (!document.hidden) {\n location.reload();\n }\n });\n }\n })\n .catch(console.error);\n }\n\n async function cancel() {\n const openPage = () => {\n alert(t(\"unable_to_cancel_subscription\"));\n window.open(cancelSubscriptionPage[lang] ?? cancelSubscriptionPage.en, \"_blank\");\n };\n if (!account) {\n openPage();\n } else {\n try {\n if (await cancelSubscription(account.token.access_token, subscription)) {\n reachGoal(\"cancel\");\n alert(t(\"subscription_cancelled\"));\n } else {\n openPage();\n }\n } catch (e) {\n openPage();\n }\n }\n }\n\n return
\n
\n { premium && }\n
{t(\"premium\")}
\n
\n {premium &&\n \n {t(\"cancel\")}\n }\n
\n {!premium &&\n <>\n
\n
\n 1$\n
\n
\n
USD / mo
\n
7 {t(\"try_free\")}
\n
\n
\n {!locked && }\n {locked && }\n \n }\n
\n
\n \n
+ {t(\"cloud_saves\")}
\n
\n
\n \n
+ {t(\"writeable_fat32\")}
\n
\n
\n \n
+ {t(\"experimental_features\")}
\n
\n
\n
;\n}\n\nexport function FreePlan(props: { active: boolean }) {\n const t = useT();\n const active = props.active;\n\n return
\n
\n { active && }\n
{t(\"free\")}
\n
\n
\n
\n \n
{t(\"local_saves\")}
\n
\n
\n \n
{t(\"readonly_win9x\")}
\n
\n
\n \n
{t(\"net_no_limits\")}
\n
\n
\n
;\n}\n\nfunction PremiumCheck() {\n return \n \n ;\n}\n\nfunction openPremiumPage() {\n window.open(\"https://js-dos.com/cloud-overview.html\", \"_blank\");\n}\n","export const v8 = \"https://d5dn8hh4ivlobv6682ep.apigw.yandexcloud.net\";\n","import { useEffect, useRef, useState } from \"preact/hooks\";\nimport \"./app.css\";\nimport { Account, initWidget, loadAccount, logout } from \"./xsolla\";\nimport { FreePlan, PremiumPlan } from \"./premium-plan\";\nimport { useT } from \"./i18n\";\nimport { v8 } from \"./v8-config\";\nimport { reachGoal } from \"./ym\";\nimport { lStorage } from \"./lstorage\";\n\n\nconst params = new URLSearchParams(location.search);\nconst sso = params.get(\"sso\") ?? lStorage.getItem(\"query_sso\");\nconst ssoSig = params.get(\"sig\") ?? lStorage.getItem(\"query_sig\");\n\nif (params.get(\"sso\") !== undefined && params.get(\"sig\") !== undefined) {\n lStorage.setItem(\"query_sso\", params.get(\"sso\")!);\n lStorage.setItem(\"query_sig\", params.get(\"sig\")!);\n} else {\n lStorage.removeItem(\"query_sso\");\n lStorage.removeItem(\"query_sig\");\n}\n\nconst isSSO = typeof sso === \"string\" && sso.length > 0;\n\nexport function App() {\n const loginWidgetElement = useRef(null);\n const [account, setAccount] = useState(undefined);\n const [token, setToken] = useState(\"-----\");\n const [premium, setPremium] = useState(false);\n const [subscription, setSubscription] = useState(\"\");\n const [generating, setGenerating] = useState(false);\n const t = useT();\n\n useEffect(() => {\n (async function() {\n const account = await loadAccount();\n if (account) {\n const entry = await (await fetch(v8 + \"/token/get?id=\" + account.id +\n \"&token=\" + account.token.access_token)).json();\n if (entry.token) {\n setToken(entry.token);\n setPremium(entry.premium);\n setSubscription(entry.subscription);\n }\n }\n if (isSSO && account) {\n try {\n lStorage.removeItem(\"query_sso\");\n lStorage.removeItem(\"query_sig\");\n\n const { success, payload, payloadSig, url } = await (await fetch(v8 + \"/discourse?sso=\" + sso + \n \"&sig=\" + ssoSig + \n \"&id=\" + encodeURIComponent(account.id) +\n \"&email=\" + encodeURIComponent(account.email) + \n \"&name=\" + encodeURIComponent(account.name ?? account.email.split(\"@\")[0]) +\n \"&picture=\" + encodeURIComponent(account.picture ?? \"\") +\n \"&token=\" + account.token.access_token)).json();\n console.log(\"res\", payload);\n \n location.href = url + \"?sso=\" + payload + \"&sig=\" + payloadSig;\n\n if (!success) {\n throw new Error(\"Failed to authenticate\");\n }\n } catch (e) {\n console.error(e);\n location.href = \"/key\";\n }\n } else {\n setAccount(account);\n }\n })().catch(console.error);\n }, []);\n\n useEffect(() => {\n if (account === null) {\n if (loginWidgetElement.current !== null) {\n const widget = initWidget(loginWidgetElement.current);\n widget.show();\n }\n }\n }, [account === null, loginWidgetElement]);\n\n function regen() {\n reachGoal(\"gen\");\n if (account?.token.access_token) {\n setGenerating(true);\n fetch(v8 + \"/token/gen?token=\" + account.token.access_token)\n .then((r) => r.json())\n .then((j) => setToken(j.token))\n .catch(console.error)\n .finally(() => setGenerating(false));\n }\n }\n\n function copy() {\n if (!navigator.clipboard) {\n return;\n }\n\n navigator.clipboard.writeText(token);\n }\n\n const name = account?.name ?? account?.email ?? \"\";\n\n return (\n
\n
\n

{isSSO ? t(\"sso_title\") : t(\"title\")}

\n {account !== null && account !== undefined &&\n
\n {t(\"hello\")}{name.length > 0 ? \", \" + name : \"\"}!\n
\n ({t(\"logout\")})\n
\n
\n }\n {(account === null || account === undefined) &&\n
{t(\"hello\")}!
\n }\n {isSSO ? t(\"sso_greetings\") : t(\"greetings\")}\n {account === null && <>\n
{t(\"please_login\")}
\n }\n {account === undefined && <>\n

\n }\n
\n {account !== null && account !== undefined && <>\n
\n {t(\"key\")}\n
\n \n \n \n
\n
\n {!generating &&
\n
\n
{token[0]}
\n
{token[1]}
\n
{token[2]}
\n
{token[3]}
\n
{token[4]}
\n
\n
\n \n \n \n
\n
}\n {generating &&\n

}\n

{t(\"plan\")}

\n
\n
\n \n
\n \n
\n
\n

{t(\"can_i_share_key\")}

\n {t(\"can_i_share_content\")}\n
\n
\n

{t(\"help\")}

\n {t(\"help_content\")}\n
\n }\n
\n
\n );\n}\n","import { render } from \"preact\";\nimport { App } from \"./app.tsx\";\n\nrender(, document.getElementById(\"app\")!);\n"],"names":["n","l","u","i","o","r","f","e","c","s","h","p","v","y","Array","isArray","d","w","parentNode","removeChild","g","t","type","props","key","ref","__k","__","__b","__e","__d","__c","constructor","__v","__i","__u","vnode","k","children","b","this","context","x","length","C","base","M","push","P","__r","debounceRendering","sort","shift","__P","O","__n","namespaceURI","j","S","a","_","String","L","V","$","N","I","nextSibling","contains","insertBefore","nodeType","T","setProperty","test","A","style","cssText","replace","toLowerCase","slice","addEventListener","removeEventListener","removeAttribute","setAttribute","F","event","m","H","prototype","render","contextType","value","__E","q","sub","state","__h","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","indexOf","l$1","localName","document","createTextNode","createElementNS","is","data","call","childNodes","attributes","name","__html","innerHTML","z","diffed","some","current","unmount","componentWillUnmount","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","setTimeout","__source","__self","defaultProps","__H","D","__N","filter","every","B","__m","requestAnimationFrame","clearTimeout","cancelAnimationFrame","extendStatics","Object","setPrototypeOf","__proto__","hasOwnProperty","__extends","create","__assign","assign","arguments","apply","__rest","getOwnPropertySymbols","__awaiter","thisArg","_arguments","generator","reject","fulfilled","step","next","rejected","result","done","__generator","body","label","sent","trys","ops","verb","throw","return","Symbol","iterator","op","TypeError","pop","global$1","global","self","window","defaultSetTimout","Error","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","nextTick","args","Item","array","performance","now","mozNow","msNow","oNow","webkitNow","fn","toString","getPrototypeOf","kindOf","thing","str","cache","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","toStringTag","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","obj","allOwnKeys","keys","getOwnPropertyNames","findKey","_key","_global","globalThis","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","token","Math","random","callbacks","source","cb","asap","queueMicrotask","utils","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","extend","trim","stripBOM","content","charCodeAt","inherits","superConstructor","defineProperty","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","arr","forEachEntry","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","enumerable","writable","set","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","catch","AxiosError","message","code","config","request","response","captureStackTrace","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","join","predicates","toFormData","formData","options","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","isFlatArray","el","index","exposedHelpers","build","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","prototype$1","encode$1","buildURL","url","_encode","serializeFn","serialize","serializedParams","hashmarkIndex","encoder","InterceptorManager","handlers","use","synchronous","runWhen","eject","id","clear","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","platform$1","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","origin","location","href","platform$2","freeze","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","defaults","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","get","tokens","tokensRE","parseTokens","has","matcher","deleted","deleteHeader","normalize","format","normalized","char","formatHeader","targets","asStrings","first","computed","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","floor","mapped","headerValue","progressEventReducer","listener","isDownloadStream","freq","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","Date","startedAt","bytesCount","passed","round","speedometer","lastArgs","timer","timestamp","threshold","invoke","throttle","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isURLSameOrigin","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","protocol","host","search","hash","hostname","port","pathname","charAt","requestURL","cookies","write","expires","domain","secure","cookie","toGMTString","read","RegExp","decodeURIComponent","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","resolveConfig","newConfig","auth","btoa","username","password","unescape","Boolean","xsrfValue","xhrAdapter","XMLHttpRequest","_config","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","signal","onloadend","responseHeaders","getAllResponseHeaders","err","responseText","statusText","open","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","cancel","abort","subscribe","aborted","parseProtocol","send","composeSignals","signals","controller","AbortController","reason","streamChunk","chunk","chunkSize","byteLength","end","pos","trackStream","stream","onProgress","onFinish","async","iterable","readBytes","_onFinish","ReadableStream","pull","close","loadedBytes","enqueue","highWaterMark","isFetchSupported","fetch","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","res","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","getBodyLength","knownAdapters","http","xhr","fetchOptions","finished","composedSignal","stopTimeout","requestContentLength","contentTypeHeader","_request","flush","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","validators$1","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","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","instance","createCommonjsModule","module","exports","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","getAdapter","default","ConfirmationType","PostMessageEvents","WidgetPages","CloseSource","js_cookie","factory","decode","init","converter","api","toUTCString","escape","stringifiedAttributes","attributeName","json","jar","parts","getJSON","withConverter","APIError","_super","_i","_this","SDKError","SUPPORTED_LANGUAGES","defaultLocale","browserLanguages","language","languages","getBrowserLocale","preferredLang","preferredLocale","find","lang","includes","sendMessage","_a","targetOrigin","_b","globalObject","windowParent","parent","PageOpen","ThemeUpdate","GoogleOneTapSuccess","IframeOpen","BabkaLoginPopup","BabkaPopupWidgetLoad","RequestAncestorsLocation","ResponseAncestorsLocation","SocialLoginSuccess","Close","Open","Dimensions","WidgetStep","GetRedirectCode","GoogleOneTapOpen","LoginSuccess","LoginError","SignupSuccess","SignupError","SocialLogin","OpenBabkaPopupWidget","BabkaLogin","opener","eventMethod","eventer","prefix","purify","merge$1","MetrikaEventNames","SocialPosition","XsollaAnalytics","Config","counterId","clientId","siteDomains","server","hitUrl","userParamsUrl","externalId","extraValues","hit","extLink","click","scroll","sendLoadMetrics","abParams","ScrollTimer","ScrollFirst","ScrollMiddle","ScrollBottom","LCP","firstHiddenTime","visibilityState","Infinity","Util","mergeObjects","src","apiHelper","eventType","eid","exv","et","Browser","FCP","getEntriesByType","paints","startTime","chrome","loadTimes","requestTime","firstPaintTime","timing","navigationStart","msFirstPaint","updateLCP","entry","scrollHeight","documentElement","clientHeight","Api","eventForLCP","po","PerformanceObserver","entryList","getEntries","observe","buffered","rec","takeRecords","disconnect","connection","userLanguage","browserLanguage","systemLanguage","javaEnabled","Notification","permission","top","cookieEnabled","Time","getTimezoneOffset","Cookies","getVid","vid","Document","isFromAd","readM","getUid","globalDomain","uid","uidLS","readLocalStorage","createLocalStorage","getXsollauid","xid","xidLS","localStorage","setItem","_prepareName","minutes","setTime","getTime","_domain","extractHostname","$1","getItem","erase","getDocumentCharset","characterSet","charset","getRootElement","compatMode","getViewportSize","clientWidth","innerWidth","innerHeight","getDocumentTitle","title","getElementsByTagName","referrer","adSystemSources","adSystemMediums","queryParams","isAd","item","isExternal","linkUrl","isInternal","ident","prepareBrowserInfo","xsollauid","param","hitCount","sendBeacon","sendXHR","sendUserParams","clid","cid","onLine","onload","xsollauidFromUrl","getValueFromUrl","xsollauidFromBody","getValueFromBody","regexp","valueFromURL","valueFromBody","setXsollauidFromUrl","screen","ntf","net","pc","tz","vs","wcw","wch","plt","lcp","la","sw","width","sh","height","sc","colorDepth","pixelDepth","ifr","yid","ga","gaid","pv","cv","pav","dv","fvp","Events","setHandlers","crossDomainTracking","documentVisibilityChange","documentReadyEvent","onDocumentReady","clickEvent","selectorEvent","scrollEvent","externalTransitionEvent","func","attachEvent","timeStamp","Anchors","setEvents","onClick","referer","ss","querySelectorAll","onSelectorClick","en","dataset","analytics","onScroll","scrollTop","onFormSubmit","onExternalTransition","trg","srcElement","nodeName","newParam","dataObj","refererUrl","externalLink","elementClick","formDataStr","form","customEvent","setABParams","setUserParams","uprm","addXsollauidToUrl","xuid","xuidParam","sendCustomData","route","log","merchantId","visitId","userParams","ReflectOwnKeys","getTrackId","addEvent","eventName","block","section","action","getMetrikaEventName","XA","richOptions","projectId","trackId","enrichExtraValues","regionMap","AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","ZZ","extendURLSearchParams","searchParams","appendIfNotEmpty","appendLocale","locale","originUrl","paramKey","paramValue","addQueryParamsToURL","xsolla_lang","apiUrl","cdnUrl","consentUrl","theme","background","color","image","opacity","primary_color","secondary_color","text_color","error_color","button_image","rounding","inputs","buttons","widget","scene","is_oauth2","parseError","oauthTwoGetParams","oauthTwoBabkaGetParams","jwtAuthGetParams","extendedCustomization","sendLetterParams","otpGetParams","collectParams","addGetParams","xRequestId","login_url","callbackUrl","fullLocale","client_id","redirect_uri","redirectUri","response_type","email_template","emailTemplate","updateConfig","loginApi","requestName","apiClient","xTraceIdEnabledApi","requestUrl","requestType","analyticsData","performanceRequest","isError","load_time","getLoginClientApi","getConfig","puredConfig","fetchConfig","settingsJSON","socialsJSON","themeJSON","disableCache","apiUrlMode","settingsURL","socialsURL","themeURL","sendExv","currTime","getSettings","URL","settings","tos_url","consent_url","cookie_policy","privacy_policy","settingsResp","socialResp","themeResp","clientCountry","geo_ip_country","parsedSocialsNew","country","isOauth2","scope","_c","_d","_e","_f","_g","_h","paramsString","socials","primarySocials","primary","oauth2","jwt","secondarySocials","secondary","custom","showOtherLink","getParsedSocialsNew","parsedSettings","social_links","signup","userInfo","post","resp","login","captchaData","lot_number","captcha_output","pass_token","gen_time","captchaHeader","agreement","isAccepted","consentId","accept_consent","consent_id","put","reset","setParams","new_password","newPassword","reset_code","user_id","getConfirmCode","confirmParams","operation_id","pushConfirmCode","pushCodeParams","ask","askParams","customLabels","customStyle","stylesParams","stylesParamsString","settingsData","fields","email","link_url","send_link","enable_magic_link","disableConfirmByLink","updatedFields","getAskFields","Authorization","fieldsMapped","getAll","fieldsArray_1","required","validation","regexps","getEmailFieldFromUrl","getSocialLink","socialProvider","customParams","_mm_vid_2222","otpLogin","remember_me","challenge_id","apiCode","otpResendCode","phoneGetCode","phone_number","postUrl","loginWithPhoneCode","emailGetCode","loginWithEmailCode","resendEmail","oneTapLogin","accessToken","providerName","access_token","checkUserAuthSSO","userAuthSSOWithRedirect","loginUrl","logout","session","sessions","oauth2Auth","enablePostMessageLogin","isValidJSONObject","loginUri","oauth2ConsentValidate","validateUrl","oauth2PostConsent","approval","clearSSO","protectedRedirect","R","Reflect","ReflectApply","receiver","Function","ownKeys","NumberIsNaN","isNaN","EventEmitter","events","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","that","_addListener","prepend","existing","warning","newListener","emit","warned","emitter","count","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","copy","arg","RangeError","setMaxListeners","getMaxListeners","doError","er","handler","listeners","addListener","on","prependListener","once","prependOnceListener","list","originalListener","spliceOne","off","removeAllListeners","rawListeners","eventNames","Socials","addSandbox","iframe","sandbox","add","DEFAULT_CONFIG","popupBackgroundColor","showPopupBackground","iframeZIndex","siteHaveGDPRBanner","showCloseButton","GET_PARAMS","pages","signUp","confirm","logIn","passwordReset","passwordSet","otp","logInUserPreset","externalOauth2","Widget","eventsArray","values","inFullscreenMode","page","setLocale","postMessageHandler","onPostMessage","mount","elementId","isHardMounted","babkaLoginPopup","border","borderRadius","bottom","left","right","getElementById","elStyle","getComputedStyle","display","visibility","appendChild","updateWidget","widget_open","initDispatcher","babkaLoginFlow","babkaLoginIframe","zIndex","setTheme","contentWindow","setPage","iframeStyle","backgroundColor","onCloseEvent","onOpenGoogleOneTapEvent","Button","appId","googleLibScript","defer","onGoogleLibraryLoad","google","accounts","initialize","cancel_on_tap_outside","prompt","initGoogleOneTap","credential","getParams_1","BabkaPopupWidgetClose","MemStorage","storage","removeItem","lStorage","backend","testBackend","sync","testKey","readedValue","setLocalStoragePrefix","toRemove","startsWith","writeStringToKey","offset","substr","readStringFromKey","reachedGoals","reachGoal","goal","ym","xsollaOAuth2","xsollaMe","xsollaSubscriptons","xsollaPremiumId","reload","translations","ru","hello","local_saves","please_login","greetings","plan","free","readonly_win9x","please_reload_page","unable_to_cancel_subscription","subscription_cancelled","premium","try_free","buy","cloud_saves","experimental_features","writeable_fat32","net_no_limits","please_reload_on_success","can_i_share_key","can_i_share_content","help","help_content","sso_title","sso_greetings","useT","cancelSubscriptionPage","PremiumPlan","account","subscription","locked","setLocked","useState","class","u$1","PremiumCheck","jsx","openPremiumPage","openPage","cancelSubscription","Fragment","plan_external_id","link_to_ps","linkToBuy","link","hidden","FreePlan","active","xmlns","fill","viewBox","stroke","v8","sso","ssoSig","isSSO","App","loginWidgetElement","useRef","setAccount","setToken","setPremium","setSubscription","generating","setGenerating","useEffect","responseToToken","refresh_token","expires_in","validUntilMs","authCode","authState","authScope","history","replaceState","cachedToken","freshToken","initToken","first_name","picture","loadAccount","success","payloadSig","show","elId","mounted","initWidget","jsxs","className","finally","clipboard","writeText","firstChild"],"mappings":"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I,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI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","x_google_ignoreList":[0,1,2,3]}