{"version":3,"file":"UploadImage.vue_vue_type_script_setup_true_lang-HZYNKo3p.js","sources":["../../node_modules/.pnpm/js-base64@3.7.5/node_modules/js-base64/base64.mjs","../../node_modules/.pnpm/requires-port@1.0.0/node_modules/requires-port/index.js","../../node_modules/.pnpm/querystringify@2.2.0/node_modules/querystringify/index.js","../../node_modules/.pnpm/url-parse@1.5.10/node_modules/url-parse/index.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/error.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/uuid.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/upload.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/noopUrlStorage.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/urlStorage.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/httpStack.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/isReactNative.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/uriToBlob.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/sources/isCordova.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/sources/readAsByteArray.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/sources/FileSource.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/sources/StreamSource.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/fileReader.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/fileSignature.js","../../node_modules/.pnpm/tus-js-client@3.1.3/node_modules/tus-js-client/lib.esm/browser/index.js","../../cognitocmsapi/Components/UploadImage.vue"],"sourcesContent":["/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.5';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasatob = typeof atob === 'function';\nconst _hasbtoa = typeof btoa === 'function';\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = _hasbtoa ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = _hasatob ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins,\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { try { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; } catch (e) { return typeof fn === \"function\"; } }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar DetailedError = /*#__PURE__*/function (_Error) {\n _inherits(DetailedError, _Error);\n var _super = _createSuper(DetailedError);\n function DetailedError(message) {\n var _this;\n var causingErr = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var req = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var res = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n _classCallCheck(this, DetailedError);\n _this = _super.call(this, message);\n _this.originalRequest = req;\n _this.originalResponse = res;\n _this.causingError = causingErr;\n if (causingErr != null) {\n message += \", caused by \".concat(causingErr.toString());\n }\n if (req != null) {\n var requestId = req.getHeader('X-Request-ID') || 'n/a';\n var method = req.getMethod();\n var url = req.getURL();\n var status = res ? res.getStatus() : 'n/a';\n var body = res ? res.getBody() || '' : 'n/a';\n message += \", originated from request (method: \".concat(method, \", url: \").concat(url, \", response code: \").concat(status, \", response text: \").concat(body, \", request id: \").concat(requestId, \")\");\n }\n _this.message = message;\n return _this;\n }\n return _createClass(DetailedError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport default DetailedError;","/**\n * Generate a UUID v4 based on random numbers. We intentioanlly use the less\n * secure Math.random function here since the more secure crypto.getRandomNumbers\n * is not available on all platforms.\n * This is not a problem for us since we use the UUID only for generating a\n * request ID, so we can correlate server logs to client errors.\n *\n * This function is taken from following site:\n * https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n *\n * @return {string} The generate UUID\n */\nexport default function uuid() {\n /* eslint-disable no-bitwise */\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}","function _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { Base64 } from 'js-base64';\nimport URL from 'url-parse';\nimport DetailedError from './error.js';\nimport { log } from './logger.js';\nimport uuid from './uuid.js';\nvar defaultOptions = {\n endpoint: null,\n uploadUrl: null,\n metadata: {},\n fingerprint: null,\n uploadSize: null,\n onProgress: null,\n onChunkComplete: null,\n onSuccess: null,\n onError: null,\n onUploadUrlAvailable: null,\n overridePatchMethod: false,\n headers: {},\n addRequestId: false,\n onBeforeRequest: null,\n onAfterResponse: null,\n onShouldRetry: defaultOnShouldRetry,\n chunkSize: Infinity,\n retryDelays: [0, 1000, 3000, 5000],\n parallelUploads: 1,\n parallelUploadBoundaries: null,\n storeFingerprintForResuming: true,\n removeFingerprintOnSuccess: false,\n uploadLengthDeferred: false,\n uploadDataDuringCreation: false,\n urlStorage: null,\n fileReader: null,\n httpStack: null\n};\nvar BaseUpload = /*#__PURE__*/function () {\n function BaseUpload(file, options) {\n _classCallCheck(this, BaseUpload);\n // Warn about removed options from previous versions\n if ('resume' in options) {\n // eslint-disable-next-line no-console\n console.log('tus: The `resume` option has been removed in tus-js-client v2. Please use the URL storage API instead.');\n }\n\n // The default options will already be added from the wrapper classes.\n this.options = options;\n\n // Cast chunkSize to integer\n this.options.chunkSize = Number(this.options.chunkSize);\n\n // The storage module used to store URLs\n this._urlStorage = this.options.urlStorage;\n\n // The underlying File/Blob object\n this.file = file;\n\n // The URL against which the file will be uploaded\n this.url = null;\n\n // The underlying request object for the current PATCH request\n this._req = null;\n\n // The fingerpinrt for the current file (set after start())\n this._fingerprint = null;\n\n // The key that the URL storage returned when saving an URL with a fingerprint,\n this._urlStorageKey = null;\n\n // The offset used in the current PATCH request\n this._offset = null;\n\n // True if the current PATCH request has been aborted\n this._aborted = false;\n\n // The file's size in bytes\n this._size = null;\n\n // The Source object which will wrap around the given file and provides us\n // with a unified interface for getting its size and slice chunks from its\n // content allowing us to easily handle Files, Blobs, Buffers and Streams.\n this._source = null;\n\n // The current count of attempts which have been made. Zero indicates none.\n this._retryAttempt = 0;\n\n // The timeout's ID which is used to delay the next retry\n this._retryTimeout = null;\n\n // The offset of the remote upload before the latest attempt was started.\n this._offsetBeforeRetry = 0;\n\n // An array of BaseUpload instances which are used for uploading the different\n // parts, if the parallelUploads option is used.\n this._parallelUploads = null;\n\n // An array of upload URLs which are used for uploading the different\n // parts, if the parallelUploads option is used.\n this._parallelUploadUrls = null;\n }\n\n /**\n * Use the Termination extension to delete an upload from the server by sending a DELETE\n * request to the specified upload URL. This is only possible if the server supports the\n * Termination extension. If the `options.retryDelays` property is set, the method will\n * also retry if an error ocurrs.\n *\n * @param {String} url The upload's URL which will be terminated.\n * @param {object} options Optional options for influencing HTTP requests.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n _createClass(BaseUpload, [{\n key: \"findPreviousUploads\",\n value: function findPreviousUploads() {\n var _this = this;\n return this.options.fingerprint(this.file, this.options).then(function (fingerprint) {\n return _this._urlStorage.findUploadsByFingerprint(fingerprint);\n });\n }\n }, {\n key: \"resumeFromPreviousUpload\",\n value: function resumeFromPreviousUpload(previousUpload) {\n this.url = previousUpload.uploadUrl || null;\n this._parallelUploadUrls = previousUpload.parallelUploadUrls || null;\n this._urlStorageKey = previousUpload.urlStorageKey;\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n var file = this.file;\n if (!file) {\n this._emitError(new Error('tus: no file or stream to upload provided'));\n return;\n }\n if (!this.options.endpoint && !this.options.uploadUrl && !this.url) {\n this._emitError(new Error('tus: neither an endpoint or an upload URL is provided'));\n return;\n }\n var retryDelays = this.options.retryDelays;\n if (retryDelays != null && Object.prototype.toString.call(retryDelays) !== '[object Array]') {\n this._emitError(new Error('tus: the `retryDelays` option must either be an array or null'));\n return;\n }\n if (this.options.parallelUploads > 1) {\n // Test which options are incompatible with parallel uploads.\n for (var _i = 0, _arr = ['uploadUrl', 'uploadSize', 'uploadLengthDeferred']; _i < _arr.length; _i++) {\n var optionName = _arr[_i];\n if (this.options[optionName]) {\n this._emitError(new Error(\"tus: cannot use the \".concat(optionName, \" option when parallelUploads is enabled\")));\n return;\n }\n }\n }\n if (this.options.parallelUploadBoundaries) {\n if (this.options.parallelUploads <= 1) {\n this._emitError(new Error('tus: cannot use the `parallelUploadBoundaries` option when `parallelUploads` is disabled'));\n return;\n }\n if (this.options.parallelUploads !== this.options.parallelUploadBoundaries.length) {\n this._emitError(new Error('tus: the `parallelUploadBoundaries` must have the same length as the value of `parallelUploads`'));\n return;\n }\n }\n this.options.fingerprint(file, this.options).then(function (fingerprint) {\n if (fingerprint == null) {\n log('No fingerprint was calculated meaning that the upload cannot be stored in the URL storage.');\n } else {\n log(\"Calculated fingerprint: \".concat(fingerprint));\n }\n _this2._fingerprint = fingerprint;\n if (_this2._source) {\n return _this2._source;\n }\n return _this2.options.fileReader.openFile(file, _this2.options.chunkSize);\n }).then(function (source) {\n _this2._source = source;\n\n // First, we look at the uploadLengthDeferred option.\n // Next, we check if the caller has supplied a manual upload size.\n // Finally, we try to use the calculated size from the source object.\n if (_this2.options.uploadLengthDeferred) {\n _this2._size = null;\n } else if (_this2.options.uploadSize != null) {\n _this2._size = Number(_this2.options.uploadSize);\n if (Number.isNaN(_this2._size)) {\n _this2._emitError(new Error('tus: cannot convert `uploadSize` option into a number'));\n return;\n }\n } else {\n _this2._size = _this2._source.size;\n if (_this2._size == null) {\n _this2._emitError(new Error(\"tus: cannot automatically derive upload's size from input. Specify it manually using the `uploadSize` option or use the `uploadLengthDeferred` option\"));\n return;\n }\n }\n\n // If the upload was configured to use multiple requests or if we resume from\n // an upload which used multiple requests, we start a parallel upload.\n if (_this2.options.parallelUploads > 1 || _this2._parallelUploadUrls != null) {\n _this2._startParallelUpload();\n } else {\n _this2._startSingleUpload();\n }\n })[\"catch\"](function (err) {\n _this2._emitError(err);\n });\n }\n\n /**\n * Initiate the uploading procedure for a parallelized upload, where one file is split into\n * multiple request which are run in parallel.\n *\n * @api private\n */\n }, {\n key: \"_startParallelUpload\",\n value: function _startParallelUpload() {\n var _this$options$paralle,\n _this3 = this;\n var totalSize = this._size;\n var totalProgress = 0;\n this._parallelUploads = [];\n var partCount = this._parallelUploadUrls != null ? this._parallelUploadUrls.length : this.options.parallelUploads;\n\n // The input file will be split into multiple slices which are uploaded in separate\n // requests. Here we get the start and end position for the slices.\n var parts = (_this$options$paralle = this.options.parallelUploadBoundaries) !== null && _this$options$paralle !== void 0 ? _this$options$paralle : splitSizeIntoParts(this._source.size, partCount);\n\n // Attach URLs from previous uploads, if available.\n if (this._parallelUploadUrls) {\n parts.forEach(function (part, index) {\n part.uploadUrl = _this3._parallelUploadUrls[index] || null;\n });\n }\n\n // Create an empty list for storing the upload URLs\n this._parallelUploadUrls = new Array(parts.length);\n\n // Generate a promise for each slice that will be resolve if the respective\n // upload is completed.\n var uploads = parts.map(function (part, index) {\n var lastPartProgress = 0;\n return _this3._source.slice(part.start, part.end).then(function (_ref) {\n var value = _ref.value;\n return new Promise(function (resolve, reject) {\n // Merge with the user supplied options but overwrite some values.\n var options = _objectSpread(_objectSpread({}, _this3.options), {}, {\n // If available, the partial upload should be resumed from a previous URL.\n uploadUrl: part.uploadUrl || null,\n // We take manually care of resuming for partial uploads, so they should\n // not be stored in the URL storage.\n storeFingerprintForResuming: false,\n removeFingerprintOnSuccess: false,\n // Reset the parallelUploads option to not cause recursion.\n parallelUploads: 1,\n // Reset this option as we are not doing a parallel upload.\n parallelUploadBoundaries: null,\n metadata: {},\n // Add the header to indicate the this is a partial upload.\n headers: _objectSpread(_objectSpread({}, _this3.options.headers), {}, {\n 'Upload-Concat': 'partial'\n }),\n // Reject or resolve the promise if the upload errors or completes.\n onSuccess: resolve,\n onError: reject,\n // Based in the progress for this partial upload, calculate the progress\n // for the entire final upload.\n onProgress: function onProgress(newPartProgress) {\n totalProgress = totalProgress - lastPartProgress + newPartProgress;\n lastPartProgress = newPartProgress;\n _this3._emitProgress(totalProgress, totalSize);\n },\n // Wait until every partial upload has an upload URL, so we can add\n // them to the URL storage.\n onUploadUrlAvailable: function onUploadUrlAvailable() {\n _this3._parallelUploadUrls[index] = upload.url;\n // Test if all uploads have received an URL\n if (_this3._parallelUploadUrls.filter(function (u) {\n return Boolean(u);\n }).length === parts.length) {\n _this3._saveUploadInUrlStorage();\n }\n }\n });\n var upload = new BaseUpload(value, options);\n upload.start();\n\n // Store the upload in an array, so we can later abort them if necessary.\n _this3._parallelUploads.push(upload);\n });\n });\n });\n var req;\n // Wait until all partial uploads are finished and we can send the POST request for\n // creating the final upload.\n Promise.all(uploads).then(function () {\n req = _this3._openRequest('POST', _this3.options.endpoint);\n req.setHeader('Upload-Concat', \"final;\".concat(_this3._parallelUploadUrls.join(' ')));\n\n // Add metadata if values have been added\n var metadata = encodeMetadata(_this3.options.metadata);\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n return _this3._sendRequest(req, null);\n }).then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this3._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n return;\n }\n var location = res.getHeader('Location');\n if (location == null) {\n _this3._emitHttpError(req, res, 'tus: invalid or missing Location header');\n return;\n }\n _this3.url = resolveUrl(_this3.options.endpoint, location);\n log(\"Created upload at \".concat(_this3.url));\n _this3._emitSuccess();\n })[\"catch\"](function (err) {\n _this3._emitError(err);\n });\n }\n\n /**\n * Initiate the uploading procedure for a non-parallel upload. Here the entire file is\n * uploaded in a sequential matter.\n *\n * @api private\n */\n }, {\n key: \"_startSingleUpload\",\n value: function _startSingleUpload() {\n // Reset the aborted flag when the upload is started or else the\n // _performUpload will stop before sending a request if the upload has been\n // aborted previously.\n this._aborted = false;\n\n // The upload had been started previously and we should reuse this URL.\n if (this.url != null) {\n log(\"Resuming upload from previous URL: \".concat(this.url));\n this._resumeUpload();\n return;\n }\n\n // A URL has manually been specified, so we try to resume\n if (this.options.uploadUrl != null) {\n log(\"Resuming upload from provided URL: \".concat(this.options.uploadUrl));\n this.url = this.options.uploadUrl;\n this._resumeUpload();\n return;\n }\n\n // An upload has not started for the file yet, so we start a new one\n log('Creating a new upload');\n this._createUpload();\n }\n\n /**\n * Abort any running request and stop the current upload. After abort is called, no event\n * handler will be invoked anymore. You can use the `start` method to resume the upload\n * again.\n * If `shouldTerminate` is true, the `terminate` function will be called to remove the\n * current upload from the server.\n *\n * @param {boolean} shouldTerminate True if the upload should be deleted from the server.\n * @return {Promise} The Promise will be resolved/rejected when the requests finish.\n */\n }, {\n key: \"abort\",\n value: function abort(shouldTerminate) {\n var _this4 = this;\n // Stop any parallel partial uploads, that have been started in _startParallelUploads.\n if (this._parallelUploads != null) {\n this._parallelUploads.forEach(function (upload) {\n upload.abort(shouldTerminate);\n });\n }\n\n // Stop any current running request.\n if (this._req !== null) {\n this._req.abort();\n // Note: We do not close the file source here, so the user can resume in the future.\n }\n this._aborted = true;\n\n // Stop any timeout used for initiating a retry.\n if (this._retryTimeout != null) {\n clearTimeout(this._retryTimeout);\n this._retryTimeout = null;\n }\n if (!shouldTerminate || this.url == null) {\n return Promise.resolve();\n }\n return BaseUpload.terminate(this.url, this.options)\n // Remove entry from the URL storage since the upload URL is no longer valid.\n .then(function () {\n return _this4._removeFromUrlStorage();\n });\n }\n }, {\n key: \"_emitHttpError\",\n value: function _emitHttpError(req, res, message, causingErr) {\n this._emitError(new DetailedError(message, causingErr, req, res));\n }\n }, {\n key: \"_emitError\",\n value: function _emitError(err) {\n var _this5 = this;\n // Do not emit errors, e.g. from aborted HTTP requests, if the upload has been stopped.\n if (this._aborted) return;\n\n // Check if we should retry, when enabled, before sending the error to the user.\n if (this.options.retryDelays != null) {\n // We will reset the attempt counter if\n // - we were already able to connect to the server (offset != null) and\n // - we were able to upload a small chunk of data to the server\n var shouldResetDelays = this._offset != null && this._offset > this._offsetBeforeRetry;\n if (shouldResetDelays) {\n this._retryAttempt = 0;\n }\n if (shouldRetry(err, this._retryAttempt, this.options)) {\n var delay = this.options.retryDelays[this._retryAttempt++];\n this._offsetBeforeRetry = this._offset;\n this._retryTimeout = setTimeout(function () {\n _this5.start();\n }, delay);\n return;\n }\n }\n if (typeof this.options.onError === 'function') {\n this.options.onError(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Publishes notification if the upload has been successfully completed.\n *\n * @api private\n */\n }, {\n key: \"_emitSuccess\",\n value: function _emitSuccess() {\n if (this.options.removeFingerprintOnSuccess) {\n // Remove stored fingerprint and corresponding endpoint. This causes\n // new uploads of the same file to be treated as a different file.\n this._removeFromUrlStorage();\n }\n if (typeof this.options.onSuccess === 'function') {\n this.options.onSuccess();\n }\n }\n\n /**\n * Publishes notification when data has been sent to the server. This\n * data may not have been accepted by the server yet.\n *\n * @param {number} bytesSent Number of bytes sent to the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n }, {\n key: \"_emitProgress\",\n value: function _emitProgress(bytesSent, bytesTotal) {\n if (typeof this.options.onProgress === 'function') {\n this.options.onProgress(bytesSent, bytesTotal);\n }\n }\n\n /**\n * Publishes notification when a chunk of data has been sent to the server\n * and accepted by the server.\n * @param {number} chunkSize Size of the chunk that was accepted by the server.\n * @param {number} bytesAccepted Total number of bytes that have been\n * accepted by the server.\n * @param {number} bytesTotal Total number of bytes to be sent to the server.\n * @api private\n */\n }, {\n key: \"_emitChunkComplete\",\n value: function _emitChunkComplete(chunkSize, bytesAccepted, bytesTotal) {\n if (typeof this.options.onChunkComplete === 'function') {\n this.options.onChunkComplete(chunkSize, bytesAccepted, bytesTotal);\n }\n }\n\n /**\n * Create a new upload using the creation extension by sending a POST\n * request to the endpoint. After successful creation the file will be\n * uploaded\n *\n * @api private\n */\n }, {\n key: \"_createUpload\",\n value: function _createUpload() {\n var _this6 = this;\n if (!this.options.endpoint) {\n this._emitError(new Error('tus: unable to create upload because no endpoint is provided'));\n return;\n }\n var req = this._openRequest('POST', this.options.endpoint);\n if (this.options.uploadLengthDeferred) {\n req.setHeader('Upload-Defer-Length', 1);\n } else {\n req.setHeader('Upload-Length', this._size);\n }\n\n // Add metadata if values have been added\n var metadata = encodeMetadata(this.options.metadata);\n if (metadata !== '') {\n req.setHeader('Upload-Metadata', metadata);\n }\n var promise;\n if (this.options.uploadDataDuringCreation && !this.options.uploadLengthDeferred) {\n this._offset = 0;\n promise = this._addChunkToRequest(req);\n } else {\n promise = this._sendRequest(req, null);\n }\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this6._emitHttpError(req, res, 'tus: unexpected response while creating upload');\n return;\n }\n var location = res.getHeader('Location');\n if (location == null) {\n _this6._emitHttpError(req, res, 'tus: invalid or missing Location header');\n return;\n }\n _this6.url = resolveUrl(_this6.options.endpoint, location);\n log(\"Created upload at \".concat(_this6.url));\n if (typeof _this6.options.onUploadUrlAvailable === 'function') {\n _this6.options.onUploadUrlAvailable();\n }\n if (_this6._size === 0) {\n // Nothing to upload and file was successfully created\n _this6._emitSuccess();\n _this6._source.close();\n return;\n }\n _this6._saveUploadInUrlStorage().then(function () {\n if (_this6.options.uploadDataDuringCreation) {\n _this6._handleUploadResponse(req, res);\n } else {\n _this6._offset = 0;\n _this6._performUpload();\n }\n });\n })[\"catch\"](function (err) {\n _this6._emitHttpError(req, null, 'tus: failed to create upload', err);\n });\n }\n\n /*\n * Try to resume an existing upload. First a HEAD request will be sent\n * to retrieve the offset. If the request fails a new upload will be\n * created. In the case of a successful response the file will be uploaded.\n *\n * @api private\n */\n }, {\n key: \"_resumeUpload\",\n value: function _resumeUpload() {\n var _this7 = this;\n var req = this._openRequest('HEAD', this.url);\n var promise = this._sendRequest(req, null);\n promise.then(function (res) {\n var status = res.getStatus();\n if (!inStatusCategory(status, 200)) {\n // If the upload is locked (indicated by the 423 Locked status code), we\n // emit an error instead of directly starting a new upload. This way the\n // retry logic can catch the error and will retry the upload. An upload\n // is usually locked for a short period of time and will be available\n // afterwards.\n if (status === 423) {\n _this7._emitHttpError(req, res, 'tus: upload is currently locked; retry later');\n return;\n }\n if (inStatusCategory(status, 400)) {\n // Remove stored fingerprint and corresponding endpoint,\n // on client errors since the file can not be found\n _this7._removeFromUrlStorage();\n }\n if (!_this7.options.endpoint) {\n // Don't attempt to create a new upload if no endpoint is provided.\n _this7._emitHttpError(req, res, 'tus: unable to resume upload (new upload cannot be created without an endpoint)');\n return;\n }\n\n // Try to create a new upload\n _this7.url = null;\n _this7._createUpload();\n return;\n }\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n if (Number.isNaN(offset)) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing offset value');\n return;\n }\n var length = parseInt(res.getHeader('Upload-Length'), 10);\n if (Number.isNaN(length) && !_this7.options.uploadLengthDeferred) {\n _this7._emitHttpError(req, res, 'tus: invalid or missing length value');\n return;\n }\n if (typeof _this7.options.onUploadUrlAvailable === 'function') {\n _this7.options.onUploadUrlAvailable();\n }\n _this7._saveUploadInUrlStorage().then(function () {\n // Upload has already been completed and we do not need to send additional\n // data to the server\n if (offset === length) {\n _this7._emitProgress(length, length);\n _this7._emitSuccess();\n return;\n }\n _this7._offset = offset;\n _this7._performUpload();\n });\n })[\"catch\"](function (err) {\n _this7._emitHttpError(req, null, 'tus: failed to resume upload', err);\n });\n }\n\n /**\n * Start uploading the file using PATCH requests. The file will be divided\n * into chunks as specified in the chunkSize option. During the upload\n * the onProgress event handler may be invoked multiple times.\n *\n * @api private\n */\n }, {\n key: \"_performUpload\",\n value: function _performUpload() {\n var _this8 = this;\n // If the upload has been aborted, we will not send the next PATCH request.\n // This is important if the abort method was called during a callback, such\n // as onChunkComplete or onProgress.\n if (this._aborted) {\n return;\n }\n var req;\n\n // Some browser and servers may not support the PATCH method. For those\n // cases, you can tell tus-js-client to use a POST request with the\n // X-HTTP-Method-Override header for simulating a PATCH request.\n if (this.options.overridePatchMethod) {\n req = this._openRequest('POST', this.url);\n req.setHeader('X-HTTP-Method-Override', 'PATCH');\n } else {\n req = this._openRequest('PATCH', this.url);\n }\n req.setHeader('Upload-Offset', this._offset);\n var promise = this._addChunkToRequest(req);\n promise.then(function (res) {\n if (!inStatusCategory(res.getStatus(), 200)) {\n _this8._emitHttpError(req, res, 'tus: unexpected response while uploading chunk');\n return;\n }\n _this8._handleUploadResponse(req, res);\n })[\"catch\"](function (err) {\n // Don't emit an error if the upload was aborted manually\n if (_this8._aborted) {\n return;\n }\n _this8._emitHttpError(req, null, \"tus: failed to upload chunk at offset \".concat(_this8._offset), err);\n });\n }\n\n /**\n * _addChunktoRequest reads a chunk from the source and sends it using the\n * supplied request object. It will not handle the response.\n *\n * @api private\n */\n }, {\n key: \"_addChunkToRequest\",\n value: function _addChunkToRequest(req) {\n var _this9 = this;\n var start = this._offset;\n var end = this._offset + this.options.chunkSize;\n req.setProgressHandler(function (bytesSent) {\n _this9._emitProgress(start + bytesSent, _this9._size);\n });\n req.setHeader('Content-Type', 'application/offset+octet-stream');\n\n // The specified chunkSize may be Infinity or the calcluated end position\n // may exceed the file's size. In both cases, we limit the end position to\n // the input's total size for simpler calculations and correctness.\n if ((end === Infinity || end > this._size) && !this.options.uploadLengthDeferred) {\n end = this._size;\n }\n return this._source.slice(start, end).then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n var valueSize = value && value.size ? value.size : 0;\n\n // If the upload length is deferred, the upload size was not specified during\n // upload creation. So, if the file reader is done reading, we know the total\n // upload size and can tell the tus server.\n if (_this9.options.uploadLengthDeferred && done) {\n _this9._size = _this9._offset + valueSize;\n req.setHeader('Upload-Length', _this9._size);\n }\n\n // The specified uploadSize might not match the actual amount of data that a source\n // provides. In these cases, we cannot successfully complete the upload, so we\n // rather error out and let the user know. If not, tus-js-client will be stuck\n // in a loop of repeating empty PATCH requests.\n // See https://community.transloadit.com/t/how-to-abort-hanging-companion-uploads/16488/13\n var newSize = _this9._offset + valueSize;\n if (!_this9.options.uploadLengthDeferred && done && newSize !== _this9._size) {\n return Promise.reject(new Error(\"upload was configured with a size of \".concat(_this9._size, \" bytes, but the source is done after \").concat(newSize, \" bytes\")));\n }\n if (value === null) {\n return _this9._sendRequest(req);\n }\n _this9._emitProgress(_this9._offset, _this9._size);\n return _this9._sendRequest(req, value);\n });\n }\n\n /**\n * _handleUploadResponse is used by requests that haven been sent using _addChunkToRequest\n * and already have received a response.\n *\n * @api private\n */\n }, {\n key: \"_handleUploadResponse\",\n value: function _handleUploadResponse(req, res) {\n var offset = parseInt(res.getHeader('Upload-Offset'), 10);\n if (Number.isNaN(offset)) {\n this._emitHttpError(req, res, 'tus: invalid or missing offset value');\n return;\n }\n this._emitProgress(offset, this._size);\n this._emitChunkComplete(offset - this._offset, offset, this._size);\n this._offset = offset;\n if (offset === this._size) {\n // Yay, finally done :)\n this._emitSuccess();\n this._source.close();\n return;\n }\n this._performUpload();\n }\n\n /**\n * Create a new HTTP request object with the given method and URL.\n *\n * @api private\n */\n }, {\n key: \"_openRequest\",\n value: function _openRequest(method, url) {\n var req = openRequest(method, url, this.options);\n this._req = req;\n return req;\n }\n\n /**\n * Remove the entry in the URL storage, if it has been saved before.\n *\n * @api private\n */\n }, {\n key: \"_removeFromUrlStorage\",\n value: function _removeFromUrlStorage() {\n var _this10 = this;\n if (!this._urlStorageKey) return;\n this._urlStorage.removeUpload(this._urlStorageKey)[\"catch\"](function (err) {\n _this10._emitError(err);\n });\n this._urlStorageKey = null;\n }\n\n /**\n * Add the upload URL to the URL storage, if possible.\n *\n * @api private\n */\n }, {\n key: \"_saveUploadInUrlStorage\",\n value: function _saveUploadInUrlStorage() {\n var _this11 = this;\n // We do not store the upload URL\n // - if it was disabled in the option, or\n // - if no fingerprint was calculated for the input (i.e. a stream), or\n // - if the URL is already stored (i.e. key is set alread).\n if (!this.options.storeFingerprintForResuming || !this._fingerprint || this._urlStorageKey !== null) {\n return Promise.resolve();\n }\n var storedUpload = {\n size: this._size,\n metadata: this.options.metadata,\n creationTime: new Date().toString()\n };\n if (this._parallelUploads) {\n // Save multiple URLs if the parallelUploads option is used ...\n storedUpload.parallelUploadUrls = this._parallelUploadUrls;\n } else {\n // ... otherwise we just save the one available URL.\n storedUpload.uploadUrl = this.url;\n }\n return this._urlStorage.addUpload(this._fingerprint, storedUpload).then(function (urlStorageKey) {\n _this11._urlStorageKey = urlStorageKey;\n });\n }\n\n /**\n * Send a request with the provided body.\n *\n * @api private\n */\n }, {\n key: \"_sendRequest\",\n value: function _sendRequest(req) {\n var body = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return sendRequest(req, body, this.options);\n }\n }], [{\n key: \"terminate\",\n value: function terminate(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var req = openRequest('DELETE', url, options);\n return sendRequest(req, null, options).then(function (res) {\n // A 204 response indicates a successfull request\n if (res.getStatus() === 204) {\n return;\n }\n throw new DetailedError('tus: unexpected response while terminating upload', null, req, res);\n })[\"catch\"](function (err) {\n if (!(err instanceof DetailedError)) {\n err = new DetailedError('tus: failed to terminate upload', err, req, null);\n }\n if (!shouldRetry(err, 0, options)) {\n throw err;\n }\n\n // Instead of keeping track of the retry attempts, we remove the first element from the delays\n // array. If the array is empty, all retry attempts are used up and we will bubble up the error.\n // We recursively call the terminate function will removing elements from the retryDelays array.\n var delay = options.retryDelays[0];\n var remainingDelays = options.retryDelays.slice(1);\n var newOptions = _objectSpread(_objectSpread({}, options), {}, {\n retryDelays: remainingDelays\n });\n return new Promise(function (resolve) {\n return setTimeout(resolve, delay);\n }).then(function () {\n return BaseUpload.terminate(url, newOptions);\n });\n });\n }\n }]);\n return BaseUpload;\n}();\nfunction encodeMetadata(metadata) {\n return Object.entries(metadata).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n return \"\".concat(key, \" \").concat(Base64.encode(String(value)));\n }).join(',');\n}\n\n/**\n * Checks whether a given status is in the range of the expected category.\n * For example, only a status between 200 and 299 will satisfy the category 200.\n *\n * @api private\n */\nfunction inStatusCategory(status, category) {\n return status >= category && status < category + 100;\n}\n\n/**\n * Create a new HTTP request with the specified method and URL.\n * The necessary headers that are included in every request\n * will be added, including the request ID.\n *\n * @api private\n */\nfunction openRequest(method, url, options) {\n var req = options.httpStack.createRequest(method, url);\n req.setHeader('Tus-Resumable', '1.0.0');\n var headers = options.headers || {};\n Object.entries(headers).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n name = _ref6[0],\n value = _ref6[1];\n req.setHeader(name, value);\n });\n if (options.addRequestId) {\n var requestId = uuid();\n req.setHeader('X-Request-ID', requestId);\n }\n return req;\n}\n\n/**\n * Send a request with the provided body while invoking the onBeforeRequest\n * and onAfterResponse callbacks.\n *\n * @api private\n */\nfunction sendRequest(_x, _x2, _x3) {\n return _sendRequest2.apply(this, arguments);\n}\n/**\n * Checks whether the browser running this code has internet access.\n * This function will always return true in the node.js environment\n *\n * @api private\n */\nfunction _sendRequest2() {\n _sendRequest2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(req, body, options) {\n var res;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(typeof options.onBeforeRequest === 'function')) {\n _context.next = 3;\n break;\n }\n _context.next = 3;\n return options.onBeforeRequest(req);\n case 3:\n _context.next = 5;\n return req.send(body);\n case 5:\n res = _context.sent;\n if (!(typeof options.onAfterResponse === 'function')) {\n _context.next = 9;\n break;\n }\n _context.next = 9;\n return options.onAfterResponse(req, res);\n case 9:\n return _context.abrupt(\"return\", res);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _sendRequest2.apply(this, arguments);\n}\nfunction isOnline() {\n var online = true;\n if (typeof window !== 'undefined' &&\n // eslint-disable-next-line no-undef\n 'navigator' in window &&\n // eslint-disable-next-line no-undef\n window.navigator.onLine === false) {\n // eslint-disable-line no-undef\n online = false;\n }\n return online;\n}\n\n/**\n * Checks whether or not it is ok to retry a request.\n * @param {Error|DetailedError} err the error returned from the last request\n * @param {number} retryAttempt the number of times the request has already been retried\n * @param {object} options tus Upload options\n *\n * @api private\n */\nfunction shouldRetry(err, retryAttempt, options) {\n // We only attempt a retry if\n // - retryDelays option is set\n // - we didn't exceed the maxium number of retries, yet, and\n // - this error was caused by a request or it's response and\n // - the error is server error (i.e. not a status 4xx except a 409 or 423) or\n // a onShouldRetry is specified and returns true\n // - the browser does not indicate that we are offline\n if (options.retryDelays == null || retryAttempt >= options.retryDelays.length || err.originalRequest == null) {\n return false;\n }\n if (options && typeof options.onShouldRetry === 'function') {\n return options.onShouldRetry(err, retryAttempt, options);\n }\n return defaultOnShouldRetry(err);\n}\n\n/**\n * determines if the request should be retried. Will only retry if not a status 4xx except a 409 or 423\n * @param {DetailedError} err\n * @returns {boolean}\n */\nfunction defaultOnShouldRetry(err) {\n var status = err.originalResponse ? err.originalResponse.getStatus() : 0;\n return (!inStatusCategory(status, 400) || status === 409 || status === 423) && isOnline();\n}\n\n/**\n * Resolve a relative link given the origin as source. For example,\n * if a HTTP request to http://example.com/files/ returns a Location\n * header with the value /upload/abc, the resolved URL will be:\n * http://example.com/upload/abc\n */\nfunction resolveUrl(origin, link) {\n return new URL(link, origin).toString();\n}\n\n/**\n * Calculate the start and end positions for the parts if an upload\n * is split into multiple parallel requests.\n *\n * @param {number} totalSize The byte size of the upload, which will be split.\n * @param {number} partCount The number in how many parts the upload will be split.\n * @return {object[]}\n * @api private\n */\nfunction splitSizeIntoParts(totalSize, partCount) {\n var partSize = Math.floor(totalSize / partCount);\n var parts = [];\n for (var i = 0; i < partCount; i++) {\n parts.push({\n start: partSize * i,\n end: partSize * (i + 1)\n });\n }\n parts[partCount - 1].end = totalSize;\n return parts;\n}\nBaseUpload.defaultOptions = defaultOptions;\nexport default BaseUpload;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-unused-vars: \"off\" */\nvar NoopUrlStorage = /*#__PURE__*/function () {\n function NoopUrlStorage() {\n _classCallCheck(this, NoopUrlStorage);\n }\n _createClass(NoopUrlStorage, [{\n key: \"listAllUploads\",\n value: function listAllUploads() {\n return Promise.resolve([]);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n return Promise.resolve([]);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n return Promise.resolve(null);\n }\n }]);\n return NoopUrlStorage;\n}();\nexport { NoopUrlStorage as default };","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar hasStorage = false;\ntry {\n hasStorage = 'localStorage' in window;\n\n // Attempt to store and read entries from the local storage to detect Private\n // Mode on Safari on iOS (see #49)\n // If the key was not used before, we remove it from local storage again to\n // not cause confusion where the entry came from.\n var key = 'tusSupport';\n var originalValue = localStorage.getItem(key);\n localStorage.setItem(key, originalValue);\n if (originalValue === null) localStorage.removeItem(key);\n} catch (e) {\n // If we try to access localStorage inside a sandboxed iframe, a SecurityError\n // is thrown. When in private mode on iOS Safari, a QuotaExceededError is\n // thrown (see #49)\n if (e.code === e.SECURITY_ERR || e.code === e.QUOTA_EXCEEDED_ERR) {\n hasStorage = false;\n } else {\n throw e;\n }\n}\nexport var canStoreURLs = hasStorage;\nexport var WebStorageUrlStorage = /*#__PURE__*/function () {\n function WebStorageUrlStorage() {\n _classCallCheck(this, WebStorageUrlStorage);\n }\n _createClass(WebStorageUrlStorage, [{\n key: \"findAllUploads\",\n value: function findAllUploads() {\n var results = this._findEntries('tus::');\n return Promise.resolve(results);\n }\n }, {\n key: \"findUploadsByFingerprint\",\n value: function findUploadsByFingerprint(fingerprint) {\n var results = this._findEntries(\"tus::\".concat(fingerprint, \"::\"));\n return Promise.resolve(results);\n }\n }, {\n key: \"removeUpload\",\n value: function removeUpload(urlStorageKey) {\n localStorage.removeItem(urlStorageKey);\n return Promise.resolve();\n }\n }, {\n key: \"addUpload\",\n value: function addUpload(fingerprint, upload) {\n var id = Math.round(Math.random() * 1e12);\n var key = \"tus::\".concat(fingerprint, \"::\").concat(id);\n localStorage.setItem(key, JSON.stringify(upload));\n return Promise.resolve(key);\n }\n }, {\n key: \"_findEntries\",\n value: function _findEntries(prefix) {\n var results = [];\n for (var i = 0; i < localStorage.length; i++) {\n var _key = localStorage.key(i);\n if (_key.indexOf(prefix) !== 0) continue;\n try {\n var upload = JSON.parse(localStorage.getItem(_key));\n upload.urlStorageKey = _key;\n results.push(upload);\n } catch (e) {\n // The JSON parse error is intentionally ignored here, so a malformed\n // entry in the storage cannot prevent an upload.\n }\n }\n return results;\n }\n }]);\n return WebStorageUrlStorage;\n}();","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint-disable max-classes-per-file */\nvar XHRHttpStack = /*#__PURE__*/function () {\n function XHRHttpStack() {\n _classCallCheck(this, XHRHttpStack);\n }\n _createClass(XHRHttpStack, [{\n key: \"createRequest\",\n value: function createRequest(method, url) {\n return new Request(method, url);\n }\n }, {\n key: \"getName\",\n value: function getName() {\n return 'XHRHttpStack';\n }\n }]);\n return XHRHttpStack;\n}();\nexport { XHRHttpStack as default };\nvar Request = /*#__PURE__*/function () {\n function Request(method, url) {\n _classCallCheck(this, Request);\n this._xhr = new XMLHttpRequest();\n this._xhr.open(method, url, true);\n this._method = method;\n this._url = url;\n this._headers = {};\n }\n _createClass(Request, [{\n key: \"getMethod\",\n value: function getMethod() {\n return this._method;\n }\n }, {\n key: \"getURL\",\n value: function getURL() {\n return this._url;\n }\n }, {\n key: \"setHeader\",\n value: function setHeader(header, value) {\n this._xhr.setRequestHeader(header, value);\n this._headers[header] = value;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._headers[header];\n }\n }, {\n key: \"setProgressHandler\",\n value: function setProgressHandler(progressHandler) {\n // Test support for progress events before attaching an event listener\n if (!('upload' in this._xhr)) {\n return;\n }\n this._xhr.upload.onprogress = function (e) {\n if (!e.lengthComputable) {\n return;\n }\n progressHandler(e.loaded);\n };\n }\n }, {\n key: \"send\",\n value: function send() {\n var _this = this;\n var body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n return new Promise(function (resolve, reject) {\n _this._xhr.onload = function () {\n resolve(new Response(_this._xhr));\n };\n _this._xhr.onerror = function (err) {\n reject(err);\n };\n _this._xhr.send(body);\n });\n }\n }, {\n key: \"abort\",\n value: function abort() {\n this._xhr.abort();\n return Promise.resolve();\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n return Request;\n}();\nvar Response = /*#__PURE__*/function () {\n function Response(xhr) {\n _classCallCheck(this, Response);\n this._xhr = xhr;\n }\n _createClass(Response, [{\n key: \"getStatus\",\n value: function getStatus() {\n return this._xhr.status;\n }\n }, {\n key: \"getHeader\",\n value: function getHeader(header) {\n return this._xhr.getResponseHeader(header);\n }\n }, {\n key: \"getBody\",\n value: function getBody() {\n return this._xhr.responseText;\n }\n }, {\n key: \"getUnderlyingObject\",\n value: function getUnderlyingObject() {\n return this._xhr;\n }\n }]);\n return Response;\n}();","var isReactNative = function isReactNative() {\n return typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative';\n};\nexport default isReactNative;","/**\n * uriToBlob resolves a URI to a Blob object. This is used for\n * React Native to retrieve a file (identified by a file://\n * URI) as a blob.\n */\nexport default function uriToBlob(uri) {\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.responseType = 'blob';\n xhr.onload = function () {\n var blob = xhr.response;\n resolve(blob);\n };\n xhr.onerror = function (err) {\n reject(err);\n };\n xhr.open('GET', uri);\n xhr.send();\n });\n}","var isCordova = function isCordova() {\n return typeof window !== 'undefined' && (typeof window.PhoneGap !== 'undefined' || typeof window.Cordova !== 'undefined' || typeof window.cordova !== 'undefined');\n};\nexport default isCordova;","/**\n * readAsByteArray converts a File object to a Uint8Array.\n * This function is only used on the Apache Cordova platform.\n * See https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/index.html#read-a-file\n */\nexport default function readAsByteArray(chunk) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onload = function () {\n var value = new Uint8Array(reader.result);\n resolve({\n value: value\n });\n };\n reader.onerror = function (err) {\n reject(err);\n };\n reader.readAsArrayBuffer(chunk);\n });\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport isCordova from './isCordova.js';\nimport readAsByteArray from './readAsByteArray.js';\nvar FileSource = /*#__PURE__*/function () {\n // Make this.size a method\n function FileSource(file) {\n _classCallCheck(this, FileSource);\n this._file = file;\n this.size = file.size;\n }\n _createClass(FileSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n // In Apache Cordova applications, a File must be resolved using\n // FileReader instances, see\n // https://cordova.apache.org/docs/en/8.x/reference/cordova-plugin-file/index.html#read-a-file\n if (isCordova()) {\n return readAsByteArray(this._file.slice(start, end));\n }\n var value = this._file.slice(start, end);\n var done = end >= this.size;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n }, {\n key: \"close\",\n value: function close() {\n // Nothing to do here since we don't need to release any resources.\n }\n }]);\n return FileSource;\n}();\nexport { FileSource as default };","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction len(blobOrArray) {\n if (blobOrArray === undefined) return 0;\n if (blobOrArray.size !== undefined) return blobOrArray.size;\n return blobOrArray.length;\n}\n\n/*\n Typed arrays and blobs don't have a concat method.\n This function helps StreamSource accumulate data to reach chunkSize.\n*/\nfunction concat(a, b) {\n if (a.concat) {\n // Is `a` an Array?\n return a.concat(b);\n }\n if (a instanceof Blob) {\n return new Blob([a, b], {\n type: a.type\n });\n }\n if (a.set) {\n // Is `a` a typed array?\n var c = new a.constructor(a.length + b.length);\n c.set(a);\n c.set(b, a.length);\n return c;\n }\n throw new Error('Unknown data type');\n}\nvar StreamSource = /*#__PURE__*/function () {\n function StreamSource(reader) {\n _classCallCheck(this, StreamSource);\n this._buffer = undefined;\n this._bufferOffset = 0;\n this._reader = reader;\n this._done = false;\n }\n _createClass(StreamSource, [{\n key: \"slice\",\n value: function slice(start, end) {\n if (start < this._bufferOffset) {\n return Promise.reject(new Error(\"Requested data is before the reader's current offset\"));\n }\n return this._readUntilEnoughDataOrDone(start, end);\n }\n }, {\n key: \"_readUntilEnoughDataOrDone\",\n value: function _readUntilEnoughDataOrDone(start, end) {\n var _this = this;\n var hasEnoughData = end <= this._bufferOffset + len(this._buffer);\n if (this._done || hasEnoughData) {\n var value = this._getDataFromBuffer(start, end);\n var done = value == null ? this._done : false;\n return Promise.resolve({\n value: value,\n done: done\n });\n }\n return this._reader.read().then(function (_ref) {\n var value = _ref.value,\n done = _ref.done;\n if (done) {\n _this._done = true;\n } else if (_this._buffer === undefined) {\n _this._buffer = value;\n } else {\n _this._buffer = concat(_this._buffer, value);\n }\n return _this._readUntilEnoughDataOrDone(start, end);\n });\n }\n }, {\n key: \"_getDataFromBuffer\",\n value: function _getDataFromBuffer(start, end) {\n // Remove data from buffer before `start`.\n // Data might be reread from the buffer if an upload fails, so we can only\n // safely delete data when it comes *before* what is currently being read.\n if (start > this._bufferOffset) {\n this._buffer = this._buffer.slice(start - this._bufferOffset);\n this._bufferOffset = start;\n }\n // If the buffer is empty after removing old data, all data has been read.\n var hasAllDataBeenRead = len(this._buffer) === 0;\n if (this._done && hasAllDataBeenRead) {\n return null;\n }\n // We already removed data before `start`, so we just return the first\n // chunk from the buffer.\n return this._buffer.slice(0, end - start);\n }\n }, {\n key: \"close\",\n value: function close() {\n if (this._reader.cancel) {\n this._reader.cancel();\n }\n }\n }]);\n return StreamSource;\n}();\nexport { StreamSource as default };","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport isReactNative from './isReactNative.js';\nimport uriToBlob from './uriToBlob.js';\nimport FileSource from './sources/FileSource.js';\nimport StreamSource from './sources/StreamSource.js';\nvar FileReader = /*#__PURE__*/function () {\n function FileReader() {\n _classCallCheck(this, FileReader);\n }\n _createClass(FileReader, [{\n key: \"openFile\",\n value: function () {\n var _openFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(input, chunkSize) {\n var blob;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!(isReactNative() && input && typeof input.uri !== 'undefined')) {\n _context.next = 11;\n break;\n }\n _context.prev = 1;\n _context.next = 4;\n return uriToBlob(input.uri);\n case 4:\n blob = _context.sent;\n return _context.abrupt(\"return\", new FileSource(blob));\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](1);\n throw new Error(\"tus: cannot fetch `file.uri` as Blob, make sure the uri is correct and accessible. \".concat(_context.t0));\n case 11:\n if (!(typeof input.slice === 'function' && typeof input.size !== 'undefined')) {\n _context.next = 13;\n break;\n }\n return _context.abrupt(\"return\", Promise.resolve(new FileSource(input)));\n case 13:\n if (!(typeof input.read === 'function')) {\n _context.next = 18;\n break;\n }\n chunkSize = Number(chunkSize);\n if (Number.isFinite(chunkSize)) {\n _context.next = 17;\n break;\n }\n return _context.abrupt(\"return\", Promise.reject(new Error('cannot create source for stream without a finite value for the `chunkSize` option')));\n case 17:\n return _context.abrupt(\"return\", Promise.resolve(new StreamSource(input, chunkSize)));\n case 18:\n return _context.abrupt(\"return\", Promise.reject(new Error('source object may only be an instance of File, Blob, or Reader in this environment')));\n case 19:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[1, 8]]);\n }));\n function openFile(_x, _x2) {\n return _openFile.apply(this, arguments);\n }\n return openFile;\n }()\n }]);\n return FileReader;\n}();\nexport { FileReader as default };","import isReactNative from './isReactNative.js';\n\n// TODO: Differenciate between input types\n\n/**\n * Generate a fingerprint for a file which will be used the store the endpoint\n *\n * @param {File} file\n * @param {Object} options\n * @param {Function} callback\n */\nexport default function fingerprint(file, options) {\n if (isReactNative()) {\n return Promise.resolve(reactNativeFingerprint(file, options));\n }\n return Promise.resolve(['tus-br', file.name, file.type, file.size, file.lastModified, options.endpoint].join('-'));\n}\nfunction reactNativeFingerprint(file, options) {\n var exifHash = file.exif ? hashCode(JSON.stringify(file.exif)) : 'noexif';\n return ['tus-rn', file.name || 'noname', file.size || 'nosize', exifHash, options.endpoint].join('/');\n}\nfunction hashCode(str) {\n /* eslint-disable no-bitwise */\n // from https://stackoverflow.com/a/8831937/151666\n var hash = 0;\n if (str.length === 0) {\n return hash;\n }\n for (var i = 0; i < str.length; i++) {\n var _char = str.charCodeAt(i);\n hash = (hash << 5) - hash + _char;\n hash &= hash; // Convert to 32bit integer\n }\n return hash;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport BaseUpload from '../upload.js';\nimport NoopUrlStorage from '../noopUrlStorage.js';\nimport { enableDebugLog } from '../logger.js';\nimport DetailedError from '../error.js';\nimport { canStoreURLs, WebStorageUrlStorage } from './urlStorage.js';\nimport DefaultHttpStack from './httpStack.js';\nimport FileReader from './fileReader.js';\nimport fingerprint from './fileSignature.js';\nvar defaultOptions = _objectSpread(_objectSpread({}, BaseUpload.defaultOptions), {}, {\n httpStack: new DefaultHttpStack(),\n fileReader: new FileReader(),\n urlStorage: canStoreURLs ? new WebStorageUrlStorage() : new NoopUrlStorage(),\n fingerprint: fingerprint\n});\nvar Upload = /*#__PURE__*/function (_BaseUpload) {\n _inherits(Upload, _BaseUpload);\n var _super = _createSuper(Upload);\n function Upload() {\n var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Upload);\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return _super.call(this, file, options);\n }\n _createClass(Upload, null, [{\n key: \"terminate\",\n value: function terminate(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n options = _objectSpread(_objectSpread({}, defaultOptions), options);\n return BaseUpload.terminate(url, options);\n }\n }]);\n return Upload;\n}(BaseUpload);\nvar _window = window,\n XMLHttpRequest = _window.XMLHttpRequest,\n Blob = _window.Blob;\nvar isSupported = XMLHttpRequest && Blob && typeof Blob.prototype.slice === 'function';\nexport { Upload, canStoreURLs, defaultOptions, isSupported, enableDebugLog, DefaultHttpStack, DetailedError };","\n\n\n"],"names":["version","VERSION","_hasatob","_hasbtoa","_hasBuffer","_TD","_TE","b64ch","b64chs","b64tab","a","tab","c","i","b64re","_fromCC","_U8Afrom","it","_mkUriSafe","src","m0","_tidyB64","s","btoaPolyfill","bin","u32","c0","c1","c2","asc","pad","_btoa","_fromUint8Array","u8a","strs","l","fromUint8Array","urlsafe","cb_utob","cc","re_utob","utob","u","_encode","encode","encodeURI","re_btou","cb_btou","cccc","cp","offset","btou","b","atobPolyfill","u24","r1","r2","_atob","_toUint8Array","toUint8Array","_unURI","_decode","decode","isValid","_noEnum","v","extendString","_add","name","body","extendUint8Array","extendBuiltins","gBase64","requiresPort","port","protocol","has","undef","input","querystring","query","parser","result","part","key","value","querystringify","obj","prefix","pairs","querystringify_1","required","require$$0","qs","require$$1","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","str","rules","address","url","isSpecial","ignore","lolcation","loc","globalVar","global","location","finaldestination","type","Url","scheme","extractProtocol","match","forwardSlashes","otherSlashes","slashesCount","rest","resolve","relative","base","path","last","unshift","up","extracted","parse","instruction","index","instructions","set","fn","char","ins","toString","stringify","host","urlParse","_typeof","o","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","call","_assertThisInitialized","_wrapNativeSuper","Class","_cache","_isNativeFunction","Wrapper","_construct","Parent","args","p","DetailedError","_Error","_super","message","_this","causingErr","req","res","requestId","method","status","uuid","r","_regeneratorRuntime","e","t","define","wrap","n","Generator","Context","makeInvokeMethod","tryCatch","h","f","y","GeneratorFunction","GeneratorFunctionPrototype","d","values","g","defineIteratorMethods","AsyncIterator","invoke","callInvokeWithMethodAndArg","maybeInvokeDelegate","pushTryEntry","resetTryEntry","next","handle","asyncGeneratorStep","gen","reject","_next","_throw","arg","info","error","_asyncToGenerator","err","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","len","arr2","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_defineProperties","target","props","descriptor","_toPrimitive","hint","prim","defaultOptions","defaultOnShouldRetry","BaseUpload","file","options","fingerprint","previousUpload","_this2","retryDelays","_i","_arr","optionName","source","_this$options$paralle","_this3","totalSize","totalProgress","partCount","parts","splitSizeIntoParts","uploads","lastPartProgress","_ref","newPartProgress","upload","metadata","encodeMetadata","inStatusCategory","resolveUrl","shouldTerminate","_this4","_this5","shouldResetDelays","shouldRetry","delay","bytesSent","bytesTotal","chunkSize","bytesAccepted","_this6","promise","_this7","length","_this8","_this9","start","end","_ref2","done","valueSize","newSize","openRequest","_this10","_this11","storedUpload","urlStorageKey","sendRequest","remainingDelays","newOptions","_ref3","_ref4","Base64","category","headers","_ref5","_ref6","_x","_x2","_x3","_sendRequest2","_callee","_context","isOnline","online","retryAttempt","origin","link","URL","partSize","NoopUrlStorage","hasStorage","originalValue","canStoreURLs","WebStorageUrlStorage","results","id","_key","XHRHttpStack","Request","header","progressHandler","Response","xhr","isReactNative","uriToBlob","uri","blob","isCordova","readAsByteArray","chunk","reader","FileSource","blobOrArray","concat","StreamSource","hasEnoughData","hasAllDataBeenRead","FileReader","_openFile","openFile","reactNativeFingerprint","exifHash","hashCode","hash","_char","DefaultHttpStack","Upload","_BaseUpload","__props","emit","__emit","progress","ref","filename","uploadedthumb","thumb","computed","watch","nanoid","tus.Upload","config","bytesUploaded"],"mappings":"yyBAWMA,GAAU,QAIVC,GAAUD,GACVE,GAAW,OAAO,MAAS,WAC3BC,GAAW,OAAO,MAAS,WAC3BC,EAAa,OAAO,QAAW,WAC/BC,GAAM,OAAO,aAAgB,WAAa,IAAI,YAAgB,OAC9DC,GAAM,OAAO,aAAgB,WAAa,IAAI,YAAgB,OAC9DC,GAAQ,oEACRC,GAAS,MAAM,UAAU,MAAM,KAAKD,EAAK,EACzCE,IAAWC,GAAM,CACnB,IAAIC,EAAM,CAAE,EACZ,OAAAD,EAAE,QAAQ,CAACE,EAAGC,IAAMF,EAAIC,CAAC,EAAIC,CAAC,EACvBF,CACX,GAAGH,EAAM,EACHM,GAAQ,0EACRC,EAAU,OAAO,aAAa,KAAK,MAAM,EACzCC,GAAW,OAAO,WAAW,MAAS,WACtC,WAAW,KAAK,KAAK,UAAU,EAC9BC,GAAO,IAAI,WAAW,MAAM,UAAU,MAAM,KAAKA,EAAI,CAAC,CAAC,EACxDC,GAAcC,GAAQA,EACvB,QAAQ,KAAM,EAAE,EAAE,QAAQ,SAAWC,GAAOA,GAAM,IAAM,IAAM,GAAG,EAChEC,GAAYC,GAAMA,EAAE,QAAQ,oBAAqB,EAAE,EAInDC,GAAgBC,GAAQ,CAE1B,IAAIC,EAAKC,EAAIC,EAAIC,EAAIC,EAAM,GAC3B,MAAMC,EAAMN,EAAI,OAAS,EACzB,QAASX,EAAI,EAAGA,EAAIW,EAAI,QAAS,CAC7B,IAAKE,EAAKF,EAAI,WAAWX,GAAG,GAAK,MAC5Bc,EAAKH,EAAI,WAAWX,GAAG,GAAK,MAC5Be,EAAKJ,EAAI,WAAWX,GAAG,GAAK,IAC7B,MAAM,IAAI,UAAU,yBAAyB,EACjDY,EAAOC,GAAM,GAAOC,GAAM,EAAKC,EAC/BC,GAAOrB,GAAOiB,GAAO,GAAK,EAAE,EACtBjB,GAAOiB,GAAO,GAAK,EAAE,EACrBjB,GAAOiB,GAAO,EAAI,EAAE,EACpBjB,GAAOiB,EAAM,EAAE,CAC7B,CACI,OAAOK,EAAMD,EAAI,MAAM,EAAGC,EAAM,CAAC,EAAI,MAAM,UAAUA,CAAG,EAAID,CAChE,EAMME,GAAQ5B,GAAYqB,GAAQ,KAAKA,CAAG,EACpCpB,EAAcoB,GAAQ,OAAO,KAAKA,EAAK,QAAQ,EAAE,SAAS,QAAQ,EAC9DD,GACJS,GAAkB5B,EACjB6B,GAAQ,OAAO,KAAKA,CAAG,EAAE,SAAS,QAAQ,EAC1CA,GAAQ,CAGP,IAAIC,EAAO,CAAE,EACb,QAASrB,EAAI,EAAGsB,EAAIF,EAAI,OAAQpB,EAAIsB,EAAGtB,GAAK,KACxCqB,EAAK,KAAKnB,EAAQ,MAAM,KAAMkB,EAAI,SAASpB,EAAGA,EAAI,IAAO,CAAC,CAAC,EAE/D,OAAOkB,GAAMG,EAAK,KAAK,EAAE,CAAC,CAC7B,EAMCE,GAAiB,CAACH,EAAKI,EAAU,KAAUA,EAAUnB,GAAWc,GAAgBC,CAAG,CAAC,EAAID,GAAgBC,CAAG,EAI3GK,GAAW1B,GAAM,CACnB,GAAIA,EAAE,OAAS,EAAG,CACd,IAAI2B,EAAK3B,EAAE,WAAW,CAAC,EACvB,OAAO2B,EAAK,IAAO3B,EACb2B,EAAK,KAASxB,EAAQ,IAAQwB,IAAO,CAAE,EACnCxB,EAAQ,IAAQwB,EAAK,EAAK,EACzBxB,EAAQ,IAASwB,IAAO,GAAM,EAAK,EAChCxB,EAAQ,IAASwB,IAAO,EAAK,EAAK,EAClCxB,EAAQ,IAAQwB,EAAK,EAAK,CAChD,KACS,CACD,IAAIA,EAAK,OACF3B,EAAE,WAAW,CAAC,EAAI,OAAU,MAC5BA,EAAE,WAAW,CAAC,EAAI,OACzB,OAAQG,EAAQ,IAASwB,IAAO,GAAM,CAAK,EACrCxB,EAAQ,IAASwB,IAAO,GAAM,EAAK,EACnCxB,EAAQ,IAASwB,IAAO,EAAK,EAAK,EAClCxB,EAAQ,IAAQwB,EAAK,EAAK,CACxC,CACA,EACMC,GAAU,gDAMVC,GAAQC,GAAMA,EAAE,QAAQF,GAASF,EAAO,EAExCK,GAAUvC,EACTkB,GAAM,OAAO,KAAKA,EAAG,MAAM,EAAE,SAAS,QAAQ,EAC/ChB,GACKgB,GAAMU,GAAgB1B,GAAI,OAAOgB,CAAC,CAAC,EACnCA,GAAMS,GAAMU,GAAKnB,CAAC,CAAC,EAMxBsB,EAAS,CAACzB,EAAKkB,EAAU,KAAUA,EACnCnB,GAAWyB,GAAQxB,CAAG,CAAC,EACvBwB,GAAQxB,CAAG,EAKX0B,GAAa1B,GAAQyB,EAAOzB,EAAK,EAAI,EAIrC2B,GAAU,8EACVC,GAAWC,GAAS,CACtB,OAAQA,EAAK,OAAM,CACf,IAAK,GACD,IAAIC,GAAO,EAAOD,EAAK,WAAW,CAAC,IAAM,IACjC,GAAOA,EAAK,WAAW,CAAC,IAAM,IAC9B,GAAOA,EAAK,WAAW,CAAC,IAAM,EAC/B,GAAOA,EAAK,WAAW,CAAC,EAAIE,EAASD,EAAK,MACjD,OAAQlC,GAASmC,IAAW,IAAM,KAAM,EAClCnC,GAASmC,EAAS,MAAS,KAAM,EAC3C,IAAK,GACD,OAAOnC,GAAU,GAAOiC,EAAK,WAAW,CAAC,IAAM,IACvC,GAAOA,EAAK,WAAW,CAAC,IAAM,EAC/B,GAAOA,EAAK,WAAW,CAAC,CAAE,EACrC,QACI,OAAOjC,GAAU,GAAOiC,EAAK,WAAW,CAAC,IAAM,EACxC,GAAOA,EAAK,WAAW,CAAC,CAAE,CAC7C,CACA,EAMMG,GAAQC,GAAMA,EAAE,QAAQN,GAASC,EAAO,EAIxCM,GAAgBxB,GAAQ,CAG1B,GADAA,EAAMA,EAAI,QAAQ,OAAQ,EAAE,EACxB,CAACf,GAAM,KAAKe,CAAG,EACf,MAAM,IAAI,UAAU,mBAAmB,EAC3CA,GAAO,KAAK,MAAM,GAAKA,EAAI,OAAS,EAAE,EACtC,IAAIyB,EAAK9B,EAAM,GAAI+B,EAAIC,EACvB,QAAS3C,EAAI,EAAGA,EAAIgB,EAAI,QACpByB,EAAM7C,GAAOoB,EAAI,OAAOhB,GAAG,CAAC,GAAK,GAC3BJ,GAAOoB,EAAI,OAAOhB,GAAG,CAAC,GAAK,IAC1B0C,EAAK9C,GAAOoB,EAAI,OAAOhB,GAAG,CAAC,IAAM,GACjC2C,EAAK/C,GAAOoB,EAAI,OAAOhB,GAAG,CAAC,GAClCW,GAAO+B,IAAO,GAAKxC,EAAQuC,GAAO,GAAK,GAAG,EACpCE,IAAO,GAAKzC,EAAQuC,GAAO,GAAK,IAAKA,GAAO,EAAI,GAAG,EAC/CvC,EAAQuC,GAAO,GAAK,IAAKA,GAAO,EAAI,IAAKA,EAAM,GAAG,EAEhE,OAAO9B,CACX,EAMMiC,GAAQvD,GAAY2B,GAAQ,KAAKR,GAASQ,CAAG,CAAC,EAC9CzB,EAAcyB,GAAQ,OAAO,KAAKA,EAAK,QAAQ,EAAE,SAAS,QAAQ,EAC9DwB,GAEJK,GAAgBtD,EACfM,GAAMM,GAAS,OAAO,KAAKN,EAAG,QAAQ,CAAC,EACvCA,GAAMM,GAASyC,GAAM/C,CAAC,EAAE,MAAM,EAAE,EAAE,IAAIE,GAAKA,EAAE,WAAW,CAAC,CAAC,CAAC,EAI5D+C,GAAgBjD,GAAMgD,GAAcE,GAAOlD,CAAC,CAAC,EAE7CmD,GAAUzD,EACTM,GAAM,OAAO,KAAKA,EAAG,QAAQ,EAAE,SAAS,MAAM,EAC/CL,GACKK,GAAML,GAAI,OAAOqD,GAAchD,CAAC,CAAC,EACjCA,GAAMyC,GAAKM,GAAM/C,CAAC,CAAC,EACxBkD,GAAUlD,GAAMW,GAASX,EAAE,QAAQ,QAAUU,GAAOA,GAAM,IAAM,IAAM,GAAG,CAAC,EAM1E0C,GAAU3C,GAAQ0C,GAAQD,GAAOzC,CAAG,CAAC,EAKrC4C,GAAW5C,GAAQ,CACrB,GAAI,OAAOA,GAAQ,SACf,MAAO,GACX,MAAMG,EAAIH,EAAI,QAAQ,OAAQ,EAAE,EAAE,QAAQ,UAAW,EAAE,EACvD,MAAO,CAAC,oBAAoB,KAAKG,CAAC,GAAK,CAAC,oBAAoB,KAAKA,CAAC,CACtE,EAEM0C,GAAWC,IACN,CACH,MAAOA,EAAG,WAAY,GAAO,SAAU,GAAM,aAAc,EAC9D,GAKCC,GAAe,UAAY,CAC7B,MAAMC,EAAO,CAACC,EAAMC,IAAS,OAAO,eAAe,OAAO,UAAWD,EAAMJ,GAAQK,CAAI,CAAC,EACxFF,EAAK,aAAc,UAAY,CAAE,OAAOL,GAAO,IAAI,EAAI,EACvDK,EAAK,WAAY,SAAU9B,EAAS,CAAE,OAAOO,EAAO,KAAMP,CAAO,EAAI,EACrE8B,EAAK,cAAe,UAAY,CAAE,OAAOvB,EAAO,KAAM,EAAI,EAAI,EAC9DuB,EAAK,cAAe,UAAY,CAAE,OAAOvB,EAAO,KAAM,EAAI,EAAI,EAC9DuB,EAAK,eAAgB,UAAY,CAAE,OAAOR,GAAa,IAAI,EAAI,CACnE,EAIMW,GAAmB,UAAY,CACjC,MAAMH,EAAO,CAACC,EAAMC,IAAS,OAAO,eAAe,WAAW,UAAWD,EAAMJ,GAAQK,CAAI,CAAC,EAC5FF,EAAK,WAAY,SAAU9B,EAAS,CAAE,OAAOD,GAAe,KAAMC,CAAO,EAAI,EAC7E8B,EAAK,cAAe,UAAY,CAAE,OAAO/B,GAAe,KAAM,EAAI,EAAI,EACtE+B,EAAK,cAAe,UAAY,CAAE,OAAO/B,GAAe,KAAM,EAAI,EAAI,CAC1E,EAIMmC,GAAiB,IAAM,CACzBL,GAAc,EACdI,GAAkB,CACtB,EACME,GAAU,CACZ,QAASxE,GACT,QAASC,GACT,KAAMwD,GACN,aAAcJ,GACd,KAAMtB,GACN,aAAcR,GACd,WAAYuC,GACZ,SAAUlB,EACV,OAAQA,EACR,UAAWC,GACX,UAAWA,GACX,KAAMJ,GACN,KAAMU,GACN,OAAQW,GACR,QAASC,GACT,eAAgB3B,GAChB,aAAcuB,GACd,aAAcO,GACd,iBAAkBI,GAClB,eAAgBC,EACpB,ECrQA,IAAAE,GAAiB,SAAkBC,EAAMC,EAAU,CAIjD,GAHAA,EAAWA,EAAS,MAAM,GAAG,EAAE,CAAC,EAChCD,EAAO,CAACA,EAEJ,CAACA,EAAM,MAAO,GAElB,OAAQC,EAAQ,CACd,IAAK,OACL,IAAK,KACL,OAAOD,IAAS,GAEhB,IAAK,QACL,IAAK,MACL,OAAOA,IAAS,IAEhB,IAAK,MACL,OAAOA,IAAS,GAEhB,IAAK,SACL,OAAOA,IAAS,GAEhB,IAAK,OACL,MAAO,EACX,CAEE,OAAOA,IAAS,CAClB,QCnCIE,GAAM,OAAO,UAAU,eACvBC,GASJ,SAASf,GAAOgB,EAAO,CACrB,GAAI,CACF,OAAO,mBAAmBA,EAAM,QAAQ,MAAO,GAAG,CAAC,CACpD,MAAW,CACV,OAAO,IACX,CACA,CASA,SAASlC,GAAOkC,EAAO,CACrB,GAAI,CACF,OAAO,mBAAmBA,CAAK,CAChC,MAAW,CACV,OAAO,IACX,CACA,CASA,SAASC,GAAYC,EAAO,CAK1B,QAJIC,EAAS,uBACTC,EAAS,CAAA,EACTC,EAEGA,EAAOF,EAAO,KAAKD,CAAK,GAAG,CAChC,IAAII,EAAMtB,GAAOqB,EAAK,CAAC,CAAC,EACpBE,EAAQvB,GAAOqB,EAAK,CAAC,CAAC,EAUtBC,IAAQ,MAAQC,IAAU,MAAQD,KAAOF,IAC7CA,EAAOE,CAAG,EAAIC,EAClB,CAEE,OAAOH,CACT,CAUA,SAASI,GAAeC,EAAKC,EAAQ,CACnCA,EAASA,GAAU,GAEnB,IAAIC,EAAQ,CAAA,EACRJ,EACAD,EAKa,OAAOI,GAApB,WAA4BA,EAAS,KAEzC,IAAKJ,KAAOG,EACV,GAAIX,GAAI,KAAKW,EAAKH,CAAG,EAAG,CAkBtB,GAjBAC,EAAQE,EAAIH,CAAG,EAMX,CAACC,IAAUA,IAAU,MAAQA,IAAUR,IAAS,MAAMQ,CAAK,KAC7DA,EAAQ,IAGVD,EAAMxC,GAAOwC,CAAG,EAChBC,EAAQzC,GAAOyC,CAAK,EAMhBD,IAAQ,MAAQC,IAAU,KAAM,SACpCI,EAAM,KAAKL,EAAK,IAAKC,CAAK,CAChC,CAGE,OAAOI,EAAM,OAASD,EAASC,EAAM,KAAK,GAAG,EAAI,EACnD,CAKiBC,GAAA,UAAGJ,GACpBI,GAAA,MAAgBX,GCnHhB,IAAIY,GAAWC,GACXC,GAAKC,GACLC,GAAsB,6EACtBC,GAAS,YACTC,GAAU,gCACVvB,GAAO,QACPwB,GAAa,mDACbC,GAAqB,aAUzB,SAASC,GAASC,EAAK,CACrB,OAAQA,GAAY,IAAI,SAAQ,EAAG,QAAQN,GAAqB,EAAE,CACpE,CAcA,IAAIO,GAAQ,CACV,CAAC,IAAK,MAAM,EACZ,CAAC,IAAK,OAAO,EACb,SAAkBC,EAASC,EAAK,CAC9B,OAAOC,EAAUD,EAAI,QAAQ,EAAID,EAAQ,QAAQ,MAAO,GAAG,EAAIA,CAChE,EACD,CAAC,IAAK,UAAU,EAChB,CAAC,IAAK,OAAQ,CAAC,EACf,CAAC,IAAK,OAAQ,OAAW,EAAG,CAAC,EAC7B,CAAC,UAAW,OAAQ,OAAW,CAAC,EAChC,CAAC,IAAK,WAAY,OAAW,EAAG,CAAC,CACnC,EAUIG,GAAS,CAAE,KAAM,EAAG,MAAO,CAAG,EAclC,SAASC,GAAUC,EAAK,CACtB,IAAIC,EAEA,OAAO,OAAW,IAAaA,EAAY,OACtC,OAAOC,GAAW,IAAaD,EAAYC,GAC3C,OAAO,KAAS,IAAaD,EAAY,KAC7CA,EAAY,CAAE,EAEnB,IAAIE,EAAWF,EAAU,UAAY,CAAE,EACvCD,EAAMA,GAAOG,EAEb,IAAIC,EAAmB,CAAA,EACnBC,EAAO,OAAOL,EACdxB,EAEJ,GAAgBwB,EAAI,WAAhB,QACFI,EAAmB,IAAIE,EAAI,SAASN,EAAI,QAAQ,EAAG,EAAE,UAC/BK,IAAb,SAAmB,CAC5BD,EAAmB,IAAIE,EAAIN,EAAK,EAAE,EAClC,IAAKxB,KAAOsB,GAAQ,OAAOM,EAAiB5B,CAAG,CACnD,SAA0B6B,IAAb,SAAmB,CAC5B,IAAK7B,KAAOwB,EACNxB,KAAOsB,KACXM,EAAiB5B,CAAG,EAAIwB,EAAIxB,CAAG,GAG7B4B,EAAiB,UAAY,SAC/BA,EAAiB,QAAUf,GAAQ,KAAKW,EAAI,IAAI,EAEtD,CAEE,OAAOI,CACT,CASA,SAASP,EAAUU,EAAQ,CACzB,OACEA,IAAW,SACXA,IAAW,QACXA,IAAW,SACXA,IAAW,UACXA,IAAW,OACXA,IAAW,MAEf,CAkBA,SAASC,GAAgBb,EAASQ,EAAU,CAC1CR,EAAUH,GAASG,CAAO,EAC1BA,EAAUA,EAAQ,QAAQP,GAAQ,EAAE,EACpCe,EAAWA,GAAY,CAAE,EAEzB,IAAIM,EAAQnB,GAAW,KAAKK,CAAO,EAC/B5B,EAAW0C,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAE,YAAW,EAAK,GAC/CC,EAAiB,CAAC,CAACD,EAAM,CAAC,EAC1BE,EAAe,CAAC,CAACF,EAAM,CAAC,EACxBG,EAAe,EACfC,EAEJ,OAAIH,EACEC,GACFE,EAAOJ,EAAM,CAAC,EAAIA,EAAM,CAAC,EAAIA,EAAM,CAAC,EACpCG,EAAeH,EAAM,CAAC,EAAE,OAASA,EAAM,CAAC,EAAE,SAE1CI,EAAOJ,EAAM,CAAC,EAAIA,EAAM,CAAC,EACzBG,EAAeH,EAAM,CAAC,EAAE,QAGtBE,GACFE,EAAOJ,EAAM,CAAC,EAAIA,EAAM,CAAC,EACzBG,EAAeH,EAAM,CAAC,EAAE,QAExBI,EAAOJ,EAAM,CAAC,EAId1C,IAAa,QACX6C,GAAgB,IAClBC,EAAOA,EAAK,MAAM,CAAC,GAEZhB,EAAU9B,CAAQ,EAC3B8C,EAAOJ,EAAM,CAAC,EACL1C,EACL2C,IACFG,EAAOA,EAAK,MAAM,CAAC,GAEZD,GAAgB,GAAKf,EAAUM,EAAS,QAAQ,IACzDU,EAAOJ,EAAM,CAAC,GAGT,CACL,SAAU1C,EACV,QAAS2C,GAAkBb,EAAU9B,CAAQ,EAC7C,aAAc6C,EACd,KAAMC,CACP,CACH,CAUA,SAASC,GAAQC,EAAUC,EAAM,CAC/B,GAAID,IAAa,GAAI,OAAOC,EAQ5B,QANIC,GAAQD,GAAQ,KAAK,MAAM,GAAG,EAAE,MAAM,EAAG,EAAE,EAAE,OAAOD,EAAS,MAAM,GAAG,CAAC,EACvE9G,EAAIgH,EAAK,OACTC,EAAOD,EAAKhH,EAAI,CAAC,EACjBkH,EAAU,GACVC,EAAK,EAEFnH,KACDgH,EAAKhH,CAAC,IAAM,IACdgH,EAAK,OAAOhH,EAAG,CAAC,EACPgH,EAAKhH,CAAC,IAAM,MACrBgH,EAAK,OAAOhH,EAAG,CAAC,EAChBmH,KACSA,IACLnH,IAAM,IAAGkH,EAAU,IACvBF,EAAK,OAAOhH,EAAG,CAAC,EAChBmH,KAIJ,OAAID,GAASF,EAAK,QAAQ,EAAE,GACxBC,IAAS,KAAOA,IAAS,OAAMD,EAAK,KAAK,EAAE,EAExCA,EAAK,KAAK,GAAG,CACtB,CAgBA,SAASX,EAAIX,EAASQ,EAAU9B,EAAQ,CAItC,GAHAsB,EAAUH,GAASG,CAAO,EAC1BA,EAAUA,EAAQ,QAAQP,GAAQ,EAAE,EAEhC,EAAE,gBAAgBkB,GACpB,OAAO,IAAIA,EAAIX,EAASQ,EAAU9B,CAAM,EAG1C,IAAI0C,EAAUM,EAAWC,EAAOC,EAAaC,EAAOhD,EAChDiD,EAAe/B,GAAM,MAAK,EAC1BW,EAAO,OAAOF,EACdP,EAAM,KACN3F,EAAI,EA8CR,IAjCiBoG,IAAb,UAAkCA,IAAb,WACvBhC,EAAS8B,EACTA,EAAW,MAGT9B,GAAyB,OAAOA,GAAtB,aAA8BA,EAASY,GAAG,OAExDkB,EAAWJ,GAAUI,CAAQ,EAK7BkB,EAAYb,GAAgBb,GAAW,GAAIQ,CAAQ,EACnDY,EAAW,CAACM,EAAU,UAAY,CAACA,EAAU,QAC7CzB,EAAI,QAAUyB,EAAU,SAAWN,GAAYZ,EAAS,QACxDP,EAAI,SAAWyB,EAAU,UAAYlB,EAAS,UAAY,GAC1DR,EAAU0B,EAAU,MAOlBA,EAAU,WAAa,UACrBA,EAAU,eAAiB,GAAK9B,GAAmB,KAAKI,CAAO,IAChE,CAAC0B,EAAU,UACTA,EAAU,UACTA,EAAU,aAAe,GACzB,CAACxB,EAAUD,EAAI,QAAQ,MAE3B6B,EAAa,CAAC,EAAI,CAAC,OAAQ,UAAU,GAGhCxH,EAAIwH,EAAa,OAAQxH,IAAK,CAGnC,GAFAsH,EAAcE,EAAaxH,CAAC,EAExB,OAAOsH,GAAgB,WAAY,CACrC5B,EAAU4B,EAAY5B,EAASC,CAAG,EAClC,QACN,CAEI0B,EAAQC,EAAY,CAAC,EACrB/C,EAAM+C,EAAY,CAAC,EAEfD,IAAUA,EACZ1B,EAAIpB,CAAG,EAAImB,EACW,OAAO2B,GAApB,UACTE,EAAQF,IAAU,IACd3B,EAAQ,YAAY2B,CAAK,EACzB3B,EAAQ,QAAQ2B,CAAK,EAErB,CAACE,IACc,OAAOD,EAAY,CAAC,GAAjC,UACF3B,EAAIpB,CAAG,EAAImB,EAAQ,MAAM,EAAG6B,CAAK,EACjC7B,EAAUA,EAAQ,MAAM6B,EAAQD,EAAY,CAAC,CAAC,IAE9C3B,EAAIpB,CAAG,EAAImB,EAAQ,MAAM6B,CAAK,EAC9B7B,EAAUA,EAAQ,MAAM,EAAG6B,CAAK,MAG1BA,EAAQF,EAAM,KAAK3B,CAAO,KACpCC,EAAIpB,CAAG,EAAIgD,EAAM,CAAC,EAClB7B,EAAUA,EAAQ,MAAM,EAAG6B,EAAM,KAAK,GAGxC5B,EAAIpB,CAAG,EAAIoB,EAAIpB,CAAG,GAChBuC,GAAYQ,EAAY,CAAC,GAAIpB,EAAS3B,CAAG,GAAK,GAO5C+C,EAAY,CAAC,IAAG3B,EAAIpB,CAAG,EAAIoB,EAAIpB,CAAG,EAAE,YAAa,EACzD,CAOMH,IAAQuB,EAAI,MAAQvB,EAAOuB,EAAI,KAAK,GAMpCmB,GACCZ,EAAS,SACTP,EAAI,SAAS,OAAO,CAAC,IAAM,MAC1BA,EAAI,WAAa,IAAMO,EAAS,WAAa,MAEjDP,EAAI,SAAWkB,GAAQlB,EAAI,SAAUO,EAAS,QAAQ,GAOpDP,EAAI,SAAS,OAAO,CAAC,IAAM,KAAOC,EAAUD,EAAI,QAAQ,IAC1DA,EAAI,SAAW,IAAMA,EAAI,UAQtBb,GAASa,EAAI,KAAMA,EAAI,QAAQ,IAClCA,EAAI,KAAOA,EAAI,SACfA,EAAI,KAAO,IAMbA,EAAI,SAAWA,EAAI,SAAW,GAE1BA,EAAI,OACN4B,EAAQ5B,EAAI,KAAK,QAAQ,GAAG,EAExB,CAAC4B,GACH5B,EAAI,SAAWA,EAAI,KAAK,MAAM,EAAG4B,CAAK,EACtC5B,EAAI,SAAW,mBAAmB,mBAAmBA,EAAI,QAAQ,CAAC,EAElEA,EAAI,SAAWA,EAAI,KAAK,MAAM4B,EAAQ,CAAC,EACvC5B,EAAI,SAAW,mBAAmB,mBAAmBA,EAAI,QAAQ,CAAC,GAElEA,EAAI,SAAW,mBAAmB,mBAAmBA,EAAI,IAAI,CAAC,EAGhEA,EAAI,KAAOA,EAAI,SAAWA,EAAI,SAAU,IAAKA,EAAI,SAAWA,EAAI,UAGlEA,EAAI,OAASA,EAAI,WAAa,SAAWC,EAAUD,EAAI,QAAQ,GAAKA,EAAI,KACpEA,EAAI,SAAU,KAAMA,EAAI,KACxB,OAKJA,EAAI,KAAOA,EAAI,SAAU,CAC3B,CAeA,SAAS8B,GAAInD,EAAME,EAAOkD,EAAI,CAC5B,IAAI/B,EAAM,KAEV,OAAQrB,EAAI,CACV,IAAK,QACc,OAAOE,GAApB,UAA6BA,EAAM,SACrCA,GAASkD,GAAM1C,GAAG,OAAOR,CAAK,GAGhCmB,EAAIrB,CAAI,EAAIE,EACZ,MAEF,IAAK,OACHmB,EAAIrB,CAAI,EAAIE,EAEPM,GAASN,EAAOmB,EAAI,QAAQ,EAGtBnB,IACTmB,EAAI,KAAOA,EAAI,SAAU,IAAKnB,IAH9BmB,EAAI,KAAOA,EAAI,SACfA,EAAIrB,CAAI,EAAI,IAKd,MAEF,IAAK,WACHqB,EAAIrB,CAAI,EAAIE,EAERmB,EAAI,OAAMnB,GAAS,IAAKmB,EAAI,MAChCA,EAAI,KAAOnB,EACX,MAEF,IAAK,OACHmB,EAAIrB,CAAI,EAAIE,EAERX,GAAK,KAAKW,CAAK,GACjBA,EAAQA,EAAM,MAAM,GAAG,EACvBmB,EAAI,KAAOnB,EAAM,IAAK,EACtBmB,EAAI,SAAWnB,EAAM,KAAK,GAAG,IAE7BmB,EAAI,SAAWnB,EACfmB,EAAI,KAAO,IAGb,MAEF,IAAK,WACHA,EAAI,SAAWnB,EAAM,YAAa,EAClCmB,EAAI,QAAU,CAAC+B,EACf,MAEF,IAAK,WACL,IAAK,OACH,GAAIlD,EAAO,CACT,IAAImD,EAAOrD,IAAS,WAAa,IAAM,IACvCqB,EAAIrB,CAAI,EAAIE,EAAM,OAAO,CAAC,IAAMmD,EAAOA,EAAOnD,EAAQA,CAC9D,MACQmB,EAAIrB,CAAI,EAAIE,EAEd,MAEF,IAAK,WACL,IAAK,WACHmB,EAAIrB,CAAI,EAAI,mBAAmBE,CAAK,EACpC,MAEF,IAAK,OACH,IAAI+C,EAAQ/C,EAAM,QAAQ,GAAG,EAEzB,CAAC+C,GACH5B,EAAI,SAAWnB,EAAM,MAAM,EAAG+C,CAAK,EACnC5B,EAAI,SAAW,mBAAmB,mBAAmBA,EAAI,QAAQ,CAAC,EAElEA,EAAI,SAAWnB,EAAM,MAAM+C,EAAQ,CAAC,EACpC5B,EAAI,SAAW,mBAAmB,mBAAmBA,EAAI,QAAQ,CAAC,GAElEA,EAAI,SAAW,mBAAmB,mBAAmBnB,CAAK,CAAC,CAEnE,CAEE,QAASxE,EAAI,EAAGA,EAAIyF,GAAM,OAAQzF,IAAK,CACrC,IAAI4H,EAAMnC,GAAMzF,CAAC,EAEb4H,EAAI,CAAC,IAAGjC,EAAIiC,EAAI,CAAC,CAAC,EAAIjC,EAAIiC,EAAI,CAAC,CAAC,EAAE,YAAa,EACvD,CAEE,OAAAjC,EAAI,KAAOA,EAAI,SAAWA,EAAI,SAAU,IAAKA,EAAI,SAAWA,EAAI,SAEhEA,EAAI,OAASA,EAAI,WAAa,SAAWC,EAAUD,EAAI,QAAQ,GAAKA,EAAI,KACpEA,EAAI,SAAU,KAAMA,EAAI,KACxB,OAEJA,EAAI,KAAOA,EAAI,SAAU,EAElBA,CACT,CASA,SAASkC,GAASC,EAAW,EACvB,CAACA,GAA4B,OAAOA,GAAtB,cAAiCA,EAAY9C,GAAG,WAElE,IAAIb,EACAwB,EAAM,KACNoC,EAAOpC,EAAI,KACX7B,EAAW6B,EAAI,SAEf7B,GAAYA,EAAS,OAAOA,EAAS,OAAS,CAAC,IAAM,MAAKA,GAAY,KAE1E,IAAIO,EACFP,GACE6B,EAAI,UAAYA,EAAI,SAAYC,EAAUD,EAAI,QAAQ,EAAI,KAAO,IAErE,OAAIA,EAAI,UACNtB,GAAUsB,EAAI,SACVA,EAAI,WAAUtB,GAAU,IAAKsB,EAAI,UACrCtB,GAAU,KACDsB,EAAI,UACbtB,GAAU,IAAKsB,EAAI,SACnBtB,GAAU,KAEVsB,EAAI,WAAa,SACjBC,EAAUD,EAAI,QAAQ,GACtB,CAACoC,GACDpC,EAAI,WAAa,MAMjBtB,GAAU,MAQR0D,EAAKA,EAAK,OAAS,CAAC,IAAM,KAAQlE,GAAK,KAAK8B,EAAI,QAAQ,GAAK,CAACA,EAAI,QACpEoC,GAAQ,KAGV1D,GAAU0D,EAAOpC,EAAI,SAErBxB,EAAqB,OAAOwB,EAAI,OAAxB,SAAgCmC,EAAUnC,EAAI,KAAK,EAAIA,EAAI,MAC/DxB,IAAOE,GAAkBF,EAAM,OAAO,CAAC,IAAtB,IAA0B,IAAKA,EAAQA,GAExDwB,EAAI,OAAMtB,GAAUsB,EAAI,MAErBtB,CACT,CAEAgC,EAAI,UAAY,CAAE,IAAKoB,GAAK,SAAUI,EAAU,EAMhDxB,EAAI,gBAAkBE,GACtBF,EAAI,SAAWP,GACfO,EAAI,SAAWd,GACfc,EAAI,GAAKrB,GAET,IAAAgD,GAAiB3B,kBC5kBjB,SAAS4B,GAAQC,EAAG,CAAE,0BAA2B,OAAOD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,GAAQC,CAAC,CAAE,CAE5T,SAASC,GAAaC,EAAaC,EAAYC,EAAa,CAAsI,cAAO,eAAeF,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAG3R,SAASG,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAASK,GAAUC,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,GAAQ,CAAA,EAAG,OAAO,eAAeA,EAAU,YAAa,CAAE,SAAU,GAAO,EAAOC,GAAYC,GAAgBF,EAAUC,CAAU,CAAE,CAClc,SAASE,GAAaC,EAAS,CAAE,IAAIC,EAA4BC,GAAyB,EAAI,OAAO,UAAgC,CAAE,IAAIC,EAAQC,GAAgBJ,CAAO,EAAGzE,EAAQ,GAAI0E,EAA2B,CAAE,IAAII,EAAYD,GAAgB,IAAI,EAAE,YAAa7E,EAAS,QAAQ,UAAU4E,EAAO,UAAWE,CAAS,CAAI,MAAQ9E,EAAS4E,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOG,GAA2B,KAAM/E,CAAM,EAAK,CACva,SAAS+E,GAA2BC,EAAMC,EAAM,CAAE,GAAIA,IAASrB,GAAQqB,CAAI,IAAM,UAAY,OAAOA,GAAS,YAAe,OAAOA,EAAa,GAAIA,IAAS,OAAU,MAAM,IAAI,UAAU,0DAA0D,EAAK,OAAOC,GAAuBF,CAAI,CAAE,CAC9R,SAASE,GAAuBF,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAK,CACpK,SAASG,GAAiBC,EAAO,CAAE,IAAIC,EAAS,OAAO,KAAQ,WAAa,IAAI,IAAQ,OAAW,OAAAF,GAAmB,SAA0BC,EAAO,CAAE,GAAIA,IAAU,MAAQ,CAACE,GAAkBF,CAAK,EAAG,OAAOA,EAAO,GAAI,OAAOA,GAAU,WAAc,MAAM,IAAI,UAAU,oDAAoD,EAAK,GAAI,OAAOC,EAAW,IAAa,CAAE,GAAIA,EAAO,IAAID,CAAK,EAAG,OAAOC,EAAO,IAAID,CAAK,EAAGC,EAAO,IAAID,EAAOG,CAAO,CAAE,CAAG,SAASA,GAAU,CAAE,OAAOC,GAAWJ,EAAO,UAAWP,GAAgB,IAAI,EAAE,WAAW,CAAI,CAAC,OAAAU,EAAQ,UAAY,OAAO,OAAOH,EAAM,UAAW,CAAE,YAAa,CAAE,MAAOG,EAAS,WAAY,GAAO,SAAU,GAAM,aAAc,EAAI,CAAI,CAAA,EAAUhB,GAAgBgB,EAASH,CAAK,CAAE,EAAWD,GAAiBC,CAAK,CAAE,CACrvB,SAASI,GAAWC,EAAQC,EAAMN,EAAO,CAAE,OAAIT,GAAyB,EAAMa,GAAa,QAAQ,UAAU,KAAI,EAAaA,GAAa,SAAoBC,EAAQC,EAAMN,EAAO,CAAE,IAAI5J,EAAI,CAAC,IAAI,EAAGA,EAAE,KAAK,MAAMA,EAAGkK,CAAI,EAAG,IAAI3B,EAAc,SAAS,KAAK,MAAM0B,EAAQjK,CAAC,EAAO2I,EAAW,IAAIJ,EAAe,OAAIqB,GAAOb,GAAgBJ,EAAUiB,EAAM,SAAS,EAAUjB,GAAsBqB,GAAW,MAAM,KAAM,SAAS,CAAE,CACva,SAASb,IAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,CAAE,EAAE,UAAY,CAAA,CAAE,CAAC,EAAU,EAAK,MAAa,CAAE,MAAO,EAAQ,CAAA,CACvU,SAASW,GAAkBjC,EAAI,CAAE,GAAI,CAAE,OAAO,SAAS,SAAS,KAAKA,CAAE,EAAE,QAAQ,eAAe,IAAM,QAAgB,CAAE,OAAO,OAAOA,GAAO,UAAa,CAAA,CAC1J,SAASkB,GAAgBV,EAAG8B,EAAG,CAAEpB,OAAAA,GAAkB,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAAyBV,EAAG8B,EAAG,CAAE,OAAA9B,EAAE,UAAY8B,EAAU9B,CAAI,EAASU,GAAgBV,EAAG8B,CAAC,CAAE,CACtM,SAASd,GAAgBhB,EAAG,CAAEgB,OAAAA,GAAkB,OAAO,eAAiB,OAAO,eAAe,OAAS,SAAyBhB,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAE,EAAWgB,GAAgBhB,CAAC,CAAE,CAClN,IAAI+B,GAA6B,SAAUC,EAAQ,CACjDzB,GAAUwB,EAAeC,CAAM,EAC/B,IAAIC,EAAStB,GAAaoB,CAAa,EACvC,SAASA,EAAcG,EAAS,CAC9B,IAAIC,EACAC,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KACjFC,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAC1EC,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAS9E,GARAjC,GAAgB,KAAM0B,CAAa,EACnCI,EAAQF,EAAO,KAAK,KAAMC,CAAO,EACjCC,EAAM,gBAAkBE,EACxBF,EAAM,iBAAmBG,EACzBH,EAAM,aAAeC,EACjBA,GAAc,OAChBF,GAAW,eAAe,OAAOE,EAAW,SAAQ,CAAE,GAEpDC,GAAO,KAAM,CACf,IAAIE,EAAYF,EAAI,UAAU,cAAc,GAAK,MAC7CG,EAASH,EAAI,UAAW,EACxB5E,EAAM4E,EAAI,OAAQ,EAClBI,EAASH,EAAMA,EAAI,UAAW,EAAG,MACjChH,EAAOgH,EAAMA,EAAI,QAAS,GAAI,GAAK,MACvCJ,GAAW,sCAAsC,OAAOM,EAAQ,SAAS,EAAE,OAAO/E,EAAK,mBAAmB,EAAE,OAAOgF,EAAQ,mBAAmB,EAAE,OAAOnH,EAAM,gBAAgB,EAAE,OAAOiH,EAAW,GAAG,CAC1M,CACI,OAAAJ,EAAM,QAAUD,EACTC,CACX,CACE,OAAOlC,GAAa8B,CAAa,CACnC,EAAgBT,GAAiB,KAAK,CAAC,EChCxB,SAASoB,IAAO,CAE7B,MAAO,uCAAuC,QAAQ,QAAS,SAAU7K,EAAG,CAC1E,IAAI8K,EAAI,KAAK,OAAQ,EAAG,GAAK,EACzBzH,EAAIrD,IAAM,IAAM8K,EAAIA,EAAI,EAAM,EAClC,OAAOzH,EAAE,SAAS,EAAE,CACxB,CAAG,CACH,CCnBA,SAAS0H,IAAsB,qJAAqKA,GAAsB,UAA+B,CAAE,OAAOC,CAAE,EAAI,IAAIC,EAAGD,EAAI,CAAA,EAAI,EAAI,OAAO,UAAW,EAAI,EAAE,eAAgB,EAAI,OAAO,gBAAkB,SAAUC,EAAGD,EAAGF,EAAG,CAAEG,EAAED,CAAC,EAAIF,EAAE,KAAM,EAAI7K,EAAkB,OAAO,QAArB,WAA8B,OAAS,CAAA,EAAIH,EAAIG,EAAE,UAAY,aAAcD,EAAIC,EAAE,eAAiB,kBAAmB6B,EAAI7B,EAAE,aAAe,gBAAiB,SAASiL,EAAOD,EAAGD,EAAGF,EAAG,CAAE,OAAO,OAAO,eAAeG,EAAGD,EAAG,CAAE,MAAOF,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAGG,EAAED,CAAC,CAAI,CAAC,GAAI,CAAEE,EAAO,CAAA,EAAI,EAAE,CAAI,MAAW,CAAEA,EAAS,SAAgBD,EAAGD,EAAGF,EAAG,CAAE,OAAOG,EAAED,CAAC,EAAIF,CAAE,CAAK,CAAC,SAASK,EAAKF,EAAGD,EAAGF,EAAGM,EAAG,CAAE,IAAInL,EAAI+K,GAAKA,EAAE,qBAAqBK,EAAYL,EAAIK,EAAWvL,EAAI,OAAO,OAAOG,EAAE,SAAS,EAAGD,EAAI,IAAIsL,EAAQF,GAAK,EAAE,EAAG,OAAO,EAAEtL,EAAG,UAAW,CAAE,MAAOyL,GAAiBN,EAAGH,EAAG9K,CAAC,EAAG,EAAGF,CAAE,CAAG,SAAS0L,EAASP,EAAGD,EAAGF,EAAG,CAAE,GAAI,CAAE,MAAO,CAAE,KAAM,SAAU,IAAKG,EAAE,KAAKD,EAAGF,CAAC,CAAG,QAAWG,EAAG,CAAE,MAAO,CAAE,KAAM,QAAS,IAAKA,CAAG,EAAK,CAACD,EAAE,KAAOG,EAAM,IAAIM,EAAI,iBAAkBlK,EAAI,iBAAkBmK,EAAI,YAAahL,EAAI,YAAaiL,EAAI,CAAE,EAAE,SAASN,GAAY,CAAA,CAAG,SAASO,GAAoB,CAAE,CAAC,SAASC,GAA6B,EAAG,IAAI5B,EAAI,CAAA,EAAIiB,EAAOjB,EAAGnK,EAAG,UAAY,CAAE,OAAO,IAAK,CAAE,EAAG,IAAIgM,EAAI,OAAO,eAAgBzI,EAAIyI,GAAKA,EAAEA,EAAEC,EAAO,CAAE,CAAA,CAAC,CAAC,EAAG1I,GAAKA,IAAM,GAAK,EAAE,KAAKA,EAAGvD,CAAC,IAAMmK,EAAI5G,GAAI,IAAI2I,EAAIH,EAA2B,UAAYR,EAAU,UAAY,OAAO,OAAOpB,CAAC,EAAG,SAASgC,EAAsBhB,EAAG,CAAE,CAAC,OAAQ,QAAS,QAAQ,EAAE,QAAQ,SAAUD,EAAG,CAAEE,EAAOD,EAAGD,EAAG,SAAUC,EAAG,CAAE,OAAO,KAAK,QAAQD,EAAGC,CAAC,EAAI,EAAI,EAAK,SAASiB,EAAcjB,EAAGD,EAAG,CAAE,SAASmB,EAAOrB,EAAG3C,EAAGlI,EAAGH,EAAG,CAAE,IAAIE,EAAIwL,EAASP,EAAEH,CAAC,EAAGG,EAAG9C,CAAC,EAAG,GAAgBnI,EAAE,OAAd,QAAoB,CAAE,IAAI8B,EAAI9B,EAAE,IAAKyL,EAAI3J,EAAE,MAAO,OAAO2J,GAAiBvD,EAAQuD,CAAC,GAArB,UAA0B,EAAE,KAAKA,EAAG,SAAS,EAAIT,EAAE,QAAQS,EAAE,OAAO,EAAE,KAAK,SAAUR,EAAG,CAAEkB,EAAO,OAAQlB,EAAGhL,EAAGH,CAAC,CAAI,EAAE,SAAUmL,EAAG,CAAEkB,EAAO,QAASlB,EAAGhL,EAAGH,CAAC,CAAI,CAAA,EAAIkL,EAAE,QAAQS,CAAC,EAAE,KAAK,SAAUR,EAAG,CAAEnJ,EAAE,MAAQmJ,EAAGhL,EAAE6B,CAAC,GAAM,SAAUmJ,EAAG,CAAE,OAAOkB,EAAO,QAASlB,EAAGhL,EAAGH,CAAC,CAAI,CAAA,CAAE,CAAGA,EAAEE,EAAE,GAAG,CAAE,CAAG,IAAI8K,EAAG,EAAE,KAAM,UAAW,CAAE,MAAO,SAAeG,EAAGG,EAAG,CAAE,SAASgB,GAA6B,CAAE,OAAO,IAAIpB,EAAE,SAAUA,EAAGF,EAAG,CAAEqB,EAAOlB,EAAGG,EAAGJ,EAAGF,CAAC,CAAI,CAAA,CAAI,CAAC,OAAOA,EAAIA,EAAIA,EAAE,KAAKsB,EAA4BA,CAA0B,EAAIA,EAA4B,CAAG,CAAA,CAAE,CAAE,CAAG,SAASb,GAAiBP,EAAGF,EAAGM,EAAG,CAAE,IAAIjD,EAAIsD,EAAG,OAAO,SAAUxL,EAAGH,EAAG,CAAE,GAAIqI,IAAMuD,EAAG,MAAM,IAAI,MAAM,8BAA8B,EAAG,GAAIvD,IAAMzH,EAAG,CAAE,GAAgBT,IAAZ,QAAe,MAAMH,EAAG,MAAO,CAAE,MAAOmL,EAAG,KAAM,GAAK,CAAG,IAAKG,EAAE,OAASnL,EAAGmL,EAAE,IAAMtL,IAAK,CAAE,IAAIE,EAAIoL,EAAE,SAAU,GAAIpL,EAAG,CAAE,IAAI8B,EAAIuK,GAAoBrM,EAAGoL,CAAC,EAAG,GAAItJ,EAAG,CAAE,GAAIA,IAAM6J,EAAG,SAAU,OAAO7J,CAAI,CAAA,CAAG,GAAesJ,EAAE,SAAb,OAAqBA,EAAE,KAAOA,EAAE,MAAQA,EAAE,YAAyBA,EAAE,SAAd,QAAsB,CAAE,GAAIjD,IAAMsD,EAAG,MAAMtD,EAAIzH,EAAG0K,EAAE,IAAKA,EAAE,kBAAkBA,EAAE,GAAG,OAAuBA,EAAE,SAAf,UAAyBA,EAAE,OAAO,SAAUA,EAAE,GAAG,EAAGjD,EAAIuD,EAAG,IAAIzB,EAAIuB,EAASR,EAAGF,EAAGM,CAAC,EAAG,GAAiBnB,EAAE,OAAf,SAAqB,CAAE,GAAI9B,EAAIiD,EAAE,KAAO1K,EAAIa,EAAG0I,EAAE,MAAQ0B,EAAG,SAAU,MAAO,CAAE,MAAO1B,EAAE,IAAK,KAAMmB,EAAE,IAAI,CAAK,CAAanB,EAAE,OAAd,UAAuB9B,EAAIzH,EAAG0K,EAAE,OAAS,QAASA,EAAE,IAAMnB,EAAE,IAAO,CAAA,CAAK,CAAC,SAASoC,GAAoBrB,EAAGF,EAAG,CAAE,IAAIM,EAAIN,EAAE,OAAQ3C,EAAI6C,EAAE,SAASI,CAAC,EAAG,GAAIjD,IAAM8C,EAAG,OAAOH,EAAE,SAAW,KAAkBM,IAAZ,SAAiBJ,EAAE,SAAS,SAAcF,EAAE,OAAS,SAAUA,EAAE,IAAMG,EAAGoB,GAAoBrB,EAAGF,CAAC,EAAeA,EAAE,SAAd,UAAsCM,IAAb,WAAmBN,EAAE,OAAS,QAASA,EAAE,IAAM,IAAI,UAAU,oCAAsCM,EAAI,UAAU,GAAIO,EAAG,IAAI1L,EAAIuL,EAASrD,EAAG6C,EAAE,SAAUF,EAAE,GAAG,EAAG,GAAgB7K,EAAE,OAAd,QAAoB,OAAO6K,EAAE,OAAS,QAASA,EAAE,IAAM7K,EAAE,IAAK6K,EAAE,SAAW,KAAMa,EAAG,IAAI7L,EAAIG,EAAE,IAAK,OAAOH,EAAIA,EAAE,MAAQgL,EAAEE,EAAE,UAAU,EAAIlL,EAAE,MAAOgL,EAAE,KAAOE,EAAE,QAAsBF,EAAE,SAAf,WAA0BA,EAAE,OAAS,OAAQA,EAAE,IAAMG,GAAIH,EAAE,SAAW,KAAMa,GAAK7L,GAAKgL,EAAE,OAAS,QAASA,EAAE,IAAM,IAAI,UAAU,kCAAkC,EAAGA,EAAE,SAAW,KAAMa,EAAK,CAAC,SAASW,GAAarB,EAAG,CAAE,IAAID,EAAI,CAAE,OAAQC,EAAE,CAAC,GAAK,KAAKA,IAAMD,EAAE,SAAWC,EAAE,CAAC,GAAI,KAAKA,IAAMD,EAAE,WAAaC,EAAE,CAAC,EAAGD,EAAE,SAAWC,EAAE,CAAC,GAAI,KAAK,WAAW,KAAKD,CAAC,CAAI,CAAC,SAASuB,EAActB,EAAG,CAAE,IAAID,EAAIC,EAAE,YAAc,CAAA,EAAID,EAAE,KAAO,SAAU,OAAOA,EAAE,IAAKC,EAAE,WAAaD,CAAE,CAAG,SAASM,EAAQL,EAAG,CAAE,KAAK,WAAa,CAAC,CAAE,OAAQ,OAAQ,EAAGA,EAAE,QAAQqB,GAAc,IAAI,EAAG,KAAK,MAAM,EAAE,EAAK,SAASP,EAAOf,EAAG,CAAE,GAAIA,GAAYA,IAAP,GAAU,CAAE,IAAIF,EAAIE,EAAElL,CAAC,EAAG,GAAIgL,EAAG,OAAOA,EAAE,KAAKE,CAAC,EAAG,GAAkB,OAAOA,EAAE,MAAvB,WAA6B,OAAOA,EAAG,GAAI,CAAC,MAAMA,EAAE,MAAM,EAAG,CAAE,IAAI7C,EAAI,GAAIlI,EAAI,SAASuM,GAAO,CAAE,KAAO,EAAErE,EAAI6C,EAAE,QAAS,GAAI,EAAE,KAAKA,EAAG7C,CAAC,EAAG,OAAOqE,EAAK,MAAQxB,EAAE7C,CAAC,EAAGqE,EAAK,KAAO,GAAIA,EAAM,OAAOA,EAAK,MAAQvB,EAAGuB,EAAK,KAAO,GAAIA,GAAS,OAAOvM,EAAE,KAAOA,CAAE,EAAK,MAAM,IAAI,UAAUiI,EAAQ8C,CAAC,EAAI,kBAAkB,EAAK,OAAOY,EAAkB,UAAYC,EAA4B,EAAEG,EAAG,cAAe,CAAE,MAAOH,EAA4B,aAAc,EAAI,CAAA,EAAG,EAAEA,EAA4B,cAAe,CAAE,MAAOD,EAAmB,aAAc,GAAI,EAAGA,EAAkB,YAAcV,EAAOW,EAA4B/J,EAAG,mBAAmB,EAAGkJ,EAAE,oBAAsB,SAAUC,EAAG,CAAE,IAAID,EAAkB,OAAOC,GAArB,YAA0BA,EAAE,YAAa,MAAO,CAAC,CAACD,IAAMA,IAAMY,IAA8CZ,EAAE,aAAeA,EAAE,QAA5C,oBAAmD,EAAIA,EAAE,KAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,eAAiB,OAAO,eAAeA,EAAGY,CAA0B,GAAKZ,EAAE,UAAYY,EAA4BX,EAAOD,EAAGnJ,EAAG,mBAAmB,GAAImJ,EAAE,UAAY,OAAO,OAAOe,CAAC,EAAGf,CAAI,EAAED,EAAE,MAAQ,SAAUC,EAAG,CAAE,MAAO,CAAE,QAASA,CAAC,CAAK,EAAEgB,EAAsBC,EAAc,SAAS,EAAGhB,EAAOgB,EAAc,UAAWlM,EAAG,UAAY,CAAE,OAAO,IAAO,CAAA,EAAGgL,EAAE,cAAgBkB,EAAelB,EAAE,MAAQ,SAAUC,EAAGH,EAAGM,EAAGjD,EAAGlI,EAAG,CAAaA,IAAX,SAAiBA,EAAI,SAAU,IAAIH,EAAI,IAAIoM,EAAcf,EAAKF,EAAGH,EAAGM,EAAGjD,CAAC,EAAGlI,CAAC,EAAG,OAAO+K,EAAE,oBAAoBF,CAAC,EAAIhL,EAAIA,EAAE,OAAO,KAAK,SAAUmL,EAAG,CAAE,OAAOA,EAAE,KAAOA,EAAE,MAAQnL,EAAE,KAAM,EAAG,GAAMmM,EAAsBD,CAAC,EAAGd,EAAOc,EAAGlK,EAAG,WAAW,EAAGoJ,EAAOc,EAAGlM,EAAG,UAAY,CAAE,OAAO,IAAK,CAAE,EAAGoL,EAAOc,EAAG,WAAY,UAAY,CAAE,MAAO,oBAAqB,CAAE,EAAGhB,EAAE,KAAO,SAAUC,EAAG,CAAE,IAAID,EAAI,OAAOC,CAAC,EAAGH,EAAI,GAAI,QAASM,KAAKJ,EAAGF,EAAE,KAAKM,CAAC,EAAG,OAAON,EAAE,QAAO,EAAI,SAAS0B,GAAO,CAAE,KAAO1B,EAAE,QAAS,CAAE,IAAIG,EAAIH,EAAE,IAAG,EAAI,GAAIG,KAAKD,EAAG,OAAOwB,EAAK,MAAQvB,EAAGuB,EAAK,KAAO,GAAIA,CAAK,CAAG,OAAOA,EAAK,KAAO,GAAIA,CAAK,CAAK,EAAExB,EAAE,OAASe,EAAQT,EAAQ,UAAY,CAAE,YAAaA,EAAS,MAAO,SAAeN,EAAG,CAAE,GAAI,KAAK,KAAO,EAAG,KAAK,KAAO,EAAG,KAAK,KAAO,KAAK,MAAQC,EAAG,KAAK,KAAO,GAAI,KAAK,SAAW,KAAM,KAAK,OAAS,OAAQ,KAAK,IAAMA,EAAG,KAAK,WAAW,QAAQsB,CAAa,EAAG,CAACvB,EAAG,QAASF,KAAK,KAAcA,EAAE,OAAO,CAAC,IAAlB,KAAuB,EAAE,KAAK,KAAMA,CAAC,GAAK,CAAC,MAAM,CAACA,EAAE,MAAM,CAAC,CAAC,IAAM,KAAKA,CAAC,EAAIG,EAAK,EAAE,KAAM,UAAgB,CAAE,KAAK,KAAO,GAAI,IAAIA,EAAI,KAAK,WAAW,CAAC,EAAE,WAAY,GAAgBA,EAAE,OAAd,QAAoB,MAAMA,EAAE,IAAK,OAAO,KAAK,IAAK,EAAI,kBAAmB,SAA2BD,EAAG,CAAE,GAAI,KAAK,KAAM,MAAMA,EAAG,IAAIF,EAAI,KAAM,SAAS2B,EAAOrB,EAAGjD,EAAG,CAAE,OAAOrI,EAAE,KAAO,QAASA,EAAE,IAAMkL,EAAGF,EAAE,KAAOM,EAAGjD,IAAM2C,EAAE,OAAS,OAAQA,EAAE,IAAMG,GAAI,CAAC,CAAC9C,EAAK,QAASA,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAIlI,EAAI,KAAK,WAAWkI,CAAC,EAAGrI,EAAIG,EAAE,WAAY,GAAeA,EAAE,SAAb,OAAqB,OAAOwM,EAAO,KAAK,EAAG,GAAIxM,EAAE,QAAU,KAAK,KAAM,CAAE,IAAID,EAAI,EAAE,KAAKC,EAAG,UAAU,EAAG6B,EAAI,EAAE,KAAK7B,EAAG,YAAY,EAAG,GAAID,GAAK8B,EAAG,CAAE,GAAI,KAAK,KAAO7B,EAAE,SAAU,OAAOwM,EAAOxM,EAAE,SAAU,EAAE,EAAG,GAAI,KAAK,KAAOA,EAAE,WAAY,OAAOwM,EAAOxM,EAAE,UAAU,CAAI,SAAUD,GAAK,GAAI,KAAK,KAAOC,EAAE,SAAU,OAAOwM,EAAOxM,EAAE,SAAU,EAAE,MAAU,CAAE,GAAI,CAAC6B,EAAG,MAAM,IAAI,MAAM,wCAAwC,EAAG,GAAI,KAAK,KAAO7B,EAAE,WAAY,OAAOwM,EAAOxM,EAAE,UAAU,CAAI,CAAA,EAAM,EAAE,OAAQ,SAAgBgL,EAAGD,EAAG,CAAE,QAASF,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAI3C,EAAI,KAAK,WAAW2C,CAAC,EAAG,GAAI3C,EAAE,QAAU,KAAK,MAAQ,EAAE,KAAKA,EAAG,YAAY,GAAK,KAAK,KAAOA,EAAE,WAAY,CAAE,IAAIlI,EAAIkI,EAAG,KAAQ,CAAA,CAAGlI,IAAkBgL,IAAZ,SAAgCA,IAAf,aAAqBhL,EAAE,QAAU+K,GAAKA,GAAK/K,EAAE,aAAeA,EAAI,MAAO,IAAIH,EAAIG,EAAIA,EAAE,WAAa,CAAA,EAAI,OAAOH,EAAE,KAAOmL,EAAGnL,EAAE,IAAMkL,EAAG/K,GAAK,KAAK,OAAS,OAAQ,KAAK,KAAOA,EAAE,WAAY0L,GAAK,KAAK,SAAS7L,CAAC,CAAI,EAAE,SAAU,SAAkBmL,EAAGD,EAAG,CAAE,GAAgBC,EAAE,OAAd,QAAoB,MAAMA,EAAE,IAAK,OAAmBA,EAAE,OAAd,SAAqCA,EAAE,OAAjB,WAAwB,KAAK,KAAOA,EAAE,IAAmBA,EAAE,OAAf,UAAuB,KAAK,KAAO,KAAK,IAAMA,EAAE,IAAK,KAAK,OAAS,SAAU,KAAK,KAAO,OAAsBA,EAAE,OAAf,UAAuBD,IAAM,KAAK,KAAOA,GAAIW,CAAI,EAAE,OAAQ,SAAgBV,EAAG,CAAE,QAASD,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAIF,EAAI,KAAK,WAAWE,CAAC,EAAG,GAAIF,EAAE,aAAeG,EAAG,OAAO,KAAK,SAASH,EAAE,WAAYA,EAAE,QAAQ,EAAGyB,EAAczB,CAAC,EAAGa,EAAM,EAAE,MAAS,SAAgBV,EAAG,CAAE,QAASD,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAIF,EAAI,KAAK,WAAWE,CAAC,EAAG,GAAIF,EAAE,SAAWG,EAAG,CAAE,IAAIG,EAAIN,EAAE,WAAY,GAAgBM,EAAE,OAAd,QAAoB,CAAE,IAAIjD,EAAIiD,EAAE,IAAKmB,EAAczB,CAAC,EAAK,OAAO3C,EAAM,CAAC,MAAM,IAAI,MAAM,uBAAuB,CAAI,EAAE,cAAe,SAAuB6C,EAAGF,EAAGM,EAAG,CAAE,OAAO,KAAK,SAAW,CAAE,SAAUW,EAAOf,CAAC,EAAG,WAAYF,EAAG,QAASM,CAAG,EAAa,KAAK,SAAhB,SAA2B,KAAK,IAAMH,GAAIU,EAAM,EAAEX,CAAE,CACn2R,SAAS0B,GAAmBC,EAAK7F,EAAS8F,EAAQC,EAAOC,EAAQtI,EAAKuI,EAAK,CAAE,GAAI,CAAE,IAAIC,EAAOL,EAAInI,CAAG,EAAEuI,CAAG,EAAOtI,EAAQuI,EAAK,KAAQ,OAAQC,EAAO,CAAEL,EAAOK,CAAK,EAAG,MAAO,CAAOD,EAAK,KAAQlG,EAAQrC,CAAK,EAAY,QAAQ,QAAQA,CAAK,EAAE,KAAKoI,EAAOC,CAAM,CAAI,CACvQ,SAASI,GAAkBvF,EAAI,CAAE,OAAO,UAAY,CAAE,IAAI2B,EAAO,KAAMU,EAAO,UAAW,OAAO,IAAI,QAAQ,SAAUlD,EAAS8F,EAAQ,CAAE,IAAID,EAAMhF,EAAG,MAAM2B,EAAMU,CAAI,EAAG,SAAS6C,EAAMpI,EAAO,CAAEiI,GAAmBC,EAAK7F,EAAS8F,EAAQC,EAAOC,EAAQ,OAAQrI,CAAK,CAAI,CAAC,SAASqI,EAAOK,EAAK,CAAET,GAAmBC,EAAK7F,EAAS8F,EAAQC,EAAOC,EAAQ,QAASK,CAAG,EAAKN,EAAM,MAAS,CAAI,CAAA,CAAE,CAAG,CACnY,SAASO,GAAeC,EAAKpN,EAAG,CAAE,OAAOqN,GAAgBD,CAAG,GAAKE,GAAsBF,EAAKpN,CAAC,GAAKuN,GAA4BH,EAAKpN,CAAC,GAAKwN,IAAmB,CAC5J,SAASA,IAAmB,CAAE,MAAM,IAAI,UAAU;AAAA,mFAA2I,CAAE,CAC/L,SAASD,GAA4BrF,EAAGuF,EAAQ,CAAE,GAAKvF,EAAW,IAAI,OAAOA,GAAM,SAAU,OAAOwF,GAAkBxF,EAAGuF,CAAM,EAAG,IAAItC,EAAI,OAAO,UAAU,SAAS,KAAKjD,CAAC,EAAE,MAAM,EAAG,EAAE,EAAgE,GAAzDiD,IAAM,UAAYjD,EAAE,cAAaiD,EAAIjD,EAAE,YAAY,MAAUiD,IAAM,OAASA,IAAM,MAAO,OAAO,MAAM,KAAKjD,CAAC,EAAG,GAAIiD,IAAM,aAAe,2CAA2C,KAAKA,CAAC,EAAG,OAAOuC,GAAkBxF,EAAGuF,CAAM,EAAE,CAC9Z,SAASC,GAAkBN,EAAKO,EAAK,EAAMA,GAAO,MAAQA,EAAMP,EAAI,UAAQO,EAAMP,EAAI,QAAQ,QAASpN,EAAI,EAAG4N,EAAO,IAAI,MAAMD,CAAG,EAAG3N,EAAI2N,EAAK3N,IAAK4N,EAAK5N,CAAC,EAAIoN,EAAIpN,CAAC,EAAG,OAAO4N,CAAK,CACjL,SAASN,GAAsBzC,EAAGvJ,EAAG,CAAE,IAAI0J,EAAYH,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAAG,GAAYG,GAAR,KAAW,CAAE,IAAID,EAAGI,EAAGnL,EAAG6B,EAAGhC,EAAI,CAAA,EAAI4L,EAAI,GAAIvD,EAAI,GAAI,GAAI,CAAE,GAAIlI,GAAKgL,EAAIA,EAAE,KAAKH,CAAC,GAAG,KAAYvJ,IAAN,EAAuD,KAAO,EAAEmK,GAAKV,EAAI/K,EAAE,KAAKgL,CAAC,GAAG,QAAUnL,EAAE,KAAKkL,EAAE,KAAK,EAAGlL,EAAE,SAAWyB,GAAImK,EAAI,GAAG,CAAC,OAAUZ,EAAG,CAAE3C,EAAI,GAAIiD,EAAIN,CAAE,SAAa,GAAI,CAAE,GAAI,CAACY,GAAaT,EAAE,QAAV,OAAwBnJ,EAAImJ,EAAE,SAAa,OAAOnJ,CAAC,IAAMA,GAAI,MAAO,SAAa,GAAIqG,EAAG,MAAMiD,CAAE,EAAK,OAAOtL,CAAI,CAAA,CACxhB,SAASwN,GAAgBD,EAAK,CAAE,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOA,CAAI,CACnE,SAASnF,EAAQC,EAAG,CAAE,0BAA2B,OAAOD,EAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,EAAQC,CAAC,CAAE,CAC5T,SAAS2F,GAAQ,EAAGhD,EAAG,CAAE,IAAIG,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI9C,EAAI,OAAO,sBAAsB,CAAC,EAAG2C,IAAM3C,EAAIA,EAAE,OAAO,SAAU2C,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAa,CAAA,GAAIG,EAAE,KAAK,MAAMA,EAAG9C,CAAC,EAAK,OAAO8C,CAAE,CAC7P,SAAS8C,EAAc,EAAG,CAAE,QAASjD,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIG,EAAY,UAAUH,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIgD,GAAQ,OAAO7C,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUH,EAAG,CAAEkD,GAAgB,EAAGlD,EAAGG,EAAEH,CAAC,CAAC,CAAI,CAAA,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BG,CAAC,CAAC,EAAI6C,GAAQ,OAAO7C,CAAC,CAAC,EAAE,QAAQ,SAAUH,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBG,EAAGH,CAAC,CAAC,CAAI,CAAA,CAAE,CAAG,OAAO,CAAE,CACrb,SAASkD,GAAgBrJ,EAAKH,EAAKC,EAAO,CAAE,OAAAD,EAAMyJ,GAAezJ,CAAG,EAAOA,KAAOG,EAAO,OAAO,eAAeA,EAAKH,EAAK,CAAE,MAAOC,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,CAAA,EAAYE,EAAIH,CAAG,EAAIC,EAAgBE,CAAI,CAC1O,SAAS6D,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAY4F,GAAkB7F,EAAY,UAAWC,CAAU,EAAOC,GAAa2F,GAAkB7F,EAAaE,CAAW,EAAG,OAAO,eAAeF,EAAa,YAAa,CAAE,SAAU,EAAK,CAAE,EAAUA,CAAY,CAC3R,SAAS4F,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,EAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,EAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,GAAQ,SAAS,EAAG,GAAIrG,EAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAE,CAAG,OAAQ8D,IAAS,SAAW,OAAS,QAAQrK,CAAK,CAAE,CAM3X,IAAIuK,GAAiB,CACnB,SAAU,KACV,UAAW,KACX,SAAU,CAAE,EACZ,YAAa,KACb,WAAY,KACZ,WAAY,KACZ,gBAAiB,KACjB,UAAW,KACX,QAAS,KACT,qBAAsB,KACtB,oBAAqB,GACrB,QAAS,CAAE,EACX,aAAc,GACd,gBAAiB,KACjB,gBAAiB,KACjB,cAAeC,GACf,UAAW,IACX,YAAa,CAAC,EAAG,IAAM,IAAM,GAAI,EACjC,gBAAiB,EACjB,yBAA0B,KAC1B,4BAA6B,GAC7B,2BAA4B,GAC5B,qBAAsB,GACtB,yBAA0B,GAC1B,WAAY,KACZ,WAAY,KACZ,UAAW,IACb,EACIC,GAA0B,UAAY,CACxC,SAASA,EAAWC,EAAMC,EAAS,CACjCrG,GAAgB,KAAMmG,CAAU,EAE5B,WAAYE,GAEd,QAAQ,IAAI,wGAAwG,EAItH,KAAK,QAAUA,EAGf,KAAK,QAAQ,UAAY,OAAO,KAAK,QAAQ,SAAS,EAGtD,KAAK,YAAc,KAAK,QAAQ,WAGhC,KAAK,KAAOD,EAGZ,KAAK,IAAM,KAGX,KAAK,KAAO,KAGZ,KAAK,aAAe,KAGpB,KAAK,eAAiB,KAGtB,KAAK,QAAU,KAGf,KAAK,SAAW,GAGhB,KAAK,MAAQ,KAKb,KAAK,QAAU,KAGf,KAAK,cAAgB,EAGrB,KAAK,cAAgB,KAGrB,KAAK,mBAAqB,EAI1B,KAAK,iBAAmB,KAIxB,KAAK,oBAAsB,IAC/B,CAYExG,OAAAA,GAAauG,EAAY,CAAC,CACxB,IAAK,sBACL,MAAO,UAA+B,CACpC,IAAIrE,EAAQ,KACZ,OAAO,KAAK,QAAQ,YAAY,KAAK,KAAM,KAAK,OAAO,EAAE,KAAK,SAAUwE,EAAa,CACnF,OAAOxE,EAAM,YAAY,yBAAyBwE,CAAW,CACrE,CAAO,CACP,CACA,EAAK,CACD,IAAK,2BACL,MAAO,SAAkCC,EAAgB,CACvD,KAAK,IAAMA,EAAe,WAAa,KACvC,KAAK,oBAAsBA,EAAe,oBAAsB,KAChE,KAAK,eAAiBA,EAAe,aAC3C,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,IAAIC,EAAS,KACTJ,EAAO,KAAK,KAChB,GAAI,CAACA,EAAM,CACT,KAAK,WAAW,IAAI,MAAM,2CAA2C,CAAC,EACtE,MACR,CACM,GAAI,CAAC,KAAK,QAAQ,UAAY,CAAC,KAAK,QAAQ,WAAa,CAAC,KAAK,IAAK,CAClE,KAAK,WAAW,IAAI,MAAM,uDAAuD,CAAC,EAClF,MACR,CACM,IAAIK,EAAc,KAAK,QAAQ,YAC/B,GAAIA,GAAe,MAAQ,OAAO,UAAU,SAAS,KAAKA,CAAW,IAAM,iBAAkB,CAC3F,KAAK,WAAW,IAAI,MAAM,+DAA+D,CAAC,EAC1F,MACR,CACM,GAAI,KAAK,QAAQ,gBAAkB,EAEjC,QAASC,EAAK,EAAGC,EAAO,CAAC,YAAa,aAAc,sBAAsB,EAAGD,EAAKC,EAAK,OAAQD,IAAM,CACnG,IAAIE,EAAaD,EAAKD,CAAE,EACxB,GAAI,KAAK,QAAQE,CAAU,EAAG,CAC5B,KAAK,WAAW,IAAI,MAAM,uBAAuB,OAAOA,EAAY,yCAAyC,CAAC,CAAC,EAC/G,MACZ,CACA,CAEM,GAAI,KAAK,QAAQ,yBAA0B,CACzC,GAAI,KAAK,QAAQ,iBAAmB,EAAG,CACrC,KAAK,WAAW,IAAI,MAAM,0FAA0F,CAAC,EACrH,MACV,CACQ,GAAI,KAAK,QAAQ,kBAAoB,KAAK,QAAQ,yBAAyB,OAAQ,CACjF,KAAK,WAAW,IAAI,MAAM,iGAAiG,CAAC,EAC5H,MACV,CACA,CACM,KAAK,QAAQ,YAAYR,EAAM,KAAK,OAAO,EAAE,KAAK,SAAUE,EAAa,CAOvE,OADAE,EAAO,aAAeF,EAClBE,EAAO,QACFA,EAAO,QAETA,EAAO,QAAQ,WAAW,SAASJ,EAAMI,EAAO,QAAQ,SAAS,CAChF,CAAO,EAAE,KAAK,SAAUK,EAAQ,CAMxB,GALAL,EAAO,QAAUK,EAKbL,EAAO,QAAQ,qBACjBA,EAAO,MAAQ,aACNA,EAAO,QAAQ,YAAc,MAEtC,GADAA,EAAO,MAAQ,OAAOA,EAAO,QAAQ,UAAU,EAC3C,OAAO,MAAMA,EAAO,KAAK,EAAG,CAC9BA,EAAO,WAAW,IAAI,MAAM,uDAAuD,CAAC,EACpF,MACZ,UAEUA,EAAO,MAAQA,EAAO,QAAQ,KAC1BA,EAAO,OAAS,KAAM,CACxBA,EAAO,WAAW,IAAI,MAAM,uJAAuJ,CAAC,EACpL,MACZ,CAKYA,EAAO,QAAQ,gBAAkB,GAAKA,EAAO,qBAAuB,KACtEA,EAAO,qBAAsB,EAE7BA,EAAO,mBAAoB,CAErC,CAAO,EAAE,MAAS,SAAU7B,EAAK,CACzB6B,EAAO,WAAW7B,CAAG,CAC7B,CAAO,CACP,CAQA,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,IAAImC,EACFC,EAAS,KACPC,EAAY,KAAK,MACjBC,EAAgB,EACpB,KAAK,iBAAmB,CAAE,EAC1B,IAAIC,EAAY,KAAK,qBAAuB,KAAO,KAAK,oBAAoB,OAAS,KAAK,QAAQ,gBAI9FC,GAASL,EAAwB,KAAK,QAAQ,4BAA8B,MAAQA,IAA0B,OAASA,EAAwBM,GAAmB,KAAK,QAAQ,KAAMF,CAAS,EAG9L,KAAK,qBACPC,EAAM,QAAQ,SAAUpL,EAAMiD,EAAO,CACnCjD,EAAK,UAAYgL,EAAO,oBAAoB/H,CAAK,GAAK,IAChE,CAAS,EAIH,KAAK,oBAAsB,IAAI,MAAMmI,EAAM,MAAM,EAIjD,IAAIE,EAAUF,EAAM,IAAI,SAAUpL,EAAMiD,EAAO,CAC7C,IAAIsI,EAAmB,EACvB,OAAOP,EAAO,QAAQ,MAAMhL,EAAK,MAAOA,EAAK,GAAG,EAAE,KAAK,SAAUwL,EAAM,CACrE,IAAItL,EAAQsL,EAAK,MACjB,OAAO,IAAI,QAAQ,SAAUjJ,EAAS8F,EAAQ,CAE5C,IAAIiC,EAAUd,EAAcA,EAAc,CAAE,EAAEwB,EAAO,OAAO,EAAG,GAAI,CAEjE,UAAWhL,EAAK,WAAa,KAG7B,4BAA6B,GAC7B,2BAA4B,GAE5B,gBAAiB,EAEjB,yBAA0B,KAC1B,SAAU,CAAE,EAEZ,QAASwJ,EAAcA,EAAc,CAAE,EAAEwB,EAAO,QAAQ,OAAO,EAAG,GAAI,CACpE,gBAAiB,SACjC,CAAe,EAED,UAAWzI,EACX,QAAS8F,EAGT,WAAY,SAAoBoD,EAAiB,CAC/CP,EAAgBA,EAAgBK,EAAmBE,EACnDF,EAAmBE,EACnBT,EAAO,cAAcE,EAAeD,CAAS,CAC9C,EAGD,qBAAsB,UAAgC,CACpDD,EAAO,oBAAoB/H,CAAK,EAAIyI,EAAO,IAEvCV,EAAO,oBAAoB,OAAO,SAAUzN,EAAG,CACjD,MAAO,EAAQA,CACjC,CAAiB,EAAE,SAAW6N,EAAM,QAClBJ,EAAO,wBAAyB,CAElD,CACA,CAAa,EACGU,EAAS,IAAItB,EAAWlK,EAAOoK,CAAO,EAC1CoB,EAAO,MAAO,EAGdV,EAAO,iBAAiB,KAAKU,CAAM,CAC/C,CAAW,CACX,CAAS,CACT,CAAO,EACGzF,EAGJ,QAAQ,IAAIqF,CAAO,EAAE,KAAK,UAAY,CACpCrF,EAAM+E,EAAO,aAAa,OAAQA,EAAO,QAAQ,QAAQ,EACzD/E,EAAI,UAAU,gBAAiB,SAAS,OAAO+E,EAAO,oBAAoB,KAAK,GAAG,CAAC,CAAC,EAGpF,IAAIW,EAAWC,GAAeZ,EAAO,QAAQ,QAAQ,EACrD,OAAIW,IAAa,IACf1F,EAAI,UAAU,kBAAmB0F,CAAQ,EAEpCX,EAAO,aAAa/E,EAAK,IAAI,CAC5C,CAAO,EAAE,KAAK,SAAUC,EAAK,CACrB,GAAI,CAAC2F,EAAiB3F,EAAI,UAAW,EAAE,GAAG,EAAG,CAC3C8E,EAAO,eAAe/E,EAAKC,EAAK,gDAAgD,EAChF,MACV,CACQ,IAAItE,EAAWsE,EAAI,UAAU,UAAU,EACvC,GAAItE,GAAY,KAAM,CACpBoJ,EAAO,eAAe/E,EAAKC,EAAK,yCAAyC,EACzE,MACV,CACQ8E,EAAO,IAAMc,GAAWd,EAAO,QAAQ,SAAUpJ,CAAQ,EACrD,qBAAqB,OAAOoJ,EAAO,GAAG,EAC1CA,EAAO,aAAc,CAC7B,CAAO,EAAE,MAAS,SAAUpC,EAAK,CACzBoC,EAAO,WAAWpC,CAAG,CAC7B,CAAO,CACP,CAQA,EAAK,CACD,IAAK,qBACL,MAAO,UAA8B,CAOnC,GAHA,KAAK,SAAW,GAGZ,KAAK,KAAO,KAAM,CAChB,sCAAsC,OAAO,KAAK,GAAG,EACzD,KAAK,cAAe,EACpB,MACR,CAGM,GAAI,KAAK,QAAQ,WAAa,KAAM,CAC9B,sCAAsC,OAAO,KAAK,QAAQ,SAAS,EACvE,KAAK,IAAM,KAAK,QAAQ,UACxB,KAAK,cAAe,EACpB,MACR,CAIM,KAAK,cAAe,CAC1B,CAYA,EAAK,CACD,IAAK,QACL,MAAO,SAAemD,EAAiB,CACrC,IAAIC,EAAS,KAoBb,OAlBI,KAAK,kBAAoB,MAC3B,KAAK,iBAAiB,QAAQ,SAAUN,EAAQ,CAC9CA,EAAO,MAAMK,CAAe,CACtC,CAAS,EAIC,KAAK,OAAS,MAChB,KAAK,KAAK,MAAO,EAGnB,KAAK,SAAW,GAGZ,KAAK,eAAiB,OACxB,aAAa,KAAK,aAAa,EAC/B,KAAK,cAAgB,MAEnB,CAACA,GAAmB,KAAK,KAAO,KAC3B,QAAQ,QAAS,EAEnB3B,EAAW,UAAU,KAAK,IAAK,KAAK,OAAO,EAEjD,KAAK,UAAY,CAChB,OAAO4B,EAAO,sBAAuB,CAC7C,CAAO,CACP,CACA,EAAK,CACD,IAAK,iBACL,MAAO,SAAwB/F,EAAKC,EAAKJ,EAASE,EAAY,CAC5D,KAAK,WAAW,IAAIL,GAAcG,EAASE,EAAYC,EAAKC,CAAG,CAAC,CACtE,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAAoB0C,EAAK,CAC9B,IAAIqD,EAAS,KAEb,GAAI,MAAK,SAGT,IAAI,KAAK,QAAQ,aAAe,KAAM,CAIpC,IAAIC,EAAoB,KAAK,SAAW,MAAQ,KAAK,QAAU,KAAK,mBAIpE,GAHIA,IACF,KAAK,cAAgB,GAEnBC,GAAYvD,EAAK,KAAK,cAAe,KAAK,OAAO,EAAG,CACtD,IAAIwD,EAAQ,KAAK,QAAQ,YAAY,KAAK,eAAe,EACzD,KAAK,mBAAqB,KAAK,QAC/B,KAAK,cAAgB,WAAW,UAAY,CAC1CH,EAAO,MAAO,CACf,EAAEG,CAAK,EACR,MACV,CACA,CACM,GAAI,OAAO,KAAK,QAAQ,SAAY,WAClC,KAAK,QAAQ,QAAQxD,CAAG,MAExB,OAAMA,EAEd,CAOA,EAAK,CACD,IAAK,eACL,MAAO,UAAwB,CACzB,KAAK,QAAQ,4BAGf,KAAK,sBAAuB,EAE1B,OAAO,KAAK,QAAQ,WAAc,YACpC,KAAK,QAAQ,UAAW,CAEhC,CAUA,EAAK,CACD,IAAK,gBACL,MAAO,SAAuByD,EAAWC,EAAY,CAC/C,OAAO,KAAK,QAAQ,YAAe,YACrC,KAAK,QAAQ,WAAWD,EAAWC,CAAU,CAErD,CAWA,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BC,EAAWC,EAAeF,EAAY,CACnE,OAAO,KAAK,QAAQ,iBAAoB,YAC1C,KAAK,QAAQ,gBAAgBC,EAAWC,EAAeF,CAAU,CAEzE,CASA,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAIG,EAAS,KACb,GAAI,CAAC,KAAK,QAAQ,SAAU,CAC1B,KAAK,WAAW,IAAI,MAAM,8DAA8D,CAAC,EACzF,MACR,CACM,IAAIxG,EAAM,KAAK,aAAa,OAAQ,KAAK,QAAQ,QAAQ,EACrD,KAAK,QAAQ,qBACfA,EAAI,UAAU,sBAAuB,CAAC,EAEtCA,EAAI,UAAU,gBAAiB,KAAK,KAAK,EAI3C,IAAI0F,EAAWC,GAAe,KAAK,QAAQ,QAAQ,EAC/CD,IAAa,IACf1F,EAAI,UAAU,kBAAmB0F,CAAQ,EAE3C,IAAIe,EACA,KAAK,QAAQ,0BAA4B,CAAC,KAAK,QAAQ,sBACzD,KAAK,QAAU,EACfA,EAAU,KAAK,mBAAmBzG,CAAG,GAErCyG,EAAU,KAAK,aAAazG,EAAK,IAAI,EAEvCyG,EAAQ,KAAK,SAAUxG,EAAK,CAC1B,GAAI,CAAC2F,EAAiB3F,EAAI,UAAW,EAAE,GAAG,EAAG,CAC3CuG,EAAO,eAAexG,EAAKC,EAAK,gDAAgD,EAChF,MACV,CACQ,IAAItE,EAAWsE,EAAI,UAAU,UAAU,EACvC,GAAItE,GAAY,KAAM,CACpB6K,EAAO,eAAexG,EAAKC,EAAK,yCAAyC,EACzE,MACV,CAMQ,GALAuG,EAAO,IAAMX,GAAWW,EAAO,QAAQ,SAAU7K,CAAQ,EACrD,qBAAqB,OAAO6K,EAAO,GAAG,EACtC,OAAOA,EAAO,QAAQ,sBAAyB,YACjDA,EAAO,QAAQ,qBAAsB,EAEnCA,EAAO,QAAU,EAAG,CAEtBA,EAAO,aAAc,EACrBA,EAAO,QAAQ,MAAO,EACtB,MACV,CACQA,EAAO,0BAA0B,KAAK,UAAY,CAC5CA,EAAO,QAAQ,yBACjBA,EAAO,sBAAsBxG,EAAKC,CAAG,GAErCuG,EAAO,QAAU,EACjBA,EAAO,eAAgB,EAEnC,CAAS,CACT,CAAO,EAAE,MAAS,SAAU7D,EAAK,CACzB6D,EAAO,eAAexG,EAAK,KAAM,+BAAgC2C,CAAG,CAC5E,CAAO,CACP,CASA,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAI+D,EAAS,KACT1G,EAAM,KAAK,aAAa,OAAQ,KAAK,GAAG,EACxCyG,EAAU,KAAK,aAAazG,EAAK,IAAI,EACzCyG,EAAQ,KAAK,SAAUxG,EAAK,CAC1B,IAAIG,EAASH,EAAI,UAAW,EAC5B,GAAI,CAAC2F,EAAiBxF,EAAQ,GAAG,EAAG,CAMlC,GAAIA,IAAW,IAAK,CAClBsG,EAAO,eAAe1G,EAAKC,EAAK,8CAA8C,EAC9E,MACZ,CAMU,GALI2F,EAAiBxF,EAAQ,GAAG,GAG9BsG,EAAO,sBAAuB,EAE5B,CAACA,EAAO,QAAQ,SAAU,CAE5BA,EAAO,eAAe1G,EAAKC,EAAK,iFAAiF,EACjH,MACZ,CAGUyG,EAAO,IAAM,KACbA,EAAO,cAAe,EACtB,MACV,CACQ,IAAI5O,EAAS,SAASmI,EAAI,UAAU,eAAe,EAAG,EAAE,EACxD,GAAI,OAAO,MAAMnI,CAAM,EAAG,CACxB4O,EAAO,eAAe1G,EAAKC,EAAK,sCAAsC,EACtE,MACV,CACQ,IAAI0G,EAAS,SAAS1G,EAAI,UAAU,eAAe,EAAG,EAAE,EACxD,GAAI,OAAO,MAAM0G,CAAM,GAAK,CAACD,EAAO,QAAQ,qBAAsB,CAChEA,EAAO,eAAe1G,EAAKC,EAAK,sCAAsC,EACtE,MACV,CACY,OAAOyG,EAAO,QAAQ,sBAAyB,YACjDA,EAAO,QAAQ,qBAAsB,EAEvCA,EAAO,0BAA0B,KAAK,UAAY,CAGhD,GAAI5O,IAAW6O,EAAQ,CACrBD,EAAO,cAAcC,EAAQA,CAAM,EACnCD,EAAO,aAAc,EACrB,MACZ,CACUA,EAAO,QAAU5O,EACjB4O,EAAO,eAAgB,CACjC,CAAS,CACT,CAAO,EAAE,MAAS,SAAU/D,EAAK,CACzB+D,EAAO,eAAe1G,EAAK,KAAM,+BAAgC2C,CAAG,CAC5E,CAAO,CACP,CASA,EAAK,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,IAAIiE,EAAS,KAIb,GAAI,MAAK,SAGT,KAAI5G,EAKA,KAAK,QAAQ,qBACfA,EAAM,KAAK,aAAa,OAAQ,KAAK,GAAG,EACxCA,EAAI,UAAU,yBAA0B,OAAO,GAE/CA,EAAM,KAAK,aAAa,QAAS,KAAK,GAAG,EAE3CA,EAAI,UAAU,gBAAiB,KAAK,OAAO,EAC3C,IAAIyG,EAAU,KAAK,mBAAmBzG,CAAG,EACzCyG,EAAQ,KAAK,SAAUxG,EAAK,CAC1B,GAAI,CAAC2F,EAAiB3F,EAAI,UAAW,EAAE,GAAG,EAAG,CAC3C2G,EAAO,eAAe5G,EAAKC,EAAK,gDAAgD,EAChF,MACV,CACQ2G,EAAO,sBAAsB5G,EAAKC,CAAG,CAC7C,CAAO,EAAE,MAAS,SAAU0C,EAAK,CAErBiE,EAAO,UAGXA,EAAO,eAAe5G,EAAK,KAAM,yCAAyC,OAAO4G,EAAO,OAAO,EAAGjE,CAAG,CAC7G,CAAO,EACP,CAQA,EAAK,CACD,IAAK,qBACL,MAAO,SAA4B3C,EAAK,CACtC,IAAI6G,EAAS,KACTC,EAAQ,KAAK,QACbC,EAAM,KAAK,QAAU,KAAK,QAAQ,UACtC,OAAA/G,EAAI,mBAAmB,SAAUoG,EAAW,CAC1CS,EAAO,cAAcC,EAAQV,EAAWS,EAAO,KAAK,CAC5D,CAAO,EACD7G,EAAI,UAAU,eAAgB,iCAAiC,GAK1D+G,IAAQ,KAAYA,EAAM,KAAK,QAAU,CAAC,KAAK,QAAQ,uBAC1DA,EAAM,KAAK,OAEN,KAAK,QAAQ,MAAMD,EAAOC,CAAG,EAAE,KAAK,SAAUC,EAAO,CAC1D,IAAI/M,EAAQ+M,EAAM,MAChBC,EAAOD,EAAM,KACXE,EAAYjN,GAASA,EAAM,KAAOA,EAAM,KAAO,EAK/C4M,EAAO,QAAQ,sBAAwBI,IACzCJ,EAAO,MAAQA,EAAO,QAAUK,EAChClH,EAAI,UAAU,gBAAiB6G,EAAO,KAAK,GAQ7C,IAAIM,EAAUN,EAAO,QAAUK,EAC/B,MAAI,CAACL,EAAO,QAAQ,sBAAwBI,GAAQE,IAAYN,EAAO,MAC9D,QAAQ,OAAO,IAAI,MAAM,wCAAwC,OAAOA,EAAO,MAAO,uCAAuC,EAAE,OAAOM,EAAS,QAAQ,CAAC,CAAC,EAE9JlN,IAAU,KACL4M,EAAO,aAAa7G,CAAG,GAEhC6G,EAAO,cAAcA,EAAO,QAASA,EAAO,KAAK,EAC1CA,EAAO,aAAa7G,EAAK/F,CAAK,EAC7C,CAAO,CACP,CAQA,EAAK,CACD,IAAK,wBACL,MAAO,SAA+B+F,EAAKC,EAAK,CAC9C,IAAInI,EAAS,SAASmI,EAAI,UAAU,eAAe,EAAG,EAAE,EACxD,GAAI,OAAO,MAAMnI,CAAM,EAAG,CACxB,KAAK,eAAekI,EAAKC,EAAK,sCAAsC,EACpE,MACR,CAIM,GAHA,KAAK,cAAcnI,EAAQ,KAAK,KAAK,EACrC,KAAK,mBAAmBA,EAAS,KAAK,QAASA,EAAQ,KAAK,KAAK,EACjE,KAAK,QAAUA,EACXA,IAAW,KAAK,MAAO,CAEzB,KAAK,aAAc,EACnB,KAAK,QAAQ,MAAO,EACpB,MACR,CACM,KAAK,eAAgB,CAC3B,CAOA,EAAK,CACD,IAAK,eACL,MAAO,SAAsBqI,EAAQ/E,EAAK,CACxC,IAAI4E,EAAMoH,GAAYjH,EAAQ/E,EAAK,KAAK,OAAO,EAC/C,YAAK,KAAO4E,EACLA,CACb,CAOA,EAAK,CACD,IAAK,wBACL,MAAO,UAAiC,CACtC,IAAIqH,EAAU,KACT,KAAK,iBACV,KAAK,YAAY,aAAa,KAAK,cAAc,EAAE,MAAS,SAAU1E,EAAK,CACzE0E,EAAQ,WAAW1E,CAAG,CAC9B,CAAO,EACD,KAAK,eAAiB,KAC5B,CAOA,EAAK,CACD,IAAK,0BACL,MAAO,UAAmC,CACxC,IAAI2E,EAAU,KAKd,GAAI,CAAC,KAAK,QAAQ,6BAA+B,CAAC,KAAK,cAAgB,KAAK,iBAAmB,KAC7F,OAAO,QAAQ,QAAS,EAE1B,IAAIC,EAAe,CACjB,KAAM,KAAK,MACX,SAAU,KAAK,QAAQ,SACvB,aAAc,IAAI,KAAI,EAAG,SAAQ,CAClC,EACD,OAAI,KAAK,iBAEPA,EAAa,mBAAqB,KAAK,oBAGvCA,EAAa,UAAY,KAAK,IAEzB,KAAK,YAAY,UAAU,KAAK,aAAcA,CAAY,EAAE,KAAK,SAAUC,EAAe,CAC/FF,EAAQ,eAAiBE,CACjC,CAAO,CACP,CAOA,EAAK,CACD,IAAK,eACL,MAAO,SAAsBxH,EAAK,CAChC,IAAI/G,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAC/E,OAAOwO,GAAYzH,EAAK/G,EAAM,KAAK,OAAO,CAChD,CACG,CAAA,EAAG,CAAC,CACH,IAAK,YACL,MAAO,SAAmBmC,EAAK,CAC7B,IAAIiJ,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAChFrE,EAAMoH,GAAY,SAAUhM,EAAKiJ,CAAO,EAC5C,OAAOoD,GAAYzH,EAAK,KAAMqE,CAAO,EAAE,KAAK,SAAUpE,EAAK,CAEzD,GAAIA,EAAI,UAAW,IAAK,IAGxB,MAAM,IAAIP,GAAc,oDAAqD,KAAMM,EAAKC,CAAG,CACnG,CAAO,EAAE,MAAS,SAAU0C,EAAK,CAIzB,GAHMA,aAAejD,KACnBiD,EAAM,IAAIjD,GAAc,kCAAmCiD,EAAK3C,EAAK,IAAI,GAEvE,CAACkG,GAAYvD,EAAK,EAAG0B,CAAO,EAC9B,MAAM1B,EAMR,IAAIwD,EAAQ9B,EAAQ,YAAY,CAAC,EAC7BqD,EAAkBrD,EAAQ,YAAY,MAAM,CAAC,EAC7CsD,EAAapE,EAAcA,EAAc,CAAA,EAAIc,CAAO,EAAG,GAAI,CAC7D,YAAaqD,CACvB,CAAS,EACD,OAAO,IAAI,QAAQ,SAAUpL,EAAS,CACpC,OAAO,WAAWA,EAAS6J,CAAK,CAC1C,CAAS,EAAE,KAAK,UAAY,CAClB,OAAOhC,EAAW,UAAU/I,EAAKuM,CAAU,CACrD,CAAS,CACT,CAAO,CACP,CACA,CAAG,CAAC,EACKxD,CACT,EAAG,EACH,SAASwB,GAAeD,EAAU,CAChC,OAAO,OAAO,QAAQA,CAAQ,EAAE,IAAI,SAAUkC,EAAO,CACnD,IAAIC,EAAQjF,GAAegF,EAAO,CAAC,EACjC5N,EAAM6N,EAAM,CAAC,EACb5N,EAAQ4N,EAAM,CAAC,EACjB,MAAO,GAAG,OAAO7N,EAAK,GAAG,EAAE,OAAO8N,GAAO,OAAO,OAAO7N,CAAK,CAAC,CAAC,CAClE,CAAG,EAAE,KAAK,GAAG,CACb,CAQA,SAAS2L,EAAiBxF,EAAQ2H,EAAU,CAC1C,OAAO3H,GAAU2H,GAAY3H,EAAS2H,EAAW,GACnD,CASA,SAASX,GAAYjH,EAAQ/E,EAAKiJ,EAAS,CACzC,IAAIrE,EAAMqE,EAAQ,UAAU,cAAclE,EAAQ/E,CAAG,EACrD4E,EAAI,UAAU,gBAAiB,OAAO,EACtC,IAAIgI,EAAU3D,EAAQ,SAAW,CAAE,EAOnC,GANA,OAAO,QAAQ2D,CAAO,EAAE,QAAQ,SAAUC,EAAO,CAC/C,IAAIC,EAAQtF,GAAeqF,EAAO,CAAC,EACjCjP,EAAOkP,EAAM,CAAC,EACdjO,EAAQiO,EAAM,CAAC,EACjBlI,EAAI,UAAUhH,EAAMiB,CAAK,CAC7B,CAAG,EACGoK,EAAQ,aAAc,CACxB,IAAInE,EAAYG,GAAM,EACtBL,EAAI,UAAU,eAAgBE,CAAS,CAC3C,CACE,OAAOF,CACT,CAQA,SAASyH,GAAYU,EAAIC,EAAKC,EAAK,CACjC,OAAOC,GAAc,MAAM,KAAM,SAAS,CAC5C,CAOA,SAASA,IAAgB,CACvB,OAAAA,GAAgB5F,GAAgCnC,KAAsB,KAAK,SAASgI,EAAQvI,EAAK/G,EAAMoL,EAAS,CAC9G,IAAIpE,EACJ,OAAOM,GAAmB,EAAG,KAAK,SAAkBiI,EAAU,CAC5D,OAAU,OAAQA,EAAS,KAAOA,EAAS,KAAI,CAC7C,IAAK,GACH,GAAM,OAAOnE,EAAQ,iBAAoB,WAAa,CACpDmE,EAAS,KAAO,EAChB,KACZ,CACU,OAAAA,EAAS,KAAO,EACTnE,EAAQ,gBAAgBrE,CAAG,EACpC,IAAK,GACH,OAAAwI,EAAS,KAAO,EACTxI,EAAI,KAAK/G,CAAI,EACtB,IAAK,GAEH,GADAgH,EAAMuI,EAAS,KACT,OAAOnE,EAAQ,iBAAoB,WAAa,CACpDmE,EAAS,KAAO,EAChB,KACZ,CACU,OAAAA,EAAS,KAAO,EACTnE,EAAQ,gBAAgBrE,EAAKC,CAAG,EACzC,IAAK,GACH,OAAOuI,EAAS,OAAO,SAAUvI,CAAG,EACtC,IAAK,IACL,IAAK,MACH,OAAOuI,EAAS,KAAM,CAChC,CACK,EAAED,CAAO,CACd,CAAG,CAAC,EACKD,GAAc,MAAM,KAAM,SAAS,CAC5C,CACA,SAASG,IAAW,CAClB,IAAIC,EAAS,GACb,OAAI,OAAO,OAAW,KAEtB,cAAe,QAEf,OAAO,UAAU,SAAW,KAE1BA,EAAS,IAEJA,CACT,CAUA,SAASxC,GAAYvD,EAAKgG,EAActE,EAAS,CAQ/C,OAAIA,EAAQ,aAAe,MAAQsE,GAAgBtE,EAAQ,YAAY,QAAU1B,EAAI,iBAAmB,KAC/F,GAEL0B,GAAW,OAAOA,EAAQ,eAAkB,WACvCA,EAAQ,cAAc1B,EAAKgG,EAActE,CAAO,EAElDH,GAAqBvB,CAAG,CACjC,CAOA,SAASuB,GAAqBvB,EAAK,CACjC,IAAIvC,EAASuC,EAAI,iBAAmBA,EAAI,iBAAiB,UAAS,EAAK,EACvE,OAAQ,CAACiD,EAAiBxF,EAAQ,GAAG,GAAKA,IAAW,KAAOA,IAAW,MAAQqI,GAAU,CAC3F,CAQA,SAAS5C,GAAW+C,EAAQC,EAAM,CAChC,OAAO,IAAIC,GAAID,EAAMD,CAAM,EAAE,SAAU,CACzC,CAWA,SAASxD,GAAmBJ,EAAWE,EAAW,CAGhD,QAFI6D,EAAW,KAAK,MAAM/D,EAAYE,CAAS,EAC3CC,EAAQ,CAAE,EACL1P,EAAI,EAAGA,EAAIyP,EAAWzP,IAC7B0P,EAAM,KAAK,CACT,MAAO4D,EAAWtT,EAClB,IAAKsT,GAAYtT,EAAI,EAC3B,CAAK,EAEH,OAAA0P,EAAMD,EAAY,CAAC,EAAE,IAAMF,EACpBG,CACT,CACAhB,GAAW,eAAiBF,GCthC5B,SAASvG,GAAQC,EAAG,CAAE,0BAA2B,OAAOD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,GAAQC,CAAC,CAAE,CAC5T,SAASK,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAY4F,GAAkB7F,EAAY,UAAWC,CAAU,EAAiE,OAAO,eAAeD,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAC3R,SAAS4F,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,GAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,GAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,CAAiB,EAAG,GAAIrG,GAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAI,CAAC,OAA4B,OAAiBvG,CAAK,CAAE,CAE3X,IAAIsP,GAA8B,UAAY,CAC5C,SAASA,GAAiB,CACxBhL,GAAgB,KAAMgL,CAAc,CACxC,CACEpL,OAAAA,GAAaoL,EAAgB,CAAC,CAC5B,IAAK,iBACL,MAAO,UAA0B,CAC/B,OAAO,QAAQ,QAAQ,EAAE,CAC/B,CACA,EAAK,CACD,IAAK,2BACL,MAAO,SAAkC1E,EAAa,CACpD,OAAO,QAAQ,QAAQ,EAAE,CAC/B,CACA,EAAK,CACD,IAAK,eACL,MAAO,SAAsBkD,EAAe,CAC1C,OAAO,QAAQ,QAAS,CAC9B,CACA,EAAK,CACD,IAAK,YACL,MAAO,SAAmBlD,EAAamB,EAAQ,CAC7C,OAAO,QAAQ,QAAQ,IAAI,CACjC,CACA,CAAG,CAAC,EACKuD,CACT,EAAG,ECjCH,SAAStL,GAAQC,EAAG,CAAE,0BAA2B,OAAOD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,GAAQC,CAAC,CAAE,CAC5T,SAASK,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAY4F,GAAkB7F,EAAY,UAAWC,CAAU,EAAiE,OAAO,eAAeD,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAC3R,SAAS4F,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,GAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,GAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,CAAiB,EAAG,GAAIrG,GAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAI,CAAC,OAA4B,OAAiBvG,CAAK,CAAE,CAC3X,IAAIuP,GAAa,GACjB,GAAI,CACFA,GAAa,iBAAkB,OAM/B,IAAIjP,GAAM,aACNkP,GAAgB,aAAa,QAAQlP,EAAG,EAC5C,aAAa,QAAQA,GAAKkP,EAAa,EACnCA,KAAkB,MAAM,aAAa,WAAWlP,EAAG,CACzD,OAAS,EAAG,CAIV,GAAI,EAAE,OAAS,EAAE,cAAgB,EAAE,OAAS,EAAE,mBAC5CiP,GAAa,OAEb,OAAM,CAEV,CACO,IAAIE,GAAeF,GACfG,GAAoC,UAAY,CACzD,SAASA,GAAuB,CAC9BpL,GAAgB,KAAMoL,CAAoB,CAC9C,CACExL,OAAAA,GAAawL,EAAsB,CAAC,CAClC,IAAK,iBACL,MAAO,UAA0B,CAC/B,IAAIC,EAAU,KAAK,aAAa,OAAO,EACvC,OAAO,QAAQ,QAAQA,CAAO,CACpC,CACA,EAAK,CACD,IAAK,2BACL,MAAO,SAAkC/E,EAAa,CACpD,IAAI+E,EAAU,KAAK,aAAa,QAAQ,OAAO/E,EAAa,IAAI,CAAC,EACjE,OAAO,QAAQ,QAAQ+E,CAAO,CACpC,CACA,EAAK,CACD,IAAK,eACL,MAAO,SAAsB7B,EAAe,CAC1C,oBAAa,WAAWA,CAAa,EAC9B,QAAQ,QAAS,CAC9B,CACA,EAAK,CACD,IAAK,YACL,MAAO,SAAmBlD,EAAamB,EAAQ,CAC7C,IAAI6D,EAAK,KAAK,MAAM,KAAK,OAAQ,EAAG,IAAI,EACpCtP,EAAM,QAAQ,OAAOsK,EAAa,IAAI,EAAE,OAAOgF,CAAE,EACrD,oBAAa,QAAQtP,EAAK,KAAK,UAAUyL,CAAM,CAAC,EACzC,QAAQ,QAAQzL,CAAG,CAChC,CACA,EAAK,CACD,IAAK,eACL,MAAO,SAAsBI,EAAQ,CAEnC,QADIiP,EAAU,CAAE,EACP5T,EAAI,EAAGA,EAAI,aAAa,OAAQA,IAAK,CAC5C,IAAI8T,EAAO,aAAa,IAAI9T,CAAC,EAC7B,GAAI8T,EAAK,QAAQnP,CAAM,IAAM,EAC7B,GAAI,CACF,IAAIqL,EAAS,KAAK,MAAM,aAAa,QAAQ8D,CAAI,CAAC,EAClD9D,EAAO,cAAgB8D,EACvBF,EAAQ,KAAK5D,CAAM,CACpB,MAAW,CAGpB,CACA,CACM,OAAO4D,CACb,CACA,CAAG,CAAC,EACKD,CACT,EAAG,EC/EH,SAAS1L,GAAQC,EAAG,CAAE,0BAA2B,OAAOD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,GAAQC,CAAC,CAAE,CAC5T,SAASK,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAY4F,GAAkB7F,EAAY,UAAWC,CAAU,EAAiE,OAAO,eAAeD,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAC3R,SAAS4F,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,GAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,GAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,CAAiB,EAAG,GAAIrG,GAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAI,CAAC,OAA4B,OAAiBvG,CAAK,CAAE,CAE3X,IAAI8P,GAA4B,UAAY,CAC1C,SAASA,GAAe,CACtBxL,GAAgB,KAAMwL,CAAY,CACtC,CACE5L,OAAAA,GAAa4L,EAAc,CAAC,CAC1B,IAAK,gBACL,MAAO,SAAuBrJ,EAAQ/E,EAAK,CACzC,OAAO,IAAIqO,GAAQtJ,EAAQ/E,CAAG,CACpC,CACA,EAAK,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,MAAO,cACb,CACA,CAAG,CAAC,EACKoO,CACT,EAAG,EAECC,GAAuB,UAAY,CACrC,SAASA,EAAQtJ,EAAQ/E,EAAK,CAC5B4C,GAAgB,KAAMyL,CAAO,EAC7B,KAAK,KAAO,IAAI,eAChB,KAAK,KAAK,KAAKtJ,EAAQ/E,EAAK,EAAI,EAChC,KAAK,QAAU+E,EACf,KAAK,KAAO/E,EACZ,KAAK,SAAW,CAAE,CACtB,CACEwC,OAAAA,GAAa6L,EAAS,CAAC,CACrB,IAAK,YACL,MAAO,UAAqB,CAC1B,OAAO,KAAK,OAClB,CACA,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,OAAO,KAAK,IAClB,CACA,EAAK,CACD,IAAK,YACL,MAAO,SAAmBC,EAAQzP,EAAO,CACvC,KAAK,KAAK,iBAAiByP,EAAQzP,CAAK,EACxC,KAAK,SAASyP,CAAM,EAAIzP,CAC9B,CACA,EAAK,CACD,IAAK,YACL,MAAO,SAAmByP,EAAQ,CAChC,OAAO,KAAK,SAASA,CAAM,CACjC,CACA,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BC,EAAiB,CAE5C,WAAY,KAAK,OAGvB,KAAK,KAAK,OAAO,WAAa,SAAUnJ,EAAG,CACpCA,EAAE,kBAGPmJ,EAAgBnJ,EAAE,MAAM,CACzB,EACP,CACA,EAAK,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,IAAIV,EAAQ,KACR7G,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAC/E,OAAO,IAAI,QAAQ,SAAUqD,EAAS8F,EAAQ,CAC5CtC,EAAM,KAAK,OAAS,UAAY,CAC9BxD,EAAQ,IAAIsN,GAAS9J,EAAM,IAAI,CAAC,CACjC,EACDA,EAAM,KAAK,QAAU,SAAU6C,EAAK,CAClCP,EAAOO,CAAG,CACX,EACD7C,EAAM,KAAK,KAAK7G,CAAI,CAC5B,CAAO,CACP,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,YAAK,KAAK,MAAO,EACV,QAAQ,QAAS,CAC9B,CACA,EAAK,CACD,IAAK,sBACL,MAAO,UAA+B,CACpC,OAAO,KAAK,IAClB,CACA,CAAG,CAAC,EACKwQ,CACT,EAAG,EACCG,GAAwB,UAAY,CACtC,SAASA,EAASC,EAAK,CACrB7L,GAAgB,KAAM4L,CAAQ,EAC9B,KAAK,KAAOC,CAChB,CACEjM,OAAAA,GAAagM,EAAU,CAAC,CACtB,IAAK,YACL,MAAO,UAAqB,CAC1B,OAAO,KAAK,KAAK,MACvB,CACA,EAAK,CACD,IAAK,YACL,MAAO,SAAmBF,EAAQ,CAChC,OAAO,KAAK,KAAK,kBAAkBA,CAAM,CAC/C,CACA,EAAK,CACD,IAAK,UACL,MAAO,UAAmB,CACxB,OAAO,KAAK,KAAK,YACvB,CACA,EAAK,CACD,IAAK,sBACL,MAAO,UAA+B,CACpC,OAAO,KAAK,IAClB,CACA,CAAG,CAAC,EACKE,CACT,EAAG,EC7HCE,GAAgB,UAAyB,CAC3C,OAAO,OAAO,UAAc,KAAe,OAAO,UAAU,SAAY,UAAY,UAAU,QAAQ,YAAW,IAAO,aAC1H,ECGe,SAASC,GAAUC,EAAK,CACrC,OAAO,IAAI,QAAQ,SAAU1N,EAAS8F,EAAQ,CAC5C,IAAIyH,EAAM,IAAI,eACdA,EAAI,aAAe,OACnBA,EAAI,OAAS,UAAY,CACvB,IAAII,EAAOJ,EAAI,SACfvN,EAAQ2N,CAAI,CACb,EACDJ,EAAI,QAAU,SAAUlH,EAAK,CAC3BP,EAAOO,CAAG,CACX,EACDkH,EAAI,KAAK,MAAOG,CAAG,EACnBH,EAAI,KAAM,CACd,CAAG,CACH,CCnBA,IAAIK,GAAY,UAAqB,CACnC,OAAO,OAAO,OAAW,MAAgB,OAAO,OAAO,SAAa,KAAe,OAAO,OAAO,QAAY,KAAe,OAAO,OAAO,QAAY,IACxJ,ECGe,SAASC,GAAgBC,EAAO,CAC7C,OAAO,IAAI,QAAQ,SAAU9N,EAAS8F,EAAQ,CAC5C,IAAIiI,EAAS,IAAI,WACjBA,EAAO,OAAS,UAAY,CAC1B,IAAIpQ,EAAQ,IAAI,WAAWoQ,EAAO,MAAM,EACxC/N,EAAQ,CACN,MAAOrC,CACf,CAAO,CACF,EACDoQ,EAAO,QAAU,SAAU1H,EAAK,CAC9BP,EAAOO,CAAG,CACX,EACD0H,EAAO,kBAAkBD,CAAK,CAClC,CAAG,CACH,CCnBA,SAAS1M,GAAQC,EAAG,CAAE,0BAA2B,OAAOD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,GAAQC,CAAC,CAAE,CAC5T,SAASK,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAY4F,GAAkB7F,EAAY,UAAWC,CAAU,EAAiE,OAAO,eAAeD,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAC3R,SAAS4F,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,GAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,GAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,CAAiB,EAAG,GAAIrG,GAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAI,CAAC,OAA4B,OAAiBvG,CAAK,CAAE,CAG3X,IAAI4Q,GAA0B,UAAY,CAExC,SAASA,EAAWlG,EAAM,CACxBpG,GAAgB,KAAMsM,CAAU,EAChC,KAAK,MAAQlG,EACb,KAAK,KAAOA,EAAK,IACrB,CACExG,OAAAA,GAAa0M,EAAY,CAAC,CACxB,IAAK,QACL,MAAO,SAAexD,EAAOC,EAAK,CAIhC,GAAImD,GAAS,EACX,OAAOC,GAAgB,KAAK,MAAM,MAAMrD,EAAOC,CAAG,CAAC,EAErD,IAAI9M,EAAQ,KAAK,MAAM,MAAM6M,EAAOC,CAAG,EACnCE,EAAOF,GAAO,KAAK,KACvB,OAAO,QAAQ,QAAQ,CACrB,MAAO9M,EACP,KAAMgN,CACd,CAAO,CACP,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CAE5B,CACA,CAAG,CAAC,EACKqD,CACT,EAAG,ECtCH,SAAS5M,GAAQC,EAAG,CAAE,0BAA2B,OAAOD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,GAAQC,CAAC,CAAE,CAC5T,SAASK,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAY4F,GAAkB7F,EAAY,UAAWC,CAAU,EAAiE,OAAO,eAAeD,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAC3R,SAAS4F,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,GAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,GAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,CAAiB,EAAG,GAAIrG,GAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAI,CAAC,OAA4B,OAAiBvG,CAAK,CAAE,CAC3X,SAAS0J,GAAImH,EAAa,CACxB,OAAIA,IAAgB,OAAkB,EAClCA,EAAY,OAAS,OAAkBA,EAAY,KAChDA,EAAY,MACrB,CAMA,SAASC,GAAOlV,EAAG0C,EAAG,CACpB,GAAI1C,EAAE,OAEJ,OAAOA,EAAE,OAAO0C,CAAC,EAEnB,GAAI1C,aAAa,KACf,OAAO,IAAI,KAAK,CAACA,EAAG0C,CAAC,EAAG,CACtB,KAAM1C,EAAE,IACd,CAAK,EAEH,GAAIA,EAAE,IAAK,CAET,IAAIE,EAAI,IAAIF,EAAE,YAAYA,EAAE,OAAS0C,EAAE,MAAM,EAC7C,OAAAxC,EAAE,IAAIF,CAAC,EACPE,EAAE,IAAIwC,EAAG1C,EAAE,MAAM,EACVE,CACX,CACE,MAAM,IAAI,MAAM,mBAAmB,CACrC,CACA,IAAIiV,GAA4B,UAAY,CAC1C,SAASA,EAAaJ,EAAQ,CAC5BrM,GAAgB,KAAMyM,CAAY,EAClC,KAAK,QAAU,OACf,KAAK,cAAgB,EACrB,KAAK,QAAUJ,EACf,KAAK,MAAQ,EACjB,CACEzM,OAAAA,GAAa6M,EAAc,CAAC,CAC1B,IAAK,QACL,MAAO,SAAe3D,EAAOC,EAAK,CAChC,OAAID,EAAQ,KAAK,cACR,QAAQ,OAAO,IAAI,MAAM,sDAAsD,CAAC,EAElF,KAAK,2BAA2BA,EAAOC,CAAG,CACvD,CACA,EAAK,CACD,IAAK,6BACL,MAAO,SAAoCD,EAAOC,EAAK,CACrD,IAAIjH,EAAQ,KACR4K,EAAgB3D,GAAO,KAAK,cAAgB3D,GAAI,KAAK,OAAO,EAChE,GAAI,KAAK,OAASsH,EAAe,CAC/B,IAAIzQ,EAAQ,KAAK,mBAAmB6M,EAAOC,CAAG,EAC1CE,EAAOhN,GAAS,KAAO,KAAK,MAAQ,GACxC,OAAO,QAAQ,QAAQ,CACrB,MAAOA,EACP,KAAMgN,CAChB,CAAS,CACT,CACM,OAAO,KAAK,QAAQ,KAAM,EAAC,KAAK,SAAU1B,EAAM,CAC9C,IAAItL,EAAQsL,EAAK,MACf0B,EAAO1B,EAAK,KACd,OAAI0B,EACFnH,EAAM,MAAQ,GACLA,EAAM,UAAY,OAC3BA,EAAM,QAAU7F,EAEhB6F,EAAM,QAAU0K,GAAO1K,EAAM,QAAS7F,CAAK,EAEtC6F,EAAM,2BAA2BgH,EAAOC,CAAG,CAC1D,CAAO,CACP,CACA,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BD,EAAOC,EAAK,CAIzCD,EAAQ,KAAK,gBACf,KAAK,QAAU,KAAK,QAAQ,MAAMA,EAAQ,KAAK,aAAa,EAC5D,KAAK,cAAgBA,GAGvB,IAAI6D,EAAqBvH,GAAI,KAAK,OAAO,IAAM,EAC/C,OAAI,KAAK,OAASuH,EACT,KAIF,KAAK,QAAQ,MAAM,EAAG5D,EAAMD,CAAK,CAC9C,CACA,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CAClB,KAAK,QAAQ,QACf,KAAK,QAAQ,OAAQ,CAE7B,CACA,CAAG,CAAC,EACK2D,CACT,EAAG,ECzGH,SAAS/M,EAAQC,EAAG,CAAE,0BAA2B,OAAOD,EAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,EAAQC,CAAC,CAAE,CAC5T,SAAS4C,IAAsB,qJAAqKA,GAAsB,UAA+B,CAAE,OAAOC,CAAE,EAAI,IAAIC,EAAGD,EAAI,CAAA,EAAI,EAAI,OAAO,UAAW,EAAI,EAAE,eAAgB,EAAI,OAAO,gBAAkB,SAAUC,EAAGD,EAAGF,EAAG,CAAEG,EAAED,CAAC,EAAIF,EAAE,KAAM,EAAI7K,EAAkB,OAAO,QAArB,WAA8B,OAAS,CAAA,EAAIH,EAAIG,EAAE,UAAY,aAAcD,EAAIC,EAAE,eAAiB,kBAAmB6B,EAAI7B,EAAE,aAAe,gBAAiB,SAASiL,EAAOD,EAAGD,EAAGF,EAAG,CAAE,OAAO,OAAO,eAAeG,EAAGD,EAAG,CAAE,MAAOF,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAGG,EAAED,CAAC,CAAI,CAAC,GAAI,CAAEE,EAAO,CAAA,EAAI,EAAE,CAAI,MAAW,CAAEA,EAAS,SAAgBD,EAAGD,EAAGF,EAAG,CAAE,OAAOG,EAAED,CAAC,EAAIF,CAAE,CAAK,CAAC,SAASK,EAAKF,EAAGD,EAAGF,EAAGM,EAAG,CAAE,IAAInL,EAAI+K,GAAKA,EAAE,qBAAqBK,EAAYL,EAAIK,EAAWvL,EAAI,OAAO,OAAOG,EAAE,SAAS,EAAGD,EAAI,IAAIsL,EAAQF,GAAK,EAAE,EAAG,OAAO,EAAEtL,EAAG,UAAW,CAAE,MAAOyL,GAAiBN,EAAGH,EAAG9K,CAAC,EAAG,EAAGF,CAAE,CAAG,SAAS0L,EAASP,EAAGD,EAAGF,EAAG,CAAE,GAAI,CAAE,MAAO,CAAE,KAAM,SAAU,IAAKG,EAAE,KAAKD,EAAGF,CAAC,CAAG,QAAWG,EAAG,CAAE,MAAO,CAAE,KAAM,QAAS,IAAKA,CAAG,EAAK,CAACD,EAAE,KAAOG,EAAM,IAAIM,EAAI,iBAAkBlK,EAAI,iBAAkBmK,EAAI,YAAahL,EAAI,YAAaiL,EAAI,CAAE,EAAE,SAASN,GAAY,CAAA,CAAG,SAASO,GAAoB,CAAE,CAAC,SAASC,GAA6B,EAAG,IAAI5B,EAAI,CAAA,EAAIiB,EAAOjB,EAAGnK,EAAG,UAAY,CAAE,OAAO,IAAK,CAAE,EAAG,IAAIgM,EAAI,OAAO,eAAgBzI,EAAIyI,GAAKA,EAAEA,EAAEC,EAAO,CAAE,CAAA,CAAC,CAAC,EAAG1I,GAAKA,IAAM,GAAK,EAAE,KAAKA,EAAGvD,CAAC,IAAMmK,EAAI5G,GAAI,IAAI2I,EAAIH,EAA2B,UAAYR,EAAU,UAAY,OAAO,OAAOpB,CAAC,EAAG,SAASgC,EAAsBhB,EAAG,CAAE,CAAC,OAAQ,QAAS,QAAQ,EAAE,QAAQ,SAAUD,EAAG,CAAEE,EAAOD,EAAGD,EAAG,SAAUC,EAAG,CAAE,OAAO,KAAK,QAAQD,EAAGC,CAAC,EAAI,EAAI,EAAK,SAASiB,EAAcjB,EAAGD,EAAG,CAAE,SAASmB,EAAOrB,EAAG3C,EAAGlI,EAAGH,EAAG,CAAE,IAAIE,EAAIwL,EAASP,EAAEH,CAAC,EAAGG,EAAG9C,CAAC,EAAG,GAAgBnI,EAAE,OAAd,QAAoB,CAAE,IAAI8B,EAAI9B,EAAE,IAAKyL,EAAI3J,EAAE,MAAO,OAAO2J,GAAiBvD,EAAQuD,CAAC,GAArB,UAA0B,EAAE,KAAKA,EAAG,SAAS,EAAIT,EAAE,QAAQS,EAAE,OAAO,EAAE,KAAK,SAAUR,EAAG,CAAEkB,EAAO,OAAQlB,EAAGhL,EAAGH,CAAC,CAAI,EAAE,SAAUmL,EAAG,CAAEkB,EAAO,QAASlB,EAAGhL,EAAGH,CAAC,CAAI,CAAA,EAAIkL,EAAE,QAAQS,CAAC,EAAE,KAAK,SAAUR,EAAG,CAAEnJ,EAAE,MAAQmJ,EAAGhL,EAAE6B,CAAC,GAAM,SAAUmJ,EAAG,CAAE,OAAOkB,EAAO,QAASlB,EAAGhL,EAAGH,CAAC,CAAI,CAAA,CAAE,CAAGA,EAAEE,EAAE,GAAG,CAAE,CAAG,IAAI8K,EAAG,EAAE,KAAM,UAAW,CAAE,MAAO,SAAeG,EAAGG,EAAG,CAAE,SAASgB,GAA6B,CAAE,OAAO,IAAIpB,EAAE,SAAUA,EAAGF,EAAG,CAAEqB,EAAOlB,EAAGG,EAAGJ,EAAGF,CAAC,CAAI,CAAA,CAAI,CAAC,OAAOA,EAAIA,EAAIA,EAAE,KAAKsB,EAA4BA,CAA0B,EAAIA,EAA4B,CAAG,CAAA,CAAE,CAAE,CAAG,SAASb,GAAiBP,EAAGF,EAAGM,EAAG,CAAE,IAAIjD,EAAIsD,EAAG,OAAO,SAAUxL,EAAGH,EAAG,CAAE,GAAIqI,IAAMuD,EAAG,MAAM,IAAI,MAAM,8BAA8B,EAAG,GAAIvD,IAAMzH,EAAG,CAAE,GAAgBT,IAAZ,QAAe,MAAMH,EAAG,MAAO,CAAE,MAAOmL,EAAG,KAAM,GAAK,CAAG,IAAKG,EAAE,OAASnL,EAAGmL,EAAE,IAAMtL,IAAK,CAAE,IAAIE,EAAIoL,EAAE,SAAU,GAAIpL,EAAG,CAAE,IAAI8B,EAAIuK,GAAoBrM,EAAGoL,CAAC,EAAG,GAAItJ,EAAG,CAAE,GAAIA,IAAM6J,EAAG,SAAU,OAAO7J,CAAI,CAAA,CAAG,GAAesJ,EAAE,SAAb,OAAqBA,EAAE,KAAOA,EAAE,MAAQA,EAAE,YAAyBA,EAAE,SAAd,QAAsB,CAAE,GAAIjD,IAAMsD,EAAG,MAAMtD,EAAIzH,EAAG0K,EAAE,IAAKA,EAAE,kBAAkBA,EAAE,GAAG,OAAuBA,EAAE,SAAf,UAAyBA,EAAE,OAAO,SAAUA,EAAE,GAAG,EAAGjD,EAAIuD,EAAG,IAAIzB,EAAIuB,EAASR,EAAGF,EAAGM,CAAC,EAAG,GAAiBnB,EAAE,OAAf,SAAqB,CAAE,GAAI9B,EAAIiD,EAAE,KAAO1K,EAAIa,EAAG0I,EAAE,MAAQ0B,EAAG,SAAU,MAAO,CAAE,MAAO1B,EAAE,IAAK,KAAMmB,EAAE,IAAI,CAAK,CAAanB,EAAE,OAAd,UAAuB9B,EAAIzH,EAAG0K,EAAE,OAAS,QAASA,EAAE,IAAMnB,EAAE,IAAO,CAAA,CAAK,CAAC,SAASoC,GAAoBrB,EAAGF,EAAG,CAAE,IAAIM,EAAIN,EAAE,OAAQ3C,EAAI6C,EAAE,SAASI,CAAC,EAAG,GAAIjD,IAAM8C,EAAG,OAAOH,EAAE,SAAW,KAAkBM,IAAZ,SAAiBJ,EAAE,SAAS,SAAcF,EAAE,OAAS,SAAUA,EAAE,IAAMG,EAAGoB,GAAoBrB,EAAGF,CAAC,EAAeA,EAAE,SAAd,UAAsCM,IAAb,WAAmBN,EAAE,OAAS,QAASA,EAAE,IAAM,IAAI,UAAU,oCAAsCM,EAAI,UAAU,GAAIO,EAAG,IAAI1L,EAAIuL,EAASrD,EAAG6C,EAAE,SAAUF,EAAE,GAAG,EAAG,GAAgB7K,EAAE,OAAd,QAAoB,OAAO6K,EAAE,OAAS,QAASA,EAAE,IAAM7K,EAAE,IAAK6K,EAAE,SAAW,KAAMa,EAAG,IAAI7L,EAAIG,EAAE,IAAK,OAAOH,EAAIA,EAAE,MAAQgL,EAAEE,EAAE,UAAU,EAAIlL,EAAE,MAAOgL,EAAE,KAAOE,EAAE,QAAsBF,EAAE,SAAf,WAA0BA,EAAE,OAAS,OAAQA,EAAE,IAAMG,GAAIH,EAAE,SAAW,KAAMa,GAAK7L,GAAKgL,EAAE,OAAS,QAASA,EAAE,IAAM,IAAI,UAAU,kCAAkC,EAAGA,EAAE,SAAW,KAAMa,EAAK,CAAC,SAASW,GAAarB,EAAG,CAAE,IAAID,EAAI,CAAE,OAAQC,EAAE,CAAC,GAAK,KAAKA,IAAMD,EAAE,SAAWC,EAAE,CAAC,GAAI,KAAKA,IAAMD,EAAE,WAAaC,EAAE,CAAC,EAAGD,EAAE,SAAWC,EAAE,CAAC,GAAI,KAAK,WAAW,KAAKD,CAAC,CAAI,CAAC,SAASuB,EAActB,EAAG,CAAE,IAAID,EAAIC,EAAE,YAAc,CAAA,EAAID,EAAE,KAAO,SAAU,OAAOA,EAAE,IAAKC,EAAE,WAAaD,CAAE,CAAG,SAASM,EAAQL,EAAG,CAAE,KAAK,WAAa,CAAC,CAAE,OAAQ,OAAQ,EAAGA,EAAE,QAAQqB,GAAc,IAAI,EAAG,KAAK,MAAM,EAAE,EAAK,SAASP,EAAOf,EAAG,CAAE,GAAIA,GAAYA,IAAP,GAAU,CAAE,IAAIF,EAAIE,EAAElL,CAAC,EAAG,GAAIgL,EAAG,OAAOA,EAAE,KAAKE,CAAC,EAAG,GAAkB,OAAOA,EAAE,MAAvB,WAA6B,OAAOA,EAAG,GAAI,CAAC,MAAMA,EAAE,MAAM,EAAG,CAAE,IAAI7C,EAAI,GAAIlI,EAAI,SAASuM,GAAO,CAAE,KAAO,EAAErE,EAAI6C,EAAE,QAAS,GAAI,EAAE,KAAKA,EAAG7C,CAAC,EAAG,OAAOqE,EAAK,MAAQxB,EAAE7C,CAAC,EAAGqE,EAAK,KAAO,GAAIA,EAAM,OAAOA,EAAK,MAAQvB,EAAGuB,EAAK,KAAO,GAAIA,GAAS,OAAOvM,EAAE,KAAOA,CAAE,EAAK,MAAM,IAAI,UAAUiI,EAAQ8C,CAAC,EAAI,kBAAkB,EAAK,OAAOY,EAAkB,UAAYC,EAA4B,EAAEG,EAAG,cAAe,CAAE,MAAOH,EAA4B,aAAc,EAAI,CAAA,EAAG,EAAEA,EAA4B,cAAe,CAAE,MAAOD,EAAmB,aAAc,GAAI,EAAGA,EAAkB,YAAcV,EAAOW,EAA4B/J,EAAG,mBAAmB,EAAGkJ,EAAE,oBAAsB,SAAUC,EAAG,CAAE,IAAID,EAAkB,OAAOC,GAArB,YAA0BA,EAAE,YAAa,MAAO,CAAC,CAACD,IAAMA,IAAMY,IAA8CZ,EAAE,aAAeA,EAAE,QAA5C,oBAAmD,EAAIA,EAAE,KAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,eAAiB,OAAO,eAAeA,EAAGY,CAA0B,GAAKZ,EAAE,UAAYY,EAA4BX,EAAOD,EAAGnJ,EAAG,mBAAmB,GAAImJ,EAAE,UAAY,OAAO,OAAOe,CAAC,EAAGf,CAAI,EAAED,EAAE,MAAQ,SAAUC,EAAG,CAAE,MAAO,CAAE,QAASA,CAAC,CAAK,EAAEgB,EAAsBC,EAAc,SAAS,EAAGhB,EAAOgB,EAAc,UAAWlM,EAAG,UAAY,CAAE,OAAO,IAAO,CAAA,EAAGgL,EAAE,cAAgBkB,EAAelB,EAAE,MAAQ,SAAUC,EAAGH,EAAGM,EAAGjD,EAAGlI,EAAG,CAAaA,IAAX,SAAiBA,EAAI,SAAU,IAAIH,EAAI,IAAIoM,EAAcf,EAAKF,EAAGH,EAAGM,EAAGjD,CAAC,EAAGlI,CAAC,EAAG,OAAO+K,EAAE,oBAAoBF,CAAC,EAAIhL,EAAIA,EAAE,OAAO,KAAK,SAAUmL,EAAG,CAAE,OAAOA,EAAE,KAAOA,EAAE,MAAQnL,EAAE,KAAM,EAAG,GAAMmM,EAAsBD,CAAC,EAAGd,EAAOc,EAAGlK,EAAG,WAAW,EAAGoJ,EAAOc,EAAGlM,EAAG,UAAY,CAAE,OAAO,IAAK,CAAE,EAAGoL,EAAOc,EAAG,WAAY,UAAY,CAAE,MAAO,oBAAqB,CAAE,EAAGhB,EAAE,KAAO,SAAUC,EAAG,CAAE,IAAID,EAAI,OAAOC,CAAC,EAAGH,EAAI,GAAI,QAASM,KAAKJ,EAAGF,EAAE,KAAKM,CAAC,EAAG,OAAON,EAAE,QAAO,EAAI,SAAS0B,GAAO,CAAE,KAAO1B,EAAE,QAAS,CAAE,IAAIG,EAAIH,EAAE,IAAG,EAAI,GAAIG,KAAKD,EAAG,OAAOwB,EAAK,MAAQvB,EAAGuB,EAAK,KAAO,GAAIA,CAAK,CAAG,OAAOA,EAAK,KAAO,GAAIA,CAAK,CAAK,EAAExB,EAAE,OAASe,EAAQT,EAAQ,UAAY,CAAE,YAAaA,EAAS,MAAO,SAAeN,EAAG,CAAE,GAAI,KAAK,KAAO,EAAG,KAAK,KAAO,EAAG,KAAK,KAAO,KAAK,MAAQC,EAAG,KAAK,KAAO,GAAI,KAAK,SAAW,KAAM,KAAK,OAAS,OAAQ,KAAK,IAAMA,EAAG,KAAK,WAAW,QAAQsB,CAAa,EAAG,CAACvB,EAAG,QAASF,KAAK,KAAcA,EAAE,OAAO,CAAC,IAAlB,KAAuB,EAAE,KAAK,KAAMA,CAAC,GAAK,CAAC,MAAM,CAACA,EAAE,MAAM,CAAC,CAAC,IAAM,KAAKA,CAAC,EAAIG,EAAK,EAAE,KAAM,UAAgB,CAAE,KAAK,KAAO,GAAI,IAAIA,EAAI,KAAK,WAAW,CAAC,EAAE,WAAY,GAAgBA,EAAE,OAAd,QAAoB,MAAMA,EAAE,IAAK,OAAO,KAAK,IAAK,EAAI,kBAAmB,SAA2BD,EAAG,CAAE,GAAI,KAAK,KAAM,MAAMA,EAAG,IAAIF,EAAI,KAAM,SAAS2B,EAAOrB,EAAGjD,EAAG,CAAE,OAAOrI,EAAE,KAAO,QAASA,EAAE,IAAMkL,EAAGF,EAAE,KAAOM,EAAGjD,IAAM2C,EAAE,OAAS,OAAQA,EAAE,IAAMG,GAAI,CAAC,CAAC9C,EAAK,QAASA,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAIlI,EAAI,KAAK,WAAWkI,CAAC,EAAGrI,EAAIG,EAAE,WAAY,GAAeA,EAAE,SAAb,OAAqB,OAAOwM,EAAO,KAAK,EAAG,GAAIxM,EAAE,QAAU,KAAK,KAAM,CAAE,IAAID,EAAI,EAAE,KAAKC,EAAG,UAAU,EAAG6B,EAAI,EAAE,KAAK7B,EAAG,YAAY,EAAG,GAAID,GAAK8B,EAAG,CAAE,GAAI,KAAK,KAAO7B,EAAE,SAAU,OAAOwM,EAAOxM,EAAE,SAAU,EAAE,EAAG,GAAI,KAAK,KAAOA,EAAE,WAAY,OAAOwM,EAAOxM,EAAE,UAAU,CAAI,SAAUD,GAAK,GAAI,KAAK,KAAOC,EAAE,SAAU,OAAOwM,EAAOxM,EAAE,SAAU,EAAE,MAAU,CAAE,GAAI,CAAC6B,EAAG,MAAM,IAAI,MAAM,wCAAwC,EAAG,GAAI,KAAK,KAAO7B,EAAE,WAAY,OAAOwM,EAAOxM,EAAE,UAAU,CAAI,CAAA,EAAM,EAAE,OAAQ,SAAgBgL,EAAGD,EAAG,CAAE,QAASF,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAI3C,EAAI,KAAK,WAAW2C,CAAC,EAAG,GAAI3C,EAAE,QAAU,KAAK,MAAQ,EAAE,KAAKA,EAAG,YAAY,GAAK,KAAK,KAAOA,EAAE,WAAY,CAAE,IAAIlI,EAAIkI,EAAG,KAAQ,CAAA,CAAGlI,IAAkBgL,IAAZ,SAAgCA,IAAf,aAAqBhL,EAAE,QAAU+K,GAAKA,GAAK/K,EAAE,aAAeA,EAAI,MAAO,IAAIH,EAAIG,EAAIA,EAAE,WAAa,CAAA,EAAI,OAAOH,EAAE,KAAOmL,EAAGnL,EAAE,IAAMkL,EAAG/K,GAAK,KAAK,OAAS,OAAQ,KAAK,KAAOA,EAAE,WAAY0L,GAAK,KAAK,SAAS7L,CAAC,CAAI,EAAE,SAAU,SAAkBmL,EAAGD,EAAG,CAAE,GAAgBC,EAAE,OAAd,QAAoB,MAAMA,EAAE,IAAK,OAAmBA,EAAE,OAAd,SAAqCA,EAAE,OAAjB,WAAwB,KAAK,KAAOA,EAAE,IAAmBA,EAAE,OAAf,UAAuB,KAAK,KAAO,KAAK,IAAMA,EAAE,IAAK,KAAK,OAAS,SAAU,KAAK,KAAO,OAAsBA,EAAE,OAAf,UAAuBD,IAAM,KAAK,KAAOA,GAAIW,CAAI,EAAE,OAAQ,SAAgBV,EAAG,CAAE,QAASD,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAIF,EAAI,KAAK,WAAWE,CAAC,EAAG,GAAIF,EAAE,aAAeG,EAAG,OAAO,KAAK,SAASH,EAAE,WAAYA,EAAE,QAAQ,EAAGyB,EAAczB,CAAC,EAAGa,EAAM,EAAE,MAAS,SAAgBV,EAAG,CAAE,QAASD,EAAI,KAAK,WAAW,OAAS,EAAGA,GAAK,EAAG,EAAEA,EAAG,CAAE,IAAIF,EAAI,KAAK,WAAWE,CAAC,EAAG,GAAIF,EAAE,SAAWG,EAAG,CAAE,IAAIG,EAAIN,EAAE,WAAY,GAAgBM,EAAE,OAAd,QAAoB,CAAE,IAAIjD,EAAIiD,EAAE,IAAKmB,EAAczB,CAAC,EAAK,OAAO3C,EAAM,CAAC,MAAM,IAAI,MAAM,uBAAuB,CAAI,EAAE,cAAe,SAAuB6C,EAAGF,EAAGM,EAAG,CAAE,OAAO,KAAK,SAAW,CAAE,SAAUW,EAAOf,CAAC,EAAG,WAAYF,EAAG,QAASM,CAAG,EAAa,KAAK,SAAhB,SAA2B,KAAK,IAAMH,GAAIU,EAAM,EAAEX,CAAE,CACn2R,SAAS0B,GAAmBC,EAAK7F,EAAS8F,EAAQC,EAAOC,EAAQtI,EAAKuI,EAAK,CAAE,GAAI,CAAE,IAAIC,EAAOL,EAAInI,CAAG,EAAEuI,CAAG,EAAOtI,EAAQuI,EAAK,KAAQ,OAAQC,EAAO,CAAEL,EAAOK,CAAK,EAAG,MAAO,CAAOD,EAAK,KAAQlG,EAAQrC,CAAK,EAAY,QAAQ,QAAQA,CAAK,EAAE,KAAKoI,EAAOC,CAAM,CAAI,CACvQ,SAASI,GAAkBvF,EAAI,CAAE,OAAO,UAAY,CAAE,IAAI2B,EAAO,KAAMU,EAAO,UAAW,OAAO,IAAI,QAAQ,SAAUlD,EAAS8F,EAAQ,CAAE,IAAID,EAAMhF,EAAG,MAAM2B,EAAMU,CAAI,EAAG,SAAS6C,EAAMpI,EAAO,CAAEiI,GAAmBC,EAAK7F,EAAS8F,EAAQC,EAAOC,EAAQ,OAAQrI,CAAK,CAAI,CAAC,SAASqI,EAAOK,EAAK,CAAET,GAAmBC,EAAK7F,EAAS8F,EAAQC,EAAOC,EAAQ,QAASK,CAAG,EAAKN,EAAM,MAAS,CAAI,CAAA,CAAE,CAAG,CACnY,SAASrE,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAE,OAAID,GAAY4F,GAAkB7F,EAAY,UAAWC,CAAU,EAAiE,OAAO,eAAeD,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAC3R,SAAS4F,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,EAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,EAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,CAAiB,EAAG,GAAIrG,EAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAI,CAAC,OAA4B,OAAiBvG,CAAK,CAAE,CAK3X,IAAIkR,GAA0B,UAAY,CACxC,SAASA,GAAa,CACpB5M,GAAgB,KAAM4M,CAAU,CACpC,CACEhN,OAAAA,GAAagN,EAAY,CAAC,CACxB,IAAK,WACL,MAAO,UAAY,CACjB,IAAIC,EAAYnI,GAAgCnC,GAAqB,EAAC,KAAK,SAASgI,EAAQ7O,EAAO4M,EAAW,CAC5G,IAAI2D,EACJ,OAAO1J,GAAmB,EAAG,KAAK,SAAkBiI,EAAU,CAC5D,OAAU,OAAQA,EAAS,KAAOA,EAAS,KAAI,CAC7C,IAAK,GACH,GAAI,EAAEsB,GAAa,GAAMpQ,GAAS,OAAOA,EAAM,IAAQ,KAAc,CACnE8O,EAAS,KAAO,GAChB,KAChB,CACc,OAAAA,EAAS,KAAO,EAChBA,EAAS,KAAO,EACTuB,GAAUrQ,EAAM,GAAG,EAC5B,IAAK,GACH,OAAAuQ,EAAOzB,EAAS,KACTA,EAAS,OAAO,SAAU,IAAI8B,GAAWL,CAAI,CAAC,EACvD,IAAK,GACH,MAAAzB,EAAS,KAAO,EAChBA,EAAS,GAAKA,EAAS,MAAS,CAAC,EAC3B,IAAI,MAAM,sFAAsF,OAAOA,EAAS,EAAE,CAAC,EAC3H,IAAK,IACH,GAAI,EAAE,OAAO9O,EAAM,OAAU,YAAc,OAAOA,EAAM,KAAS,KAAc,CAC7E8O,EAAS,KAAO,GAChB,KAChB,CACc,OAAOA,EAAS,OAAO,SAAU,QAAQ,QAAQ,IAAI8B,GAAW5Q,CAAK,CAAC,CAAC,EACzE,IAAK,IACH,GAAM,OAAOA,EAAM,MAAS,WAAa,CACvC8O,EAAS,KAAO,GAChB,KAChB,CAEc,GADAlC,EAAY,OAAOA,CAAS,EACxB,OAAO,SAASA,CAAS,EAAG,CAC9BkC,EAAS,KAAO,GAChB,KAChB,CACc,OAAOA,EAAS,OAAO,SAAU,QAAQ,OAAO,IAAI,MAAM,mFAAmF,CAAC,CAAC,EACjJ,IAAK,IACH,OAAOA,EAAS,OAAO,SAAU,QAAQ,QAAQ,IAAIiC,GAAa/Q,EAAO4M,CAAS,CAAC,CAAC,EACtF,IAAK,IACH,OAAOkC,EAAS,OAAO,SAAU,QAAQ,OAAO,IAAI,MAAM,oFAAoF,CAAC,CAAC,EAClJ,IAAK,IACL,IAAK,MACH,OAAOA,EAAS,KAAM,CACpC,CACA,EAAWD,EAAS,KAAM,CAAC,CAAC,EAAG,CAAC,CAAC,CAAC,CAClC,CAAO,CAAC,EACF,SAASuC,EAAS3C,EAAIC,EAAK,CACzB,OAAOyC,EAAU,MAAM,KAAM,SAAS,CAC9C,CACM,OAAOC,CACR,EAAA,CACL,CAAG,CAAC,EACKF,CACT,EAAG,EC9DY,SAAStG,GAAYF,EAAMC,EAAS,CACjD,OAAIyF,GAAa,EACR,QAAQ,QAAQiB,GAAuB3G,EAAMC,CAAO,CAAC,EAEvD,QAAQ,QAAQ,CAAC,SAAUD,EAAK,KAAMA,EAAK,KAAMA,EAAK,KAAMA,EAAK,aAAcC,EAAQ,QAAQ,EAAE,KAAK,GAAG,CAAC,CACnH,CACA,SAAS0G,GAAuB3G,EAAMC,EAAS,CAC7C,IAAI2G,EAAW5G,EAAK,KAAO6G,GAAS,KAAK,UAAU7G,EAAK,IAAI,CAAC,EAAI,SACjE,MAAO,CAAC,SAAUA,EAAK,MAAQ,SAAUA,EAAK,MAAQ,SAAU4G,EAAU3G,EAAQ,QAAQ,EAAE,KAAK,GAAG,CACtG,CACA,SAAS4G,GAAShQ,EAAK,CAGrB,IAAIiQ,EAAO,EACX,GAAIjQ,EAAI,SAAW,EACjB,OAAOiQ,EAET,QAASzV,EAAI,EAAGA,EAAIwF,EAAI,OAAQxF,IAAK,CACnC,IAAI0V,EAAQlQ,EAAI,WAAWxF,CAAC,EAC5ByV,GAAQA,GAAQ,GAAKA,EAAOC,EAC5BD,GAAQA,CACZ,CACE,OAAOA,CACT,CClCA,SAASxN,EAAQC,EAAG,CAAE,0BAA2B,OAAOD,EAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUC,EAAG,CAAE,OAAO,OAAOA,GAAO,SAAUA,EAAG,CAAE,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CAAE,EAAID,EAAQC,CAAC,CAAE,CAC5T,SAASK,GAAgBC,EAAUJ,EAAa,CAAE,GAAI,EAAEI,aAAoBJ,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAI,CACvJ,SAAS6F,GAAkBC,EAAQC,EAAO,CAAE,QAASnO,EAAI,EAAGA,EAAImO,EAAM,OAAQnO,IAAK,CAAE,IAAIoO,EAAaD,EAAMnO,CAAC,EAAGoO,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAeF,EAAQF,GAAeI,EAAW,GAAG,EAAGA,CAAU,CAAI,CAAA,CAC3U,SAASjG,GAAaC,EAAaC,EAAYC,EAAa,CAAwE,OAAIA,GAAa2F,GAAkB7F,EAAaE,CAAW,EAAG,OAAO,eAAeF,EAAa,YAAa,CAAE,SAAU,EAAO,CAAA,EAAUA,CAAY,CAC3R,SAASK,GAAUC,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,GAAQ,CAAA,EAAG,OAAO,eAAeA,EAAU,YAAa,CAAE,SAAU,GAAO,EAAOC,GAAYC,GAAgBF,EAAUC,CAAU,CAAE,CAClc,SAASC,GAAgBV,EAAG8B,EAAG,CAAE,OAAApB,GAAkB,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAAyBV,EAAG8B,EAAG,CAAE,OAAA9B,EAAE,UAAY8B,EAAU9B,CAAI,EAASU,GAAgBV,EAAG8B,CAAC,CAAE,CACtM,SAASnB,GAAaC,EAAS,CAAE,IAAIC,EAA4BC,GAAyB,EAAI,OAAO,UAAgC,CAAE,IAAIC,EAAQC,GAAgBJ,CAAO,EAAGzE,EAAQ,GAAI0E,EAA2B,CAAE,IAAII,EAAYD,GAAgB,IAAI,EAAE,YAAa7E,EAAS,QAAQ,UAAU4E,EAAO,UAAWE,CAAS,CAAI,MAAQ9E,EAAS4E,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOG,GAA2B,KAAM/E,CAAM,EAAK,CACva,SAAS+E,GAA2BC,EAAMC,EAAM,CAAE,GAAIA,IAASrB,EAAQqB,CAAI,IAAM,UAAY,OAAOA,GAAS,YAAe,OAAOA,EAAa,GAAIA,IAAS,OAAU,MAAM,IAAI,UAAU,0DAA0D,EAAK,OAAOC,GAAuBF,CAAI,CAAE,CAC9R,SAASE,GAAuBF,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAK,CACpK,SAASL,IAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,CAAE,EAAE,UAAY,CAAA,CAAE,CAAC,EAAU,EAAK,MAAa,CAAE,MAAO,EAAQ,CAAA,CACvU,SAASE,GAAgBhB,EAAG,CAAE,OAAAgB,GAAkB,OAAO,eAAiB,OAAO,eAAe,OAAS,SAAyBhB,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAE,EAAWgB,GAAgBhB,CAAC,CAAE,CAClN,SAAS2F,GAAQ,EAAGhD,EAAG,CAAE,IAAIG,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI9C,EAAI,OAAO,sBAAsB,CAAC,EAAG2C,IAAM3C,EAAIA,EAAE,OAAO,SAAU2C,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAa,CAAA,GAAIG,EAAE,KAAK,MAAMA,EAAG9C,CAAC,EAAK,OAAO8C,CAAE,CAC7P,SAAS8C,EAAc,EAAG,CAAE,QAASjD,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIG,EAAY,UAAUH,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIgD,GAAQ,OAAO7C,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUH,EAAG,CAAEkD,GAAgB,EAAGlD,EAAGG,EAAEH,CAAC,CAAC,CAAI,CAAA,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BG,CAAC,CAAC,EAAI6C,GAAQ,OAAO7C,CAAC,CAAC,EAAE,QAAQ,SAAUH,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBG,EAAGH,CAAC,CAAC,CAAI,CAAA,CAAE,CAAG,OAAO,CAAE,CACrb,SAASkD,GAAgBrJ,EAAKH,EAAKC,EAAO,CAAE,OAAAD,EAAMyJ,GAAezJ,CAAG,EAAOA,KAAOG,EAAO,OAAO,eAAeA,EAAKH,EAAK,CAAE,MAAOC,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,CAAA,EAAYE,EAAIH,CAAG,EAAIC,EAAgBE,CAAI,CAC1O,SAASsJ,GAAelB,EAAK,CAAE,IAAIvI,EAAM8J,GAAavB,EAAK,QAAQ,EAAG,OAAO7E,EAAQ1D,CAAG,IAAM,SAAWA,EAAM,OAAOA,CAAG,CAAE,CAC3H,SAAS8J,GAAapK,EAAOqK,EAAM,CAAE,GAAIrG,EAAQhE,CAAK,IAAM,UAAYA,IAAU,KAAM,OAAOA,EAAO,IAAIsK,EAAOtK,EAAM,OAAO,WAAW,EAAG,GAAIsK,IAAS,OAAW,CAAE,IAAI/D,EAAM+D,EAAK,KAAKtK,EAAOqK,GAAQ,SAAS,EAAG,GAAIrG,EAAQuC,CAAG,IAAM,SAAU,OAAOA,EAAK,MAAM,IAAI,UAAU,8CAA8C,CAAE,CAAG,OAAQ8D,IAAS,SAAW,OAAS,QAAQrK,CAAK,CAAE,CAS3X,IAAIuK,GAAiBV,EAAcA,EAAc,CAAA,EAAIY,GAAW,cAAc,EAAG,GAAI,CACnF,UAAW,IAAIiH,GACf,WAAY,IAAIR,GAChB,WAAYzB,GAAe,IAAIC,GAAyB,IAAIJ,GAC5D,YAAa1E,EACf,CAAC,EACG+G,GAAsB,SAAUC,EAAa,CAC/CpN,GAAUmN,EAAQC,CAAW,EAC7B,IAAI1L,EAAStB,GAAa+M,CAAM,EAChC,SAASA,GAAS,CAChB,IAAIjH,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAC3EC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EACpF,OAAArG,GAAgB,KAAMqN,CAAM,EAC5BhH,EAAUd,EAAcA,EAAc,CAAE,EAAEU,EAAc,EAAGI,CAAO,EAC3DzE,EAAO,KAAK,KAAMwE,EAAMC,CAAO,CAC1C,CACE,OAAAzG,GAAayN,EAAQ,KAAM,CAAC,CAC1B,IAAK,YACL,MAAO,SAAmBjQ,EAAK,CAC7B,IAAIiJ,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EACpF,OAAAA,EAAUd,EAAcA,EAAc,CAAE,EAAEU,EAAc,EAAGI,CAAO,EAC3DF,GAAW,UAAU/I,EAAKiJ,CAAO,CAC9C,CACA,CAAG,CAAC,EACKgH,CACT,EAAElH,EAAU,wcClBZ,MAAMP,EAAQ2H,EA+BRC,EAAOC,EACPC,EAAWC,GAAI,CAAC,EAChBC,EAAWD,GAAI,EAAE,EACjBE,EAAgBF,GAAI,EAAE,EAEtBG,EAAQC,GAAS,IACjBF,EAAc,MACTA,EAAc,MAEhBjI,EAAM,SACd,EACMoI,GAAA,IAAMpI,EAAM,UAAW,IAAM,CAClCiI,EAAc,MAAQ,EAAA,CACvB,EAEK,MAAApG,EAAUjF,GAAM,CAEpB,MAAM4D,EAAa5D,EAAE,OAAO,MAAM,CAAC,EACnC,GAAI,CAAC4D,EACH,OAII,MAAAiG,EAAS,IAAI,WACZA,EAAA,OAAU7J,GAAM,CACPqL,EAAA,MAAQrL,EAAE,OAAO,MACjC,EACA6J,EAAO,cAAcjG,CAAI,EAEzBwH,EAAS,MAAQ,GACjBF,EAAS,MAAQ,EAEjB,MAAMrL,EAAO4L,GAAO,EAGdxG,EAAS,IAAIyG,GAAW9H,EAAM,CAElC,SAAU,GAAG+H,GAAO,OAAO,mBAE3B,YAAa,CAAC,EAAG,IAAM,IAAM,IAAO,GAAK,EAEzC,SAAU,CAER,SAAU9L,EACV,SAAU+D,EAAK,IACjB,EAEA,2BAA4B,GAE5B,QAAQ3B,EAAO,CACL,QAAA,IAAI,mBAAmBA,CAAK,EAAE,CACxC,EAEA,WAAW2J,EAAe/F,EAAY,CACpCqF,EAAS,MAAQ,KAAK,MAAMU,EAAgB/F,EAAa,GAAG,CAC9D,EAEA,WAAY,CACDuF,EAAA,MAAQnG,EAAO,KAAK,KAC7B+F,EAAK,oBAAqBnL,CAAI,EAC1BuD,EAAM,WACRA,EAAM,UAAUvD,EAAMoF,EAAO,KAAK,IAAI,EAExC,WAAW,IAAM,CACfiG,EAAS,MAAQ,GAChB,GAAI,CAAA,CACT,CACD,EAGDjG,EAAO,MAAM,CACf","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]}