{ "version": 3, "sources": ["../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/breadcrumb-types.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/es-utils/reduce.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/es-utils/filter.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/es-utils/includes.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/es-utils/is-array.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/es-utils/keys.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/validators/int-range.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/validators/list-of-functions.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/validators/string-with-length.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/config.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/es-utils/assign.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/es-utils/map.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/dist/src/config.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/breadcrumb.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/node_modules/stackframe/stackframe.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/node_modules/stack-generator/stack-generator.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/node_modules/error-stack-parser/error-stack-parser.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/error-stack-parser.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/node_modules/@bugsnag/safe-json-stringify/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/feature-flag-delegate.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/has-stack.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/node_modules/iserror/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/iserror.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/metadata-delegate.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/event.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/async-every.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/callback-runner.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/sync-callback-runner.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/dist/lib/is-cuid.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/dist/lib/pad.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/dist/lib/cuid.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/dist/lib/fingerprint.browser.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/node_modules/@bugsnag/cuid/dist/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/session.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/client.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/core/lib/json-payload.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/delivery-x-domain-request/delivery.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/delivery-xml-http-request/delivery.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-app-duration/app.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-browser-context/context.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-browser-device/device.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-browser-request/request.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-browser-session/session.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-client-ip/client-ip.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-console-breadcrumbs/console-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-inline-script-content/inline-script-content.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-interaction-breadcrumbs/interaction-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-navigation-breadcrumbs/navigation-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/lib/headers-to-object.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/lib/request-tracker.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/lib/fetch-tracker.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/lib/url-helpers.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/lib/xhr-header-string-to-object.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/lib/xhr-response-parser.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/lib/xhr-tracker.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/request-tracker/index.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-network-breadcrumbs/network-breadcrumbs.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-simple-throttle/throttle.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-strip-query-string/strip-query-string.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-window-onerror/onerror.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/plugin-window-unhandled-rejection/unhandled-rejection.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/browser/dist/src/notifier.js", "../../../node_modules/.pnpm/@bugsnag+browser@8.9.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../../node_modules/.pnpm/@bugsnag+js@8.9.0/node_modules/@bugsnag/js/browser/notifier.js", "../../../node_modules/.pnpm/@bugsnag+plugin-react@8.9.0_@bugsnag+core@8.9.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_prelude", "../../../node_modules/.pnpm/@bugsnag+plugin-react@8.9.0_@bugsnag+core@8.9.0/node_modules/@bugsnag/plugin-react/dist/src/index.js", "../../../node_modules/.pnpm/@bugsnag+plugin-react@8.9.0_@bugsnag+core@8.9.0/node_modules/@bugsnag/node_modules/browser-pack-flat/_postlude", "../../javascript/lib/init_bugsnag.ts", "../../../node_modules/.pnpm/@sonicgarden+bugsnag-plugin-custom-error@https+++codeload.github.com+SonicGarden+bugsna_511cb05d7fb10afa0acc649fa321bfee/node_modules/@sonicgarden/bugsnag-plugin-custom-error/dist/index.js", "../../javascript/bugsnag.js"], "sourcesContent": ["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\n", "module.exports = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual']\n", "// Array#reduce\nmodule.exports = (arr, fn, accum) => {\n let val = accum\n for (let i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr)\n return val\n}\n", "const reduce = require('./reduce')\n\n// Array#filter\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => !fn(item, i, arr) ? accum : accum.concat(item), [])\n", "const reduce = require('./reduce')\n// Array#includes\nmodule.exports = (arr, x) =>\n reduce(arr, (accum, item, i, arr) => accum === true || item === x, false)\n", "// Array#isArray\nmodule.exports = obj => Object.prototype.toString.call(obj) === '[object Array]'\n", "/* eslint-disable-next-line no-prototype-builtins */\nconst _hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString')\nconst _dontEnums = [\n 'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty',\n 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'\n]\n\n// Object#keys\nmodule.exports = obj => {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n const result = []\n let prop\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop)\n }\n if (!_hasDontEnumBug) return result\n for (let i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i])\n }\n return result\n}\n", "module.exports = (min = 1, max = Infinity) => value =>\n typeof value === 'number' &&\n parseInt('' + value, 10) === value &&\n value >= min && value <= max\n", "const filter = require('../es-utils/filter')\nconst isArray = require('../es-utils/is-array')\n\nmodule.exports = value => typeof value === 'function' || (isArray(value) && filter(value, f => typeof f === 'function').length === value.length)\n", "module.exports = value => typeof value === 'string' && !!value.length\n", "const filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst isArray = require('./lib/es-utils/is-array')\nconst includes = require('./lib/es-utils/includes')\nconst intRange = require('./lib/validators/int-range')\nconst stringWithLength = require('./lib/validators/string-with-length')\nconst listOfFunctions = require('./lib/validators/list-of-functions')\n\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst defaultErrorTypes = () => ({ unhandledExceptions: true, unhandledRejections: true })\n\nmodule.exports.schema = {\n apiKey: {\n defaultValue: () => null,\n message: 'is required',\n validate: stringWithLength\n },\n appVersion: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n appType: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || stringWithLength(value)\n },\n autoDetectErrors: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n },\n enabledErrorTypes: {\n defaultValue: () => defaultErrorTypes(),\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: value => {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false\n const providedKeys = keys(value)\n const defaultKeys = keys(defaultErrorTypes())\n // ensure it only has a subset of the allowed keys\n if (filter(providedKeys, k => includes(defaultKeys, k)).length < providedKeys.length) return false\n // ensure all of the values are boolean\n if (filter(keys(value), k => typeof value[k] !== 'boolean').length > 0) return false\n return true\n }\n },\n onError: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onSession: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n onBreadcrumb: {\n defaultValue: () => [],\n message: 'should be a function or array of functions',\n validate: listOfFunctions\n },\n endpoints: {\n defaultValue: (endpoints) => {\n // only apply the default value if no endpoints have been provided, otherwise prevent delivery by setting to null\n if (typeof endpoints === 'undefined') {\n return ({\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n })\n } else {\n return ({ notify: null, sessions: null })\n }\n },\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: (val) =>\n // first, ensure it's an object\n (val && typeof val === 'object') &&\n (\n // notify and sessions must always be set\n stringWithLength(val.notify) && stringWithLength(val.sessions)\n ) &&\n // ensure no keys other than notify/session are set on endpoints object\n filter(keys(val), k => !includes(['notify', 'sessions'], k)).length === 0\n },\n autoTrackSessions: {\n defaultValue: val => true,\n message: 'should be true|false',\n validate: val => val === true || val === false\n },\n enabledReleaseStages: {\n defaultValue: () => null,\n message: 'should be an array of strings',\n validate: value => value === null || (isArray(value) && filter(value, f => typeof f === 'string').length === value.length)\n },\n releaseStage: {\n defaultValue: () => 'production',\n message: 'should be a string',\n validate: value => typeof value === 'string' && value.length\n },\n maxBreadcrumbs: {\n defaultValue: () => 25,\n message: 'should be a number ≤100',\n validate: value => intRange(0, 100)(value)\n },\n enabledBreadcrumbTypes: {\n defaultValue: () => BREADCRUMB_TYPES,\n message: `should be null or a list of available breadcrumb types (${BREADCRUMB_TYPES.join(',')})`,\n validate: value => value === null || (isArray(value) && reduce(value, (accum, maybeType) => {\n if (accum === false) return accum\n return includes(BREADCRUMB_TYPES, maybeType)\n }, true))\n },\n context: {\n defaultValue: () => undefined,\n message: 'should be a string',\n validate: value => value === undefined || typeof value === 'string'\n },\n user: {\n defaultValue: () => ({}),\n message: 'should be an object with { id, email, name } properties',\n validate: value =>\n (value === null) ||\n (value && reduce(\n keys(value),\n (accum, key) => accum && includes(['id', 'email', 'name'], key),\n true\n ))\n },\n metadata: {\n defaultValue: () => ({}),\n message: 'should be an object',\n validate: (value) => typeof value === 'object' && value !== null\n },\n logger: {\n defaultValue: () => undefined,\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: value =>\n (!value) ||\n (value && reduce(\n ['debug', 'info', 'warn', 'error'],\n (accum, method) => accum && typeof value[method] === 'function',\n true\n ))\n },\n redactedKeys: {\n defaultValue: () => ['password'],\n message: 'should be an array of strings|regexes',\n validate: value =>\n isArray(value) && value.length === filter(value, s =>\n (typeof s === 'string' || (s && typeof s.test === 'function'))\n ).length\n },\n plugins: {\n defaultValue: () => ([]),\n message: 'should be an array of plugin objects',\n validate: value =>\n isArray(value) && value.length === filter(value, p =>\n (p && typeof p === 'object' && typeof p.load === 'function')\n ).length\n },\n featureFlags: {\n defaultValue: () => [],\n message: 'should be an array of objects that have a \"name\" property',\n validate: value =>\n isArray(value) && value.length === filter(value, feature =>\n feature && typeof feature === 'object' && typeof feature.name === 'string'\n ).length\n },\n reportUnhandledPromiseRejectionsAsHandled: {\n defaultValue: () => false,\n message: 'should be true|false',\n validate: value => value === true || value === false\n },\n sendPayloadChecksums: {\n defaultValue: () => false,\n message: 'should be true|false',\n validate: value => value === true || value === false\n }\n}\n", "// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nmodule.exports = function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i]\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n return target\n}\n", "const reduce = require('./reduce')\n\n// Array#map\nmodule.exports = (arr, fn) =>\n reduce(arr, (accum, item, i, arr) => accum.concat(fn(item, i, arr)), [])\n", "const { schema } = require('@bugsnag/core/config')\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\nmodule.exports = {\n releaseStage: assign({}, schema.releaseStage, {\n defaultValue: () => {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development'\n return 'production'\n }\n }),\n appType: {\n ...schema.appType,\n defaultValue: () => 'browser'\n },\n logger: assign({}, schema.logger, {\n defaultValue: () =>\n // set logger based on browser capability\n (typeof console !== 'undefined' && typeof console.debug === 'function')\n ? getPrefixedConsole()\n : undefined\n })\n}\n\nconst getPrefixedConsole = () => {\n const logger = {}\n const consoleLog = console.log\n map(['debug', 'info', 'warn', 'error'], (method) => {\n const consoleMethod = console[method]\n logger[method] = typeof consoleMethod === 'function'\n ? consoleMethod.bind(console, '[bugsnag]')\n : consoleLog.bind(console, '[bugsnag]')\n })\n return logger\n}\n", "class Breadcrumb {\n constructor (message, metadata, type, timestamp = new Date()) {\n this.type = type\n this.message = message\n this.metadata = metadata\n this.timestamp = timestamp\n }\n\n toJSON () {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n }\n }\n}\n\nmodule.exports = Breadcrumb\n", "(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var objectProps = ['evalOrigin'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n", "(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n}(this, function(StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({functionName: RegExp.$1 || undefined, args: args}));\n } else {\n stack.push(new StackFrame({args: args}));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n}));\n", "(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n", "module.exports = require('error-stack-parser')\n", "module.exports = function (data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : []\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : []\n return JSON.stringify(\n prepareObjForSerialization(data, redactedKeys, redactedPaths),\n replacer,\n space\n )\n}\n\nvar MAX_DEPTH = 20\nvar MAX_EDGES = 25000\nvar MIN_PRESERVED_DEPTH = 8\n\nvar REPLACEMENT_NODE = '...'\n\nfunction isError (o) {\n return o instanceof Error ||\n /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o))\n}\n\nfunction throwsMessage (err) {\n return '[Throws: ' + (err ? err.message : '?') + ']'\n}\n\nfunction find (haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true\n }\n return false\n}\n\n// returns true if the string `path` starts with any of the provided `paths`\nfunction isDescendent (paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true\n }\n return false\n}\n\nfunction shouldRedact (patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true\n }\n return false\n}\n\nfunction isArray (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]'\n}\n\nfunction safelyGetProp (obj, prop) {\n try {\n return obj[prop]\n } catch (err) {\n return throwsMessage(err)\n }\n}\n\nfunction prepareObjForSerialization (obj, redactedKeys, redactedPaths) {\n var seen = [] // store references to objects we have seen before\n var edges = 0\n\n function visit (obj, path) {\n function edgesExceeded () {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES\n }\n\n edges++\n\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE\n if (edgesExceeded()) return REPLACEMENT_NODE\n if (obj === null || typeof obj !== 'object') return obj\n if (find(seen, obj)) return '[Circular]'\n\n seen.push(obj)\n\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--\n var fResult = visit(obj.toJSON(), path)\n seen.pop()\n return fResult\n } catch (err) {\n return throwsMessage(err)\n }\n }\n\n var er = isError(obj)\n if (er) {\n edges--\n var eResult = visit({ name: obj.name, message: obj.message }, path)\n seen.pop()\n return eResult\n }\n\n if (isArray(obj)) {\n var aResult = []\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE)\n break\n }\n aResult.push(visit(obj[i], path.concat('[]')))\n }\n seen.pop()\n return aResult\n }\n\n var result = {}\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]'\n continue\n }\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE\n break\n }\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop))\n }\n } catch (e) {}\n seen.pop()\n return result\n }\n\n return visit(obj, [])\n}\n", "const map = require('./es-utils/map')\nconst filter = require('./es-utils/filter')\nconst isArray = require('./es-utils/is-array')\nconst jsonStringify = require('@bugsnag/safe-json-stringify')\n\nfunction add (existingFeatures, existingFeatureKeys, name, variant) {\n if (typeof name !== 'string') {\n return\n }\n\n if (variant === undefined) {\n variant = null\n } else if (variant !== null && typeof variant !== 'string') {\n variant = jsonStringify(variant)\n }\n\n const existingIndex = existingFeatureKeys[name]\n if (typeof existingIndex === 'number') {\n existingFeatures[existingIndex] = { name, variant }\n return\n }\n\n existingFeatures.push({ name, variant })\n existingFeatureKeys[name] = existingFeatures.length - 1\n}\n\nfunction merge (existingFeatures, newFeatures, existingFeatureKeys) {\n if (!isArray(newFeatures)) {\n return\n }\n\n for (let i = 0; i < newFeatures.length; ++i) {\n const feature = newFeatures[i]\n\n if (feature === null || typeof feature !== 'object') {\n continue\n }\n\n // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n add(existingFeatures, existingFeatureKeys, feature.name, feature.variant)\n }\n\n return existingFeatures\n}\n\n// convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n// [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\nfunction toEventApi (featureFlags) {\n return map(\n filter(featureFlags, Boolean),\n ({ name, variant }) => {\n const flag = { featureFlag: name }\n\n // don't add a 'variant' property unless there's actually a value\n if (typeof variant === 'string') {\n flag.variant = variant\n }\n\n return flag\n }\n )\n}\n\nfunction clear (features, featuresIndex, name) {\n const existingIndex = featuresIndex[name]\n if (typeof existingIndex === 'number') {\n features[existingIndex] = null\n delete featuresIndex[name]\n }\n}\n\nmodule.exports = { add, clear, merge, toEventApi }\n", "// Given `err` which may be an error, does it have a stack property which is a string?\nmodule.exports = err =>\n !!err &&\n (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) &&\n typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' &&\n err.stack !== `${err.name}: ${err.message}`\n", "\n/**\n * Expose `isError`.\n */\n\nmodule.exports = isError;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]': return true;\n case '[object Exception]': return true;\n case '[object DOMException]': return true;\n default: return value instanceof Error;\n }\n}\n", "module.exports = require('iserror')\n", "const assign = require('./es-utils/assign')\n\nconst add = (state, section, keyOrObj, maybeVal) => {\n if (!section) return\n let updates\n\n // addMetadata(\"section\", null) -> clears section\n if (keyOrObj === null) return clear(state, section)\n\n // normalise the two supported input types into object form\n if (typeof keyOrObj === 'object') updates = keyOrObj\n if (typeof keyOrObj === 'string') updates = { [keyOrObj]: maybeVal }\n\n // exit if we don't have an updates object at this point\n if (!updates) return\n\n // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return\n }\n\n // ensure a section with this name exists\n if (!state[section]) state[section] = {}\n\n // merge the updates with the existing section\n state[section] = assign({}, state[section], updates)\n}\n\nconst get = (state, section, key) => {\n if (typeof section !== 'string') return undefined\n if (!key) {\n return state[section]\n }\n if (state[section]) {\n return state[section][key]\n }\n return undefined\n}\n\nconst clear = (state, section, key) => {\n if (typeof section !== 'string') return\n\n // clear an entire section\n if (!key) {\n delete state[section]\n return\n }\n\n // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return\n }\n\n // clear a single value from a section\n if (state[section]) {\n delete state[section][key]\n }\n}\n\nmodule.exports = { add, get, clear }\n", "const ErrorStackParser = require('./lib/error-stack-parser')\nconst StackGenerator = require('stack-generator')\nconst hasStack = require('./lib/has-stack')\nconst map = require('./lib/es-utils/map')\nconst reduce = require('./lib/es-utils/reduce')\nconst filter = require('./lib/es-utils/filter')\nconst assign = require('./lib/es-utils/assign')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst featureFlagDelegate = require('./lib/feature-flag-delegate')\nconst isError = require('./lib/iserror')\n\nclass Event {\n constructor (errorClass, errorMessage, stacktrace = [], handledState = defaultHandledState(), originalError) {\n this.apiKey = undefined\n this.context = undefined\n this.groupingHash = undefined\n this.originalError = originalError\n\n this._handledState = handledState\n this.severity = this._handledState.severity\n this.unhandled = this._handledState.unhandled\n\n this.app = {}\n this.device = {}\n this.request = {}\n this.response = {}\n\n this.breadcrumbs = []\n this.threads = []\n\n this._metadata = {}\n this._features = []\n this._featuresIndex = {}\n this._user = {}\n this._session = undefined\n this._correlation = undefined\n this._groupingDiscriminator = undefined\n\n this.errors = [\n createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)\n ]\n\n // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n /**\n * Associate this event with a specific trace. This is usually done automatically when\n * using bugsnag-js-performance, but can also be set manually if required.\n *\n * @param traceId the ID of the trace the event occurred within\n * @param spanId the ID of the span that the event occurred within\n */\n setTraceCorrelation (traceId, spanId) {\n if (typeof traceId === 'string') {\n this._correlation = { traceId, ...typeof spanId === 'string' ? { spanId } : { } }\n }\n }\n\n getGroupingDiscriminator () {\n return this._groupingDiscriminator\n }\n\n setGroupingDiscriminator (value) {\n const previousValue = this._groupingDiscriminator\n if (typeof value === 'string' || value === null || value === undefined) this._groupingDiscriminator = value\n return previousValue\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n featureFlagDelegate.add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n featureFlagDelegate.merge(this._features, featureFlags, this._featuresIndex)\n }\n\n getFeatureFlags () {\n return featureFlagDelegate.toEventApi(this._features)\n }\n\n clearFeatureFlag (name) {\n featureFlagDelegate.clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n payloadVersion: '4',\n exceptions: map(this.errors, er => assign({}, er, { message: er.errorMessage })),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n response: this.response,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n groupingDiscriminator: this._groupingDiscriminator,\n metaData: this._metadata,\n user: this._user,\n session: this._session,\n featureFlags: this.getFeatureFlags(),\n correlation: this._correlation\n }\n }\n}\n\n// takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\nconst formatStackframe = frame => {\n const f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n }\n // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code'\n }\n return f\n}\n\nconst normaliseFunctionName = name => /^global code$/i.test(name) ? 'global code' : name\n\nconst defaultHandledState = () => ({\n unhandled: false,\n severity: 'warning',\n severityReason: { type: 'handledException' }\n})\n\nconst ensureString = (str) => typeof str === 'string' ? str : ''\n\nfunction createBugsnagError (errorClass, errorMessage, type, stacktrace) {\n return {\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type,\n stacktrace: reduce(stacktrace, (accum, frame) => {\n const f = formatStackframe(frame)\n // don't include a stackframe if none of its properties are defined\n try {\n if (JSON.stringify(f) === '{}') return accum\n return accum.concat(f)\n } catch (e) {\n return accum\n }\n }, [])\n }\n}\n\nfunction getCauseStack (error) {\n if (error.cause) {\n return [error, ...getCauseStack(error.cause)]\n } else {\n return [error]\n }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (hasStack(error)) return ErrorStackParser.parse(error).slice(errorFramesToSkip)\n // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n try {\n return filter(StackGenerator.backtrace(), frame =>\n (frame.functionName || '').indexOf('StackGenerator$$') === -1\n ).slice(1 + backtraceFramesToSkip)\n } catch (e) {\n return []\n }\n}\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip = 0, logger) {\n const [error, internalFrames] = normaliseError(maybeError, tolerateNonErrors, component, logger)\n let event\n try {\n const stacktrace = Event.getStacktrace(\n error,\n // if an error was created/throw in the normaliseError() function, we need to\n // tell the getStacktrace() function to skip the number of frames we know will\n // be from our own functions. This is added to the number of frames deep we\n // were told about\n internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0,\n // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip\n )\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError)\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError)\n }\n if (error.name === 'InvalidError') {\n event.addMetadata(`${component}`, 'non-error parameter', makeSerialisable(maybeError))\n }\n if (error.cause) {\n const causes = getCauseStack(error).slice(1)\n const normalisedCauses = map(causes, (cause) => {\n // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n const stacktrace = (isError(cause) && hasStack(cause)) ? ErrorStackParser.parse(cause) : []\n const [error] = normaliseError(cause, true, 'error cause')\n if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause))\n return createBugsnagError(error.name, error.message, Event.__type, stacktrace)\n })\n\n event.errors.push(...normalisedCauses)\n }\n\n return event\n}\n\nconst makeSerialisable = (err) => {\n if (err === null) return 'null'\n if (err === undefined) return 'undefined'\n return err\n}\n\nconst normaliseError = (maybeError, tolerateNonErrors, component, logger) => {\n let error\n let internalFrames = 0\n\n const createAndLogInputError = (reason) => {\n const verb = (component === 'error cause' ? 'was' : 'received')\n if (logger) logger.warn(`${component} ${verb} a non-error: \"${reason}\"`)\n const err = new Error(`${component} ${verb} a non-error. See \"${component}\" tab for more detail.`)\n err.name = 'InvalidError'\n return err\n }\n\n // In some cases:\n //\n // - the promise rejection handler (both in the browser and node)\n // - the node uncaughtException handler\n //\n // We are really limited in what we can do to get a stacktrace. So we use the\n // tolerateNonErrors option to ensure that the resulting error communicates as\n // such.\n if (!tolerateNonErrors) {\n if (isError(maybeError)) {\n error = maybeError\n } else {\n error = createAndLogInputError(typeof maybeError)\n internalFrames += 2\n }\n } else {\n switch (typeof maybeError) {\n case 'string':\n case 'number':\n case 'boolean':\n error = new Error(String(maybeError))\n internalFrames += 1\n break\n case 'function':\n error = createAndLogInputError('function')\n internalFrames += 2\n break\n case 'object':\n if (maybeError !== null && isError(maybeError)) {\n error = maybeError\n } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n error = new Error(maybeError.message || maybeError.errorMessage)\n error.name = maybeError.name || maybeError.errorClass\n internalFrames += 1\n } else {\n error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object')\n internalFrames += 2\n }\n break\n default:\n error = createAndLogInputError('nothing')\n internalFrames += 2\n }\n }\n\n if (!hasStack(error)) {\n // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n try {\n throw error\n } catch (e) {\n if (hasStack(e)) {\n error = e\n // if the error only got a stacktrace after we threw it here, we know it\n // will only have one extra internal frame from this function, regardless\n // of whether it went through createAndLogInputError() or not\n internalFrames = 1\n }\n }\n }\n\n return [error, internalFrames]\n}\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs'\n\nconst hasNecessaryFields = error =>\n (typeof error.name === 'string' || typeof error.errorClass === 'string') &&\n (typeof error.message === 'string' || typeof error.errorMessage === 'string')\n\nmodule.exports = Event\n", "// This is a heavily modified/simplified version of\n// https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n// - fn(item, cb) => calls cb(null, false)\n// - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nmodule.exports = (arr, fn, cb) => {\n let index = 0\n\n const next = () => {\n if (index >= arr.length) return cb(null, true)\n fn(arr[index], (err, result) => {\n if (err) return cb(err)\n if (result === false) return cb(null, false)\n index++\n next()\n })\n }\n\n next()\n}\n", "const some = require('./async-every')\n\nmodule.exports = (callbacks, event, onCallbackError, cb) => {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n const runMaybeAsyncCallback = (fn, cb) => {\n if (typeof fn !== 'function') return cb(null)\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n const ret = fn(event)\n // check if it returned a \"thenable\" (promise)\n if (ret && typeof ret.then === 'function') {\n return ret.then(\n // resolve\n val => setTimeout(() => cb(null, val)),\n // reject\n err => {\n setTimeout(() => {\n onCallbackError(err)\n return cb(null, true)\n })\n }\n )\n }\n return cb(null, ret)\n }\n // if function is async…\n fn(event, (err, result) => {\n if (err) {\n onCallbackError(err)\n return cb(null)\n }\n cb(null, result)\n })\n } catch (e) {\n onCallbackError(e)\n cb(null)\n }\n }\n\n some(callbacks, runMaybeAsyncCallback, cb)\n}\n", "module.exports = (callbacks, callbackArg, callbackType, logger) => {\n let ignore = false\n const cbs = callbacks.slice()\n while (!ignore) {\n if (!cbs.length) break\n try {\n ignore = cbs.pop()(callbackArg) === false\n } catch (e) {\n logger.error(`Error occurred in ${callbackType} callback, continuing anyway…`)\n logger.error(e)\n }\n }\n return ignore\n}\n", "'use strict';\n\n/**\n * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nfunction isCuid (value) {\n return typeof value === 'string' && (/^c[a-z0-9]{20,32}$/).test(value);\n}\n\nmodule.exports = isCuid;\n", "'use strict';\n\nfunction pad (num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n}\n\nmodule.exports = pad;\n", "'use strict';\n\nconst isCuid = require('./is-cuid.js');\nconst pad = require('./pad.js');\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nfunction createCuid (fingerprint) {\n const blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\n let c = 0;\n\n function randomBlock () {\n return pad((Math.random() *\n discreteValues << 0)\n .toString(base), blockSize);\n }\n\n function safeCounter () {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n return c - 1;\n }\n\n function cuid () {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c', // hard-coded allows for sequential access\n\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(base),\n\n // Prevent same-machine collisions.\n counter = pad(safeCounter().toString(base), blockSize),\n\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = fingerprint(),\n\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n\n return letter + timestamp + counter + print + random;\n }\n\n cuid.fingerprint = fingerprint;\n cuid.isCuid = isCuid;\n\n return cuid;\n}\n\nmodule.exports = createCuid;\n", "'use strict';\n\nconst pad = require('./pad.js');\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = pad((mimeTypesLength +\n navigator.userAgent.length).toString(36) +\n globalCount.toString(36), 4);\n\nfunction fingerprint () {\n return clientId;\n}\n\nmodule.exports = fingerprint;\n", "'use strict';\n\nconst fingerprint = require('./lib/fingerprint.js');\nconst cuid$1 = require('./lib/cuid.js');\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\nconst cuid = cuid$1(fingerprint);\n\nmodule.exports = cuid;\n", "const cuid = require('@bugsnag/cuid')\n\nclass Session {\n constructor () {\n this.id = cuid()\n this.startedAt = new Date()\n this._handled = 0\n this._unhandled = 0\n this._user = {}\n this.app = {}\n this.device = {}\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n toJSON () {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: { handled: this._handled, unhandled: this._unhandled }\n }\n }\n\n _track (event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1\n }\n}\n\nmodule.exports = Session\n", "const config = require('./config')\nconst Event = require('./event')\nconst Breadcrumb = require('./breadcrumb')\nconst Session = require('./session')\nconst map = require('./lib/es-utils/map')\nconst includes = require('./lib/es-utils/includes')\nconst filter = require('./lib/es-utils/filter')\nconst reduce = require('./lib/es-utils/reduce')\nconst keys = require('./lib/es-utils/keys')\nconst assign = require('./lib/es-utils/assign')\nconst runCallbacks = require('./lib/callback-runner')\nconst metadataDelegate = require('./lib/metadata-delegate')\nconst runSyncCallbacks = require('./lib/sync-callback-runner')\nconst BREADCRUMB_TYPES = require('./lib/breadcrumb-types')\nconst { add, clear, merge } = require('./lib/feature-flag-delegate')\nconst SECONDARY_ENDPOINT_API_KEY_PREFIX = '00000'\nconst SECONDARY_NOTIFY_ENDPOINT = 'https://notify.bugsnag.smartbear.com'\nconst SECONDARY_SESSIONS_ENDPOINT = 'https://sessions.bugsnag.smartbear.com'\n\nconst noop = () => { }\n\nclass Client {\n constructor (configuration, schema = config.schema, internalPlugins = [], notifier) {\n // notifier id\n this._notifier = notifier\n\n // intialise opts and config\n this._config = {}\n this._schema = schema\n\n // i/o\n this._delivery = { sendSession: noop, sendEvent: noop }\n this._logger = { debug: noop, info: noop, warn: noop, error: noop }\n\n // plugins\n this._plugins = {}\n\n // state\n this._breadcrumbs = []\n this._session = null\n this._metadata = {}\n this._featuresIndex = {}\n this._features = []\n this._context = undefined\n this._user = {}\n this._groupingDiscriminator = undefined\n\n // callbacks:\n // e: onError\n // s: onSession\n // sp: onSessionPayload\n // b: onBreadcrumb\n // (note these names are minified by hand because object\n // properties are not safe to minify automatically)\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n }\n\n // expose internal constructors\n this.Client = Client\n this.Event = Event\n this.Breadcrumb = Breadcrumb\n this.Session = Session\n\n this._config = this._configure(configuration, internalPlugins)\n map(internalPlugins.concat(this._config.plugins), pl => {\n if (pl) this._loadPlugin(pl)\n })\n\n // when notify() is called we need to know how many frames are from our own source\n // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n // bound to have the client as its `this` value – see below.\n this._depth = 1\n\n const self = this\n const notify = this.notify\n this.notify = function () {\n return notify.apply(self, arguments)\n }\n }\n\n addMetadata (section, keyOrObj, maybeVal) {\n return metadataDelegate.add(this._metadata, section, keyOrObj, maybeVal)\n }\n\n getMetadata (section, key) {\n return metadataDelegate.get(this._metadata, section, key)\n }\n\n clearMetadata (section, key) {\n return metadataDelegate.clear(this._metadata, section, key)\n }\n\n addFeatureFlag (name, variant = null) {\n add(this._features, this._featuresIndex, name, variant)\n }\n\n addFeatureFlags (featureFlags) {\n merge(this._features, featureFlags, this._featuresIndex)\n }\n\n clearFeatureFlag (name) {\n clear(this._features, this._featuresIndex, name)\n }\n\n clearFeatureFlags () {\n this._features = []\n this._featuresIndex = {}\n }\n\n getContext () {\n return this._context\n }\n\n setContext (c) {\n this._context = c\n }\n\n getGroupingDiscriminator () {\n return this._groupingDiscriminator\n }\n\n setGroupingDiscriminator (value) {\n const previousValue = this._groupingDiscriminator\n if (typeof value === 'string' || value === null || value === undefined) this._groupingDiscriminator = value\n return previousValue\n }\n\n _configure (opts, internalPlugins) {\n const schema = reduce(internalPlugins, (schema, plugin) => {\n if (plugin && plugin.configSchema) return assign({}, schema, plugin.configSchema)\n return schema\n }, this._schema)\n\n // sendPayloadChecksums is false by default unless custom endpoints are not specified\n if (!opts.endpoints) {\n opts.sendPayloadChecksums = 'sendPayloadChecksums' in opts ? opts.sendPayloadChecksums : true\n }\n\n // accumulate configuration and error messages\n const { errors, config } = reduce(keys(schema), (accum, key) => {\n const defaultValue = schema[key].defaultValue(opts[key])\n\n if (opts[key] !== undefined) {\n const valid = schema[key].validate(opts[key])\n if (!valid) {\n accum.errors[key] = schema[key].message\n accum.config[key] = defaultValue\n } else {\n if (schema[key].allowPartialObject) {\n accum.config[key] = assign(defaultValue, opts[key])\n } else {\n accum.config[key] = opts[key]\n }\n }\n } else {\n accum.config[key] = defaultValue\n }\n\n return accum\n }, { errors: {}, config: {} })\n\n if (schema.apiKey) {\n // missing api key is the only fatal error\n if (!config.apiKey) throw new Error('No Bugsnag API Key set')\n // warn about an apikey that is not of the expected format\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters'\n\n if (opts.endpoints === undefined && config.apiKey.indexOf(SECONDARY_ENDPOINT_API_KEY_PREFIX) === 0) {\n config.endpoints = {\n notify: SECONDARY_NOTIFY_ENDPOINT,\n sessions: SECONDARY_SESSIONS_ENDPOINT\n }\n }\n }\n\n // update and elevate some options\n this._metadata = assign({}, config.metadata)\n merge(this._features, config.featureFlags, this._featuresIndex)\n this._user = assign({}, config.user)\n this._context = config.context\n if (config.logger) this._logger = config.logger\n\n // add callbacks\n if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError)\n if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb)\n if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession)\n\n // finally warn about any invalid config where we fell back to the default\n if (keys(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts))\n }\n\n return config\n }\n\n getUser () {\n return this._user\n }\n\n setUser (id, email, name) {\n this._user = { id, email, name }\n }\n\n _loadPlugin (plugin) {\n const result = plugin.load(this)\n // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n if (plugin.name) this._plugins[`~${plugin.name}~`] = result\n }\n\n getPlugin (name) {\n return this._plugins[`~${name}~`]\n }\n\n _setDelivery (d) {\n this._delivery = d(this)\n }\n\n startSession () {\n const session = new Session()\n\n session.app.releaseStage = this._config.releaseStage\n session.app.version = this._config.appVersion\n session.app.type = this._config.appType\n\n session._user = assign({}, this._user)\n\n // run onSession callbacks\n const ignore = runSyncCallbacks(this._cbs.s, session, 'onSession', this._logger)\n\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback')\n return this\n }\n\n return this._sessionDelegate.startSession(this, session)\n }\n\n addOnError (fn, front = false) {\n this._cbs.e[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnError (fn) {\n this._cbs.e = filter(this._cbs.e, f => f !== fn)\n }\n\n _addOnSessionPayload (fn) {\n this._cbs.sp.push(fn)\n }\n\n addOnSession (fn) {\n this._cbs.s.push(fn)\n }\n\n removeOnSession (fn) {\n this._cbs.s = filter(this._cbs.s, f => f !== fn)\n }\n\n addOnBreadcrumb (fn, front = false) {\n this._cbs.b[front ? 'unshift' : 'push'](fn)\n }\n\n removeOnBreadcrumb (fn) {\n this._cbs.b = filter(this._cbs.b, f => f !== fn)\n }\n\n pauseSession () {\n return this._sessionDelegate.pauseSession(this)\n }\n\n resumeSession () {\n return this._sessionDelegate.resumeSession(this)\n }\n\n leaveBreadcrumb (message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : ''\n type = (typeof type === 'string' && includes(BREADCRUMB_TYPES, type)) ? type : 'manual'\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}\n\n // if no message, discard\n if (!message) return\n\n const crumb = new Breadcrumb(message, metadata, type)\n\n // run onBreadcrumb callbacks\n const ignore = runSyncCallbacks(this._cbs.b, crumb, 'onBreadcrumb', this._logger)\n\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback')\n return\n }\n\n // push the valid crumb onto the queue and maintain the length\n this._breadcrumbs.push(crumb)\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs)\n }\n }\n\n _isBreadcrumbTypeEnabled (type) {\n const types = this._config.enabledBreadcrumbTypes\n\n return types === null || includes(types, type)\n }\n\n notify (maybeError, onError, postReportCallback = noop) {\n const event = Event.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger)\n this._notify(event, onError, postReportCallback)\n }\n\n _notify (event, onError, postReportCallback = noop) {\n event.app = assign({}, event.app, {\n releaseStage: this._config.releaseStage,\n version: this._config.appVersion,\n type: this._config.appType\n })\n event.context = event.context || this._context\n event._metadata = assign({}, event._metadata, this._metadata)\n event._user = assign({}, event._user, this._user)\n event.breadcrumbs = this._breadcrumbs.slice()\n event.setGroupingDiscriminator(this._groupingDiscriminator)\n merge(event._features, this._features, event._featuresIndex)\n\n // exit early if events should not be sent on the current releaseStage\n if (this._config.enabledReleaseStages !== null && !includes(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration')\n return postReportCallback(null, event)\n }\n\n const originalSeverity = event.severity\n\n const onCallbackError = err => {\n // errors in callbacks are tolerated but we want to log them out\n this._logger.error('Error occurred in onError callback, continuing anyway…')\n this._logger.error(err)\n }\n\n const callbacks = [].concat(this._cbs.e).concat(onError)\n runCallbacks(callbacks, event, onCallbackError, (err, shouldSend) => {\n if (err) onCallbackError(err)\n\n if (!shouldSend) {\n this._logger.debug('Event not sent due to onError callback')\n return postReportCallback(null, event)\n }\n\n if (this._isBreadcrumbTypeEnabled('error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(this, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error')\n }\n\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = { type: 'userCallbackSetSeverity' }\n }\n\n if (event.unhandled !== event._handledState.unhandled) {\n event._handledState.severityReason.unhandledOverridden = true\n event._handledState.unhandled = event.unhandled\n }\n\n if (this._session) {\n this._session._track(event)\n event._session = this._session\n }\n\n this._delivery.sendEvent({\n apiKey: event.apiKey || this._config.apiKey,\n notifier: this._notifier,\n events: [event]\n }, (err) => postReportCallback(err, event))\n })\n }\n}\n\nconst generateConfigErrorMessage = (errors, rawInput) => {\n const er = new Error(\n `Invalid configuration\\n${map(keys(errors), key => ` - ${key} ${errors[key]}, got ${stringify(rawInput[key])}`).join('\\n\\n')}`)\n return er\n}\n\nconst stringify = val => {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val)\n default: return String(val)\n }\n}\n\nmodule.exports = Client\n", "const jsonStringify = require('@bugsnag/safe-json-stringify')\nconst EVENT_REDACTION_PATHS = [\n 'events.[].metaData',\n 'events.[].breadcrumbs.[].metaData',\n 'events.[].request',\n 'events.[].response'\n]\n\nmodule.exports.event = (event, redactedKeys) => {\n let payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier:\n`WARNING!\nSerialized payload was ${payload.length / 10e5}MB (limit = 1MB)\nmetadata was removed`\n }\n payload = jsonStringify(event, null, null, { redactedPaths: EVENT_REDACTION_PATHS, redactedKeys })\n }\n return payload\n}\n\nmodule.exports.session = (session, redactedKeys) => {\n const payload = jsonStringify(session, null, null)\n return payload\n}\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n if (client._config.endpoints.notify === null) {\n const err = new Error('Event not sent due to incomplete endpoint configuration')\n return cb(err)\n }\n\n const url = getApiUrl(client._config, 'notify', '4', win)\n const body = payload.event(event, client._config.redactedKeys)\n\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.onerror = function () {\n const err = new Error('Event failed to send')\n client._logger.error('Event failed to send…', err)\n if (body.length > 10e5) {\n client._logger.warn(`Event oversized (${(body.length / 10e5).toFixed(2)} MB)`)\n }\n cb(err)\n }\n req.open('POST', url)\n setTimeout(() => {\n try {\n req.send(body)\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n },\n sendSession: (session, cb = () => {}) => {\n if (client._config.endpoints.sessions === null) {\n const err = new Error('Session not sent due to incomplete endpoint configuration')\n return cb(err)\n }\n\n const url = getApiUrl(client._config, 'sessions', '1', win)\n const req = new win.XDomainRequest()\n req.onload = function () {\n cb(null)\n }\n req.open('POST', url)\n setTimeout(() => {\n try {\n req.send(payload.session(session, client._config.redactedKeys))\n } catch (e) {\n client._logger.error(e)\n cb(e)\n }\n }, 0)\n }\n})\n\nconst getApiUrl = (config, endpoint, version, win) => {\n // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n // to an ISO string when you use JSON stringify. Simply parsing the result of\n // JSON.stringify is smaller than using a toISOstring() polyfill.\n const isoDate = JSON.parse(JSON.stringify(new Date()))\n const url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol)\n return `${url}?apiKey=${encodeURIComponent(config.apiKey)}&payloadVersion=${version}&sentAt=${encodeURIComponent(isoDate)}`\n}\n\nconst matchPageProtocol = module.exports._matchPageProtocol = (endpoint, pageProtocol) =>\n pageProtocol === 'http:'\n ? endpoint.replace(/^https:/, 'http:')\n : endpoint\n", "const payload = require('@bugsnag/core/lib/json-payload')\n\nfunction getIntegrityHeaderValue (windowOrWorkerGlobalScope, requestBody) {\n if (windowOrWorkerGlobalScope.isSecureContext && windowOrWorkerGlobalScope.crypto && windowOrWorkerGlobalScope.crypto.subtle && windowOrWorkerGlobalScope.crypto.subtle.digest && typeof TextEncoder === 'function') {\n const msgUint8 = new TextEncoder().encode(requestBody)\n return windowOrWorkerGlobalScope.crypto.subtle.digest('SHA-1', msgUint8).then((hashBuffer) => {\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('')\n\n return 'sha1 ' + hashHex\n })\n }\n return Promise.resolve()\n}\n\nmodule.exports = (client, win = window) => ({\n sendEvent: (event, cb = () => {}) => {\n try {\n const url = client._config.endpoints.notify\n if (url === null) {\n const err = new Error('Event not sent due to incomplete endpoint configuration')\n return cb(err)\n }\n const req = new win.XMLHttpRequest()\n const body = payload.event(event, client._config.redactedKeys)\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n const status = req.status\n if (status === 0 || status >= 400) {\n const err = new Error(`Request failed with status ${status}`)\n client._logger.error('Event failed to send…', err)\n if (body.length > 10e5) {\n client._logger.warn(`Event oversized (${(body.length / 10e5).toFixed(2)} MB)`)\n }\n cb(err)\n } else {\n cb(null)\n }\n }\n }\n\n req.open('POST', url)\n req.setRequestHeader('Content-Type', 'application/json')\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey)\n req.setRequestHeader('Bugsnag-Payload-Version', '4')\n req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n\n if (client._config.sendPayloadChecksums && typeof Promise !== 'undefined' && Promise.toString().indexOf('[native code]') !== -1) {\n getIntegrityHeaderValue(win, body).then((integrity) => {\n if (integrity) {\n req.setRequestHeader('Bugsnag-Integrity', integrity)\n }\n req.send(body)\n }).catch((err) => {\n client._logger.error(err)\n req.send(body)\n })\n } else {\n req.send(body)\n }\n } catch (e) {\n client._logger.error(e)\n }\n },\n sendSession: (session, cb = () => {}) => {\n try {\n const url = client._config.endpoints.sessions\n if (url === null) {\n const err = new Error('Session not sent due to incomplete endpoint configuration')\n return cb(err)\n }\n const req = new win.XMLHttpRequest()\n const body = payload.session(session, client._config.redactedKeys)\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n const status = req.status\n if (status === 0 || status >= 400) {\n const err = new Error(`Request failed with status ${status}`)\n client._logger.error('Session failed to send…', err)\n cb(err)\n } else {\n cb(null)\n }\n }\n }\n\n req.open('POST', url)\n req.setRequestHeader('Content-Type', 'application/json')\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey)\n req.setRequestHeader('Bugsnag-Payload-Version', '1')\n req.setRequestHeader('Bugsnag-Sent-At', (new Date()).toISOString())\n\n if (client._config.sendPayloadChecksums && typeof Promise !== 'undefined' && Promise.toString().indexOf('[native code]') !== -1) {\n getIntegrityHeaderValue(win, body).then((integrity) => {\n if (integrity) {\n req.setRequestHeader('Bugsnag-Integrity', integrity)\n }\n req.send(body)\n }).catch((err) => {\n client._logger.error(err)\n req.send(body)\n })\n } else {\n req.send(body)\n }\n } catch (e) {\n client._logger.error(e)\n }\n }\n})\n", "let appStart = new Date()\nconst reset = () => { appStart = new Date() }\n\nmodule.exports = {\n name: 'appDuration',\n load: client => {\n client.addOnError(event => {\n const now = new Date()\n\n event.app.duration = now - appStart\n }, true)\n\n return { reset }\n }\n}\n", "/*\n * Sets the default context to be the current URL\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.context !== undefined) return\n event.context = win.location.pathname\n }, true)\n }\n})\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\nconst BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id'\nconst cuid = require('@bugsnag/cuid')\n\nconst getDeviceId = (win) => {\n try {\n const storage = win.localStorage\n\n let id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY)\n\n // If we get an ID, make sure it looks like a valid cuid\n if (id && cuid.isCuid(id)) {\n return id\n }\n\n id = cuid()\n\n storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id)\n\n return id\n } catch (err) {\n // If localStorage is not available (e.g. because it's disabled) then give up\n }\n}\n\n/*\n * Automatically detects browser device details\n */\nmodule.exports = (nav = navigator, win = window) => ({\n load: (client) => {\n const device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n }\n\n if (win && win.screen && win.screen.orientation && win.screen.orientation.type) {\n device.orientation = win.screen.orientation.type\n } else if (win && win.document) {\n device.orientation =\n win.document.documentElement.clientWidth > win.document.documentElement.clientHeight\n ? 'landscape'\n : 'portrait'\n }\n\n if (client._config.generateAnonymousId) {\n device.id = getDeviceId(win)\n }\n\n client.addOnSession(session => {\n session.device = assign({}, session.device, device)\n // only set device id if collectUserIp is false\n if (!client._config.collectUserIp) setDefaultUserId(session)\n })\n\n // add time just as the event is sent\n client.addOnError((event) => {\n event.device = assign({},\n event.device,\n device,\n { time: new Date() }\n )\n if (!client._config.collectUserIp) setDefaultUserId(event)\n }, true)\n },\n configSchema: {\n generateAnonymousId: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nconst setDefaultUserId = (eventOrSession) => {\n // device id is also used to populate the user id field, if it's not already set\n const user = eventOrSession.getUser()\n if (!user || !user.id) {\n eventOrSession.setUser(eventOrSession.device.id)\n }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Sets the event request: { url } to be the current href\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n client.addOnError(event => {\n if (event.request && event.request.url) return\n event.request = assign({}, event.request, { url: win.location.href })\n }, true)\n }\n})\n", "const includes = require('@bugsnag/core/lib/es-utils/includes')\n\nmodule.exports = {\n load: client => { client._sessionDelegate = sessionDelegate }\n}\n\nconst sessionDelegate = {\n startSession: (client, session) => {\n const sessionClient = client\n sessionClient._session = session\n sessionClient._pausedSession = null\n\n // exit early if the current releaseStage is not enabled\n if (sessionClient._config.enabledReleaseStages !== null && !includes(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration')\n return sessionClient\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [\n {\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }\n ]\n })\n return sessionClient\n },\n resumeSession: (client) => {\n // Do nothing if there's already an active session\n if (client._session) {\n return client\n }\n\n // If we have a paused session then make it the active session\n if (client._pausedSession) {\n client._session = client._pausedSession\n client._pausedSession = null\n\n return client\n }\n\n // Otherwise start a new session\n return client.startSession()\n },\n pauseSession: (client) => {\n client._pausedSession = client._session\n client._session = null\n }\n}\n", "const assign = require('@bugsnag/core/lib/es-utils/assign')\n\n/*\n * Prevent collection of user IPs\n */\nmodule.exports = {\n load: (client) => {\n if (client._config.collectUserIp) return\n\n client.addOnError(event => {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id\n event._user = assign({ id: '[REDACTED]' }, event._user)\n event.request = assign({ clientIp: '[REDACTED]' }, event.request)\n })\n },\n configSchema: {\n collectUserIp: {\n defaultValue: () => true,\n message: 'should be true|false',\n validate: value => value === true || value === false\n }\n }\n}\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\n/*\n * Leaves breadcrumbs when console log methods are called\n */\nexports.load = (client) => {\n const isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage)\n\n if (isDev || !client._isBreadcrumbTypeEnabled('log')) return\n\n map(CONSOLE_LOG_METHODS, method => {\n const original = console[method]\n console[method] = (...args) => {\n client.leaveBreadcrumb('Console output', reduce(args, (accum, arg, i) => {\n // do the best/simplest stringification of each argument\n let stringified = '[Unknown value]'\n // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n try { stringified = String(arg) } catch (e) {}\n // if it stringifies to [object Object] attempt to JSON stringify\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try { stringified = JSON.stringify(arg) } catch (e) {}\n }\n accum[`[${i}]`] = stringified\n return accum\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log')\n original.apply(console, args)\n }\n console[method]._restore = () => { console[method] = original }\n })\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = () => CONSOLE_LOG_METHODS.forEach(method => {\n if (typeof console[method]._restore === 'function') console[method]._restore()\n })\n}\n\nconst CONSOLE_LOG_METHODS = filter(['log', 'debug', 'info', 'warn', 'error'], method =>\n typeof console !== 'undefined' && typeof console[method] === 'function'\n)\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\nconst filter = require('@bugsnag/core/lib/es-utils/filter')\n\nconst MAX_LINE_LENGTH = 200\nconst MAX_SCRIPT_LENGTH = 500000\n\nmodule.exports = (doc = document, win = window) => ({\n load: (client) => {\n if (!client._config.trackInlineScripts) return\n\n const originalLocation = win.location.href\n let html = ''\n\n // in IE8-10 the 'interactive' state can fire too soon (before scripts have finished executing), so in those\n // we wait for the 'complete' state before assuming that synchronous scripts are no longer executing\n const isOldIe = !!doc.attachEvent\n let DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading'\n const getHtml = () => doc.documentElement.outerHTML\n\n // get whatever HTML exists at this point in time\n html = getHtml()\n const prev = doc.onreadystatechange\n // then update it when the DOM content has loaded\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml()\n DOMContentLoaded = true\n }\n try { prev.apply(this, arguments) } catch (e) {}\n }\n\n let _lastScript = null\n const updateLastScript = script => {\n _lastScript = script\n }\n\n const getCurrentScript = () => {\n let script = doc.currentScript || _lastScript\n if (!script && !DOMContentLoaded) {\n const scripts = doc.scripts || doc.getElementsByTagName('script')\n script = scripts[scripts.length - 1]\n }\n return script\n }\n\n const addSurroundingCode = lineNumber => {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml()\n // simulate the raw html\n const htmlLines = [''].concat(html.split('\\n'))\n const zeroBasedLine = lineNumber - 1\n const start = Math.max(zeroBasedLine - 3, 0)\n const end = Math.min(zeroBasedLine + 3, htmlLines.length)\n return reduce(htmlLines.slice(start, end), (accum, line, i) => {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH)\n return accum\n }, {})\n }\n\n client.addOnError(event => {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = filter(event.errors[0].stacktrace, f => !(/__trace__$/.test(f.method)))\n\n const frame = event.errors[0].stacktrace[0]\n\n // remove hash and query string from url\n const cleanUrl = (url) => url.replace(/#.*$/, '').replace(/\\?.*$/, '')\n\n // if frame.file exists and is not the original location of the page, this can't be an inline script\n if (frame && frame.file && cleanUrl(frame.file) !== cleanUrl(originalLocation)) return\n\n // grab the last script known to have run\n const currentScript = getCurrentScript()\n if (currentScript) {\n const content = currentScript.innerHTML\n event.addMetadata(\n 'script',\n 'content',\n content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH)\n )\n\n // only attempt to grab some surrounding code if we have a line number\n if (frame && frame.lineNumber) {\n frame.code = addSurroundingCode(frame.lineNumber)\n }\n }\n }, true)\n\n // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n const [_setTimeout] = map([\n 'setTimeout',\n 'setInterval',\n 'setImmediate',\n 'requestAnimationFrame'\n ], fn =>\n __proxy(win, fn, original =>\n __traceOriginalScript(original, args => ({\n get: () => args[0],\n replace: fn => { args[0] = fn }\n }))\n )\n )\n\n // Proxy all the host objects whose prototypes have an addEventListener function\n map([\n 'EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode',\n 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase',\n 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow',\n 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList',\n 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload',\n 'MediaSource', 'MediaRecorder', 'MediaStream', 'ServiceWorker', 'ServiceWorkerContainer',\n 'ServiceWorkerRegistration', 'BroadcastChannel', 'RTCPeerConnection', 'RTCDataChannel', 'AbortSignal',\n 'MediaQueryList', 'ShadowRoot', 'FontFaceSet', 'Animation', 'PermissionStatus', 'PaymentRequest', 'VideoTrackList'\n ], o => {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return\n __proxy(win[o].prototype, 'addEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor)\n )\n __proxy(win[o].prototype, 'removeEventListener', original =>\n __traceOriginalScript(original, eventTargetCallbackAccessor, true)\n )\n })\n\n function __traceOriginalScript (fn, callbackAccessor, alsoCallOriginal = false) {\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n const args = [].slice.call(arguments)\n try {\n const cba = callbackAccessor(args)\n const cb = cba.get()\n if (alsoCallOriginal) fn.apply(this, args)\n if (typeof cb !== 'function') return fn.apply(this, args)\n if (cb.__trace__) {\n cba.replace(cb.__trace__)\n } else {\n const script = getCurrentScript()\n // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n cb.__trace__ = function __trace__ () {\n // set the script that called this function\n updateLastScript(script)\n // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n _setTimeout(function () { updateLastScript(null) }, 0)\n const ret = cb.apply(this, arguments)\n updateLastScript(null)\n return ret\n }\n cb.__trace__.__trace__ = cb.__trace__\n cba.replace(cb.__trace__)\n }\n } catch (e) {\n // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n }\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n if (fn.apply) return fn.apply(this, args)\n switch (args.length) {\n case 1: return fn(args[0])\n case 2: return fn(args[0], args[1])\n default: return fn()\n }\n }\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: value => value === true || value === false,\n defaultValue: () => true,\n message: 'should be true|false'\n }\n }\n})\n\nfunction __proxy (host, name, replacer) {\n const original = host[name]\n if (!original) return original\n const replacement = replacer(original)\n host[name] = replacement\n return original\n}\n\nfunction eventTargetCallbackAccessor (args) {\n const isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function'\n return {\n get: function () {\n return isEventHandlerObj ? args[1].handleEvent : args[1]\n },\n replace: function (fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn\n } else {\n args[1] = fn\n }\n }\n }\n}\n", "/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\nmodule.exports = (win = window) => ({\n load: (client) => {\n if (!('addEventListener' in win)) return\n if (!client._isBreadcrumbTypeEnabled('user')) return\n\n win.addEventListener('click', (event) => {\n let targetText, targetSelector\n try {\n targetText = getNodeText(event.target)\n targetSelector = getNodeSelector(event.target, win)\n } catch (e) {\n targetText = '[hidden]'\n targetSelector = '[hidden]'\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z')\n }\n client.leaveBreadcrumb('UI click', { targetText, targetSelector }, 'user')\n }, true)\n }\n})\n\nconst trim = /^\\s*([^\\s][\\s\\S]{0,139}[^\\s])?\\s*/\n\nfunction getNodeText (el) {\n let text = el.textContent || el.innerText || ''\n\n if (!text && (el.type === 'submit' || el.type === 'button')) {\n text = el.value\n }\n\n text = text.replace(trim, '$1')\n\n if (text.length > 140) {\n return text.slice(0, 135) + '(...)'\n }\n\n return text\n}\n\n// Create a label from tagname, id and css class of the element\nfunction getNodeSelector (el, win) {\n const parts = [el.tagName]\n if (el.id) parts.push('#' + el.id)\n if (el.className && el.className.length) parts.push(`.${el.className.split(' ').join('.')}`)\n // Can't get much more advanced with the current browser\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('')\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('')\n }\n // try to get a more specific selector if this one matches more than one element\n if (el.parentNode.childNodes.length > 1) {\n const index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1\n parts.push(`:nth-child(${index})`)\n }\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('')\n // try prepending the parent node selector\n if (el.parentNode) return `${getNodeSelector(el.parentNode, win)} > ${parts.join('')}`\n return parts.join('')\n}\n", "/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\nmodule.exports = (win = window) => {\n const plugin = {\n load: (client) => {\n if (!('addEventListener' in win)) return\n if (!client._isBreadcrumbTypeEnabled('navigation')) return\n\n // returns a function that will drop a breadcrumb with a given name\n const drop = name => () => client.leaveBreadcrumb(name, {}, 'navigation')\n\n // simple drops – just names, no meta\n win.addEventListener('pagehide', drop('Page hidden'), true)\n win.addEventListener('pageshow', drop('Page shown'), true)\n win.addEventListener('load', drop('Page loaded'), true)\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true)\n // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n win.addEventListener('load', () => win.addEventListener('popstate', drop('Navigated back'), true))\n\n // hashchange has some metadata that we care about\n win.addEventListener('hashchange', event => {\n const metadata = event.oldURL\n ? { from: relativeLocation(event.oldURL, win), to: relativeLocation(event.newURL, win), state: getCurrentState(win) }\n : { to: relativeLocation(win.location.href, win) }\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation')\n }, true)\n\n // the only way to know about replaceState/pushState is to wrap them… >_<\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win, true)\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\n win.history.replaceState._restore()\n win.history.pushState._restore()\n }\n }\n\n return plugin\n}\n\nif (process.env.NODE_ENV !== 'production') {\n exports.destroy = (win = window) => {\n win.history.replaceState._restore()\n win.history.pushState._restore()\n }\n}\n\n// takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\nconst relativeLocation = (url, win) => {\n const a = win.document.createElement('A')\n a.href = url\n return `${a.pathname}${a.search}${a.hash}`\n}\n\nconst stateChangeToMetadata = (win, state, title, url) => {\n const currentPath = relativeLocation(win.location.href, win)\n return { title, state, prevState: getCurrentState(win), to: url || currentPath, from: currentPath }\n}\n\nconst wrapHistoryFn = (client, target, fn, win, resetEventCount = false) => {\n const orig = target[fn]\n target[fn] = (state, title, url) => {\n client.leaveBreadcrumb(`History ${fn}`, stateChangeToMetadata(win, state, title, url), 'navigation')\n // if throttle plugin is in use, reset the event sent count\n if (resetEventCount && typeof client.resetEventCount === 'function') client.resetEventCount()\n // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n orig.apply(target, [state, title].concat(url !== undefined ? url : []))\n }\n if (process.env.NODE_ENV !== 'production') {\n target[fn]._restore = () => { target[fn] = orig }\n }\n}\n\nconst getCurrentState = (win) => {\n try {\n return win.history.state\n } catch (e) {}\n}\n", "/**\n * Convert Headers object to plain object\n * @param {Headers} headers - Headers object\n * @returns {Object} Plain object with header key-value pairs\n */\nmodule.exports = function (headers) {\n if (!headers) return {}\n\n const obj = {}\n if (typeof headers.entries === 'function') {\n const iterator = headers.entries()\n let entry = iterator.next()\n while (!entry.done) {\n const [key, value] = entry.value\n obj[key] = value\n entry = iterator.next()\n }\n } else if (headers.forEach) {\n headers.forEach((value, key) => {\n obj[key] = value\n })\n }\n return obj\n}\n", "/**\n * Singleton RequestTracker class for managing HTTP request instrumentation\n * Allows multiple plugins to register callbacks for the same requests\n */\nclass RequestTracker {\n constructor () {\n this.callbacks = []\n }\n\n /**\n * Register a callback to be called when a request starts\n * @param {Function} callback - Function to call with request context\n */\n onStart (callback) {\n if (typeof callback !== 'function') {\n throw new Error('RequestTracker onStart callback must be a function')\n }\n this.callbacks.push(callback)\n }\n\n /**\n * Notify all registered callbacks about a request start\n * @param {Object} context - Request start context\n * @returns {Object} Combined result with onRequestEnd callbacks\n */\n start (context) {\n const results = this.callbacks\n .map(callback => {\n try {\n return callback(context)\n } catch (error) {\n // Isolate plugin errors - don't let one plugin break others\n console.error('RequestTracker callback error:', error)\n return null\n }\n })\n .filter(result => result && typeof result === 'object')\n\n return {\n onRequestEnd: (endContext) => {\n results.forEach(result => {\n if (typeof result.onRequestEnd === 'function') {\n try {\n result.onRequestEnd(endContext)\n } catch (error) {\n console.error('RequestTracker onRequestEnd callback error:', error)\n }\n }\n })\n },\n extraRequestHeaders: results\n .map(result => result.extraRequestHeaders)\n .filter(headers => headers && typeof headers === 'object')\n .reduce((combined, headers) => Object.assign(combined, headers), {})\n }\n }\n\n /**\n * Reset tracker (for testing)\n */\n _reset () {\n this.callbacks = []\n }\n}\n\nmodule.exports = RequestTracker\n", "const headersToObject = require('./headers-to-object')\nconst RequestTracker = require('./request-tracker')\n\n/**\n * Create fetch request tracker with singleton pattern\n * @param {Object} global - Global object (window or global)\n * @param {Object} options - Configuration options\n * @returns {Object} Tracker instance\n */\nfunction createFetchTracker (global, options = {}) {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in global) || global.fetch.polyfill) return\n\n // Use singleton pattern - one tracker per global context\n if (!global.__bugsnag_fetch_tracker__) {\n const tracker = new RequestTracker()\n const originalFetch = global.fetch\n\n global.fetch = function wrappedFetch (urlOrRequest, options = {}) {\n let url = null\n let method = 'GET'\n\n if (urlOrRequest && typeof urlOrRequest === 'object') {\n url = urlOrRequest.url\n if (options && 'method' in options) {\n method = options.method\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method\n }\n } else {\n url = urlOrRequest\n if (options && 'method' in options) {\n method = options.method\n }\n }\n\n if (method === undefined) {\n method = 'GET'\n }\n\n let requestHeaders = {}\n if (options && options.headers) {\n // eslint-disable-next-line no-undef\n if (options.headers instanceof Headers) {\n requestHeaders = headersToObject(options.headers)\n } else if (typeof options.headers === 'object') {\n requestHeaders = options.headers\n }\n }\n\n const startTime = Date.now()\n const context = {\n url: String(url),\n method: String(method),\n startTime,\n type: 'fetch',\n input: urlOrRequest,\n headers: requestHeaders,\n body: options ? options.body : undefined\n }\n\n const { onRequestEnd } = tracker.start(context)\n\n // Call original fetch\n return originalFetch.call(this, ...arguments).then(\n response => {\n onRequestEnd({\n endTime: Date.now(),\n status: response.status,\n state: 'success',\n headers: headersToObject(response.headers)\n })\n return response\n },\n error => {\n onRequestEnd({\n endTime: Date.now(),\n state: 'error',\n error\n })\n throw error\n }\n )\n }\n\n // Store tracker and mark as active\n global.__bugsnag_fetch_tracker__ = tracker\n\n // Restore function for development\n if (process.env.NODE_ENV !== 'production') {\n tracker._restore = () => {\n global.fetch = originalFetch\n delete global.__bugsnag_fetch_tracker__\n }\n }\n }\n\n return global.__bugsnag_fetch_tracker__\n}\n\nmodule.exports = createFetchTracker\n", "const includes = require('@bugsnag/core/lib/es-utils/includes')\n\n/**\n * Check if a URL should be ignored for tracking\n * @param {string} url - URL to check\n * @param {Array} ignoredUrls - Array of URLs to ignore\n * @returns {boolean} True if URL should be ignored\n */\nfunction shouldIgnoreUrl (url, ignoredUrls = []) {\n if (!url || typeof url !== 'string') return true\n\n // Remove query parameters for comparison\n const urlWithoutQuery = url.replace(/\\?.*$/, '')\n\n return includes(ignoredUrls, urlWithoutQuery)\n}\n\n/**\n * Create URL filtering function for Bugsnag endpoints and custom ignored URLs\n * @param {Object} client - Bugsnag client instance\n * @param {Array} additionalIgnoredUrls - Additional URLs to ignore\n * @returns {Function} URL filtering function\n */\nfunction createUrlFilter (client, additionalIgnoredUrls = []) {\n const ignoredUrls = [\n client._config.endpoints.notify,\n client._config.endpoints.sessions\n ].concat(additionalIgnoredUrls).filter(Boolean)\n\n return (url) => shouldIgnoreUrl(url, ignoredUrls)\n}\n\n/**\n * Calculate duration from start time\n * @param {number} startTime - Start timestamp\n * @returns {number} Duration in milliseconds\n */\nfunction getDuration (startTime) {\n return startTime && Date.now() - startTime\n}\n\nmodule.exports = {\n shouldIgnoreUrl,\n createUrlFilter,\n getDuration\n}\n", "\n/**\n * Converts an XHR header string to an object\n * @param {string} headersString\n * @returns {Object}\n */\nmodule.exports = function (headersString) {\n if (!headersString) return {}\n const arr = headersString.trim().split(/[\\r\\n]+/)\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n return headerMap\n}\n", "/**\n * Receives the XHR response and parses it based on the responseType\n * @param {XMLHttpRequest} xhr The XHR instance\n * @returns {string | undefined} The parsed response\n */\nmodule.exports = function xhrResponseParser ({ response, responseType }) {\n if (response === null || response === undefined) {\n return undefined\n }\n\n switch (responseType) {\n case 'arraybuffer':\n case 'blob':\n return '[Binary Data]'\n case 'document':\n return '[Document]'\n case 'json':\n try {\n return JSON.stringify(response)\n } catch (e) {\n return '[Unserializable JSON]'\n }\n case 'text':\n case '':\n default:\n return String(response)\n }\n}\n", "const RequestTracker = require('./request-tracker')\nconst xhrHeaderStringToObject = require('./xhr-header-string-to-object')\nconst xhrResponseParser = require('./xhr-response-parser')\n\n/**\n * Create XHR request tracker with singleton pattern\n * @param {Object} global - Global object (window or global)\n * @param {Object} options - Configuration options\n * @returns {Object} Tracker instance\n */\nfunction createXhrTracker (global, options = {}) {\n if (!('addEventListener' in global.XMLHttpRequest.prototype) || !('WeakMap' in global)) return\n\n // Use singleton pattern - one tracker per global context\n if (!global.__bugsnag_xhr_tracker__) {\n const tracker = new RequestTracker()\n\n const trackedRequests = new WeakMap()\n const requestHandlers = new WeakMap()\n\n const originalOpen = global.XMLHttpRequest.prototype.open\n const originalSend = global.XMLHttpRequest.prototype.send\n const originalSetRequestHeader = global.XMLHttpRequest.prototype.setRequestHeader\n\n global.XMLHttpRequest.prototype.open = function open (method, url) {\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n trackedRequests.set(this, { method: String(method), url: String(url) })\n }\n originalOpen.apply(this, arguments)\n }\n\n global.XMLHttpRequest.prototype.setRequestHeader = function setRequestHeader (header, value) {\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n const requestData = trackedRequests.get(this)\n if (requestData) {\n requestData.headers = requestData.headers || {}\n requestData.headers[String(header)] = (requestData.headers[String(header)] || '') + String(value)\n }\n }\n originalSetRequestHeader.apply(this, arguments)\n }\n\n global.XMLHttpRequest.prototype.send = function send (body) {\n const requestData = trackedRequests.get(this)\n if (requestData) {\n // if we have already setup listeners then this request instance is being reused,\n // so we need to remove the listeners from the previous send\n const listeners = requestHandlers.get(this)\n if (listeners) {\n this.removeEventListener('load', listeners.load)\n this.removeEventListener('error', listeners.error)\n }\n\n const startTime = Date.now()\n const context = {\n url: requestData.url,\n method: requestData.method,\n startTime,\n type: 'xmlhttprequest',\n body,\n headers: requestData.headers\n }\n\n const { onRequestEnd } = tracker.start(context)\n\n const getResponseHeaders = () => xhrHeaderStringToObject(this.getAllResponseHeaders())\n\n const handleLoad = () => {\n onRequestEnd({\n endTime: Date.now(),\n status: this.status,\n state: 'success',\n headers: getResponseHeaders(),\n body: xhrResponseParser(this)\n })\n }\n\n const handleError = () => {\n onRequestEnd({\n endTime: Date.now(),\n state: 'error',\n headers: getResponseHeaders(),\n body: xhrResponseParser(this)\n })\n }\n\n this.addEventListener('load', handleLoad)\n this.addEventListener('error', handleError)\n\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n requestHandlers.set(this, { load: handleLoad, error: handleError })\n }\n }\n\n originalSend.apply(this, arguments)\n }\n\n // Store tracker and mark as active\n global.__bugsnag_xhr_tracker__ = tracker\n\n // Restore function for development\n if (process.env.NODE_ENV !== 'production') {\n tracker._restore = () => {\n global.XMLHttpRequest.prototype.open = originalOpen\n global.XMLHttpRequest.prototype.send = originalSend\n global.XMLHttpRequest.prototype.setRequestHeader = originalSetRequestHeader\n delete global.__bugsnag_xhr_tracker__\n }\n }\n }\n\n return global.__bugsnag_xhr_tracker__\n}\n\nmodule.exports = createXhrTracker\n", "const RequestTracker = require('./lib/request-tracker')\nconst createFetchTracker = require('./lib/fetch-tracker')\nconst createXhrTracker = require('./lib/xhr-tracker')\nconst { createUrlFilter, getDuration } = require('./lib/url-helpers')\n\n/**\n * Create an auto-loading request tracker plugin\n * @param {Array} ignoredUrls - Additional URLs to ignore\n * @param {Object} global - Global object (window or global)\n * @returns {Object} Bugsnag plugin\n */\nfunction createRequestTrackerPlugin (ignoredUrls = [], global = window) {\n return {\n name: 'requestTracker',\n load: (client) => {\n try {\n const fetchTracker = createFetchTracker(global)\n const xhrTracker = createXhrTracker(global)\n const urlFilter = createUrlFilter(client, ignoredUrls)\n\n return {\n fetchTracker,\n xhrTracker,\n urlFilter,\n getDuration\n }\n } catch (error) {\n client._logger.error('Failed to load request tracker:', error)\n throw new Error('Request tracking is not available: ' + error.message)\n }\n }\n }\n}\n\nmodule.exports = {\n RequestTracker,\n createFetchTracker,\n createXhrTracker,\n createUrlFilter,\n getDuration,\n createRequestTrackerPlugin\n}\n", "const BREADCRUMB_TYPE = 'request'\n\n/*\n * Leaves breadcrumbs when network requests occur\n */\nmodule.exports = (_ignoredUrls = [], win = window) => {\n let restoreFunctions = []\n const plugin = {\n load: client => {\n if (!client._isBreadcrumbTypeEnabled('request')) return\n\n // Try to get existing request tracker\n let requestTrackerPlugin = client.getPlugin('requestTracker')\n\n // Auto-load request tracker if not present\n if (!requestTrackerPlugin) {\n try {\n const { createRequestTrackerPlugin } = require('@bugsnag/request-tracker')\n const trackerPlugin = createRequestTrackerPlugin(_ignoredUrls, win)\n client._loadPlugin(trackerPlugin)\n requestTrackerPlugin = client.getPlugin('requestTracker')\n } catch (error) {\n client._logger.warn('Failed to auto-load request tracker, falling back to direct monkey-patching:', error.message)\n }\n }\n\n if (requestTrackerPlugin) {\n return useSharedRequestTracker(requestTrackerPlugin)\n }\n\n function useSharedRequestTracker (trackerPlugin) {\n const { fetchTracker, xhrTracker, urlFilter, getDuration } = trackerPlugin\n\n const handleRequest = (startContext) => {\n if (urlFilter(startContext.url)) return\n\n return {\n onRequestEnd: (response) => {\n const duration = getDuration(startContext.startTime)\n const metadata = {\n method: startContext.method,\n status: response.status,\n url: startContext.url,\n duration\n }\n\n const request = startContext.type === 'fetch' ? 'fetch()' : 'XMLHttpRequest'\n\n if (response.state === 'error') {\n client.leaveBreadcrumb(`${request} error`, { method: startContext.method, url: startContext.url, duration }, BREADCRUMB_TYPE)\n } else if (response.status >= 400) {\n client.leaveBreadcrumb(`${request} failed`, metadata, BREADCRUMB_TYPE)\n } else {\n client.leaveBreadcrumb(`${request} succeeded`, metadata, BREADCRUMB_TYPE)\n }\n }\n }\n }\n\n if (fetchTracker) {\n fetchTracker.onStart(handleRequest)\n restoreFunctions.push(fetchTracker._restore)\n }\n if (xhrTracker) {\n xhrTracker.onStart(handleRequest)\n restoreFunctions.push(xhrTracker._restore)\n }\n }\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = () => {\n restoreFunctions.forEach(fn => fn())\n restoreFunctions = []\n }\n }\n\n return plugin\n}\n", "const intRange = require('@bugsnag/core/lib/validators/int-range')\n\n/*\n * Throttles and dedupes events\n */\n\nmodule.exports = {\n load: (client) => {\n // track sent events for each init of the plugin\n let n = 0\n\n // add onError hook\n client.addOnError((event) => {\n // have max events been sent already?\n if (n >= client._config.maxEvents) {\n client._logger.warn(`Cancelling event send due to maxEvents per session limit of ${client._config.maxEvents} being reached`)\n return false\n }\n n++\n })\n\n client.resetEventCount = () => { n = 0 }\n },\n configSchema: {\n maxEvents: {\n defaultValue: () => 10,\n message: 'should be a positive integer ≤100',\n validate: val => intRange(1, 100)(val)\n }\n }\n}\n", "/*\n * Remove query strings (and fragments) from stacktraces\n */\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst reduce = require('@bugsnag/core/lib/es-utils/reduce')\n\nmodule.exports = {\n load: (client) => {\n client.addOnError(event => {\n const allFrames = reduce(event.errors, (accum, er) => accum.concat(er.stacktrace), [])\n map(allFrames, frame => {\n frame.file = strip(frame.file)\n })\n })\n }\n}\n\nconst strip = module.exports._strip = str =>\n typeof str === 'string'\n ? str.replace(/\\?.*$/, '').replace(/#.*$/, '')\n : str\n", "/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nmodule.exports = (win = window, component = 'window onerror') => ({\n load: (client) => {\n if (!client._config.autoDetectErrors) return\n if (!client._config.enabledErrorTypes.unhandledExceptions) return\n function onerror (messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z')\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n\n let event\n\n // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n event = client.Event.create(error, true, handledState, component, 1)\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n } else if (\n // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n (typeof messageOrEvent === 'object' && messageOrEvent !== null) &&\n (!url || typeof url !== 'string') &&\n !lineNo && !charNo && !error\n ) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n const name = messageOrEvent.type ? `Event: ${messageOrEvent.type}` : 'Error'\n // attempt to find a message from one of the conventional properties, but\n // default to empty string (the event will fill it with a placeholder)\n const message = messageOrEvent.message || messageOrEvent.detail || ''\n\n event = client.Event.create({ name, message }, true, handledState, component, 1)\n\n // provide the original thing onerror received – not our error-like object we passed to _notify\n event.originalError = messageOrEvent\n\n // include the raw input as metadata – it might contain more info than we extracted\n event.addMetadata(component, { event: messageOrEvent, extraParameters: url })\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, component, 1)\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo)\n }\n\n client._notify(event)\n }\n\n try { prevOnError.apply(this, arguments) } catch (e) {}\n }\n\n const prevOnError = win.onerror\n win.onerror = onerror\n }\n})\n\n// Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\nconst decorateStack = (stack, url, lineNo, charNo) => {\n if (!stack[0]) stack.push({})\n const culprit = stack[0]\n if (!culprit.file && typeof url === 'string') culprit.file = url\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.columnNumber = charNo\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.columnNumber = window.event.errorCharacter\n }\n }\n}\n\nconst isActualNumber = (n) => typeof n === 'number' && String.call(n) !== 'NaN'\n", "const map = require('@bugsnag/core/lib/es-utils/map')\nconst isError = require('@bugsnag/core/lib/iserror')\n\nlet _listener\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nmodule.exports = (win = window) => {\n const plugin = {\n load: (client) => {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return\n const listener = evt => {\n let error = evt.reason\n let isBluebird = false\n\n // accessing properties on evt.detail can throw errors (see #394)\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason\n isBluebird = true\n }\n } catch (e) {}\n\n // Report unhandled promise rejections as handled if the user has configured it\n const unhandled = !client._config.reportUnhandledPromiseRejectionsAsHandled\n\n const event = client.Event.create(error, false, {\n severity: 'error',\n unhandled,\n severityReason: { type: 'unhandledPromiseRejection' }\n }, 'unhandledrejection handler', 1, client._logger)\n\n if (isBluebird) {\n map(event.errors[0].stacktrace, fixBluebirdStacktrace(error))\n }\n\n client._notify(event, (event) => {\n if (isError(event.originalError) && !event.originalError.stack) {\n event.addMetadata('unhandledRejection handler', {\n [Object.prototype.toString.call(event.originalError)]: {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }\n })\n }\n })\n }\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener)\n } else {\n win.onunhandledrejection = (reason, promise) => {\n listener({ detail: { reason, promise } })\n }\n }\n _listener = listener\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n plugin.destroy = (win = window) => {\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener)\n } else {\n win.onunhandledrejection = null\n }\n }\n _listener = null\n }\n }\n\n return plugin\n}\n\n// The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n// b@http://localhost:5000/bluebird.html:22:24\n// a@http://localhost:5000/bluebird.html:18:9\n// @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n// […]\n// 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n// 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n// 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n// 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\nconst fixBluebirdStacktrace = (error) => (frame) => {\n if (frame.file === error.toString()) return\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '')\n }\n}\n", "const name = 'Bugsnag JavaScript'\nconst version = '8.9.0'\nconst url = 'https://github.com/bugsnag/bugsnag-js'\n\nconst Client = require('@bugsnag/core/client')\nconst Event = require('@bugsnag/core/event')\nconst Session = require('@bugsnag/core/session')\nconst Breadcrumb = require('@bugsnag/core/breadcrumb')\n\nconst map = require('@bugsnag/core/lib/es-utils/map')\nconst keys = require('@bugsnag/core/lib/es-utils/keys')\nconst assign = require('@bugsnag/core/lib/es-utils/assign')\n\n// extend the base config schema with some browser-specific options\nconst schema = assign({}, require('@bugsnag/core/config').schema, require('./config'))\n\nconst pluginWindowOnerror = require('@bugsnag/plugin-window-onerror')\nconst pluginUnhandledRejection = require('@bugsnag/plugin-window-unhandled-rejection')\nconst pluginApp = require('@bugsnag/plugin-app-duration')\nconst pluginDevice = require('@bugsnag/plugin-browser-device')\nconst pluginContext = require('@bugsnag/plugin-browser-context')\nconst pluginRequest = require('@bugsnag/plugin-browser-request')\nconst pluginThrottle = require('@bugsnag/plugin-simple-throttle')\nconst pluginConsoleBreadcrumbs = require('@bugsnag/plugin-console-breadcrumbs')\nconst pluginNetworkBreadcrumbs = require('@bugsnag/plugin-network-breadcrumbs')\nconst pluginNavigationBreadcrumbs = require('@bugsnag/plugin-navigation-breadcrumbs')\nconst pluginInteractionBreadcrumbs = require('@bugsnag/plugin-interaction-breadcrumbs')\nconst pluginInlineScriptContent = require('@bugsnag/plugin-inline-script-content')\nconst pluginSession = require('@bugsnag/plugin-browser-session')\nconst pluginIp = require('@bugsnag/plugin-client-ip')\nconst pluginStripQueryString = require('@bugsnag/plugin-strip-query-string')\n\n// delivery mechanisms\nconst dXDomainRequest = require('@bugsnag/delivery-x-domain-request')\nconst dXMLHttpRequest = require('@bugsnag/delivery-xml-http-request')\n\nconst Bugsnag = {\n _client: null,\n createClient: (opts) => {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = { apiKey: opts }\n if (!opts) opts = {}\n\n const internalPlugins = [\n // add browser-specific plugins\n pluginApp,\n pluginDevice(),\n pluginContext(),\n pluginRequest(),\n pluginThrottle,\n pluginSession,\n pluginIp,\n pluginStripQueryString,\n pluginWindowOnerror(),\n pluginUnhandledRejection(),\n pluginNavigationBreadcrumbs(),\n pluginInteractionBreadcrumbs(),\n pluginNetworkBreadcrumbs(),\n pluginConsoleBreadcrumbs,\n\n // this one added last to avoid wrapping functionality before bugsnag uses it\n pluginInlineScriptContent()\n ]\n\n // configure a client with user supplied options\n const bugsnag = new Client(opts, schema, internalPlugins, { name, version, url })\n\n // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n bugsnag._setDelivery(window.XDomainRequest ? dXDomainRequest : dXMLHttpRequest)\n\n bugsnag._logger.debug('Loaded!')\n bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state')\n\n return bugsnag._config.autoTrackSessions\n ? bugsnag.startSession()\n : bugsnag\n },\n start: (opts) => {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.')\n return Bugsnag._client\n }\n Bugsnag._client = Bugsnag.createClient(opts)\n return Bugsnag._client\n },\n isStarted: () => {\n return Bugsnag._client != null\n }\n}\n\nmap(['resetEventCount'].concat(keys(Client.prototype)), (m) => {\n if (/^_/.test(m)) return\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(`Bugsnag.${m}() was called before Bugsnag.start()`)\n Bugsnag._client._depth += 1\n const ret = Bugsnag._client[m].apply(Bugsnag._client, arguments)\n Bugsnag._client._depth -= 1\n return ret\n }\n})\n\nmodule.exports = Bugsnag\n\nmodule.exports.Client = Client\nmodule.exports.Event = Event\nmodule.exports.Session = Session\nmodule.exports.Breadcrumb = Breadcrumb\n\n// Export a \"default\" property for compatibility with ESM imports\nmodule.exports.default = Bugsnag\n", "\nreturn _$notifier_7;\n\n});\n", "module.exports = require('@bugsnag/browser')\n", "(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.BugsnagPluginReact = f()}})(function(){var define,module,exports;\n", "module.exports = class BugsnagPluginReact {\n constructor (...args) {\n // Fetch React from the window object, if it exists\n const globalReact = typeof window !== 'undefined' && window.React\n\n this.name = 'react'\n this.lazy = args.length === 0 && !globalReact\n\n if (!this.lazy) {\n this.React = args[0] || globalReact\n if (!this.React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined')\n }\n }\n\n load (client) {\n if (!this.lazy) {\n const ErrorBoundary = createClass(this.React, client)\n ErrorBoundary.createErrorBoundary = () => ErrorBoundary\n return ErrorBoundary\n }\n\n const BugsnagPluginReactLazyInitializer = function () {\n throw new Error(`@bugsnag/plugin-react was used incorrectly. Valid usage is as follows:\nPass React to the plugin constructor\n\n \\`Bugsnag.start({ plugins: [new BugsnagPluginReact(React)] })\\`\nand then call \\`const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary()\\`\n\nOr if React is not available until after Bugsnag has started,\nconstruct the plugin with no arguments\n \\`Bugsnag.start({ plugins: [new BugsnagPluginReact()] })\\`,\nthen pass in React when available to construct your error boundary\n \\`const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary(React)\\``)\n }\n BugsnagPluginReactLazyInitializer.createErrorBoundary = (React) => {\n if (!React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined')\n return createClass(React, client)\n }\n return BugsnagPluginReactLazyInitializer\n }\n}\n\nconst formatComponentStack = str => {\n const lines = str.split(/\\n/g)\n let ret = ''\n for (let line = 0, len = lines.length; line < len; line++) {\n if (lines[line].length) ret += `${ret.length ? '\\n' : ''}${lines[line].trim()}`\n }\n return ret\n}\n\nconst createClass = (React, client) => class ErrorBoundary extends React.Component {\n constructor (props) {\n super(props)\n this.state = {\n error: null,\n info: null\n }\n this.handleClearError = this.handleClearError.bind(this)\n }\n\n handleClearError () {\n this.setState({ error: null, info: null })\n }\n\n componentDidCatch (error, info) {\n const { onError } = this.props\n const handledState = { severity: 'error', unhandled: true, severityReason: { type: 'unhandledException' } }\n const event = client.Event.create(\n error,\n true,\n handledState,\n 1\n )\n if (info && info.componentStack) info.componentStack = formatComponentStack(info.componentStack)\n event.addMetadata('react', info)\n client._notify(event, onError)\n this.setState({ error, info })\n }\n\n render () {\n const { error } = this.state\n if (error) {\n const { FallbackComponent } = this.props\n if (FallbackComponent) return React.createElement(FallbackComponent, { ...this.state, clearError: this.handleClearError })\n return null\n }\n return this.props.children\n }\n}\n\nmodule.exports.formatComponentStack = formatComponentStack\nmodule.exports.default = module.exports\n", "\nreturn _$src_1;\n\n});\n", "import Bugsnag from '@bugsnag/js';\nimport type { Event as BugsnagEvent } from '@bugsnag/js';\nimport BugsnagPluginReact from '@bugsnag/plugin-react';\nimport { BugsnagPluginCustomError } from '@sonicgarden/bugsnag-plugin-custom-error'\n\nconst customErrorPlugin = new BugsnagPluginCustomError({\n ResizeObserverUndeliveredNotification: [\n 'ResizeObserver loop completed with undelivered notifications',\n ],\n});\n\nexport default function initBugsnag(environment: string) {\n const bugsnagClient = Bugsnag.start({\n // API\u30AD\u30FC\u306F\u516C\u958B\u3055\u308C\u308BJS\u306B\u57CB\u3081\u8FBC\u307E\u308C\u3066\u79D8\u5BC6\u306B\u3067\u304D\u306A\u3044\u3082\u306E\u306A\u306E\u3067\u3001\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306B\u76F4\u66F8\u304D\u3057\u3066\u3057\u307E\u3063\u3066\u3082\u554F\u984C\u306A\u3044\n apiKey: '859b37bfc59dd76e97448ce64cc653d7',\n plugins: [new BugsnagPluginReact(), customErrorPlugin],\n releaseStage: environment,\n enabledReleaseStages: ['staging', 'production', 'staging-de', 'production-de'],\n onError: function (event: BugsnagEvent) {\n if (window.APP.staffId) {\n event.setUser(window.APP.staffId.toString());\n }\n }\n });\n\n // \u5225\u306E script \u30BF\u30B0\u3067\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u4E3B\u8981JS\u30B3\u30FC\u30C9\u3092\u30ED\u30FC\u30C9\u3059\u308B\u304C\u3001\u305D\u3061\u3089\u3067\u3082 Bugsnag \u3092\u4F7F\u3046\u305F\u3081\u306B\u30B0\u30ED\u30FC\u30D0\u30EB\u5909\u6570\u306B\u3059\u308B\n window.bugsnagClient = bugsnagClient;\n}\n", "class BugsnagPluginCustomError {\n constructor(customErrors) {\n this.customErrors = customErrors;\n }\n load(client) {\n client.addOnError((event) => {\n const customError = this.detectCustomError(event.errors[0]);\n if (customError) {\n // eslint-disable-next-line no-param-reassign\n event.errors[0].errorClass = customError;\n }\n });\n }\n detectCustomError(error) {\n return Object.keys(this.customErrors).find((key) => {\n return this.customErrors[key].some((rule) => {\n if (typeof rule === 'string') {\n return error.errorMessage.includes(rule);\n }\n return rule(error);\n });\n });\n }\n}\nexport { BugsnagPluginCustomError };\n", "import initBugsnag from '@/lib/init_bugsnag';\n\nconst environment = process.env.WORKFORCE_ENV;\ninitBugsnag(environment);\n"], "mappings": "6iBAAA,IAAAA,GAAAC,GAAA,CAAAC,GAAAC,KAAA,EAAA,SAAAC,EAAA,CAAA,GAAA,OAAAF,IAAA,UAAA,OAAAC,GAAA,IAAAA,GAAA,QAAAC,EAAA,UAAA,OAAA,QAAA,YAAA,OAAA,IAAA,OAAA,CAAA,EAAAA,CAAA,MAAA,CAAA,IAAAC,EAAA,OAAA,OAAA,IAAAA,EAAA,OAAA,OAAA,OAAA,IAAAA,EAAA,OAAA,OAAA,KAAA,IAAAA,EAAA,KAAAA,EAAA,KAAAA,EAAA,QAAAD,EAAA,CAAA,CAAA,GAAA,UAAA,CAAA,IAAAE,EAAAH,EAAAD,ECAAK,EAAiB,CAAC,aAAc,UAAW,UAAW,MAAO,OAAQ,QAAS,QAAS,QAAQ,ECC/FC,EAAiB,SAACC,EAAKC,EAAIC,EAAU,CAEnC,QADIC,EAAMD,EACDE,EAAI,EAAGC,EAAML,EAAI,OAAQI,EAAIC,EAAKD,IAAKD,EAAMF,EAAGE,EAAKH,EAAII,CAAC,EAAGA,EAAGJ,CAAG,EAC5E,OAAOG,GCDTG,EAAiB,SAACN,EAAKC,EAAE,CAAA,OACvBF,EAAOC,EAAK,SAACE,EAAOK,EAAMH,EAAGJ,EAAG,CAAA,OAAMC,EAAGM,EAAMH,EAAGJ,CAAG,EAAYE,EAAM,OAAOK,CAAI,EAAzBL,GAA4B,CAAA,CAAE,GCFzFM,EAAiB,SAACR,EAAKS,EAAC,CAAA,OACtBV,EAAOC,EAAK,SAACE,EAAOK,EAAMH,EAAGJ,EAAG,CAAA,OAAKE,IAAU,IAAQK,IAASE,GAAG,EAAK,GCF1EC,EAAiB,SAAAC,EAAG,CAAA,OAAI,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,kBCA1DC,EAAkB,CAAE,CAAE,SAAU,MAAQ,qBAAqB,UAAU,EACvEC,EAAa,CACjB,WAAY,iBAAkB,UAAW,iBACzC,gBAAiB,uBAAwB,aAAa,EAIxDC,EAAiB,SAAAH,EAAO,CAGtB,IAAMI,EAAS,CAAA,EACXC,EACJ,IAAKA,KAAQL,EACP,OAAO,UAAU,eAAe,KAAKA,EAAKK,CAAI,GAAGD,EAAO,KAAKC,CAAI,EAEvE,GAAI,CAACJ,EAAiB,OAAOG,EAC7B,QAASX,EAAI,EAAGC,EAAMQ,EAAW,OAAQT,EAAIC,EAAKD,IAC5C,OAAO,UAAU,eAAe,KAAKO,EAAKE,EAAWT,CAAC,CAAC,GAAGW,EAAO,KAAKF,EAAWT,CAAC,CAAC,EAEzF,OAAOW,GCpBTE,EAAiB,SAACC,EAASC,EAAG,CAAA,OAAZD,IAAG,SAAHA,EAAM,GAAGC,IAAG,SAAHA,EAAM,KAAa,SAAAC,EAAK,CAAA,OACjD,OAAOA,GAAU,UACjB,SAAS,GAAKA,EAAO,EAAE,IAAMA,GAC7BA,GAASF,GAAOE,GAASD,ICA3BE,EAAiB,SAAAD,EAAK,CAAA,OAAI,OAAOA,GAAU,YAAeV,EAAQU,CAAK,GAAKd,EAAOc,EAAO,SAAAzB,EAAC,CAAA,OAAI,OAAOA,GAAM,WAAU,EAAE,SAAWyB,EAAM,QCHzIE,EAAiB,SAAAF,EAAK,CAAA,OAAI,OAAOA,GAAU,UAAY,CAAC,CAACA,EAAM,aCUzDG,EAAoB,UAAA,CAAA,MAAO,CAAE,oBAAqB,GAAM,oBAAqB,KAEnFC,EAAe,OAAS,CACtB,OAAQ,CACN,aAAc,UAAA,CAAA,OAAM,MACpB,QAAS,cACT,SAAUF,GAEZ,WAAY,CACV,aAAc,UAAA,GACd,QAAS,qBACT,SAAU,SAAAF,EAAK,CAAA,OAAIA,IAAU,QAAaE,EAAiBF,CAAK,IAElE,QAAS,CACP,aAAc,UAAA,GACd,QAAS,qBACT,SAAU,SAAAA,EAAK,CAAA,OAAIA,IAAU,QAAaE,EAAiBF,CAAK,IAElE,iBAAkB,CAChB,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,uBACT,SAAU,SAAAA,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,KAEjD,kBAAmB,CACjB,aAAc,UAAA,CAAA,OAAMG,EAAiB,GACrC,QAAS,8GACT,mBAAoB,GACpB,SAAU,SAAAH,EAAS,CAEjB,GAAI,OAAOA,GAAU,UAAY,CAACA,EAAO,MAAO,GAChD,IAAMK,EAAeX,EAAKM,CAAK,EACzBM,EAAcZ,EAAKS,EAAiB,CAAE,EAI5C,MAFI,EAAAjB,EAAOmB,EAAc,SAAAE,EAAC,CAAA,OAAInB,EAASkB,EAAaC,CAAC,EAAC,EAAE,OAASF,EAAa,QAE1EnB,EAAOQ,EAAKM,CAAK,EAAG,SAAAO,EAAC,CAAA,OAAI,OAAOP,EAAMO,CAAC,GAAM,UAAS,EAAE,OAAS,KAIzE,QAAS,CACP,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,6CACT,SAAUN,GAEZ,UAAW,CACT,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,6CACT,SAAUA,GAEZ,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,6CACT,SAAUA,GAEZ,UAAW,CACT,aAAc,SAACO,EAAc,CAE3B,OAAI,OAAOA,EAAc,IACf,CACN,OAAQ,6BACR,SAAU,gCAGJ,CAAE,OAAQ,KAAM,SAAU,OAGtC,QAAS,oEACT,SAAU,SAACzB,EAAG,CAAA,OAEXA,GAAO,OAAOA,GAAQ,UAGrBmB,EAAiBnB,EAAI,MAAM,GAAKmB,EAAiBnB,EAAI,QAAQ,GAG/DG,EAAOQ,EAAKX,CAAG,EAAG,SAAAwB,EAAC,CAAA,MAAI,CAACnB,EAAS,CAAC,SAAU,UAAU,EAAGmB,CAAC,EAAC,EAAE,SAAW,IAE5E,kBAAmB,CACjB,aAAc,SAAAxB,EAAG,CAAA,MAAI,IACrB,QAAS,uBACT,SAAU,SAAAA,EAAG,CAAA,OAAIA,IAAQ,IAAQA,IAAQ,KAE3C,qBAAsB,CACpB,aAAc,UAAA,CAAA,OAAM,MACpB,QAAS,gCACT,SAAU,SAAAiB,EAAK,CAAA,OAAIA,IAAU,MAASV,EAAQU,CAAK,GAAKd,EAAOc,EAAO,SAAAzB,EAAC,CAAA,OAAI,OAAOA,GAAM,SAAQ,EAAE,SAAWyB,EAAM,SAErH,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,cACpB,QAAS,qBACT,SAAU,SAAAA,EAAK,CAAA,OAAI,OAAOA,GAAU,UAAYA,EAAM,SAExD,eAAgB,CACd,aAAc,UAAA,CAAA,MAAM,KACpB,QAAS,+BACT,SAAU,SAAAA,EAAK,CAAA,OAAIH,EAAS,EAAG,GAAG,EAAEG,CAAK,IAE3C,uBAAwB,CACtB,aAAc,UAAA,CAAA,OAAMtB,GACpB,QAAO,2DAA6DA,EAAiB,KAAK,GAAG,EAAC,IAC9F,SAAU,SAAAsB,EAAK,CAAA,OAAIA,IAAU,MAASV,EAAQU,CAAK,GAAKrB,EAAOqB,EAAO,SAAClB,EAAO2B,EAAc,CAC1F,OAAI3B,IAAU,GAAcA,EACrBM,EAASV,EAAkB+B,CAAS,GAC1C,EAAI,IAET,QAAS,CACP,aAAc,UAAA,GACd,QAAS,qBACT,SAAU,SAAAT,EAAK,CAAA,OAAIA,IAAU,QAAa,OAAOA,GAAU,WAE7D,KAAM,CACJ,aAAc,UAAA,CAAA,MAAO,CAAA,GACrB,QAAS,0DACT,SAAU,SAAAA,EAAK,CAAA,OACZA,IAAU,MACVA,GAASrB,EACRe,EAAKM,CAAK,EACV,SAAClB,EAAO4B,EAAG,CAAA,OAAK5B,GAASM,EAAS,CAAC,KAAM,QAAS,MAAM,EAAGsB,CAAG,GAC9D,EACF,IAEJ,SAAU,CACR,aAAc,UAAA,CAAA,MAAO,CAAA,GACrB,QAAS,sBACT,SAAU,SAACV,EAAK,CAAA,OAAK,OAAOA,GAAU,UAAYA,IAAU,OAE9D,OAAQ,CACN,aAAc,UAAA,GACd,QAAS,wEACT,SAAU,SAAAA,EAAK,CAAA,MACZ,CAACA,GACDA,GAASrB,EACR,CAAC,QAAS,OAAQ,OAAQ,OAAO,EACjC,SAACG,EAAO6B,EAAM,CAAA,OAAK7B,GAAS,OAAOkB,EAAMW,CAAM,GAAM,YACrD,EACF,IAEJ,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,CAAC,UAAU,GAC/B,QAAS,wCACT,SAAU,SAAAX,EAAK,CAAA,OACbV,EAAQU,CAAK,GAAKA,EAAM,SAAWd,EAAOc,EAAO,SAAAY,EAAC,CAAA,OAC/C,OAAOA,GAAM,UAAaA,GAAK,OAAOA,EAAE,MAAS,WACpD,EAAE,SAEN,QAAS,CACP,aAAc,UAAA,CAAA,MAAO,CAAA,GACrB,QAAS,uCACT,SAAU,SAAAZ,EAAK,CAAA,OACbV,EAAQU,CAAK,GAAKA,EAAM,SAAWd,EAAOc,EAAO,SAAAa,EAAC,CAAA,OAC/CA,GAAK,OAAOA,GAAM,UAAY,OAAOA,EAAE,MAAS,WACnD,EAAE,SAEN,aAAc,CACZ,aAAc,UAAA,CAAA,MAAM,CAAA,GACpB,QAAS,4DACT,SAAU,SAAAb,EAAK,CAAA,OACbV,EAAQU,CAAK,GAAKA,EAAM,SAAWd,EAAOc,EAAO,SAAAc,EAAO,CAAA,OACtDA,GAAW,OAAOA,GAAY,UAAY,OAAOA,EAAQ,MAAS,SACpE,EAAE,SAEN,0CAA2C,CACzC,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,uBACT,SAAU,SAAAd,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,KAEjD,qBAAsB,CACpB,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,uBACT,SAAU,SAAAA,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,MCjLnD,IAAAe,EAAiB,SAAUC,EAAQ,CACjC,QAAShC,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIiC,EAAS,UAAUjC,CAAC,EACxB,QAAS0B,KAAOO,EACV,OAAO,UAAU,eAAe,KAAKA,EAAQP,CAAG,IAClDM,EAAON,CAAG,EAAIO,EAAOP,CAAG,GAI9B,OAAOM,GCRTE,EAAiB,SAACtC,EAAKC,EAAE,CAAA,OACvBF,EAAOC,EAAK,SAACE,EAAOK,EAAMH,EAAGJ,EAAG,CAAA,OAAKE,EAAM,OAAOD,EAAGM,EAAMH,EAAGJ,CAAG,CAAC,GAAG,CAAA,CAAE,2NCJzE,IAAQuC,EAAMf,EAAN,OAIRgB,GAAiB,CACf,aAAcL,EAAO,CAAA,EAAII,EAAO,aAAc,CAC5C,aAAc,UAAM,CAClB,MAAI,qBAAqB,KAAK,OAAO,SAAS,IAAI,EAAU,cACrD,cAEV,EACD,QAAOE,EAAA,CAAA,EACFF,EAAO,QAAO,CACjB,aAAc,UAAA,CAAA,MAAM,WAAS,EAE/B,OAAQJ,EAAO,CAAA,EAAII,EAAO,OAAQ,CAChC,aAAc,UAAA,CAAA,OAEX,OAAO,QAAY,KAAe,OAAO,QAAQ,OAAU,WACxDG,GAAkB,EAClB,QACP,GAGGA,GAAqB,UAAM,CAC/B,IAAMC,EAAS,CAAA,EACTC,EAAa,QAAQ,IAC3B,OAAAN,EAAI,CAAC,QAAS,OAAQ,OAAQ,OAAO,EAAG,SAACP,EAAW,CAClD,IAAMc,EAAgB,QAAQd,CAAM,EACpCY,EAAOZ,CAAM,EAAI,OAAOc,GAAkB,WACtCA,EAAc,KAAK,QAAS,WAAW,EACvCD,EAAW,KAAK,QAAS,WAAW,EACzC,EACMD,GCjCHG,IAAU,UAAA,CACd,SAAAA,EAAaC,EAASC,EAAUC,EAAMC,EAAwB,CAAxBA,IAAS,SAATA,EAAY,IAAI,MACpD,KAAK,KAAOD,EACZ,KAAK,QAAUF,EACf,KAAK,SAAWC,EAChB,KAAK,UAAYE,EAClB,IAAAC,EAAAL,EAAA,UAAA,OAAAK,EAED,OAAA,UAAU,CACR,MAAO,CACL,KAAM,KAAK,KACX,KAAM,KAAK,QACX,UAAW,KAAK,UAChB,SAAU,KAAK,WAElBL,IAAA,EAGHM,GAAiBN,SClBhB,SAASO,EAAMC,EAAS,CACrB,aAII,OAAOzD,GAAW,YAAcA,EAAO,IACvCA,EAAO,aAAc,CAAA,EAAIyD,CAAO,EACzB,OAAOC,GAAY,SAC1BA,EAAiBD,EAAO,EAExBD,EAAK,WAAaC,EAAO,IAE/B,KAAM,UAAW,CACf,aACA,SAASE,EAAUC,EAAG,CAClB,MAAO,CAAC,MAAM,WAAWA,CAAC,CAAC,GAAK,SAASA,CAAC,EAG9C,SAASC,EAAYC,EAAK,CACtB,OAAOA,EAAI,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAI,UAAU,CAAC,EAGxD,SAASC,EAAQ3B,EAAG,CAChB,OAAO,UAAW,CACd,OAAO,KAAKA,CAAC,GAIrB,IAAI4B,EAAe,CAAC,gBAAiB,SAAU,WAAY,YAAY,EACnEC,EAAe,CAAC,eAAgB,YAAY,EAC5CC,EAAc,CAAC,WAAY,eAAgB,QAAQ,EACnDC,EAAa,CAAC,MAAM,EACpBC,EAAc,CAAC,YAAY,EAE3BC,EAAQL,EAAa,OAAOC,EAAcC,EAAaC,EAAYC,CAAW,EAElF,SAASE,EAAWxD,EAAK,CACrB,GAAKA,EACL,QAASP,EAAI,EAAGA,EAAI8D,EAAM,OAAQ9D,IAC1BO,EAAIuD,EAAM9D,CAAC,CAAC,IAAM,QAClB,KAAK,MAAQsD,EAAYQ,EAAM9D,CAAC,CAAC,CAAC,EAAEO,EAAIuD,EAAM9D,CAAC,CAAC,CAAC,EAK7D+D,EAAW,UAAY,CACnB,QAAS,UAAW,CAChB,OAAO,KAAK,MAEhB,QAAS,SAASC,EAAG,CACjB,GAAI,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,iBACtC,MAAM,IAAI,UAAU,uBAAuB,EAE/C,KAAK,KAAOA,GAGhB,cAAe,UAAW,CACtB,OAAO,KAAK,YAEhB,cAAe,SAASA,EAAG,CACvB,GAAIA,aAAaD,EACb,KAAK,WAAaC,UACXA,aAAa,OACpB,KAAK,WAAa,IAAID,EAAWC,CAAC,MAElC,OAAM,IAAI,UAAU,6CAA6C,GAIzE,SAAU,UAAW,CACjB,IAAIC,EAAW,KAAK,YAAW,GAAM,GACjCC,EAAa,KAAK,cAAa,GAAM,GACrCC,EAAe,KAAK,gBAAe,GAAM,GACzCC,EAAe,KAAK,gBAAe,GAAM,GAC7C,OAAI,KAAK,UAAS,EACVH,EACO,WAAaA,EAAW,IAAMC,EAAa,IAAMC,EAAe,IAEpE,UAAYD,EAAa,IAAMC,EAEtCC,EACOA,EAAe,KAAOH,EAAW,IAAMC,EAAa,IAAMC,EAAe,IAE7EF,EAAW,IAAMC,EAAa,IAAMC,IAInDJ,EAAW,WAAa,SAAgCR,EAAK,CACzD,IAAIc,EAAiBd,EAAI,QAAQ,GAAG,EAChCe,EAAef,EAAI,YAAY,GAAG,EAElCa,EAAeb,EAAI,UAAU,EAAGc,CAAc,EAC9CE,EAAOhB,EAAI,UAAUc,EAAiB,EAAGC,CAAY,EAAE,MAAM,GAAG,EAChEE,EAAiBjB,EAAI,UAAUe,EAAe,CAAC,EAEnD,GAAIE,EAAe,QAAQ,GAAG,IAAM,EAChC,IAAIC,EAAQ,gCAAgC,KAAKD,EAAgB,EAAE,EAC/DP,EAAWQ,EAAM,CAAC,EAClBP,EAAaO,EAAM,CAAC,EACpBN,EAAeM,EAAM,CAAC,EAG9B,OAAO,IAAIV,EAAW,CAClB,aAAcK,EACd,KAAMG,GAAQ,OACd,SAAUN,EACV,WAAYC,GAAc,OAC1B,aAAcC,GAAgB,OACjC,GAGL,QAASnE,EAAI,EAAGA,EAAIyD,EAAa,OAAQzD,IACrC+D,EAAW,UAAU,MAAQT,EAAYG,EAAazD,CAAC,CAAC,CAAC,EAAIwD,EAAQC,EAAazD,CAAC,CAAC,EACpF+D,EAAW,UAAU,MAAQT,EAAYG,EAAazD,CAAC,CAAC,CAAC,GAAK,SAAS6B,EAAG,CACtE,OAAO,SAASmC,EAAG,CACf,KAAKnC,CAAC,EAAI,EAAQmC,KAEvBP,EAAazD,CAAC,CAAC,EAGtB,QAAS0E,EAAI,EAAGA,EAAIhB,EAAa,OAAQgB,IACrCX,EAAW,UAAU,MAAQT,EAAYI,EAAagB,CAAC,CAAC,CAAC,EAAIlB,EAAQE,EAAagB,CAAC,CAAC,EACpFX,EAAW,UAAU,MAAQT,EAAYI,EAAagB,CAAC,CAAC,CAAC,GAAK,SAAS7C,EAAG,CACtE,OAAO,SAASmC,EAAG,CACf,GAAI,CAACZ,EAAUY,CAAC,EACZ,MAAM,IAAI,UAAUnC,EAAI,mBAAmB,EAE/C,KAAKA,CAAC,EAAI,OAAOmC,CAAC,KAEvBN,EAAagB,CAAC,CAAC,EAGtB,QAASnD,EAAI,EAAGA,EAAIoC,EAAY,OAAQpC,IACpCwC,EAAW,UAAU,MAAQT,EAAYK,EAAYpC,CAAC,CAAC,CAAC,EAAIiC,EAAQG,EAAYpC,CAAC,CAAC,EAClFwC,EAAW,UAAU,MAAQT,EAAYK,EAAYpC,CAAC,CAAC,CAAC,GAAK,SAASM,EAAG,CACrE,OAAO,SAASmC,EAAG,CACf,KAAKnC,CAAC,EAAI,OAAOmC,CAAC,KAEvBL,EAAYpC,CAAC,CAAC,EAGrB,OAAOwC,EACV,aC9IA,SAASd,EAAMC,EAAS,CACrB,aAII,OAAOzD,GAAW,YAAcA,EAAO,IACvCA,EAAO,kBAAmB,CAAC,YAAY,EAAGyD,CAAO,EAC1C,OAAOyB,IAAY,SAC1BA,GAAiBzB,EAAQC,CAAqB,EAE9CF,EAAK,eAAiBC,EAAQD,EAAK,UAAU,IAEnD,KAAM,SAASc,EAAY,CACzB,MAAO,CACH,UAAW,SAAmCa,EAAM,CAChD,IAAIC,EAAQ,CAAA,EACRC,EAAe,GAEf,OAAOF,GAAS,UAAY,OAAOA,EAAK,cAAiB,WACzDE,EAAeF,EAAK,cAIxB,QADIG,EAAO,UAAU,OACdA,GAAQF,EAAM,OAASC,GAAgBC,EAAK,WAAc,CAG7D,QADIR,EAAO,IAAI,MAAMQ,EAAK,UAAa,MAAM,EACpC/E,EAAI,EAAGA,EAAIuE,EAAK,OAAQ,EAAEvE,EAC/BuE,EAAKvE,CAAC,EAAI+E,EAAK,UAAa/E,CAAC,EAE7B,gCAAgC,KAAK+E,EAAK,SAAQ,CAAE,EACpDF,EAAM,KAAK,IAAId,EAAW,CAAC,aAAc,OAAO,IAAM,OAAW,KAAMQ,EAAK,CAAC,EAE7EM,EAAM,KAAK,IAAId,EAAW,CAAC,KAAMQ,EAAK,CAAC,EAG3C,GAAI,CACAQ,EAAOA,EAAK,YACJ,CACR,OAGR,OAAOF,IAGlB,aC5CA,SAAS5B,EAAMC,EAAS,CACrB,aAII,OAAOzD,GAAW,YAAcA,EAAO,IACvCA,EAAO,qBAAsB,CAAC,YAAY,EAAGyD,CAAO,EAC7C,OAAO8B,IAAY,SAC1BA,GAAiB9B,EAAQC,CAAqB,EAE9CF,EAAK,iBAAmBC,EAAQD,EAAK,UAAU,IAErD,KAAM,SAA0Bc,EAAY,CAC1C,aAEA,IAAIkB,EAA8B,eAC9BC,EAAyB,iCACzBC,EAA4B,8BAEhC,MAAO,CAOH,MAAO,SAAiCC,EAAO,CAC3C,GAAI,OAAOA,EAAM,WAAe,KAAe,OAAOA,EAAM,iBAAiB,EAAM,IAC/E,OAAO,KAAK,WAAWA,CAAK,EACzB,GAAIA,EAAM,OAASA,EAAM,MAAM,MAAMF,CAAsB,EAC9D,OAAO,KAAK,YAAYE,CAAK,EAC1B,GAAIA,EAAM,MACb,OAAO,KAAK,gBAAgBA,CAAK,EAEjC,MAAM,IAAI,MAAM,iCAAiC,GAKzD,gBAAiB,SAA2CC,EAAS,CAEjE,GAAIA,EAAQ,QAAQ,GAAG,IAAM,GACzB,MAAO,CAACA,CAAO,EAGnB,IAAIC,EAAS,+BACTb,EAAQa,EAAO,KAAKD,EAAQ,QAAQ,QAAS,EAAE,CAAC,EACpD,MAAO,CAACZ,EAAM,CAAC,EAAGA,EAAM,CAAC,GAAK,OAAWA,EAAM,CAAC,GAAK,MAAS,GAGlE,YAAa,SAAuCW,EAAO,CACvD,IAAIG,EAAWH,EAAM,MAAM,MAAM;CAAI,EAAE,OAAO,SAASI,EAAM,CACzD,MAAO,CAAC,CAACA,EAAK,MAAMN,CAAsB,GAC3C,IAAI,EAEP,OAAOK,EAAS,IAAI,SAASC,EAAM,CAC3BA,EAAK,QAAQ,QAAQ,EAAI,KAEzBA,EAAOA,EAAK,QAAQ,aAAc,MAAM,EAAE,QAAQ,+BAAgC,EAAE,GAExF,IAAIC,EAAgBD,EAAK,QAAQ,OAAQ,EAAE,EAAE,QAAQ,eAAgB,GAAG,EAIpEE,EAAWD,EAAc,MAAM,0BAA0B,EAG7DA,EAAgBC,EAAWD,EAAc,QAAQC,EAAS,CAAC,EAAG,EAAE,EAAID,EAEpE,IAAIE,EAASF,EAAc,MAAM,KAAK,EAAE,MAAM,CAAC,EAE3CG,EAAgB,KAAK,gBAAgBF,EAAWA,EAAS,CAAC,EAAIC,EAAO,IAAG,CAAE,EAC1EvB,EAAeuB,EAAO,KAAK,GAAG,GAAK,OACnC1B,EAAW,CAAC,OAAQ,aAAa,EAAE,QAAQ2B,EAAc,CAAC,CAAC,EAAI,GAAK,OAAYA,EAAc,CAAC,EAEnG,OAAO,IAAI7B,EAAW,CAClB,aAAcK,EACd,SAAUH,EACV,WAAY2B,EAAc,CAAC,EAC3B,aAAcA,EAAc,CAAC,EAC7B,OAAQJ,EACX,GACF,IAAI,GAGX,gBAAiB,SAA2CJ,EAAO,CAC/D,IAAIG,EAAWH,EAAM,MAAM,MAAM;CAAI,EAAE,OAAO,SAASI,EAAM,CACzD,MAAO,CAACA,EAAK,MAAML,CAAyB,GAC7C,IAAI,EAEP,OAAOI,EAAS,IAAI,SAASC,EAAM,CAM/B,GAJIA,EAAK,QAAQ,SAAS,EAAI,KAC1BA,EAAOA,EAAK,QAAQ,mDAAoD,KAAK,GAG7EA,EAAK,QAAQ,GAAG,IAAM,IAAMA,EAAK,QAAQ,GAAG,IAAM,GAElD,OAAO,IAAIzB,EAAW,CAClB,aAAcyB,EACjB,EAED,IAAIK,EAAoB,6BACpBC,EAAUN,EAAK,MAAMK,CAAiB,EACtCzB,EAAe0B,GAAWA,EAAQ,CAAC,EAAIA,EAAQ,CAAC,EAAI,OACpDF,EAAgB,KAAK,gBAAgBJ,EAAK,QAAQK,EAAmB,EAAE,CAAC,EAE5E,OAAO,IAAI9B,EAAW,CAClB,aAAcK,EACd,SAAUwB,EAAc,CAAC,EACzB,WAAYA,EAAc,CAAC,EAC3B,aAAcA,EAAc,CAAC,EAC7B,OAAQJ,EACX,GAEN,IAAI,GAGX,WAAY,SAAsCO,EAAG,CACjD,MAAI,CAACA,EAAE,YAAeA,EAAE,QAAQ,QAAQ;CAAI,EAAI,IAC5CA,EAAE,QAAQ,MAAM;CAAI,EAAE,OAASA,EAAE,WAAW,MAAM;CAAI,EAAE,OACjD,KAAK,YAAYA,CAAC,EACjBA,EAAE,MAGH,KAAK,aAAaA,CAAC,EAFnB,KAAK,aAAaA,CAAC,GAMlC,YAAa,SAAuCA,EAAG,CAKnD,QAJIC,EAAS,oCACTC,EAAQF,EAAE,QAAQ,MAAM;CAAI,EAC5BpF,EAAS,CAAA,EAEJX,EAAI,EAAGC,EAAMgG,EAAM,OAAQjG,EAAIC,EAAKD,GAAK,EAAG,CACjD,IAAIkG,EAAQF,EAAO,KAAKC,EAAMjG,CAAC,CAAC,EAC5BkG,GACAvF,EAAO,KAAK,IAAIoD,EAAW,CACvB,SAAUmC,EAAM,CAAC,EACjB,WAAYA,EAAM,CAAC,EACnB,OAAQD,EAAMjG,CAAC,EAClB,CAAC,EAIV,OAAOW,GAGX,aAAc,SAAwCoF,EAAG,CAKrD,QAJIC,EAAS,6DACTC,EAAQF,EAAE,WAAW,MAAM;CAAI,EAC/BpF,EAAS,CAAA,EAEJX,EAAI,EAAGC,EAAMgG,EAAM,OAAQjG,EAAIC,EAAKD,GAAK,EAAG,CACjD,IAAIkG,EAAQF,EAAO,KAAKC,EAAMjG,CAAC,CAAC,EAC5BkG,GACAvF,EAAO,KACH,IAAIoD,EAAW,CACX,aAAcmC,EAAM,CAAC,GAAK,OAC1B,SAAUA,EAAM,CAAC,EACjB,WAAYA,EAAM,CAAC,EACnB,OAAQD,EAAMjG,CAAC,EAClB,CACL,EAIR,OAAOW,GAIX,aAAc,SAAwCyE,EAAO,CACzD,IAAIG,EAAWH,EAAM,MAAM,MAAM;CAAI,EAAE,OAAO,SAASI,EAAM,CACzD,MAAO,CAAC,CAACA,EAAK,MAAMP,CAA2B,GAAK,CAACO,EAAK,MAAM,mBAAmB,GACpF,IAAI,EAEP,OAAOD,EAAS,IAAI,SAASC,EAAM,CAC/B,IAAIG,EAASH,EAAK,MAAM,GAAG,EACvBI,EAAgB,KAAK,gBAAgBD,EAAO,IAAG,CAAE,EACjDQ,EAAgBR,EAAO,MAAK,GAAM,GAClCvB,EAAe+B,EACd,QAAQ,iCAAkC,IAAI,EAC9C,QAAQ,aAAc,EAAE,GAAK,OAC9BC,EACAD,EAAa,MAAM,aAAa,IAChCC,EAAUD,EAAa,QAAQ,qBAAsB,IAAI,GAE7D,IAAI5B,EAAQ6B,IAAY,QAAaA,IAAY,4BAC7C,OAAYA,EAAQ,MAAM,GAAG,EAEjC,OAAO,IAAIrC,EAAW,CAClB,aAAcK,EACd,KAAMG,EACN,SAAUqB,EAAc,CAAC,EACzB,WAAYA,EAAc,CAAC,EAC3B,aAAcA,EAAc,CAAC,EAC7B,OAAQJ,EACX,GACF,IAAI,IAGlB,ECzMD,IAAAa,GAAiBrB,GCAjBsB,EAAiB,SAAUC,EAAMC,EAAUC,EAAO7B,EAAM,CACtD,IAAI8B,EAAe9B,GAAQA,EAAK,aAAeA,EAAK,aAAe,CAAA,EAC/D+B,EAAgB/B,GAAQA,EAAK,cAAgBA,EAAK,cAAgB,CAAA,EACtE,OAAO,KAAK,UACVgC,GAA2BL,EAAMG,EAAcC,CAAa,EAC5DH,EACAC,CACF,GAGEI,GAAY,GACZC,GAAY,KACZC,GAAsB,EAEtBC,EAAmB,MAEvB,SAASC,GAASC,EAAG,CACnB,OAAOA,aAAa,OAClB,uCAAuC,KAAK,OAAO,UAAU,SAAS,KAAKA,CAAC,CAAC,EAGjF,SAASC,GAAeC,EAAK,CAC3B,MAAO,aAAeA,EAAMA,EAAI,QAAU,KAAO,IAGnD,SAASC,GAAMC,EAAUC,EAAQ,CAC/B,QAASvH,EAAI,EAAGC,EAAMqH,EAAS,OAAQtH,EAAIC,EAAKD,IAC9C,GAAIsH,EAAStH,CAAC,IAAMuH,EAAQ,MAAO,GAErC,MAAO,GAIT,SAASC,GAAcC,EAAOC,EAAM,CAClC,QAAS1H,EAAI,EAAGC,EAAMwH,EAAM,OAAQzH,EAAIC,EAAKD,IAC3C,GAAI0H,EAAK,QAAQD,EAAMzH,CAAC,CAAC,IAAM,EAAG,MAAO,GAE3C,MAAO,GAGT,SAAS2H,GAAcC,EAAUlG,EAAK,CACpC,QAAS1B,EAAI,EAAGC,EAAM2H,EAAS,OAAQ5H,EAAIC,EAAKD,IAE9C,GADI,OAAO4H,EAAS5H,CAAC,GAAM,UAAY4H,EAAS5H,CAAC,EAAE,YAAW,IAAO0B,EAAI,YAAW,GAChFkG,EAAS5H,CAAC,GAAK,OAAO4H,EAAS5H,CAAC,EAAE,MAAS,YAAc4H,EAAS5H,CAAC,EAAE,KAAK0B,CAAG,EAAG,MAAO,GAE7F,MAAO,GAGT,SAASmG,GAAStH,EAAK,CACrB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,IAAM,iBAGjD,SAASuH,GAAevH,EAAKK,EAAM,CACjC,GAAI,CACF,OAAOL,EAAIK,CAAI,QACRwG,EAAK,CACZ,OAAOD,GAAcC,CAAG,GAI5B,SAASR,GAA4BrG,EAAKmG,EAAcC,EAAe,CACrE,IAAIoB,EAAO,CAAA,EACPC,EAAQ,EAEZ,SAASC,EAAO1H,EAAKmH,EAAM,CACzB,SAASQ,GAAiB,CACxB,OAAOR,EAAK,OAASX,IAAuBiB,EAAQlB,GAMtD,GAHAkB,IAEIN,EAAK,OAASb,IACdqB,EAAa,EAAI,OAAOlB,EAC5B,GAAIzG,IAAQ,MAAQ,OAAOA,GAAQ,SAAU,OAAOA,EACpD,GAAI8G,GAAKU,EAAMxH,CAAG,EAAG,MAAO,aAI5B,GAFAwH,EAAK,KAAKxH,CAAG,EAET,OAAOA,EAAI,QAAW,WACxB,GAAI,CAGFyH,IACA,IAAIG,EAAUF,EAAM1H,EAAI,OAAM,EAAImH,CAAI,EACtC,OAAAK,EAAK,IAAG,EACDI,QACAf,EAAK,CACZ,OAAOD,GAAcC,CAAG,EAI5B,IAAIgB,EAAKnB,GAAQ1G,CAAG,EACpB,GAAI6H,EAAI,CACNJ,IACA,IAAIK,EAAUJ,EAAM,CAAE,KAAM1H,EAAI,KAAM,QAASA,EAAI,SAAWmH,CAAI,EAClE,OAAAK,EAAK,IAAG,EACDM,EAGT,GAAIR,GAAQtH,CAAG,EAAG,CAEhB,QADI+H,EAAU,CAAA,EACLtI,EAAI,EAAGC,EAAMM,EAAI,OAAQP,EAAIC,EAAKD,IAAK,CAC9C,GAAIkI,EAAa,EAAI,CACnBI,EAAQ,KAAKtB,CAAgB,EAC7B,MAEFsB,EAAQ,KAAKL,EAAM1H,EAAIP,CAAC,EAAG0H,EAAK,OAAO,IAAI,CAAC,CAAC,EAE/C,OAAAK,EAAK,IAAG,EACDO,EAGT,IAAI3H,EAAS,CAAA,EACb,GAAI,CACF,QAASC,KAAQL,EACf,GAAK,OAAO,UAAU,eAAe,KAAKA,EAAKK,CAAI,EACnD,IAAI4G,GAAab,EAAee,EAAK,KAAK,GAAG,CAAC,GAAKC,GAAajB,EAAc9F,CAAI,EAAG,CACnFD,EAAOC,CAAI,EAAI,aACf,SAEF,GAAIsH,EAAa,EAAI,CACnBvH,EAAOC,CAAI,EAAIoG,EACf,MAEFrG,EAAOC,CAAI,EAAIqH,EAAMH,GAAcvH,EAAKK,CAAI,EAAG8G,EAAK,OAAO9G,CAAI,CAAC,QAExD,CAAA,CACZ,OAAAmH,EAAK,IAAG,EACDpH,EAGT,OAAOsH,EAAM1H,EAAK,CAAA,CAAE,EC9HtB,SAASgI,GAAKC,EAAkBC,EAAqBC,EAAMC,EAAS,CAClE,GAAI,OAAOD,GAAS,SAIpB,CAAIC,IAAY,OACdA,EAAU,KACDA,IAAY,MAAQ,OAAOA,GAAY,WAChDA,EAAUrC,EAAcqC,CAAO,GAGjC,IAAMC,EAAgBH,EAAoBC,CAAI,EAC9C,GAAI,OAAOE,GAAkB,SAAU,CACrCJ,EAAiBI,CAAa,EAAI,CAAE,KAAAF,EAAM,QAAAC,GAC1C,OAGFH,EAAiB,KAAK,CAAE,KAAAE,EAAM,QAAAC,EAAS,EACvCF,EAAoBC,CAAI,EAAIF,EAAiB,OAAS,GAGxD,SAASK,GAAOL,EAAkBM,EAAaL,EAAqB,CAClE,GAAKnI,EAAQwI,CAAW,EAIxB,SAAS9I,EAAI,EAAGA,EAAI8I,EAAY,OAAQ,EAAE9I,EAAG,CAC3C,IAAM8B,EAAUgH,EAAY9I,CAAC,EAEzB8B,IAAY,MAAQ,OAAOA,GAAY,UAK3CyG,GAAIC,EAAkBC,EAAqB3G,EAAQ,KAAMA,EAAQ,OAAO,EAG1E,OAAO0G,GAMT,SAASO,GAAYC,EAAc,CACjC,OAAO9G,EACLhC,EAAO8I,EAAc,OAAO,EAC5B,SAAAC,EAAuB,CAAA,IAApBP,EAAIO,EAAJ,KAAMN,EAAOM,EAAP,QACDC,EAAO,CAAE,YAAaR,GAG5B,OAAI,OAAOC,GAAY,WACrBO,EAAK,QAAUP,GAGVO,EAEX,EAGF,SAASC,GAAOC,EAAUC,EAAeX,EAAM,CAC7C,IAAME,EAAgBS,EAAcX,CAAI,EACpC,OAAOE,GAAkB,WAC3BQ,EAASR,CAAa,EAAI,KAC1B,OAAOS,EAAcX,CAAI,GAI7B,IAAAY,EAAiB,CAAE,IAAAf,GAAK,MAAAY,GAAO,MAAAN,GAAO,WAAAE,ICvEtCQ,GAAiB,SAAAnC,EAAG,CAAA,MAClB,CAAC,CAACA,IACD,CAAC,CAACA,EAAI,OAAS,CAAC,CAACA,EAAI,YAAc,CAAC,CAACA,EAAI,iBAAiB,IAC3D,OAAQA,EAAI,OAASA,EAAI,YAAcA,EAAI,iBAAiB,IAAO,UACnEA,EAAI,QAAaA,EAAI,KAAI,KAAKA,EAAI,SCApCoC,GAAiBC,GASjB,SAASA,GAAQzI,EAAO,CACtB,OAAQ,OAAO,UAAU,SAAS,KAAKA,CAAK,EAAC,CAC3C,IAAK,iBAAkB,MAAO,GAC9B,IAAK,qBAAsB,MAAO,GAClC,IAAK,wBAAyB,MAAO,GACrC,QAAS,OAAOA,aAAiB,OCnBrC,IAAA0I,GAAiBF,GCEXG,GAAM,SAACC,EAAOC,EAASC,EAAUC,EAAa,CAAA,IAAAC,EAClD,GAAKH,EACL,KAAII,EAGJ,GAAIH,IAAa,KAAM,OAAOI,GAAMN,EAAOC,CAAO,EAG9C,OAAOC,GAAa,WAAUG,EAAUH,GACxC,OAAOA,GAAa,WAAUG,GAAOD,EAAA,CAAA,EAAAA,EAAMF,CAAQ,EAAGC,EAAQC,IAG7DC,IAGDJ,IAAY,aAAeA,IAAY,eAAiBA,IAAY,cAKnED,EAAMC,CAAO,IAAGD,EAAMC,CAAO,EAAI,CAAA,GAGtCD,EAAMC,CAAO,EAAI9H,EAAO,CAAA,EAAI6H,EAAMC,CAAO,EAAGI,CAAO,MAG/CE,GAAM,SAACP,EAAOC,EAASnI,EAAQ,CACnC,GAAI,OAAOmI,GAAY,SACvB,IAAI,CAACnI,EACH,OAAOkI,EAAMC,CAAO,EAEtB,GAAID,EAAMC,CAAO,EACf,OAAOD,EAAMC,CAAO,EAAEnI,CAAG,IAKvBwI,GAAQ,SAACN,EAAOC,EAASnI,EAAQ,CACrC,GAAI,OAAOmI,GAAY,SAGvB,IAAI,CAACnI,EAAK,CACR,OAAOkI,EAAMC,CAAO,EACpB,OAIEA,IAAY,aAAeA,IAAY,eAAiBA,IAAY,aAKpED,EAAMC,CAAO,GACf,OAAOD,EAAMC,CAAO,EAAEnI,CAAG,IAI7B0I,EAAiB,CAAE,IAAAT,GAAK,IAAAQ,GAAK,MAAAD,+NClDW,IAElCG,GAAK,UAAA,CACT,SAAAA,EAAaC,EAAYC,EAAcC,EAAiBC,EAAsCC,EAAe,CAAtEF,IAAU,SAAVA,EAAa,CAAA,GAAIC,IAAY,SAAZA,EAAeE,GAAmB,GACxF,KAAK,OAAS,OACd,KAAK,QAAU,OACf,KAAK,aAAe,OACpB,KAAK,cAAgBD,EAErB,KAAK,cAAgBD,EACrB,KAAK,SAAW,KAAK,cAAc,SACnC,KAAK,UAAY,KAAK,cAAc,UAEpC,KAAK,IAAM,CAAA,EACX,KAAK,OAAS,CAAA,EACd,KAAK,QAAU,CAAA,EACf,KAAK,SAAW,CAAA,EAEhB,KAAK,YAAc,CAAA,EACnB,KAAK,QAAU,CAAA,EAEf,KAAK,UAAY,CAAA,EACjB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,EACtB,KAAK,MAAQ,CAAA,EACb,KAAK,SAAW,OAChB,KAAK,aAAe,OACpB,KAAK,uBAAyB,OAE9B,KAAK,OAAS,CACZG,GAAmBN,EAAYC,EAAcF,EAAM,OAAQG,CAAU,CAAC,EAQzE,IAAAzH,EAAAsH,EAAA,UAAA,OAAAtH,EAED,YAAA,SAAa8G,EAASC,EAAUC,EAAU,CACxC,OAAOK,EAAiB,IAAI,KAAK,UAAWP,EAASC,EAAUC,CAAQ,GAGzEhH,EAOA,oBAAA,SAAqB8H,EAASC,EAAQ,CAChC,OAAOD,GAAY,WACrB,KAAK,aAAYE,GAAA,CAAK,QAAAF,GAAY,OAAOC,GAAW,SAAW,CAAE,OAAAA,GAAW,CAAA,CAAG,IAElF/H,EAED,yBAAA,UAA4B,CAC1B,OAAO,KAAK,wBACbA,EAED,yBAAA,SAA0B/B,EAAO,CAC/B,IAAMgK,EAAgB,KAAK,uBAC3B,OAAI,OAAOhK,GAAU,UAAYA,IAAU,MAAQA,IAAU,UAAW,KAAK,uBAAyBA,GAC/FgK,GACRjI,EAED,YAAA,SAAa8G,EAASnI,EAAK,CACzB,OAAO0I,EAAiB,IAAI,KAAK,UAAWP,EAASnI,CAAG,GACzDqB,EAED,cAAA,SAAe8G,EAASnI,EAAK,CAC3B,OAAO0I,EAAiB,MAAM,KAAK,UAAWP,EAASnI,CAAG,GAC3DqB,EAED,eAAA,SAAgB2F,EAAMC,EAAgB,CAAhBA,IAAO,SAAPA,EAAU,MAC9BW,EAAoB,IAAI,KAAK,UAAW,KAAK,eAAgBZ,EAAMC,CAAO,GAC3E5F,EAED,gBAAA,SAAiBiG,EAAc,CAC7BM,EAAoB,MAAM,KAAK,UAAWN,EAAc,KAAK,cAAc,GAC5EjG,EAED,gBAAA,UAAmB,CACjB,OAAOuG,EAAoB,WAAW,KAAK,SAAS,GACrDvG,EAED,iBAAA,SAAkB2F,EAAM,CACtBY,EAAoB,MAAM,KAAK,UAAW,KAAK,eAAgBZ,CAAI,GACpE3F,EAED,kBAAA,UAAqB,CACnB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,GACvBA,EAED,QAAA,UAAW,CACT,OAAO,KAAK,OACbA,EAED,QAAA,SAASkI,EAAIC,EAAOxC,EAAM,CACxB,KAAK,MAAQ,CAAE,GAAAuC,EAAI,MAAAC,EAAO,KAAAxC,IAC3B3F,EAED,OAAA,UAAU,CACR,MAAO,CACL,eAAgB,IAChB,WAAYb,EAAI,KAAK,OAAQ,SAAAkG,EAAE,CAAA,OAAIrG,EAAO,CAAA,EAAIqG,EAAI,CAAE,QAASA,EAAG,aAAc,EAAC,EAC/E,SAAU,KAAK,SACf,UAAW,KAAK,cAAc,UAC9B,eAAgB,KAAK,cAAc,eACnC,IAAK,KAAK,IACV,OAAQ,KAAK,OACb,QAAS,KAAK,QACd,SAAU,KAAK,SACf,YAAa,KAAK,YAClB,QAAS,KAAK,QACd,aAAc,KAAK,aACnB,sBAAuB,KAAK,uBAC5B,SAAU,KAAK,UACf,KAAM,KAAK,MACX,QAAS,KAAK,SACd,aAAc,KAAK,gBAAe,EAClC,YAAa,KAAK,eAErBiC,IAAA,EAKGc,GAAmB,SAAAC,EAAS,CAChC,IAAM7L,EAAI,CACR,KAAM6L,EAAM,SACZ,OAAQC,GAAsBD,EAAM,YAAY,EAChD,WAAYA,EAAM,WAClB,aAAcA,EAAM,aACpB,KAAM,OACN,UAAW,QAMb,OAAI7L,EAAE,WAAa,IAAM,CAACA,EAAE,MAAQ,CAACA,EAAE,SACrCA,EAAE,KAAO,eAEJA,GAGH8L,GAAwB,SAAA3C,EAAI,CAAA,MAAI,iBAAiB,KAAKA,CAAI,EAAI,cAAgBA,GAE9EiC,GAAsB,UAAA,CAAA,MAAO,CACjC,UAAW,GACX,SAAU,UACV,eAAgB,CAAE,KAAM,sBAGpBW,GAAe,SAAC/H,EAAG,CAAA,OAAK,OAAOA,GAAQ,SAAWA,EAAM,IAE9D,SAASqH,GAAoBN,EAAYC,EAAc1H,EAAM2H,EAAY,CACvE,MAAO,CACL,WAAYc,GAAahB,CAAU,EACnC,aAAcgB,GAAaf,CAAY,EACvC,KAAA1H,EACA,WAAYlD,EAAO6K,EAAY,SAAC1K,EAAOsL,EAAU,CAC/C,IAAM7L,EAAI4L,GAAiBC,CAAK,EAEhC,GAAI,CACF,OAAI,KAAK,UAAU7L,CAAC,IAAM,KAAaO,EAChCA,EAAM,OAAOP,CAAC,OACX,CACV,OAAOO,IAER,CAAA,CAAE,GAIT,SAASyL,GAAenG,EAAO,CAC7B,OAAIA,EAAM,MACR,CAAQA,CAAK,EAAA,OAAKmG,GAAcnG,EAAM,KAAK,CAAC,EAErC,CAACA,CAAK,EAMjBiF,EAAM,cAAgB,SAAUjF,EAAOoG,EAAmBC,EAAuB,CAC/E,GAAIlC,GAASnE,CAAK,EAAG,OAAOiB,GAAiB,MAAMjB,CAAK,EAAE,MAAMoG,CAAiB,EAEjF,GAAI,CACF,OAAOtL,EAAOyE,GAAe,UAAS,EAAI,SAAAyG,EAAK,CAAA,OAC5CA,EAAM,cAAgB,IAAI,QAAQ,kBAAkB,IAAM,GAC7D,EAAE,MAAM,EAAIK,CAAqB,OACvB,CACV,MAAO,CAAA,IAIXpB,EAAM,OAAS,SAAUqB,EAAYC,EAAmBlB,EAAcmB,EAAWJ,EAAuBjJ,EAAQ,CAA/BiJ,IAAiB,SAAjBA,EAAoB,GACnG,IAAAK,EAAgCC,GAAeJ,EAAYC,EAAmBC,EAAWrJ,CAAM,EAAxF6C,EAAKyG,EAAA,CAAA,EAAEE,EAAcF,EAAA,CAAA,EACxBG,EACJ,GAAI,CACF,IAAMxB,EAAaH,EAAM,cACvBjF,EAKA2G,EAAiB,EAAI,EAAIA,EAAiBP,EAAoB,EAG9D,EAAIA,CACN,EACAQ,EAAQ,IAAI3B,EAAMjF,EAAM,KAAMA,EAAM,QAASoF,EAAYC,EAAciB,CAAU,OACvE,CACVM,EAAQ,IAAI3B,EAAMjF,EAAM,KAAMA,EAAM,QAAS,CAAA,EAAIqF,EAAciB,CAAU,EAK3E,GAHItG,EAAM,OAAS,gBACjB4G,EAAM,YAAW,GAAIJ,EAAa,sBAAuBK,GAAiBP,CAAU,CAAC,EAEnFtG,EAAM,MAAO,CAAA,IAAA8G,EACTC,EAASZ,GAAcnG,CAAK,EAAE,MAAM,CAAC,EACrCgH,EAAmBlK,EAAIiK,EAAQ,SAACE,EAAU,CAE9C,IAAM7B,EAAcd,GAAQ2C,CAAK,GAAK9C,GAAS8C,CAAK,EAAKhG,GAAiB,MAAMgG,CAAK,EAAI,CAAA,EACzFC,EAAgBR,GAAeO,EAAO,GAAM,aAAa,EAAlDjH,EAAKkH,EAAA,CAAA,EACZ,OAAIlH,EAAM,OAAS,gBAAgB4G,EAAM,YAAY,cAAeC,GAAiBI,CAAK,CAAC,EACpFzB,GAAmBxF,EAAM,KAAMA,EAAM,QAASiF,EAAM,OAAQG,CAAU,EAC9E,GAED0B,EAAAF,EAAM,QAAO,KAAI,MAAAE,EAAIE,CAAgB,EAGvC,OAAOJ,GAGT,IAAMC,GAAmB,SAAC7E,EAAQ,CAChC,OAAIA,IAAQ,KAAa,OACrBA,IAAQ,OAAkB,YACvBA,GAGH0E,GAAiB,SAACJ,EAAYC,EAAmBC,EAAWrJ,EAAW,CAC3E,IAAI6C,EACA2G,EAAiB,EAEfQ,EAAyB,SAACC,EAAW,CACzC,IAAMC,EAAQb,IAAc,cAAgB,MAAQ,WAChDrJ,GAAQA,EAAO,KAAQqJ,EAAS,IAAIa,EAAI,kBAAkBD,EAAM,GAAG,EACvE,IAAMpF,EAAM,IAAI,MAASwE,EAAS,IAAIa,EAAI,sBAAsBb,EAAS,wBAAwB,EACjG,OAAAxE,EAAI,KAAO,eACJA,GAWT,GAAI,CAACuE,EACCjC,GAAQgC,CAAU,EACpBtG,EAAQsG,GAERtG,EAAQmH,EAAuB,OAAOb,CAAU,EAChDK,GAAkB,OAGpB,QAAQ,OAAOL,EAAU,CACvB,IAAK,SACL,IAAK,SACL,IAAK,UACHtG,EAAQ,IAAI,MAAM,OAAOsG,CAAU,CAAC,EACpCK,GAAkB,EAClB,MACF,IAAK,WACH3G,EAAQmH,EAAuB,UAAU,EACzCR,GAAkB,EAClB,MACF,IAAK,SACCL,IAAe,MAAQhC,GAAQgC,CAAU,EAC3CtG,EAAQsG,EACCA,IAAe,MAAQgB,GAAmBhB,CAAU,GAC7DtG,EAAQ,IAAI,MAAMsG,EAAW,SAAWA,EAAW,YAAY,EAC/DtG,EAAM,KAAOsG,EAAW,MAAQA,EAAW,WAC3CK,GAAkB,IAElB3G,EAAQmH,EAAuBb,IAAe,KAAO,OAAS,oBAAoB,EAClFK,GAAkB,GAEpB,MACF,QACE3G,EAAQmH,EAAuB,SAAS,EACxCR,GAAkB,EAIxB,GAAI,CAACxC,GAASnE,CAAK,EAEjB,GAAI,CACF,MAAMA,QACCW,EAAG,CACNwD,GAASxD,CAAC,IACZX,EAAQW,EAIRgG,EAAiB,GAKvB,MAAO,CAAC3G,EAAO2G,CAAc,GAI/B1B,EAAM,OAAS,YAEf,IAAMqC,GAAqB,SAAAtH,EAAK,CAAA,OAC7B,OAAOA,EAAM,MAAS,UAAY,OAAOA,EAAM,YAAe,YAC9D,OAAOA,EAAM,SAAY,UAAY,OAAOA,EAAM,cAAiB,WAEtEuH,GAAiBtC,ECnUjBuC,GAAiB,SAAChN,EAAKC,EAAIgN,EAAO,CAChC,IAAIC,EAAQ,EAENC,EAAO,UAAM,CACjB,GAAID,GAASlN,EAAI,OAAQ,OAAOiN,EAAG,KAAM,EAAI,EAC7ChN,EAAGD,EAAIkN,CAAK,EAAG,SAAC1F,EAAKzG,EAAW,CAC9B,GAAIyG,EAAK,OAAOyF,EAAGzF,CAAG,EACtB,GAAIzG,IAAW,GAAO,OAAOkM,EAAG,KAAM,EAAK,EAC3CC,IACAC,EAAI,EACL,GAGHA,EAAI,GCtBNC,GAAiB,SAACC,EAAWjB,EAAOkB,EAAiBL,EAAO,CAM1D,IAAMM,EAAwB,SAACtN,EAAIgN,EAAO,CACxC,GAAI,OAAOhN,GAAO,WAAY,OAAOgN,EAAG,IAAI,EAC5C,GAAI,CAEF,GAAIhN,EAAG,SAAW,EAAG,CACnB,IAAMuN,EAAMvN,EAAGmM,CAAK,EAEpB,OAAIoB,GAAO,OAAOA,EAAI,MAAS,WACtBA,EAAI,KAET,SAAArN,EAAG,CAAA,OAAI,WAAW,UAAA,CAAA,OAAM8M,EAAG,KAAM9M,CAAG,EAAC,GAErC,SAAAqH,EAAO,CACL,WAAW,UAAM,CACf,OAAA8F,EAAgB9F,CAAG,EACZyF,EAAG,KAAM,EAAI,EACrB,EAEL,EAEKA,EAAG,KAAMO,CAAG,EAGrBvN,EAAGmM,EAAO,SAAC5E,EAAKzG,EAAW,CACzB,GAAIyG,EACF,OAAA8F,EAAgB9F,CAAG,EACZyF,EAAG,IAAI,EAEhBA,EAAG,KAAMlM,CAAM,EAChB,QACMoF,EAAG,CACVmH,EAAgBnH,CAAC,EACjB8G,EAAG,IAAI,IAIXD,GAAKK,EAAWE,EAAuBN,CAAE,GC5C3CQ,GAAiB,SAACJ,EAAWK,EAAaC,EAAchL,EAAW,CAGjE,QAFIiL,EAAS,GACPC,EAAMR,EAAU,MAAK,EACpB,CAACO,GACDC,EAAI,QACT,GAAI,CACFD,EAASC,EAAI,IAAG,EAAGH,CAAW,IAAM,SAC7BvH,EAAG,CACVxD,EAAO,MAAK,qBAAsBgL,EAAY,oCAA+B,EAC7EhL,EAAO,MAAMwD,CAAC,EAGlB,OAAOyH,GCLT,SAASE,GAAQ1M,EAAO,CACpB,OAAO,OAAOA,GAAU,UAAa,qBAAsB,KAAKA,CAAK,EAGzE,IAAA2M,GAAiBD,GCTjB,SAASE,GAAKC,EAAKC,EAAM,CACvB,IAAIlM,EAAI,YAAciM,EACtB,OAAOjM,EAAE,OAAOA,EAAE,OAASkM,CAAI,EAGjC,IAAAC,GAAiBH,GCUjB,SAASI,GAAYC,EAAa,CAC9B,IAAMC,EAAY,EAClBC,EAAO,GACPC,EAAiB,KAAK,IAAID,EAAMD,CAAS,EAErCG,EAAI,EAER,SAASC,GAAe,CACpB,OAAOP,IAAK,KAAK,OAAM,EACvBK,GAAkB,GACjB,SAASD,CAAI,EAAGD,CAAS,EAG9B,SAASK,GAAe,CACpB,OAAAF,EAAIA,EAAID,EAAiBC,EAAI,EAC7BA,IACOA,EAAI,EAGf,SAASG,GAAQ,CAGb,IAAIC,EAAS,IAKb3L,EAAY,IAAI,KAAI,EAAG,QAAO,EAAG,SAASqL,CAAI,EAG9CO,EAAUX,GAAIQ,EAAW,EAAG,SAASJ,CAAI,EAAGD,CAAS,EAKrDS,EAAQV,EAAW,EAGnBW,EAASN,EAAW,EAAKA,EAAW,EAEpC,OAAOG,EAAS3L,EAAY4L,EAAUC,EAAQC,EAGlD,OAAAJ,EAAK,YAAcP,EACnBO,EAAK,OAASb,GAEPa,EAGX,IAAAK,GAAiBb,GC9Dbc,GAAM,OAAO,QAAW,SAAW,OAAS,KAC5CC,GAAc,EAClB,QAASnO,MAAQkO,GACX,OAAO,eAAe,KAAKA,GAAKlO,EAAI,GAAGmO,KAE7C,IAAIC,GAAkB,UAAU,UAAY,UAAU,UAAU,OAAS,EACrEC,GAAWlB,IAAKiB,GAClB,UAAU,UAAU,QAAQ,SAAS,EAAE,EACvCD,GAAY,SAAS,EAAE,EAAG,CAAC,EAE7B,SAASd,IAAe,CACtB,OAAOgB,GAGT,IAAAC,GAAiBjB,GCDXO,GAAOK,GAAOK,EAAW,EAE/BC,GAAiBX,GCjBXY,IAAO,UAAA,CACX,SAAAA,GAAe,CACb,KAAK,GAAKD,GAAI,EACd,KAAK,UAAY,IAAI,KACrB,KAAK,SAAW,EAChB,KAAK,WAAa,EAClB,KAAK,MAAQ,CAAA,EACb,KAAK,IAAM,CAAA,EACX,KAAK,OAAS,CAAA,EACf,IAAApM,EAAAqM,EAAA,UAAA,OAAArM,EAED,QAAA,UAAW,CACT,OAAO,KAAK,OACbA,EAED,QAAA,SAASkI,EAAIC,EAAOxC,EAAM,CACxB,KAAK,MAAQ,CAAE,GAAAuC,EAAI,MAAAC,EAAO,KAAAxC,IAC3B3F,EAED,OAAA,UAAU,CACR,MAAO,CACL,GAAI,KAAK,GACT,UAAW,KAAK,UAChB,OAAQ,CAAE,QAAS,KAAK,SAAU,UAAW,KAAK,cAErDA,EAED,OAAA,SAAQiJ,EAAO,CACb,KAAKA,EAAM,cAAc,UAAY,aAAe,UAAU,GAAK,GACpEoD,IAAA,EAGHC,GAAiBD,GCpBTE,GAAGhG,EAAH,IAAKiG,GAAKjG,EAAL,MAAOkG,GAAKlG,EAAL,MACdmG,GAAoC,QACpCC,GAA4B,uCAC5BC,GAA8B,yCAE9BC,EAAO,UAAM,CAAA,EAEbC,IAAM,UAAA,CACV,SAAAA,EAAaC,EAAe3N,EAAwB4N,EAAsBC,EAAU,CAAA,IAAAC,EAAA,KAAxD9N,IAAM,SAANA,EAASf,EAAO,QAAQ2O,IAAe,SAAfA,EAAkB,CAAA,GAEpE,KAAK,UAAYC,EAGjB,KAAK,QAAU,CAAA,EACf,KAAK,QAAU7N,EAGf,KAAK,UAAY,CAAE,YAAayN,EAAM,UAAWA,GACjD,KAAK,QAAU,CAAE,MAAOA,EAAM,KAAMA,EAAM,KAAMA,EAAM,MAAOA,GAG7D,KAAK,SAAW,CAAA,EAGhB,KAAK,aAAe,CAAA,EACpB,KAAK,SAAW,KAChB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,EACtB,KAAK,UAAY,CAAA,EACjB,KAAK,SAAW,OAChB,KAAK,MAAQ,CAAA,EACb,KAAK,uBAAyB,OAS9B,KAAK,KAAO,CACV,EAAG,CAAA,EACH,EAAG,CAAA,EACH,GAAI,CAAA,EACJ,EAAG,CAAA,GAIL,KAAK,OAASC,EACd,KAAK,MAAQlD,GACb,KAAK,WAAa3J,GAClB,KAAK,QAAUqM,GAEf,KAAK,QAAU,KAAK,WAAWS,EAAeC,CAAe,EAC7D7N,EAAI6N,EAAgB,OAAO,KAAK,QAAQ,OAAO,EAAG,SAAAG,EAAM,CAClDA,GAAID,EAAK,YAAYC,CAAE,EAC5B,EAKD,KAAK,OAAS,EAEd,IAAMC,EAAO,KACPC,EAAS,KAAK,OACpB,KAAK,OAAS,UAAY,CACxB,OAAOA,EAAO,MAAMD,EAAM,SAAS,GAEtC,IAAApN,EAAA8M,EAAA,UAAA,OAAA9M,EAED,YAAA,SAAa8G,EAASC,EAAUC,EAAU,CACxC,OAAOK,EAAiB,IAAI,KAAK,UAAWP,EAASC,EAAUC,CAAQ,GACxEhH,EAED,YAAA,SAAa8G,EAASnI,EAAK,CACzB,OAAO0I,EAAiB,IAAI,KAAK,UAAWP,EAASnI,CAAG,GACzDqB,EAED,cAAA,SAAe8G,EAASnI,EAAK,CAC3B,OAAO0I,EAAiB,MAAM,KAAK,UAAWP,EAASnI,CAAG,GAC3DqB,EAED,eAAA,SAAgB2F,EAAMC,EAAgB,CAAhBA,IAAO,SAAPA,EAAU,MAC9B2G,GAAI,KAAK,UAAW,KAAK,eAAgB5G,EAAMC,CAAO,GACvD5F,EAED,gBAAA,SAAiBiG,EAAc,CAC7BwG,GAAM,KAAK,UAAWxG,EAAc,KAAK,cAAc,GACxDjG,EAED,iBAAA,SAAkB2F,EAAM,CACtB6G,GAAM,KAAK,UAAW,KAAK,eAAgB7G,CAAI,GAChD3F,EAED,kBAAA,UAAqB,CACnB,KAAK,UAAY,CAAA,EACjB,KAAK,eAAiB,CAAA,GACvBA,EAED,WAAA,UAAc,CACZ,OAAO,KAAK,UACbA,EAED,WAAA,SAAYsL,EAAG,CACb,KAAK,SAAWA,GACjBtL,EAED,yBAAA,UAA4B,CAC1B,OAAO,KAAK,wBACbA,EAED,yBAAA,SAA0B/B,EAAO,CAC/B,IAAMgK,EAAgB,KAAK,uBAC3B,OAAI,OAAOhK,GAAU,UAAYA,IAAU,MAAQA,IAAU,UAAW,KAAK,uBAAyBA,GAC/FgK,GACRjI,EAED,WAAA,SAAY6B,EAAMmL,EAAiB,CACjC,IAAM5N,EAASxC,EAAOoQ,EAAiB,SAAC5N,EAAQkO,EAAW,CACzD,OAAIA,GAAUA,EAAO,aAAqBtO,EAAO,CAAA,EAAII,EAAQkO,EAAO,YAAY,EACzElO,GACN,KAAK,OAAO,EAGVyC,EAAK,YACRA,EAAK,qBAAuB,yBAA0BA,EAAOA,EAAK,qBAAuB,IAI3F,IAAA0L,EAA2B3Q,EAAOe,EAAKyB,CAAM,EAAG,SAACrC,EAAO4B,EAAQ,CAC9D,IAAM6O,EAAepO,EAAOT,CAAG,EAAE,aAAakD,EAAKlD,CAAG,CAAC,EAEvD,GAAIkD,EAAKlD,CAAG,IAAM,OAAW,CAC3B,IAAM8O,EAAQrO,EAAOT,CAAG,EAAE,SAASkD,EAAKlD,CAAG,CAAC,EACvC8O,EAICrO,EAAOT,CAAG,EAAE,mBACd5B,EAAM,OAAO4B,CAAG,EAAIK,EAAOwO,EAAc3L,EAAKlD,CAAG,CAAC,EAElD5B,EAAM,OAAO4B,CAAG,EAAIkD,EAAKlD,CAAG,GAN9B5B,EAAM,OAAO4B,CAAG,EAAIS,EAAOT,CAAG,EAAE,QAChC5B,EAAM,OAAO4B,CAAG,EAAI6O,QAStBzQ,EAAM,OAAO4B,CAAG,EAAI6O,EAGtB,OAAOzQ,GACN,CAAE,OAAQ,CAAA,EAAI,OAAQ,CAAA,EAAI,EApBrB2Q,EAAMH,EAAN,OAAQI,EAAMJ,EAAN,OAsBhB,GAAInO,EAAO,OAAQ,CAEjB,GAAI,CAACuO,EAAO,OAAQ,MAAM,IAAI,MAAM,wBAAwB,EAEvD,kBAAkB,KAAKA,EAAO,MAAM,IAAGD,EAAO,OAAS,mDAExD7L,EAAK,YAAc,QAAa8L,EAAO,OAAO,QAAQjB,EAAiC,IAAM,IAC/FiB,EAAO,UAAY,CACjB,OAAQhB,GACR,SAAUC,KAMhB,YAAK,UAAY5N,EAAO,CAAA,EAAI2O,EAAO,QAAQ,EAC3ClB,GAAM,KAAK,UAAWkB,EAAO,aAAc,KAAK,cAAc,EAC9D,KAAK,MAAQ3O,EAAO,CAAA,EAAI2O,EAAO,IAAI,EACnC,KAAK,SAAWA,EAAO,QACnBA,EAAO,SAAQ,KAAK,QAAUA,EAAO,QAGrCA,EAAO,UAAS,KAAK,KAAK,EAAI,KAAK,KAAK,EAAE,OAAOA,EAAO,OAAO,GAC/DA,EAAO,eAAc,KAAK,KAAK,EAAI,KAAK,KAAK,EAAE,OAAOA,EAAO,YAAY,GACzEA,EAAO,YAAW,KAAK,KAAK,EAAI,KAAK,KAAK,EAAE,OAAOA,EAAO,SAAS,GAGnEhQ,EAAK+P,CAAM,EAAE,QACf,KAAK,QAAQ,KAAKE,GAA2BF,EAAQ7L,CAAI,CAAC,EAGrD8L,GACR3N,EAED,QAAA,UAAW,CACT,OAAO,KAAK,OACbA,EAED,QAAA,SAASkI,EAAIC,EAAOxC,EAAM,CACxB,KAAK,MAAQ,CAAE,GAAAuC,EAAI,MAAAC,EAAO,KAAAxC,IAC3B3F,EAED,YAAA,SAAasN,EAAQ,CACnB,IAAM1P,EAAS0P,EAAO,KAAK,IAAI,EAK3BA,EAAO,OAAM,KAAK,SAAQ,IAAKA,EAAO,KAAI,GAAA,EAAO1P,IACtDoC,EAED,UAAA,SAAW2F,EAAM,CACf,OAAO,KAAK,SAAQ,IAAKA,EAAI,GAAA,GAC9B3F,EAED,aAAA,SAAc6N,EAAG,CACf,KAAK,UAAYA,EAAE,IAAI,GACxB7N,EAED,aAAA,UAAgB,CACd,IAAM8N,EAAU,IAAIxB,GAEpBwB,EAAQ,IAAI,aAAe,KAAK,QAAQ,aACxCA,EAAQ,IAAI,QAAU,KAAK,QAAQ,WACnCA,EAAQ,IAAI,KAAO,KAAK,QAAQ,QAEhCA,EAAQ,MAAQ9O,EAAO,CAAA,EAAI,KAAK,KAAK,EAGrC,IAAMyL,EAASH,GAAiB,KAAK,KAAK,EAAGwD,EAAS,YAAa,KAAK,OAAO,EAE/E,OAAIrD,GACF,KAAK,QAAQ,MAAM,+CAA+C,EAC3D,MAGF,KAAK,iBAAiB,aAAa,KAAMqD,CAAO,GACxD9N,EAED,WAAA,SAAYlD,EAAIiR,EAAe,CAAfA,IAAK,SAALA,EAAQ,IACtB,KAAK,KAAK,EAAEA,EAAQ,UAAY,MAAM,EAAEjR,CAAE,GAC3CkD,EAED,cAAA,SAAelD,EAAI,CACjB,KAAK,KAAK,EAAIK,EAAO,KAAK,KAAK,EAAG,SAAAX,EAAC,CAAA,OAAIA,IAAMM,EAAE,GAChDkD,EAED,qBAAA,SAAsBlD,EAAI,CACxB,KAAK,KAAK,GAAG,KAAKA,CAAE,GACrBkD,EAED,aAAA,SAAclD,EAAI,CAChB,KAAK,KAAK,EAAE,KAAKA,CAAE,GACpBkD,EAED,gBAAA,SAAiBlD,EAAI,CACnB,KAAK,KAAK,EAAIK,EAAO,KAAK,KAAK,EAAG,SAAAX,EAAC,CAAA,OAAIA,IAAMM,EAAE,GAChDkD,EAED,gBAAA,SAAiBlD,EAAIiR,EAAe,CAAfA,IAAK,SAALA,EAAQ,IAC3B,KAAK,KAAK,EAAEA,EAAQ,UAAY,MAAM,EAAEjR,CAAE,GAC3CkD,EAED,mBAAA,SAAoBlD,EAAI,CACtB,KAAK,KAAK,EAAIK,EAAO,KAAK,KAAK,EAAG,SAAAX,EAAC,CAAA,OAAIA,IAAMM,EAAE,GAChDkD,EAED,aAAA,UAAgB,CACd,OAAO,KAAK,iBAAiB,aAAa,IAAI,GAC/CA,EAED,cAAA,UAAiB,CACf,OAAO,KAAK,iBAAiB,cAAc,IAAI,GAChDA,EAED,gBAAA,SAAiBJ,EAASC,EAAUC,EAAM,CAOxC,GALAF,EAAU,OAAOA,GAAY,SAAWA,EAAU,GAClDE,EAAQ,OAAOA,GAAS,UAAYzC,EAASV,EAAkBmD,CAAI,EAAKA,EAAO,SAC/ED,EAAW,OAAOA,GAAa,UAAYA,IAAa,KAAOA,EAAW,CAAA,EAGtE,EAACD,EAEL,KAAMoO,EAAQ,IAAI/N,GAAWL,EAASC,EAAUC,CAAI,EAG9C2K,EAASH,GAAiB,KAAK,KAAK,EAAG0D,EAAO,eAAgB,KAAK,OAAO,EAEhF,GAAIvD,EAAQ,CACV,KAAK,QAAQ,MAAM,sDAAsD,EACzE,OAIF,KAAK,aAAa,KAAKuD,CAAK,EACxB,KAAK,aAAa,OAAS,KAAK,QAAQ,iBAC1C,KAAK,aAAe,KAAK,aAAa,MAAM,KAAK,aAAa,OAAS,KAAK,QAAQ,cAAc,KAErGhO,EAED,yBAAA,SAA0BF,EAAM,CAC9B,IAAMmO,EAAQ,KAAK,QAAQ,uBAE3B,OAAOA,IAAU,MAAQ5Q,EAAS4Q,EAAOnO,CAAI,GAC9CE,EAED,OAAA,SAAQ2I,EAAYuF,EAASC,EAA2B,CAA3BA,IAAkB,SAAlBA,EAAqBtB,GAChD,IAAM5D,EAAQW,GAAM,OAAOjB,EAAY,GAAM,OAAW,WAAY,KAAK,OAAS,EAAG,KAAK,OAAO,EACjG,KAAK,QAAQM,EAAOiF,EAASC,CAAkB,GAChDnO,EAED,QAAA,SAASiJ,EAAOiF,EAASC,EAA2B,CAAA,IAAAC,EAAA,KAclD,GAduBD,IAAkB,SAAlBA,EAAqBtB,GAC5C5D,EAAM,IAAMjK,EAAO,CAAA,EAAIiK,EAAM,IAAK,CAChC,aAAc,KAAK,QAAQ,aAC3B,QAAS,KAAK,QAAQ,WACtB,KAAM,KAAK,QAAQ,QACpB,EACDA,EAAM,QAAUA,EAAM,SAAW,KAAK,SACtCA,EAAM,UAAYjK,EAAO,CAAA,EAAIiK,EAAM,UAAW,KAAK,SAAS,EAC5DA,EAAM,MAAQjK,EAAO,CAAA,EAAIiK,EAAM,MAAO,KAAK,KAAK,EAChDA,EAAM,YAAc,KAAK,aAAa,MAAK,EAC3CA,EAAM,yBAAyB,KAAK,sBAAsB,EAC1DwD,GAAMxD,EAAM,UAAW,KAAK,UAAWA,EAAM,cAAc,EAGvD,KAAK,QAAQ,uBAAyB,MAAQ,CAAC5L,EAAS,KAAK,QAAQ,qBAAsB,KAAK,QAAQ,YAAY,EACtH,YAAK,QAAQ,KAAK,uEAAuE,EAClF8Q,EAAmB,KAAMlF,CAAK,EAGvC,IAAMoF,EAAmBpF,EAAM,SAEzBkB,EAAkB,SAAA9F,EAAO,CAE7B+J,EAAK,QAAQ,MAAM,6DAAwD,EAC3EA,EAAK,QAAQ,MAAM/J,CAAG,GAGlB6F,EAAY,CAAA,EAAG,OAAO,KAAK,KAAK,CAAC,EAAE,OAAOgE,CAAO,EACvDjE,GAAaC,EAAWjB,EAAOkB,EAAiB,SAAC9F,EAAKiK,EAAe,CAGnE,GAFIjK,GAAK8F,EAAgB9F,CAAG,EAExB,CAACiK,EACH,OAAAF,EAAK,QAAQ,MAAM,wCAAwC,EACpDD,EAAmB,KAAMlF,CAAK,EAGnCmF,EAAK,yBAAyB,OAAO,GAEvCtB,EAAO,UAAU,gBAAgB,KAAKsB,EAAMnF,EAAM,OAAO,CAAC,EAAE,WAAY,CACtE,WAAYA,EAAM,OAAO,CAAC,EAAE,WAC5B,aAAcA,EAAM,OAAO,CAAC,EAAE,aAC9B,SAAUA,EAAM,UACf,OAAO,EAGRoF,IAAqBpF,EAAM,WAC7BA,EAAM,cAAc,eAAiB,CAAE,KAAM,4BAG3CA,EAAM,YAAcA,EAAM,cAAc,YAC1CA,EAAM,cAAc,eAAe,oBAAsB,GACzDA,EAAM,cAAc,UAAYA,EAAM,WAGpCmF,EAAK,WACPA,EAAK,SAAS,OAAOnF,CAAK,EAC1BA,EAAM,SAAWmF,EAAK,UAGxBA,EAAK,UAAU,UAAU,CACvB,OAAQnF,EAAM,QAAUmF,EAAK,QAAQ,OACrC,SAAUA,EAAK,UACf,OAAQ,CAACnF,CAAK,GACb,SAAC5E,EAAG,CAAA,OAAK8J,EAAmB9J,EAAK4E,CAAK,EAAC,EAC3C,GACF6D,IAAA,EAGGc,GAA6B,SAACF,EAAQa,EAAa,CACvD,IAAMlJ,EAAK,IAAI,MAAK;EACQlG,EAAIxB,EAAK+P,CAAM,EAAG,SAAA/O,EAAG,CAAA,MAAA,OAAWA,EAAG,IAAI+O,EAAO/O,CAAG,EAAC,SAAS6P,GAAUD,EAAS5P,CAAG,CAAC,EAAG,EAAE,KAAK;;CAAM,CAAG,EACjI,OAAO0G,GAGHmJ,GAAY,SAAAxR,EAAO,CACvB,OAAQ,OAAOA,EAAG,CAChB,IAAK,SACL,IAAK,SACL,IAAK,SACH,OAAO,KAAK,UAAUA,CAAG,EAC3B,QAAS,OAAO,OAAOA,CAAG,IAI9ByR,GAAiB3B,QChZX4B,GAAwB,CAC5B,qBACA,oCACA,oBACA,oBAAoB,EAGtBC,EAAe,MAAQ,SAAC1F,EAAOtF,EAAiB,CAC9C,IAAIiL,EAAUrL,EAAc0F,EAAO,KAAM,KAAM,CAAE,cAAeyF,GAAuB,aAAA/K,EAAc,EACrG,OAAIiL,EAAQ,OAAS,MACnB3F,EAAM,OAAO,CAAC,EAAE,UAAY,CAC1B,SAAQ;yBAEW2F,EAAQ,OAAS,IAAI;uBAG1CA,EAAUrL,EAAc0F,EAAO,KAAM,KAAM,CAAE,cAAeyF,GAAuB,aAAA/K,EAAc,GAE5FiL,GAGTD,EAAe,QAAU,SAACb,EAASnK,EAAiB,CAClD,IAAMiL,EAAUrL,EAAcuK,EAAS,KAAM,IAAI,EACjD,OAAOc,aCtBTC,GAAiB,SAACC,EAAQC,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAC1C,UAAW,SAAC9F,EAAOa,EAAkB,CACnC,GADiBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GACxBgF,EAAO,QAAQ,UAAU,SAAW,KAAM,CAC5C,IAAMzK,EAAM,IAAI,MAAM,yDAAyD,EAC/E,OAAOyF,EAAGzF,CAAG,EAGf,IAAM2K,EAAMC,GAAUH,EAAO,QAAS,SAAU,IAAKC,CAAG,EAClDG,EAAOP,EAAQ,MAAM1F,EAAO6F,EAAO,QAAQ,YAAY,EAEvDK,EAAM,IAAIJ,EAAI,eACpBI,EAAI,OAAS,UAAY,CACvBrF,EAAG,IAAI,GAETqF,EAAI,QAAU,UAAY,CACxB,IAAM9K,EAAM,IAAI,MAAM,sBAAsB,EAC5CyK,EAAO,QAAQ,MAAM,6BAAyBzK,CAAG,EAC7C6K,EAAK,OAAS,KAChBJ,EAAO,QAAQ,KAAI,qBAAsBI,EAAK,OAAS,KAAM,QAAQ,CAAC,EAAC,MAAM,EAE/EpF,EAAGzF,CAAG,GAER8K,EAAI,KAAK,OAAQH,CAAG,EACpB,WAAW,UAAM,CACf,GAAI,CACFG,EAAI,KAAKD,CAAI,QACNlM,EAAG,CACV8L,EAAO,QAAQ,MAAM9L,CAAC,EACtB8G,EAAG9G,CAAC,IAEL,CAAC,GAEN,YAAa,SAAC8K,EAAShE,EAAkB,CACvC,GADqBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GAC5BgF,EAAO,QAAQ,UAAU,WAAa,KAAM,CAC9C,IAAMzK,EAAM,IAAI,MAAM,2DAA2D,EACjF,OAAOyF,EAAGzF,CAAG,EAGf,IAAM2K,EAAMC,GAAUH,EAAO,QAAS,WAAY,IAAKC,CAAG,EACpDI,EAAM,IAAIJ,EAAI,eACpBI,EAAI,OAAS,UAAY,CACvBrF,EAAG,IAAI,GAETqF,EAAI,KAAK,OAAQH,CAAG,EACpB,WAAW,UAAM,CACf,GAAI,CACFG,EAAI,KAAKR,EAAQ,QAAQb,EAASgB,EAAO,QAAQ,YAAY,CAAC,QACvD9L,EAAG,CACV8L,EAAO,QAAQ,MAAM9L,CAAC,EACtB8G,EAAG9G,CAAC,IAEL,CAAC,KAIR,IAAMiM,GAAY,SAACtB,EAAQyB,EAAUC,EAASN,EAAQ,CAIpD,IAAMO,EAAU,KAAK,MAAM,KAAK,UAAU,IAAI,IAAM,CAAC,EAC/CN,EAAMO,GAAkB5B,EAAO,UAAUyB,CAAQ,EAAGL,EAAI,SAAS,QAAQ,EAC/E,OAAUC,EAAG,WAAW,mBAAmBrB,EAAO,MAAM,EAAC,mBAAmB0B,EAAO,WAAW,mBAAmBC,CAAO,GAGpHC,GAAoBV,GAAe,mBAAqB,SAACO,EAAUI,EAAY,CAAA,OACnFA,IAAiB,QACbJ,EAAS,QAAQ,UAAW,OAAO,EACnCA,GCnEN,SAASK,GAAyBC,EAA2BC,EAAa,CACxE,GAAID,EAA0B,iBAAmBA,EAA0B,QAAUA,EAA0B,OAAO,QAAUA,EAA0B,OAAO,OAAO,QAAU,OAAO,aAAgB,WAAY,CACnN,IAAME,EAAW,IAAI,YAAW,EAAG,OAAOD,CAAW,EACrD,OAAOD,EAA0B,OAAO,OAAO,OAAO,QAASE,CAAQ,EAAE,KAAK,SAACC,EAAe,CAC5F,IAAMC,EAAY,MAAM,KAAK,IAAI,WAAWD,CAAU,CAAC,EACjDE,EAAUD,EACb,IAAI,SAACE,EAAC,CAAA,OAAKA,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,EAAC,EAC1C,KAAK,EAAE,EAEV,MAAO,QAAUD,EAClB,EAEH,OAAO,QAAQ,QAAO,EAGxB,IAAAE,GAAiB,SAACnB,EAAQC,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAC1C,UAAW,SAAC9F,EAAOa,EAAkB,CAAlBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GAC5B,GAAI,CACF,IAAMkF,EAAMF,EAAO,QAAQ,UAAU,OACrC,GAAIE,IAAQ,KAAM,CAChB,IAAM3K,EAAM,IAAI,MAAM,yDAAyD,EAC/E,OAAOyF,EAAGzF,CAAG,EAEf,IAAM8K,EAAM,IAAIJ,EAAI,eACdG,EAAOP,EAAQ,MAAM1F,EAAO6F,EAAO,QAAQ,YAAY,EAE7DK,EAAI,mBAAqB,UAAY,CACnC,GAAIA,EAAI,aAAeJ,EAAI,eAAe,KAAM,CAC9C,IAAMmB,EAASf,EAAI,OACnB,GAAIe,IAAW,GAAKA,GAAU,IAAK,CACjC,IAAMC,EAAM,IAAI,MAAK,8BAA+BD,CAAQ,EAC5DpB,EAAO,QAAQ,MAAM,6BAAyBqB,CAAG,EAC7CjB,EAAK,OAAS,KAChBJ,EAAO,QAAQ,KAAI,qBAAsBI,EAAK,OAAS,KAAM,QAAQ,CAAC,EAAC,MAAM,EAE/EpF,EAAGqG,CAAG,OAENrG,EAAG,IAAI,IAKbqF,EAAI,KAAK,OAAQH,CAAG,EACpBG,EAAI,iBAAiB,eAAgB,kBAAkB,EACvDA,EAAI,iBAAiB,kBAAmBlG,EAAM,QAAU6F,EAAO,QAAQ,MAAM,EAC7EK,EAAI,iBAAiB,0BAA2B,GAAG,EACnDA,EAAI,iBAAiB,kBAAoB,IAAI,KAAI,EAAI,YAAW,CAAE,EAE9DL,EAAO,QAAQ,sBAAwB,OAAO,QAAY,KAAe,QAAQ,SAAQ,EAAG,QAAQ,eAAe,IAAM,GAC3HW,GAAwBV,EAAKG,CAAI,EAAE,KAAK,SAACkB,EAAc,CACjDA,GACFjB,EAAI,iBAAiB,oBAAqBiB,CAAS,EAErDjB,EAAI,KAAKD,CAAI,EACd,EAAC,MAAO,SAAC7K,EAAQ,CAChByK,EAAO,QAAQ,MAAMzK,CAAG,EACxB8K,EAAI,KAAKD,CAAI,EACd,EAEDC,EAAI,KAAKD,CAAI,QAERlM,EAAG,CACV8L,EAAO,QAAQ,MAAM9L,CAAC,IAG1B,YAAa,SAAC8K,EAAShE,EAAkB,CAAlBA,IAAE,SAAFA,EAAK,UAAM,CAAA,GAChC,GAAI,CACF,IAAMkF,EAAMF,EAAO,QAAQ,UAAU,SACrC,GAAIE,IAAQ,KAAM,CAChB,IAAM3K,EAAM,IAAI,MAAM,2DAA2D,EACjF,OAAOyF,EAAGzF,CAAG,EAEf,IAAM8K,EAAM,IAAIJ,EAAI,eACdG,EAAOP,EAAQ,QAAQb,EAASgB,EAAO,QAAQ,YAAY,EAEjEK,EAAI,mBAAqB,UAAY,CACnC,GAAIA,EAAI,aAAeJ,EAAI,eAAe,KAAM,CAC9C,IAAMmB,EAASf,EAAI,OACnB,GAAIe,IAAW,GAAKA,GAAU,IAAK,CACjC,IAAMG,EAAM,IAAI,MAAK,8BAA+BH,CAAQ,EAC5DpB,EAAO,QAAQ,MAAM,+BAA2BuB,CAAG,EACnDvG,EAAGuG,CAAG,OAENvG,EAAG,IAAI,IAKbqF,EAAI,KAAK,OAAQH,CAAG,EACpBG,EAAI,iBAAiB,eAAgB,kBAAkB,EACvDA,EAAI,iBAAiB,kBAAmBL,EAAO,QAAQ,MAAM,EAC7DK,EAAI,iBAAiB,0BAA2B,GAAG,EACnDA,EAAI,iBAAiB,kBAAoB,IAAI,KAAI,EAAI,YAAW,CAAE,EAE9DL,EAAO,QAAQ,sBAAwB,OAAO,QAAY,KAAe,QAAQ,SAAQ,EAAG,QAAQ,eAAe,IAAM,GAC3HW,GAAwBV,EAAKG,CAAI,EAAE,KAAK,SAACkB,EAAc,CACjDA,GACFjB,EAAI,iBAAiB,oBAAqBiB,CAAS,EAErDjB,EAAI,KAAKD,CAAI,EACd,EAAC,MAAO,SAAC7K,EAAQ,CAChByK,EAAO,QAAQ,MAAMzK,CAAG,EACxB8K,EAAI,KAAKD,CAAI,EACd,EAEDC,EAAI,KAAKD,CAAI,QAERlM,EAAG,CACV8L,EAAO,QAAQ,MAAM9L,CAAC,MC9GxBsN,GAAW,IAAI,KACbC,GAAQ,UAAM,CAAED,GAAW,IAAI,MAErCE,GAAiB,CACf,KAAM,cACN,KAAM,SAAA1B,EAAU,CACd,OAAAA,EAAO,WAAW,SAAA7F,EAAS,CACzB,IAAMwH,EAAM,IAAI,KAEhBxH,EAAM,IAAI,SAAWwH,EAAMH,IAC1B,EAAI,EAEA,CAAE,MAAAC,MCTbG,GAAiB,SAAC3B,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAClC,KAAM,SAACD,EAAW,CAChBA,EAAO,WAAW,SAAA7F,EAAS,CACrBA,EAAM,UAAY,SACtBA,EAAM,QAAU8F,EAAI,SAAS,WAC5B,EAAI,yuBCPL4B,GAA2B,uBAG3BC,GAAc,SAAC7B,EAAQ,CAC3B,GAAI,CACF,IAAM8B,EAAU9B,EAAI,aAEhB7G,EAAK2I,EAAQ,QAAQF,EAAwB,EAGjD,OAAIzI,GAAM4I,GAAK,OAAO5I,CAAE,IAIxBA,EAAK4I,GAAI,EAETD,EAAQ,QAAQF,GAA0BzI,CAAE,GAErCA,OACK,IAQhB6I,GAAiB,SAACC,EAAiBjC,EAAG,CAAA,OAApBiC,IAAG,SAAHA,EAAM,WAAWjC,IAAG,SAAHA,EAAM,QAAY,CACnD,KAAM,SAACD,EAAW,CAChB,IAAMmC,EAAS,CACb,OAAQD,EAAI,iBAAmBA,EAAI,gBAAkBA,EAAI,cAAgBA,EAAI,SAC7E,UAAWA,EAAI,WAGbjC,GAAOA,EAAI,QAAUA,EAAI,OAAO,aAAeA,EAAI,OAAO,YAAY,KACxEkC,EAAO,YAAclC,EAAI,OAAO,YAAY,KACnCA,GAAOA,EAAI,WACpBkC,EAAO,YACLlC,EAAI,SAAS,gBAAgB,YAAcA,EAAI,SAAS,gBAAgB,aACpE,YACA,YAGJD,EAAO,QAAQ,sBACjBmC,EAAO,GAAKL,GAAY7B,CAAG,GAG7BD,EAAO,aAAa,SAAAhB,EAAW,CAC7BA,EAAQ,OAAS9O,EAAO,CAAA,EAAI8O,EAAQ,OAAQmD,CAAM,EAE7CnC,EAAO,QAAQ,eAAeoC,GAAiBpD,CAAO,EAC5D,EAGDgB,EAAO,WAAW,SAAC7F,EAAU,CAC3BA,EAAM,OAASjK,EAAO,CAAA,EACpBiK,EAAM,OACNgI,EACA,CAAE,KAAM,IAAI,KACd,EACKnC,EAAO,QAAQ,eAAeoC,GAAiBjI,CAAK,GACxD,EAAI,GAET,aAAc,CACZ,oBAAqB,CACnB,SAAU,SAAAhL,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,IAC/C,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,2BAKTiT,GAAmB,SAACC,EAAmB,CAE3C,IAAMC,EAAOD,EAAe,QAAO,GAC/B,CAACC,GAAQ,CAACA,EAAK,KACjBD,EAAe,QAAQA,EAAe,OAAO,EAAE,GCxEnDE,GAAiB,SAACtC,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAClC,KAAM,SAACD,EAAW,CAChBA,EAAO,WAAW,SAAA7F,EAAS,CACrBA,EAAM,SAAWA,EAAM,QAAQ,MACnCA,EAAM,QAAUjK,EAAO,CAAA,EAAIiK,EAAM,QAAS,CAAE,IAAK8F,EAAI,SAAS,KAAM,IACnE,EAAI,KCRXuC,GAAiB,CACf,KAAM,SAAAxC,EAAU,CAAEA,EAAO,iBAAmByC,KAGxCA,GAAkB,CACtB,aAAc,SAACzC,EAAQhB,EAAY,CACjC,IAAM0D,EAAgB1C,EAKtB,OAJA0C,EAAc,SAAW1D,EACzB0D,EAAc,eAAiB,KAG3BA,EAAc,QAAQ,uBAAyB,MAAQ,CAACnU,EAASmU,EAAc,QAAQ,qBAAsBA,EAAc,QAAQ,YAAY,GACjJA,EAAc,QAAQ,KAAK,yEAAyE,EAC7FA,IAGTA,EAAc,UAAU,YAAY,CAClC,SAAUA,EAAc,UACxB,OAAQ1D,EAAQ,OAChB,IAAKA,EAAQ,IACb,SAAU,CACR,CACE,GAAIA,EAAQ,GACZ,UAAWA,EAAQ,UACnB,KAAMA,EAAQ,MACf,EAEJ,EACM0D,IAET,cAAe,SAAC1C,EAAW,CAEzB,OAAIA,EAAO,SACFA,EAILA,EAAO,gBACTA,EAAO,SAAWA,EAAO,eACzBA,EAAO,eAAiB,KAEjBA,GAIFA,EAAO,aAAY,GAE5B,aAAc,SAACA,EAAW,CACxBA,EAAO,eAAiBA,EAAO,SAC/BA,EAAO,SAAW,OC9CtB2C,GAAiB,CACf,KAAM,SAAC3C,EAAW,CACZA,EAAO,QAAQ,eAEnBA,EAAO,WAAW,SAAA7F,EAAS,CAGrBA,EAAM,OAAS,OAAOA,EAAM,MAAM,GAAO,KAAa,OAAOA,EAAM,MAAM,GAC7EA,EAAM,MAAQjK,EAAO,CAAE,GAAI,cAAgBiK,EAAM,KAAK,EACtDA,EAAM,QAAUjK,EAAO,CAAE,SAAU,cAAgBiK,EAAM,OAAO,EACjE,GAEH,aAAc,CACZ,cAAe,CACb,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,uBACT,SAAU,SAAAhL,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,aCdrDyT,GAAQ,KAAO,SAAC5C,EAAW,CACzB,IAAM6C,EAAQ,4BAA4B,KAAK7C,EAAO,QAAQ,YAAY,EAEtE6C,GAAS,CAAC7C,EAAO,yBAAyB,KAAK,GAEnD3P,EAAIyS,GAAqB,SAAAhT,EAAU,CACjC,IAAMiT,EAAW,QAAQjT,CAAM,EAC/B,QAAQA,CAAM,EAAI,UAAa,CAAA,QAAAkT,EAAA,UAAA,OAATtQ,EAAI,IAAA,MAAAsQ,CAAA,EAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJvQ,EAAIuQ,CAAA,EAAA,UAAAA,CAAA,EACxBjD,EAAO,gBAAgB,iBAAkBlS,EAAO4E,EAAM,SAACzE,EAAOiV,EAAK/U,EAAM,CAEvE,IAAIgV,EAAc,kBAIlB,GAAI,CAAEA,EAAc,OAAOD,CAAG,OAAc,CAAA,CAE5C,GAAIC,IAAgB,kBAElB,GAAI,CAAEA,EAAc,KAAK,UAAUD,CAAG,OAAc,CAAA,CAEtD,OAAAjV,EAAK,IAAKE,EAAC,GAAA,EAAOgV,EACXlV,GACN,CACD,SAAU6B,EAAO,QAAQ,OAAO,IAAM,EAAI,MAAQA,EACnD,EAAG,KAAK,EACTiT,EAAS,MAAM,QAASrQ,CAAI,GAE9B,QAAQ5C,CAAM,EAAE,SAAW,UAAM,CAAE,QAAQA,CAAM,EAAIiT,GACtD,GASH,IAAMD,GAAsBzU,EAAO,CAAC,MAAO,QAAS,OAAQ,OAAQ,OAAO,EAAG,SAAAyB,EAAM,CAAA,OAClF,OAAO,QAAY,KAAe,OAAO,QAAQA,CAAM,GAAM,WAC/D,EC1CMsT,GAAkB,IAClBC,GAAoB,IAE1BC,GAAiB,SAACC,EAAgBtD,EAAG,CAAA,OAAnBsD,IAAG,SAAHA,EAAM,UAAUtD,IAAG,SAAHA,EAAM,QAAY,CAClD,KAAM,SAACD,EAAW,CAChB,GAAI,CAACA,EAAO,QAAQ,mBAAoB,OAExC,IAAMwD,EAAmBvD,EAAI,SAAS,KAClCwD,EAAO,GAILC,EAAU,CAAC,CAACH,EAAI,YAClBI,EAAmBD,EAAUH,EAAI,aAAe,WAAaA,EAAI,aAAe,UAC9EK,EAAU,UAAA,CAAA,OAAML,EAAI,gBAAgB,WAG1CE,EAAOG,EAAO,EACd,IAAMC,EAAON,EAAI,mBAEjBA,EAAI,mBAAqB,UAAY,CAE/BA,EAAI,aAAe,gBACrBE,EAAOG,EAAO,EACdD,EAAmB,IAErB,GAAI,CAAEE,EAAK,MAAM,KAAM,SAAS,OAAc,CAAA,GAGhD,IAAIC,EAAc,KACZC,EAAmB,SAAAC,EAAU,CACjCF,EAAcE,GAGVC,EAAmB,UAAM,CAC7B,IAAID,EAAST,EAAI,eAAiBO,EAClC,GAAI,CAACE,GAAU,CAACL,EAAkB,CAChC,IAAMO,EAAUX,EAAI,SAAWA,EAAI,qBAAqB,QAAQ,EAChES,EAASE,EAAQA,EAAQ,OAAS,CAAC,EAErC,OAAOF,GAGHG,EAAqB,SAAA9R,EAAc,EAEnC,CAACsR,GAAoB,CAACF,KAAMA,EAAOG,EAAO,GAE9C,IAAMQ,EAAY,CAAC,oBAAoB,EAAE,OAAOX,EAAK,MAAM;CAAI,CAAC,EAC1DY,EAAgBhS,EAAa,EAC7BiS,EAAQ,KAAK,IAAID,EAAgB,EAAG,CAAC,EACrCE,EAAM,KAAK,IAAIF,EAAgB,EAAGD,EAAU,MAAM,EACxD,OAAOtW,EAAOsW,EAAU,MAAME,EAAOC,CAAG,EAAG,SAACtW,EAAO0F,EAAMxF,EAAM,CAC7D,OAAAF,EAAMqW,EAAQ,EAAInW,CAAC,EAAIwF,EAAK,QAAUyP,GAAkBzP,EAAOA,EAAK,OAAO,EAAGyP,EAAe,EACtFnV,GACN,CAAA,CAAE,GAGP+R,EAAO,WAAW,SAAA7F,EAAS,CAGzBA,EAAM,OAAO,CAAC,EAAE,WAAa9L,EAAO8L,EAAM,OAAO,CAAC,EAAE,WAAY,SAAAzM,EAAC,CAAA,MAAI,CAAE,aAAa,KAAKA,EAAE,MAAM,EAAE,EAEnG,IAAM6L,EAAQY,EAAM,OAAO,CAAC,EAAE,WAAW,CAAC,EAGpCqK,EAAW,SAACtE,EAAG,CAAA,OAAKA,EAAI,QAAQ,OAAQ,EAAE,EAAE,QAAQ,QAAS,EAAE,GAGrE,GAAI,EAAA3G,GAASA,EAAM,MAAQiL,EAASjL,EAAM,IAAI,IAAMiL,EAAShB,CAAgB,GAG7E,KAAMiB,EAAgBR,EAAgB,EACtC,GAAIQ,EAAe,CACjB,IAAMC,EAAUD,EAAc,UAC9BtK,EAAM,YACJ,SACA,UACAuK,EAAQ,QAAUrB,GAAoBqB,EAAUA,EAAQ,OAAO,EAAGrB,EAAiB,CACrF,EAGI9J,GAASA,EAAM,aACjBA,EAAM,KAAO4K,EAAmB5K,EAAM,UAAU,MAGnD,EAAI,EAIP,IAAAoL,EAAsBtU,EAAI,CACxB,aACA,cACA,eACA,uBAAuB,EACtB,SAAArC,EAAE,CAAA,OACH4W,GAAQ3E,EAAKjS,EAAI,SAAA+U,EAAQ,CAAA,OACvB8B,EAAsB9B,EAAU,SAAArQ,EAAI,CAAA,MAAK,CACvC,IAAK,UAAA,CAAA,OAAMA,EAAK,CAAC,GACjB,QAAS,SAAA1E,EAAM,CAAE0E,EAAK,CAAC,EAAI1E,IAC3B,EACJ,EACF,EAZO8W,EAAWH,EAAA,CAAA,EAelBtU,EAAI,CACF,cAAe,SAAU,OAAQ,mBAAoB,iBAAkB,oBACvE,kBAAmB,cAAe,aAAc,qBAAsB,cACtE,aAAc,iBAAkB,eAAgB,kBAAmB,cAAe,cAClF,eAAgB,qBAAsB,SAAU,YAAa,eAAgB,gBAC7E,YAAa,kBAAmB,SAAU,iBAAkB,4BAA6B,uBACzF,cAAe,gBAAiB,cAAe,gBAAiB,yBAChE,4BAA6B,mBAAoB,oBAAqB,iBAAkB,cACxF,iBAAkB,aAAc,cAAe,YAAa,mBAAoB,iBAAkB,gBAAgB,EACjH,SAAAgF,EAAK,CACF,CAAC4K,EAAI5K,CAAC,GAAK,CAAC4K,EAAI5K,CAAC,EAAE,WAAa,CAAC,OAAO,UAAU,eAAe,KAAK4K,EAAI5K,CAAC,EAAE,UAAW,kBAAkB,IAC9GuP,GAAQ3E,EAAI5K,CAAC,EAAE,UAAW,mBAAoB,SAAA0N,EAAQ,CAAA,OACpD8B,EAAsB9B,EAAUgC,EAA2B,EAC7D,EACAH,GAAQ3E,EAAI5K,CAAC,EAAE,UAAW,sBAAuB,SAAA0N,EAAQ,CAAA,OACvD8B,EAAsB9B,EAAUgC,GAA6B,EAAI,EACnE,GACD,EAED,SAASF,EAAuB7W,EAAIgX,EAAkBC,EAA0B,CAAA,OAA1BA,IAAgB,SAAhBA,EAAmB,IAChE,UAAY,CAGjB,IAAMvS,EAAO,CAAA,EAAG,MAAM,KAAK,SAAS,EACpC,GAAI,CACF,IAAMwS,EAAMF,EAAiBtS,CAAI,EAC3BsI,EAAKkK,EAAI,IAAG,EAElB,GADID,GAAkBjX,EAAG,MAAM,KAAM0E,CAAI,EACrC,OAAOsI,GAAO,WAAY,OAAOhN,EAAG,MAAM,KAAM0E,CAAI,EACxD,GAAIsI,EAAG,UACLkK,EAAI,QAAQlK,EAAG,SAAS,MACnB,CACL,IAAMgJ,EAASC,EAAgB,EAI/BjJ,EAAG,UAAY,UAAsB,CAEnC+I,EAAiBC,CAAM,EAIvBc,EAAY,UAAY,CAAEf,EAAiB,IAAI,GAAK,CAAC,EACrD,IAAMxI,GAAMP,EAAG,MAAM,KAAM,SAAS,EACpC,OAAA+I,EAAiB,IAAI,EACdxI,IAETP,EAAG,UAAU,UAAYA,EAAG,UAC5BkK,EAAI,QAAQlK,EAAG,SAAS,QAEhB,EAMZ,GAAIhN,EAAG,MAAO,OAAOA,EAAG,MAAM,KAAM0E,CAAI,EACxC,OAAQA,EAAK,OAAM,CACjB,IAAK,GAAG,OAAO1E,EAAG0E,EAAK,CAAC,CAAC,EACzB,IAAK,GAAG,OAAO1E,EAAG0E,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,EAClC,QAAS,OAAO1E,EAAE,MAK1B,aAAc,CACZ,mBAAoB,CAClB,SAAU,SAAAmB,EAAK,CAAA,OAAIA,IAAU,IAAQA,IAAU,IAC/C,aAAc,UAAA,CAAA,MAAM,IACpB,QAAS,2BAKf,SAASyV,GAASO,EAAMtO,EAAMlC,EAAU,CACtC,IAAMoO,EAAWoC,EAAKtO,CAAI,EAC1B,GAAI,CAACkM,EAAU,OAAOA,EACtB,IAAMqC,EAAczQ,EAASoO,CAAQ,EACrC,OAAAoC,EAAKtO,CAAI,EAAIuO,EACNrC,EAGT,SAASgC,GAA6BrS,EAAM,CAC1C,IAAM2S,EAAoB,CAAC,CAAC3S,EAAK,CAAC,GAAK,OAAOA,EAAK,CAAC,EAAE,aAAgB,WACtE,MAAO,CACL,IAAK,UAAY,CACf,OAAO2S,EAAoB3S,EAAK,CAAC,EAAE,YAAcA,EAAK,CAAC,GAEzD,QAAS,SAAU1E,EAAI,CACjBqX,EACF3S,EAAK,CAAC,EAAE,YAAc1E,EAEtB0E,EAAK,CAAC,EAAI1E,ICrMlB,IAAAsX,GAAiB,SAACrF,EAAG,CAAA,OAAHA,IAAG,SAAHA,EAAM,QAAY,CAClC,KAAM,SAACD,EAAW,CACV,qBAAsBC,GACvBD,EAAO,yBAAyB,MAAM,GAE3CC,EAAI,iBAAiB,QAAS,SAAC9F,EAAU,CACvC,IAAIoL,EAAYC,EAChB,GAAI,CACFD,EAAaE,GAAYtL,EAAM,MAAM,EACrCqL,EAAiBE,GAAgBvL,EAAM,OAAQ8F,CAAG,OACxC,CACVsF,EAAa,WACbC,EAAiB,WACjBxF,EAAO,QAAQ,MAAM,sFAAsF,EAE7GA,EAAO,gBAAgB,WAAY,CAAE,WAAAuF,EAAY,eAAAC,GAAkB,MAAM,GACxE,EAAI,KAILG,GAAO,oCAEb,SAASF,GAAaG,EAAI,CACxB,IAAIC,EAAOD,EAAG,aAAeA,EAAG,WAAa,GAQ7C,MANI,CAACC,IAASD,EAAG,OAAS,UAAYA,EAAG,OAAS,YAChDC,EAAOD,EAAG,OAGZC,EAAOA,EAAK,QAAQF,GAAM,IAAI,EAE1BE,EAAK,OAAS,IACTA,EAAK,MAAM,EAAG,GAAG,EAAI,QAGvBA,EAIT,SAASH,GAAiBE,EAAI3F,EAAK,CACjC,IAAMrN,EAAQ,CAACgT,EAAG,OAAO,EAIzB,GAHIA,EAAG,IAAIhT,EAAM,KAAK,IAAMgT,EAAG,EAAE,EAC7BA,EAAG,WAAaA,EAAG,UAAU,QAAQhT,EAAM,KAAI,IAAKgT,EAAG,UAAU,MAAM,GAAG,EAAE,KAAK,GAAG,CAAG,EAEvF,CAAC3F,EAAI,SAAS,kBAAoB,CAAC,MAAM,UAAU,QAAS,OAAOrN,EAAM,KAAK,EAAE,EACpF,GAAI,CACF,GAAIqN,EAAI,SAAS,iBAAiBrN,EAAM,KAAK,EAAE,CAAC,EAAE,SAAW,EAAG,OAAOA,EAAM,KAAK,EAAE,OAC1E,CAEV,OAAOA,EAAM,KAAK,EAAE,EAGtB,GAAIgT,EAAG,WAAW,WAAW,OAAS,EAAG,CACvC,IAAM3K,EAAQ,MAAM,UAAU,QAAQ,KAAK2K,EAAG,WAAW,WAAYA,CAAE,EAAI,EAC3EhT,EAAM,KAAI,cAAeqI,EAAK,GAAG,EAEnC,OAAIgF,EAAI,SAAS,iBAAiBrN,EAAM,KAAK,EAAE,CAAC,EAAE,SAAW,EAAUA,EAAM,KAAK,EAAE,EAEhFgT,EAAG,WAAsBF,GAAgBE,EAAG,WAAY3F,CAAG,EAAC,MAAMrN,EAAM,KAAK,EAAE,EAC5EA,EAAM,KAAK,EAAE,YC3DtBkT,GAAiB,SAAC7F,EAAiB,CAAjBA,IAAG,SAAHA,EAAM,QACtB,IAAMzB,EAAS,CACb,KAAM,SAACwB,EAAW,CAChB,GAAM,qBAAsBC,GACvBD,EAAO,yBAAyB,YAAY,EAGjD,KAAM+F,EAAO,SAAAlP,EAAI,CAAA,OAAI,UAAA,CAAA,OAAMmJ,EAAO,gBAAgBnJ,EAAM,CAAA,EAAI,YAAY,IAGxEoJ,EAAI,iBAAiB,WAAY8F,EAAK,aAAa,EAAG,EAAI,EAC1D9F,EAAI,iBAAiB,WAAY8F,EAAK,YAAY,EAAG,EAAI,EACzD9F,EAAI,iBAAiB,OAAQ8F,EAAK,aAAa,EAAG,EAAI,EACtD9F,EAAI,SAAS,iBAAiB,mBAAoB8F,EAAK,kBAAkB,EAAG,EAAI,EAEhF9F,EAAI,iBAAiB,OAAQ,UAAA,CAAA,OAAMA,EAAI,iBAAiB,WAAY8F,EAAK,gBAAgB,EAAG,EAAI,EAAC,EAGjG9F,EAAI,iBAAiB,aAAc,SAAA9F,EAAS,CAC1C,IAAMpJ,EAAWoJ,EAAM,OACnB,CAAE,KAAM6L,GAAiB7L,EAAM,OAAQ8F,CAAG,EAAG,GAAI+F,GAAiB7L,EAAM,OAAQ8F,CAAG,EAAG,MAAOgG,GAAgBhG,CAAG,GAChH,CAAE,GAAI+F,GAAiB/F,EAAI,SAAS,KAAMA,CAAG,GACjDD,EAAO,gBAAgB,eAAgBjP,EAAU,YAAY,GAC5D,EAAI,EAGHkP,EAAI,QAAQ,WAAWiG,GAAclG,EAAQC,EAAI,QAAS,YAAaA,EAAK,EAAI,EAChFA,EAAI,QAAQ,cAAciG,GAAclG,EAAQC,EAAI,QAAS,eAAgBA,CAAG,KAWxF,OAAOzB,GAYT,IAAMwH,GAAmB,SAAC9F,EAAKD,EAAQ,CACrC,IAAMkG,EAAIlG,EAAI,SAAS,cAAc,GAAG,EACxC,OAAAkG,EAAE,KAAOjG,EACT,GAAUiG,EAAE,SAAWA,EAAE,OAASA,EAAE,MAGhCC,GAAwB,SAACnG,EAAKlI,EAAOsO,EAAOnG,EAAQ,CACxD,IAAMoG,EAAcN,GAAiB/F,EAAI,SAAS,KAAMA,CAAG,EAC3D,MAAO,CAAE,MAAAoG,EAAO,MAAAtO,EAAO,UAAWkO,GAAgBhG,CAAG,EAAG,GAAIC,GAAOoG,EAAa,KAAMA,IAGlFJ,GAAgB,SAAClG,EAAQ7P,EAAQnC,EAAIiS,EAAKsG,EAA4B,CAA5BA,IAAe,SAAfA,EAAkB,IAChE,IAAMC,EAAOrW,EAAOnC,CAAE,EACtBmC,EAAOnC,CAAE,EAAI,SAAC+J,EAAOsO,EAAOnG,EAAQ,CAClCF,EAAO,gBAAe,WAAYhS,EAAMoY,GAAsBnG,EAAKlI,EAAOsO,EAAOnG,CAAG,EAAG,YAAY,EAE/FqG,GAAmB,OAAOvG,EAAO,iBAAoB,YAAYA,EAAO,gBAAe,EAG3FwG,EAAK,MAAMrW,EAAQ,CAAC4H,EAAOsO,CAAK,EAAE,OAAOnG,IAAQ,OAAYA,EAAM,CAAA,CAAE,CAAC,IAOpE+F,GAAkB,SAAChG,EAAQ,CAC/B,GAAI,CACF,OAAOA,EAAI,QAAQ,WACT,CAAA,GC7EdwG,GAAiB,SAAUC,EAAS,CAClC,GAAI,CAACA,EAAS,MAAO,CAAA,EAErB,IAAMhY,EAAM,CAAA,EACZ,GAAI,OAAOgY,EAAQ,SAAY,WAG7B,QAFMC,EAAWD,EAAQ,QAAO,EAC5BE,EAAQD,EAAS,KAAI,EAClB,CAACC,EAAM,MAAM,CAClB,IAAAC,EAAqBD,EAAM,MAApB/W,EAAGgX,EAAA,CAAA,EAAE1X,EAAK0X,EAAA,CAAA,EACjBnY,EAAImB,CAAG,EAAIV,EACXyX,EAAQD,EAAS,KAAI,OAEdD,EAAQ,SACjBA,EAAQ,QAAQ,SAACvX,EAAOU,EAAQ,CAC9BnB,EAAImB,CAAG,EAAIV,EACZ,EAEH,OAAOT,GClBHoY,IAAc,UAAA,CAClB,SAAAA,GAAe,CACb,KAAK,UAAY,CAAA,EAGnB,IAAA5V,EAAA4V,EAAA,UAAA,OAAA5V,EAIA,QAAA,SAAS6V,EAAU,CACjB,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,MAAM,oDAAoD,EAEtE,KAAK,UAAU,KAAKA,CAAQ,GAG9B7V,EAKA,MAAA,SAAO8V,EAAS,CACd,IAAMC,EAAU,KAAK,UAClB,IAAI,SAAAF,EAAY,CACf,GAAI,CACF,OAAOA,EAASC,CAAO,QAChBzT,EAAO,CAEd,eAAQ,MAAM,iCAAkCA,CAAK,EAC9C,MAEV,EACA,OAAO,SAAAzE,EAAM,CAAA,OAAIA,GAAU,OAAOA,GAAW,SAAQ,EAExD,MAAO,CACL,aAAc,SAACoY,EAAe,CAC5BD,EAAQ,QAAQ,SAAAnY,EAAU,CACxB,GAAI,OAAOA,EAAO,cAAiB,WACjC,GAAI,CACFA,EAAO,aAAaoY,CAAU,QACvB3T,EAAO,CACd,QAAQ,MAAM,8CAA+CA,CAAK,GAGvE,GAEH,oBAAqB0T,EAClB,IAAI,SAAAnY,EAAM,CAAA,OAAIA,EAAO,oBAAmB,EACxC,OAAO,SAAA4X,EAAO,CAAA,OAAIA,GAAW,OAAOA,GAAY,SAAQ,EACxD,OAAO,SAACS,EAAUT,EAAO,CAAA,OAAK,OAAO,OAAOS,EAAUT,CAAO,GAAG,CAAA,CAAE,IAIzExV,EAGA,OAAA,UAAU,CACR,KAAK,UAAY,CAAA,GAClB4V,IAAA,EAGHM,GAAiBN,GCxDjB,SAASO,GAAoBC,EAAQC,EAAc,CAIjD,GAJmCA,IAAO,SAAPA,EAAU,CAAA,GAIzC,IAAE,UAAWD,IAAWA,EAAO,MAAM,UAGzC,IAAI,CAACA,EAAO,0BAA2B,CACrC,IAAME,EAAU,IAAIJ,GACdK,EAAgBH,EAAO,MAE7BA,EAAO,MAAQ,SAAuBI,EAAcH,EAAc,CAAdA,IAAO,SAAPA,EAAU,CAAA,GAC5D,IAAIrH,EAAM,KACNpQ,EAAS,MAET4X,GAAgB,OAAOA,GAAiB,UAC1CxH,EAAMwH,EAAa,IACfH,GAAW,WAAYA,EACzBzX,EAASyX,EAAQ,OACRG,GAAgB,WAAYA,IACrC5X,EAAS4X,EAAa,UAGxBxH,EAAMwH,EACFH,GAAW,WAAYA,IACzBzX,EAASyX,EAAQ,SAIjBzX,IAAW,SACbA,EAAS,OAGX,IAAI6X,EAAiB,CAAA,EACjBJ,GAAWA,EAAQ,UAEjBA,EAAQ,mBAAmB,QAC7BI,EAAiBlB,GAAgBc,EAAQ,OAAO,EACvC,OAAOA,EAAQ,SAAY,WACpCI,EAAiBJ,EAAQ,UAI7B,IAAMK,EAAY,KAAK,IAAG,EACpBZ,EAAU,CACd,IAAK,OAAO9G,CAAG,EACf,OAAQ,OAAOpQ,CAAM,EACrB,UAAA8X,EACA,KAAM,QACN,MAAOF,EACP,QAASC,EACT,KAAMJ,EAAUA,EAAQ,KAAO,QAGjCM,EAAyBL,EAAQ,MAAMR,CAAO,EAAtCc,EAAYD,EAAZ,aAGR,OAAOJ,EAAc,KAAI,MAAlBA,EAAa,CAAM,IAAI,EAAA,OAAA,MAAA,UAAA,MAAA,KAAK,SAAS,CAAA,CAAA,EAAE,KAC5C,SAAAM,EAAY,CACV,OAAAD,EAAa,CACX,QAAS,KAAK,IAAG,EACjB,OAAQC,EAAS,OACjB,MAAO,UACP,QAAStB,GAAgBsB,EAAS,OAAO,EAC1C,EACMA,GAET,SAAAxU,EAAS,CACP,MAAAuU,EAAa,CACX,QAAS,KAAK,IAAG,EACjB,MAAO,QACP,MAAAvU,EACD,EACKA,EAEV,GAIF+T,EAAO,0BAA4BE,EAWrC,OAAOF,EAAO,2BAGhB,IAAAU,GAAiBX,GC9FjB,SAASY,GAAiB/H,EAAKgI,EAAkB,CAC/C,GAD6BA,IAAW,SAAXA,EAAc,CAAA,GACvC,CAAChI,GAAO,OAAOA,GAAQ,SAAU,MAAO,GAG5C,IAAMiI,EAAkBjI,EAAI,QAAQ,QAAS,EAAE,EAE/C,OAAO3R,EAAS2Z,EAAaC,CAAe,EAS9C,SAASC,GAAiBpI,EAAQqI,EAA4B,CAA5BA,IAAqB,SAArBA,EAAwB,CAAA,GACxD,IAAMH,EAAc,CAClBlI,EAAO,QAAQ,UAAU,OACzBA,EAAO,QAAQ,UAAU,QAAQ,EACjC,OAAOqI,CAAqB,EAAE,OAAO,OAAO,EAE9C,OAAO,SAACnI,EAAG,CAAA,OAAK+H,GAAgB/H,EAAKgI,CAAW,GAQlD,SAASI,GAAaV,EAAW,CAC/B,OAAOA,GAAa,KAAK,IAAG,EAAKA,EAGnC,IAAAW,GAAiB,CACf,gBAAAN,GACA,gBAAAG,GACA,YAAAE,ICtCFE,GAAiB,SAAUC,EAAe,CACxC,GAAI,CAACA,EAAe,MAAO,CAAA,EAC3B,IAAM1a,EAAM0a,EAAc,KAAI,EAAG,MAAM,SAAS,EAC1CC,EAAY,CAAA,EAClB,OAAA3a,EAAI,QAAQ,SAAC4F,EAAS,CACpB,IAAMf,EAAQe,EAAK,MAAM,IAAI,EACvBgV,EAAS/V,EAAM,MAAK,EACpBzD,EAAQyD,EAAM,KAAK,IAAI,EAC7B8V,EAAUC,CAAM,EAAIxZ,EACrB,EACMuZ,GCXTE,GAAiB,SAA0BxR,EAA8B,CAAA,IAA1B2Q,EAAQ3Q,EAAR,SAAUyR,EAAYzR,EAAZ,aACvD,GAAI2Q,GAAa,KAIjB,OAAQc,EAAY,CAClB,IAAK,cACL,IAAK,OACH,MAAO,gBACT,IAAK,WACH,MAAO,aACT,IAAK,OACH,GAAI,CACF,OAAO,KAAK,UAAUd,CAAQ,OACpB,CACV,MAAO,wBAIX,QACE,OAAO,OAAOA,CAAQ,ICf5B,SAASe,GAAkBxB,EAAQC,EAAc,CAC/C,GADiCA,IAAO,SAAPA,EAAU,CAAA,GACvC,IAAE,qBAAsBD,EAAO,eAAe,YAAc,EAAE,YAAaA,IAG/E,IAAI,CAACA,EAAO,wBAAyB,CACnC,IAAME,EAAU,IAAIJ,GAEd2B,EAAkB,IAAI,QACtBC,EAAkB,IAAI,QAEtBC,EAAe3B,EAAO,eAAe,UAAU,KAC/C4B,EAAe5B,EAAO,eAAe,UAAU,KAC/C6B,EAA2B7B,EAAO,eAAe,UAAU,iBAEjEA,EAAO,eAAe,UAAU,KAAO,SAAexX,EAAQoQ,EAAK,CAE7D,MACF6I,EAAgB,IAAI,KAAM,CAAE,OAAQ,OAAOjZ,CAAM,EAAG,IAAK,OAAOoQ,CAAG,EAAG,EAExE+I,EAAa,MAAM,KAAM,SAAS,GAGpC3B,EAAO,eAAe,UAAU,iBAAmB,SAA2BqB,EAAQxZ,EAAO,CAE3F,GAAI,KAAM,CACR,IAAMia,EAAcL,EAAgB,IAAI,IAAI,EACxCK,IACFA,EAAY,QAAUA,EAAY,SAAW,CAAA,EAC7CA,EAAY,QAAQ,OAAOT,CAAM,CAAC,GAAKS,EAAY,QAAQ,OAAOT,CAAM,CAAC,GAAK,IAAM,OAAOxZ,CAAK,GAGpGga,EAAyB,MAAM,KAAM,SAAS,GAGhD7B,EAAO,eAAe,UAAU,KAAO,SAAelH,EAAM,CAAA,IAAAhC,EAAA,KACpDgL,EAAcL,EAAgB,IAAI,IAAI,EAC5C,GAAIK,EAAa,CAGf,IAAMC,EAAYL,EAAgB,IAAI,IAAI,EACtCK,IACF,KAAK,oBAAoB,OAAQA,EAAU,IAAI,EAC/C,KAAK,oBAAoB,QAASA,EAAU,KAAK,GAGnD,IAAMzB,EAAY,KAAK,IAAG,EACpBZ,EAAU,CACd,IAAKoC,EAAY,IACjB,OAAQA,EAAY,OACpB,UAAAxB,EACA,KAAM,iBACN,KAAAxH,EACA,QAASgJ,EAAY,SAGvBvB,EAAyBL,EAAQ,MAAMR,CAAO,EAAtCc,EAAYD,EAAZ,aAEFyB,EAAqB,UAAA,CAAA,OAAMd,GAAwBpK,EAAK,sBAAqB,CAAE,GAE/EmL,EAAa,UAAM,CACvBzB,EAAa,CACX,QAAS,KAAK,IAAG,EACjB,OAAQ1J,EAAK,OACb,MAAO,UACP,QAASkL,EAAkB,EAC3B,KAAMV,GAAkBxK,CAAI,EAC7B,GAGGoL,EAAc,UAAM,CACxB1B,EAAa,CACX,QAAS,KAAK,IAAG,EACjB,MAAO,QACP,QAASwB,EAAkB,EAC3B,KAAMV,GAAkBxK,CAAI,EAC7B,GAGH,KAAK,iBAAiB,OAAQmL,CAAU,EACxC,KAAK,iBAAiB,QAASC,CAAW,EAGtC,MACFR,EAAgB,IAAI,KAAM,CAAE,KAAMO,EAAY,MAAOC,EAAa,EAItEN,EAAa,MAAM,KAAM,SAAS,GAIpC5B,EAAO,wBAA0BE,EAanC,OAAOF,EAAO,yBAGhB,IAAAmC,GAAiBX,GClHTY,GAAenB,GAAf,gBAAiBoB,GAAWpB,GAAX,YAQzB,SAASqB,GAA4B1B,EAAkBZ,EAAiB,CAAA,OAAnCY,IAAW,SAAXA,EAAc,CAAA,GAAIZ,IAAM,SAANA,EAAS,QACvD,CACL,KAAM,iBACN,KAAM,SAACtH,EAAW,CAChB,GAAI,CACF,IAAM6J,EAAe7B,GAAmBV,CAAM,EACxCwC,EAAaL,GAAiBnC,CAAM,EACpCyC,EAAYL,GAAgB1J,EAAQkI,CAAW,EAErD,MAAO,CACL,aAAA2B,EACA,WAAAC,EACA,UAAAC,EACA,YAAAJ,UAEKpW,EAAO,CACd,MAAAyM,EAAO,QAAQ,MAAM,kCAAmCzM,CAAK,EACvD,IAAI,MAAM,sCAAwCA,EAAM,OAAO,KAM7E,IAAAyW,GAAiB,CACf,eAAA5C,GACA,mBAAAY,GACA,iBAAAyB,GACA,gBAAAC,GACA,YAAAC,GACA,2BAAAC,ICxCIK,GAAkB,UAKxBC,GAAiB,SAACC,EAAmBlK,EAAiB,CAApCkK,IAAY,SAAZA,EAAe,CAAA,GAAIlK,IAAG,SAAHA,EAAM,QACzC,IAAImK,EAAmB,CAAA,EACjB5L,EAAS,CACb,KAAM,SAAAwB,EAAU,CACd,GAAI,CAACA,EAAO,yBAAyB,SAAS,EAAG,OAGjD,IAAIqK,EAAuBrK,EAAO,UAAU,gBAAgB,EAG5D,GAAI,CAACqK,EACH,GAAI,CACF,IAAQT,EAA0BI,GAA1B,2BACFM,EAAgBV,EAA2BO,EAAclK,CAAG,EAClED,EAAO,YAAYsK,CAAa,EAChCD,EAAuBrK,EAAO,UAAU,gBAAgB,QACjDzM,EAAO,CACdyM,EAAO,QAAQ,KAAK,+EAAgFzM,EAAM,OAAO,EAIrH,GAAI8W,EACF,OAAOE,EAAwBF,CAAoB,EAGrD,SAASE,EAAyBD,EAAe,CAC/C,IAAQT,EAAqDS,EAArD,aAAcR,EAAuCQ,EAAvC,WAAYP,EAA2BO,EAA3B,UAAWhC,EAAgBgC,EAAhB,YAEvCE,EAAgB,SAACC,EAAiB,CACtC,GAAI,CAAAV,EAAUU,EAAa,GAAG,EAE9B,MAAO,CACL,aAAc,SAAC1C,EAAa,CAC1B,IAAM2C,EAAWpC,EAAYmC,EAAa,SAAS,EAC7C1Z,EAAW,CACf,OAAQ0Z,EAAa,OACrB,OAAQ1C,EAAS,OACjB,IAAK0C,EAAa,IAClB,SAAAC,GAGIC,EAAUF,EAAa,OAAS,QAAU,UAAY,iBAExD1C,EAAS,QAAU,QACrB/H,EAAO,gBAAmB2K,EAAO,SAAU,CAAE,OAAQF,EAAa,OAAQ,IAAKA,EAAa,IAAK,SAAAC,GAAYT,EAAe,EACnHlC,EAAS,QAAU,IAC5B/H,EAAO,gBAAmB2K,EAAO,UAAW5Z,EAAUkZ,EAAe,EAErEjK,EAAO,gBAAmB2K,EAAO,aAAc5Z,EAAUkZ,EAAe,KAM5EJ,IACFA,EAAa,QAAQW,CAAa,EAClCJ,EAAiB,KAAKP,EAAa,QAAQ,GAEzCC,IACFA,EAAW,QAAQU,CAAa,EAChCJ,EAAiB,KAAKN,EAAW,QAAQ,MAajD,OAAOtL,GCxEToM,GAAiB,CACf,KAAM,SAAC5K,EAAW,CAEhB,IAAIxO,EAAI,EAGRwO,EAAO,WAAW,SAAC7F,EAAU,CAE3B,GAAI3I,GAAKwO,EAAO,QAAQ,UACtB,OAAAA,EAAO,QAAQ,KAAI,+DAAgEA,EAAO,QAAQ,UAAS,gBAAgB,EACpH,GAETxO,IACD,EAEDwO,EAAO,gBAAkB,UAAM,CAAExO,EAAI,IAEvC,aAAc,CACZ,UAAW,CACT,aAAc,UAAA,CAAA,MAAM,KACpB,QAAS,yCACT,SAAU,SAAAtD,EAAG,CAAA,OAAIc,EAAS,EAAG,GAAG,EAAEd,CAAG,YCrB3C2c,GAAiB,CACf,KAAM,SAAC7K,EAAW,CAChBA,EAAO,WAAW,SAAA7F,EAAS,CACzB,IAAM2Q,EAAYhd,EAAOqM,EAAM,OAAQ,SAAClM,EAAOsI,EAAE,CAAA,OAAKtI,EAAM,OAAOsI,EAAG,UAAU,GAAG,CAAA,CAAE,EACrFlG,EAAIya,EAAW,SAAAvR,EAAS,CACtBA,EAAM,KAAOwR,GAAMxR,EAAM,IAAI,EAC9B,EACF,IAIL,IAAMwR,GAAQF,GAAe,OAAS,SAAAnZ,EAAG,CAAA,OACvC,OAAOA,GAAQ,SACXA,EAAI,QAAQ,QAAS,EAAE,EAAE,QAAQ,OAAQ,EAAE,EAC3CA,GChBNsZ,GAAiB,SAAC/K,EAAclG,EAAS,CAAA,OAAvBkG,IAAG,SAAHA,EAAM,QAAQlG,IAAS,SAATA,EAAY,kBAAsB,CAChE,KAAM,SAACiG,EAAW,CAEhB,GADI,CAACA,EAAO,QAAQ,kBAChB,CAACA,EAAO,QAAQ,kBAAkB,oBAAqB,OAC3D,SAASiL,EAASC,EAAgBhL,EAAKiL,EAAQC,EAAQ7X,EAAO,CAE5D,GAAI4X,IAAW,GAAK,kBAAkB,KAAKD,CAAc,EACvDlL,EAAO,QAAQ,KAAK,oFAAoF,MACnG,CAEL,IAAMpH,EAAe,CAAE,SAAU,QAAS,UAAW,GAAM,eAAgB,CAAE,KAAM,uBAE/EuB,EAKJ,GAAI5G,EAGF4G,EAAQ6F,EAAO,MAAM,OAAOzM,EAAO,GAAMqF,EAAcmB,EAAW,CAAC,EACnEsR,GAAclR,EAAM,OAAO,CAAC,EAAE,WAAY+F,EAAKiL,EAAQC,CAAM,UAU5D,OAAOF,GAAmB,UAAYA,IAAmB,OACzD,CAAChL,GAAO,OAAOA,GAAQ,WACxB,CAACiL,GAAU,CAACC,GAAU,CAAC7X,EACvB,CAEA,IAAMsD,EAAOqU,EAAe,KAAI,UAAaA,EAAe,KAAS,QAG/Dpa,EAAUoa,EAAe,SAAWA,EAAe,QAAU,GAEnE/Q,EAAQ6F,EAAO,MAAM,OAAO,CAAE,KAAAnJ,EAAM,QAAA/F,GAAW,GAAM8H,EAAcmB,EAAW,CAAC,EAG/EI,EAAM,cAAgB+Q,EAGtB/Q,EAAM,YAAYJ,EAAW,CAAE,MAAOmR,EAAgB,gBAAiBhL,EAAK,OAI5E/F,EAAQ6F,EAAO,MAAM,OAAOkL,EAAgB,GAAMtS,EAAcmB,EAAW,CAAC,EAC5EsR,GAAclR,EAAM,OAAO,CAAC,EAAE,WAAY+F,EAAKiL,EAAQC,CAAM,EAG/DpL,EAAO,QAAQ7F,CAAK,EAGtB,GAAI,CAAEmR,EAAY,MAAM,KAAM,SAAS,OAAc,CAAA,EAGvD,IAAMA,EAAcrL,EAAI,QACxBA,EAAI,QAAUgL,KAOZI,GAAgB,SAACrY,EAAOkN,EAAKiL,EAAQC,EAAW,CAC/CpY,EAAM,CAAC,GAAGA,EAAM,KAAK,CAAA,CAAE,EAC5B,IAAMuY,EAAUvY,EAAM,CAAC,EACnB,CAACuY,EAAQ,MAAQ,OAAOrL,GAAQ,WAAUqL,EAAQ,KAAOrL,GACzD,CAACqL,EAAQ,YAAcC,GAAeL,CAAM,IAAGI,EAAQ,WAAaJ,GACnEI,EAAQ,eACPC,GAAeJ,CAAM,EACvBG,EAAQ,aAAeH,EACd,OAAO,OAASI,GAAe,OAAO,MAAM,cAAc,IACnED,EAAQ,aAAe,OAAO,MAAM,kBAKpCC,GAAiB,SAACha,EAAC,CAAA,OAAK,OAAOA,GAAM,UAAY,OAAO,KAAKA,CAAC,IAAM,OCpFtEia,GAIJC,GAAiB,SAACzL,EAAiB,CAAjBA,IAAG,SAAHA,EAAM,QACtB,IAAMzB,EAAS,CACb,KAAM,SAACwB,EAAW,CAChB,GAAI,GAACA,EAAO,QAAQ,kBAAoB,CAACA,EAAO,QAAQ,kBAAkB,qBAC1E,KAAM2L,EAAW,SAAAC,EAAO,CACtB,IAAIrY,EAAQqY,EAAI,OACZC,EAAa,GAGjB,GAAI,CACED,EAAI,QAAUA,EAAI,OAAO,SAC3BrY,EAAQqY,EAAI,OAAO,OACnBC,EAAa,SAEL,CAAA,CAGZ,IAAMC,EAAY,CAAC9L,EAAO,QAAQ,0CAE5B7F,EAAQ6F,EAAO,MAAM,OAAOzM,EAAO,GAAO,CAC9C,SAAU,QACV,UAAAuY,EACA,eAAgB,CAAE,KAAM,8BACvB,6BAA8B,EAAG9L,EAAO,OAAO,EAE9C6L,GACFxb,EAAI8J,EAAM,OAAO,CAAC,EAAE,WAAY4R,GAAsBxY,CAAK,CAAC,EAG9DyM,EAAO,QAAQ7F,EAAO,SAACA,EAAU,CAC/B,GAAItC,GAAQsC,EAAM,aAAa,GAAK,CAACA,EAAM,cAAc,MAAO,CAAA,IAAA6R,EAC9D7R,EAAM,YAAY,8BAA4B6R,EAAA,CAAA,EAAAA,EAC3C,OAAO,UAAU,SAAS,KAAK7R,EAAM,aAAa,CAAC,EAAG,CACrD,KAAMA,EAAM,cAAc,KAC1B,QAASA,EAAM,cAAc,QAC7B,KAAMA,EAAM,cAAc,MAC3B6R,EAAA,GAGN,GAEC,qBAAsB/L,EACxBA,EAAI,iBAAiB,qBAAsB0L,CAAQ,EAEnD1L,EAAI,qBAAuB,SAACtF,EAAQsR,EAAY,CAC9CN,EAAS,CAAE,OAAQ,CAAE,OAAAhR,EAAQ,QAAAsR,GAAW,GAG5CR,GAAYE,KAiBhB,OAAOnN,GAqBHuN,GAAwB,SAACxY,EAAK,CAAA,OAAK,SAACgG,EAAU,CAC9CA,EAAM,OAAShG,EAAM,SAAQ,GAC7BgG,EAAM,SACRA,EAAM,OAASA,EAAM,OAAO,QAAQ,OAAQ,EAAE,UChG5C1C,GAAO,qBACP0J,GAAU,QACVL,GAAM,wCAYNgM,GAAShc,EAAO,CAAA,EAAIX,EAAgC,OAAQgB,EAAmB,EAsB/E4b,EAAU,CACd,QAAS,KACT,aAAc,SAACpZ,EAAS,CAElB,OAAOA,GAAS,WAAUA,EAAO,CAAE,OAAQA,IAC1CA,IAAMA,EAAO,CAAA,GAElB,IAAMmL,EAAkB,CAEtBwD,GACAO,GAAY,EACZL,GAAa,EACbW,GAAa,EACbqI,GACApI,GACAG,GACAkI,GACAG,GAAmB,EACnBU,GAAwB,EACxB5F,GAA2B,EAC3BR,GAA4B,EAC5B4E,GAAwB,EACxBtH,GAGAU,GAAyB,CAAE,EAIvB8I,EAAU,IAAIzM,GAAO5M,EAAMmZ,GAAQhO,EAAiB,CAAE,KAAArH,GAAM,QAAA0J,GAAS,IAAAL,GAAK,EAGhF,OAAAkM,EAAQ,aAAa,OAAO,eAAiBrM,GAAkBoB,EAAe,EAE9EiL,EAAQ,QAAQ,MAAM,SAAS,EAC/BA,EAAQ,gBAAgB,iBAAkB,CAAA,EAAI,OAAO,EAE9CA,EAAQ,QAAQ,kBACnBA,EAAQ,aAAY,EACpBA,GAEN,MAAO,SAACrZ,EAAS,CACf,OAAIoZ,EAAQ,SACVA,EAAQ,QAAQ,QAAQ,KAAK,sDAAsD,EAC5EA,EAAQ,UAEjBA,EAAQ,QAAUA,EAAQ,aAAapZ,CAAI,EACpCoZ,EAAQ,UAEjB,UAAW,UAAM,CACf,OAAOA,EAAQ,SAAW,OAI9B,OAAA9b,EAAI,CAAC,iBAAiB,EAAE,OAAOxB,EAAK8Q,GAAO,SAAS,CAAC,EAAG,SAAC0M,EAAM,CACzD,KAAK,KAAKA,CAAC,IACfF,EAAQE,CAAC,EAAI,UAAY,CACvB,GAAI,CAACF,EAAQ,QAAS,OAAO,QAAQ,IAAG,WAAYE,EAAC,sCAAsC,EAC3FF,EAAQ,QAAQ,QAAU,EAC1B,IAAM5Q,EAAM4Q,EAAQ,QAAQE,CAAC,EAAE,MAAMF,EAAQ,QAAS,SAAS,EAC/D,OAAAA,EAAQ,QAAQ,QAAU,EACnB5Q,IAEV,EAED+Q,EAAiBH,EAEjBG,EAAe,OAAS3M,GACxB2M,EAAe,MAAQxR,GACvBwR,EAAe,QAAU9O,GACzB8O,EAAe,WAAanb,GAG5Bmb,EAAc,QAAWH,EC5GzBG,CAEA,CAAA,ICHA,IAAAC,GAAAC,GAAA,CAAAC,GAAAC,KAAA,CAAAA,GAAO,QAAU,OCAjB,IAAAC,GAAAC,GAAA,CAAAC,GAAAC,KAAA,EAAA,SAAAC,EAAA,CAAA,GAAA,OAAAF,IAAA,UAAA,OAAAC,GAAA,IAAAA,GAAA,QAAAC,EAAA,UAAA,OAAA,QAAA,YAAA,OAAA,IAAA,OAAA,CAAA,EAAAA,CAAA,MAAA,CAAA,IAAAC,EAAA,OAAA,OAAA,IAAAA,EAAA,OAAA,OAAA,OAAA,IAAAA,EAAA,OAAA,OAAA,KAAA,IAAAA,EAAA,KAAAA,EAAA,KAAAA,EAAA,mBAAAD,EAAA,CAAA,CAAA,GAAA,UAAA,CAAA,IAAAE,EAAAH,EAAAD,EACAK,EAAA,CAAA,2aCDAA,GAAc,UAAA,CACZ,SAAAC,GAAsB,CAEpB,IAAMC,EAAc,OAAO,OAAW,KAAe,OAAO,MAK5D,GAHA,KAAK,KAAO,QACZ,KAAK,KAAO,UAAK,SAAW,GAAK,CAACA,EAE9B,CAAC,KAAK,OACR,KAAK,OAAQ,UAAA,QAAA,EAAA,OAAA,UAAA,CAAA,IAAWA,EACpB,CAAC,KAAK,OAAO,MAAM,IAAI,MAAM,0DAA0D,EAE9F,IAAAC,EAAAF,EAAA,UAAA,OAAAE,EAED,KAAA,SAAMC,EAAQ,CACZ,GAAI,CAAC,KAAK,KAAM,CACd,IAAMC,EAAgBC,EAAY,KAAK,MAAOF,CAAM,EACpD,OAAAC,EAAc,oBAAsB,UAAA,CAAA,OAAMA,GACnCA,EAGT,IAAME,EAAoC,UAAY,CACpD,MAAM,IAAI,MAAK;;;;;;;;;;kFAU6D,GAE9E,OAAAA,EAAkC,oBAAsB,SAACC,EAAU,CACjE,GAAI,CAACA,EAAO,MAAM,IAAI,MAAM,0DAA0D,EACtF,OAAOF,EAAYE,EAAOJ,CAAM,GAE3BG,GACRN,IAAA,EAGH,IAAMQ,EAAuB,SAAAC,EAAO,CAGlC,QAFMC,EAAQD,EAAI,MAAM,KAAK,EACzBE,EAAM,GACDC,EAAO,EAAGC,EAAMH,EAAM,OAAQE,EAAOC,EAAKD,IAC7CF,EAAME,CAAI,EAAE,SAAQD,IAAUA,EAAI,OAAS;EAAO,IAAKD,EAAME,CAAI,EAAE,KAAI,GAE7E,OAAOD,GAGHN,EAAc,SAACE,EAAOJ,EAAM,CAAA,OAAA,SAAAW,EAAA,CAChC,SAAAV,EAAaW,EAAO,CAAA,IAAAC,EAClB,OAAAA,EAAAF,EAAA,KAAA,KAAMC,CAAK,GAAC,KACZC,EAAK,MAAQ,CACX,MAAO,KACP,KAAM,MAERA,EAAK,iBAAmBA,EAAK,iBAAiB,KAAIA,CAAK,EAACA,EACzDC,EAAAb,EAAAU,CAAA,EAAA,IAAAI,EAAAd,EAAA,UAAA,OAAAc,EAED,iBAAA,UAAoB,CAClB,KAAK,SAAS,CAAE,MAAO,KAAM,KAAM,KAAM,GAC1CA,EAED,kBAAA,SAAmBC,EAAOC,EAAM,CAC9B,IAAQC,EAAY,KAAK,MAAjB,QACFC,EAAe,CAAE,SAAU,QAAS,UAAW,GAAM,eAAgB,CAAE,KAAM,uBAC7EC,EAAQpB,EAAO,MAAM,OACzBgB,EACA,GACAG,EACA,CACF,EACIF,GAAQA,EAAK,iBAAgBA,EAAK,eAAiBZ,EAAqBY,EAAK,cAAc,GAC/FG,EAAM,YAAY,QAASH,CAAI,EAC/BjB,EAAO,QAAQoB,EAAOF,CAAO,EAC7B,KAAK,SAAS,CAAE,MAAAF,EAAO,KAAAC,EAAM,GAC9BF,EAED,OAAA,UAAU,CACR,IAAQC,EAAU,KAAK,MAAf,MACR,GAAIA,EAAO,CACT,IAAQK,EAAsB,KAAK,MAA3B,kBACR,OAAIA,EAA0BjB,EAAM,cAAciB,EAAiBC,EAAA,CAAA,EAAO,KAAK,MAAK,CAAE,WAAY,KAAK,iBAAgB,CAAE,EAClH,KAET,OAAO,KAAK,MAAM,UACnBrB,IArCgEG,EAAM,SAAS,GAwClF,OAAAR,EAAe,qBAAuBS,EACtCT,EAAc,QAAWA,EC3FzBA,CAEA,CAAA,ICHA,IAAA2B,GAAoB,SAEpBC,GAA+B,SCF/B,IAAMC,GAAN,KAA+B,CAC3B,YAAYC,EAAc,CACtB,KAAK,aAAeA,CACxB,CACA,KAAKC,EAAQ,CACTA,EAAO,WAAYC,GAAU,CACzB,IAAMC,EAAc,KAAK,kBAAkBD,EAAM,OAAO,CAAC,CAAC,EACtDC,IAEAD,EAAM,OAAO,CAAC,EAAE,WAAaC,EAErC,CAAC,CACL,CACA,kBAAkBC,EAAO,CACrB,OAAO,OAAO,KAAK,KAAK,YAAY,EAAE,KAAMC,GACjC,KAAK,aAAaA,CAAG,EAAE,KAAMC,GAC5B,OAAOA,GAAS,SACTF,EAAM,aAAa,SAASE,CAAI,EAEpCA,EAAKF,CAAK,CACpB,CACJ,CACL,CACJ,EDlBA,IAAMG,GAAoB,IAAIC,GAAyB,CACrD,sCAAuC,CACrC,8DACF,CACF,CAAC,EAEc,SAARC,GAA6BC,EAAqB,CACvD,IAAMC,EAAgB,GAAAC,QAAQ,MAAM,CAElC,OAAQ,mCACR,QAAS,CAAC,IAAI,GAAAC,QAAsBN,EAAiB,EACrD,aAAcG,EACd,qBAAsB,CAAC,UAAW,aAAc,aAAc,eAAe,EAC7E,QAAS,SAAUI,EAAqB,CAClC,OAAO,IAAI,SACbA,EAAM,QAAQ,OAAO,IAAI,QAAQ,SAAS,CAAC,CAE/C,CACF,CAAC,EAGD,OAAO,cAAgBH,CACzB,CEzBA,IAAMI,GAAc,aACpBC,GAAYD,EAAW", "names": ["require_bugsnag", "__commonJSMin", "exports", "module", "f", "g", "define", "_$breadcrumbTypes_13", "_$reduce_22", "arr", "fn", "accum", "val", "i", "len", "_$filter_17", "item", "_$includes_18", "x", "_$isArray_19", "obj", "_hasDontEnumBug", "_dontEnums", "_$keys_20", "result", "prop", "_$intRange_29", "min", "max", "value", "_$listOfFunctions_30", "_$stringWithLength_31", "defaultErrorTypes", "_$config_10", "providedKeys", "defaultKeys", "k", "endpoints", "maybeType", "key", "method", "s", "p", "feature", "_$assign_16", "target", "source", "_$map_21", "schema", "_$config_6", "_extends", "getPrefixedConsole", "logger", "consoleLog", "consoleMethod", "Breadcrumb", "message", "metadata", "type", "timestamp", "_proto", "_$Breadcrumb_8", "root", "factory", "_$stackframe_5", "_isNumber", "n", "_capitalize", "str", "_getter", "booleanProps", "numericProps", "stringProps", "arrayProps", "objectProps", "props", "StackFrame", "v", "fileName", "lineNumber", "columnNumber", "functionName", "argsStartIndex", "argsEndIndex", "args", "locationString", "parts", "j", "_$stackGenerator_4", "opts", "stack", "maxStackSize", "curr", "_$errorStackParser_2", "FIREFOX_SAFARI_STACK_REGEXP", "CHROME_IE_STACK_REGEXP", "SAFARI_NATIVE_CODE_REGEXP", "error", "urlLike", "regExp", "filtered", "line", "sanitizedLine", "location", "tokens", "locationParts", "functionNameRegex", "matches", "e", "lineRE", "lines", "match", "functionCall", "argsRaw", "_$errorStackParser_15", "_$safeJsonStringify_1", "data", "replacer", "space", "redactedKeys", "redactedPaths", "prepareObjForSerialization", "MAX_DEPTH", "MAX_EDGES", "MIN_PRESERVED_DEPTH", "REPLACEMENT_NODE", "isError", "o", "throwsMessage", "err", "find", "haystack", "needle", "isDescendent", "paths", "path", "shouldRedact", "patterns", "__isArray_1", "safelyGetProp", "seen", "edges", "visit", "edgesExceeded", "fResult", "er", "eResult", "aResult", "add", "existingFeatures", "existingFeatureKeys", "name", "variant", "existingIndex", "merge", "newFeatures", "toEventApi", "featureFlags", "_ref", "flag", "clear", "features", "featuresIndex", "_$featureFlagDelegate_23", "_$hasStack_24", "_$isError_3", "__isError_3", "_$iserror_25", "__add_27", "state", "section", "keyOrObj", "maybeVal", "_updates", "updates", "__clear_27", "get", "_$metadataDelegate_27", "Event", "errorClass", "errorMessage", "stacktrace", "handledState", "originalError", "defaultHandledState", "createBugsnagError", "traceId", "spanId", "___extends_11", "previousValue", "id", "email", "formatStackframe", "frame", "normaliseFunctionName", "ensureString", "getCauseStack", "errorFramesToSkip", "backtraceFramesToSkip", "maybeError", "tolerateNonErrors", "component", "_normaliseError", "normaliseError", "internalFrames", "event", "makeSerialisable", "_event$errors", "causes", "normalisedCauses", "cause", "_normaliseError2", "createAndLogInputError", "reason", "verb", "hasNecessaryFields", "_$Event_11", "_$asyncEvery_12", "cb", "index", "next", "_$callbackRunner_14", "callbacks", "onCallbackError", "runMaybeAsyncCallback", "ret", "_$syncCallbackRunner_28", "callbackArg", "callbackType", "ignore", "cbs", "isCuid", "_$isCuid_35", "pad", "num", "size", "_$pad_36", "createCuid", "fingerprint", "blockSize", "base", "discreteValues", "c", "randomBlock", "safeCounter", "cuid", "letter", "counter", "print", "random", "_$createCuid_33", "env", "globalCount", "mimeTypesLength", "clientId", "_$fingerprint_34", "_$cuid_32", "Session", "_$Session_37", "__add_9", "__clear_9", "__merge_9", "SECONDARY_ENDPOINT_API_KEY_PREFIX", "SECONDARY_NOTIFY_ENDPOINT", "SECONDARY_SESSIONS_ENDPOINT", "noop", "Client", "configuration", "internalPlugins", "notifier", "_this", "pl", "self", "notify", "plugin", "_reduce", "defaultValue", "valid", "errors", "config", "generateConfigErrorMessage", "d", "session", "front", "crumb", "types", "onError", "postReportCallback", "_this2", "originalSeverity", "shouldSend", "rawInput", "stringify", "_$Client_9", "EVENT_REDACTION_PATHS", "_$jsonPayload_26", "payload", "_$delivery_38", "client", "win", "url", "getApiUrl", "body", "req", "endpoint", "version", "isoDate", "matchPageProtocol", "pageProtocol", "getIntegrityHeaderValue", "windowOrWorkerGlobalScope", "requestBody", "msgUint8", "hashBuffer", "hashArray", "hashHex", "b", "_$delivery_39", "status", "_err", "integrity", "_err2", "appStart", "reset", "_$app_40", "now", "_$context_41", "BUGSNAG_ANONYMOUS_ID_KEY", "getDeviceId", "storage", "_$cuid_43", "_$device_42", "nav", "device", "setDefaultUserId", "eventOrSession", "user", "_$request_48", "_$session_49", "sessionDelegate", "sessionClient", "_$clientIp_50", "_$consoleBreadcrumbs_51", "isDev", "CONSOLE_LOG_METHODS", "original", "_len", "_key", "arg", "stringified", "MAX_LINE_LENGTH", "MAX_SCRIPT_LENGTH", "_$inlineScriptContent_52", "doc", "originalLocation", "html", "isOldIe", "DOMContentLoaded", "getHtml", "prev", "_lastScript", "updateLastScript", "script", "getCurrentScript", "scripts", "addSurroundingCode", "htmlLines", "zeroBasedLine", "start", "end", "cleanUrl", "currentScript", "content", "_map", "__proxy", "__traceOriginalScript", "_setTimeout", "eventTargetCallbackAccessor", "callbackAccessor", "alsoCallOriginal", "cba", "host", "replacement", "isEventHandlerObj", "_$interactionBreadcrumbs_53", "targetText", "targetSelector", "getNodeText", "getNodeSelector", "trim", "el", "text", "_$navigationBreadcrumbs_54", "drop", "relativeLocation", "getCurrentState", "wrapHistoryFn", "a", "stateChangeToMetadata", "title", "currentPath", "resetEventCount", "orig", "_$headersToObject_62", "headers", "iterator", "entry", "_entry$value", "RequestTracker", "callback", "context", "results", "endContext", "combined", "_$RequestTracker_63", "createFetchTracker", "global", "options", "tracker", "originalFetch", "urlOrRequest", "requestHeaders", "startTime", "_tracker$start", "onRequestEnd", "response", "_$createFetchTracker_61", "shouldIgnoreUrl", "ignoredUrls", "urlWithoutQuery", "createUrlFilter", "additionalIgnoredUrls", "getDuration", "_$urlHelpers_64", "_$xhrHeaderStringToObject_65", "headersString", "headerMap", "header", "_$xhrResponseParser_66", "responseType", "createXhrTracker", "trackedRequests", "requestHandlers", "originalOpen", "originalSend", "originalSetRequestHeader", "requestData", "listeners", "getResponseHeaders", "handleLoad", "handleError", "_$createXhrTracker_67", "__createUrlFilter_60", "__getDuration_60", "createRequestTrackerPlugin", "fetchTracker", "xhrTracker", "urlFilter", "_$requestTracker_60", "BREADCRUMB_TYPE", "_$networkBreadcrumbs_55", "_ignoredUrls", "restoreFunctions", "requestTrackerPlugin", "trackerPlugin", "useSharedRequestTracker", "handleRequest", "startContext", "duration", "request", "_$throttle_56", "_$stripQueryString_57", "allFrames", "strip", "_$onerror_58", "onerror", "messageOrEvent", "lineNo", "charNo", "decorateStack", "prevOnError", "culprit", "isActualNumber", "_listener", "_$unhandledRejection_59", "listener", "evt", "isBluebird", "unhandled", "fixBluebirdStacktrace", "_event$addMetadata", "promise", "__schema_7", "Bugsnag", "bugsnag", "m", "_$notifier_7", "require_notifier", "__commonJSMin", "exports", "module", "require_bugsnag_react", "__commonJSMin", "exports", "module", "f", "g", "define", "_$src_1", "BugsnagPluginReact", "globalReact", "_proto", "client", "ErrorBoundary", "createClass", "BugsnagPluginReactLazyInitializer", "React", "formatComponentStack", "str", "lines", "ret", "line", "len", "_React$Component", "props", "_this", "_inheritsLoose", "_proto2", "error", "info", "onError", "handledState", "event", "FallbackComponent", "_extends", "import_js", "import_plugin_react", "BugsnagPluginCustomError", "customErrors", "client", "event", "customError", "error", "key", "rule", "customErrorPlugin", "BugsnagPluginCustomError", "initBugsnag", "environment", "bugsnagClient", "Bugsnag", "BugsnagPluginReact", "event", "environment", "initBugsnag"] }