@interopio/desktop 6.13.1 → 6.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.umd.min.js","sources":["../node_modules/@interopio/core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/constants.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../../schemas/app/application.js","../../schemas/app/system.js","../../schemas/app/layout.js","../../schemas/app/swTheme.js","../../schemas/app/swConfiguration.js","../../schemas/app/main.js","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/displays/displayManager.ts","../src/channels/channelIDUtils.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/helpers.ts","../src/hotkeys/hotkeys.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../node_modules/@interopio/utils/dist/utils.es.js","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../../../app/utils/promise.js","../src/interception/main.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/layouts/main.ts","../src/channels/main.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.send(defineRootMetricsMsg);\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.send(createMetricsMsg);\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(shadowedUpdateMetric);\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.send(rootMetric);\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.send(createMetricsMsg);\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg);\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n this.ws.onerror = (err) => {\n let reason = \"\";\n try {\n reason = JSON.stringify(err);\n }\n catch (error) {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n children = [];\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: this.handleClientUnload.bind(this) },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, this.defaultTargetString);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, this.defaultTargetString);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.parent) {\n this.parent.postMessage(message, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n });\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId === data.clientId) {\n return this.handleAcceptanceOfMyRequest(data);\n }\n return this.handleAcceptanceOfGrandChildRequest(data, event);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleAcceptanceOfGrandChildRequest(data, event) {\n if (this.extContentConnecting || this.extContentConnected) {\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\n return;\n }\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\n const child = this.children.find((c) => c.grandChildId === data.clientId);\n if (!child) {\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\n return;\n }\n child.connected = true;\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\n data.parentWindowId = this.publicWindowId;\n child.source.postMessage(event.data, child.origin, [data.port]);\n return;\n }\n handleConnectionRejected(event) {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (!this.connectionReject) {\n return;\n }\n const errorMsg = typeof event.data.glue42core?.error === \"string\"\n ? `Connection was rejected. ${event.data.glue42core?.error}`\n : \"The platform connection was rejected. Most likely because this window was not created by a glue API call\";\n this.connectionReject(errorMsg);\n delete this.connectionReject;\n }\n handleConnectionRequest(event) {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n const source = event.source;\n const data = event.data.glue42core;\n if (!data.clientType || data.clientType !== \"grandChild\") {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\n }\n if (!data.clientId) {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\n }\n if (!this.parent) {\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\n }\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\n this.parent.postMessage(event.data, this.defaultTargetString);\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n }\n handleClientUnload(event) {\n const data = event.data.glue42core;\n const clientId = data?.data.clientId;\n if (!clientId) {\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\n return;\n }\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\n if (!foundChild) {\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\n return;\n }\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n rejectConnectionRequest(source, origin, reason) {\n this.rejected = true;\n this.logger.error(reason);\n const rejection = {\n glue42core: {\n type: this.messages.connectionRejected.name\n }\n };\n source.postMessage(rejection, origin);\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, this.defaultTargetString);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow?.parent || currentWindow === currentWindow.parent) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n _connectionOn = false;\n logger.debug(\"connection is down\");\n isJoined = false;\n tryReconnecting = true;\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n join(_latestOptions);\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n logger.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId].error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n this.logger.trace(`Starting login for transport: ${this.transport.name()} and auth ${JSON.stringify(authRequest)}`);\n try {\n await this.transport.open();\n this.logger.trace(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.trace(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.trace(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n return;\n }\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.handleDisconnected();\n this.registry.execute(\"disconnected\");\n }\n }\n handleDisconnected() {\n this.setLoggedIn(false);\n const tryToLogin = this.shouldTryLogin;\n if (tryToLogin && this.initialLogin) {\n if (this.initialLoginAttempts <= 0) {\n return;\n }\n this.initialLoginAttempts--;\n }\n this.logger.debug(\"disconnected - will try new login?\" + this.shouldTryLogin);\n if (this.shouldTryLogin) {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n this.login(this.loginConfig, true)\n .catch(() => {\n setTimeout(this.handleDisconnected.bind(this), this.settings.reconnectInterval || 1000);\n });\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.logger.info(\"logging in...\");\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.initialLogin = false;\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args);\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n this.logFn.error(toPrint, error);\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.5.2-fmr-beta\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n if (typeof configuration.contexts === \"undefined\") {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"object\") {\n return Object.assign({}, { reAnnounceKnownContexts: true }, configuration.contexts);\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform || configuration.gateway?.inproc || configuration.gateway?.sharedWorker) {\n return {\n username: \"glue42\", password: \"glue42\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n hasReceivedSnapshot;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n obj[pathArr[i]] = {};\n }\n if (typeof obj[pathArr[i]] !== \"object\") {\n obj[pathArr[i]] = {};\n }\n obj = obj[pathArr[i]];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState().then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }));\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, delta);\n }\n let currentContext = contextData.context;\n if (!contextData.hasCallbacks()) {\n currentContext = await this.get(contextData.name);\n }\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return Promise.resolve({});\n }\n if (contextData && (!contextData.hasCallbacks() || !contextData.hasReceivedSnapshot)) {\n return new Promise((resolve) => {\n this.subscribe(name, (data, _d, _r, un) => {\n this.unsubscribe(un);\n resolve(data);\n });\n });\n }\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n }\n if (this._contextsSubscriptionsCache.every((subscription) => subscription.subKey !== this._nextCallbackSubscriptionNumber)) {\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber);\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter((subscription) => subscription.subKey !== subscriptionKey);\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n contextData.hasReceivedSnapshot = true;\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData);\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data || {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot || {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n sendUnsubscribe(contextData) {\n contextData.sentExplicitSubscription = false;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then((_) => undefined);\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n const contextData = this._contextNameToData[ctxName];\n if (contextData.isAnnounced && (contextData.activityId || contextData.sentExplicitSubscription)) {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n }\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = { ...methodFilter };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n }\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\" && target !== \"skipMine\") {\n return Promise.reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\" and \"best\".`));\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n if (additionalOptions.waitTimeoutMs !== undefined && typeof additionalOptions.waitTimeoutMs !== \"number\") {\n return Promise.reject(new Error(`\"${additionalOptions.waitTimeoutMs}\" is not a valid number for \"waitTimeoutMs\" `));\n }\n if (typeof argumentObj !== \"object\") {\n return Promise.reject(new Error(`The method arguments must be an object. method: ${methodDefinition.name}`));\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const errorObj = {\n method,\n called_with: argumentObj,\n message: `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`,\n executed_by: undefined,\n returned: undefined,\n status: undefined,\n };\n return Promise.reject(errorObj);\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n if (instanceFilter?.peerId && instanceFilter?.instance) {\n instanceFilter = { ...instanceFilter };\n delete instanceFilter.peerId;\n }\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage);\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage);\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage);\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop);\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage);\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository);\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg);\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args);\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId });\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\n });\n registerLib(\"contexts\", _contexts, initTimer);\n return _contexts;\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=application.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwimlaneItemType = exports.LayoutType = void 0;\nvar LayoutType;\n(function (LayoutType) {\n LayoutType[\"Global\"] = \"Global\";\n LayoutType[\"Activity\"] = \"Activity\";\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\n LayoutType[\"Swimlane\"] = \"Swimlane\";\n LayoutType[\"Workspaces\"] = \"Workspace\";\n})(LayoutType || (exports.LayoutType = LayoutType = {}));\nvar SwimlaneItemType;\n(function (SwimlaneItemType) {\n SwimlaneItemType[\"Tab\"] = \"tab\";\n SwimlaneItemType[\"Window\"] = \"window\";\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\n})(SwimlaneItemType || (exports.SwimlaneItemType = SwimlaneItemType = {}));\n//# sourceMappingURL=layout.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// export { SchemaValidator } from \"./validator\";\n// export { FileProvider } from \"./fileProvider\";\n// export { SchemaProvider } from \"./provider\";\n__exportStar(require(\"./application\"), exports);\n__exportStar(require(\"./system\"), exports);\n__exportStar(require(\"./layout\"), exports);\n__exportStar(require(\"./swTheme\"), exports);\n__exportStar(require(\"./swConfiguration\"), exports);\n//# sourceMappingURL=main.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"const connectBrowserAppProps = [\"name\", \"title\", \"version\", \"customProperties\", \"icon\", \"caption\", \"type\"];\nconst fdc3v2AppProps = [\"appId\", \"name\", \"type\", \"details\", \"version\", \"title\", \"tooltip\", \"lang\", \"description\", \"categories\", \"icons\", \"screenshots\", \"contactEmail\", \"moreInfo\", \"publisher\", \"customConfig\", \"hostManifests\", \"interop\", \"localizedVersions\"];\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nDecoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nDecoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nconst intentDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n displayName: optional(string()),\n contexts: optional(array(string())),\n customConfig: optional(object())\n});\nconst v2TypeDecoder = oneOf(constant(\"web\"), constant(\"native\"), constant(\"citrix\"), constant(\"onlineNative\"), constant(\"other\"));\nconst v2DetailsDecoder = object({\n url: nonEmptyStringDecoder\n});\nconst v2IconDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder)\n});\nconst v2ScreenshotDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder),\n label: optional(nonEmptyStringDecoder)\n});\nconst v2ListensForIntentDecoder = object({\n contexts: array(nonEmptyStringDecoder),\n displayName: optional(nonEmptyStringDecoder),\n resultType: optional(nonEmptyStringDecoder),\n customConfig: optional(anyJson())\n});\nconst v2IntentsDecoder = object({\n listensFor: optional(dict(v2ListensForIntentDecoder)),\n raises: optional(dict(array(nonEmptyStringDecoder)))\n});\nconst v2UserChannelDecoder = object({\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2AppChannelDecoder = object({\n name: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2InteropDecoder = object({\n intents: optional(v2IntentsDecoder),\n userChannels: optional(v2UserChannelDecoder),\n appChannels: optional(array(v2AppChannelDecoder))\n});\nconst glue42ApplicationDetailsDecoder = object({\n url: optional(nonEmptyStringDecoder),\n top: optional(number()),\n left: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\nconst glue42HostManifestsBrowserDecoder = object({\n name: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder.where((s) => s === \"window\", \"Expected a value of window\")),\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n customProperties: optional(anyJson()),\n icon: optional(string()),\n caption: optional(string()),\n details: optional(glue42ApplicationDetailsDecoder),\n intents: optional(array(intentDefinitionDecoder)),\n hidden: optional(boolean())\n});\nconst v1DefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n appId: nonEmptyStringDecoder,\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n manifest: nonEmptyStringDecoder,\n manifestType: nonEmptyStringDecoder,\n tooltip: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n images: optional(array(object({ url: optional(nonEmptyStringDecoder) }))),\n icons: optional(array(object({ icon: optional(nonEmptyStringDecoder) }))),\n customConfig: anyJson(),\n intents: optional(array(intentDefinitionDecoder))\n});\nconst v2LocalizedDefinitionDecoder = object({\n appId: optional(nonEmptyStringDecoder),\n name: optional(nonEmptyStringDecoder),\n details: optional(v2DetailsDecoder),\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder)\n});\nconst v2DefinitionDecoder = object({\n appId: nonEmptyStringDecoder,\n name: nonEmptyStringDecoder,\n type: v2TypeDecoder,\n details: v2DetailsDecoder,\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder),\n localizedVersions: optional(dict(v2LocalizedDefinitionDecoder))\n});\nconst allDefinitionsDecoder = oneOf(v1DefinitionDecoder, v2DefinitionDecoder);\n\nconst parseDecoderErrorToStringMessage = (error) => {\n return `${error.kind} at ${error.at}: ${JSON.stringify(error.input)}. Reason - ${error.message}`;\n};\n\nclass FDC3Service {\n fdc3ToDesktopDefinitionType = {\n web: \"window\",\n native: \"exe\",\n citrix: \"citrix\",\n onlineNative: \"clickonce\",\n other: \"window\"\n };\n toApi() {\n return {\n isFdc3Definition: this.isFdc3Definition.bind(this),\n parseToBrowserBaseAppData: this.parseToBrowserBaseAppData.bind(this),\n parseToDesktopAppConfig: this.parseToDesktopAppConfig.bind(this)\n };\n }\n isFdc3Definition(definition) {\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n return { isFdc3: false, reason: parseDecoderErrorToStringMessage(decodeRes.error) };\n }\n if (definition.appId && definition.details) {\n return { isFdc3: true, version: \"2.0\" };\n }\n if (definition.manifest) {\n return { isFdc3: true, version: \"1.2\" };\n }\n return { isFdc3: false, reason: \"The passed definition is not FDC3\" };\n }\n parseToBrowserBaseAppData(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n const userProperties = this.getUserPropertiesFromDefinition(definition, version);\n const createOptions = { url: this.getUrl(definition, version) };\n const baseApplicationData = {\n name: definition.appId,\n type: \"window\",\n createOptions,\n userProperties: {\n ...userProperties,\n intents: version === \"1.2\"\n ? userProperties.intents\n : this.getIntentsFromV2AppDefinition(definition),\n details: createOptions\n },\n title: definition.title,\n version: definition.version,\n icon: this.getIconFromDefinition(definition, version),\n caption: definition.description,\n fdc3: version === \"2.0\" ? { ...definition, definitionVersion: \"2.0\" } : undefined,\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return baseApplicationData;\n }\n const ioDefinitionDecodeRes = glue42HostManifestsBrowserDecoder.run(ioConnectDefinition);\n if (!ioDefinitionDecodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(ioDefinitionDecodeRes.error)}`);\n }\n if (!Object.keys(ioDefinitionDecodeRes.result).length) {\n return baseApplicationData;\n }\n return this.mergeBaseAppDataWithGlueManifest(baseApplicationData, ioDefinitionDecodeRes.result);\n }\n parseToDesktopAppConfig(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n if (version === \"1.2\") {\n const fdc3v1Definition = definition;\n return {\n name: fdc3v1Definition.appId,\n type: \"window\",\n details: {\n url: this.getUrl(definition, version)\n },\n version: fdc3v1Definition.version,\n title: fdc3v1Definition.title,\n tooltip: fdc3v1Definition.tooltip,\n caption: fdc3v1Definition.description,\n icon: fdc3v1Definition.icons?.[0].icon,\n intents: fdc3v1Definition.intents,\n customProperties: {\n manifestType: fdc3v1Definition.manifestType,\n images: fdc3v1Definition.images,\n contactEmail: fdc3v1Definition.contactEmail,\n supportEmail: fdc3v1Definition.supportEmail,\n publisher: fdc3v1Definition.publisher,\n icons: fdc3v1Definition.icons,\n customConfig: fdc3v1Definition.customConfig\n }\n };\n }\n const fdc3v2Definition = definition;\n const desktopDefinition = {\n name: fdc3v2Definition.appId,\n type: this.fdc3ToDesktopDefinitionType[fdc3v2Definition.type],\n details: fdc3v2Definition.details,\n version: fdc3v2Definition.version,\n title: fdc3v2Definition.title,\n tooltip: fdc3v2Definition.tooltip,\n caption: fdc3v2Definition.description,\n icon: this.getIconFromDefinition(fdc3v2Definition, \"2.0\"),\n intents: this.getIntentsFromV2AppDefinition(fdc3v2Definition),\n fdc3: { ...fdc3v2Definition, definitionVersion: \"2.0\" }\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return desktopDefinition;\n }\n if (typeof ioConnectDefinition !== \"object\" || Array.isArray(ioConnectDefinition)) {\n throw new Error(`Invalid '${definition.hostManifests.ioConnect ? \"hostManifests.ioConnect\" : \"hostManifests['Glue42']\"}' key`);\n }\n return this.mergeDesktopConfigWithGlueManifest(desktopDefinition, ioConnectDefinition);\n }\n getUserPropertiesFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key)));\n }\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key) && !fdc3v2AppProps.includes(key)));\n }\n getUrl(definition, version) {\n let url;\n if (version === \"1.2\") {\n const parsedManifest = JSON.parse(definition.manifest);\n url = parsedManifest.details?.url || parsedManifest.url;\n }\n else {\n url = definition.details?.url;\n }\n if (!url || typeof url !== \"string\") {\n throw new Error(`Invalid FDC3 ${version} definition. Provide valid 'url' under '${version === \"1.2\" ? \"manifest\" : \"details\"}' key`);\n }\n return url;\n }\n getIntentsFromV2AppDefinition(definition) {\n const fdc3Intents = definition.interop?.intents?.listensFor;\n if (!fdc3Intents) {\n return;\n }\n const intents = Object.entries(fdc3Intents).map((fdc3Intent) => {\n const [intentName, intentData] = fdc3Intent;\n return {\n name: intentName,\n ...intentData\n };\n });\n return intents;\n }\n getIconFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return definition.icons?.find((iconDef) => iconDef.icon)?.icon || undefined;\n }\n return definition.icons?.find((iconDef) => iconDef.src)?.src || undefined;\n }\n mergeBaseAppDataWithGlueManifest(baseAppData, hostManifestDefinition) {\n let baseApplicationDefinition = baseAppData;\n if (hostManifestDefinition.details) {\n const details = { ...baseAppData.createOptions, ...hostManifestDefinition.details };\n baseApplicationDefinition.createOptions = details;\n baseApplicationDefinition.userProperties.details = details;\n }\n if (Array.isArray(hostManifestDefinition.intents)) {\n baseApplicationDefinition.userProperties.intents = (baseApplicationDefinition.userProperties.intents || []).concat(hostManifestDefinition.intents);\n }\n baseApplicationDefinition = { ...baseApplicationDefinition, ...hostManifestDefinition };\n delete baseApplicationDefinition.details;\n delete baseApplicationDefinition.intents;\n return baseApplicationDefinition;\n }\n mergeDesktopConfigWithGlueManifest(config, desktopDefinition) {\n const appConfig = Object.assign({}, config, desktopDefinition, { details: { ...config.details, ...desktopDefinition.details } });\n if (Array.isArray(desktopDefinition.intents)) {\n appConfig.intents = (config.intents || []).concat(desktopDefinition.intents);\n }\n return appConfig;\n }\n}\n\nconst decoders$1 = {\n common: {\n nonEmptyStringDecoder,\n nonNegativeNumberDecoder\n },\n fdc3: {\n allDefinitionsDecoder,\n v1DefinitionDecoder,\n v2DefinitionDecoder\n }\n};\n\nvar INTENTS_ERRORS;\n(function (INTENTS_ERRORS) {\n INTENTS_ERRORS[\"USER_CANCELLED\"] = \"User Closed Intents Resolver UI without choosing a handler\";\n INTENTS_ERRORS[\"CALLER_NOT_DEFINED\"] = \"Caller Id is not defined\";\n INTENTS_ERRORS[\"TIMEOUT_HIT\"] = \"Timeout hit\";\n INTENTS_ERRORS[\"INTENT_NOT_FOUND\"] = \"Cannot find Intent\";\n INTENTS_ERRORS[\"HANDLER_NOT_FOUND\"] = \"Cannot find Intent Handler\";\n INTENTS_ERRORS[\"TARGET_INSTANCE_UNAVAILABLE\"] = \"Cannot start Target Instance\";\n INTENTS_ERRORS[\"INTENT_DELIVERY_FAILED\"] = \"Target Instance did not add a listener\";\n INTENTS_ERRORS[\"RESOLVER_UNAVAILABLE\"] = \"Intents Resolver UI unavailable\";\n INTENTS_ERRORS[\"RESOLVER_TIMEOUT\"] = \"User did not choose a handler\";\n INTENTS_ERRORS[\"INVALID_RESOLVER_RESPONSE\"] = \"Intents Resolver UI returned invalid response\";\n INTENTS_ERRORS[\"INTENT_HANDLER_REJECTION\"] = \"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\";\n})(INTENTS_ERRORS || (INTENTS_ERRORS = {}));\n\nclass IoC {\n _fdc3;\n _decoders = decoders$1;\n _errors = {\n intents: INTENTS_ERRORS\n };\n get fdc3() {\n if (!this._fdc3) {\n this._fdc3 = new FDC3Service().toApi();\n }\n return this._fdc3;\n }\n get decoders() {\n return this._decoders;\n }\n get errors() {\n return this._errors;\n }\n}\n\nconst ioc = new IoC();\nconst fdc3 = ioc.fdc3;\nconst decoders = ioc.decoders;\nconst errors = ioc.errors;\n\nexport { decoders, errors, fdc3 };\n//# sourceMappingURL=utils.es.js.map\n",null,null,null,null,null,null,null,"export class PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n static async delayForever() {\n const biggestPossibleDelay = 2147483647;\n while (true) {\n await this.delay(biggestPossibleDelay);\n }\n }\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\nexport function callbackifyPromise(action, successCallback, errorCallback, logger, token) {\n const fail = (error) => {\n if (logger) {\n logger.error(`[${token}]`, error);\n }\n let msg = error;\n if (error instanceof Error) {\n msg = error.message;\n }\n if (typeof errorCallback === \"function\") {\n errorCallback(msg);\n return;\n }\n return PromiseWrapper.delay(0)\n .then(() => {\n throw error;\n });\n };\n return PromiseWrapper.delay(0)\n .then(action)\n .then((result) => {\n if (logger) {\n logger.info(`[${token}] successful`);\n }\n if (typeof successCallback === \"function\") {\n successCallback(result);\n }\n return result;\n })\n .catch((error) => {\n return fail(error);\n });\n}\n//# sourceMappingURL=promise.js.map",null,null,null,null,null,null,null,null,null],"names":["MetricTypes","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","send","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","sendFireAndForget","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","err","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","logger","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","warn","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","errorMsg","rejectConnectionRequest","extMode","typeToValidate","rejection","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","loggedIn","handleSuccessMessage","handleErrorMessage","sm","requestsMap","destination","wasReconnect","handleJoined","requestId","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","trace","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","handleDisconnected","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","isSubset","superObj","subObj","every","ele","GW3Bridge$1","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","_","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","to","cacheSoFar","ctxName","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","prev","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerStreaming$1","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","accepts","displayName","returns","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","traceMessage","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","v","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","at","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","INTEROP_METHOD_RESPONSE_TIMEOUT_MS","INTEROP_METHOD_WAIT_TIMEOUT_MS","getGDMajorVersion","glueDesktop","parsed","major","callbackifyPromise","fail","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","getDisplayCenterOfScreen","currentDisplay","primaryDisplay","physicalWidth","scaleFactor","physicalHeight","physicalDisplayLeft","workArea","physicalDisplayTop","physicalDisplayWidth","physicalDisplayHeight","physicalHOffset","max","physicalVOffset","centeredPhysicalLeft","centeredPhysicalTop","generateId","isPromise","isAsyncFunction","isNullOrUndefined","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","min","ApplicationImpl","_appManager","_configuration","onInstanceStarted","onInstanceStopped","onAppRemoved","app","onAppChanged","onAppAvailable","_props","IsReady","onAppUnavailable","Title","Version","autoStart","AutoStart","isShell","IsShell","caption","Caption","hidden","IsHidden","container","ApplicationName","ActivityWindowType","windowSettings","Arguments","allowMultiple","AllowMultiple","available","icon","Icon","iconURL","IconUrl","sortOrder","SortOrder","userProperties","UserProperties","keywords","Keywords","isActivity","Type","Mode","styleAttributes","WindowStyleAttributes","searchFor","modeIndex","startModeIndex","stopModeIndex","style","substr","getConfiguration","AgmNames.GetApplicationsMethodName","v2","apps","applications","updateFromProps","Name","start","waitForAGMInstance","awaitInterop","_c","waitForAGMReady","startTimeout","waitForApplicationInstance","errMsg","waitFunc","onAgmReady","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onStopped","getWindow","timeoutInSeconds","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","r","InMemoryStoreCommandMethodName","InMemoryStore","import","createAppDef","details","AppManagerFactory","START_ONLY","SKIP_ICONS","appManager","entitlements","skipIcon","snapshot","skipIcons","initiated","resolveFunc","rejectFunc","resultPromise","AgmNames.OnEventMethodName","streamData","events","onApplicationAddedEventArgs","isSnapshot","onApplicationStartedEventArgs","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","myInstance","myApplication","inMemory","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","shouldMarkReadyToShow","markReadyToShow","setUrlChangedState","targetWindowState","urlChanged","setCompositionChangedState","compositionChanged","waitFor","unReady","unRemoved","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getNeighboursByDirection","direction","winId","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","validateCenterArguments","cbOrOptions","snap","autoAlign","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","windowAvailableOnURLChanged","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","invocationOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","noOperationHandler","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appManagerGetter","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","createWindowFromSnapshot","windowInfoCreatedEvent","createWindowFromStream","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","createWindowCore","isRemote","isFrameless","isHidden","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","isHeaderVisible","isHibernated","showHeader","hideHeader","reload","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","SingleChannelID","isJoinedToAnyChannel","isOnChannel","equals","MultiChannelId","ChannelDelimiter","newChannel","ch","myInstanceId","T42_ANNOUNCE_METHOD_NAME","interopLib","loggerAPI","joinNoSelectorSwitch","leaveNoSelectorSwitch","isSupported","channelsToJoin","channelsToLeave","swId","handleRestrictionsChanged","sendLeaveChannel","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelInitInfo","operationMode","validateMode","initialChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","clearContextData","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","unsubscribeFromChannel","usub","SharedContextSubscriber","ChannelsImpl","getWindowsAPI","getAppManagerAPI","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","initial","subscribeForChannelRestrictionsChange","getID","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","channelsToPublish","restrictedChannels","cn","restrictedChannelsErr","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveCore","myChannels","onChannelsChanged","changed","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","getChannelsInfo","windowsAPI","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","clearChannelData","changeSelector","newId","verifyChannelExists","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","channelId","isRestrictions","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","getLibConfig","defaultMode","trueMode","getModeAsString","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","toAPI","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","NotificationFilterMethodName","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","notification","createNotification","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_e","_f","stackBy","placement","_g","_h","closeNotificationOnClick","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","importNotifications","notificationsToImport","notificationOptions","notificationSettings","imported","bunchOfPromises","handleNotificationEvent","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","displayPath","validStates","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","connectBrowserAppProps","fdc3v2AppProps","ok","map2","f","ar","mapError","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","succeed","number","boolean","constant","decoders","decoder","err$$1","decodeValue_1","tuple","nth","union","ad","bd","oneOf","intersection","ds","anyJson","unknownJson","dict","optional","errors","errorsList","withDefault","defaultValue","valueAt","jsonAtPath","fixedValue","lazy","mkDecoder","nonEmptyStringDecoder","nonNegativeNumberDecoder","intentDefinitionDecoder","customConfig","v2TypeDecoder","v2DetailsDecoder","v2IconDecoder","src","v2ScreenshotDecoder","v2ListensForIntentDecoder","resultType","v2IntentsDecoder","listensFor","raises","v2UserChannelDecoder","broadcasts","v2AppChannelDecoder","v2InteropDecoder","intents","userChannels","appChannels","glue42ApplicationDetailsDecoder","glue42HostManifestsBrowserDecoder","customProperties","v1DefinitionDecoder","appId","manifest","manifestType","contactEmail","supportEmail","publisher","images","icons","v2LocalizedDefinitionDecoder","screenshots","moreInfo","hostManifests","v2DefinitionDecoder","localizedVersions","allDefinitionsDecoder","parseDecoderErrorToStringMessage","FDC3Service","fdc3ToDesktopDefinitionType","web","native","citrix","onlineNative","toApi","isFdc3Definition","parseToBrowserBaseAppData","parseToDesktopAppConfig","decodeRes","isFdc3","getUserPropertiesFromDefinition","createOptions","getUrl","baseApplicationData","getIntentsFromV2AppDefinition","getIconFromDefinition","definitionVersion","ioConnectDefinition","ioConnect","ioDefinitionDecodeRes","mergeBaseAppDataWithGlueManifest","fdc3v1Definition","fdc3v2Definition","desktopDefinition","mergeDesktopConfigWithGlueManifest","fromEntries","parsedManifest","fdc3Intents","fdc3Intent","intentName","intentData","iconDef","baseAppData","hostManifestDefinition","baseApplicationDefinition","appConfig","decoders$1","common","INTENTS_ERRORS","ioc","_fdc3","_decoders","_errors","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","ERRORS","PromiseWrap","promiseActive","validateResolverResponse","responseObj","intent","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","contextTypes","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","handlerFilter","openResolver","applicationNames","ctx","validateHandlerFilter","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","INTENT_NOT_FOUND","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","instanceIdPromise","invokeStartApp","reasonMsg","TARGET_INSTANCE_UNAVAILABLE","invokeOptions","INTENT_HANDLER_REJECTION","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","T42GetPrefsMethodName","verifyDataObject","T42SetPrefsMethodName","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","T42UpdatePrefsMethodName","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","delayForever","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","property","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","raisedInterception","interceptor","validateTypeString","isValidType","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","acsStream","LayoutsFactory","channelsReadyPromise","sharedContexts","hotkeysAPI","displaysLogger","intentsAPI","proxyIntentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"sQAAA,IAAIA,EACQ,EADRA,EAEQ,EAFRA,EAGW,EAHXA,EAIQ,EAGZ,SAASC,EAAqBC,GAC1B,OAAIA,EAAOC,OAASH,EACT,YAEFE,EAAOC,OAASH,EACd,SAEFE,EAAOC,OAASH,EACd,SAEFE,EAAOC,OAASH,EACd,SAEJ,SACX,CACA,SAASI,EAAeC,GACpB,OAAIA,EAAMC,cAAgBC,KACf,YAEe,iBAAVF,EACL,SAEe,iBAAVA,EACL,SAEe,iBAAVA,EACL,SAGA,QAEf,CACA,SAASG,EAAgBN,GACrB,MAAMO,EAAoB,CAAE,EACtBN,EAAOF,EAAqBC,GAClC,GAAa,WAATC,EAAmB,CACnB,MAAMO,EAASC,OAAOC,KAAKV,EAAOG,OAAOQ,QAAO,CAACC,EAAMC,KACnD,MAAMC,EAAYZ,EAAeF,EAAOG,MAAMU,IAC9C,GAAkB,WAAdC,EAAwB,CACxB,MAAMC,EAAYC,EAAsBhB,EAAOG,MAAMU,IACrDD,EAAKC,GAAO,CACRZ,KAAM,SACNgB,YAAa,GACbC,QAAS,CAAE,EACXH,YAEpB,MAEgBH,EAAKC,GAAO,CACRZ,KAAMa,EACNG,YAAa,GACbC,QAAS,CAAE,GAGnB,OAAON,CAAI,GACZ,IACHL,EAAkBQ,UAAYP,CACtC,CAKI,OAJAD,EAAkBY,KAAOC,EAAoBpB,EAAOqB,KAAKC,KAAK,KAAO,IAAMtB,EAAOmB,MAClFZ,EAAkBN,KAAOA,EACzBM,EAAkBU,YAAcjB,EAAOiB,YACvCV,EAAkBW,QAAU,CAAE,EACvBX,CACX,CACA,SAASS,EAAsBR,GAC3B,OAAOC,OAAOC,KAAKF,GAAQG,QAAO,CAACC,EAAMC,KACrC,MAAMZ,EAAOC,EAAeM,EAAOK,IAgBnC,OAdID,EAAKC,GADI,WAATZ,EACY,CACRA,KAAM,SACNgB,YAAa,GACbC,QAAS,CAAE,EACXH,UAAWC,EAAsBR,EAAOK,KAIhC,CACRZ,OACAgB,YAAa,GACbC,QAAS,CAAE,GAGZN,CAAI,GACZ,GACP,CACA,SAASQ,EAAoBD,GACzB,YAAoB,IAATA,GAAwBA,EAAKI,OAAS,GAAiB,MAAZJ,EAAK,GAChD,IAAMA,EAGNA,CAEf,CACA,SAASK,EAAqBxB,GAE1B,MAAa,cADAD,EAAqBC,GAEvBK,KAAKoB,MAGLC,EAAuB1B,EAAOG,MAE7C,CACA,SAASuB,EAAuBlB,GAC5B,MAAsB,iBAAXA,EACAA,EAEJC,OAAOC,KAAKF,GAAQG,QAAO,CAACC,EAAMC,KACrC,MAAMV,EAAQK,EAAOK,GAarB,MAZqB,iBAAVV,GAAsBA,EAAMC,cAAgBC,KACnDO,EAAKC,GAAOa,EAAuBvB,GAE9BA,EAAMC,cAAgBC,KAC3BO,EAAKC,GAAO,IAAIR,KAAKF,GAAOwB,UAEvBxB,EAAMC,cAAgBwB,QAC3BhB,EAAKC,GAAOV,EAAM0B,WAGlBjB,EAAKC,GAAOV,EAETS,CAAI,GACZ,GACP,CACA,SAASkB,EAAQC,GACb,OAAOA,EAAIpB,QAAO,CAACqB,EAAMC,IACdD,EAAKE,OAAOC,MAAMC,QAAQH,GAAaH,EAAQG,GAAaA,IACpE,GACP,CA8BA,SAASI,EAA6BC,GAClC,MACMC,EAAST,EADSQ,EAAOE,KAAKC,qBAE9BC,EAA+BH,EA/B1BI,MAAK,CAACC,EAAGC,IACXD,EAAEE,MAGFD,EAAEC,MAGAD,EAAEC,MAAQF,EAAEE,OAFN,EAHF,IAMZ,GAwBH,MAAMC,EAtBV,SAA8BhB,GAC1B,IAAIiB,EAAM,GAUV,OATAjB,EAAIkB,SAAQ,CAACC,EAAGC,EAAKP,KACjB,MAAMvB,EAAO6B,EAAE7B,KAAKC,KAAK,KACrB6B,IAAQP,EAAErB,OAAS,EACnByB,GAAO3B,EAAO,IAAM6B,EAAE/B,KAAO,KAAO+B,EAAEjC,YAGtC+B,GAAO3B,EAAO,IAAM6B,EAAE/B,KAAO,KAAO+B,EAAEjC,YAAc,GAChE,IAEQ+B,EAAIzB,OAAS,IACNyB,EAAII,MAAM,EAAG,KAAO,MAGpBJ,CAEf,CAK0BK,CAAqBd,GAC3C,MAAO,CACHtB,YAAa8B,EACb5C,MAAOuC,EAAaI,MAE5B,CAgLA,IAAIQ,EACU,CAACC,EAAYC,EAAQC,KAC3B,GAAmB,OAAfF,GAA6C,iBAAfA,EAC9B,MAAM,IAAIG,MAAM,sBAEpB,GAAe,OAAXF,GAAqC,iBAAXA,EAC1B,MAAM,IAAIE,MAAM,kBAEpB,GAAkB,OAAdD,GAA2C,iBAAdA,EAC7B,MAAM,IAAIC,MAAM,oBAC5B,EAIA,MAAMC,EACFJ,WACAjB,OACAmB,UACAtD,MACAF,KACAoB,KAAO,GACPF,KACAF,YACA,QAAI2C,GACA,OAAOC,KAAKvB,QAAQsB,IAC5B,CACI,MAAIE,GAAO,MAAO,GAAGD,KAAKvB,OAAOjB,QAAQF,MAAO,CAChD,WAAAf,CAAYmD,EAAYjB,EAAQmB,EAAWtD,EAAOF,GAC9C4D,KAAKN,WAAaA,EAClBM,KAAKvB,OAASA,EACduB,KAAKJ,UAAYA,EACjBI,KAAK1D,MAAQA,EACb0D,KAAK5D,KAAOA,EACZqD,EAAiBC,EAAYjB,EAAQmB,GACrCI,KAAKxC,KAAOiB,EAAOjB,KAAK+B,MAAM,GAC9BS,KAAKxC,KAAK0C,KAAKzB,EAAOnB,MACtB0C,KAAK1C,KAAOoC,EAAWpC,KACvB0C,KAAK5C,YAAcsC,EAAWtC,YAC9BwC,EAAUO,aAAaH,KAC/B,CACI,MAAAI,CAAOC,GAEH,OADAL,KAAK1D,MAAQ+D,EACNL,KAAKJ,UAAUU,aAAaN,KAC3C,EAGA,MAAMO,UAAqBT,EACvB,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOL,EACpD,CACI,WAAAwE,CAAYC,GACRV,KAAKI,OAAOJ,KAAK1D,MAAQoE,EACjC,CACI,SAAAC,GACIX,KAAKS,YAAY,EACzB,CACI,SAAAG,GACIZ,KAAKS,eACb,CACI,WAAAI,CAAYH,GACRV,KAAKS,eAAYC,EACzB,EAGA,MAAMI,UAAqBhB,EACvB,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOL,EACpD,CACI,MAAAmE,CAAOC,GAEH,OADAL,KAAKe,YAAYV,GACVL,KAAKJ,UAAUU,aAAaN,KAC3C,CACI,WAAAe,CAAYpE,GACR,OAAOC,OAAOC,KAAKmD,KAAK1D,OAAO8C,SAAS4B,SACX,IAAdrE,EAAOqE,KACdhB,KAAK1D,MAAM0E,GAAKrE,EAAOqE,GACvC,GAEA,EAGA,MAAMC,UAAqBnB,EACvB,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOL,EACpD,EAGA,MAAMiF,UAAwBpB,EAC1B,WAAAvD,CAAYmD,EAAYjB,EAAQmB,EAAWtD,GACvCkE,MAAMd,EAAYjB,EAAQmB,EAAWtD,EAAOL,EACpD,CACI,GAAA2B,GACIoC,KAAKI,OAAO,IAAI5D,KACxB,EAGA,SAASiC,EAAOnB,EAAMyC,EAAMoB,EAAUxB,EAAQvC,GAC1C,IAAK2C,EACD,MAAM,IAAIF,MAAM,0BAEpB,IAAKsB,EACD,MAAM,IAAItB,MAAM,yBAEpB,MAAMuB,EAAaD,EACbE,EAAQ/D,EACRgE,EAAelE,GAAe,GAC9BmE,EAAQxB,EACRyB,EAAU7B,EACV8B,EA2DN,SAASC,EAAWC,GAChB,IAAKA,IAAmBA,EAAehC,OACnC,MAAO,GAEX,MAAMnC,EAAOkE,EAAWC,EAAehC,QAEvC,OADAnC,EAAK0C,KAAKyB,EAAerE,MAClBE,CACf,CAlEkBkE,CAAW/B,GACzB,IAAIiC,EAAS,CAAE,EACf,MAAM3B,GAiEwB4B,EAjEG,MAiETrE,EAjEEiE,IAkELjE,EAAKE,OAAS,EAAKF,EAAKC,KAAKoE,GAAa,IAlEvBvE,GAiExC,IAAwBE,EAAMqE,EAhE9B,MAAMlD,EAAOoB,EAAKpB,KACZmD,EAAc,GACdC,EAAW,GA6BjB,SAASC,EAAmBC,EAAcC,EAAc5F,EAAO6D,GAC3D,IAAIgC,EAAY,CAAE7E,KAAM,IAEpB6E,EADwB,iBAAjBF,EACK,CAAE3E,KAAM2E,GAGRA,EAEhB,MAAMG,EAAWL,EAASM,QAAQC,GAAmBA,EAAehF,OAAS6E,EAAU7E,OACvF,GAAI8E,EAAS1E,OAAS,EAAG,CACrB,MAAM6E,EAAWH,EAAS,GAC1B,GAAIG,EAASnG,OAAS8F,EAClB,MAAM,IAAIrC,MAAM,kBAAkBsC,EAAU7E,gDAOhD,YALqB,IAAVhB,GACPiG,EACKnC,OAAO9D,GACPkG,OAAM,SAERD,CACnB,CACQ,MAAMpG,EAASgE,EAAagC,GAE5B,OADAJ,EAAS7B,KAAK/D,GACPA,CACf,CA8BI,MAAMsG,EAAK,CACP,QAAInF,GACA,OAAO+D,CACV,EACD,eAAIjE,GACA,OAAOkE,CACV,EACD,QAAIvB,GACA,OAAOwB,CACV,EACD,UAAI5B,GACA,OAAO6B,CACV,EACDhE,KAAMiE,EACNxB,KACAtB,OACA,cAAI+D,GACA,OAAOZ,CACV,EACD,WAAIa,GACA,OAAOZ,CACV,EACDa,UAxGJ,SAAmBC,EAAYC,GAC3B,IAAKD,GAAoC,IAAtBA,EAAWnF,OAC1B,MAAM,IAAImC,MAAM,oBAEpB,MAAMkD,EAAQjB,EAAYO,QAAQW,GAAMA,EAAE1F,OAASuF,IACnD,GAAIE,EAAMrF,OAAS,EACf,OAAOqF,EAAM,GAEjB,MAAME,EAAUxE,EAAOoE,EAAYtB,EAAOH,EAAYqB,EAAIK,GAE1D,OADAhB,EAAY5B,KAAK+C,GACVA,CACf,EA8FQC,SAAU,IACCtB,EAEXuB,SAhGJ,SAAkBlE,EAAOmE,GACrBxB,EAAS,CAAE3C,QAAO7B,YAAagG,GAC/BhC,EAAWiC,aAAaZ,EAAIb,EACpC,EA8FQ0B,aA7FJ,SAAsB5D,EAAYpD,GAC9B,OAAO0F,EAAmBtC,EAAYzD,EAAoBK,GAAQ6F,GAAc,IAAIlB,EAAakB,EAAWM,EAAIrB,EAAY9E,IACpI,EA4FQiH,gBArFJ,SAAyB7D,EAAYpD,GACjC,OAAO0F,EAAmBtC,EAAYzD,EAAuBK,GAAQ6F,GAAc,IAAIjB,EAAgBiB,EAAWM,EAAIrB,EAAY9E,IAC1I,EAoFQkH,aAzFJ,SAAsB9D,EAAYpD,GAC9B,OAAO0F,EAAmBtC,EAAYzD,EAAoBK,GAAQ6F,GAAc,IAAIrB,EAAaqB,EAAWM,EAAIrB,EAAY9E,IACpI,EAwFQmH,aA7FJ,SAAsB/D,EAAYpD,GAC9B,OAAO0F,EAAmBtC,EAAYzD,EAAoBK,GAAQ6F,GAAc,IAAI5B,EAAa4B,EAAWM,EAAIrB,EAAY9E,IACpI,EA4FQsC,kBAjDJ,WACI,MAAM8E,EAAW,GAejB,OAdI9G,OAAOC,KAAK+E,GAAQlE,OAAS,GAC7BgG,EAASxD,KAAK,CACV5C,KAAM+D,EACN7D,KAAMiE,EACNxC,MAAO2C,EAAO3C,MACd7B,YAAawE,EAAOxE,cAG5B0E,EAAY1C,SAASuE,IACjB,MAAMC,EAASD,EAAkB/E,oBAC7BgF,EAAOlG,OAAS,GAChBgG,EAASxD,QAAQ0D,EACjC,IAEeF,CACf,GAmCI,OADAtC,EAAWyC,aAAapB,GACjBA,CACX,CAEA,MAAMqB,EACFnF,KACA,WAAApC,CAAYwH,EAAS5C,GACjBA,EAAS6C,KAAKhE,MACdA,KAAKrB,KAAOF,EAAO,GAAIuB,KAAMmB,GAC7BnB,KAAKiE,iBAAiBjE,KAAKrB,KAAMoF,EAAQG,kBAAuCC,IAAxBJ,EAAQG,YACxE,CACI,gBAAAD,CAAiBG,EAAYC,GAIzB,GAHyB,oBAAdC,WACPF,EAAWd,aAAa,YAAagB,UAAUC,WAE/CF,GAAsC,oBAAbG,SAA0B,CACnD,MAAMN,EAAcE,EAAWxB,UAAU,eACnC6B,EAAwBC,IAC1B,IAAKA,EAAEC,OACH,OAEJ,MAAMA,EAASD,EAAEC,OACXC,EAAYD,EAASA,EAAOE,aAAa,UAAY,GAAK,GAChEX,EAAYV,aAAa,mBAAoB,CACzCpH,KAAM,QACN0I,UAAW,IAAItI,KACfmI,OAAQ,CACJC,YACA3E,GAAI0E,EAAO1E,GACX7D,KAAM,IAAMuI,EAAOI,QAAQC,cAAgB,IAC3CC,KAAMN,EAAOM,MAAQ,KAE3B,EAENf,EAAYV,aAAa,OAAQ,CAC7B0B,MAAOV,SAASU,MAChBC,KAAMC,OAAOC,SAASJ,OAEtBT,SAASc,iBACTd,SAASc,iBAAiB,QAASb,GAGnCD,SAASe,YAAY,UAAWd,EAEhD,CACQL,EAAWd,aAAa,aAAa,IAAK9G,MAAQwB,YAClD,MAAMwH,EAAYpB,EAAWd,aAAa,WAAY,IAChDmC,EAAgBrB,EAAWd,aAAa,UAAW,IACzD,GAAsB,oBAAX8B,OAAwB,CAC/B,QAA+B,IAApBA,OAAOC,SAA0B,CACxC,MAAMK,EAAWN,OAAOC,SAASJ,KACjCO,EAAUpF,OAAOsF,EACjC,MAC2C,IAApBN,OAAOO,UACdF,EAAcrF,OAAOgF,OAAOO,SAASC,QAErD,CACA,EAGA,MAAMC,EACF,IAAA7B,CAAKjE,GACT,CACI,YAAA8D,CAAapF,GACT,OAAOqH,QAAQC,SACvB,CACI,YAAA1C,CAAalH,EAAQ8C,GACjB,OAAO6G,QAAQC,SACvB,CACI,YAAA5F,CAAahE,GACT,OAAO2J,QAAQC,SACvB,CACI,YAAAzF,CAAanE,GACT,OAAO2J,QAAQC,SACvB,EAGA,MAAMC,EACFC,IACAC,UAAY,EACZC,sBAAwB,IACxBC,gBAAkB,IAClB3H,OACA,WAAAlC,CAAY0J,EAAKE,EAAuBC,GACpCpG,KAAKiG,IAAMA,EACXjG,KAAKmG,sBAAwBA,GAAyBnG,KAAKmG,sBAC3DnG,KAAKoG,gBAAkBA,GAAmBpG,KAAKoG,gBAC/CpG,KAAKqG,qBACLrG,KAAKvB,OAASuB,KAAKiG,IAAIrD,UAAU,cAAe,oDACxD,CACI,kBAAAyD,GACIC,YAAW,KACPtG,KAAKuG,UACLC,aAAY,KACRxG,KAAKuG,SAAS,GACfvG,KAAKoG,gBAAgB,GACzBpG,KAAKmG,sBAChB,CACI,OAAAI,GACI,IACIvG,KAAKyG,gBACLzG,KAAK0G,gBACjB,CACQ,MACR,CACA,CACI,aAAAD,GACI,MAAME,EAASvB,OAAOwB,YAAYD,OAClC3G,KAAKvB,OAAO6E,aAAa,SAAUuD,KAAKC,UAAU,CAC9CC,gBAAiBJ,EAAOI,gBACxBC,eAAgBL,EAAOK,iBAEnC,CACI,cAAAN,GACI,MAAMO,EAAa7B,OAAOwB,YAAYM,aACtC,GAAID,EAAWvJ,QAAUsC,KAAKkG,UAC1B,OAEJlG,KAAKkG,UAAYe,EAAWvJ,OAC5B,MAAMyJ,EAAkBF,EAAWG,KAAKC,GAAMA,EAAEC,WAChDtH,KAAKvB,OAAO6E,aAAa,UAAWuD,KAAKC,UAAUK,GAC3D,EAGA,IAAIxE,EAAWoB,IACX,IAAI5C,EAKAA,EAJC4C,EAAQwD,YAA4C,iBAAvBxD,EAAQwD,WAjhB9C,SAAcA,EAAYC,GACtB,IAAKD,GAAoC,iBAAfA,EACtB,MAAM,IAAI1H,MAAM,oCAEpB,IAAI4H,EACAC,EACJ,MA0CMC,EAAc5H,IAChB6H,EAAa7H,EAAKpB,KAAK,EAErBiJ,EAAgBnJ,IAClBoF,EAAapF,GACbA,EAAOkE,QAAQvD,SAASC,IACpBc,EAAad,EAAE,IAEnBZ,EAAOiE,WAAWtD,SAASyI,IACvBD,EAAaC,EAAG,GAClB,EAEAhE,EAAeiE,MAAOrJ,IACxB,QAAsB0F,IAAlB1F,EAAOkB,OACP,aAEE8H,EACN,MAgBMM,EAAmB,CACrB3L,KAAM,SACNuG,QAAS,CAlBE,CACXrF,KAAMC,EAAoBkB,EAAOjB,KAAKC,KAAK,KAAO,IAAMgB,EAAOnB,KAAO,UACtElB,KAAM,SACNc,UAAW,CACP8K,YAAa,CACT5L,KAAM,SACNgB,YAAa,IAEjB6K,MAAO,CACH7L,KAAM,SACNgB,YAAa,KAGrBA,YAAa,eACbC,QAAS,CAAE,KAMfqK,EAAQQ,KAAKH,EAAiB,EA+B5B5H,EAAe2H,MAAO3L,IACxB,MAAMgM,EAAcC,EAAYjM,SAC1BsL,EACN,MACMM,EAAmB,CACrB3L,KAAM,SACNuG,QAAS,CAHHlG,EAAgB0L,KAK1BT,EAAQQ,KAAKH,QACoB,IAAtBI,EAAY7L,OACnB+L,EAAiBF,EAC7B,EAOUE,EAAoBlM,IACtB,GAAImM,IAAa,CACb,MAAMhM,EAAQqB,EAAqBxB,GAC7BoM,EAAoB,CACtBnM,KAAM,UACNO,OAAQ,CAAC,CACDW,KAAMC,EAAoBpB,EAAOqB,KAAKC,KAAK,KAAO,IAAMtB,EAAOmB,MAC/DhB,QACAwI,UAAWtI,KAAKoB,SAG5B,OAAO8J,EAAQc,kBAAkBD,EAC7C,CACQ,OAAOzC,QAAQC,SAAS,EAEtBqC,EAAejM,IACjB,MAAMgM,EAAc,IAAKhM,GAIzB,MAH4B,iBAAjBA,EAAOG,OAAuC,OAAjBH,EAAOG,QAC3C6L,EAAY7L,MAAQ,IAAKH,EAAOG,QAE7B6L,CAAW,EAEhBG,EAAY,KACd,IAEI,OADad,EAAOiB,iBAAe,MAAW,KAE1D,CACQ,MACI,OAAO,CACnB,GAEI,MAAO,CACHzE,KAhKUjE,IACV,IAAI2I,EACJjB,EAAc,IAAI3B,SAASC,IACvB2C,EAAsB3C,CAAO,IAEjC2B,EAAUH,EAAWoB,OAAO,WAC5BjB,EAAQkB,UAAUC,KACTA,GAAaH,IACdA,IACAA,OAAsBvE,GAE1B,MAgBM2E,EAAuB,CACzB1M,KAAM,SACNuG,QAAS,CAlBW,CACpBrF,KAAM,SACNlB,KAAM,SACNc,UAAW,CACP8K,YAAa,CACT5L,KAAM,SACNgB,YAAa,IAEjB6K,MAAO,CACH7L,KAAM,SACNgB,YAAa,KAGrBA,YAAa,eACbC,QAAS,CAAE,KAMfqK,EAAQQ,KAAKY,GACTD,GACAlB,EAAW5H,EAC3B,IAEQ2H,EAAQjK,KAAK,CACTgB,OAAQ+I,EAAO/I,OACfsK,QAASvB,EAAOuB,QAChBC,SAAUxB,EAAOwB,UACnB,EAyHFnF,eACAR,aAjFiByE,MAAOrJ,EAAQQ,WAC1BwI,EACN,MAAMwB,EAAuB,CACzB7M,KAAM,UACNO,OAAQ,CAAC,CACDW,KAAMC,EAAoBkB,EAAOjB,KAAKC,KAAK,KAAO,IAAMgB,EAAOnB,KAAO,UACtEhB,MAAO,CACH0L,YAAa/I,EAAM7B,YACnB6K,MAAOhJ,EAAMA,OAEjB6F,UAAWtI,KAAKoB,SAG5B8J,EAAQQ,KAAKe,GACb,MAAMC,EAAW1K,EAA6BC,GACxC0K,EAAa,CACf/M,KAAM,UACNgN,QAAS7B,EAAW8B,OACpB1M,OAAQ,CAAC,CACDW,KAAM,SACNhB,MAAO,CACH0L,YAAakB,EAAS9L,YACtB6K,MAAOiB,EAAS5M,OAEpBwI,UAAWtI,KAAKoB,SAG5B8J,EAAQQ,KAAKiB,EAAW,EAuDxBhJ,eACAG,aAzCiBwH,MAAO3L,IACxB,MAAMgM,EAAcC,EAAYjM,SAC1BsL,EACNY,EAAiBF,EAAY,EAwCrC,CAyWmBmB,CAAIvF,EAAQwD,WAAYxD,GAHxB,IAAI8B,EAMnB,IAAIzB,EADS,IAAIN,EAAWC,EAAS5C,GACfxC,KACjBoF,EAAQwF,uBACTnF,EAAaA,EAAWxB,UAAU,QAEtC,MAAMqD,EAgBV,SAAuBxH,GACnB,MAAM+K,EAAkB/K,EAAOmE,UAAU,aACnC6G,EAAM,CACRnM,KAAM,YAEV,IAAIoM,EACJ,MAAMC,EAAoB,CAACrM,EAAMsM,EAAQC,KACrC,QAAoB,IAATvM,GAAiC,KAATA,EAC/B,MAAM,IAAIuC,MAAM,qBAEf,QAAsB,IAAX+J,GAAqC,KAAXA,EACtC,MAAM,IAAI/J,MAAM,uBAEf,QAAuB,IAAZgK,GAAuC,KAAZA,EACvC,MAAM,IAAIhK,MAAM,wBAEf6J,EAIDA,EAActJ,OAAO,CACjB9C,OACAsM,SACAC,YANJH,EAAgBF,EAAgBhG,aAAaiG,EAAK,CAAEnM,OAAMsM,SAAQC,WAQ9E,EAGI,OADApL,EAAOiL,cAAgBC,EAChBlL,CACX,CA7CgBqL,CAAc1F,GAE1B,OAEJ,SAAkB6B,EAAKuB,GACnB,GAAsB,oBAAXpC,OACP,OAEJ,MAAM2E,EAAa3E,QAAQO,UAAUhD,SAASqH,uBAC1CD,IACAvC,EAASuC,GAETvC,GAAQyC,SACR,IAAIjE,EAAYC,EAAKuB,EAAOrB,sBAAuBqB,EAAOpB,gBAElE,CAdI8D,CAASjE,EAAKlC,EAAQiG,wBACf/D,CAAG,EA6Cd,IAAIkE,EAAuC,oBAAfC,WAA6BA,WAA+B,oBAAXhF,OAAyBA,OAA2B,oBAAXiF,OAAyBA,OAAyB,oBAATC,KAAuBA,KAAO,CAAE,EAE/L,SAASC,EAAyBC,GACjC,OAAOA,GAAKA,EAAEC,YAAc7N,OAAO8N,UAAUC,eAAeC,KAAKJ,EAAG,WAAaA,EAAW,QAAIA,CACjG,CAEA,SAASK,EAAe9G,GACpB,GAAIA,GAAWA,EAAQ+G,eACiB,mBAA1B/G,EAAQ+G,eACW,QAA1B/G,EAAQ+G,eACkB,WAA1B/G,EAAQ+G,eACkB,UAA1B/G,EAAQ+G,cACX,MAAM,IAAIjL,MAAM,mIAA2IkE,EAAQ+G,cAAgB,eAEvL,IAAIC,EAAoBhH,GAA4C,mBAA1BA,EAAQ+G,eAAgC/G,EAAQ+G,cACtFE,EAAY,CAAE,EAqElB,SAASC,EAAaC,EAAmBlO,GACrC,IAAImO,EAAWD,aAA6BrL,MAAQqL,EAAoB,IAAIrL,MAAMqL,GAClF,GAAIH,EACAA,EAAkBI,OADtB,CAIA,IAAIhM,EAAM,qDAAwDnC,EAAM,aAAgBmO,EAASC,MACjG,GAAIrH,EACA,OAAQA,EAAQ+G,eACZ,IAAK,MACD,OAAOO,QAAQC,MAAMnM,GACzB,IAAK,SACD,OACJ,IAAK,QACD,MAAM,IAAIU,MAAMV,GAG5BkM,QAAQC,MAAMnM,EAZtB,CAaA,CAWI,MAAO,CACHoM,IAlGJ,SAAavO,EAAKwO,EAAUC,GACxB,IAAIC,EAAkBV,EAAUhO,GA0BhC,OAzBK0O,IACDA,EAAkB,GAClBV,EAAUhO,GAAO0O,GAErBA,EAAgBxL,KAAKsL,GACjBC,GACAnF,YAAW,WACPmF,EAAmBrM,SAAQ,SAAUuM,GACjC,IAAIC,EACJ,GAA8B,QAAzBA,EAAKZ,EAAUhO,UAAyB,IAAP4O,OAAgB,EAASA,EAAGC,SAASL,GACvE,IACQlN,MAAMC,QAAQoN,GACdH,EAASM,WAAM3H,EAAWwH,GAG1BH,EAASM,WAAM3H,EAAW,CAACwH,GAE3D,CACwB,MAAOI,GACHd,EAAac,EAAK/O,EAC9C,CAEA,GACa,GAAE,GAEA,WACH,IAAIgP,EAAYhB,EAAUhO,GACrBgP,IASoB,KANzBA,EAAYA,EAAUlP,QAAO,SAAUmP,EAAKC,EAASC,GAIjD,OAHMD,IAAYV,GAAYS,EAAIvO,SAAWyO,GACzCF,EAAI/L,KAAKgM,GAEND,CACV,GAAE,KACWvO,cACHsN,EAAUhO,GAGjBgO,EAAUhO,GAAOgP,EAExB,CACT,EAsDQI,QArDJ,SAAiBpP,GAEb,IADA,IAAIqP,EAAe,GACVC,EAAK,EAAGA,EAAKC,UAAU7O,OAAQ4O,IACpCD,EAAaC,EAAK,GAAKC,UAAUD,GAErC,IAAIZ,EAAkBV,EAAUhO,GAChC,IAAK0O,GAA8C,IAA3BA,EAAgBhO,OACpC,MAAO,GAEX,IAAI8O,EAAU,GAWd,OAVAd,EAAgBtM,SAAQ,SAAUoM,GAC9B,IACI,IAAI5H,EAAS4H,EAASM,WAAM3H,EAAWkI,GACvCG,EAAQtM,KAAK0D,EAC7B,CACY,MAAOmI,GACHS,EAAQtM,UAAKiE,GACb8G,EAAac,EAAK/O,EAClC,CACA,IACewP,CACf,EAiCQC,MAbJ,WACIzB,EAAY,CAAE,CACtB,EAYQ0B,SAXJ,SAAkB1P,GACQgO,EAAUhO,WAIzBgO,EAAUhO,EACzB,EAOA,CACc2P,EAACC,QAAU/B,EACzB,IAGIgC,EAAuCtC,EAHjCM,GAKV,MAAMiC,EACFC,GACAC,SAAWH,IACXI,OACA,WAAA1Q,CAAY2Q,EAAUC,GAClBnN,KAAK+M,GAAKG,EAASE,OACnBpN,KAAK+M,GAAGM,SAAQ,CAACC,EAASC,KACtBvN,KAAKwN,eAAeD,EAAQ,IAC7BE,MAAMR,IACLjN,KAAKiN,OAASA,CAAM,GAEhC,CACI,0BAAIS,GACA,OAAO,CACf,CACI,UAAAC,CAAWxO,GACP,OAAIa,KAAKiN,QACLjN,KAAKiN,OAAO/E,KAAK/I,GACV2G,QAAQC,aAAQ5B,IAGhB2B,QAAQ8H,OAAO,gBAElC,CACI,IAAA1F,CAAK2F,GACD,OAAO/H,QAAQ8H,OAAO,gBAC9B,CACI,SAAAE,CAAUtC,GACN,OAAOxL,KAAKgN,SAASzB,IAAI,YAAaC,EAC9C,CACI,kBAAAuC,CAAmBvC,GAEf,OADAA,GAAS,GACF,MACf,CACI,KAAAwC,GACI,OAAOlI,QAAQC,SACvB,CACI,IAAAkI,GACI,OAAOnI,QAAQC,SACvB,CACI,IAAAzI,GACI,MAAO,WACf,CACI,SAAAuL,GACI,OAAO/C,QAAQC,SACvB,CACI,cAAAyH,CAAerO,GACXa,KAAKgN,SAASZ,QAAQ,YAAajN,EAC3C,EAGA,MAAM+O,EACFf,OACAgB,OACAnB,SAAWH,IACX,WAAAtQ,CAAY6R,EAAYjB,GACpBnN,KAAKmN,OAASA,EACdnN,KAAKmO,OAAS,IAAIE,aAAaD,GAC/BpO,KAAKmO,OAAOG,KAAKC,UAAa7J,IAC1B1E,KAAKwN,eAAe9I,EAAE8J,KAAK,CAEvC,CACI,0BAAId,GACA,OAAO,CACf,CACI,UAAAC,CAAWxO,GAEP,OADAa,KAAKmO,OAAOG,KAAKG,YAAYtP,GACtB2G,QAAQC,SACvB,CACI,IAAAmC,CAAK2F,GACD,OAAO/H,QAAQ8H,OAAO,gBAC9B,CACI,SAAAE,CAAUtC,GACN,OAAOxL,KAAKgN,SAASzB,IAAI,YAAaC,EAC9C,CACI,kBAAAuC,CAAmBvC,GAEf,OADAA,GAAS,GACF,MACf,CACI,KAAAwC,GACI,OAAOlI,QAAQC,SACvB,CACI,IAAAkI,GACI,OAAOnI,QAAQC,SACvB,CACI,IAAAzI,GACI,MAAO,eACf,CACI,SAAAuL,GACI,OAAO/C,QAAQC,SACvB,CACI,cAAAyH,CAAerO,GACXa,KAAKgN,SAASZ,QAAQ,YAAajN,EAC3C,EAGA,IAAAuP,EAAA,MAAMC,EACF,aAAOC,GACH,QAA6B,IAAlBD,EAAME,QACb,OAAOF,EAAME,QAEjB,GAAsB,oBAAXzJ,OAEP,OADAuJ,EAAME,SAAU,GACT,EAEX,IACIF,EAAME,QAA6D,qBAAnDjS,OAAO8N,UAAU1M,SAAS4M,KAAKP,OAAOyE,QAClE,CACQ,MAAOpK,GACHiK,EAAME,SAAU,CAC5B,CACQ,OAAOF,EAAME,OACrB,CACIE,gBAGJC,EAAA,MACI,YAAOC,CAAMC,GACT,OAAO,IAAIpJ,SAASC,GAAYO,WAAWP,EAASmJ,IAC5D,CACInJ,QACA6H,OACAuB,QACAC,UAAW,EACXC,UAAW,EACX,SAAIC,GACA,OAAOtP,KAAKoP,UAAYpP,KAAKqP,QACrC,CACI,WAAA9S,GACIyD,KAAKmP,QAAU,IAAIrJ,SAAQ,CAACC,EAAS6H,KACjC5N,KAAK+F,QAAWwJ,IACZvP,KAAKqP,UAAW,EAChBtJ,EAAQwJ,EAAE,EAEdvP,KAAK4N,OAAU7B,IACX/L,KAAKoP,UAAW,EAChBxB,EAAO7B,EAAI,CACd,GAEb,GAGA,MAAMyD,EAAS,CAAE,EAIjB,SAASC,EAAOC,GACZ,MAAMnN,EAAWiN,EAAOE,GACxB,GAAInN,EACA,OAAOA,EAEX,MAAMoN,EAAQ,GACd,SAAS/R,IACL,OAAO,IAAIpB,MAAOsB,SAC1B,CACI,MAAM8R,EAAYhS,IAElB,IAAIiS,EACAC,EAOJ,SAASC,EAAKzS,EAAM4R,GAChB,MAAMc,EAAcd,GAAQtR,IAC5B,IAAIqS,EAAO,EACPN,EAAMjS,OAAS,IACfuS,EAAOD,EAAcL,EAAMA,EAAMjS,OAAS,GAAGwR,MAEjDS,EAAMzP,KAAK,CAAE5C,OAAM4R,KAAMc,EAAaC,QAC9C,CAhBIF,EAAK,QAASH,GAiBd,MAAMM,EAAW,CACb,aAAIN,GACA,OAAOA,CACV,EACD,WAAIC,GACA,OAAOA,CACV,EACD,UAAIC,GACA,OAAOA,CACV,EACDK,KAxBJ,WAII,OAHAN,EAAUjS,IACVmS,EAAK,MAAOF,GACZC,EAASD,EAAUD,EACZE,CACf,EAoBQC,OACAJ,SAGJ,OADAH,EAAOE,GAAaQ,EACbA,CACX,CAEA,MAAME,EAAuBzB,EAAMC,SAAWyB,QAAQ,MAAQjL,OAAOkL,UACrE,MAAMC,EACFC,GACArD,OACAD,SACAuD,aAAehB,EAAM,cACrBiB,UAAW,EACXC,UAAY9D,IACZ+D,WAAa,GACb,WAAArU,CAAY2Q,EAAUC,GAGlB,GAFAnN,KAAKkN,SAAWA,EAChBlN,KAAKmN,OAASA,GACTnN,KAAKkN,SAASsD,GACf,MAAM,IAAI3Q,MAAM,gBAE5B,CACI,SAAAiO,CAAUtC,GACN,OAAOxL,KAAK2Q,UAAUpF,IAAI,YAAaC,EAC/C,CACI,IAAAtD,CAAK/I,EAAK4E,GACN,OAAO,IAAI+B,SAAQ,CAACC,EAAS6H,KACzB5N,KAAK6Q,yBAAwB,KACzB,IACI7Q,KAAKwQ,IAAItI,KAAK/I,GACd4G,GACpB,CACgB,MAAOrB,GACHkJ,EAAOlJ,EAC3B,IACekJ,EAAO,GAEtB,CACI,IAAAK,GAGI,OAFAjO,KAAKmN,OAAO2D,KAAK,iBACjB9Q,KAAK0Q,UAAW,EACT,IAAI5K,SAAQ,CAACC,EAAS6H,KACzB5N,KAAK6Q,wBAAwB9K,EAAS6H,EAAO,GAEzD,CACI,KAAAI,GAKI,OAJAhO,KAAK0Q,UAAW,EACZ1Q,KAAKwQ,IACLxQ,KAAKwQ,GAAGxC,QAELlI,QAAQC,SACvB,CACI,kBAAAgI,CAAmBvC,GACf,OAAOxL,KAAK2Q,UAAUpF,IAAI,qBAAsBC,EACxD,CACI,IAAAlO,GACI,OAAO0C,KAAKkN,SAASsD,EAC7B,CACI,SAAA3H,GACI7I,KAAKwQ,IAAIxC,QACT,MAAM+C,EAAK,IAAIC,EAIf,OAHAhR,KAAK6Q,yBAAwB,KACzBE,EAAGhL,SAAS,IAETgL,EAAG5B,OAClB,CACI,uBAAA0B,CAAwBrF,EAAUyF,GAC9BA,EAASA,GAAW,MAAS,GACxBjR,KAAK0Q,SAIkB,IAAxB1Q,KAAKwQ,IAAIU,YAIblR,KAAK4Q,WAAW1Q,KAAK,CAAEsL,WAAUyF,WAC7BjR,KAAK4Q,WAAWlT,OAAS,GAG7BsC,KAAKmR,cAPD3F,IAJAyF,EAAO,sBAAsBjR,KAAKkN,SAASsD,oCAYvD,CACI,gBAAMW,CAAWC,EAAeC,GAS5B,GARArR,KAAKmN,OAAO2D,KAAK,iBAAiB9Q,KAAKkN,SAASsD,sBAAsBY,mBAA+BC,QACrGrR,KAAKyQ,aAAaV,KAAK,uBACD5L,IAAlBiN,IACAA,EAAgBpR,KAAKkN,SAASoE,wBAEP,IAAhBD,IACPA,EAAcrR,KAAKkN,SAASqE,wBAEZpN,IAAhBkN,EAA2B,CAC3B,GAAoB,IAAhBA,EAEA,YADArR,KAAKwR,qBAAqB,sBAAsBxR,KAAKkN,SAASsD,oCAGlExQ,KAAKmN,OAAOsE,MAAM,cAAcJ,uBAAiCD,QAC7E,CACQ,UACUpR,KAAK0R,iBACX1R,KAAKyQ,aAAaV,KAAK,oBACvB/P,KAAKwR,sBACjB,CACQ,MACIlL,YAAW,KACP,MAAMqL,OAA0BxN,IAAhBkN,OAA4BlN,EAAYkN,EAAc,EACtErR,KAAKmR,WAAWC,EAAeO,EAAQ,GACxCP,EACf,CACA,CACI,cAAAM,GACI,MAAMX,EAAK,IAAIC,EAuCf,OAtCAhR,KAAKmN,OAAOsE,MAAM,oBAAoBzR,KAAKkN,SAASsD,SACpDxQ,KAAKwQ,GAAK,IAAIJ,EAAqBpQ,KAAKkN,SAASsD,IAAM,IACvDxQ,KAAKwQ,GAAGoB,QAAW7F,IACf,IAAI8F,EAAS,GACb,IACIA,EAAShL,KAAKC,UAAUiF,EACxC,CACY,MAAOT,GACH,MAAMwG,EAAO,IAAIC,QACXC,EAAW,CAAChV,EAAKV,KACnB,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,CAC7C,GAAIwV,EAAKG,IAAI3V,GACT,OAEJwV,EAAKvG,IAAIjP,EACjC,CACoB,OAAOA,CAAK,EAEhBuV,EAAShL,KAAKC,UAAUiF,EAAKiG,EAC7C,CACYhS,KAAKmN,OAAO2D,KAAK,sBAAsBe,KACvCd,EAAGnD,OAAO,SACV5N,KAAKkS,qBAAoB,EAAOL,EAAO,EAE3C7R,KAAKwQ,GAAG2B,QAAWpG,IACf/L,KAAKmN,OAAO2D,KAAK,qBAAqB/E,GAAKqG,gBAAgBrG,GAAK8F,UAChEd,EAAGnD,OAAO,UACV5N,KAAKkS,qBAAoB,EAAM,EAEnClS,KAAKwQ,GAAG6B,OAAS,KACbrS,KAAKyQ,aAAaV,KAAK,aACvB/P,KAAKmN,OAAO2D,KAAK,aAAa9Q,KAAKkN,SAASoF,UAAUC,eACtDxB,EAAGhL,UACH/F,KAAKkS,qBAAoB,EAAK,EAElClS,KAAKwQ,GAAGjC,UAAahB,IACjBvN,KAAK2Q,UAAUvE,QAAQ,YAAamB,EAAQiB,KAAK,EAE9CuC,EAAG5B,OAClB,CACI,oBAAAqC,CAAqBlG,GACjBtL,KAAK4Q,WAAWxR,SAASoT,IACjBlH,EACIkH,EAAUvB,QACVuB,EAAUvB,OAAO3F,GAIrBkH,EAAUhH,UAC1B,IAEQxL,KAAK4Q,WAAa,EAC1B,CACI,mBAAAsB,CAAoBO,EAAQZ,GACxB7R,KAAK2Q,UAAUvE,QAAQ,qBAAsBqG,EAAQZ,EAC7D,EAGA,MAAMa,EACFC,MACAC,WAAa,GACbC,SAAW,CAAE,EACbC,OACAC,KAAO,CAAE,EACTC,aAAe,CAAE,EACjBzL,WACA,WAAAhL,CAAYoW,GACR3S,KAAK2S,MAAQ,CAAE,EACf,IAAK,MAAMM,KAAQN,EACf3S,KAAK2S,MAAMM,EAAK3V,MAAQ2V,EACxBjT,KAAK4S,WAAW1S,KAAK+S,EAAK3V,KAEtC,CACI,IAAA0G,CAAKuD,GACDvH,KAAKuH,WAAaA,EAClB,IAAK,MAAMjK,KAAQ0C,KAAK4S,WACpB,IAAK,MAAMxW,KAAQ4D,KAAK2S,MAAMrV,GAAM4V,MAAO,CACvC,IAAIC,EAAWnT,KAAKgT,aAAa5W,GAMjC,GALK+W,IACDA,EAAW,GAEfA,GAAY,EACZnT,KAAKgT,aAAa5W,GAAQ+W,EACtBA,EAAW,EACX,SAEJ,MAAMC,EAAM7L,EAAW8L,GAAGjX,GAAO+C,GAAQa,KAAKsT,eAAelX,EAAM+C,KACnEa,KAAK+S,KAAK3W,GAAQgX,CAClC,CAEA,CACI,cAAAE,CAAelX,EAAM+C,GACjB,IAAIa,KAAK8S,QAAW3T,EAGpB,IAAK,MAAM7B,KAAQ0C,KAAK4S,WACpB,QAAI5S,KAAK2S,MAAMrV,GAAM4V,MAAMK,QAAQnX,GAAc,CAC7C,MAAMyW,EAAW7S,KAAK6S,SAASvV,IAAS,GACxC0C,KAAK6S,SAASvV,GAAQuV,EACtBA,EAAS3S,KAAKf,EAC9B,CAEA,CACI,KAAAqU,CAAMlW,EAAMkO,GACJA,IACCxL,KAAK6S,SAASvV,IAAS,IAAI8B,QAAQoM,UAEjCxL,KAAK6S,SAASvV,GACrB,IAAK,MAAMlB,KAAQ4D,KAAK2S,MAAMrV,GAAM4V,MAChClT,KAAKgT,aAAa5W,IAAS,EACvB4D,KAAKgT,aAAa5W,IAAS,IAC3B4D,KAAKuH,YAAYkM,IAAIzT,KAAK+S,KAAK3W,WACxB4D,KAAK+S,KAAK3W,UACV4D,KAAKgT,aAAa5W,WAG1B4D,KAAK2S,MAAMrV,GACb0C,KAAK2S,MAAMjV,SACZsC,KAAK8S,QAAS,EAE1B,EAGA,IAEIY,EAAS,CAACC,EAAO,MACnB,IAAI1T,EAAK,GACLoH,EAAIsM,EACR,KAAOtM,KACLpH,GALF,mEAKqC,GAAhB2T,KAAKC,SAAiB,GAE3C,OAAO5T,GAGT,MAAM6T,EAAc,CAACC,EAAUC,EAAqBC,IACzC,IAAInO,SAAQ,CAACC,EAAS6H,KACzB,MAAMsG,EAAU5N,YAAW,KAEvBsH,EADgBqG,GAAkB,wBAAwBD,IAC3C,GAChBA,GACqB,IAAIlO,QAAQiO,GAE/BtG,MAAM7J,IACPuQ,aAAaD,GACbnO,EAAQnC,EAAO,IAEdpB,OAAO8I,IACR6I,aAAaD,GACbtG,EAAOtC,EAAM,GACf,IAIV,MAAM8I,EACFlH,SACAC,OACAmF,SACA+B,qBACAC,iBACAC,eACAC,qBACAC,cAAe,EACfC,aAAc,EACdtF,UAAW,EACXuF,kBACAC,mBACAC,kBACAC,qBACAC,oBACAC,iBACA1G,KACA2G,WACAC,SAAW,GACXC,qBAAsB,EACtBC,sBAAuB,EACvBC,qBAAsB,EACtBC,eACAC,iBAAkB,EAClBC,aAAe,eACf7V,OACA8V,WACAC,kBAAoB,IACpBC,yBAA2B,IAC3BC,oBAAsB,IACtB5I,SAAWH,IACXgG,SAAW,CACPgD,mBAAoB,CAAEvY,KAAM,qBAAsBwY,OAAQ9V,KAAK+V,yBAAyBC,KAAKhW,OAC7FiW,mBAAoB,CAAE3Y,KAAM,qBAAsBwY,OAAQ9V,KAAKkW,yBAAyBF,KAAKhW,OAC7FmW,kBAAmB,CAAE7Y,KAAM,oBAAqBwY,OAAQ9V,KAAKoW,wBAAwBJ,KAAKhW,OAC1F0U,YAAa,CACTpX,KAAM,cAAewY,OAAQ,QAGjCO,WAAY,CAAE/Y,KAAM,aAAcwY,OAAQ9V,KAAKsW,iBAAiBN,KAAKhW,OACrEuW,aAAc,CAAEjZ,KAAM,eAAgBwY,OAAQ9V,KAAKwW,mBAAmBR,KAAKhW,OAC3EyW,cAAe,CAAEnZ,KAAM,gBAAiBwY,OAAQ9V,KAAK0W,oBAAoBV,KAAKhW,OAC9E2W,aAAc,CAAErZ,KAAM,eAAgBwY,OAAQ9V,KAAK4W,mBAAmBZ,KAAKhW,OAC3E6W,aAAc,CAAEvZ,KAAM,eAAgBwY,OAAQ9V,KAAK8W,mBAAmBd,KAAKhW,OAC3E+W,sBAAuB,CAAEzZ,KAAM,wBAAyBwY,OAAQ9V,KAAKgX,4BAA4BhB,KAAKhW,OACtGiX,gBAAiB,CAAE3Z,KAAM,kBAAmBwY,OAAQ9V,KAAKkX,sBAAsBlB,KAAKhW,OACpFmX,kBAAmB,CAAE7Z,KAAM,oBAAqBwY,OAAQ9V,KAAKoX,wBAAwBpB,KAAKhW,OAC1FqX,uBAAwB,CAAE/Z,KAAM,yBAA0BwY,OAAQ9V,KAAKsX,6BAA6BtB,KAAKhW,QAE7G,WAAAzD,CAAY2Q,EAAUC,EAAQmF,GAC1BtS,KAAKkN,SAAWA,EAChBlN,KAAKmN,OAASA,EACdnN,KAAKsS,SAAWA,EAChBtS,KAAKmV,sBAAwB/P,OAAOmS,UACpCvX,KAAKwX,uBACLxX,KAAKyX,cACLzX,KAAK0X,8BACL1X,KAAKyV,WAAarQ,OAAO9H,KAAKuO,SAAS,QAAU,iBAAc1H,CACvE,CACI,mBAAAwT,GACI3X,KAAKyU,cAAe,EACpBzU,KAAK0U,aAAc,CAC3B,CACI,qBAAIkD,GACA,OAAO5X,KAAKuU,cACpB,CACI,mBAAIsD,GACA,OAAO7X,KAAKsU,gBACpB,CACI,gBAAM3G,CAAWxO,GACb,GAAIa,KAAKqV,oBACL,OAAOjQ,OAAOqJ,YAAY,CAAEqJ,aAAc3Y,GAAOa,KAAK4V,qBAE1D,IAAK5V,KAAKsO,KACN,MAAM,IAAIzO,MAAM,4DAEpBG,KAAKsO,KAAKG,YAAYtP,EAC9B,CACI,0BAAIuO,GACA,OAAO,CACf,CACI,SAAAI,CAAUtC,GACN,OAAOxL,KAAKgN,SAASzB,IAAI,YAAaC,EAC9C,CACI,IAAAtD,GACI,OAAOpC,QAAQ8H,OAAO,gBAC9B,CACI,kBAAAG,CAAmBvC,GACf,OAAOxL,KAAKgN,SAASzB,IAAI,qBAAsBC,EACvD,CACI,UAAMyC,GACFjO,KAAKmN,OAAOsE,MAAM,2DACZzR,KAAKqN,UACXrN,KAAKkS,qBAAoB,EACjC,CACI,KAAAlE,GACI,MAAMT,EAAU,CACZwK,WAAY,CACR3b,KAAM4D,KAAK6S,SAASsE,kBAAkB7Z,KACtCkR,KAAM,CACFwJ,SAAUhY,KAAKiV,WACfgD,YAAajY,KAAKsS,UAAU4F,YAOxC,OAHAlY,KAAKsO,MAAMG,YAAYlB,GACvBvN,KAAK0U,aAAc,EACnB1U,KAAKkS,qBAAoB,EAAO,uBACzBpM,QAAQC,SACvB,CACI,IAAAzI,GACI,MAAO,cACf,CACI,eAAMuL,GAEF,aADM7I,KAAKgO,QACJlI,QAAQC,SACvB,CACI,0BAAAoS,GACI,OAAO,IAAIrS,SAAQ,CAACC,EAAS6H,KACzB5N,KAAKmN,OAAOsE,MAAM,+CAClBzR,KAAKsO,KAAOtO,KAAKkN,SAASoB,KACtBtO,KAAKyU,aACLzU,KAAKmN,OAAOiL,KAAK,6EAGrBpY,KAAKsO,KAAKC,UAAa8J,IACnB,GAAIrY,KAAKyU,eAAiB4D,EAAM7J,MAAMuJ,WAElC,YADA/X,KAAKgN,SAASZ,QAAQ,YAAaiM,EAAM7J,MAG7C,MAAMA,EAAO6J,EAAM7J,MAAMuJ,WACpBvJ,IAGDA,EAAKpS,OAAS4D,KAAK6S,SAASwE,uBAAuB/Z,MAAQkR,EAAK8J,UAChEtY,KAAKuU,eAAiBvU,KAAKkN,SAASgL,SAChClY,KAAKsS,UAAYtS,KAAKuU,iBACtBvU,KAAKsS,SAAS4F,SAAWlY,KAAKuU,eAC9BvU,KAAKsS,SAAStJ,SAAWhJ,KAAKuU,gBAElCxO,KAEAyI,EAAKpS,OAAS4D,KAAK6S,SAASwE,uBAAuB/Z,MAAQkR,EAAKlD,OAChEsC,EAAOY,EAAKlD,OAChC,EAEYtL,KAAKsO,KAAKG,YAAY,CAClBsJ,WAAY,CACR3b,KAAM4D,KAAK6S,SAASwE,uBAAuB/Z,QAEjD,GAEd,CACI,wBAAAib,CAAyB5T,GACrB,OAAOmP,GAAY,CAAC/N,EAAS6H,KACzB5N,KAAK6U,kBAAoB9O,EACzB/F,KAAKgV,iBAAmBpH,EACxB5N,KAAKiV,WAAajV,KAAKiV,YAAcvB,EAAO,IAC5C,MAAM8E,EAAmBxY,KAAKyY,iBAAmB/E,EAAO,IAClDgF,EAAU,CACZX,WAAY,CACR3b,KAAM4D,KAAK6S,SAASsD,kBAAkB7Y,KACtC0a,SAAUhY,KAAKiV,WACf0D,WAAY,QACZH,mBACAhE,qBAAsBxU,KAAKwU,uBAInC,GADAxU,KAAKmN,OAAOsE,MAAM,8BACdzR,KAAKoV,qBAIL,OAHAsD,EAAQX,WAAWY,WAAa,QAChCD,EAAQX,WAAWS,iBAAmBxY,KAAKiV,WAC3CyD,EAAQX,WAAWzC,eAAiBtV,KAAKsV,eAClClQ,OAAOqJ,YAAYiK,EAAS1Y,KAAK4V,qBAE5C,IAAKjR,EACD,MAAM,IAAI9E,MAAM,2EAEpB8E,EAAO8J,YAAYiK,EAAS1Y,KAAK4V,oBAAoB,GACtD5V,KAAK2V,yBAA0B,qDAC1C,CACI,0BAAMiD,CAAqBC,GACvB,IAEI,aADMA,EACC,CAAEP,SAAS,EAC9B,CACQ,MAAOhN,GACH,MAAO,CAAEgN,SAAS,EAC9B,CACA,CACI,oBAAAd,GACQxX,KAAKkN,SAASoB,KACdtO,KAAKmN,OAAOsE,MAAM,yEAGtBrM,OAAOE,iBAAiB,WAAY+S,IAChC,MAAM7J,EAAO6J,EAAM7J,MAAMuJ,WACzB,IAAKvJ,GAAQxO,KAAKoP,SACd,OAEJ,MAAM0J,EAAiB9Y,KAAKkN,SAAS4L,gBAAkB,GACvD,GAAIA,EAAepb,SAAWob,EAAejN,SAASwM,EAAMU,QAExD,YADA/Y,KAAKmN,OAAOiL,KAAK,uEAAuEC,EAAMU,UAGlG,IAAK/Y,KAAKgZ,sBAAsBxK,EAAKpS,MAEjC,YADA4D,KAAKmN,OAAO7B,MAAM,gFAAgFkD,EAAKpS,QAG3G,MAAM6c,EAAczK,EAAKpS,KACzB4D,KAAKmN,OAAOsE,MAAM,8CAA8CwH,KAChEjZ,KAAK6S,SAASoG,GAAanD,OAAOuC,EAAM,GAEpD,CACI,WAAAZ,GACQzX,KAAKkN,SAASoB,KACdtO,KAAKmN,OAAOsE,MAAM,sEAGtBrM,OAAOE,iBAAiB,gBAAgB,KACpC,GAAItF,KAAKqV,oBACL,OAEJ,MAAM9H,EAAU,CACZwK,WAAY,CACR3b,KAAM4D,KAAK6S,SAAS8D,aAAarZ,KACjCkR,KAAM,CACFwJ,SAAUhY,KAAKiV,WACfgD,YAAajY,KAAKsS,UAAU4F,YAIpClY,KAAKL,QACLK,KAAKL,OAAO8O,YAAYlB,EAASvN,KAAK4V,qBAE1C5V,KAAKsO,MAAMG,YAAYlB,EAAQ,GAE3C,CACI,mBAAAmJ,CAAoB2B,GAChBrY,KAAKmN,OAAOsE,MAAM,0CAClBzR,KAAK0U,aAAc,EACf1U,KAAK2U,oBACL3U,KAAK2U,2BACE3U,KAAK2U,mBAEZ3U,KAAK4U,qBACLsE,cAAclZ,KAAK4U,2BACZ5U,KAAK4U,oBAEhB5U,KAAKL,OAAS0Y,EAAMc,OACpBnZ,KAAKyV,WAAarQ,OAAO9H,KAAKuO,SAAS,QAAU,YAAc,QACvE,CACI,wBAAAkK,CAAyBsC,GACrB,MAAM7J,EAAO6J,EAAM7J,MAAMuJ,WACzB,OAAI/X,KAAKiV,aAAezG,EAAKwJ,SAClBhY,KAAKoZ,4BAA4B5K,GAErCxO,KAAKqZ,oCAAoC7K,EAAM6J,EAC9D,CACI,2BAAAe,CAA4B5K,GAGxB,GAFAxO,KAAKmN,OAAOsE,MAAM,yDAClBzR,KAAKqU,qBAAuB7F,EAAK6F,qBAC7BrU,KAAKoV,qBACL,OAAOpV,KAAKsZ,4BAA4B9K,GAE5C,GAAKA,EAAKF,KAAV,CAgBA,GAZAtO,KAAKuU,eAAiBvU,KAAKyY,gBACvBzY,KAAKsS,WACLtS,KAAKsS,SAAS4F,SAAWlY,KAAKuU,eAC9BvU,KAAKsS,SAAStJ,SAAWhJ,KAAKsS,SAAStJ,SAAWhJ,KAAKsS,SAAStJ,SAAWhJ,KAAKuU,gBAAkBb,EAAO,KAEzG1T,KAAKsS,UAAY9D,EAAK5I,UACtB5F,KAAKsS,SAASC,YAAc/D,EAAK5I,QACjC5F,KAAKsS,SAASiH,gBAAkB/K,EAAK5I,SAEzC5F,KAAKsU,iBAAmB9F,EAAKqJ,gBAC7B7X,KAAKsO,KAAOE,EAAKF,KACjBtO,KAAKsO,KAAKC,UAAa7J,GAAM1E,KAAKgN,SAASZ,QAAQ,YAAa1H,EAAE8J,MAC9DxO,KAAK6U,kBAIL,OAHA7U,KAAKmN,OAAOsE,MAAM,4DAClBzR,KAAK6U,gCACE7U,KAAK6U,kBAGhB7U,KAAKmN,OAAO7B,MAAM,iFAnB1B,MAFYtL,KAAKmN,OAAO7B,MAAM,sEAsB9B,CACI,2BAAAgO,CAA4B9K,GAwBxB,GAvBAxO,KAAKmN,OAAOsE,MAAM,0FAClBzR,KAAKoV,sBAAuB,EAC5BpV,KAAKqV,qBAAsB,EAC3BrV,KAAKuU,eAAiBvU,KAAKsV,gBAAkBtV,KAAKiV,WAC9CjV,KAAKoV,sBAAwBpV,KAAKsS,WAClCtS,KAAKsS,SAAS4F,SAAWlY,KAAKuU,gBAE9BvU,KAAKsS,UAAY9D,EAAK5I,UACtB5F,KAAKsS,SAASC,YAAc/D,EAAK5I,QACjC5F,KAAKsS,SAASiH,gBAAkB/K,EAAK5I,SAEzCR,OAAOE,iBAAiB,WAAY+S,IAChC,MAAMmB,EAAUnB,EAAM7J,MAAMiL,aAC5B,IAAKD,EACD,OAEJ,MAAMV,EAAiB9Y,KAAKkN,SAAS4L,gBAAkB,IACnDA,EAAepb,QAAWob,EAAejN,SAASwM,EAAMU,QAI5D/Y,KAAKgN,SAASZ,QAAQ,YAAaoN,GAH/BxZ,KAAKmN,OAAOiL,KAAK,uEAAuEC,EAAMU,SAGvD,IAE3C/Y,KAAK6U,kBAIL,OAHA7U,KAAKmN,OAAOsE,MAAM,4DAClBzR,KAAK6U,gCACE7U,KAAK6U,iBAGxB,CACI,mCAAAwE,CAAoC7K,EAAM6J,GACtC,GAAIrY,KAAKoV,sBAAwBpV,KAAKqV,oBAElC,YADArV,KAAKmN,OAAOsE,MAAM,yFAGtBzR,KAAKmN,OAAOsE,MAAM,mEAAmEjD,EAAKwJ,YAC1F,MAAM0B,EAAQ1Z,KAAKkV,SAASyE,MAAMC,GAAMA,EAAEC,eAAiBrL,EAAKwJ,WAC3D0B,GAILA,EAAMI,WAAY,EAClB9Z,KAAKmN,OAAOsE,MAAM,iCAAiCjD,EAAKwJ,2EACxDxJ,EAAK8G,eAAiBtV,KAAKuU,eAC3BmF,EAAMP,OAAO1K,YAAY4J,EAAM7J,KAAMkL,EAAMX,OAAQ,CAACvK,EAAKF,QANrDtO,KAAKmN,OAAO7B,MAAM,qDAAqDkD,EAAKwJ,wDAQxF,CACI,wBAAA9B,CAAyBmC,GAErB,GADArY,KAAKmN,OAAOsE,MAAM,mHACbzR,KAAKgV,iBACN,OAEJ,MAAM+E,EAAmD,iBAAjC1B,EAAM7J,KAAKuJ,YAAYzM,MACzC,4BAA4B+M,EAAM7J,KAAKuJ,YAAYzM,QACnD,2GACNtL,KAAKgV,iBAAiB+E,UACf/Z,KAAKgV,gBACpB,CACI,uBAAAoB,CAAwBiC,GACpB,GAAIrY,KAAKoV,qBAEL,YADApV,KAAKmN,OAAOsE,MAAM,sEAGtB,MAAM0H,EAASd,EAAMc,OACf3K,EAAO6J,EAAM7J,KAAKuJ,WACxB,OAAKvJ,EAAKmK,YAAkC,eAApBnK,EAAKmK,WAGxBnK,EAAKwJ,SAGLhY,KAAKL,QAGVK,KAAKmN,OAAOsE,MAAM,mDAAmDjD,EAAKwJ,YAC1EhY,KAAKkV,SAAShV,KAAK,CAAE2Z,aAAcrL,EAAKwJ,SAAUmB,SAAQW,WAAW,EAAOf,OAAQV,EAAMU,SAC1F/Y,KAAKmN,OAAOsE,MAAM,eAAejD,EAAKwJ,4EACtChY,KAAKL,OAAO8O,YAAY4J,EAAM7J,KAAMxO,KAAK4V,sBAL9B5V,KAAKga,wBAAwBb,EAAQd,EAAMU,OAAQ,iGAHnD/Y,KAAKga,wBAAwBb,EAAQd,EAAMU,OAAQ,iFAHnD/Y,KAAKga,wBAAwBb,EAAQd,EAAMU,OAAQ,uFAYtE,CACI,gBAAAzC,CAAiB+B,GACb,IAAKrY,KAAK0U,YAEN,YADA1U,KAAKmN,OAAOsE,MAAM,yDAGtB,IAAKzR,KAAKyU,aAEN,YADAzU,KAAKmN,OAAOsE,MAAM,+DAGtB,MAAMlE,EAAU,CACZwK,WAAY,CACR3b,KAAM4D,KAAK6S,SAAS6B,YAAYpX,OAGpC0C,KAAKqV,sBACL9H,EAAQwK,WAAWkC,QAAU,CAAE/B,SAAUlY,KAAKiV,aAElD,MAAMkE,EAASd,EAAMc,OACrBnZ,KAAKmN,OAAOsE,MAAM,oDAClB0H,EAAO1K,YAAYlB,EAAS8K,EAAMU,OAC1C,CACI,2BAAArB,GACI1X,KAAK8N,WAAW3O,IACK,mBAAbA,EAAI/C,OACJ4D,KAAKmN,OAAOsE,MAAM,kCAClBzR,KAAK0U,aAAc,EACnB1U,KAAKkS,qBAAoB,EAAO,oBAChD,GAEA,CACI,kBAAA4E,GACI,MAAMvJ,EAAU,CACZwK,WAAY,CACR3b,KAAM4D,KAAK6S,SAAS8D,aAAarZ,KACjCkR,KAAM,CACFwJ,SAAUhY,KAAKiV,WACfgD,YAAajY,KAAKsS,UAAU4F,YAIxC,GAAIlY,KAAKqV,oBACL,OAAOjQ,OAAOqJ,YAAY,CAAEqJ,aAAcvK,GAAWvN,KAAK4V,qBAE9D5V,KAAKsO,MAAMG,YAAYlB,EAC/B,CACI,kBAAAqJ,CAAmByB,GACf,MAAM7J,EAAO6J,EAAM7J,KAAKuJ,WAClBC,EAAWxJ,GAAMA,KAAKwJ,SAC5B,IAAKA,EAED,YADAhY,KAAKmN,OAAOiL,KAAK,4EAGFpY,KAAKkV,SAASyE,MAAMD,GAAUA,EAAMG,eAAiB7B,KAKxEhY,KAAKmN,OAAOsE,MAAM,sCAAsCuG,KACxDhY,KAAKkV,SAAWlV,KAAKkV,SAAS7S,QAAQqX,GAAUA,EAAMG,eAAiB7B,KAJnEhY,KAAKmN,OAAOiL,KAAK,uFAK7B,CACI,kBAAA5B,GAEJ,CACI,mBAAAtE,CAAoBO,EAAQZ,GACxB7R,KAAKyU,aAAehC,EACpBzS,KAAKgN,SAASZ,QAAQ,qBAAsBqG,EAAQZ,EAC5D,CACI,qBAAAmH,CAAsBkB,GAClB,MAAiC,iBAAnBA,KAAiCla,KAAK6S,SAASqH,EACrE,CACI,uBAAAF,CAAwBb,EAAQJ,EAAQlH,GACpC7R,KAAKoP,UAAW,EAChBpP,KAAKmN,OAAO7B,MAAMuG,GAClB,MAAMsI,EAAY,CACdpC,WAAY,CACR3b,KAAM4D,KAAK6S,SAASoD,mBAAmB3Y,OAG/C6b,EAAO1K,YAAY0L,EAAWpB,EACtC,CACI,kCAAAqB,GACI,OAAOpa,KAAKqa,uBACP5M,MAAK,IAAMqG,GAAY,CAAC/N,EAAS6H,KAClC5N,KAAK8U,qBAAuB/O,EAC5B/F,KAAK+U,oBAAsBnH,EAM3B5N,KAAKmN,OAAOsE,MAAM,+DAClBrM,OAAOqJ,YANS,CACZsJ,WAAY,CACR3b,KAAM,oBAIc4D,KAAK4V,oBAAoB,GACtD5V,KAAK0V,kBAAmB,2IACnC,CACI,2BAAAsB,CAA4BqB,GACxB,MAAM7J,EAAO6J,EAAM7J,MAAMuJ,WACzB,IAAKvJ,EAAK8L,SACN,OAAOta,KAAK+U,oBAAsB/U,KAAK+U,oBAAoB,kJAA+I5Q,EAE1MnE,KAAK8U,uBACL9U,KAAK8U,8BACE9U,KAAK8U,sBAEhB9U,KAAKoV,sBAAuB,EAC5BpV,KAAKyV,WAAa,YAClBzV,KAAKmN,OAAOsE,MAAM,qDAC1B,CACI,qBAAAyF,GAEJ,CACI,uBAAAE,GAEJ,CACI,4BAAAE,GAEJ,CACI,oBAAA+C,GAEI,QADuBjV,OAAOmS,WAAWgD,QAE9BzU,QAAQC,UAEZ+N,GAAa/N,IAChBX,OAAOE,iBAAiB,kBAAkB,KACtCS,GAAS,GACX,GACH/F,KAAK2V,yBAA0B,oEAC1C,CACI,aAAMtI,GACF,GAAIrN,KAAKkN,SAASoB,KAGd,aAFMtO,KAAKmY,kCACXnY,KAAKmN,OAAOsE,MAAM,8CAGtBzR,KAAKmN,OAAOsE,MAAM,kDACZzR,KAAKwa,mBACLxa,KAAKuY,yBAAyBvY,KAAKL,QACzCK,KAAKmN,OAAOsE,MAAM,0BAC1B,CACI,gBAAM+I,GACF,MAAMC,EAA2B,uFAC3BC,EAAkB1a,KAAK2a,2BAA2BvV,QAClDwV,EAAmB5a,KAAK6a,gCAAgCzV,OAAO0V,KAAKC,OAAQ3V,OAAO0V,KACnFE,EAAgB,IAAIC,IAAI,IAAIP,KAAoBE,IACtD,IAAKI,EAAcrH,OAAS3T,KAAKmV,oBAC7B,MAAM,IAAItV,MAAM4a,GAEpB,IAAKO,EAAcrH,MAAQ3T,KAAKmV,oBAE5B,kBADMnV,KAAKoa,qCAIf,UADiCpa,KAAK4Y,qBAAqB5Y,KAAKkb,cAAc5c,MAAM6c,KAAKH,MAClE1C,QACnBtY,KAAKmN,OAAOsE,MAAM,qCADtB,CAIA,IAAKzR,KAAKmV,oBACN,MAAM,IAAItV,MAAM4a,SAEdza,KAAKoa,oCAJnB,CAKA,CACI,0BAAAO,CAA2BS,GACvB,OAASA,GAAezb,QAAUyb,IAAkBA,EAAczb,OAAe,CAACyb,EAAczb,UAAWK,KAAK2a,2BAA2BS,EAAczb,SAA7E,EACpF,CACI,+BAAAkb,CAAgCE,EAAQM,GACpC,OAASN,GAAWM,GAAWN,IAAWM,EAAgB,CAACN,KAAW/a,KAAK2a,2BAA2BI,MAAY/a,KAAK6a,gCAAgCE,EAAOA,OAAQA,IAAjH,EAC7D,CACI,aAAAG,CAAcI,GACV,MACMzC,EAAc/E,GAAa/N,IAC7B/F,KAAK2U,kBAAoB5O,EACzB,MAAMwH,EAAU,CACZwK,WAAY,CACR3b,KAAM4D,KAAK6S,SAAS0D,aAAajZ,OAGzC0C,KAAK4U,mBAAqBpO,aAAY,KAClC8U,EAAQlc,SAASuF,IACbA,EAAO8J,YAAYlB,EAASvN,KAAK4V,oBAAoB,GACvD,GACH,IAAK,GACT5V,KAAK0V,kBAbyB,wFAoBjC,OANAmD,EAAYrW,OAAM,KACVxC,KAAK4U,qBACLsE,cAAclZ,KAAK4U,2BACZ5U,KAAK4U,mBAC5B,IAEeiE,CACf,CACI,aAAAJ,GACI,MAAwB,cAApBzY,KAAKyV,WACErQ,OAAO9H,KAAKie,UAAU,EAAGnW,OAAO9H,KAAKiW,QAAQ,SAEpDnO,SAAWA,OAAO0V,IAGlB1V,OAAO9H,MAAMuO,SAAS,OACfzG,OAAO9H,MAElB0C,KAAKwU,qBAAuBxU,KAAKwU,sBAAwB,OAAOd,EAAO,MAChE1T,KAAKwU,2BAPZ,CAQR,EAaA,MAAMgH,EACFC,oBACAC,MAAQ,GACRC,kBAAmB,EACnB,WAAApf,CAAYkf,EAAsB,GAC9Bzb,KAAKyb,oBAAsBA,CACnC,CACI,OAAAG,CAAQhS,GACJ,OAAO,IAAI9D,SAAQ,CAACC,EAAS6H,KACzB5N,KAAK0b,MAAMxb,KAAK,CAAE0J,SAAQ7D,UAAS6H,WACnC5N,KAAK6b,cAAc,GAE/B,CACI,kBAAMA,GACF,IAAI7b,KAAK2b,iBAAT,CAIA,IADA3b,KAAK2b,kBAAmB,EACjB3b,KAAK0b,MAAMhe,QAAQ,CACtB,MAAMoe,EAAY9b,KAAK0b,MAAMK,QAC7B,IAAKD,EAED,YADA9b,KAAK2b,kBAAmB,GAG5B,IACI,MAAMK,QAAqBF,EAAUlS,SACrCkS,EAAU/V,QAAQiW,EAClC,CACY,MAAO1Q,GACHwQ,EAAUlO,OAAOtC,EACjC,OACkBtL,KAAKic,eACvB,CACQjc,KAAK2b,kBAAmB,CAjBhC,CAkBA,CACI,aAAAM,GACI,OAAO,IAAInW,SAASoW,GAAQ5V,WAAW4V,EAAKlc,KAAKyb,sBACzD,EAGA,SAASU,EAAexT,EAAQpB,EAAY4F,EAAQiP,EAAiBC,GACnD,MAAV1T,IACAA,EAAS,UAEbyT,EAAkBA,GAAmB,CAAC,WACtCC,EAAgBA,GAAiB,CAAC,SAClC,IAEIC,EAFAC,EAAsB,WAAX5T,EACX6T,GAAkB,EAElBC,GAAgB,EACpB,MAAMzR,EAAY6B,IAClBtF,EAAWmV,cA4EX,WACID,GAAgB,EAChBtP,EAAOsE,MAAM,sBACb8K,GAAW,EACXC,GAAkB,EAClBxR,EAAUoB,QAAQ,SAAU,CAAEsQ,cAAc,GACpD,IAjFInV,EAAWoV,UAkFX,WACIF,GAAgB,EACZD,IACArP,EAAOsE,MAAM,iDACbhU,EAAK6e,GAEjB,IAvFI/U,EAAW8L,GAAG,WAAYlU,GAAQyd,EAAqBzd,KACvDoI,EAAW8L,GAAG,SAAUlU,GAAQ0d,EAAmB1d,KACnDoI,EAAW8L,GAAG,UAAWlU,GAAQyd,EAAqBzd,KAClDid,GACAA,EAAgBhd,SAAS0d,IACrBvV,EAAW8L,GAAGyJ,GAAK3d,GAAQyd,EAAqBzd,IAAK,IAGzDkd,GACAA,EAAcjd,SAAS0d,IACnBvV,EAAW8L,GAAGyJ,GAAK3d,GAAQ0d,EAAmB1d,IAAK,IAG3D,MAAM4d,EAAc,CAAE,EACtB,SAAStf,EAAKsG,GAEV,OADAuY,EAAiBvY,EACV,IAAI+B,SAAQ,CAACC,EAAS6H,KACzB,GAAI2O,EAEA,YADAxW,EAAQ,CAAA,GAGZ,IAAI0B,EACJ,GAAe,WAAXkB,EACAlB,EAAcgV,EAAgB3W,QAAQC,QAAQ,CAAE,GAAID,QAAQ8H,OAAO,gCAElE,CACDT,EAAOsE,MAAM,kBAAkB9I,KAO/BlB,EAAcS,EANE,CACZ9L,KAAM,OACN4gB,YAAarU,EACbA,OAAQ,SACR5E,WAGpB,CACY0D,EACKgG,MAAK,MA+BlB,WACIN,EAAOsE,MAAM,YAAc9I,GAC3B4T,GAAW,EACX,MAAMU,EAAeT,EACrBA,GAAkB,EAClBxR,EAAUoB,QAAQ,WAAY6Q,EACtC,CApCgBC,GACAnX,EAAQ,CAAA,EAAG,IAEVvD,OAAOuJ,IACRoB,EAAOsE,MAAM,iBAAmB9I,EAAS,YAAc9B,KAAKC,UAAUiF,IACtE6B,EAAO7B,EAAI,GACb,GAEd,CA2CI,SAASnD,EAAS4C,GAId,OAHI+Q,GACA/Q,GAAS,GAENR,EAAUO,IAAI,WAAYC,EACzC,CAOI,SAASqR,EAAmB1d,GACxB,GAAIwJ,IAAWxJ,EAAIwJ,OACf,OAEJ,MAAMwU,EAAYhe,EAAIie,WACtB,IAAKD,EACD,OAEJ,MAAME,EAAQN,EAAYI,GACrBE,GAGLA,EAAM/R,MAAMnM,EACpB,CACI,SAASyd,EAAqBzd,GAC1B,GAAIA,EAAIwJ,SAAWA,EACf,OAEJ,MAAMwU,EAAYhe,EAAIie,WACtB,IAAKD,EACD,OAEJ,MAAME,EAAQN,EAAYI,GACrBE,GAGLA,EAAM/E,QAAQnZ,EACtB,CACI,SAASme,IACL,OAAO5J,EAAO,GACtB,CACI,IAAI6J,EAAc,GAClB,SAASrV,EAAK/I,EAAKqe,EAAKzZ,GAEpB,GAAI5E,EAAI/C,WADO,CAAC,QAAS,QACFmX,QAAQpU,EAAI/C,QAC1BmgB,EAAU,CACXlR,QAAQ+M,KAAK,6BAA6BjZ,EAAIwJ,UAAUxJ,EAAI/C,uCAC5D,MAAM2U,EAAK,IAAIC,EAEf,GADAuM,EAAYrd,KAAK,CAAEf,MAAKqe,MAAKzZ,UAASgN,OACX,IAAvBwM,EAAY7f,OAAc,CAC1B,MAAM+f,EAAc7U,GAAS,KACzBuE,EAAO2D,KAAK,2CAA2CyM,EAAY7f,cAAc6f,EAAYnW,KAAK/H,GAAMA,EAAEF,IAAI/C,YAC9GmhB,EAAYne,SAASse,IACjBxV,EAAKwV,EAAGve,IAAKue,EAAGF,IAAKE,EAAG3Z,SACnB0J,MAAM8B,GAAMmO,EAAG3M,GAAGhL,QAAQwJ,KAC1B/M,OAAOkC,GAAMgZ,EAAG3M,GAAGnD,OAAOlJ,IAAG,IAEtC6Y,EAAc,GACdE,GAAa,GAErC,CACgB,OAAO1M,EAAG5B,OAC1B,CAEQpL,EAAUA,GAAW,CAAE,EACvB5E,EAAIie,WAAaje,EAAIie,YAAcE,IACnCne,EAAIwJ,OAASxJ,EAAIwJ,QAAUA,EACtB5E,EAAQ4Z,aACTxe,EAAIiK,QAAU7B,EAAW8B,QAE7B,MAAM8T,EAAYhe,EAAIie,WACtB,OAAO,IAAItX,SAAQ,CAACC,EAAS6H,KACzBmP,EAAYI,GAAa,CACrB7E,QAAUsF,WACCb,EAAYI,GACnBS,EAAWC,KAAOL,EAClBzX,EAAQ6X,EAAW,EAEvBtS,MAAQyO,IACJ5M,EAAOiL,KAAK,mBAAmBvR,KAAKC,UAAUiT,aACvCgD,EAAYI,GACnBpD,EAAS8D,KAAOL,EAChB5P,EAAOmM,EAAS,GAGxBxS,EACKW,KAAK/I,EAAK4E,GACVvB,OAAOuJ,IACRgR,EAAYI,GAAW7R,MAAM,CAAES,OAAM,GACvC,GAEd,CAOI,MAAO,CACHtO,OACAqgB,MAhJJ,WACI,MAAe,WAAXnV,EACO7C,QAAQC,WAEnBoH,EAAOsE,MAAM,oBAAsB9I,EAAS,OAM5C6T,GAAkB,EACXtU,EANU,CACb9L,KAAM,QACN4gB,YAAarU,EACbA,OAAQ,WAIP8E,MAAK,KACN8O,GAAW,EACXvR,EAAUoB,QAAQ,SAAS,IAE1B5J,OAAM,KACP+Z,GAAW,EACXvR,EAAUoB,QAAQ,SAAS,IAEvC,EA6HQxD,WACAmV,OAlGJ,SAAgBvS,GAIZ,OAHK+Q,GACD/Q,IAEGR,EAAUO,IAAI,SAAUC,EACvC,EA8FQtD,OACAM,kBAZJ,SAA2BrJ,GAIvB,OAHAA,EAAIie,WAAaje,EAAIie,WAAaje,EAAIie,WAAaE,IACnDne,EAAIwJ,OAASxJ,EAAIwJ,QAAUA,EAC3BxJ,EAAIiK,QAAU7B,EAAW8B,OAClB9B,EAAWW,KAAK/I,EAC/B,EAQQkU,GAAI,CAACjX,EAAMoP,KACPjE,EAAW8L,GAAGjX,GAAO+C,IACjB,GAAIA,EAAIwJ,SAAWA,EAGnB,IACI6C,EAASrM,EAC7B,CACgB,MAAOuF,GACHyI,EAAO7B,MAAM,qBAAqB5G,QAAQA,EAAE0G,qBAAqBvE,KAAKC,UAAU3H,KAAQuF,EAC5G,IACc,EAENiY,SAAWnR,GAAajE,EAAWoV,SAASnR,GAC5CsO,UAAYtO,GAAajE,EAAWuS,UAAUtO,GAC9CkR,aAAelR,GAAajE,EAAWmV,aAAalR,GACpD,UAAInC,GACA,OAAO9B,EAAW8B,MACrB,EACD,UAAIV,GACA,OAAOA,CACV,EAET,CAEA,MAAMqV,EACF9Q,SACAC,OACA8Q,gBAAkB,EAClB5U,OACA6U,MACApN,KACAqN,iBACAC,iBACAC,aACAC,SACAC,gBAAkB,CAAE,EACpBC,IAAM,EACNxR,SAAWH,IACX4R,YAAa,EACbC,SAAU,EACV9e,UACA+e,kBACAC,aACAC,iBACAC,YACAC,gBAAiB,EACjBC,mBAAoB,EACpBC,wBAA0B,GAC1BC,WAAa,aACbC,cAAgBnf,KAAKkf,WAAWxhB,OAChC0hB,WAAapf,KAAKmf,cAAgB,EAClCE,oBAAsBrf,KAAKkf,WAAW,GACtCI,YAAc,IAAI9D,EAClB+D,aAAc,EACdC,gBAAiB,EACjBC,UACAC,SAAW,GACXC,aACAC,cAAe,EACfC,qBAAuB,EACvBC,YACA,WAAAvjB,CAAY2Q,EAAUC,GAMlB,GALAnN,KAAKkN,SAAWA,EAChBlN,KAAKmN,OAASA,GACdD,EAAWA,GAAY,CAAE,GAChBqE,kBAAoBrE,EAASqE,mBAAqB,GAC3DrE,EAASoE,kBAAoBpE,EAASoE,mBAAqB,IACvDpE,EAAS6S,OACT/f,KAAKJ,UAAY,IAAIkN,EAAgBI,EAAS6S,OAAQ5S,EAAO6S,UAAU,kBAEtE,GAAI9S,EAAS+S,aACdjgB,KAAKJ,UAAY,IAAIsO,EAAsBhB,EAAS+S,aAAc9S,EAAO6S,UAAU,uBAElF,GAAI9S,EAASgT,YACdlgB,KAAKJ,UAAY,IAAIwU,EAAqBlH,EAASgT,YAAa/S,EAAO6S,UAAU,gBAAiB9S,EAASoF,cAE1G,SAAoBnO,IAAhB+I,EAASsD,GAId,MAAM,IAAI3Q,MAAM,uCAHhBG,KAAKJ,UAAY,IAAI2Q,EAAGrD,EAAUC,EAAO6S,UAAU,MAI/D,CACQhgB,KAAK0e,QAAUvR,EAAOgT,WAAW,SACjChT,EAAOsE,MAAM,iBAAiBzR,KAAKJ,UAAUtC,oBAC7C,MAAM8iB,EAAyBpgB,KAAKJ,UAAUmO,mBAAmB/N,KAAKqgB,wBAAwBrK,KAAKhW,OAC7FsgB,EAAiBtgB,KAAKJ,UAAUkO,UAAU9N,KAAKugB,uBAAuBvK,KAAKhW,OACjFA,KAAKif,wBAAwB/e,KAAKkgB,GAClCpgB,KAAKif,wBAAwB/e,KAAKogB,GAClCtgB,KAAK2e,kBAAoB3e,KAAKJ,UAC9BI,KAAKwgB,MACb,CACI,qBAAMC,CAAgBvT,GAClB,OAAOlN,KAAKsf,YAAY1D,SAAQ9T,UAC5B,IAAKoF,GAAgC,iBAAbA,EACpB,MAAM,IAAIrN,MAAM,0EAEpB,QAA6B,IAAlBqN,EAAS9Q,KAChB,MAAM,IAAIyD,MAAM,gEAEpBG,KAAKmN,OAAOuT,MAAM,4CAA4C7Z,KAAKC,UAAUoG,MAC7E,MAAMyT,EAA0C,cAAlBzT,EAAS9Q,KAAuB4D,KAAK4gB,yBAAyB1T,GAAYlN,KAAK2e,kBAC7G3e,KAAK6e,iBAAmB8B,EACxB3gB,KAAK8e,YAAgC,cAAlB5R,EAAS9Q,KAAuB4D,KAAK6gB,oBAAoB3T,GAAYlN,KAAK4e,aAC7F,MAAMkC,EAAgB9gB,KAAK+gB,mBAC3B/gB,KAAK+e,gBAAiB,EACtB/e,KAAKgf,mBAAoB,EACzBhf,KAAKmN,OAAOuT,MAAM,uEACZ1gB,KAAKJ,UAAUoO,QACrB,UACU8S,EACN,MAAME,EAAkBhhB,KAAKJ,YAAc+gB,EAG3C,OAFA3gB,KAAKmN,OAAO2D,KAAK,8EAA8EkQ,KAC/FhhB,KAAKgf,mBAAoB,EAClB,CAAE1G,QAAS0I,EAClC,CACY,MAAO1V,GAIH,OAHAtL,KAAKmN,OAAO2D,KAAK,yFACjB9Q,KAAKygB,gBAAgB,CAAErkB,KAAM,YAC7B4D,KAAKgf,mBAAoB,EAClB,CAAE1G,SAAS,EAClC,IAEA,CACI,gBAAA2I,CAAiBzV,GACb,OAAOxL,KAAKgN,SAASzB,IAAI,iBAAkBC,EACnD,CACI,iBAAA0V,CAAkBC,GACdnhB,KAAKgN,SAASZ,QAAQ,iBAAkB+U,EAChD,CACI,IAAAjZ,CAAKqF,EAASxJ,GACV,GAAI/D,KAAKJ,UAAU+N,YACf3N,KAAKJ,UAAU8N,uBAAwB,CACvC,MAAMvO,EAAMa,KAAKohB,oBAAoB7T,GAIrC,OAHIvN,KAAK0e,SACL1e,KAAKmN,OAAOuT,MAAM,MAAM7Z,KAAKC,UAAU3H,MAEpCa,KAAKJ,UAAU+N,WAAWxO,EAAK4E,EAClD,CACa,CACD,MAAMsd,EAAarhB,KAAKshB,oBAAoB/T,GAI5C,OAHIvN,KAAK0e,SACL1e,KAAKmN,OAAOuT,MAAM,MAAMW,KAErBrhB,KAAKJ,UAAUsI,KAAKmZ,EAAYtd,EACnD,CACA,CACI,EAAAsP,CAAGjX,EAAMoR,GACLpR,EAAOA,EAAK4I,mBACuBb,IAA/BnE,KAAKue,gBAAgBniB,KACrB4D,KAAKue,gBAAgBniB,GAAQ,CAAE,GAEnC,MAAM6D,EAAKD,KAAKwe,MAEhB,OADAxe,KAAKue,gBAAgBniB,GAAM6D,GAAMuN,EAC1B,CACHpR,OACA6D,KAEZ,CACI,GAAAwT,CAAI3C,UACO9Q,KAAKue,gBAAgBzN,EAAK1U,KAAK4I,eAAe8L,EAAK7Q,GAClE,CACI,eAAIshB,GACA,OAAOvhB,KAAKuf,WACpB,CACI,SAAAzF,CAAUtO,GACN,OAAOxL,KAAK2c,UAAS,KACjB,MAAM6E,EAAgBxhB,KAAKJ,UAAUtC,OACrCkO,EAASgW,EAAc,GAEnC,CACI,YAAA9E,CAAalR,GACT,OAAOxL,KAAKgN,SAASzB,IAAI,eAAgBC,EACjD,CACI,WAAMiW,CAAMC,EAAa7Y,GAIrB,GAHK7I,KAAK4e,eACN5e,KAAK4e,aAAe8C,GAEpB1hB,KAAK+e,eAAgB,CACrB/e,KAAKmN,OAAOuT,MAAM,kDAElBgB,EADgB1hB,KAAK2hB,iBACID,CACrC,CACQ1hB,KAAKmN,OAAOuT,MAAM,iCAAiC1gB,KAAKJ,UAAUtC,mBAAmBuJ,KAAKC,UAAU4a,MACpG,UACU1hB,KAAKJ,UAAUqO,OACrBjO,KAAKmN,OAAOuT,MAAM,cAAc1gB,KAAKJ,UAAUtC,6BAC/CmS,EAAM,cAAcM,KAAK,oBACzB,MAAMuC,QAAiBtS,KAAK4hB,UAAUF,EAAa7Y,GAGnD,OAFA7I,KAAKmN,OAAOuT,MAAM,4BAA4B7Z,KAAKC,UAAUwL,MAC7D7C,EAAM,cAAcM,KAAK,sBAClBuC,CACnB,CACQ,MAAOhH,GAKH,MAJItL,KAAKgf,oBACLhf,KAAKmN,OAAOuT,MAAM,+EAClB1gB,KAAK6hB,sBAEH,IAAIhiB,MAAMyL,EAC5B,CACA,CACI,YAAMwW,SACI9hB,KAAK+hB,mBACL/hB,KAAKJ,UAAUoO,OAC7B,CACI,QAAA2O,CAASnR,GAIL,OAHIxL,KAAKuf,aACL/T,IAEGxL,KAAKgN,SAASzB,IAAI,aAAcC,EAC/C,CACI,MAAA7C,CAAOA,EAAQyT,EAAiBC,GAC5B,IAAI3U,EAAU1H,KAAK0f,SAAS/F,MAAM3W,GAAMA,EAAE2F,SAAWA,IAKrD,OAJKjB,IACDA,EAAUyU,EAAcxT,EAAQ3I,KAAMA,KAAKmN,OAAO6S,UAAU,UAAUrX,KAAWyT,EAAiBC,GAClGrc,KAAK0f,SAASxf,KAAKwH,IAEhBA,CACf,CACI,SAAAsa,GAKI,OAAKhiB,KAAK2f,aAGH3f,KAAK2f,aAAazX,KAPF,CACnBS,OAAQ,SACRvM,KAAM,iBAMLqR,MAAMyO,GACAA,EAAIgC,QAJJpY,QAAQ8H,OAAO,IAAI/N,MAAM,4BAM5C,CACI,SAAAgJ,GACI,OAAO7I,KAAKJ,UAAUiJ,WAC9B,CACI,WAAAoZ,CAAY3lB,GACR0D,KAAKuf,YAAcjjB,EACf0D,KAAKuf,aACLvf,KAAKgN,SAASZ,QAAQ,aAElC,CACI,iBAAA8V,CAAkB3U,EAASnR,GACvB,MAAM+lB,EAAWniB,KAAKue,gBAAgBniB,EAAK4I,oBAC1Bb,IAAbge,GACAvlB,OAAOC,KAAKslB,GAAU/iB,SAASgjB,IAC3B,MAAMC,EAAUF,EAASC,GACzB,QAAgBje,IAAZke,EACA,IACIA,EAAQ9U,EAChC,CACoB,MAAOjC,GACH,IACItL,KAAKmN,OAAO7B,MAAM,+BAA+BA,EAAMF,QAASE,EAC5F,CACwB,MAAOgX,GACHjX,QAAQkX,IAAI,yBAA0BjX,EAClE,CACA,CACA,GAGA,CACI,uBAAA+U,CAAwBvG,GAChB9Z,KAAKye,aAAe3E,IAGxB9Z,KAAKye,WAAa3E,EACdA,GACI9Z,KAAKkN,UAAUsV,aAAa9kB,SAC5BsC,KAAKse,SAAW,IAAI5L,EAAoB1S,KAAKkN,SAASsV,aACtDxiB,KAAKse,SAASta,KAAKhE,OAEvBA,KAAKgN,SAASZ,QAAQ,eAGtBpM,KAAKyiB,qBACLziB,KAAKgN,SAASZ,QAAQ,iBAElC,CACI,kBAAAqW,GACIziB,KAAKiiB,aAAY,GAEjB,GADmBjiB,KAAKwf,gBACNxf,KAAK4f,aAAc,CACjC,GAAI5f,KAAK6f,sBAAwB,EAC7B,OAEJ7f,KAAK6f,sBACjB,CAEQ,GADA7f,KAAKmN,OAAOsE,MAAM,qCAAuCzR,KAAKwf,gBAC1Dxf,KAAKwf,eAAgB,CACrB,IAAKxf,KAAK8f,YACN,MAAM,IAAIjgB,MAAM,iBAEpBG,KAAKyhB,MAAMzhB,KAAK8f,aAAa,GACxBtd,OAAM,KACP8D,WAAWtG,KAAKyiB,mBAAmBzM,KAAKhW,MAAOA,KAAKkN,SAASoE,mBAAqB,IAAK,GAEvG,CACA,CACI,sBAAAiP,CAAuBphB,GACnB,IAAIujB,EAEAA,EADe,iBAARvjB,EACEa,KAAK2iB,qBAAqBxjB,GAG1Ba,KAAK4iB,qBAAqBzjB,GAEnCa,KAAK0e,SACL1e,KAAKmN,OAAOuT,MAAM,MAAM7Z,KAAKC,UAAU4b,MAE3C1iB,KAAKkiB,kBAAkBQ,EAAOvjB,IAAKujB,EAAOG,QAClD,CACI,gBAAA9B,GACI,OAAOjN,GAAa/N,IAChB,IAAI+c,EACJ,MAAMC,EA7jBS,EAACC,EAAaxX,KACrC,IAAIyX,EAAOD,EACX,MAAO,KACHC,IACa,IAATA,GACAzX,GACZ,CACK,EAsjBqB0X,CAAmB,GAAG,KAC5BJ,GACAA,IAEJ/c,GAAS,IAEb+c,EAAQ9iB,KAAKihB,kBAAkBE,GACV,YAAbA,EAAI7jB,MAGS,aAAb6jB,EAAI7jB,KAFGylB,SAEX,GAGF,GACH,IAAO,0EAClB,CACI,wBAAAnC,CAAyB1T,GACrB,IAAKA,EAASiW,iBAAiBC,IAC3B,MAAM,IAAIvjB,MAAM,oCAEpB,OAAO,IAAI0Q,EAAG3T,OAAOymB,OAAO,CAAE,EAAErjB,KAAKkN,SAAU,CAAEsD,GAAItD,EAASiW,gBAAgBC,IAAK7R,kBAAmB,IAAMvR,KAAKmN,OAAO6S,UAAU,gBAC1I,CACI,mBAAAa,CAAoB3T,GAChB,IAAKA,EAASiW,iBAAiBG,KAC3B,MAAM,IAAIzjB,MAAM,iDAEpB,OAAOqN,EAASiW,gBAAgBG,IACxC,CACI,aAAA3B,GAEI,GADA3hB,KAAK+e,gBAAiB,GACjB/e,KAAK6e,mBAAqB7e,KAAK8e,YAEhC,YADA9e,KAAKmN,OAAOiL,KAAK,iHAAiHpY,KAAK2e,wCAAwC3e,KAAK8e,4CAGxL9e,KAAKif,wBAAwB7f,SAAS0jB,GAAUA,MAChD9iB,KAAKif,wBAA0B,GAC/Bjf,KAAKJ,UAAYI,KAAK6e,iBACtB,MAAMuB,EAAyBpgB,KAAKJ,UAAUmO,mBAAmB/N,KAAKqgB,wBAAwBrK,KAAKhW,OAC7FsgB,EAAiBtgB,KAAKJ,UAAUkO,UAAU9N,KAAKugB,uBAAuBvK,KAAKhW,OAGjF,OAFAA,KAAKif,wBAAwB/e,KAAKkgB,GAClCpgB,KAAKif,wBAAwB/e,KAAKogB,GAC3BtgB,KAAK8e,WACpB,CACI,kBAAA+C,GACI7hB,KAAKif,wBAAwB7f,SAAS0jB,GAAUA,MAChD9iB,KAAKif,wBAA0B,GAC/Bjf,KAAKJ,UAAUoO,QAAQxL,OAAO8I,GAAUtL,KAAKmN,OAAOiL,KAAK,qBAAqBpY,KAAKJ,UAAUtC,uDAAuDuJ,KAAKC,UAAUwE,QACnKtL,KAAK6e,iBAAmB7e,KAAK2e,kBAC7B3e,KAAK8e,YAAc9e,KAAK4e,aACxB5e,KAAK+e,gBAAiB,CAC9B,CACI,oBAAA4D,CAAqBpV,GACjB,MAAMpO,EAAM0H,KAAK0c,MAAMhW,GAAS,CAACvQ,EAAKV,KAClC,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAIA,EAAMoB,OAASsC,KAAKof,WACpB,OAAO9iB,EAEX,IAAKA,EAAMknB,WAAWxjB,KAAKqf,qBACvB,OAAO/iB,EAEX,GAAIA,EAAMif,UAAU,EAAGvb,KAAKmf,iBAAmBnf,KAAKkf,WAChD,OAAO5iB,EAEX,IACI,MAAMmnB,EAAeC,SAASpnB,EAAMif,UAAUvb,KAAKmf,cAAe7iB,EAAMoB,QAAS,IACjF,OAAIimB,MAAMF,GACCnnB,EAEJ,IAAIE,KAAKinB,EAChC,CACY,MAAOG,GACH,OAAOtnB,CACvB,KAEQ,MAAO,CACH6C,MACA0jB,QAAS1jB,EAAI/C,KAEzB,CACI,mBAAAklB,CAAoB/T,GAChB,MAAMsW,EAAYrnB,KAAKkO,UAAUpD,OACjC,IACI,MAAM4X,EAAalf,KAAKkf,WACxB1iB,KAAKkO,UAAUpD,OAAS,WACpB,OAAO4X,EAAalf,KAAKlC,SAC5B,EAED,OADe+I,KAAKC,UAAUyG,EAE1C,CACgB,QACJ/Q,KAAKkO,UAAUpD,OAASuc,CACpC,CACA,CACI,oBAAAjB,CAAqBrV,GACjB,IAAKA,EAAQnR,KACT,MAAM,IAAIyD,MAAM,oCAEpB,MAAO,CACHV,IAAKoO,EACLsV,QAAStV,EAAQnR,KAE7B,CACI,mBAAAglB,CAAoB7T,GAChB,OAAOA,CACf,CACI,eAAMqU,CAAUpa,EAAQqB,GACpB7I,KAAKmN,OAAO2D,KAAK,iBACjB9Q,KAAK8f,YAActY,EACdxH,KAAK8f,cACN9f,KAAK8f,YAAc,CAAEgE,SAAU,GAAIC,SAAU,KAEjD/jB,KAAKwf,gBAAiB,EACtB,MAAMwE,QAAuBhkB,KAAKikB,gBAAgBzc,EAAQqB,GACpDqb,EAAW,CACb9nB,KAAM,QACNkW,SAAUtS,KAAKkN,SAASoF,SACxB0R,kBAEAxc,EAAO2c,YACPD,EAAS9G,WAAa5V,EAAO2c,WAEjCnkB,KAAK2f,aAAexD,EAAc,SAAUnc,KAAMA,KAAKmN,OAAO6S,UAAU,iBAAkB,CACtF,UACA,QACA,2BAEJ,MAAMoE,EAAc,CAAEzG,YAAY,GAC9B3d,KAAK4f,eACLwE,EAAYhT,cAAgBpR,KAAKkN,SAASoE,kBAC1C8S,EAAYC,WAAarkB,KAAKkN,SAASqE,mBAE3C,IACI,MAAM+S,QAAmBtkB,KAAKukB,gBAAgBvkB,KAAK2f,aAAcuE,EAAUE,EAAa5c,GAWxF,OAVAxH,KAAK4f,cAAe,EACpB5f,KAAKmN,OAAO2D,KAAK,gCAAkCwT,EAAWlb,SAC9DpJ,KAAKqJ,OAASib,EAAWlb,QACzBpJ,KAAKme,iBAAmBmG,EAAWE,kBACnCxkB,KAAKoe,iBAAmBkG,EAAWG,kBAC/BH,EAAWvgB,UACX/D,KAAKke,MAAQoG,EAAWvgB,QAAQ2gB,aAChC1kB,KAAK8Q,KAAOwT,EAAWvgB,QAAQ+M,MAEnC9Q,KAAKiiB,aAAY,GACVqC,EAAWE,iBAC9B,CACQ,MAAOzY,GAEH,MADA/L,KAAKmN,OAAO7B,MAAM,kCAAoCS,EAAIwB,SAAWxB,EAAI5M,KAAO4M,EAAI8F,QAAU9F,GAAMA,GAC9FA,CAClB,CACgB,QACAvE,GAAQmd,cAAgBnd,EAAO2c,WAC/B3c,EAAOmd,aAAand,EAAO2c,UAAW,KAEtD,CACA,CACI,qBAAMI,CAAgB5E,EAAcuE,EAAUE,EAAa5c,GACvD,IAAI8c,EACJ,OAAa,CACT,MAAMnlB,QAAYwgB,EAAazX,KAAKgc,OAAU/f,EAAWigB,GACzD,GAAiB,2BAAbjlB,EAAI/C,KAUH,IAAiB,YAAb+C,EAAI/C,KAAoB,CAC7BkoB,EAAanlB,EACb,KAChB,CACiB,KAAiB,UAAbA,EAAI/C,KACH,IAAIyD,MAAM,0BAA4BV,EAAI0S,QAG1C,IAAIhS,MAAM,kDAAoDV,EAAI/C,KACxF,CAnBuD,CACvC,MAAM8hB,EAAQ0G,OAAOzJ,KAAKhc,EAAI6kB,eAAe9F,MAAO,UAChD1W,EAAOmd,cAAgBnd,EAAO2c,YAC9BD,EAASF,eAAe9F,aACb1W,EAAOmd,aAAand,EAAO2c,UAAWjG,IACxC1P,KACAxQ,SAAS,WAEtBkmB,EAAS9G,WAAa5V,EAAO2c,SAC7C,CAWA,CACQ,OAAOG,CACf,CACI,qBAAML,CAAgBzc,EAAQqB,GAC1B,MAAMmb,EAAiB,CAAE,EAEzB,GADAhkB,KAAKqe,aAAe7W,EAAO6W,aACvB7W,EAAO6W,aAAc,CACrB,GAAIxV,EACA,IACIrB,EAAO6W,mBAAqBre,KAAK6kB,eACrD,CACgB,MAAOngB,GACH1E,KAAKmN,OAAOiL,KAAK,4CAA4C1T,GAAG6I,SAAW7I,IAC/F,CAEYsf,EAAec,OAAS,gBACxBd,EAAe9F,MAAQ1W,EAAO6W,aAC9Bre,KAAKqe,aAAe7W,EAAO6W,YACvC,MACa,GAAwB,SAApB7W,EAAOud,SAAqB,CAGjC,GAFAf,EAAegB,SAAW,MAC1BhB,EAAec,OAAS,gBACpBtd,EAAOmd,eAAgBnd,EAAO2c,UAO9B,MAAM,IAAItkB,MAAM,uBANhBmkB,EAAe9F,aACJ1W,EAAOmd,aAAand,EAAO2c,UAAW,OACxC3V,KACAxQ,SAAS,SAKlC,MACa,GAAIwJ,EAAO0W,MACZ8F,EAAec,OAAS,eACxBd,EAAe9F,MAAQ1W,EAAO0W,WAE7B,GAAI1W,EAAOsc,SACZE,EAAec,OAAS,SACxBd,EAAevC,MAAQja,EAAOsc,SAC9BE,EAAeiB,OAASzd,EAAOuc,aAE9B,KAAIvc,EAAOwd,SAKZ,MAAM,IAAInlB,MAAM,uBAAyBgH,KAAKC,UAAUU,IAJxDwc,EAAegB,SAAWxd,EAAOwd,SACjChB,EAAekB,gBAAkB1d,EAAO0d,eAIpD,CACQ,OAAOlB,CACf,CACI,gBAAMjC,GACF/hB,KAAKmN,OAAOsE,MAAM,kBAClBzR,KAAKwf,gBAAiB,EAClBxf,KAAKyf,WACLtL,aAAanU,KAAKyf,WAEtB,MAAM0F,EAAWnlB,KAAK0f,SAAStY,KAAKM,IAChCA,EAAQoW,OAAO,UAEbhY,QAAQsf,IAAID,EAC1B,CACI,aAAAN,GACI,GAAsB,oBAAXzf,OAAwB,CAC/B,MAAMO,EAAWP,OAAOO,SACxB,GAAIA,EACA,OAAOA,EAAS0f,YAEhC,CACQ,OAAOvf,QAAQ8H,OAAO,IAAI/N,MAAM,qBACxC,CACI,IAAA2gB,GACSxgB,KAAKwf,iBAGNxf,KAAKuf,aACLvf,KAAKkI,KAAK,CAAE9L,KAAM,SAEtB4D,KAAKyf,UAAYnZ,YAAW,KACxBtG,KAAKwgB,MAAM,GACZ,KACX,EAGA,MAAM8E,EAAQ,CAAC,QAAS,QAAS,OAAQ,OAAQ,QAAS,OAC1D,IAAAC,EAAA,MAAMC,EACFloB,KACAqC,OACAoP,eACAA,yBAA2B,oBAC3BA,gBACAvR,KACAioB,WAAa,GACbC,cACAC,cACAC,eACAC,oBACAC,MAAQza,QACR0a,aAAc,EACd,WAAAxpB,CAAYe,EAAMqC,EAAQmmB,GACtB9lB,KAAK1C,KAAOA,EACZ0C,KAAKL,OAASA,EACdK,KAAK1C,KAAOA,EAER0C,KAAKxC,KADLmC,EACY,GAAGA,EAAOnC,QAAQF,IAGlBA,EAEhB0C,KAAK4lB,eAAiB,IAAI5lB,KAAKxC,QAC/BwC,KAAK6lB,qBAAuBC,EACxBA,IACA9lB,KAAK8lB,MAAQA,EACb9lB,KAAK+lB,aAAc,EAE/B,CACI,SAAA/F,CAAU1iB,GACN,MAAM0oB,EAAchmB,KAAKylB,WAAWpjB,QAAQ2d,GACjCA,EAAU1iB,OAASA,IAC3B,GACH,QAAoB6G,IAAhB6hB,EACA,OAAOA,EAEXppB,OAAOC,KAAKmD,MAAMZ,SAASpC,IACvB,GAAIA,IAAQM,EACR,MAAM,IAAIuC,MAAM,uCAChC,IAEQ,MAAMuT,EAAM,IAAIoS,EAAOloB,EAAM0C,KAAMA,KAAK+lB,YAAc/lB,KAAK8lB,WAAQ3hB,GAEnE,OADAnE,KAAKylB,WAAWvlB,KAAKkT,GACdA,CACf,CACI,YAAA6S,CAAaC,GAIT,OAHIA,IACAlmB,KAAK2lB,cAAgBO,GAElBlmB,KAAK2lB,eAAiB3lB,KAAKL,QAAQsmB,cAClD,CACI,YAAAE,CAAaD,GAIT,OAHIA,IACAlmB,KAAK0lB,cAAgBQ,GAElBlmB,KAAK0lB,eAAiB1lB,KAAKL,QAAQwmB,cAClD,CACI,GAAA5D,CAAIhV,EAAS2Y,EAAO5a,GAChBtL,KAAKomB,eAAeF,GAAS,OAAQ3Y,EAASjC,EACtD,CACI,KAAAoV,CAAMnT,GACFvN,KAAKuiB,IAAIhV,EAAS,QAC1B,CACI,KAAAkE,CAAMlE,GACFvN,KAAKuiB,IAAIhV,EAAS,QAC1B,CACI,IAAAuD,CAAKvD,GACDvN,KAAKuiB,IAAIhV,EAAS,OAC1B,CACI,IAAA6K,CAAK7K,GACDvN,KAAKuiB,IAAIhV,EAAS,OAC1B,CACI,KAAAjC,CAAMiC,EAASxB,GACX/L,KAAKuiB,IAAIhV,EAAS,QAASxB,EACnC,CACI,UAAAoU,CAAW+F,EAAOG,GAGd,OAFiBf,EAAM/R,QAAQ2S,IACRZ,EAAM/R,QAAQ8S,GAAermB,KAAKmmB,gBAAkB,QAEnF,CACI,cAAAC,CAAeF,EAAO3Y,EAASjC,GAC3B,MAAMgb,EAAatmB,KAAK4lB,eACxB,GAAc,UAAVM,IAAsB5a,EAAO,CAC7B,MAAM5G,EAAI,IAAI7E,MACV6E,EAAE0G,QACFmC,EACIA,EACI,KACA7I,EAAE0G,MACGmb,MAAM,MACNhnB,MAAM,GACN9B,KAAK,MAElC,CACQ,GAAIuC,KAAKmgB,WAAW+F,EAAOlmB,KAAKimB,gBAAiB,CAC7C,MAAMO,EAAUhB,EAAOiB,QACvB,GAAID,EACA,IACI,GAAIA,EAAQE,QAAQ,CAAEppB,KAAMkoB,EAAOmB,oBAAqBjpB,OAAS,EAAG,CAChE,MAAMkpB,EAAO,CACTznB,IAAKoO,EACLJ,OAAQmZ,EACRJ,SAEA5a,GAASA,aAAiBzL,QAC1B+mB,EAAKtb,MAAQ,CACTiC,QAASjC,EAAMiC,QACfnC,MAAOE,EAAMF,OAAS,KAG9Bob,EAAQK,OAAOrB,EAAOmB,kBAAmBC,EACjE,CACA,CACgB,MAChB,CAEA,CACQ,GAAI5mB,KAAKmgB,WAAW+F,GAAQ,CACxB,IAAIY,EAAS,GACb,GAAI9mB,KAAK6lB,oBAAqB,CAC1B,MAAMkB,EAAO,IAAIvqB,KAEjBsqB,EAAS,IADI,GAAGC,EAAKC,cAAcD,EAAKE,gBAAgBF,EAAKG,gBAAgBH,EAAKI,yBAC3DjB,KACvC,CACY,MAAMkB,EAAU,GAAGN,IAASR,MAAe/Y,IAC3C,OAAQ2Y,GACJ,IAAK,QACDlmB,KAAK8lB,MAAMrU,MAAM2V,GACjB,MACJ,IAAK,QACGpnB,KAAK8lB,MAAMrU,MACXzR,KAAK8lB,MAAMrU,MAAM2V,GAGjBpnB,KAAK8lB,MAAMvD,IAAI6E,GAEnB,MACJ,IAAK,OACDpnB,KAAK8lB,MAAMhV,KAAKsW,GAChB,MACJ,IAAK,OACDpnB,KAAK8lB,MAAM1N,KAAKgP,GAChB,MACJ,IAAK,QACDpnB,KAAK8lB,MAAMxa,MAAM8b,EAAS9b,GAG9C,CACA,GAGA,MAAM+b,EAA4B,iBAC5BC,EAA8B,UAC9BC,EAAgC,YAChCC,EAA6B,kBAC7BC,EAA2B,gBAC3BC,EAA+B,oBAC/BC,EAAgC,qBAChCC,EAAiC,sBACjCC,EAA6B,kBAC7BC,GAA+B,oBAC/BC,GAA4B,iBAC5BC,GAA6B,kBAC7BC,GAA6B,SAE7BC,GAA2B,CAC7B,QAAI5qB,GACA,MAAO,SACV,EACD,SAAI4V,GACA,MAAO,CACHmU,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GACAC,GACAC,GACAC,GAEZ,GAGA,IAAIE,GAAU,iBA+Ld,MAAMC,GACF9qB,KACA+qB,UACAhrB,QACAirB,YACAC,eACAC,gBAAkB,CAAE,EACpBC,WACAC,yBACAC,oBACA,WAAApsB,CAAY8rB,EAAW/qB,EAAMgrB,EAAaG,GACtCzoB,KAAKqoB,UAAYA,EACjBroB,KAAK1C,KAAOA,EACZ0C,KAAKsoB,YAAcA,EACnBtoB,KAAKyoB,WAAaA,EAClBzoB,KAAK3C,QAAU,CAAE,CACzB,CACI,YAAAurB,GACI,OAAOhsB,OAAOC,KAAKmD,KAAKwoB,iBAAiB9qB,OAAS,CAC1D,CACI,QAAAwF,GACI,OAAIlD,KAAKsoB,aAAetoB,KAAK4oB,eAClB,EAEP5oB,KAAKsoB,YACE,EAEPtoB,KAAK4oB,eACE,EAEJ,CACf,EAGA,IAAIC,GAAmB,CAACC,QAAS,KAYhC,SAAUC,EAAQD,GAElB,IAGIE,EAAiB,4BAGjBC,EAAmB,iBAGnBC,EAAU,qBAEVC,EAAU,mBACVC,EAAU,gBAEVC,EAAU,oBACVC,EAAS,6BACTC,EAAS,eACTC,EAAY,kBACZC,EAAY,kBACZC,EAAa,mBACbC,EAAY,kBACZC,EAAS,eACTC,EAAY,kBACZC,EAAY,kBACZC,EAAa,mBAEbC,EAAiB,uBACjBC,EAAc,oBACdC,EAAa,wBACbC,EAAa,wBACbC,EAAU,qBACVC,EAAW,sBACXC,EAAW,sBACXC,EAAW,sBACXC,EAAkB,6BAClBC,EAAY,uBACZC,EAAY,uBASZC,EAAU,OAGVC,EAAe,8BAGfC,EAAW,mBAGXC,EAAgB,CAAE,EACtBA,EAAc5B,GAAW4B,EA7CV,kBA8CfA,EAAcd,GAAkBc,EAAcb,GAC9Ca,EAAc3B,GAAW2B,EAAc1B,GACvC0B,EAAcZ,GAAcY,EAAcX,GAC1CW,EAAcV,GAAWU,EAAcT,GACvCS,EAAcR,GAAYQ,EAAcvB,GACxCuB,EAActB,GAAasB,EAAcrB,GACzCqB,EAAcnB,GAAamB,EAAclB,GACzCkB,EAAcjB,GAAaiB,EAAchB,GACzCgB,EAAcP,GAAYO,EAAcN,GACxCM,EAAcL,GAAaK,EAAcJ,IAAa,EACtDI,EArDe,kBAqDWA,EAAczB,GACxCyB,EAAcf,IAAc,EAG5B,IAAIgB,EAAsC,iBAAlB5gB,GAA8BA,GAAkBA,EAAevN,SAAWA,QAAUuN,EAGxG6gB,EAA0B,iBAAR1gB,MAAoBA,MAAQA,KAAK1N,SAAWA,QAAU0N,KAGxE3L,EAAOosB,GAAcC,GAAYC,SAAS,cAATA,GAGjCC,EAAcpC,IAAYA,EAAQqC,UAAYrC,EAG9CsC,EAAaF,GAAuCnC,IAAWA,EAAOoC,UAAYpC,EAGlFsC,EAAgBD,GAAcA,EAAWtC,UAAYoC,EAUzD,SAASI,EAAYlkB,EAAKmkB,GAGxB,OADAnkB,EAAIokB,IAAID,EAAK,GAAIA,EAAK,IACfnkB,CACV,CAUC,SAASqkB,EAAYD,EAAKlvB,GAGxB,OADAkvB,EAAIjgB,IAAIjP,GACDkvB,CACV,CAsDC,SAASE,EAAYC,EAAOC,EAAUC,EAAaC,GAGjD,IAFA,IAAI3f,GAAU,EACVzO,EAASiuB,EAAQA,EAAMjuB,OAAS,IAC3ByO,EAAQzO,GACfmuB,EAAcD,EAASC,EAAaF,EAAMxf,GAAQA,EAAOwf,GAE3D,OAAOE,CACV,CAwCC,SAASE,EAAazvB,GAGpB,IAAIsH,GAAS,EACb,GAAa,MAATtH,GAA0C,mBAAlBA,EAAM0B,SAChC,IACE4F,KAAYtH,EAAQ,GACrB,CAAC,MAAOoI,GAAG,CAEd,OAAOd,CACV,CASC,SAASooB,EAAW5kB,GAClB,IAAI+E,GAAU,EACVvI,EAAStF,MAAM8I,EAAIuM,MAKvB,OAHAvM,EAAIhI,SAAQ,SAAS9C,EAAOU,GAC1B4G,IAASuI,GAAS,CAACnP,EAAKV,EAC7B,IACUsH,CACV,CAUC,SAASqoB,EAAQC,EAAMC,GACrB,OAAO,SAASC,GACd,OAAOF,EAAKC,EAAUC,GACvB,CACJ,CASC,SAASC,EAAWb,GAClB,IAAIrf,GAAU,EACVvI,EAAStF,MAAMktB,EAAI7X,MAKvB,OAHA6X,EAAIpsB,SAAQ,SAAS9C,GACnBsH,IAASuI,GAAS7P,CACvB,IACUsH,CACV,CAGC,IASM0oB,EATFC,EAAajuB,MAAMoM,UACnB8hB,EAAYvB,SAASvgB,UACrB+hB,EAAc7vB,OAAO8N,UAGrBgiB,EAAa/tB,EAAK,sBAGlBguB,GACEL,EAAM,SAASM,KAAKF,GAAcA,EAAW7vB,MAAQ6vB,EAAW7vB,KAAKgwB,UAAY,KACvE,iBAAmBP,EAAO,GAItCQ,EAAeN,EAAUxuB,SAGzB2M,GAAiB8hB,EAAY9hB,eAO7BoiB,GAAiBN,EAAYzuB,SAG7BgvB,GAAaC,OAAO,IACtBH,EAAaliB,KAAKD,IAAgBuiB,QArQjB,sBAqQuC,QACvDA,QAAQ,yDAA0D,SAAW,KAI5EtI,GAASyG,EAAgB1sB,EAAKimB,YAASzgB,EACvCgpB,GAASxuB,EAAKwuB,OACdC,GAAazuB,EAAKyuB,WAClBC,GAAepB,EAAQrvB,OAAO0wB,eAAgB1wB,QAC9C2wB,GAAe3wB,OAAO4wB,OACtBC,GAAuBhB,EAAYgB,qBACnCC,GAASnB,EAAWmB,OAGpBC,GAAmB/wB,OAAOgxB,sBAC1BC,GAAiBjJ,GAASA,GAAOkJ,cAAW3pB,EAC5C4pB,GAAa9B,EAAQrvB,OAAOC,KAAMD,QAGlCoxB,GAAWC,GAAUtvB,EAAM,YAC3BuvB,GAAMD,GAAUtvB,EAAM,OACtBmH,GAAUmoB,GAAUtvB,EAAM,WAC1Bsc,GAAMgT,GAAUtvB,EAAM,OACtBwvB,GAAUF,GAAUtvB,EAAM,WAC1ByvB,GAAeH,GAAUrxB,OAAQ,UAGjCyxB,GAAqBC,GAASN,IAC9BO,GAAgBD,GAASJ,IACzBM,GAAoBF,GAASxoB,IAC7B2oB,GAAgBH,GAASrT,IACzByT,GAAoBJ,GAASH,IAG7BQ,GAAcxB,GAASA,GAAOziB,eAAYvG,EAC1CyqB,GAAgBD,GAAcA,GAAYE,aAAU1qB,EASxD,SAAS2qB,GAAKC,GACZ,IAAI5iB,GAAU,EACVzO,EAASqxB,EAAUA,EAAQrxB,OAAS,EAGxC,IADAsC,KAAKyM,UACIN,EAAQzO,GAAQ,CACvB,IAAI2f,EAAQ0R,EAAQ5iB,GACpBnM,KAAKwrB,IAAInO,EAAM,GAAIA,EAAM,GAC9B,CACA,CAyFC,SAAS2R,GAAUD,GACjB,IAAI5iB,GAAU,EACVzO,EAASqxB,EAAUA,EAAQrxB,OAAS,EAGxC,IADAsC,KAAKyM,UACIN,EAAQzO,GAAQ,CACvB,IAAI2f,EAAQ0R,EAAQ5iB,GACpBnM,KAAKwrB,IAAInO,EAAM,GAAIA,EAAM,GAC9B,CACA,CAuGC,SAAS4R,GAASF,GAChB,IAAI5iB,GAAU,EACVzO,EAASqxB,EAAUA,EAAQrxB,OAAS,EAGxC,IADAsC,KAAKyM,UACIN,EAAQzO,GAAQ,CACvB,IAAI2f,EAAQ0R,EAAQ5iB,GACpBnM,KAAKwrB,IAAInO,EAAM,GAAIA,EAAM,GAC9B,CACA,CAqFC,SAAS6R,GAAMH,GACb/uB,KAAKmvB,SAAW,IAAIH,GAAUD,EACjC,CA2FC,SAASK,GAAc9yB,EAAO+yB,GAG5B,IAAIzrB,EAAUrF,GAAQjC,IAorBxB,SAAqBA,GAEnB,OAmFF,SAA2BA,GACzB,OAmIF,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,CAC5B,CArIUgzB,CAAahzB,IAAUizB,GAAYjzB,EAC7C,CArFUkzB,CAAkBlzB,IAAUqO,GAAeC,KAAKtO,EAAO,aAC1DmxB,GAAqB7iB,KAAKtO,EAAO,WAAaywB,GAAeniB,KAAKtO,IAAU4sB,EACnF,CAxrBmCuG,CAAYnzB,GAljB9C,SAAmBozB,EAAG9D,GAIpB,IAHA,IAAIzf,GAAU,EACVvI,EAAStF,MAAMoxB,KAEVvjB,EAAQujB,GACf9rB,EAAOuI,GAASyf,EAASzf,GAE3B,OAAOvI,CACV,CA2iBO+rB,CAAUrzB,EAAMoB,OAAQkyB,QACxB,GAEAlyB,EAASkG,EAAOlG,OAChBmyB,IAAgBnyB,EAEpB,IAAK,IAAIV,KAAOV,GACTqO,GAAeC,KAAKtO,EAAOU,IAC1B6yB,IAAuB,UAAP7yB,GAAmB8yB,GAAQ9yB,EAAKU,KACpDkG,EAAO1D,KAAKlD,GAGhB,OAAO4G,CACV,CAYC,SAASmsB,GAAYC,EAAQhzB,EAAKV,GAChC,IAAI2zB,EAAWD,EAAOhzB,GAChB2N,GAAeC,KAAKolB,EAAQhzB,IAAQkzB,GAAGD,EAAU3zB,UACxC6H,IAAV7H,GAAyBU,KAAOgzB,KACnCA,EAAOhzB,GAAOV,EAEnB,CAUC,SAAS6zB,GAAaxE,EAAO3uB,GAE3B,IADA,IAAIU,EAASiuB,EAAMjuB,OACZA,KACL,GAAIwyB,GAAGvE,EAAMjuB,GAAQ,GAAIV,GACvB,OAAOU,EAGX,OAAS,CACZ,CA6BC,SAAS0yB,GAAU9zB,EAAO+zB,EAAQC,EAAQC,EAAYvzB,EAAKgzB,EAAQ5kB,GACjE,IAAIxH,EAIJ,GAHI2sB,IACF3sB,EAASosB,EAASO,EAAWj0B,EAAOU,EAAKgzB,EAAQ5kB,GAASmlB,EAAWj0B,SAExD6H,IAAXP,EACF,OAAOA,EAET,IAAK4sB,GAASl0B,GACZ,OAAOA,EAET,IAAIm0B,EAAQlyB,GAAQjC,GACpB,GAAIm0B,GAEF,GADA7sB,EAyXJ,SAAwB+nB,GACtB,IAAIjuB,EAASiuB,EAAMjuB,OACfkG,EAAS+nB,EAAMpvB,YAAYmB,GAG3BA,GAA6B,iBAAZiuB,EAAM,IAAkBhhB,GAAeC,KAAK+gB,EAAO,WACtE/nB,EAAOuI,MAAQwf,EAAMxf,MACrBvI,EAAO8sB,MAAQ/E,EAAM+E,OAEvB,OAAO9sB,CACV,CAnYc+sB,CAAer0B,IACnB+zB,EACH,OA6ON,SAAmBlX,EAAQwS,GACzB,IAAIxf,GAAU,EACVzO,EAASyb,EAAOzb,OAEpBiuB,IAAUA,EAAQrtB,MAAMZ,IACxB,OAASyO,EAAQzO,GACfiuB,EAAMxf,GAASgN,EAAOhN,GAExB,OAAOwf,CACV,CAtPciF,CAAUt0B,EAAOsH,OAErB,CACL,IAAI4Z,EAAMqT,GAAOv0B,GACbw0B,EAAStT,GAAO6L,GAAW7L,GAAO8L,EAEtC,GAAIwE,GAASxxB,GACX,OA0HN,SAAqBy0B,EAAQV,GAC3B,GAAIA,EACF,OAAOU,EAAOxxB,QAEhB,IAAIqE,EAAS,IAAImtB,EAAOx0B,YAAYw0B,EAAOrzB,QAE3C,OADAqzB,EAAOC,KAAKptB,GACLA,CACV,CAjIcqtB,CAAY30B,EAAO+zB,GAE5B,GAAI7S,GAAOiM,GAAajM,GAAO0L,GAAY4H,IAAWd,EAAS,CAC7D,GAAIjE,EAAazvB,GACf,OAAO0zB,EAAS1zB,EAAQ,CAAE,EAG5B,GADAsH,EA6XN,SAAyBosB,GACvB,MAAqC,mBAAtBA,EAAOzzB,aAA8B20B,GAAYlB,GAE5D,CAAE,GAvVYmB,EAsVH9D,GAAa2C,GArVrBQ,GAASW,GAAS5D,GAAa4D,GAAS,CAAE,GADnD,IAAoBA,CAwVrB,CAjYgBC,CAAgBN,EAAS,CAAA,EAAKx0B,IAClC+zB,EACH,OA2QR,SAAqBlX,EAAQ6W,GAC3B,OAAOqB,GAAWlY,EAAQmY,GAAWnY,GAAS6W,EACjD,CA7QgBuB,CAAYj1B,EAhD3B,SAAoB0zB,EAAQ7W,GAC1B,OAAO6W,GAAUqB,GAAWlY,EAAQtc,GAAKsc,GAAS6W,EACrD,CA8CmCwB,CAAW5tB,EAAQtH,GAEtD,KAAY,CACL,IAAKwuB,EAActN,GACjB,OAAOwS,EAAS1zB,EAAQ,CAAE,EAE5BsH,EAwYN,SAAwBosB,EAAQxS,EAAKiU,EAAWpB,GAC9C,IAAIqB,EAAO1B,EAAOzzB,YAClB,OAAQihB,GACN,KAAKwM,EACH,OAAO2H,GAAiB3B,GAE1B,KAAK7G,EACL,KAAKC,EACH,OAAO,IAAIsI,GAAM1B,GAEnB,KAAK/F,EACH,OAzQN,SAAuB2H,EAAUvB,GAC/B,IAAIU,EAASV,EAASsB,GAAiBC,EAASb,QAAUa,EAASb,OACnE,OAAO,IAAIa,EAASr1B,YAAYw0B,EAAQa,EAASC,WAAYD,EAASE,WACzE,CAsQcC,CAAc/B,EAAQK,GAE/B,KAAKnG,EAAY,KAAKC,EACtB,KAAKC,EAAS,KAAKC,EAAU,KAAKC,EAClC,KAAKC,EAAU,KAAKC,EAAiB,KAAKC,EAAW,KAAKC,EACxD,OA7MN,SAAyBsH,EAAY3B,GACnC,IAAIU,EAASV,EAASsB,GAAiBK,EAAWjB,QAAUiB,EAAWjB,OACvE,OAAO,IAAIiB,EAAWz1B,YAAYw0B,EAAQiB,EAAWH,WAAYG,EAAWt0B,OAC/E,CA0Mcu0B,CAAgBjC,EAAQK,GAEjC,KAAK9G,EACH,OAnQN,SAAkBniB,EAAKipB,EAAQoB,GAC7B,IAAI9F,EAAQ0E,EAASoB,EAAUzF,EAAW5kB,IAAM,GAAQ4kB,EAAW5kB,GACnE,OAAOskB,EAAYC,EAAOL,EAAa,IAAIlkB,EAAI7K,YAClD,CAgQc21B,CAASlC,EAAQK,EAAQoB,GAElC,KAAKjI,EACL,KAAKK,EACH,OAAO,IAAI6H,EAAK1B,GAElB,KAAKrG,EACH,OA9PN,SAAqBwI,GACnB,IAAIvuB,EAAS,IAAIuuB,EAAO51B,YAAY41B,EAAOhZ,OAAQwR,EAAQiC,KAAKuF,IAEhE,OADAvuB,EAAOwuB,UAAYD,EAAOC,UACnBxuB,CACV,CA0PcyuB,CAAYrC,GAErB,KAAKpG,EACH,OAlPN,SAAkB4B,EAAK6E,EAAQoB,GAC7B,IAAI9F,EAAQ0E,EAASoB,EAAUpF,EAAWb,IAAM,GAAQa,EAAWb,GACnE,OAAOE,EAAYC,EAAOF,EAAa,IAAID,EAAIjvB,YAClD,CA+Oc+1B,CAAStC,EAAQK,EAAQoB,GAElC,KAAK3H,EACH,OAzOeyI,EAyOIvC,EAxOhBpB,GAAgBhyB,OAAOgyB,GAAchkB,KAAK2nB,IAAW,CAAE,EADhE,IAAqBA,CA2OtB,CA1agBC,CAAel2B,EAAOkhB,EAAK4S,GAAWC,EACtD,CACA,CAEGjlB,IAAUA,EAAQ,IAAI8jB,IACtB,IAAIuD,EAAUrnB,EAAMsnB,IAAIp2B,GACxB,GAAIm2B,EACF,OAAOA,EAIT,GAFArnB,EAAMogB,IAAIlvB,EAAOsH,IAEZ6sB,EACH,IAAIkC,EAAQrC,EAoQhB,SAAoBN,GAClB,OAjOF,SAAwBA,EAAQ4C,EAAUC,GACxC,IAAIjvB,EAASgvB,EAAS5C,GACtB,OAAOzxB,GAAQyxB,GAAUpsB,EAhwB3B,SAAmB+nB,EAAOhvB,GAKxB,IAJA,IAAIwP,GAAU,EACVzO,EAASf,EAAOe,OAChBo1B,EAASnH,EAAMjuB,SAEVyO,EAAQzO,GACfiuB,EAAMmH,EAAS3mB,GAASxP,EAAOwP,GAEjC,OAAOwf,CACV,CAuvBqCoH,CAAUnvB,EAAQivB,EAAY7C,GACnE,CA8NUgD,CAAehD,EAAQnzB,GAAMy0B,GACvC,CAtQ0B2B,CAAW32B,GAASO,GAAKP,GAUhD,OAxvBF,SAAmBqvB,EAAOC,GAIxB,IAHA,IAAIzf,GAAU,EACVzO,EAASiuB,EAAQA,EAAMjuB,OAAS,IAE3ByO,EAAQzO,IAC8B,IAAzCkuB,EAASD,EAAMxf,GAAQA,EAAOwf,KAKvC,CAsuBGuH,CAAUP,GAASr2B,GAAO,SAAS62B,EAAUn2B,GACvC21B,IAEFQ,EAAW72B,EADXU,EAAMm2B,IAIRpD,GAAYnsB,EAAQ5G,EAAKozB,GAAU+C,EAAU9C,EAAQC,EAAQC,EAAYvzB,EAAKV,EAAO8O,GAC1F,IACUxH,CACV,CAiDC,SAASwvB,GAAa92B,GACpB,SAAKk0B,GAASl0B,KAuYE4vB,EAvYiB5vB,EAwYxBqwB,GAAeA,KAAcT,MArYvBmH,GAAW/2B,IAAUyvB,EAAazvB,GAAU0wB,GAAapC,GACzD0I,KAAKhF,GAAShyB,IAmY/B,IAAkB4vB,CAlYnB,CA8CC,SAASyF,GAAiB4B,GACxB,IAAI3vB,EAAS,IAAI2vB,EAAYh3B,YAAYg3B,EAAYzB,YAErD,OADA,IAAI1E,GAAWxpB,GAAQ4nB,IAAI,IAAI4B,GAAWmG,IACnC3vB,CACV,CA6GC,SAASytB,GAAWlY,EAAQwZ,EAAO3C,EAAQO,GACzCP,IAAWA,EAAS,IAKpB,IAHA,IAAI7jB,GAAU,EACVzO,EAASi1B,EAAMj1B,SAEVyO,EAAQzO,GAAQ,CACvB,IAAIV,EAAM21B,EAAMxmB,GAIhB4jB,GAAYC,EAAQhzB,EAA8Bmc,EAAOnc,GAC9D,CACG,OAAOgzB,CACV,CAiCC,SAASwD,GAAWpsB,EAAKpK,GACvB,IAqKiBV,EACbF,EAtKAoS,EAAOpH,EAAI+nB,SACf,OAsKgB,WADZ/yB,SADaE,EApKAU,KAsKmB,UAARZ,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVE,EACU,OAAVA,GAvKDkS,EAAmB,iBAAPxR,EAAkB,SAAW,QACzCwR,EAAKpH,GACZ,CAUC,SAAS6mB,GAAU+B,EAAQhzB,GACzB,IAAIV,EA/7BN,SAAkB0zB,EAAQhzB,GACxB,OAAiB,MAAVgzB,OAAiB7rB,EAAY6rB,EAAOhzB,EAC9C,CA67Bey2B,CAASzD,EAAQhzB,GAC7B,OAAOo2B,GAAa92B,GAASA,OAAQ6H,CACxC,CA5tBC2qB,GAAKpkB,UAAU+B,MAnEf,WACEzM,KAAKmvB,SAAWf,GAAeA,GAAa,MAAQ,CAAE,CACzD,EAkECU,GAAKpkB,UAAkB,OAtDvB,SAAoB1N,GAClB,OAAOgD,KAAKiS,IAAIjV,WAAegD,KAAKmvB,SAASnyB,EAChD,EAqDC8xB,GAAKpkB,UAAUgoB,IA1Cf,SAAiB11B,GACf,IAAIwR,EAAOxO,KAAKmvB,SAChB,GAAIf,GAAc,CAChB,IAAIxqB,EAAS4K,EAAKxR,GAClB,OAAO4G,IAAWolB,OAAiB7kB,EAAYP,CACpD,CACG,OAAO+G,GAAeC,KAAK4D,EAAMxR,GAAOwR,EAAKxR,QAAOmH,CACvD,EAoCC2qB,GAAKpkB,UAAUuH,IAzBf,SAAiBjV,GACf,IAAIwR,EAAOxO,KAAKmvB,SAChB,OAAOf,QAA6BjqB,IAAdqK,EAAKxR,GAAqB2N,GAAeC,KAAK4D,EAAMxR,EAC7E,EAuBC8xB,GAAKpkB,UAAU8gB,IAXf,SAAiBxuB,EAAKV,GAGpB,OAFW0D,KAAKmvB,SACXnyB,GAAQoxB,SAA0BjqB,IAAV7H,EAAuB0sB,EAAiB1sB,EAC9D0D,IACV,EAmHCgvB,GAAUtkB,UAAU+B,MAjFpB,WACEzM,KAAKmvB,SAAW,EACnB,EAgFCH,GAAUtkB,UAAkB,OArE5B,SAAyB1N,GACvB,IAAIwR,EAAOxO,KAAKmvB,SACZhjB,EAAQgkB,GAAa3hB,EAAMxR,GAE/B,QAAImP,EAAQ,KAIRA,GADYqC,EAAK9Q,OAAS,EAE5B8Q,EAAKklB,MAELhG,GAAO9iB,KAAK4D,EAAMrC,EAAO,IAEpB,EACV,EAwDC6iB,GAAUtkB,UAAUgoB,IA7CpB,SAAsB11B,GACpB,IAAIwR,EAAOxO,KAAKmvB,SACZhjB,EAAQgkB,GAAa3hB,EAAMxR,GAE/B,OAAOmP,EAAQ,OAAIhI,EAAYqK,EAAKrC,GAAO,EAC9C,EAyCC6iB,GAAUtkB,UAAUuH,IA9BpB,SAAsBjV,GACpB,OAAOmzB,GAAanwB,KAAKmvB,SAAUnyB,IAAS,CAC/C,EA6BCgyB,GAAUtkB,UAAU8gB,IAjBpB,SAAsBxuB,EAAKV,GACzB,IAAIkS,EAAOxO,KAAKmvB,SACZhjB,EAAQgkB,GAAa3hB,EAAMxR,GAO/B,OALImP,EAAQ,EACVqC,EAAKtO,KAAK,CAAClD,EAAKV,IAEhBkS,EAAKrC,GAAO,GAAK7P,EAEZ0D,IACV,EAiGCivB,GAASvkB,UAAU+B,MA/DnB,WACEzM,KAAKmvB,SAAW,CACdwE,KAAQ,IAAI7E,GACZ1nB,IAAO,IAAK8mB,IAAOc,IACnB4E,OAAU,IAAI9E,GAEnB,EA0DCG,GAASvkB,UAAkB,OA/C3B,SAAwB1N,GACtB,OAAOw2B,GAAWxzB,KAAMhD,GAAa,OAAEA,EAC1C,EA8CCiyB,GAASvkB,UAAUgoB,IAnCnB,SAAqB11B,GACnB,OAAOw2B,GAAWxzB,KAAMhD,GAAK01B,IAAI11B,EACpC,EAkCCiyB,GAASvkB,UAAUuH,IAvBnB,SAAqBjV,GACnB,OAAOw2B,GAAWxzB,KAAMhD,GAAKiV,IAAIjV,EACpC,EAsBCiyB,GAASvkB,UAAU8gB,IAVnB,SAAqBxuB,EAAKV,GAExB,OADAk3B,GAAWxzB,KAAMhD,GAAKwuB,IAAIxuB,EAAKV,GACxB0D,IACV,EA+FCkvB,GAAMxkB,UAAU+B,MApEhB,WACEzM,KAAKmvB,SAAW,IAAIH,EACvB,EAmECE,GAAMxkB,UAAkB,OAxDxB,SAAqB1N,GACnB,OAAOgD,KAAKmvB,SAAiB,OAAEnyB,EAClC,EAuDCkyB,GAAMxkB,UAAUgoB,IA5ChB,SAAkB11B,GAChB,OAAOgD,KAAKmvB,SAASuD,IAAI11B,EAC5B,EA2CCkyB,GAAMxkB,UAAUuH,IAhChB,SAAkBjV,GAChB,OAAOgD,KAAKmvB,SAASld,IAAIjV,EAC5B,EA+BCkyB,GAAMxkB,UAAU8gB,IAnBhB,SAAkBxuB,EAAKV,GACrB,IAAIu3B,EAAQ7zB,KAAKmvB,SACjB,GAAI0E,aAAiB7E,GAAW,CAC9B,IAAI8E,EAAQD,EAAM1E,SAClB,IAAKjB,IAAQ4F,EAAMp2B,OAASq2B,IAE1B,OADAD,EAAM5zB,KAAK,CAAClD,EAAKV,IACV0D,KAET6zB,EAAQ7zB,KAAKmvB,SAAW,IAAIF,GAAS6E,EAC1C,CAEG,OADAD,EAAMrI,IAAIxuB,EAAKV,GACR0D,IACV,EA8bC,IAAIsxB,GAAa3D,GAAmB1B,EAAQ0B,GAAkB/wB,QAyhB9D,WACE,MAAO,EACV,EAlhBKi0B,GApQJ,SAAoBv0B,GAClB,OAAOywB,GAAeniB,KAAKtO,EAC9B,EAsXC,SAASwzB,GAAQxzB,EAAOoB,GAEtB,SADAA,EAAmB,MAAVA,EAAiBurB,EAAmBvrB,KAE1B,iBAATpB,GAAqBuuB,EAASyI,KAAKh3B,KAC1CA,GAAU,GAAIA,EAAQ,GAAK,GAAKA,EAAQoB,CAC9C,CAkCC,SAASwzB,GAAY50B,GACnB,IAAIo1B,EAAOp1B,GAASA,EAAMC,YAG1B,OAAOD,KAFqB,mBAARo1B,GAAsBA,EAAKhnB,WAAc+hB,EAGhE,CASC,SAAS6B,GAASpC,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOY,EAAaliB,KAAKshB,EAC1B,CAAC,MAAOxnB,GAAG,CACZ,IACE,OAAQwnB,EAAO,EAChB,CAAC,MAAOxnB,GAAG,CACjB,CACG,MAAO,EACV,CAwDC,SAASwrB,GAAG5zB,EAAO03B,GACjB,OAAO13B,IAAU03B,GAAU13B,GAAUA,GAAS03B,GAAUA,CAC3D,EAzOMhG,IAAY6C,GAAO,IAAI7C,GAAS,IAAIiG,YAAY,MAAQhK,GACxDiE,IAAO2C,GAAO,IAAI3C,KAAQ3E,GAC1BzjB,IAAW+qB,GAAO/qB,GAAQC,YAAc2jB,GACxCzO,IAAO4V,GAAO,IAAI5V,KAAQ2O,GAC1BuE,IAAW0C,GAAO,IAAI1C,KAAYpE,KACrC8G,GAAS,SAASv0B,GAChB,IAAIsH,EAASmpB,GAAeniB,KAAKtO,GAC7Bo1B,EAAO9tB,GAAU6lB,EAAYntB,EAAMC,iBAAc4H,EACjD+vB,EAAaxC,EAAOpD,GAASoD,QAAQvtB,EAEzC,GAAI+vB,EACF,OAAQA,GACN,KAAK7F,GAAoB,OAAOpE,EAChC,KAAKsE,GAAe,OAAOhF,EAC3B,KAAKiF,GAAmB,OAAO9E,EAC/B,KAAK+E,GAAe,OAAO7E,EAC3B,KAAK8E,GAAmB,OAAO3E,EAGnC,OAAOnmB,CACR,GAsQH,IAAIrF,GAAUD,MAAMC,QA2BpB,SAASgxB,GAAYjzB,GACnB,OAAgB,MAATA,GAqGT,SAAkBA,GAChB,MAAuB,iBAATA,GACZA,GAAU,GAAIA,EAAQ,GAAK,GAAKA,GAAS2sB,CAC9C,CAxG2BkL,CAAS73B,EAAMoB,UAAY21B,GAAW/2B,EACjE,CAgDC,IAAIwxB,GAAWD,IAsLf,WACE,OAAO,CACV,EArKC,SAASwF,GAAW/2B,GAGlB,IAAIkhB,EAAMgT,GAASl0B,GAASywB,GAAeniB,KAAKtO,GAAS,GACzD,OAAOkhB,GAAO6L,GAAW7L,GAAO8L,CACnC,CA0DC,SAASkH,GAASl0B,GAChB,IAAIF,SAAcE,EAClB,QAASA,IAAkB,UAARF,GAA4B,YAARA,EAC1C,CA0DC,SAASS,GAAKmzB,GACZ,OAAOT,GAAYS,GAAUZ,GAAcY,GApuB7C,SAAkBA,GAChB,IAAKkB,GAAYlB,GACf,OAAOjC,GAAWiC,GAEpB,IAAIpsB,EAAS,GACb,IAAK,IAAI5G,KAAOJ,OAAOozB,GACjBrlB,GAAeC,KAAKolB,EAAQhzB,IAAe,eAAPA,GACtC4G,EAAO1D,KAAKlD,GAGhB,OAAO4G,CACV,CAytBwDwwB,CAASpE,EACjE,CAyCCjH,EAAOD,QA9VP,SAAmBxsB,GACjB,OAAO8zB,GAAU9zB,GAAO,GAAM,EACjC,CA6VA,CAtsDA,CAssDGusB,GAAkBA,GAAiBC,SAEtC,IACIuL,GAAyB9pB,EADCse,GAAiBC,SAG/C,SAASwL,GAAkBj3B,EAASk3B,EAAOpnB,GACvC,IAII,GAHIA,GAAQgT,WAAW,UACnBhT,GAAQuT,MAAM,0BAA0B7Z,KAAKC,UAAUytB,iBAAqB1tB,KAAKC,UAAUzJ,OAE1Fk3B,EACD,OAAOl3B,EAEX,GAAIk3B,EAAMC,MAEN,OADAn3B,EAAU,IAAKk3B,EAAMC,OAIzB,GADAn3B,EAAUo3B,GAAUp3B,OAAS8G,GACzBowB,EAAMG,SAAU,CAChB,IAAK,MAAMC,KAAWJ,EAAMG,SACH,WAAjBC,EAAQv4B,KACRw4B,GAAWv3B,EAASs3B,EAAQn3B,MAEN,QAAjBm3B,EAAQv4B,MACby4B,GAAex3B,EAASs3B,EAAQr4B,MAAOq4B,EAAQn3B,MAGvD,OAAOH,CACnB,CACQ,MAAMy3B,EAAQP,EAAMO,MACdC,EAAUR,EAAMQ,QAChBC,EAAUT,EAAMS,QAgBtB,OAfIF,GACAl4B,OAAOC,KAAKi4B,GAAO11B,SAASpC,IACxBK,EAAQL,GAAO83B,EAAM93B,EAAI,IAG7B+3B,GACAn4B,OAAOC,KAAKk4B,GAAS31B,SAASpC,IAC1Bi4B,GAAuBj4B,EAAKK,EAAS03B,EAAQ,IAGjDC,GACAA,EAAQ51B,SAASpC,WACNK,EAAQL,EAAI,IAGpBK,CACf,CACI,MAAOqH,GAEH,OADAyI,GAAQ7B,MAAM,gCAAgCzE,KAAKC,UAAUytB,iBAAqB1tB,KAAKC,UAAUzJ,KAAYqH,GACtGrH,CACf,CACA,CACA,SAASo3B,GAAUS,EAAKvB,GACpB,OAAOU,GAAUa,EACrB,CACA,MAAMD,GAAyB,CAACj4B,EAAKm4B,EAAMC,KACvC,MAAMC,EAAQD,EAASp4B,GACvB,QAAcmH,IAAVkxB,EACA,OAAOF,EAEX,MAAMlS,EAAOkS,EAAKn4B,GAClB,OAAKimB,GAASoS,EAIM,iBAATpS,GACS,iBAATA,GACS,kBAATA,GACU,iBAAVoS,GACU,iBAAVA,GACU,kBAAVA,GACP/2B,MAAMC,QAAQ0kB,IACd3kB,MAAMC,QAAQ82B,IACdF,EAAKn4B,GAAOq4B,EACLF,IAEXA,EAAKn4B,GAAOJ,OAAOymB,OAAO,CAAE,EAAEJ,EAAMoS,GAC7BF,IAfHA,EAAKn4B,GAAOq4B,EACLF,EAcA,EAEf,SAASG,GAAU9qB,EAAG+qB,GAClB,GAAI/qB,IAAM+qB,EACN,OAAO,EAEX,KAAM/qB,aAAa5N,QAAa24B,aAAa34B,QACzC,OAAO,EAEX,GAAI4N,EAAEjO,cAAgBg5B,EAAEh5B,YACpB,OAAO,EAEX,IAAK,MAAMi5B,KAAKhrB,EACZ,GAAKA,EAAEG,eAAe6qB,GAAtB,CAGA,IAAKD,EAAE5qB,eAAe6qB,GAClB,OAAO,EAEX,GAAIhrB,EAAEgrB,KAAOD,EAAEC,GAAf,CAGA,GAAsB,iBAAVhrB,EAAEgrB,GACV,OAAO,EAEX,IAAKF,GAAU9qB,EAAEgrB,GAAID,EAAEC,IACnB,OAAO,CALnB,CANA,CAcI,IAAK,MAAMA,KAAKD,EACZ,GAAIA,EAAE5qB,eAAe6qB,KAAOhrB,EAAEG,eAAe6qB,GACzC,OAAO,EAGf,OAAO,CACX,CACA,SAASX,GAAeK,EAAK54B,EAAOkB,GAChC,MAAMi4B,EAAUj4B,EAAK+oB,MAAM,KAC3B,IAAIlf,EACJ,IAAKA,EAAI,EAAGA,EAAIouB,EAAQ/3B,OAAS,EAAG2J,IAC3B6tB,EAAIO,EAAQpuB,MACb6tB,EAAIO,EAAQpuB,IAAM,CAAE,GAEO,iBAApB6tB,EAAIO,EAAQpuB,MACnB6tB,EAAIO,EAAQpuB,IAAM,CAAE,GAExB6tB,EAAMA,EAAIO,EAAQpuB,IAEtB6tB,EAAIO,EAAQpuB,IAAM/K,CACtB,CACA,SAASo5B,GAASC,EAAUC,GACxB,OAAOh5B,OAAOC,KAAK+4B,GAAQC,OAAOC,GACH,iBAAhBF,EAAOE,GACPJ,GAASC,IAAWG,IAAQ,CAAE,EAAEF,EAAOE,IAAQ,IAEnDF,EAAOE,KAASH,IAAWG,IAE1C,CACA,SAASlB,GAAWM,EAAK13B,GACrB,MAAMi4B,EAAUj4B,EAAK+oB,MAAM,KAC3B,IAAIlf,EACJ,IAAKA,EAAI,EAAGA,EAAIouB,EAAQ/3B,OAAS,EAAG2J,IAAK,CACrC,IAAK6tB,EAAIO,EAAQpuB,IACb,OAEJ6tB,EAAMA,EAAIO,EAAQpuB,GAC1B,QACW6tB,EAAIO,EAAQpuB,GACvB,CAEA,IAAA0uB,GAAA,MACIC,QACAC,YACAC,kBACAC,yBACAC,YACAC,mBAAqB,CAAE,EACvBC,kBAAoB,GACpBC,gCAAkC,EAClCC,kBAAoB,CAAE,EACtBC,iBAAmB,CAAE,EACrBC,iBAAmB,CAAE,EACrBC,sBAAmBxyB,EACnByyB,mBAAqB,CAAE,EACvBC,4BAA8B,GAC9BC,sBACA,mBAAI7Y,GACA,IAAKje,KAAK22B,iBAAkB,CACxB,MAAMI,EAAqB/2B,KAAKi2B,YAAY7X,iBAAiBzE,MAAMqd,GAAgB,YAAVA,EAAEC,MAC3Ej3B,KAAK22B,iBAAmBI,GAAoB5O,SAAW,CACnE,CACQ,OAAOnoB,KAAK22B,gBACpB,CACI,oBAAIO,GACA,OAAOl3B,KAAKie,iBAAmB,CACvC,CACI,WAAA1hB,CAAYiL,GACRxH,KAAKi2B,YAAczuB,EAAOD,WAC1BvH,KAAKg2B,QAAUxuB,EAAO2F,OACtBnN,KAAKk2B,kBAAoB1uB,EAAO2vB,iBAChCn3B,KAAKm2B,yBAA2B3uB,EAAO4vB,wBACvCp3B,KAAKo2B,YAAcp2B,KAAKi2B,YAAYttB,OAAO,SAAU,CACjD6e,EACAG,EACAG,GACAE,KAEJhoB,KAAKo2B,YAAY1Z,aAAa1c,KAAKq3B,WAAWrhB,KAAKhW,OACnDA,KAAKo2B,YAAYxtB,UAAUqU,IACvB,GAAKA,EAGL,OAAKjd,KAAKm2B,8BAGVn2B,KAAKs3B,kBAAkB7pB,MAAK,IAAMzN,KAAKi2B,YAAY/U,kBAAkB,CAAE5jB,KAAM,eAFlE0C,KAAKi2B,YAAY/U,kBAAkB,CAAE5jB,KAAM,YAEqC,IAE/F0C,KAAKu3B,oCACLv3B,KAAKw3B,oCACLx3B,KAAKy3B,sCACLz3B,KAAKi2B,YAAY3X,UAAU9K,MAAM0U,GAAyB5qB,MAAOiQ,IAC7D,MAAMnR,EAAOmR,EAAQnR,KAChBA,IAGDA,IAASorB,GACTprB,IAASqrB,GACTrrB,IAASkrB,EACTtnB,KAAK03B,4BAA4BnqB,GAE5BnR,IAASurB,GACdvrB,IAAS4rB,IACT5rB,IAAS6rB,GACTjoB,KAAK23B,4BAA4BpqB,GAE5BnR,IAAS0rB,IACd1rB,IAASmrB,GACTvnB,KAAK43B,8BAA8BrqB,GACnD,GAEA,CACI,OAAAsqB,GACI,IAAK,MAAMzkB,KAAOpT,KAAKs2B,kBACnBt2B,KAAKi2B,YAAYxiB,IAAIL,GAEzBpT,KAAKs2B,kBAAkB54B,OAAS,EAChC,IAAK,MAAMo6B,KAAe93B,KAAKq2B,mBACvBr2B,KAAKy2B,iBAAiB9rB,eAAemtB,WAC9B93B,KAAKq2B,mBAAmByB,EAG/C,CACI,aAAAC,CAAcz6B,EAAMkR,GAChB,OAAIlR,KAAQ0C,KAAKw2B,oBAGjBx2B,KAAKw2B,kBAAkBl5B,GACnB0C,KAAKo2B,YACAluB,KAAK,CACN9L,KAAMirB,EACN1e,OAAQ,SACRrL,OACAkR,OACAwpB,SAAU,aAETvqB,MAAMwqB,IACPj4B,KAAKy2B,iBAAiBn5B,GAAQ26B,EAAiBC,WAC/Cl4B,KAAK02B,iBAAiBuB,EAAiBC,YAAc56B,EACrD,MAAM66B,EAAcn4B,KAAKq2B,mBAAmB/4B,IAAS,IAAI8qB,GAAe6P,EAAiBC,WAAY56B,GAAM,OAAM6G,GAQjH,OAPAg0B,EAAY7P,aAAc,EAC1B6P,EAAY76B,KAAOA,EACnB66B,EAAY9P,UAAY4P,EAAiBC,WACzCC,EAAY96B,QAAU46B,EAAiBzpB,MAAQimB,GAAUjmB,GACzD2pB,EAAYxP,qBAAsB,EAClC3oB,KAAKq2B,mBAAmB/4B,GAAQ66B,SACzBn4B,KAAKw2B,kBAAkBl5B,GACvB26B,EAAiBC,UAAU,KAtB/Bl4B,KAAKw2B,kBAAkBl5B,EAyB1C,CACI,GAAA8nB,GACI,OAAOxoB,OAAOC,KAAKmD,KAAKq2B,oBACnBh0B,QAAQ/E,GAAS0C,KAAKq2B,mBAAmB/4B,GAAMgrB,aAC5D,CACI,YAAMloB,CAAO9C,EAAMi3B,GACXA,IACAA,EAAQE,GAAUF,IAElBj3B,KAAQ0C,KAAKw2B,yBACPx2B,KAAKw2B,kBAAkBl5B,GAEjC,MAAM66B,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC5C,IAAK66B,IAAgBA,EAAY7P,YAC7B,OAAOtoB,KAAK+3B,cAAcz6B,EAAMi3B,GAEpC,IAAI6D,EAAiBD,EAAY96B,QAC5B86B,EAAYvP,iBACbwP,QAAuBp4B,KAAK0yB,IAAIyF,EAAY76B,OAEhD,MAAM+6B,EAAkBr4B,KAAKk3B,iBACzBl3B,KAAKs4B,wBAAwBF,EAAgB7D,GAC7Cv0B,KAAKu4B,wBAAwBH,EAAgB7D,GACjD,OAAK33B,OAAOC,KAAKw7B,EAAgBvD,OAAOp3B,QAChCd,OAAOC,KAAKw7B,EAAgBtD,SAASr3B,QACrC26B,EAAgBrD,QAAQt3B,QACxB26B,EAAgB3D,UAAUh3B,OAG3BsC,KAAKo2B,YACPluB,KAAK,CACN9L,KAAM2rB,GACNpf,OAAQ,SACRuvB,WAAYC,EAAY9P,UACxBkM,MAAO8D,GACR,CAAE,EAAE,CAAE1a,YAAY,IAChBlQ,MAAM+qB,IACPx4B,KAAKy4B,cAAcN,EAAaE,EAAiB,CAC7CK,UAAWF,EAAWpvB,SACxB,IAZKtD,QAAQC,SAc3B,CACI,SAAMylB,CAAIluB,EAAMkR,GACRA,IACAA,EAAOimB,GAAUjmB,IAEjBlR,KAAQ0C,KAAKw2B,yBACPx2B,KAAKw2B,kBAAkBl5B,GAEjC,MAAM66B,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC5C,OAAK66B,GAAgBA,EAAY7P,YAG1BtoB,KAAKo2B,YACPluB,KAAK,CACN9L,KAAM2rB,GACNpf,OAAQ,SACRuvB,WAAYC,EAAY9P,UACxBkM,MAAO,CAAEC,MAAOhmB,IACjB,CAAE,EAAE,CAAEmP,YAAY,IAChBlQ,MAAM+qB,IACPx4B,KAAKy4B,cAAcN,EAAa,CAC5B3D,MAAOhmB,EACPsmB,MAAO,CAAE,EACTE,QAAS,GACTD,QAAS,CAAA,GACV,CACC2D,UAAWF,EAAWpvB,SACxB,IAjBKpJ,KAAK+3B,cAAcz6B,EAAMkR,EAmB5C,CACI,OAAAmqB,CAAQr7B,EAAME,EAAMlB,GAChB,OAAK0D,KAAKk3B,iBAGHl3B,KAAK44B,SAASt7B,EAAM,CAAC,CAAEE,OAAMlB,WAFzBwJ,QAAQ8H,OAAO,6EAGlC,CACI,cAAMgrB,CAASt7B,EAAMu7B,GACjB,IAAK74B,KAAKk3B,iBACN,OAAOpxB,QAAQ8H,OAAO,+EAEtBirB,IACAA,EAAapE,GAAUoE,IAEvBv7B,KAAQ0C,KAAKw2B,yBACPx2B,KAAKw2B,kBAAkBl5B,GAEjC,MAAM66B,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC5C,IAAK66B,IAAgBA,EAAY7P,YAAa,CAC1C,MAAM4M,EAAM,CAAE,EACd,IAAK,MAAM4D,KAAaD,EACpBhE,GAAeK,EAAK4D,EAAUx8B,MAAOw8B,EAAUt7B,MAEnD,OAAOwC,KAAK+3B,cAAcz6B,EAAM43B,EAC5C,CACQ,MAAMR,EAAW,GACjB,IAAK,MAAMoE,KAAaD,EACI,OAApBC,EAAUx8B,MACVo4B,EAASx0B,KAAK,CAAE9D,KAAM,SAAUoB,KAAMs7B,EAAUt7B,OAGhDk3B,EAASx0B,KAAK,CAAE9D,KAAM,MAAOoB,KAAMs7B,EAAUt7B,KAAMlB,MAAOw8B,EAAUx8B,QAG5E,OAAO0D,KAAKo2B,YACPluB,KAAK,CACN9L,KAAM2rB,GACNpf,OAAQ,SACRuvB,WAAYC,EAAY9P,UACxBkM,MAAO,CAAEG,aACV,CAAE,EAAE,CAAE/W,YAAY,IAChBlQ,MAAM+qB,IACPx4B,KAAKy4B,cAAcN,EAAa,CAC5BrD,MAAO,CAAE,EACTE,QAAS,GACTD,QAAS,CAAE,EACXL,YACD,CACCgE,UAAWF,EAAWpvB,SACxB,GAEd,CACI,SAAMspB,CAAIp1B,GACFA,KAAQ0C,KAAKw2B,yBACPx2B,KAAKw2B,kBAAkBl5B,GAEjC,MAAM66B,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC5C,IAAK66B,IAAgBA,EAAY7P,YAC7B,OAAOxiB,QAAQC,QAAQ,IAE3B,GAAIoyB,KAAiBA,EAAYvP,iBAAmBuP,EAAYxP,qBAC5D,OAAO,IAAI7iB,SAASC,IAChB/F,KAAK+4B,UAAUz7B,GAAM,CAACkR,EAAMwqB,EAAIC,EAAIC,KAChCl5B,KAAKyd,YAAYyb,GACjBnzB,EAAQyI,EAAK,GACf,IAGV,MAAMnR,EAAU86B,GAAa96B,SAAW,CAAE,EAC1C,OAAOyI,QAAQC,QAAQ0uB,GAAUp3B,GACzC,CACI,eAAM07B,CAAUz7B,EAAMkO,EAAU2tB,GACxB77B,KAAQ0C,KAAKw2B,yBACPx2B,KAAKw2B,kBAAkBl5B,GAEjC,MAAM87B,OAA4D,IAApBD,EAAkCn5B,KAAKu2B,gCAAkC4C,OACxF,IAApBA,IACPn5B,KAAKu2B,iCAAmC,GAExCv2B,KAAK62B,4BAA4BhB,OAAOwD,GAAiBA,EAAaC,SAAWt5B,KAAKu2B,mCACtFv2B,KAAK62B,4BAA4B32B,KAAK,CAAE43B,YAAax6B,EAAMg8B,OAAQF,EAAgC5tB,aAEvG,IAAI2sB,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC1C,IAAK66B,IACAA,EAAY7P,YAIb,OAHA6P,EAAcA,GAAe,IAAI/P,QAAejkB,EAAW7G,GAAM,OAAO6G,GACxEnE,KAAKq2B,mBAAmB/4B,GAAQ66B,EAChCA,EAAY3P,gBAAgB4Q,GAAkC5tB,EACvD1F,QAAQC,QAAQqzB,GAE3B,MAAMG,EAAepB,EAAYvP,eAEjC,GADAuP,EAAY3P,gBAAgB4Q,GAAkC5tB,EACzD+tB,EAoBA,CACD,GAAIpB,EAAYxP,oBAAqB,CACjC,MAAM6Q,EAAQ/E,GAAU0D,EAAY96B,SACpCmO,EAASguB,EAAOA,EAAO,GAAIJ,EAC3C,CACY,OAAOtzB,QAAQC,QAAQqzB,EACnC,CAzBY,GAAKjB,EAAY5P,eAWZ,CACD,GAAI4P,EAAYxP,oBAAqB,CACjC,MAAM6Q,EAAQ/E,GAAU0D,EAAY96B,SACpCmO,EAASguB,EAAOA,EAAO,GAAIJ,EAC/C,CACgB,OAAOtzB,QAAQC,QAAQqzB,EACvC,CAhBgB,GAAIjB,EAAY96B,SAAW86B,EAAYzP,yBAA0B,CAC7D,GAAIyP,EAAYxP,oBAAqB,CACjC,MAAM6Q,EAAQ/E,GAAU0D,EAAY96B,SACpCmO,EAASguB,EAAOA,EAAO,GAAIJ,EACnD,CACoB,OAAOtzB,QAAQC,QAAQqzB,EAC3C,CACgB,OAAOp5B,KAAKy5B,cAActB,GACrB1qB,MAAK,IAAM2rB,GAiBhC,CACI,WAAA3b,CAAY0b,GACRn5B,KAAK62B,4BAA8B72B,KAAK62B,4BAA4Bx0B,QAAQg3B,GAAiBA,EAAaC,SAAWH,IACrH,IAAK,MAAM77B,KAAQV,OAAOC,KAAKmD,KAAKq2B,oBAAqB,CACrD,MAAM8B,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC5C,IAAK66B,EACD,OAEJ,MAAMoB,EAAepB,EAAYvP,sBAC1BuP,EAAY3P,gBAAgB2Q,GAC/BhB,EAAY7P,aACZiR,IACCpB,EAAYvP,gBACbuP,EAAYzP,0BACZ1oB,KAAK05B,gBAAgBvB,GAAa31B,OAAM,SAEvC21B,EAAY7P,aACZ6P,EAAYvP,uBACN5oB,KAAKq2B,mBAAmB/4B,EAE/C,CACA,CACI,aAAMq8B,CAAQr8B,GACNA,KAAQ0C,KAAKw2B,yBACPx2B,KAAKw2B,kBAAkBl5B,GAEjC,MAAM66B,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC5C,OAAK66B,EAGEn4B,KAAKo2B,YACPluB,KAAK,CACN9L,KAAMyrB,EACNlf,OAAQ,SACRuvB,WAAYC,EAAY9P,YACzB5a,MAAMmsB,IAAe,IAPb9zB,QAAQ8H,OAAO,gBAAgBtQ,mBAQlD,CACI,aAAAm7B,CAAcN,EAAa5D,EAAOsF,GAC9B,MAAMC,EAAa3B,EAAY96B,QAC/B86B,EAAY96B,QAAUi3B,GAAkB6D,EAAY96B,QAASk3B,EAAOv0B,KAAKg2B,SACzEmC,EAAYxP,qBAAsB,EAC9B3oB,KAAKq2B,mBAAmB8B,EAAY76B,QAAU66B,GAC7C7C,GAAUwE,EAAY3B,EAAY96B,UACnC2C,KAAK+5B,sBAAsB5B,EAAa5D,EAAOsF,EAE3D,CACI,iCAAAtC,GACI,MAAMyC,EAAsB,CACxBvS,EACAD,EACAF,GAEJ,IAAK,MAAM2S,KAAsBD,EAAqB,CAClD,MAAM5mB,EAAMpT,KAAKi2B,YAAY5iB,GAAG4mB,EAAoBj6B,KAAK03B,4BAA4B1hB,KAAKhW,OAC1FA,KAAKs2B,kBAAkBp2B,KAAKkT,EACxC,CACA,CACI,2BAAAskB,CAA4BwC,GACxB,MAAMD,EAAqBC,EAAkB99B,KACzC69B,IAAuB3S,GACvBtnB,KAAKy2B,iBAAiByD,EAAkBC,aAAeD,EAAkBhC,WACzEl4B,KAAK02B,iBAAiBwD,EAAkBhC,YAAcgC,EAAkBC,aAEnEF,IAAuBxS,IAC5BznB,KAAKy2B,iBAAiByD,EAAkB58B,MAAQ48B,EAAkBhC,WAClEl4B,KAAK02B,iBAAiBwD,EAAkBhC,YAAcgC,EAAkB58B,MAG5E,MAAMA,EAAO0C,KAAK02B,iBAAiBwD,EAAkBhC,YACrD,IAAK56B,EACD,MAAM,IAAIuC,MAAM,yDAA2Dq6B,EAAkBhC,YAEjG,IAAKl4B,KAAKy2B,iBAAiBn5B,GACvB,MAAM,IAAIuC,MAAM,uDAAyDq6B,EAAkBhC,YAE/F,IAAIC,EAAcn4B,KAAKq2B,mBAAmB/4B,GAC1C,GAAI66B,EAAa,CACb,GAAIA,EAAY7P,YACZ,OAGA,IAAK6P,EAAYvP,eACb,MAAM,IAAI/oB,MAAM,iDAEpBs4B,EAAY7P,aAAc,EAC1B6P,EAAY9P,UAAY6R,EAAkBhC,WAC1CC,EAAY1P,WAAayR,EAAkBC,YACtChC,EAAYzP,0BACb1oB,KAAKy5B,cAActB,EAGvC,MAEYn4B,KAAKq2B,mBAAmB/4B,GAAQ66B,EAC5B,IAAI/P,GAAe8R,EAAkBhC,WAAY56B,GAAM,EAAM48B,EAAkBC,aAC/En6B,KAAKk2B,mBACLl2B,KAAK+4B,UAAUz7B,GAAM,SAAWmQ,MAAM6rB,GAAWt5B,KAAK82B,sBAAwBwC,GAG9F,CACI,iCAAA9B,GACI,MAAM4C,EAAsB,CACxBpS,GACAL,EACAM,IAEJ,IAAK,MAAMoS,KAAsBD,EAAqB,CAClD,MAAMhnB,EAAMpT,KAAKi2B,YAAY5iB,GAAGgnB,EAAoBr6B,KAAK23B,4BAA4B3hB,KAAKhW,OAC1FA,KAAKs2B,kBAAkBp2B,KAAKkT,EACxC,CACA,CACI,2BAAAukB,CAA4B2C,GACxB,MAAMD,EAAqBC,EAAkBl+B,KACvCisB,EAAYiS,EAAkBpC,WACpC,IAAIC,EAAcn4B,KAAKq2B,mBAAmBr2B,KAAK02B,iBAAiBrO,IAChE,MAAMkS,GAAYpC,IAAgBA,EAAY7P,YAC9C,GAAI+R,IAAuBpS,GAClBkQ,IACDA,EACIn4B,KAAKq2B,mBAAmBiE,EAAkBH,cACtC,IAAI/R,GAAeC,EAAWiS,EAAkBH,aAAa,EAAMG,EAAkBH,cAEjGn6B,KAAKq2B,mBAAmBiE,EAAkBH,aAAehC,EACzDn4B,KAAK02B,iBAAiBrO,GAAaiS,EAAkBH,YACrDn6B,KAAKy2B,iBAAiB6D,EAAkBH,aAAe9R,EACvD8P,EAAY9P,UAAYA,EACxB8P,EAAY7P,aAAc,EAC1B6P,EAAY1P,WAAa6R,EAAkBH,YAC3ChC,EAAY5P,gBAAiB,OAG7B,IAAK4P,IAAgBA,EAAY7P,YAW7B,YAVI+R,IAAuB1S,GACvBwQ,EAAcA,GAAe,IAAI/P,GAAeC,EAAWiS,EAAkBh9B,MAAM,OAAM6G,GACzFg0B,EAAYzP,0BAA2B,EACvC1oB,KAAKq2B,mBAAmBiE,EAAkBh9B,MAAQ66B,EAClDn4B,KAAK02B,iBAAiBrO,GAAaiS,EAAkBh9B,KACrD0C,KAAKy2B,iBAAiB6D,EAAkBh9B,MAAQ+qB,GAGhDroB,KAAKg2B,QAAQ1qB,MAAM,0CAA0C+c,MAKzE,MAAMyR,EAAa3B,EAAY96B,QAE/B,GADA86B,EAAYxP,qBAAsB,EAC9B0R,IAAuB1S,EACvBwQ,EAAY96B,QAAUi9B,EAAkB9rB,MAAQ,CAAE,OAEjD,GAAI6rB,IAAuBpS,GAC5BkQ,EAAY96B,QAAUi9B,EAAkBE,kBAAoB,CAAE,MAE7D,IAAIH,IAAuBrS,GAI5B,MAAM,IAAInoB,MAAM,uCAAyCw6B,GAHzDlC,EAAY96B,QAAUi3B,GAAkB6D,EAAY96B,QAASi9B,EAAkB/F,MAAOv0B,KAAKg2B,QAIvG,EACYuE,GACCjF,GAAU6C,EAAY96B,QAASy8B,IAChCO,IAAuB1S,GACvB3nB,KAAK+5B,sBAAsB5B,EAAamC,EAAkB/F,MAAO,CAAEmE,UAAW4B,EAAkBG,YAE5G,CACI,qBAAAV,CAAsB5B,EAAa5D,EAAOsF,GAEtC,IADAtF,EAAQA,GAAS,CAAEO,MAAO,GAAIC,QAAS,CAAE,EAAEP,MAAO,CAAA,EAAIQ,QAAS,KACrDN,SAAU,CAChBH,EAAMO,MAAQP,EAAMQ,QAAUR,EAAMC,MAAQ,CAAE,EAC9CD,EAAMS,QAAU,GAChB,IAAK,MAAML,KAAWJ,EAAMG,SACH,WAAjBC,EAAQv4B,OAC0B,IAA9Bu4B,EAAQn3B,KAAK+V,QAAQ,MACrBghB,EAAMS,QAAQ90B,KAAKy0B,EAAQn3B,MAE/Bq3B,GAAeN,EAAMQ,QAAS,KAAMJ,EAAQn3B,OAEtB,QAAjBm3B,EAAQv4B,MACby4B,GAAeN,EAAMQ,QAASJ,EAAQr4B,MAAOq4B,EAAQn3B,KAGzE,CACQ,IAAK,MAAMk9B,KAAuBvC,EAAY3P,gBAC1C,GAAI2P,EAAY3P,gBAAgB7d,eAAe+vB,GAC3C,KAEIC,EADuBxC,EAAY3P,gBAAgBkS,IACpCjG,GAAU0D,EAAY96B,SAAUo3B,GAAU73B,OAAOymB,OAAO,CAAE,EAAEkR,EAAMO,OAAS,CAAA,EAAIP,EAAMQ,SAAW,GAAIR,EAAMC,OAAS,CAAE,IAAID,EAAMS,QAAStR,SAASgX,EAAqB,IAAKb,EAC9M,CACgB,MAAO9tB,GACH/L,KAAKg2B,QAAQvkB,MAAM,mBAAqB5K,KAAKC,UAAUiF,GAC3E,CAGA,CACI,mCAAA0rB,GACI,MAAMmD,EAAwB,CAC1B9S,GACAP,GAEJ,IAAK,MAAMsT,KAAwBD,EAAuB,CACtD,MAAMxnB,EAAMpT,KAAKi2B,YAAY5iB,GAAGwnB,EAAsB76B,KAAK43B,8BAA8B5hB,KAAKhW,OAC9FA,KAAKs2B,kBAAkBp2B,KAAKkT,EACxC,CACA,CACI,6BAAAwkB,CAA8BkD,GAE1B,IAAIzS,EACA/qB,EACJ,GAH6Bw9B,EAAa1+B,OAGbmrB,GAGzB,GAFAjqB,EAAOw9B,EAAaX,YACpB9R,EAAYroB,KAAKy2B,iBAAiBn5B,IAC7B+qB,EAED,YADAroB,KAAKg2B,QAAQ1qB,MAAM,8CAA8CwvB,EAAaX,oBAOlF,GAFA9R,EAAYyS,EAAa5C,WACzB56B,EAAO0C,KAAK02B,iBAAiBrO,IACxB/qB,EAED,YADA0C,KAAKg2B,QAAQ1qB,MAAM,6CAA6CwvB,EAAa5C,qBAI9El4B,KAAK02B,iBAAiBrO,UACtBroB,KAAKy2B,iBAAiBn5B,GAC7B,MAAM66B,EAAcn4B,KAAKq2B,mBAAmB/4B,UACrC0C,KAAKq2B,mBAAmB/4B,GAC1B66B,GAAgBA,EAAY7P,aAC7BtoB,KAAKg2B,QAAQ1qB,MAAM,6CAA6C+c,IAG5E,CACI,aAAAoR,CAActB,GAEV,OADAA,EAAYzP,0BAA2B,EAChC1oB,KAAKo2B,YACPluB,KAAK,CACN9L,KAAMsrB,EACN/e,OAAQ,SACRuvB,WAAYC,EAAY9P,YACzB5a,MAAMmsB,IAAe,GAChC,CACI,eAAAF,CAAgBvB,GAEZ,OADAA,EAAYzP,0BAA2B,EAChC1oB,KAAKo2B,YACPluB,KAAK,CACN9L,KAAMwrB,EACNjf,OAAQ,SACRuvB,WAAYC,EAAY9P,YACzB5a,MAAMmsB,IAAe,GAChC,CACI,uBAAArB,CAAwBpd,EAAM4f,GAC1B,MAAMxG,EAAQ,CAAEO,MAAO,GAAIC,QAAS,CAAE,EAAEC,QAAS,GAAIR,WAAOrwB,GAC5D,GAAIgX,EACA,IAAK,MAAM3Q,KAAK5N,OAAOC,KAAKse,IACW,IAA/Bve,OAAOC,KAAKk+B,GAAIxnB,QAAQ/I,IACX,OAAVuwB,EAAGvwB,IACF8qB,GAAUna,EAAK3Q,GAAIuwB,EAAGvwB,MAC1B+pB,EAAMQ,QAAQvqB,GAAKuwB,EAAGvwB,IAIlC,IAAK,MAAMA,KAAK5N,OAAOC,KAAKk+B,GACnB5f,IAA0C,IAAjCve,OAAOC,KAAKse,GAAM5H,QAAQ/I,GAKrB,OAAVuwB,EAAGvwB,IACR+pB,EAAMS,QAAQ90B,KAAKsK,GALL,OAAVuwB,EAAGvwB,KACH+pB,EAAMO,MAAMtqB,GAAKuwB,EAAGvwB,IAOhC,OAAO+pB,CACf,CACI,uBAAA+D,CAAwBnd,EAAM4f,GAC1B,MAAMxG,EAAQ,CAAEO,MAAO,CAAA,EAAIC,QAAS,CAAA,EAAIC,QAAS,GAAIR,WAAOrwB,EAAWuwB,SAAU,IACjF,IAAK,MAAMlqB,KAAK5N,OAAOC,KAAKk+B,GACxB,GAAc,OAAVA,EAAGvwB,GAAa,CAEX8qB,GADSna,EAAOA,EAAK3Q,GAAK,KACTuwB,EAAGvwB,KACrB+pB,EAAMG,UAAUx0B,KAAK,CAAE9D,KAAM,MAAOoB,KAAMgN,EAAGlO,MAAOy+B,EAAGvwB,IAE3E,MAEgB+pB,EAAMG,UAAUx0B,KAAK,CAAE9D,KAAM,SAAUoB,KAAMgN,IAGrD,OAAO+pB,CACf,CACI,UAAA8C,GACI,IAAK,MAAMjkB,KAAOpT,KAAKs2B,kBACnBt2B,KAAKi2B,YAAYxiB,IAAIL,GAErBpT,KAAK82B,wBACL92B,KAAKyd,YAAYzd,KAAK82B,8BACf92B,KAAK82B,uBAEhB92B,KAAKs2B,kBAAoB,GACzBt2B,KAAKy2B,iBAAmB,CAAE,EAC1Bz2B,KAAK02B,iBAAmB,CAAE,SACnB12B,KAAK22B,iBACZ32B,KAAK42B,mBAAqBh6B,OAAOC,KAAKmD,KAAKq2B,oBAAoBv5B,QAAO,CAACk+B,EAAYC,KAC/E,MAAM9C,EAAcn4B,KAAKq2B,mBAAmB4E,GAI5C,OAHI9C,EAAY7P,cAAgB6P,EAAY1P,YAAc0P,EAAYzP,4BAClEsS,EAAWC,GAAWj7B,KAAKq2B,mBAAmB4E,GAAS59B,SAEpD29B,CAAU,GAClB,IACHh7B,KAAKq2B,mBAAqB,CAAE,CACpC,CACI,qBAAMiB,GACFt3B,KAAKu3B,oCACLv3B,KAAKw3B,oCACLx3B,KAAKy3B,sCACLz3B,KAAKi2B,YAAY3X,UAAU9K,MAAM0U,GAAyB5qB,MAAOiQ,IAC7D,MAAMnR,EAAOmR,EAAQnR,KAChBA,IAGDA,IAASorB,GACTprB,IAASqrB,GACTrrB,IAASkrB,EACTtnB,KAAK03B,4BAA4BnqB,GAE5BnR,IAASurB,GACdvrB,IAAS4rB,IACT5rB,IAAS6rB,GACTjoB,KAAK23B,4BAA4BpqB,GAE5BnR,IAAS0rB,IACd1rB,IAASmrB,GACTvnB,KAAK43B,8BAA8BrqB,GACnD,UAEczH,QAAQsf,IAAIplB,KAAK62B,4BAA4BzvB,KAAKiyB,GAAiBr5B,KAAK+4B,UAAUM,EAAavB,YAAauB,EAAa7tB,SAAU6tB,EAAaC,iBAChJt5B,KAAKk7B,aACX,IAAK,MAAMD,KAAWj7B,KAAK42B,mBAAoB,CAC3C,GAAgD,iBAArC52B,KAAK42B,mBAAmBqE,IAAkF,IAAzDr+B,OAAOC,KAAKmD,KAAK42B,mBAAmBqE,IAAUv9B,OACtG,SAEJ,MAAMy9B,EAAgBn7B,KAAK42B,mBAAmBqE,GAC9Cj7B,KAAKg2B,QAAQllB,KAAK,gCAAgCmqB,WAC5Cj7B,KAAKk7B,mBACLl7B,KAAKI,OAAO66B,EAASE,EACvC,CACQn7B,KAAK42B,mBAAqB,CAAE,EAC5B52B,KAAKg2B,QAAQllB,KAAK,4BAC1B,CACI,UAAAoqB,GACI,OAAO,IAAIp1B,SAASC,GAAYO,YAAW,IAAMP,KAAW,IACpE,GAGA,MAAMq1B,GACFC,SACAC,cACAC,YACAC,QACA,WAAAj/B,CAAYiL,GACRxH,KAAKw7B,QAAU,IAAIC,GAAUj0B,EACrC,CACI,GAAA4d,GACI,OAAOplB,KAAKw7B,QAAQpW,KAC5B,CACI,MAAAhlB,CAAO9C,EAAMkR,GAGT,OAFAxO,KAAK07B,UAAUp+B,GACf0C,KAAK27B,UAAUntB,GACRxO,KAAKw7B,QAAQp7B,OAAO9C,EAAMkR,EACzC,CACI,GAAAgd,CAAIluB,EAAMkR,GAGN,OAFAxO,KAAK07B,UAAUp+B,GACf0C,KAAK27B,UAAUntB,GACRxO,KAAKw7B,QAAQhQ,IAAIluB,EAAMkR,EACtC,CACI,OAAAmqB,CAAQr7B,EAAME,EAAMgR,GAChBxO,KAAK07B,UAAUp+B,GACf0C,KAAK47B,UAAUp+B,GAEf,MADgC,KAATA,GAEnBwC,KAAK27B,UAAUntB,GACRxO,KAAKwrB,IAAIluB,EAAMkR,IAEnBxO,KAAKw7B,QAAQ7C,QAAQr7B,EAAME,EAAMgR,EAChD,CACI,QAAAoqB,CAASt7B,EAAMu+B,GAEX,GADA77B,KAAK07B,UAAUp+B,IACVgB,MAAMC,QAAQs9B,GACf,MAAM,IAAIh8B,MAAM,uDAEpB,IAAK,MAAMrC,KAAEA,EAAIlB,MAAEA,KAAWu/B,EAAO,CACjC77B,KAAK47B,UAAUp+B,GACiB,KAATA,GAEnBwC,KAAK27B,UAAUr/B,EAE/B,CACQ,OAAO0D,KAAKw7B,QAAQ5C,SAASt7B,EAAMu+B,EAC3C,CACI,SAAA9C,CAAUz7B,EAAMkO,GAEZ,GADAxL,KAAK07B,UAAUp+B,GACS,mBAAbkO,EACP,MAAM,IAAI3L,MAAM,8CAEpB,OAAOG,KAAKw7B,QACPzC,UAAUz7B,GAAM,CAACkR,EAAM+lB,EAAOS,EAASh4B,EAAK68B,IAAcruB,EAASgD,EAAM+lB,EAAOS,GAAS,IAAMh1B,KAAKw7B,QAAQ/d,YAAYzgB,IAAM68B,KAC9HpsB,MAAMzQ,GAAQ,KACfgD,KAAKw7B,QAAQ/d,YAAYzgB,EAAI,GAEzC,CACI,GAAA01B,CAAIp1B,GAEA,OADA0C,KAAK07B,UAAUp+B,GACR0C,KAAKw7B,QAAQ9I,IAAIp1B,EAChC,CACI,KAAAylB,GACI,OAAOjd,QAAQC,QAAQ/F,KAC/B,CACI,OAAA25B,CAAQr8B,GAEJ,OADA0C,KAAK07B,UAAUp+B,GACR0C,KAAKw7B,QAAQ7B,QAAQr8B,EACpC,CACI,oBAAI45B,GACA,OAAOl3B,KAAKw7B,QAAQtE,gBAC5B,CACI,SAAAwE,CAAUp+B,GACN,GAAoB,iBAATA,GAA8B,KAATA,EAC5B,MAAM,IAAIuC,MAAM,iDAE5B,CACI,SAAA+7B,CAAUp+B,GACN,GAAoB,iBAATA,EACP,MAAM,IAAIqC,MAAM,qDAE5B,CACI,SAAA87B,CAAUntB,GACN,GAAoB,iBAATA,EACP,MAAM,IAAI3O,MAAM,wCAE5B,EAGA,SAASi8B,GAAW3sB,EAAS4sB,EAAiBC,GAC1C,MAA+B,mBAApBD,GAA2D,mBAAlBC,EACzC7sB,GAEoB,mBAApB4sB,EACPA,EAAkB,OAEY,mBAAlBC,IACZA,EAAgB,QAEb7sB,EAAQ1B,KAAKsuB,EAAiBC,GACzC,CAEA,SAASC,GAAYC,EAAK,EAAG/sB,EAAS7D,GAClC,IAAI4I,EACJ,MAAMioB,EAAsB,KACpBjoB,GACAC,aAAaD,EACzB,EASI,OAPA/E,EACK1B,MAAK,KACN0uB,GAAqB,IAEpB35B,OAAM,KACP25B,GAAqB,IAElB,IAAIr2B,SAAQ,CAACC,EAAS6H,KACzBsG,EAAU5N,YAAW,IAAMsH,EAAOtC,IAAQ4wB,EAAG,GAErD,CAEA,IAAIE,IACJ,SAAWA,GACPA,EAAaA,EAAsB,QAAI,GAAK,UAC5CA,EAAaA,EAAoB,MAAI,GAAK,OAC7C,CAHD,CAGGA,KAAiBA,GAAe,CAAA,IACnC,MAAMC,GACFl7B,SACApB,KACAiJ,SACAszB,cACA,WAAA//B,CAAY4E,EAAUpB,EAAMiJ,EAAUszB,GAClCt8B,KAAKmB,SAAWA,EAChBnB,KAAKD,KAAOA,EACZC,KAAKgJ,SAAWA,EAChBhJ,KAAKs8B,cAAgBA,CAC7B,CACI,SAAAvD,CAAUjU,EAAQ/gB,EAASg4B,EAAiBC,EAAehW,GACvD,MAAMuW,EAAwB,CAACC,EAAeC,EAAQC,EAAcC,KAChE54B,EAAQ64B,sBAAwB74B,EAAQ64B,uBAAyB74B,EAAQ84B,cACzE78B,KAAKmB,SAAS8L,OAAO8rB,UAAU0D,EAAQ14B,EAASy4B,EAAeE,EAAcC,EAAY3W,EAAY,EAEnG7W,EAAU,IAAIrJ,SAAQ,CAACC,EAAS6H,KAClC,MAAM8uB,EAAgBtpB,IAClBrN,EAAQqN,EAAI,EAEVupB,EAAc5wB,IAChB6B,EAAO7B,EAAI,EAEf,IAAK+Y,EAED,YADAlX,EAAO,2JAGX,IAAIkvB,EAOJ,GALIA,EADkB,iBAAXhY,EACK,CAAExnB,KAAMwnB,GAGRA,GAEXgY,EAAUx/B,KAEX,YADAsQ,EAAO,gKAGKzJ,IAAZJ,IACAA,EAAU,CAAE,GAEhB,IAAIY,EAASZ,EAAQY,OAIrB,QAHeR,IAAXQ,IACAA,EAAS,QAES,iBAAXA,GAAkC,QAAXA,GAA+B,SAAXA,EAElD,YADAiJ,EAAO,IAAI/N,MAAM,IAAI8E,oFAGaR,IAAlCJ,EAAQ64B,wBACR74B,EAAQ64B,sBAAwB74B,EAAQg5B,6BACF54B,IAAlCJ,EAAQ64B,wBACR74B,EAAQ64B,sBAAwB58B,KAAKs8B,cAAcM,6BAG7Bz4B,IAA1BJ,EAAQ84B,gBACR94B,EAAQ84B,cAAgB94B,EAAQi5B,6BACF74B,IAA1BJ,EAAQ84B,gBACR94B,EAAQ84B,cAAgB78B,KAAKs8B,cAAcO,gBAInD,IAAII,EAAe,EACfC,EAAiBl9B,KAAKm9B,kCAAkCL,EAAWn4B,GACvE,GAAIu4B,EAAex/B,OAAS,EACxB6+B,EAAsBW,EAAgBA,EAAe,GAAGxW,QAAQ,GAAIgW,EAAcC,OAEjF,CACD,MAAMS,EAAQ,KACV,GAAKz4B,GAAYZ,EAAqB,cAKtC,GAFAk5B,GAXU,IAYVC,EAAiBl9B,KAAKm9B,kCAAkCL,EAAWn4B,GAC/Du4B,EAAex/B,OAAS,EAAG,CAC3B,MAAM2/B,EAAaH,EAAe,GAAGxW,QAAQ,GAC7C6V,EAAsBW,EAAgBG,EAAYX,EAAcC,EACxF,MACyB,GAAIM,GAAgBl5B,EAAQ84B,cAAe,CAE5CN,EAAsBW,EADQ,iBAAXpY,EAAsB,CAAExnB,KAAMwnB,GAAWA,EACjB4X,EAAcC,EACjF,MAEwBr2B,WAAW82B,EAtBL,IAuB9B,EAEgB92B,WAAW82B,EAzBG,IA0B9B,KAEQ,OAAOtB,GAAU3sB,EAAS4sB,EAAiBC,EACnD,CACI,OAAAsB,CAAQC,GACJ,MAAMC,OAA8Br5B,IAAjBo5B,OACbp5B,EACA,IAAKo5B,GACX,OAAOv9B,KAAKy9B,WAAWD,GAAYp2B,KAAKs2B,GAC7BA,EAAgBC,OAAO30B,UAE1C,CACI,OAAA0d,CAAQ6W,GAOJ,OALIA,EADwB,iBAAjBA,EACQ,CAAEjgC,KAAMigC,GAGR,IAAKA,GAEjBv9B,KAAK49B,WAAWL,EAC/B,CACI,kBAAAM,CAAmB70B,GACf,OAAOhJ,KAAK89B,sBAAsB90B,EAC1C,CACI,WAAA+0B,CAAYvyB,GACR,OAAOxL,KAAKD,KAAKi+B,cAAcxyB,EACvC,CACI,aAAAyyB,CAAczyB,GACV,OAAOxL,KAAKD,KAAKm+B,gBAAgB1yB,EACzC,CACI,WAAA2yB,CAAY3yB,GACR,OAAOxL,KAAKD,KAAKq+B,cAAc5yB,EACvC,CACI,aAAA6yB,CAAc7yB,GACV,OAAOxL,KAAKD,KAAKu+B,iBAAgB,CAACX,EAAQ9rB,KACtCrG,EAASmyB,EAAQ9rB,EAAO,GAEpC,CACI,iBAAA0sB,CAAkB/yB,GACd,OAAOxL,KAAKD,KAAKy+B,qBAAoB,CAACb,EAAQ7Y,KAC1CtZ,EAAS,CAAEmyB,SAAQ7Y,UAAS,GAExC,CACI,mBAAA2Z,CAAoBjzB,GAChB,OAAOxL,KAAKD,KAAK2+B,uBAAsB,CAACf,EAAQ7Y,KAC5CtZ,EAAS,CAAEmyB,SAAQ7Y,UAAS,GAExC,CACI,YAAM+B,CAAO0W,EAAcoB,EAAah6B,EAAQi6B,EAAmBtmB,EAAShN,GA0FxE,OAAOwwB,GAzFkBh0B,WACrB,IAAI+2B,EAOJ,GALIA,EADwB,iBAAjBtB,EACY,CAAEjgC,KAAMigC,GAGR,IAAKA,IAEvBsB,EAAiBvhC,KAClB,OAAOwI,QAAQ8H,OAAO,2JAQ1B,GANK+wB,IACDA,EAAc,CAAE,GAEfh6B,IACDA,EAAS,QAES,iBAAXA,GAAkC,QAAXA,GAA+B,SAAXA,GAAgC,aAAXA,EACvE,OAAOmB,QAAQ8H,OAAO,IAAI/N,MAAM,IAAI8E,kEAiBxC,GAfKi6B,IACDA,EAAoB,CAAE,QAEwBz6B,IAA9Cy6B,EAAkBE,0BAClBF,EAAkBE,wBAA0BF,EAAkB7B,6BACZ54B,IAA9Cy6B,EAAkBE,0BAClBF,EAAkBE,wBAA0B9+B,KAAKs8B,cAAcM,6BAG/Bz4B,IAApCy6B,EAAkB/B,gBAClB+B,EAAkB/B,cAAgB+B,EAAkB5B,6BACZ74B,IAApCy6B,EAAkB/B,gBAClB+B,EAAkB/B,cAAgB78B,KAAKs8B,cAAcO,qBAGrB14B,IAApCy6B,EAAkB/B,eAA0E,iBAApC+B,EAAkB/B,cAC1E,OAAO/2B,QAAQ8H,OAAO,IAAI/N,MAAM,IAAI++B,EAAkB/B,8DAE1D,GAA2B,iBAAhB8B,EACP,OAAO74B,QAAQ8H,OAAO,IAAI/N,MAAM,mDAAmDg/B,EAAiBvhC,SAExG,IAAIyhC,EAAmB/+B,KAAKm9B,kCAAkC0B,EAAkBl6B,GAChF,GAAgC,IAA5Bo6B,EAAiBrhC,OACjB,IACIqhC,QAAyB/+B,KAAKg/B,qBAAqBH,EAAkBl6B,EAAQi6B,EACjG,CACgB,MAAO7yB,GACH,MAOMkzB,EAAW,CACbna,OARW,IACR+Z,EACHpB,WAAY,IAAM,GAClByB,mBAAmB,EACnBC,YAAaN,EAAiBM,aAAe,GAC7CC,MAAOP,EAAiBO,OAAOC,UAAY,CAAA,GAI3CC,YAAaX,EACbpxB,QAAS,kCAAkC1G,KAAKC,UAAUy2B,yBAAoC12B,KAAKC,UAAUnC,KAC7G46B,iBAAap7B,EACbq7B,cAAUr7B,EACVsO,YAAQtO,GAEZ,OAAO2B,QAAQ8H,OAAOqxB,EAC1C,CAEY,MAAM/qB,EAAU0qB,EAAkBE,wBAC5BW,EAAwBb,EACxBc,EAAiBX,EAAiB33B,KAAKu4B,IACzC,MAAMC,EAAQlsB,EAAO,IACfoR,EAAS6a,EAAkBjZ,QAAQ,GACnCiX,EAASgC,EAAkBhC,OAC3BkC,EAAgB7/B,KAAKmB,SAAS8L,OAAO4Z,OAAO+Y,EAAO9a,EAAQ6Z,EAAahB,EAAQ8B,GACtF,OAAO35B,QAAQg6B,KAAK,CAChBD,EACA5D,GAAY/nB,EAAS2rB,EAAe,CAChCE,aAAcH,EACdryB,QAAS,uBAAuB2G,kCAAwC4Q,GAAQxnB,0BAA0BuJ,KAAKC,UAAU62B,EAAO30B,uBAAuBnC,KAAKC,UAAU24B,KACtKhtB,OAAQ2pB,GAAav8B,SAE3B,IAEAmgC,QAA2Bl6B,QAAQsf,IAAIsa,GACvClzB,EAAUxM,KAAKigC,uBAAuBD,EAAoBnB,EAAkBF,GAElF,OADoBqB,EAAmBnK,OAAOjyB,GAAWA,EAAO6O,SAAW2pB,GAAav8B,QAE7EiG,QAAQ8H,OAAOpB,GAEnBA,CAAO,EAED0zB,GAAoB5nB,EAAShN,EACtD,CACI,sBAAA20B,CAAuBE,EAAmBrb,EAAQsb,GAC9C,MAAMC,EAAoBF,EACrB99B,QAAQi+B,GAAkBA,EAAc7tB,SAAW2pB,GAAamE,UAChEzjC,QAAO,CAAC0jC,EAAWC,IACpBD,EAAY,IACLA,EACH,CACIjB,YAAakB,EAAaz3B,SAC1Bw2B,SAAUiB,EAAa78B,OACvB07B,YAAac,EACbtb,SACAvX,QAASkzB,EAAalzB,QACtBkF,OAAQguB,EAAahuB,UAI9B,IACGiuB,EAAaP,EACd99B,QAAQi+B,GAAkBA,EAAc7tB,SAAW2pB,GAAav8B,QAChE/C,QAAO,CAAC6jC,EAAWC,IACpBD,EAAY,IACLA,EACH,CACIpB,YAAaqB,EAAU53B,SACvBs2B,YAAac,EACb9iC,KAAMwnB,EAAOxnB,KACbiQ,QAASqzB,EAAUrzB,WAI5B,IACGszB,EAAYV,EAAkB,GAWpC,MAVe,CACXrb,SACAwa,YAAac,EACbZ,SAAUqB,EAAUj9B,OACpB27B,YAAasB,EAAU73B,SACvBq3B,oBACAK,aACAnzB,QAASszB,EAAUtzB,QACnBkF,OAAQouB,EAAUpuB,OAG9B,CACI,oBAAAusB,CAAqBH,EAAkBl6B,EAAQi6B,GAC3C,OAAO,IAAI94B,SAAQ,CAACC,EAAS6H,KACzB,GAAwC,IAApCgxB,EAAkB/B,cAElB,YADAjvB,IAIJ,IAAIqvB,EAAe,EACnB,MAaM6D,EAAWt6B,aAbH,KACVy2B,GAHc,IAId,MAAM8B,EAAmB/+B,KAAKm9B,kCAAkC0B,EAAkBl6B,GAClF,GAAIo6B,EAAiBrhC,OAAS,EAC1Bwb,cAAc4nB,GACd/6B,EAAQg5B,QAEP,GAAI9B,IAAiB2B,EAAkB/B,eAAiB,KAGzD,OAFA3jB,cAAc4nB,QACdlzB,GAEpB,GAb8B,IAe4B,GAE1D,CACI,cAAAmzB,CAAep8B,EAAQ+4B,GACnB,GAAsB,iBAAX/4B,EAkBN,CACD,IAAIq8B,EAKAA,EAJC1iC,MAAMC,QAAQoG,GAIDA,EAHA,CAACA,GAWnB,OAN2Bq8B,EAAYlkC,QAAO,CAACmkC,EAAS5+B,KACpD,MAAM6+B,EAAYxD,EAAgBr7B,QAAQ8+B,GAC/BnhC,KAAKohC,cAAc/+B,EAAQ8+B,EAAiBxD,OAAO30B,YAE9D,OAAOi4B,EAAQ5iC,OAAO6iC,EAAU,GACjC,GAEf,CAhCY,GAAe,QAAXv8B,EACA,MAAO,IAAI+4B,GAEV,GAAe,SAAX/4B,EAAmB,CACxB,MAAM08B,EAAe3D,EAChB/jB,MAAM3W,GAAMA,EAAE26B,OAAO30B,SAASs4B,UACnC,GAAID,EACA,MAAO,CAACA,GAEZ,QAA2Bl9B,IAAvBu5B,EAAgB,GAChB,MAAO,CAACA,EAAgB,GAE5C,MACiB,GAAe,aAAX/4B,EACL,OAAO+4B,EAAgBr7B,QAAO,EAAGs7B,YAAaA,EAAO30B,SAASK,SAAWrJ,KAAKgJ,SAASK,SAmB/F,MAAO,EACf,CACI,aAAA+3B,CAAcG,EAAgBC,GAK1B,OAJID,GAAgBl4B,QAAUk4B,GAAgBv4B,iBAC1Cu4B,EAAiB,IAAKA,IACAl4B,OAEnBrJ,KAAKyhC,cAAcF,EAAgBC,EAClD,CACI,WAAAE,CAAYnE,EAAcsB,GACtB,OAAO7+B,KAAKyhC,cAAclE,EAAcsB,EAChD,CACI,aAAA4C,CAAcp/B,EAAQs/B,GAalB,OAZoB/kC,OAAOC,KAAKwF,GAC3BA,QAAQu/B,QACez9B,IAAjB9B,EAAOu/B,IACU,OAAjBv/B,EAAOu/B,IACiB,mBAAjBv/B,EAAOu/B,IACL,iBAATA,GACS,iBAATA,GACS,OAATA,GACS,cAATA,GACS,eAATA,GACY,MAAZA,EAAK,KAEG/L,OAAO+L,IACtB,IAAIC,EACJ,MAAMC,EAAcz/B,EAAOu/B,GACrBG,EAAkBJ,EAAWC,GACnC,OAAQA,GACJ,IAAK,cACDC,GAAWC,GAAe,IAAIjM,OAAOmM,IACzBD,GAAmB,IAAIl2B,SAASm2B,KAE5C,MACJ,IAAK,QACDH,EAAUnM,GAASqM,GAAmB,CAAA,EAAID,GAAe,CAAA,GACzD,MACJ,QACID,EAAUjS,OAAOkS,GAAa98B,gBAAkB4qB,OAAOmS,GAAiB/8B,cAEhF,OAAO68B,CAAO,GAE1B,CACI,UAAAjE,CAAWL,GACP,QAAqBp5B,IAAjBo5B,EACA,OAAOv9B,KAAKD,KAAK69B,aAKrB,OAHgB59B,KAAKD,KAAK69B,aAAav7B,QAAQyiB,GACpC9kB,KAAK0hC,YAAYnE,EAAczY,IAGlD,CACI,qBAAAgZ,CAAsByD,GAClB,MACMU,EADajiC,KAAKD,KAAK09B,aACMp7B,QAAQs7B,GAChC39B,KAAKohC,cAAcG,EAAgB5D,EAAO30B,YAErD,GAA+B,IAA3Bi5B,EAAgBvkC,OAChB,MAAO,GAEX,IAAIwkC,EAAsB,CAAE,EAY5B,OAX+B,IAA3BD,EAAgBvkC,OAChBwkC,EAAsBD,EAAgB,GAAGvb,QAGzCub,EAAgB7iC,SAASu+B,IACrB/gC,OAAOC,KAAK8gC,EAAOjX,SAAStnB,SAAS+iC,IACjC,MAAMrd,EAAS6Y,EAAOjX,QAAQyb,GAC9BD,EAAoBpd,EAAOsd,YAActd,CAAM,GACjD,IAGHloB,OAAOC,KAAKqlC,GACd96B,KAAKpK,GACCklC,EAAoBllC,IAEvC,CACI,UAAAygC,CAAWF,GACP,MAAMD,EAAUt9B,KAAKD,KAAK09B,aAC1B,YAAqBt5B,IAAjBo5B,EACOD,EAAQl2B,KAAKu2B,IACT,CAAEA,SAAQjX,QAAS,OAG3B4W,EAAQxgC,QAAO,CAACulC,EAAMhnB,KACzB,MACMinB,EADmB1lC,OAAOD,OAAO0e,EAAQqL,SACNrkB,QAAQyiB,GACtC9kB,KAAK0hC,YAAYnE,EAAczY,KAK1C,OAHIwd,EAAgB5kC,OAAS,GACzB2kC,EAAKniC,KAAK,CAAEy9B,OAAQtiB,EAASqL,QAAS4b,IAEnCD,CAAI,GACZ,GACX,CACI,iCAAAlF,CAAkCI,EAAc54B,GAC5C,MAAMo6B,EAAmB/+B,KAAKy9B,WAAWF,GACzC,OAAOv9B,KAAK+gC,eAAep8B,EAAQo6B,EAC3C,EAGA,MAAMwD,GACFphC,SACAwgC,WACAtI,aACA,WAAA98B,CAAY4E,EAAUwgC,EAAYtI,GAC9Br5B,KAAKmB,SAAWA,EAChBnB,KAAK2hC,WAAaA,EAClB3hC,KAAKq5B,aAAeA,CAC5B,CACI,UAAIoD,GACA,IAAKz8B,KAAK2hC,WAAWlF,OACjB,MAAM,IAAI58B,MAAM,aAEpB,OAAOG,KAAK2hC,WAAWlF,MAC/B,CACI,aAAIlwB,GAAc,OAAOvM,KAAKq5B,aAAa9sB,WAAa,CAAA,CAAG,CAC3D,aAAIi2B,GAAc,OAAOxiC,KAAKq5B,aAAamJ,SAAU,CACrD,YAAIx5B,GACA,IAAKhJ,KAAKq5B,aAAarwB,SACnB,MAAM,IAAInJ,MAAM,eAEpB,OAAOG,KAAKq5B,aAAarwB,QACjC,CACI,KAAAgF,GACIhO,KAAKmB,SAASw8B,OAAO8E,wBAAwBziC,KAAK2hC,WAAY3hC,KAAKq5B,aAC3E,CACI,IAAAn5B,CAAKsO,GACDxO,KAAKmB,SAASw8B,OAAO+E,iBAAiB1iC,KAAK2hC,WAAY3hC,KAAKq5B,aAAc7qB,EAClF,EAGA,MAAMm0B,GACFxhC,SACAwgC,WACAiB,eACAr2B,UACAvD,SACA,WAAAzM,CAAY4E,EAAUwgC,EAAYiB,GAC9B5iC,KAAKmB,SAAWA,EAChBnB,KAAK2hC,WAAaA,EAClB3hC,KAAK4iC,eAAiBA,EACtB5iC,KAAKuM,UAAYq2B,EAAer2B,UAChCvM,KAAKgJ,SAAW45B,EAAe55B,QACvC,CACI,MAAA65B,GACI7iC,KAAKmB,SAASw8B,OAAOmF,sBAAsB9iC,KAAK4iC,eAAgB5iC,KAAK2hC,WAAY,GACzF,CACI,cAAAoB,CAAeC,GACXhjC,KAAKmB,SAASw8B,OAAOmF,sBAAsB9iC,KAAK4iC,eAAgB5iC,KAAK2hC,WAAYqB,EACzF,CACI,MAAAp1B,CAAOiE,GACH7R,KAAKmB,SAASw8B,OAAOsF,cAAcjjC,KAAK4iC,eAAgB5iC,KAAK2hC,WAAY9vB,EACjF,EAGA,IAAIqxB,GAAoB,MACpB/hC,SACAw8B,OACA,WAAAphC,CAAY4E,EAAUw8B,GAClB39B,KAAKmB,SAAWA,EAChBnB,KAAK29B,OAASA,EACdx8B,EAASw8B,OAAOwF,cAAa,CAACC,EAAIC,IAAOrjC,KAAKsjC,iBAAiBF,EAAIC,KACnEliC,EAASw8B,OAAO4F,YAAW,CAACnwB,EAAKiwB,IAAOrjC,KAAKwjC,eAAepwB,EAAKiwB,KACjEliC,EAASw8B,OAAO8F,cAAa,CAACrwB,EAAKiwB,IAAOrjC,KAAK0jC,iBAAiBtwB,EAAKiwB,IAC7E,CACI,gBAAAC,CAAiBV,EAAgBjB,GAC7B,IAAMA,IACFA,EAAWgC,iBACsD,mBAA1DhC,EAAWgC,gBAAgBC,2BAClC,OAEJ,MAAMlrB,EAAU,IAAIiqB,GAAQ3iC,KAAKmB,SAAUwgC,EAAYiB,GACvDjB,EAAWgC,gBAAgBC,2BAA2BlrB,EAC9D,CACI,cAAA8qB,CAAenK,EAAcsI,GACzB,IAAMA,IACFA,EAAWgC,iBACoD,mBAAxDhC,EAAWgC,gBAAgBE,yBAClC,OAEJ,MAAMzwB,EAAM,IAAImvB,GAAmBviC,KAAKmB,SAAUwgC,EAAYtI,GAC9DsI,EAAWgC,gBAAgBE,yBAAyBzwB,EAC5D,CACI,gBAAAswB,CAAiBrK,EAAcsI,GAC3B,IAAMA,IACFA,EAAWgC,iBACsD,mBAA1DhC,EAAWgC,gBAAgBG,2BAClC,OAEJ,MAAM1wB,EAAM,IAAImvB,GAAmBviC,KAAKmB,SAAUwgC,EAAYtI,GAC9DsI,EAAWgC,gBAAgBG,2BAA2B1wB,EAC9D,GAGA,MAAM2wB,GACF/mC,IACAmE,SACAwgC,WACA,WAAAplC,CAAYS,EAAKmE,EAAUwgC,GACvB3hC,KAAKhD,IAAMA,EACXgD,KAAKmB,SAAWA,EAChBnB,KAAK2hC,WAAaA,CAC1B,CACI,aAAAqC,GAEI,OADgBhkC,KAAKmB,SAASw8B,OAAOsG,oBAAoBjkC,KAAK2hC,WAAY3hC,KAAKhD,KAChEoK,KAAKgM,GACT,IAAImvB,GAAmBviC,KAAKmB,SAAUnB,KAAK2hC,WAAYvuB,IAE1E,CACI,KAAApF,GACIhO,KAAKmB,SAASw8B,OAAOuG,sBAAsBlkC,KAAK2hC,WAAY3hC,KAAKhD,IACzE,CACI,IAAAkD,CAAKsO,GACDxO,KAAKmB,SAASw8B,OAAOwG,SAASnkC,KAAK2hC,WAAYnzB,EAAM,CAACxO,KAAKhD,KACnE,EAGA,MAAMonC,GACFC,UACAC,YACAC,QACAjnC,KACA,WAAAf,CAAY8nC,EAAWC,EAAaC,GAChCvkC,KAAKqkC,UAAYA,EACjBrkC,KAAKskC,YAAcA,EACnBtkC,KAAKukC,QAAUA,EACfvkC,KAAK1C,KAAO0C,KAAKskC,YAAY5kC,WAAWpC,IAChD,CACI,QAAAknC,CAASxnC,GACL,MAAMynC,EAAQzkC,KAAKqkC,UAAU1G,OAAO+G,cAAc1kC,KAAKskC,aACvD,OAAItnC,EACIynC,EAAMlxB,QAAQvW,IAAO,EACd,IAAI+mC,GAAa/mC,EAAKgD,KAAKqkC,UAAWrkC,KAAKskC,kBAEtD,EAGOG,EAAMr9B,KAAKo7B,GACP,IAAIuB,GAAavB,EAAWxiC,KAAKqkC,UAAWrkC,KAAKskC,cAGxE,CACI,MAAAtB,CAAOhmC,GACH,OAAOgD,KAAKwkC,SAASxnC,EAC7B,CACI,aAAAgnC,GAEI,OADgBhkC,KAAKqkC,UAAU1G,OAAOsG,oBAAoBjkC,KAAKskC,aAChDl9B,KAAKgM,GACT,IAAImvB,GAAmBviC,KAAKqkC,UAAWrkC,KAAKskC,YAAalxB,IAE5E,CACI,cAAI1T,GACA,MAAMilC,EAAO3kC,KAAKskC,YAAY5kC,WAC9B,MAAO,CACHklC,QAASD,EAAKC,QACdxnC,YAAaunC,EAAKvnC,YAClBynC,YAAaF,EAAKE,YAClBvnC,KAAMqnC,EAAKrnC,KACX6hC,YAAawF,EAAKxF,YAClB2F,QAASH,EAAKG,QACd5F,kBAAmByF,EAAKzF,kBACxBE,MAAOuF,EAAKvF,OAAOC,SAE/B,CACI,KAAArxB,GACIhO,KAAKqkC,UAAU1G,OAAOuG,sBAAsBlkC,KAAKskC,aACjDtkC,KAAKukC,QAAQQ,WAAW/kC,KAAKskC,YAAY5kC,YAAY,EAC7D,CACI,IAAAQ,CAAKsO,EAAMg2B,GACP,GAAwB,iBAAbA,IAA0BlmC,MAAMC,QAAQimC,SAA0BrgC,IAAbqgC,EAC5D,MAAM,IAAI3kC,MAAM,qDAEpB,GAAoB,iBAAT2O,EACP,MAAM,IAAI3O,MAAM,8CAEpBG,KAAKqkC,UAAU1G,OAAOwG,SAASnkC,KAAKskC,YAAa91B,EAAMg2B,EAC/D,CACI,gBAAAQ,CAAiBrD,GACb3hC,KAAKskC,YAAc3C,CAC3B,EAGA,MAAMsD,GACF9jC,SACA+jC,iBACAC,UACAniB,YAAc,EACdoiB,uBAAyB,CAAE,EAC3B,WAAA7oC,CAAY4E,EAAU+jC,GAClBllC,KAAKmB,SAAWA,EAChBnB,KAAKklC,iBAAmBA,EACxBllC,KAAKmlC,UAAY,IAAIjC,GAAkB/hC,EAAUnB,MACjDA,KAAKmB,SAASw8B,OAAO0H,UAAUrlC,KAAKslC,gBAAgBtvB,KAAKhW,MACjE,CACI,YAAAulC,CAAaC,EAAWx6B,EAAW+wB,EAAiBC,EAAeyJ,GAC/D,MAAMt2B,EAAU,IAAIrJ,SAAQ,CAACC,EAAS6H,KAClC,IAAK43B,EAED,YADA53B,EAAO,0MAGX,IAAI83B,EAOJ,GALIA,EADqB,iBAAdF,EACkB,CAAEloC,KAAM,GAAKkoC,GAGb,IAAKA,IAE7BE,EAAuBpoC,KACxB,OAAOsQ,EAAO,4GAA4G/G,KAAKC,UAAU4+B,MAI7I,GAF0B1lC,KAAKklC,iBAAiBS,UAC3CC,MAAMC,GAAiBA,EAAanmC,WAAWpC,OAASooC,EAAuBpoC,OAEhF,OAAOsQ,EAAO,2BAA2B83B,EAAuBpoC,uEAEpEooC,EAAuBxG,mBAAoB,EACtCl0B,IACDA,EAAY,CAAE,GAEkC,mBAAzCA,EAAU44B,6BACjB54B,EAAU44B,2BAA8BlrB,IACpCA,EAAQmqB,QAAQ,GAGxB,MAAMlB,EAAa3hC,KAAKklC,iBAAiB35B,IAAI,CACzC7L,WAAYgmC,EACZ/B,gBAAiB34B,EACjB86B,cAAe,CAAE,IAErB9lC,KAAKmB,SAASw8B,OAAO4H,aAAa5D,GAC7Bl0B,MAAK,KACN,IAAIs4B,EACAN,GACAM,EAAmBN,EACnBA,EAAeT,iBAAiBrD,IAGhCoE,EAAmB,IAAI3B,GAAapkC,KAAKmB,SAAUwgC,EAAY3hC,MAEnE2hC,EAAWlF,OAASsJ,EACpBhgC,EAAQggC,EAAiB,IAExBvjC,OAAOuJ,IACJ41B,EAAWqE,QACXhmC,KAAKklC,iBAAiBe,OAAOtE,EAAWqE,QAE5Cp4B,EAAO7B,EAAI,GACb,IAEN,OAAO+vB,GAAU3sB,EAAS4sB,EAAiBC,EACnD,CACI,QAAAkK,CAASrH,EAAkBrzB,GACvB,IAAKqzB,EACD,OAAO/4B,QAAQ8H,OAAO,2JAE1B,GAAwB,mBAAbpC,EACP,OAAO1F,QAAQ8H,OAAO,6DAAyF,iBAArBixB,EAAgCA,EAAmBA,EAAiBvhC,QAElK,MAAM6oC,EAA0Br+B,MAAOzK,EAAS+oC,KAC5C,IACI,MAAMxiC,EAAS4H,EAASnO,EAAQupB,KAAMvpB,EAAQ2L,UAC9C,GAAIpF,GAAiC,mBAAhBA,EAAO6J,KAAqB,CAE7C24B,OAAejiC,QADWP,EAE9C,MAEoBwiC,OAAejiC,EAAWP,EAE9C,CACY,MAAOc,GACH0hC,EAAe1hC,GAAK,GAAIA,GAAK,GAC7C,GAGQ,OADAyhC,EAAwBE,aAAe76B,EAChCxL,KAAKsmC,aAAazH,EAAkBsH,EACnD,CACI,aAAAI,CAAc1H,EAAkBrzB,GAC5B,IAAKqzB,EACD,OAAO/4B,QAAQ8H,OAAO,2JAE1B,GAAwB,mBAAbpC,EACP,OAAO1F,QAAQ8H,OAAO,6DAAyF,iBAArBixB,EAAgCA,EAAmBA,EAAiBvhC,QAElK,MAAMkpC,EAAkB1+B,MAAOzK,EAAS+oC,KACpC,IACI,IAAIK,GAAe,EACnB,MAAMnuB,EAAW1U,IACR6iC,GACDL,OAAejiC,EAAWP,GAE9B6iC,GAAe,CAAI,EAEjBn7B,EAAS5G,IACN+hC,IACI/hC,IACDA,EAAI,IAER0hC,EAAe1hC,EAAGA,IAEtB+hC,GAAe,CAAI,EAEjBC,EAAel7B,EAASnO,EAAQupB,KAAMvpB,EAAQ2L,SAAUsP,EAAShN,GACnEo7B,GAA6C,mBAAtBA,EAAaj5B,MACpCi5B,EACKj5B,KAAK6K,GACL9V,MAAM8I,EAE/B,CACY,MAAO5G,GACH0hC,EAAe1hC,OAAGP,EAClC,GAGQ,OADAqiC,EAAgBG,kBAAoBn7B,EAC7BxL,KAAKsmC,aAAazH,EAAkB2H,EACnD,CACI,gBAAMzB,CAAWxH,EAAcqJ,GAAY,GACvC,QAAqBziC,IAAjBo5B,EACA,OAAOz3B,QAAQ8H,OAAO,gGAE1B,GAA4B,mBAAjB2vB,EAEP,kBADMv9B,KAAK6mC,wBAAwBtJ,EAAcqJ,GAGrD,IAAI/H,EAOJ,GALIA,EADwB,iBAAjBtB,EACY,CAAEjgC,KAAMigC,GAGRA,OAEOp5B,IAA1B06B,EAAiBvhC,KACjB,OAAOwI,QAAQ8H,OAAO,kFAE1B,MAAMk5B,EAAoB9mC,KAAKklC,iBAAiBS,UAAUhsB,MAAMksB,GACrDA,EAAanmC,WAAWpC,OAASuhC,EAAiBvhC,OACjDuoC,EAAanmC,WAAWw/B,oBAAqB,KAAW0H,IAEpE,IAAKE,EACD,OAAOhhC,QAAQ8H,OAAO,uBAAuBixB,EAAiBvhC,wEAE5D0C,KAAK+mC,uBAAuB,CAACD,GAC3C,CACI,6BAAMD,CAAwBG,EAAiBJ,GAC3C,MAAMK,EAA2BjnC,KAAKklC,iBAAiBS,UAClDtjC,QAAQya,GAAOkqB,EAAgBlqB,EAAGpd,cAClC2C,QAAQwjC,IAAkBA,EAAanmC,WAAWw/B,oBAAqB,KAAW0H,IACvF,IAAKK,GAAgE,IAApCA,EAAyBvpC,OACtD,OAAOoI,QAAQ8H,OAAO,oBAAoBg5B,EAAY,SAAW,oDAE/D5mC,KAAK+mC,uBAAuBE,EAC1C,CACI,sBAAAF,CAAuBG,GACnB,MAAMC,EAAsB,GAW5B,OAVAD,EAAgB9nC,SAAS0lB,IACrB,MAAM3V,EAAUnP,KAAKmB,SAASw8B,OAAOoH,WAAWjgB,GAC3CrX,MAAK,KACFqX,EAAOkhB,QACPhmC,KAAKklC,iBAAiBe,OAAOnhB,EAAOkhB,OACxD,IAEYmB,EAAoBjnC,KAAKiP,GACzBnP,KAAKonC,4BAA4BtiB,EAAOplB,WAAWpC,KAAM6R,EAAQ,IAE9DrJ,QAAQsf,IAAI+hB,EAC3B,CACI,iCAAMC,CAA4BC,EAAYl4B,GAC1C,MAAM+E,EAAU,IAAIpO,SAASC,GAAYO,WAAWP,EAAS,OAC7D/F,KAAKolC,uBAAuBiC,GAAcvhC,QAAQg6B,KAAK,CAAC3wB,EAAS+E,IAAUzG,MAAK,YACrEzN,KAAKolC,uBAAuBiC,EAAW,GAE1D,CACI,kBAAMf,CAAaxhB,EAAQwiB,GACvB,IAAIzI,EAOJ,GALIA,EADkB,iBAAX/Z,EACY,CAAExnB,KAAM,GAAKwnB,GAGb,IAAKA,IAEvB+Z,EAAiBvhC,KAClB,OAAOwI,QAAQ8H,OAAO,qGAAqG/G,KAAKC,UAAUge,MAE9I,MAAMyiB,EAAuBvnC,KAAKolC,uBAAuBvG,EAAiBvhC,WACtC,IAAzBiqC,SACDA,EAIV,GAF0BvnC,KAAKklC,iBAAiBS,UAC3CC,MAAMC,GAAiBA,EAAanmC,WAAWpC,OAASuhC,EAAiBvhC,OAE1E,OAAOwI,QAAQ8H,OAAO,2BAA2BixB,EAAiBvhC,uEAEtE,GAAIuhC,EAAiBK,kBACjB,OAAOp5B,QAAQ8H,OAAO,4JAA4JixB,EAAiBvhC,8EAEvM,MAAMqkC,EAAa3hC,KAAKklC,iBAAiB35B,IAAI,CACzC7L,WAAYm/B,EACZyI,cACAxB,cAAe,CAAE,IAErB,OAAO9lC,KAAKmB,SAASw8B,OAAOuI,SAASvE,GAChCn/B,OAAOuJ,IAIR,MAHI41B,GAAYqE,QACZhmC,KAAKklC,iBAAiBe,OAAOtE,EAAWqE,QAEtCj6B,CAAG,GAErB,CACI,eAAAu5B,CAAgBkC,EAAiBzH,EAAc0H,GACtCD,GAAoBA,EAAgBF,aAGzCE,EAAgBF,YAAYG,GAAgB,CAAC17B,EAAKnI,KAC9C,GAAImI,QACA,GAAIA,EAAIwB,SAAkC,iBAAhBxB,EAAIwB,QAC1BxB,EAAMA,EAAIwB,aAET,GAAmB,iBAARxB,EACZ,IACIA,EAAMlF,KAAKC,UAAUiF,EAC7C,CACoB,MAAO27B,GACH37B,EAAM,oEAAoEnP,OAAOC,KAAKkP,IAC9G,CAGiBnI,GAGsB,iBAAXA,GAAuBtF,MAAMC,QAAQqF,MACjDA,EAAS,CAAE+jC,OAAQ/jC,IAHnBA,EAAS,CAAE,EAKf5D,KAAKmB,SAASw8B,OAAOiK,uBAAuBJ,EAAiBzH,EAAch0B,EAAKnI,EAAO,GAEnG,EAGA,MAAMikC,GACFC,QAAU,CAAE,EACZ,WAAAvrC,CAAYwrC,EAAK/+B,EAAUzB,GACvBvH,KAAK8nC,QAAQlK,WAAa,WACtB,OAAOmK,EAAIlK,mBAAmB79B,KACjC,EACDA,KAAK8nC,QAAQE,WAAa,WACtB,OAAOD,EAAIlK,mBAAmB79B,MAAMqC,QAAQhD,GAAMA,EAAE6/B,mBACvD,EACGl2B,GACAhJ,KAAKioC,qBAAqBj/B,GAE1BzB,IACAA,EAAWoV,UAAS,KAChB3c,KAAKkoC,QAAQ3gC,EAAW,IAE5BvH,KAAKkoC,QAAQ3gC,GAEzB,CACI,MAAA4gC,GACI,OAAOnoC,KAAK8nC,OACpB,CACI,OAAAI,CAAQ3gC,GACJ,IAAKA,EACD,OAEJ,MAAM4W,EAAmB5W,GAAY4W,iBAC/BnV,EAAWpM,OAAOymB,OAAO,GAAIlF,GAAoB,CAAE,EAAE,CAAE9U,OAAQ9B,GAAY8B,SACjFrJ,KAAKioC,qBAAqBj/B,EAClC,CACI,oBAAAi/B,CAAqB9pB,GACjBvhB,OAAOC,KAAKshB,GAAkB/e,SAASpC,IACnCgD,KAAK8nC,QAAQ9qC,GAAOmhB,EAAiBnhB,EAAI,IAE7CgD,KAAK8nC,QAAQM,KAAOjqB,EAAiBiqB,KACrCpoC,KAAK8nC,QAAQ9+B,SAAWmV,EAAiBnV,SACzChJ,KAAK8nC,QAAQv1B,YAAc4L,EAAiB5L,aAAemB,EAAO,IAClE1T,KAAK8nC,QAAQvuB,gBAAkB4E,EAAiB5E,gBAChDvZ,KAAK8nC,QAAQO,IAAMlqB,EAAiBkqB,KAAOlqB,EAAiBrP,SAAW8E,KAAK00B,MAAsB,KAAhB10B,KAAKC,UACvF7T,KAAK8nC,QAAQS,QAAUpqB,EAAiBoqB,QACxCvoC,KAAK8nC,QAAQU,YAAcrqB,EAAiBqqB,YAC5CxoC,KAAK8nC,QAAQW,OAAStqB,EAAiBsqB,OACvCzoC,KAAK8nC,QAAQ5vB,SAAWiG,EAAiBjG,SACzClY,KAAK8nC,QAAQxG,QAAUnjB,EAAiBmjB,UAAW,EACnDthC,KAAK8nC,QAAQ7hC,IAAMkY,EAAiBlY,IACpCjG,KAAK8nC,QAAQ/+B,QAAUoV,EAAiBpV,QACxC/I,KAAK8nC,QAAQz+B,OAAS8U,EAAiB9U,MAC/C,EAGA,MAAMq/B,GAAyB5jB,IACpB,IACAA,EACHsa,MAAOta,EAAOsa,MAAMC,UAAY,CAAA,IAGxC,MAAMsJ,GACFx7B,OACA46B,IACAzK,QAAU,CAAE,EACZsL,SACAC,aAAe,CAAE,EACjB79B,UAAY6B,IACZ,WAAAtQ,CAAY4Q,EAAQ46B,GAChB/nC,KAAKmN,OAASA,EACdnN,KAAK+nC,IAAMA,EACX,MAAM1+B,EAASrJ,KAAK+nC,IAAI/+B,SAASK,OACjCrJ,KAAK4oC,SAAW,CACZ3oC,GAAIoJ,EACJqd,QAAS,CAAE,EACX1d,SAAUhJ,KAAK+nC,IAAI/+B,SACnB8/B,QAAS9oC,KAAK+nC,IAAIgB,mBAEtB/oC,KAAKs9B,QAAQj0B,GAAUrJ,KAAK4oC,QACpC,CACI,SAAAI,CAAUl4B,EAAMm4B,GACZjpC,KAAKmN,OAAOsE,MAAM,iBAAiBw3B,KACnC,MAAM5tB,EAAUrb,KAAKs9B,QAAQ2L,GAC7B,GAAI5tB,EACA,OAAOA,EAAQpb,GAEnB,MAAM6oC,EAAU,IAAIjB,GAAgB7nC,KAAK+nC,IAAKj3B,GACxCo4B,EAAc,CAChBjpC,GAAIgpC,EACJviB,QAAS,CAAE,EACX1d,SAAU8/B,EAAQX,SAClBW,WAIJ,OAFA9oC,KAAKs9B,QAAQ2L,GAAYC,EACzBlpC,KAAKgL,UAAUoB,QAAQ,gBAAiB88B,EAAYlgC,UAC7CigC,CACf,CACI,gBAAAE,CAAiBlpC,EAAI4R,GACjB,MAAM8rB,EAAS39B,KAAKs9B,QAAQr9B,GACvB09B,GAKD39B,KAAKmN,OAAOsE,MAAM,mBAAmBxR,KAEzCrD,OAAOC,KAAK8gC,EAAOjX,SAAStnB,SAASgqC,IACjCppC,KAAKqpC,mBAAmBppC,EAAImpC,EAAS,WAElCppC,KAAKs9B,QAAQr9B,GACpBD,KAAKgL,UAAUoB,QAAQ,kBAAmBuxB,EAAO30B,SAAU6I,IAVvD7R,KAAKmN,OAAOiL,KAAK,uBAAuBnY,eAAgB4G,KAAKC,UAAUlK,OAAOC,KAAKmD,KAAKs9B,YAWpG,CACI,eAAAgM,CAAgBL,EAAUnkB,GACtB,MAAM6Y,EAAS39B,KAAKs9B,QAAQ2L,GAC5B,IAAKtL,EACD,MAAM,IAAI99B,MAAM,0BAEpB,GAAI89B,EAAOjX,QAAQ5B,EAAO7kB,IACtB,OAEJ,MAAMmiC,EAAapiC,KAAKupC,uBAAuBzkB,GACzC0kB,EAAOxpC,KACP6+B,EAAmB,CACrBuD,aACAqH,UAAW3kB,EAAO7kB,GAClB3C,KAAMwnB,EAAOxnB,KACbunC,YAAa/f,EAAO4kB,aACpBtsC,YAAa0nB,EAAO1nB,YACpB+qB,QAASrD,EAAOqD,QAChBgX,YAAara,EAAO6kB,cAAgB,GACpC/E,QAAS9f,EAAO8kB,gBAChB9E,QAAShgB,EAAO+kB,iBAChB3K,uBAA2C,IAAjBpa,EAAOsa,OAAwBta,EAAOsa,MAAM+F,UACtE/F,MAAOta,EAAOsa,OAAS,CAAE,EACzB3B,WAAY,IACD+L,EAAKM,mBAAmB1H,IAGvCvD,EAAiB8K,aAAe9K,EAAiBM,YACjDN,EAAiB6K,aAAe7K,EAAiBgG,YACjDhG,EAAiB1W,QAAU0W,EAAiB1W,QAC5CwV,EAAOjX,QAAQ5B,EAAO7kB,IAAM4+B,EAC5B,MAAMkL,EAAyBrB,GAAsB7J,GAOrD,OANK7+B,KAAK6oC,aAAazG,KACnBpiC,KAAK6oC,aAAazG,GAAc,EAChCpiC,KAAKgL,UAAUoB,QAAQ,gBAAiB29B,IAE5C/pC,KAAK6oC,aAAazG,GAAcpiC,KAAK6oC,aAAazG,GAAc,EAChEpiC,KAAKgL,UAAUoB,QAAQ,sBAAuBuxB,EAAO30B,SAAU+gC,GACxDlL,CACf,CACI,kBAAAwK,CAAmBJ,EAAUG,GACzB,MAAMzL,EAAS39B,KAAKs9B,QAAQ2L,GAC5B,IAAKtL,EACD,MAAM,IAAI99B,MAAM,0BAEpB,MAAMilB,EAAS6Y,EAAOjX,QAAQ0iB,UACvBzL,EAAOjX,QAAQ0iB,GACtB,MAAMW,EAAyBrB,GAAsB5jB,GACrD9kB,KAAK6oC,aAAa/jB,EAAOsd,YAAcpiC,KAAK6oC,aAAa/jB,EAAOsd,YAAc,EACjC,IAAzCpiC,KAAK6oC,aAAa/jB,EAAOsd,aACzBpiC,KAAKgL,UAAUoB,QAAQ,kBAAmB29B,GAE9C/pC,KAAKgL,UAAUoB,QAAQ,wBAAyBuxB,EAAO30B,SAAU+gC,EACzE,CACI,UAAAnM,GACI,OAAO59B,KAAKgqC,0BAA0BptC,OAAOD,OAAOqD,KAAKs9B,UAAUl2B,IAAIshC,GAC/E,CACI,UAAAjL,GACI,OAAO7gC,OAAOD,OAAOqD,KAAKs9B,SAASl2B,IAAIpH,KAAKiqC,4BACpD,CACI,aAAA7L,CAAc5yB,GACV,MAAM0+B,EAAkBlqC,KAAKgL,UAAUO,IAAI,gBAAiBC,GACtD2+B,EAA6BnqC,KAAKy9B,aAAar2B,KAAKpE,GAAMA,EAAEgG,WAClE,OAAOhJ,KAAKoqC,6BAA6BF,EAAiBC,EAA4B3+B,EAC9F,CACI,aAAAwyB,CAAcxyB,GACV,MAAM0+B,EAAkBlqC,KAAKgL,UAAUO,IAAI,gBAAiBC,GACtD6+B,EAAkBrqC,KAAK49B,aAC7B,OAAO59B,KAAKoqC,6BAA6BF,EAAiBG,EAAiB7+B,EACnF,CACI,mBAAAgzB,CAAoBhzB,GAChB,MAAM0+B,EAAkBlqC,KAAKgL,UAAUO,IAAI,sBAAuBC,GAClE,IAAI8+B,GAAc,EAClB,MAAMhN,EAAUt9B,KAAKy9B,aAWrB,OAVAn3B,YAAW,KACPg3B,EAAQl+B,SAASu+B,IACb,MAAMjX,EAAUiX,EAAOjX,QACvB9pB,OAAOC,KAAK6pB,GAAStnB,SAASgqC,IACrBkB,GACD9+B,EAASmyB,EAAO30B,SAAU0d,EAAQ0iB,GAC1D,GACkB,GACJ,GACH,GACI,KACHkB,GAAc,EACdJ,GAAiB,CAE7B,CACI,eAAAhM,CAAgB1yB,GAEZ,OADwBxL,KAAKgL,UAAUO,IAAI,kBAAmBC,EAEtE,CACI,eAAA8yB,CAAgB9yB,GAEZ,OADwBxL,KAAKgL,UAAUO,IAAI,kBAAmBC,EAEtE,CACI,qBAAAkzB,CAAsBlzB,GAElB,OADwBxL,KAAKgL,UAAUO,IAAI,wBAAyBC,EAE5E,CACI,aAAA++B,CAActqC,GAEV,GADeD,KAAKs9B,QAAQr9B,GAI5B,OAAOD,KAAKiqC,4BAA4BjqC,KAAKs9B,QAAQr9B,GAC7D,CACI,KAAAu0B,GACI53B,OAAOC,KAAKmD,KAAKs9B,SAASl+B,SAASpC,IAC/BgD,KAAKmpC,iBAAiBnsC,EAAK,QAAQ,IAEvCgD,KAAKs9B,QAAU,CACX,CAACt9B,KAAK4oC,SAAS3oC,IAAKD,KAAK4oC,UAE7B5oC,KAAK6oC,aAAe,CAAE,CAC9B,CACI,sBAAAU,CAAuBiB,GACnB,MAAM5F,EAAU4F,EAAWZ,iBAAmB,GACxC9E,EAAU0F,EAAWX,kBAAoB,GAC/C,OAAQW,EAAWltC,KAAOsnC,EAAUE,GAAS9/B,aACrD,CACI,kBAAA8kC,CAAmB1H,GACf,MAAMqI,EAAa,GAQnB,OAPA7tC,OAAOD,OAAOqD,KAAKs9B,SAASl+B,SAASu+B,IACjC/gC,OAAOD,OAAOghC,EAAOjX,SAAStnB,SAAS0lB,IAC/BA,EAAOsd,aAAeA,GACtBqI,EAAWvqC,KAAKy9B,EAAO30B,SAC3C,GACc,IAECyhC,CACf,CACI,4BAAAL,CAA6BF,EAAiBQ,EAAoBl/B,GAC9D,IAAI8+B,GAAc,EAQlB,OAPAhkC,YAAW,KACPokC,EAAmBtrC,SAASurC,IACnBL,GACD9+B,EAASm/B,EAC7B,GACc,GACH,GACI,KACHL,GAAc,EACdJ,GAAiB,CAE7B,CACI,2BAAAD,CAA4BtM,GACxB,MAAMiN,EAAgB,CAAE,EAIxB,OAHAhuC,OAAOmyB,QAAQ4O,EAAOjX,SAAStnB,SAAQ,EAAE9B,EAAMwnB,MAC3C8lB,EAActtC,GAAQorC,GAAsB5jB,EAAO,IAEhD,IACA6Y,EACHjX,QAASkkB,EAErB,CACI,yBAAAZ,CAA0B1M,GAItB,OAHgB1gC,OAAOD,OAAO2gC,GAASxgC,QAAO,CAAC8tC,EAAejN,IACnD,IAAIiN,KAAkBhuC,OAAOD,OAAOghC,EAAOjX,WACnD,GAEX,EAGA,MAAMmkB,GACFC,OAAS,EACTpkB,QAAU,GACV,GAAAnb,CAAIuZ,GAIA,OAHAA,EAAOkhB,OAASpW,OAAO5vB,KAAK8qC,QAC5B9qC,KAAK8qC,QAAU,EACf9qC,KAAK0mB,QAAQxmB,KAAK4kB,GACXA,CACf,CACI,MAAAmhB,CAAOD,GACH,GAAsB,iBAAXA,EACP,OAAO,IAAI+E,UAAU,sBAEzB/qC,KAAK0mB,QAAU1mB,KAAK0mB,QAAQrkB,QAAQhD,GACzBA,EAAE2mC,SAAWA,GAEhC,CACI,OAAAgF,CAAQ/qC,GACJ,GAAkB,iBAAPA,EAGX,OAAOD,KAAK0mB,QAAQ/M,MAAMta,GACfA,EAAE2mC,SAAW/lC,GAEhC,CACI,OAAA0lC,GACI,OAAO3lC,KAAK0mB,QAAQtf,KAAK/H,GAAMA,GACvC,CACI,MAAA3B,GACI,OAAOsC,KAAK0mB,QAAQhpB,MAC5B,CACI,KAAA82B,GACIx0B,KAAK0mB,QAAU,EACvB,EAGA,MAAMukB,GAAuB,wBACvBC,GAAqB,sBACrBC,GAAuB,wBAC7B,MAAMC,GACF1jC,QACA2jC,WACAnG,iBACAoG,4BAA8B,6CAC9BtgC,UAAY6B,IACZ0+B,aAAe,EACf,WAAAhvC,CAAYmL,EAAS2jC,EAAYnG,GAC7BllC,KAAK0H,QAAUA,EACf1H,KAAKqrC,WAAaA,EAClBrrC,KAAKklC,iBAAmBA,EACxBx9B,EAAQ2L,GAAG,gBAAiBlU,IACxBa,KAAKwrC,kBAAkBrsC,EAAI,IAE/BuI,EAAQ2L,GAAG,mBAAoBlU,IAC3Ba,KAAKyrC,qBAAqBtsC,EAAI,GAE1C,CACI,qBAAA2jC,CAAsBF,EAAgB8I,EAAiB1I,GAInD,GAHsB,iBAAXA,IACPA,EAAS,IAEiD,iBAAnD0I,EAAgB5F,cAAc6F,iBACrC,MAAM,IAAIZ,UAAU,sDAExB,IAAKzsC,MAAMC,QAAQmtC,EAAgB5F,cAAc8F,wBAC7C,MAAM,IAAIb,UAAU,iDAExB,MAAMc,EAAW7rC,KAAK8rC,YAAYJ,EAAiB1I,GAC7ChmC,EAAM4lC,EAAezjC,IAAI4sC,gBACzB1S,EAAe,CACjBp5B,GAAIjD,EACJuP,UAAWq2B,EAAer2B,UAC1BvD,SAAU45B,EAAe55B,SACzBw5B,UAAWQ,EACX6I,WACAG,aAAcpJ,EAAezjC,KAEjCusC,EAAgB5F,cAAc6F,iBAAiB3uC,GAAOq8B,EACtDr5B,KAAK0H,QAAQc,kBAAkB,CAC3BpM,KAAM,WACN2vC,gBAAiB/uC,EACjBivC,UAAWJ,IAEf7rC,KAAKgL,UAAUoB,QAAQ8+B,GAAoB7R,EAAcqS,EACjE,CACI,aAAAzI,CAAcL,EAAgB8I,EAAiB75B,GACrB,iBAAXA,IACPA,EAAS,IAEb7R,KAAKksC,uBAAuB,kCAAoCr6B,EAAQ+wB,EAAezjC,IAAI4sC,gBACnG,CACI,QAAA5H,CAASuH,EAAiBl9B,EAAMg2B,GAC5B,GAA+B,iBAApBkH,IAAiCptC,MAAMC,QAAQmtC,EAAgB5F,cAAc8F,wBACpF,OAEJ,GAAoB,iBAATp9B,EACP,MAAM,IAAI3O,MAAM,8CAEI,iBAAb2kC,EACPA,EAAW,CAACA,KAENlmC,MAAMC,QAAQimC,IAAaA,EAAS9mC,QAAU,KACpD8mC,EAAW,IAEMkH,EAAgB5F,cAAc8F,uBAC9CvpC,QAAQ8pC,IACJ3H,GAAgC,IAApBA,EAAS9mC,QAGnB8mC,EAASjxB,QAAQ44B,EAAGnvC,MAAQ,IACpCoK,KAAK+kC,GACGA,EAAGN,WAEDzsC,SAASysC,IAClB,MAAMzlB,EAAiB,CACnBhqB,KAAM,UACN6vC,UAAWJ,EACXr9B,QAEJxO,KAAK0H,QAAQc,kBAAkB4d,EAAe,GAE1D,CACI,gBAAAsc,CAAiB5d,EAAQuU,EAAc7qB,GACnC,GAAoB,iBAATA,EACP,MAAM,IAAI3O,MAAM,8CAEpB,MAAM4O,EAAc,CAChBrS,KAAM,OACN2vC,gBAAiB1S,EAAap5B,GAC9BuO,QAEJxO,KAAK0H,QAAQc,kBAAkBiG,EACvC,CACI,uBAAAg0B,CAAwBiJ,EAAiBrS,GACjCqS,EAAgB5F,cAAc6F,yBACvBD,EAAgB5F,cAAc6F,iBAAiBtS,EAAap5B,IAEvE,MAAMmsC,EAA0B,CAC5BhwC,KAAM,oBACN2vC,gBAAiB1S,EAAap5B,GAC9B4R,OAAQ,yCAEZ7R,KAAK0H,QAAQc,kBAAkB4jC,GAC/B/S,EAAarwB,SACbhJ,KAAKgL,UAAUoB,QAAQ++B,GAAsB9R,EAAcqS,EACnE,CACI,0BAAAW,CAA2BX,EAAiBlJ,GACxC,GAA+B,iBAApBkJ,GAA0F,iBAAnDA,EAAgB5F,cAAc6F,iBAC5E,OAEJ,IAAKD,EAAgB5F,cAAc6F,iBAC/B,OAEJ,MAAMA,EAAmBD,EAAgB5F,cAAc6F,iBACvD,IAAIW,EAAuB1vC,OAAOC,KAAK8uC,GAClCvkC,KAAKpK,GACC2uC,EAAiB3uC,KAEH,iBAAdwlC,IACP8J,EAAuBA,EAAqBjqC,QAAQ+Q,GACzCA,EAAIovB,YAAcA,KAGjC8J,EAAqBltC,SAASi6B,WACnBsS,EAAiBtS,EAAap5B,IACrC,MAAMssC,EAAO,CACTnwC,KAAM,oBACN2vC,gBAAiB1S,EAAap5B,GAC9B4R,OAAQ,mDAAqDwnB,EAAawS,UAE9E7rC,KAAK0H,QAAQc,kBAAkB+jC,EAAK,GAEhD,CACI,mBAAAtI,CAAoByH,EAAiBlJ,GACjC,GAA+B,iBAApBkJ,EACP,MAAO,GAEX,IAAI1H,EAAgB,GACpB,IAAK0H,EAAgB5F,cAAc6F,iBAC/B,MAAO,GAEX,MAAMA,EAAmBD,EAAgB5F,cAAc6F,iBACjDa,EAAmB5vC,OAAOC,KAAK8uC,GAChCvkC,KAAKpK,GACC2uC,EAAiB3uC,KAU5B,OAPIgnC,EADqB,iBAAdxB,EACSgK,EAGAA,EAAiBnqC,QAAQ+Q,GAC9BA,EAAIovB,YAAcA,IAG1BwB,CACf,CACI,aAAAU,CAAcgH,GACV,GAA+B,iBAApBA,EACP,MAAO,GAEX,IAAKA,EAAgB5F,cAAc6F,iBAC/B,MAAO,GAEX,MAAMA,EAAmBD,EAAgB5F,cAAc6F,iBACjDa,EAAmB5vC,OAAOC,KAAK8uC,GAChCvkC,KAAKpK,GACC2uC,EAAiB3uC,KAEtB4G,EAAS,GAUf,OATA4oC,EAAiBptC,SAASgU,IACtB,IAAI4vB,EAAS,GACM,iBAAR5vB,GAA6C,iBAAlBA,EAAIovB,YACtCQ,EAAS5vB,EAAIovB,YAEc,IAA3B5+B,EAAO2P,QAAQyvB,IACfp/B,EAAO1D,KAAK8iC,EAC5B,IAEep/B,CACf,CACI,UAAA2/B,CAAW/3B,GACPxL,KAAKysC,4BAA4BvB,GAAoB1/B,EAC7D,CACI,YAAA23B,CAAa33B,GACTxL,KAAKysC,4BAA4BxB,GAAsBz/B,EAC/D,CACI,YAAAi4B,CAAaj4B,GACTxL,KAAKysC,4BAA4BtB,GAAsB3/B,EAC/D,CACI,oBAAAigC,CAAqBtsC,GACjB,MAAMusC,EAAkB1rC,KAAKklC,iBAAiB8F,QAAQ7rC,EAAIutC,WAC1D,GAAmC,iBAAxBvtC,EAAI4sC,iBACgB,iBAApBL,EACP,OAEJ,IAAKA,EAAgB5F,cAAc6F,iBAC/B,OAEJ,GAAmF,iBAAxED,EAAgB5F,cAAc6F,iBAAiBxsC,EAAI4sC,iBAC1D,OAEJ,MAAM1S,EAAeqS,EAAgB5F,cAAc6F,iBAAiBxsC,EAAI4sC,wBACjEL,EAAgB5F,cAAc6F,iBAAiBxsC,EAAI4sC,iBAC1D/rC,KAAKgL,UAAUoB,QAAQ++B,GAAsB9R,EAAcqS,EACnE,CACI,2BAAAe,CAA4BE,EAAWC,GACnC5sC,KAAKgL,UAAUO,IAAIohC,EAAWC,EACtC,CACI,eAAAC,GACI,OAAO7sC,KAAKurC,eAAiB,EACrC,CACI,iBAAAC,CAAkBrsC,GACd,MAAM2tC,EAAS9sC,KAAKqrC,WAAWd,cAAcprC,EAAI4tC,WAC3C/jC,EAAW8jC,GAAQ9jC,UAAY,CAAE,EACjC45B,EAAiB,CACnBzjC,MACAoN,UAAWpN,EAAI6tC,cAAgB,CAAE,EACjChkC,YAEE0iC,EAAkB1rC,KAAKklC,iBAAiB8F,QAAQ7rC,EAAIutC,WAC1D,QAAwBvoC,IAApBunC,EAKAA,EAAgB5F,cAAc6F,kBAC9BD,EAAgB5F,cAAc6F,iBAAiBxsC,EAAI4sC,iBACnD/rC,KAAKksC,uBAAuB,0BAA4B/sC,EAAI4sC,gBAAkB,mBAAoB5sC,EAAI4sC,iBAG1G/rC,KAAKgL,UAAUoB,QAAQ6+B,GAAsBrI,EAAgB8I,OAV7D,CACI,MAAM3xB,EAAW,qBAAuB5a,EAAIutC,UAAY,mBACxD1sC,KAAKksC,uBAAuBnyB,EAAU5a,EAAI4sC,gBAEtD,CAOA,CACI,sBAAAG,CAAuBr6B,EAAQo7B,GAC3B,MAAMC,EAAe,CACjB9wC,KAAM,QACN+wC,WAAYntC,KAAKsrC,4BACjBz5B,SACAuL,WAAY6vB,GAEhBjtC,KAAK0H,QAAQc,kBAAkB0kC,EACvC,CACI,WAAApB,CAAYJ,EAAiBlJ,GAIzB,GAHyB,iBAAdA,IACPA,EAAY,KAEXkJ,EAAgB5F,cAAc8F,uBAC/B,MAAM,IAAI/rC,MAAM,aAAa6rC,EAAgBhsC,WAAWpC,sCAE5D,MAAM8vC,EAAe1B,EAAgB5F,cAAc8F,uBAAuBvpC,QAAQ2gC,GACvEA,EAAOhmC,MAAQwlC,IACvB,GACH,IAAIqJ,EAAYuB,EAAeA,EAAavB,cAAW1nC,EAKvD,MAJwB,iBAAb0nC,GAAsC,KAAbA,IAChCA,EAAW7rC,KAAK6sC,kBAChBnB,EAAgB5F,cAAc8F,uBAAuB1rC,KAAK,CAAElD,IAAKwlC,EAAWqJ,cAEzEA,CACf,EAGA,MAAMwB,GACF3lC,QACA4lC,iBACApI,iBACA/3B,OACAnC,UAAY6B,IACZs4B,UACA,WAAA5oC,CAAYmL,EAAS4lC,EAAkBpI,EAAkB/3B,GACrDnN,KAAK0H,QAAUA,EACf1H,KAAKstC,iBAAmBA,EACxBttC,KAAKklC,iBAAmBA,EACxBllC,KAAKmN,OAASA,EACdnN,KAAKmlC,UAAY,IAAIiG,GAAgB1jC,EAAS4lC,EAAkBpI,GAChEllC,KAAK0H,QAAQ2L,GAAG,UAAWlU,GAAQa,KAAKutC,oBAAoBpuC,IACpE,CACI,YAAAomC,CAAa5D,GAGT,OAFAA,EAAWmE,cAAc6F,iBAAmB,CAAE,EAC9ChK,EAAWmE,cAAc8F,uBAAyB,GAC3C5rC,KAAKkmC,SAASvE,GAAY,EACzC,CACI,QAAAuE,CAASvE,EAAY6L,GACjB,MAAM1Q,EAAY6E,EAAWjiC,WACvB0/B,EAAQxiC,OAAOymB,OAAO,CAAE,EAAE,CAAEgc,SAAUvC,EAAUsC,OAAS,CAAE,GAAI,CAAE+F,UAAWqI,IAAe,IAC3FC,EAAc,CAChBrxC,KAAM,WACNsqB,QAAS,CAAC,CACFzmB,GAAI0hC,EAAWqE,OACf1oC,KAAMw/B,EAAUx/B,KAChBosC,aAAc5M,EAAU+H,YACxBznC,YAAa0/B,EAAU1/B,YACvB+qB,QAAS2U,EAAU3U,QACnBiX,QACAuK,aAAc7M,EAAUqC,aAAerC,EAAU6M,aACjDC,gBAAiB9M,EAAU8H,QAC3BiF,iBAAkB/M,EAAUgI,QAC5B4I,kBAAcvpC,KAG1B,OAAOnE,KAAK0H,QAAQQ,KAAKulC,EAAa,CAAErE,SAAUzH,EAAWqE,SACxDv4B,MAAK,KACNzN,KAAKmN,OAAOsE,MAAM,qBAAuBkwB,EAAWjiC,WAAWpC,KAAO,YAAcqkC,EAAWqE,OAAO,IAErGxjC,OAAOrD,IAER,MADAa,KAAKmN,OAAOiL,KAAK,6BAA6BupB,EAAWjiC,WAAWpC,gBAAgBqkC,EAAWqE,YAAYn/B,KAAKC,UAAU3H,MACpHA,CAAG,GAErB,CACI,SAAAkmC,CAAU75B,GACNxL,KAAKgL,UAAUO,IAAI,YAAaC,EACxC,CACI,sBAAAo8B,CAAuB9iB,EAAQib,EAAch0B,EAAKnI,GAC9C,IAAIzE,EAEAA,EADA4M,GAAe,KAARA,EACD,CACF3P,KAAM,QACNghB,WAAY2iB,EACZoN,WAAY,0BACZt7B,OAAQ9F,EACR1O,QAASuG,EACTwF,aAASjF,GAIP,CACF/H,KAAM,QACNuxC,cAAe5N,EACf32B,QAASpJ,KAAK0H,QAAQ2B,OACtBzF,SACAwZ,gBAAYjZ,GAGpBnE,KAAK0H,QAAQc,kBAAkBrJ,EACvC,CACI,gBAAM4lC,CAAWjgB,GACb,MAAM3lB,EAAM,CACR/C,KAAM,aACNsqB,QAAS,CAAC5B,EAAOkhB,eAEfhmC,KAAK0H,QAAQQ,KAAK/I,EAChC,CACI,aAAAulC,CAAc5f,GACV,OAAO9kB,KAAKmlC,UAAUT,cAAc5f,EAC5C,CACI,mBAAAmf,CAAoBnf,EAAQ0d,GACxB,OAAOxiC,KAAKmlC,UAAUlB,oBAAoBnf,EAAQ0d,EAC1D,CACI,qBAAA0B,CAAsBpf,EAAQ0d,GAC1BxiC,KAAKmlC,UAAUkH,2BAA2BvnB,EAAQ0d,EAC1D,CACI,QAAA2B,CAASrf,EAAQtW,EAAMg2B,GACnBxkC,KAAKmlC,UAAUhB,SAASrf,EAAQtW,EAAMg2B,EAC9C,CACI,gBAAA9B,CAAiB5d,EAAQuU,EAAc7qB,GACnCxO,KAAKmlC,UAAUzC,iBAAiB5d,EAAQuU,EAAc7qB,EAC9D,CACI,uBAAAi0B,CAAwB3d,EAAQuU,GAC5Br5B,KAAKmlC,UAAU1C,wBAAwB3d,EAAQuU,EACvD,CACI,qBAAAyJ,CAAsBF,EAAgB9d,EAAQke,GAC1ChjC,KAAKmlC,UAAUrC,sBAAsBF,EAAgB9d,EAAQke,EACrE,CACI,aAAAC,CAAcL,EAAgB9d,EAAQjT,GAClC7R,KAAKmlC,UAAUlC,cAAcL,EAAgB9d,EAAQjT,EAC7D,CACI,YAAAsxB,CAAa33B,GACTxL,KAAKmlC,UAAUhC,aAAa33B,EACpC,CACI,UAAA+3B,CAAW/3B,GACPxL,KAAKmlC,UAAU5B,WAAW/3B,EAClC,CACI,YAAAi4B,CAAaj4B,GACTxL,KAAKmlC,UAAU1B,aAAaj4B,EACpC,CACI,mBAAA+hC,CAAoBpuC,GAChB,MAAM4gC,EAAe5gC,EAAIwuC,cACnBC,EAAWzuC,EAAI4tC,UACf3D,EAAWjqC,EAAIutC,UACf9lB,EAAOznB,EAAI6tC,aAEXloB,EADa9kB,KAAKklC,iBAAiBS,UACftjC,QAAQhD,GACvBA,EAAE2mC,SAAWoD,IACrB,GACH,QAAejlC,IAAX2gB,EACA,OAEJ,MAAM7X,EAASjN,KAAKstC,iBAAiB/C,cAAcqD,IAAW5kC,SACxDy+B,EAAiB,CAAE7gB,OAAM5d,SAAUiE,GACzCjN,KAAKgL,UAAUoB,QAAQ,YAAa0Y,EAAQib,EAAc0H,EAClE,EAGA,MAAMoG,GACFxC,WACAyC,iBACA,oBAAIC,GACA,OAAO/tC,KAAK8tC,iBAAiBE,OAAOzhC,WAAa,CAAE,CAC3D,CACI,WAAI+wB,GACA,OAAOt9B,KAAK8tC,iBAAiBG,eAAenxC,QAAO,CAACwgC,EAAS/R,KACzD,GAAIA,EAAK0hB,eAAgB,CACrB,MAAMtP,EAAS39B,KAAKqrC,WAAWd,cAAchf,EAAK0d,WAAWjgC,SACzD20B,GACAL,EAAQp9B,KAAKy9B,EAEjC,CACY,OAAOL,CAAO,GACf,GACX,CACI,kBAAI4Q,GACA,OAAOluC,KAAKs9B,QAAQ,EAC5B,CACI,UAAIb,GACA,OAAOz8B,KAAK8tC,iBAAiBhpB,MACrC,CACI,WAAAvoB,CAAY8uC,EAAYyC,GACpB9tC,KAAKqrC,WAAaA,EAClBrrC,KAAK8tC,iBAAmBA,CAChC,CACI,MAAAK,CAAOC,GACH,GAA4B,mBAAjBA,EACP,MAAM,IAAIrD,UAAU,yCAExB/qC,KAAK8tC,iBAAiB3rB,SAASgsB,OAAOjuC,KAAKkuC,GACU,IAAjDpuC,KAAK8tC,iBAAiB3rB,SAASgsB,OAAOzwC,QAAgBsC,KAAK8tC,iBAAiBO,OAAO7/B,KAAK9Q,OAAS,GACjGsC,KAAK8tC,iBAAiBO,OAAO7/B,KAAKpP,SAASkvC,IACvCF,EAAaE,EAAS,GAGtC,CACI,QAAAC,CAASC,GACL,GAA8B,mBAAnBA,EACP,MAAM,IAAIzD,UAAU,oCAExB/qC,KAAK8tC,iBAAiB3rB,SAASosB,SAASruC,KAAKsuC,EACrD,CACI,QAAAC,CAASjjC,GACb,CACI,WAAAkjC,CAAYljC,GACR,GAAwB,mBAAbA,EACP,MAAM,IAAIu/B,UAAU,oCAExB/qC,KAAK8tC,iBAAiB3rB,SAASusB,YAAYxuC,KAAKsL,EACxD,CACI,KAAAwC,GACIhO,KAAK8tC,iBAAiB9/B,OAC9B,CACI,kBAAA2gC,CAAmBC,GACf5uC,KAAK8tC,iBAAmBc,CAChC,EAGA,MAAMC,GACFrnC,OACAqsB,MAAQ,GACRib,WAAa,GACb,WAAAvyC,CAAYiL,GACRxH,KAAKwH,OAASA,CACtB,CACI,GAAA+D,CAAIW,GACA,MAAMjM,EAAKyT,EAAO,IAClB1T,KAAK6zB,MAAM3zB,KAAK,CAAED,KAAIiM,YACtB,MAAM6iC,EAAYzoC,YAAW,KACzB,MAAM0oC,EAAahvC,KAAK6zB,MAAMob,WAAW5xB,GAAUA,EAAMpd,KAAOA,IAC5D+uC,EAAa,GAGjBhvC,KAAK6zB,MAAMnG,OAAOshB,EAAY,EAAE,GACjChvC,KAAKwH,OAAO0nC,gBACflvC,KAAK8uC,WAAW5uC,KAAK6uC,EAC7B,CACI,KAAAI,GACI,MAAMC,EAAWpvC,KAAK6zB,MAAMzsB,KAAKiW,GAAUA,EAAMnR,UAIjD,OAHAlM,KAAK8uC,WAAW1vC,SAASa,GAAOiZ,cAAcjZ,KAC9CD,KAAK6zB,MAAQ,GACb7zB,KAAK8uC,WAAa,GACXM,CACf,EAGA,MAAMC,GAAyB,iBACzBC,GAAoB,aACpBC,GAAqB,uBAGrBC,GAA2B,kBACjC,MAAMC,GACF/nC,QACA2jC,WACAl+B,OACAuiC,kBAAoB,CAAE,EACtBC,WAAa,IAAId,GAAW,CAAEK,eAAgB,MAC9CU,4BAA8B,CAAE,EAChCC,gBAAkB,EAClB,WAAAtzC,CAAYmL,EAAS2jC,EAAYl+B,GAC7BnN,KAAK0H,QAAUA,EACf1H,KAAKqrC,WAAaA,EAClBrrC,KAAKmN,OAASA,EACdzF,EAAQ2L,GAAG,aAAcrT,KAAK8vC,kBAC9BpoC,EAAQ2L,GAAG,QAASrT,KAAK+vC,iBACzBroC,EAAQ2L,GAAG,yBAA0BrT,KAAKgwC,4BAClD,CACI,SAAAjX,CAAU2S,EAAiBsC,EAAQxR,EAAelkB,EAAShN,EAAO0a,GAC9D,GAA6B,IAAzBwW,EAAc9+B,OAMd,YALA4N,EAAM,CACFwZ,OAAQ4mB,EACRpM,YAAa0O,EAAOzhC,UACpBgB,QAASgiC,GAAqB,qDAItC,MAAMU,EAAcjwC,KAAKkwC,8BACnBC,EAAanwC,KAAKowC,qBAAqBH,EAAavE,EAAiBsC,EAAQ11B,EAAShN,EAAO0iC,EAAOpR,uBAAyB,IAAO5W,GAChH,iBAAfmqB,EAQX3T,EAAcp9B,SAASuF,IACnB,MAAMskC,EAAWtkC,EAAOg5B,OAAO19B,GACzB6kB,EAASngB,EAAO+hB,QAAQ/M,MAAMta,GAAMA,EAAE/B,OAASouC,EAAgBpuC,OACrE,IAAKwnB,EAED,YADA9kB,KAAKmN,OAAO7B,MAAM,uBAAuBogC,EAAgBpuC,mBAAmBqH,EAAOg5B,OAAO19B,MAG9FkwC,EAAWlC,eAAe/tC,KAAK,CAC3B+oC,WACAgE,oBAAgB9oC,IAEpB,MAAMhF,EAAM,CACR/C,KAAM,YACNi0C,UAAWpH,EACXyD,UAAW5nB,EAAO2kB,UAClBuD,aAAcgB,EAAOzhC,WAEzBvM,KAAK0H,QAAQQ,KAAK/I,EAAK,CAAE8pC,WAAUgH,gBAC9BxiC,MAAMpO,GAAMW,KAAK8vC,iBAAiBzwC,KAClCmD,OAAOuJ,GAAQ/L,KAAKswC,uBAAuBvkC,IAAK,IA1BrDT,EAAM,CACFwZ,OAAQ4mB,EACRpM,YAAa0O,EAAOzhC,UACpBgB,QAASgiC,GAAqB,2CAyB9C,CACI,kBAAAgB,GACI,MAAMhuC,EAAW3F,OAAOD,OAAOqD,KAAK0vC,mBAGpC,OAFA1vC,KAAK0vC,kBAAoB,CAAE,EAC3B1vC,KAAK4vC,4BAA8B,CAAE,EAC9BrtC,CACf,CACI,uBAAAiuC,GACI,OAAOxwC,KAAK2vC,WAAWR,OAC/B,CACI,2BAAAe,GACI,MAAM70B,EAAUrb,KAAK6vC,gBAErB,OADA7vC,KAAK6vC,iBAAmB,EACjBx0B,CACf,CACI,oBAAA+0B,CAAqBH,EAAanrB,EAAQkpB,EAAQ11B,EAAShN,EAAO4I,EAAS8R,GACvE,MAAMyqB,EAAW,CACbC,SAAUT,EACVx9B,OAAQ48B,GACRvqB,SACAkpB,SACA11B,UACAhN,QACA2iC,eAAgB,GAChB9rB,SAAU,CACNgsB,OAAQnoB,GAAa7D,SAASgsB,QAAU,GACxCI,SAAUvoB,GAAa7D,SAASosB,UAAY,GAC5CG,YAAa1oB,GAAa7D,SAASusB,aAAe,IAEtDL,OAAQ,CACJ7/B,KAAM,GACNmiC,QAAS,IAEb5B,eAAW5qC,EACX6J,MAAO,IAAMhO,KAAK4wC,kBAAkBX,GACpC5W,aAAcrT,GAAaqT,cAsC/B,OApCKrT,IACGgoB,EAAOG,QACPsC,EAAStuB,SAASgsB,OAAOjuC,KAAK8tC,EAAOG,QAErCH,EAAOO,UACPkC,EAAStuB,SAASosB,SAASruC,KAAK8tC,EAAOO,UAEvCP,EAAOU,aACP+B,EAAStuB,SAASusB,YAAYxuC,KAAK8tC,EAAOU,cAGlD1uC,KAAK0vC,kBAAkBO,GAAeQ,EACtCA,EAAS1B,UAAYzoC,YAAW,KAC5B,QAA4CnC,IAAxCnE,KAAK0vC,kBAAkBO,GACvB,OAEJ,MAAME,EAAanwC,KAAK0vC,kBAAkBO,GACtCE,EAAW19B,SAAW48B,IACtB/jC,EAAM,CACFwZ,SACAwa,YAAa0O,EAAOzhC,UACpBgB,QAASgiC,GAAqB,yCAA2Cr7B,EAAU,gBAEhFlU,KAAK0vC,kBAAkBO,IAEzBE,EAAW19B,SAAW68B,IAAqBa,EAAWlC,eAAevwC,OAAS,IACnFyyC,EAAWlC,eAAiBkC,EAAWlC,eAAe5rC,QAAQs7B,QACjB,IAA1BA,EAAOsP,wBAEnBkD,EAAWpB,UACdoB,EAAWlC,eAAevwC,QAAU,IACpCsC,KAAK6wC,qBAAqBV,UACnBnwC,KAAK0vC,kBAAkBO,IAElD,GACW/7B,GACIu8B,CACf,CACIH,uBAA0BQ,IACtB,MAAMtzB,EAAMszB,EAAcjzB,KACpBoyB,EAAczyB,EAAIyyB,YAClBE,EAAanwC,KAAK0vC,kBAAkBO,GAC1C,GAA0B,iBAAfE,IAGXA,EAAWlC,eAAiBkC,EAAWlC,eAAe5rC,QAAQs7B,GACnDA,EAAOsL,WAAazrB,EAAIyrB,WAE/BkH,EAAWlC,eAAevwC,QAAU,GAAG,CAEvC,GADAyW,aAAag8B,EAAWpB,WACpBoB,EAAW19B,SAAW48B,GAAwB,CAC9C,MAAMx9B,EAA0C,iBAAzBi/B,EAAcj/B,QAAgD,KAAzBi/B,EAAcj/B,OACtE,oBAAsBi/B,EAAcj/B,OAAS,KAC7C,oBACEk/B,EAAkD,iBAAhCZ,EAAWnC,OAAOzhC,UACtC1F,KAAKC,UAAUqpC,EAAWnC,OAAOzhC,WACjC,KACJ4jC,EAAW7kC,MAAM,CACbiC,QA1JS,yBA0JuBsE,EAAS,gBAAkBk/B,EAC3DzR,YAAa6Q,EAAWnC,OAAOzhC,UAC/BuY,OAAQqrB,EAAWrrB,QAEvC,MACqBqrB,EAAW19B,SAAW68B,IAC3BtvC,KAAK6wC,qBAAqBV,UAEvBnwC,KAAK0vC,kBAAkBO,EAC1C,GAEIH,iBAAoB3wC,IAChB,MAAM8wC,EAAc9wC,EAAI0e,KAAKoyB,YACvBE,EAAanwC,KAAK0vC,kBAAkBO,GAC1C,GAA0B,iBAAfE,EACP,OAEJ,MAAMlH,EAAW9pC,EAAI0e,KAAKorB,SACpB+H,EAAkBb,EAAWlC,eAC9B5rC,QAAQs7B,GACFA,EAAOsL,WAAaA,IAC5B,GACH,GAA+B,iBAApB+H,EACP,OAEJA,EAAgB/D,eAAiB9tC,EAAI4sC,gBACrC/rC,KAAK4vC,4BAA4BzwC,EAAI4sC,iBAAmBkE,EACxD,MAAMgB,EAAmBd,EAAW19B,SAAW48B,GAE/C,GADAc,EAAW19B,OAAS68B,GAChB2B,EAAiB,CACjB,IAAIpoC,GAAY,EACZuK,EAAM+8B,EAAW9W,aACjBjmB,GACAA,EAAIu7B,mBAAmBwB,GACvBA,EAAW73B,QAAQlF,GACnBvK,GAAY,IAGZuK,EAAM,IAAIy6B,GAAiB7tC,KAAKqrC,WAAY8E,GAC5CA,EAAW9W,aAAejmB,EAC1B+8B,EAAW73B,QAAQlF,IAEvB,IAAK,MAAMiP,KAAW8tB,EAAWhuB,SAASusB,YACtC,IACIrsB,EAAQjP,EAAI86B,eAAgBrlC,EAChD,CACgB,MAAOnE,GACvB,CAEA,GAEIqrC,gBAAmB5wC,IACf,MAAM8wC,EAAcjwC,KAAK4vC,4BAA4BzwC,EAAI4sC,iBACzD,QAA2B,IAAhBkE,EACP,OAEJ,MAAM5W,EAAer5B,KAAK0vC,kBAAkBO,GAC5C,GAA4B,iBAAjB5W,EACP,OAEJ,MAAM6X,EAAsB7X,EAAa4U,eAAe5rC,QAAQW,GACrDA,EAAEiqC,iBAAmB9tC,EAAI4sC,kBAEpC,GAAmC,IAA/BmF,EAAoBxzC,OACpB,OAEJ,MAAMyzC,EAAgBhyC,EAAIiyC,IACpBC,EAAkBH,EAAoB,GAAGjI,SACzCtL,EAAS39B,KAAKqrC,WAAWd,cAAc8G,GACvCC,EAAqB,KAChB,CACH9iC,KAAMrP,EAAIqP,KACVmvB,OAAQA,GAAQ30B,UAAY,CAAE,EAC9B+kC,iBAAkB1U,EAAa2U,OAAOzhC,UACtCgB,aAASpJ,EACTotC,QAASJ,IAGXK,EAAiBnY,EAAalX,SAASgsB,OACvCsD,EAAapY,EAAagV,OAAO7/B,KACnCgjC,EAAe9zC,OAAS,EACxB8zC,EAAepyC,SAASoM,IACI,mBAAbA,GACPA,EAAS8lC,IAC7B,IAIYG,EAAWvxC,KAAKoxC,IAC5B,EAEItB,4BAA+B7wC,IAC3B,MAAM8wC,EAAcjwC,KAAK4vC,4BAA4BzwC,EAAI4sC,iBACzD,QAA2B,IAAhBkE,EACP,OAEJ,MAAM5W,EAAer5B,KAAK0vC,kBAAkBO,GAC5C,GAA4B,iBAAjB5W,EACP,OAEJ,MAAMqY,EAAoBrY,EAAa4U,eAAevwC,OAAS,EAC/D27B,EAAa4U,eAAiB5U,EAAa4U,eAAe5rC,QAAQs7B,GAC1DA,EAAOsP,iBAAmB9tC,EAAI4sC,kBAC9B1S,EAAagV,OAAOsC,QAAQzwC,KAAKy9B,EAAOsL,WACjC,KAMX5P,EAAa4U,eAAevwC,SAAWg0C,IAGvCrY,EAAa4U,eAAevwC,QAAU,IACtCsC,KAAK2vC,WAAWpkC,IAAI8tB,GACpBllB,aAAaklB,EAAa0V,WAC1B/uC,KAAK6wC,qBAAqBxX,UACnBr5B,KAAK0vC,kBAAkBO,WAE3BjwC,KAAK4vC,4BAA4BzwC,EAAI4sC,iBAAgB,EAEhE,oBAAA8E,CAAqBxX,EAAcxnB,GAC/B,MAAM8/B,EAAetY,EAAagV,OAAOsC,QAAQjzC,OAC3Ck0C,EAAmBD,EAAe,EAAKtY,EAAagV,OAAOsC,QAAQgB,EAAe,GAAK,KAC7F,IAAIE,OACoB1tC,IAApBytC,GAA4D,iBAApBA,IACxCC,EAAgB7xC,KAAKqrC,WAAWd,cAAcqH,IAAkB5oC,UAAY,CAAE,GAElFqwB,EAAalX,SAASosB,SAASnvC,SAASoM,IACZ,mBAAbA,GAGXA,EAAS,CACL+B,QAASsE,GA9RQ,kBA+RjBk8B,iBAAkB1U,EAAa2U,OAAOzhC,WAAa,CAAE,EACrDoxB,OAAQkU,EACRpV,OAAQpD,EAAavU,QACvB,GAEd,CACI,iBAAA8rB,CAAkBX,GACd,MAAM5W,EAAer5B,KAAK0vC,kBAAkBO,GAChB,iBAAjB5W,IAGXA,EAAa4U,eAAe7uC,SAASu+B,SACI,IAA1BA,EAAOsP,iBAGlB5T,EAAagV,OAAOsC,QAAQzwC,KAAKy9B,EAAOsL,UACxCjpC,KAAK0H,QAAQc,kBAAkB,CAC3BpM,KAAM,cACN2vC,gBAAiBpO,EAAOsP,eACxBE,WAAY,GACZt7B,OAAQ29B,YAELxvC,KAAK4vC,4BAA4BjS,EAAOsP,gBAAe,IAElE5T,EAAa4U,eAAiB,GAC9BjuC,KAAK6wC,qBAAqBxX,EAAcmW,WACjCxvC,KAAK0vC,kBAAkBO,GACtC,EAGA,MAAM6B,GACFpqC,QACA2jC,WACAl+B,OACAg4B,UACA,WAAA5oC,CAAYmL,EAAS2jC,EAAYl+B,GAC7BnN,KAAK0H,QAAUA,EACf1H,KAAKqrC,WAAaA,EAClBrrC,KAAKmN,OAASA,EACdzF,EAAQ2L,GAAG,cAAelU,GAAQa,KAAK+xC,gBAAgB5yC,KACvDuI,EAAQ2L,GAAG,gBAAiBlU,GAAQa,KAAKgyC,kBAAkB7yC,KAC3DuI,EAAQ2L,GAAG,iBAAkBlU,GAAQa,KAAKiyC,0BAA0B9yC,KACpEuI,EAAQ2L,GAAG,mBAAoBlU,GAAQa,KAAKkyC,4BAA4B/yC,KACxEa,KAAKmlC,UAAY,IAAIsK,GAAgB/nC,EAAS2jC,EAAYl+B,EAClE,CACI,SAAA4rB,CAAU0D,EAAQ14B,EAASy4B,EAAelkB,EAAShN,EAAO0a,GACtDhmB,KAAKmlC,UAAUpM,UAAU0D,EAAQ14B,EAASy4B,EAAelkB,EAAShN,EAAO0a,EACjF,CACI,MAAAa,CAAO5mB,EAAI6kB,EAAQ8B,EAAMjiB,GACrB,MAAMskC,EAAWtkC,EAAO1E,GAElBd,EAAM,CACR/C,KAAM,OACNi0C,UAAWpH,EACXyD,UAJa5nB,EAAO2kB,UAKpBuD,aAAcpmB,GAElB,OAAO5mB,KAAK0H,QAAQQ,KAAK/I,EAAK,CAAE4gC,aAAc9/B,EAAIgpC,aAC7Cx7B,MAAMpO,GAAMW,KAAKmyC,oBAAoB9yC,KACrCmD,OAAOuJ,GAAQ/L,KAAKoyC,sBAAsBrmC,IACvD,CACI,kBAAAwkC,GACI,OAAOvwC,KAAKmlC,UAAUoL,oBAC9B,CACI,uBAAAC,GACI,OAAOxwC,KAAKmlC,UAAUqL,yBAC9B,CACI,eAAAuB,CAAgB5yC,GACZ,MAAMkzC,EAAYlzC,EAAImzC,YAChBC,EAAWpzC,EAAImT,SACfgvB,GAAUniC,EAAIqzC,MAAOrzC,EAAIqzC,KAAKC,MAC9BpK,EAAMqK,OAAOH,EAASzjC,SACtB6jC,EAAa,CACfpK,QAASgK,EAAShK,QAClBF,IAAK1kB,MAAM0kB,GAAOkK,EAASzjC,QAAUu5B,EACrCr/B,SAAUupC,EAASvpC,SACnBuJ,YAAaggC,EAAShgC,YACtBgH,gBAAiBg5B,EAASh5B,gBAC1BivB,YAAa+J,EAAS/J,YACtBC,OAAQ8J,EAAS9J,OACjBL,KAAMmK,EAASnK,KACflwB,SAAUq6B,EAASr6B,SACnB7O,OAAQgpC,EACRpsC,IAAKssC,EAAStsC,IACdq7B,WAEJthC,KAAKqrC,WAAWrC,UAAU2J,EAAYN,EAC9C,CACI,iBAAAL,CAAkB7yC,GACd,MAAMyzC,EAAgBzzC,EAAI0zC,WACpBhhC,EAAS1S,EAAI0S,OACnB7R,KAAKqrC,WAAWlC,iBAAiByJ,EAAe/gC,EACxD,CACI,yBAAAogC,CAA0B9yC,GACtB,MAAM8pC,EAAW9pC,EAAIkxC,UACLlxC,EAAIunB,QACZtnB,SAAS0lB,IACb9kB,KAAKqrC,WAAW/B,gBAAgBL,EAAUnkB,EAAO,GAE7D,CACI,2BAAAotB,CAA4B/yC,GACxB,MAAM8pC,EAAW9pC,EAAIkxC,UACfyC,EAAe3zC,EAAIunB,QACnBiX,EAAS39B,KAAKqrC,WAAWd,cAActB,GAC7C,GAAItL,EAAQ,CACiB/gC,OAAOC,KAAK8gC,EAAOjX,SAC3BtnB,SAAS+iC,IACtB,MAAMrd,EAAS6Y,EAAOjX,QAAQyb,GAC1B2Q,EAAav/B,QAAQuR,EAAO2kB,YAAa,GACzCzpC,KAAKqrC,WAAWhC,mBAAmBJ,EAAU9G,EACjE,GAEA,CACA,CACI,mBAAAgQ,CAAoBhzC,GAChB,MAAM4gC,EAAe5gC,EAAI0e,KAAKkiB,aACxBn8B,EAASzE,EAAIyE,OACbqlC,EAAW9pC,EAAI0e,KAAKorB,SACpBtL,EAAS39B,KAAKqrC,WAAWd,cAActB,GAC7C,MAAO,CACHlJ,eACAn8B,SACAoF,SAAU20B,GAAQ30B,SAClByJ,OAAQ2pB,GAAamE,QACrBhzB,QAAS,GAErB,CACI,qBAAA6kC,CAAsBjzC,GAElB,GADAa,KAAKmN,OAAOsE,MAAM,2BAA2B5K,KAAKC,UAAU3H,MACxD,SAAUA,EAAK,CACf,MAAM4gC,EAAe5gC,EAAI0e,KAAKkiB,aACxBkJ,EAAW9pC,EAAI0e,KAAKorB,SACpBtL,EAAS39B,KAAKqrC,WAAWd,cAActB,GACvC17B,EAAUpO,EAAI0S,OAEpB,MAAO,CACHkuB,eACAn8B,OAHYzE,EAAI9B,QAIhB2L,SAAU20B,GAAQ30B,SAClByJ,OAAQ2pB,GAAav8B,MACrB0N,UAEhB,CAEY,MAAO,CACHwyB,aAAc,GACdxyB,QAASpO,EAAIoO,QACbkF,OAAQ2pB,GAAav8B,MACrByL,MAAOnM,EAGvB,EAGA,SAAS4zC,GAAoB/pC,EAAUzB,EAAY+lC,EAAkBpI,EAAkB8N,EAAWxsB,GAC9F,MAAMrZ,EAAS6lC,EAAU7lC,OAAO6S,UAAU,gBAC1C,IAAItX,EACJ,MAAMuqC,EAAe,IAAIntC,SAASC,IAC9B2C,EAAsB3C,CAAO,IAE3B2B,EAAUH,EAAWoB,OAAO,MAAO,CAAC,eACpCg1B,EAAS,IAAI0P,GAAe3lC,EAAS4lC,EAAkBpI,EAAkB/3B,EAAO6S,UAAU,WAC1F/S,EAAS,IAAI6kC,GAAepqC,EAAS4lC,EAAkBngC,EAAO6S,UAAU,WA8D9E,OAbAtY,EAAQkB,UAAUC,IACdykC,EAAiBtE,UAAUhgC,EAAUzB,EAAW8B,QAC5CR,EAlDRf,iBACIqF,EAAO2D,KAAK,kEACZ7D,EAAOujC,0BAA0BpxC,SAASgU,IACtC,MAAMo3B,EAAap3B,EAAI0R,OACjBkpB,EAASpxC,OAAOymB,OAAO,CAAA,EAAIjQ,EAAI46B,QACrC7gC,EAAO2D,KAAK,yCAAyC05B,EAAWltC,sBAAsBuJ,KAAKC,UAAUknC,MACrGxnB,EAAQvZ,OAAO8rB,UAAUyR,EAAYwD,OAAQ7pC,OAAWA,EAAWiP,GAAK3F,MAAK,IAAMN,EAAO2D,KAAK,8BAA8B05B,EAAWltC,eAAckF,OAAO8I,GAAU6B,EAAOiL,KAAK,yBAAyBoyB,EAAWltC,gBAAgBuJ,KAAKC,UAAUwE,QAAW,IAErQ,MAAM4nC,EAAuB,GACvBC,EAAwBlmC,EAAOsjC,qBACrC,IAAK,MAAMn9B,KAAO+/B,EAAuB,CACrC,MAAM3I,EAAap3B,EAAI0R,OACjBkpB,EAASpxC,OAAOymB,OAAO,CAAA,EAAIjQ,EAAI46B,QACrC7gC,EAAO2D,KAAK,oCAAoC05B,EAAWltC,sBAAsBuJ,KAAKC,UAAUknC,MAChGkF,EAAqBhzC,KAAKsmB,EAAQvZ,OAAO8rB,UAAUyR,EAAYwD,OAAQ7pC,OAAWA,EAAWiP,GAAK3F,MAAK,IAAMN,EAAO2D,KAAK,yBAAyB05B,EAAWltC,eACzK,CACQ,MAAM81C,EAAoBlO,EAAiBS,UAC3CT,EAAiB1Q,QACjB,IAAK,MAAM1P,KAAUsuB,EAAmB,CACpC,MAAM3pC,EAAMqb,EAAOplB,WACfolB,EAAO2X,OACPyW,EAAqBhzC,KAAKsmB,EAAQmX,OAAO4H,aAAa97B,EAAKqb,EAAO6e,qBAAiBx/B,OAAWA,EAAW2gB,EAAO2X,QAC3GhvB,MAAK,IAAMN,EAAO2D,KAAK,yBAAyBrH,EAAInM,eACpDkF,OAAM,IAAM2K,EAAOiL,KAAK,yBAAyB3O,EAAInM,kBAErDwnB,GAAQwiB,aAAajB,aAC1B6M,EAAqBhzC,KAAKsmB,EAAQ0f,SAASz8B,EAAKqb,EAAOwiB,YAAYjB,cAC9D54B,MAAK,IAAMN,EAAO2D,KAAK,sBAAsBrH,EAAInM,eACjDkF,OAAM,IAAM2K,EAAOiL,KAAK,sBAAsB3O,EAAInM,kBAElDwnB,GAAQwiB,aAAaX,mBAC1BuM,EAAqBhzC,KAAKsmB,EAAQ+f,cAAc98B,EAAKqb,EAAOwiB,YAAYX,mBACnEl5B,MAAK,IAAMN,EAAO2D,KAAK,sBAAsBrH,EAAInM,eACjDkF,OAAM,IAAM2K,EAAOiL,KAAK,sBAAsB3O,EAAInM,iBAEvE,OACcwI,QAAQsf,IAAI8tB,GAClB/lC,EAAO2D,KAAK,0BACpB,CAaYuiC,GAAkB5lC,MAAK,IAAMlG,EAAW2Z,kBAAkB,CAAE5jB,KAAM,cAAckF,OAAO8I,GAAU6B,EAAOiL,KAAK,sCAAsCvR,KAAKC,UAAUwE,QAXlK5C,IACAA,EAAoB,CAChBuE,SACA0wB,WAEJj1B,OAAsBvE,EAUlC,IAEIuD,EAAQqW,QAAO,KACXuvB,EAAiB9Y,OAAO,IAE5B9sB,EAAQjK,OACDw1C,CACX,CAEA,MAAMxsB,GACFzd,SACAiqC,aACAhmC,OACA0wB,OACAoL,kBACA5nC,SACAmsC,iBACApI,iBACA,WAAA3oC,CAAY+/B,GACR,QAA6B,IAAlBA,EACP,MAAM,IAAIz8B,MAAM,6BAEpB,QAAwC,IAA7By8B,EAAc/0B,WACrB,MAAM,IAAI1H,MAAM,yCAEpB,MAAM0H,EAAa+0B,EAAc/0B,WAWjC,IAAI+rC,EACJ,GAXmD,iBAAxChX,EAAcM,wBACrBN,EAAcM,sBAAwB,KAEC,iBAAhCN,EAAcO,gBACrBP,EAAcO,cAAgB,KAElC78B,KAAK+oC,kBAAoB,IAAIlB,GAAgB7nC,UAAMmE,EAAWoD,GAC9DvH,KAAKgJ,SAAWhJ,KAAK+oC,kBAAkBZ,SACvCnoC,KAAKstC,iBAAmB,IAAI3E,GAAiBrM,EAAcnvB,OAAO6S,UAAU,QAAShgB,MACrFA,KAAKklC,iBAAmB,IAAI2F,GAEO,IAA/BtjC,EAAW0W,gBAIX,MAAM,IAAIpe,MAAM,YAAY0H,EAAW0W,iCAHvCq1B,EAAkBP,GAAmB/yC,KAAKgJ,SAAUzB,EAAYvH,KAAKstC,iBAAkBttC,KAAKklC,iBAAkB5I,EAAet8B,MAKjIA,KAAKizC,aAAeK,EAAgB7lC,MAAMtM,IACtCnB,KAAKmB,SAAWA,EAChBnB,KAAKiN,OAAS,IAAIovB,GAAOr8B,KAAKmB,SAAUnB,KAAKstC,iBAAkBttC,KAAKgJ,SAAUszB,GAC9Et8B,KAAK29B,OAAS,IAAIsH,GAAOjlC,KAAKmB,SAAUnB,KAAKklC,kBACtCllC,OAEnB,CACI,KAAA+iB,GACI,OAAO/iB,KAAKizC,YACpB,CACI,aAAA5U,CAAc7yB,GACV,OAAOxL,KAAKiN,OAAOoxB,cAAc7yB,EACzC,CACI,WAAA2yB,CAAY3yB,GACR,OAAOxL,KAAKiN,OAAOkxB,YAAY3yB,EACvC,CACI,mBAAAizB,CAAoBjzB,GAChB,OAAOxL,KAAKiN,OAAOwxB,oBAAoBjzB,EAC/C,CACI,iBAAA+yB,CAAkB/yB,GACd,OAAOxL,KAAKiN,OAAOsxB,kBAAkB/yB,EAC7C,CACI,aAAAyyB,CAAczyB,GACV,OAAOxL,KAAKiN,OAAOgxB,cAAczyB,EACzC,CACI,WAAAuyB,CAAYvyB,GACR,OAAOxL,KAAKiN,OAAO8wB,YAAYvyB,EACvC,CACI,kBAAAqyB,CAAmB70B,GACf,OAAOhJ,KAAKiN,OAAO4wB,mBAAmB70B,EAC9C,CACI,OAAA0d,CAAQ6W,GACJ,OAAOv9B,KAAKiN,OAAOyZ,QAAQ6W,EACnC,CACI,OAAAD,CAAQC,GACJ,OAAOv9B,KAAKiN,OAAOqwB,QAAQC,EACnC,CACI,SAAAxE,CAAUjU,EAAQ/gB,EAASg4B,EAAiBC,GACxC,OAAOh8B,KAAKiN,OAAO8rB,UAAUjU,EAAQ/gB,EAASg4B,EAAiBC,EACvE,CACI,YAAAuJ,CAAaC,EAAWx6B,EAAW+wB,EAAiBC,GAChD,OAAOh8B,KAAK29B,OAAO4H,aAAaC,EAAWx6B,EAAW+wB,EAAiBC,EAC/E,CACI,UAAA+I,CAAWxH,GACP,OAAOv9B,KAAK29B,OAAOoH,WAAWxH,EACtC,CACI,aAAAgJ,CAAc1H,EAAkBrzB,GAC5B,OAAOxL,KAAK29B,OAAO4I,cAAc1H,EAAkBrzB,EAC3D,CACI,QAAA06B,CAASrH,EAAkBrzB,GACvB,OAAOxL,KAAK29B,OAAOuI,SAASrH,EAAkBrzB,EACtD,CACI,MAAAqb,CAAO0W,EAAcoB,EAAah6B,EAAQi6B,EAAmBtmB,EAAShN,GAClE,OAAOtL,KAAKiN,OAAO4Z,OAAO0W,EAAcoB,EAAah6B,EAAQi6B,EAAmBtmB,EAAShN,EACjG,CACI,aAAAioC,CAAcj2C,GACV,MAAMyT,EAAK,IAAIC,EACTyM,EAAczd,KAAKiN,OAAO8wB,aAAa1+B,IACrCA,EAAE/B,OAASA,IACXmgB,IACA1M,EAAGhL,QAAQ1G,GAC3B,IAEQ,OAAO0R,EAAG5B,OAClB,EAGA,MAAMiN,GAAkB,CAAC,aAAc,WACvC,MAAMo3B,GACFjsC,WACA4F,OACA9D,OACA3B,QACAs8B,cACAiP,aACA,WAAA12C,CAAYgL,EAAY4F,GACpBnN,KAAKuH,WAAaA,EAClBvH,KAAKmN,OAASA,EACdnN,KAAKqJ,OAAS9B,EAAW8B,OACzBrJ,KAAKgkC,cAAgB,GACrBhkC,KAAK0H,QAAUH,EAAWoB,OAAO,MAAOyT,IACxCpc,KAAKizC,aAAejzC,KAAK0H,QAAQjK,OACjCuC,KAAKizC,aAAaxlC,MAAK,KACnBzN,KAAKyzC,cAAc,GAE/B,CACI,KAAA1wB,GACI,OAAO/iB,KAAKizC,YACpB,CACIS,QAAU,CAACC,EAAOnlC,EAAMzK,KACpB,MAAM6vC,WAAEA,EAAUjvC,OAAEA,GAAWZ,GAAW,CAAE,EACtC6iB,EAAO5mB,KAAK6zC,kBAAkB,CAChCz3C,KAAM,UACNu3C,QACAnlC,OACApF,QAASpJ,KAAKqJ,OACdyqC,YAAaF,EACbG,gBAAiBpvC,IAErB3E,KAAK0H,QAAQQ,KAAK0e,EAAK,EAE3BmS,UAAY,CAAC4a,EAAOnoC,EAAUzH,IACnB,IAAI+B,SAAQ,CAACC,EAAS6H,KACzB,MAAMgmC,WAAEA,EAAUjvC,OAAEA,GAAWZ,GAAW,CAAE,EACtC6iB,EAAO5mB,KAAK6zC,kBAAkB,CAChCz3C,KAAM,YACNu3C,QACAvqC,QAASpJ,KAAKqJ,OACdyqC,YAAaF,EACbz6B,OAAQxU,IAEZ3E,KAAK0H,QAAQQ,KAAK0e,GACbnZ,MAAMumC,IACP,MAAMjI,gBAAEA,GAAoBiI,EAC5Bh0C,KAAKgkC,cAAc9jC,KAAK,CAAE6rC,kBAAiB4H,QAAOnoC,WAAU2N,OAAQxU,IACpEoB,EAAQ,CACJ0X,YAAa,KACTzd,KAAK0H,QAAQQ,KAAK,CAAE9L,KAAM,cAAe2vC,kBAAiB3iC,QAASpJ,KAAKqJ,SACxErJ,KAAKgkC,cAAgBhkC,KAAKgkC,cAAc3hC,QAAQW,GAAMA,EAAE+oC,kBAAoBA,IACrEjmC,QAAQC,YAErB,IAEDvD,OAAO8I,GAAUsC,EAAOtC,IAAO,IAG5CmoC,aAAe,KACXzzC,KAAK0H,QAAQ2L,GAAG,SAAUuT,IACtB,MAAMpY,KAAEA,EAAIu9B,gBAAEA,GAAoBnlB,EAC5BzN,EAASyN,EAAK,sBACdyS,EAAer5B,KAAKgkC,cAAcrqB,MAAM3W,GAAMA,EAAE+oC,kBAAoBA,IACtE1S,IACKA,EAAalgB,OAIVnZ,KAAKi0C,UAAU5a,EAAalgB,OAAQA,IACpCkgB,EAAa7tB,SAASgD,EAAM6qB,EAAasa,MAAOx6B,GAJpDkgB,EAAa7tB,SAASgD,EAAM6qB,EAAasa,MAAOx6B,GAOpE,GACU,EAEN,iBAAA06B,CAAkB3e,GACd,MAAMgf,EAAU,CAAE,EAMlB,OALAt3C,OAAOC,KAAKq4B,GAAK91B,SAASpC,SACLmH,IAAb+wB,EAAIl4B,IAAmC,OAAbk4B,EAAIl4B,KAC9Bk3C,EAAQl3C,GAAOk4B,EAAIl4B,GACnC,IAEek3C,CACf,CACI,SAAAD,CAAUE,EAAMC,GACZ,MAAMC,EAAWz3C,OAAOC,KAAKs3C,GAC7B,IAAIG,GAAW,EAMf,OALAD,EAASj1C,SAASpC,IACVm3C,EAAKn3C,KAASo3C,EAAKp3C,KACnBs3C,GAAW,EAC3B,IAEeA,CACf,EAGA,MAAMC,GAAuB,CAACC,EAAYC,KACtC,MAAMC,EAA8B,iBAAXtvC,OAAuBA,OAAOsvC,WAAatvC,OAAOO,cAAYxB,EACjFwwC,EAAmC,iBAAXvvC,OAAuBA,OAAOwvC,kBAAoB9uC,QAAQC,UAAaD,QAAQC,UACvG8uC,EAAgBplC,EAAM,QAGtBqlC,EAzpKV,SAAwBxY,EAAemY,EAAK9uC,GACxC,IAAIovC,EACJ,GAAIpmC,EAAMC,SAAU,CAChB,MAAMomC,EAAwBlmC,QAAQmmC,IAAIC,sBAC1C,GAAIF,EACA,IACID,EAAsBluC,KAAK0c,MAAMyxB,EACjD,CACY,MACZ,CAEA,CA6FI,SAASG,IACL,GAAI7Y,EAAc/pB,YACd,OAAO+pB,EAAc/pB,YAEzB,GAAI5M,EACA,OAAOA,EAAS4T,gBAEpB,GAAsB,oBAAXnU,aAA2D,IAA1BA,OAAOgwC,eAC/C,OAAOhwC,OAAOgwC,eAAe7iC,YAEjC,MAAM+Z,EAAM5Y,EAAO,IACnB,OAAI/E,EAAMC,SACFmmC,EACOA,EAAoBM,kBAAkB/3C,KAE1C,SAAWgvB,EAEA,oBAAXlnB,QAA8C,oBAAbZ,SACjCA,SAASU,MAAQ,KAAKonB,KAE1BA,CACf,CAuCI,MAAM/kB,EAxJN,WACI,MAAM+tC,EAAWhZ,EAAciZ,QACzBt3B,EAAkBq3B,GAAUr3B,iBAAmB,EAC/C3M,EAAoBgkC,GAAUhkC,kBAC9BC,EAAoB+jC,GAAU/jC,kBAEpC,IAAIf,EAAK8kC,GAAU9kC,GACnB,MAAMyP,EAAeq1B,GAAUr1B,aACzBF,EAASu1B,GAAUv1B,OACnBG,EAAco1B,GAAUp1B,kBAAe/b,EAU7C,IAAIqxC,EACAt9B,EACAmwB,EACAG,EACAC,EAbA9iC,IACA6K,EAAK7K,EAAS8vC,OAEd9mC,EAAMC,UAAYmmC,GAAuBA,EAAoBU,QAC7DjlC,EAAKukC,EAAoBU,OAExBjlC,GAAOyP,GAAiBF,IACzBvP,EAZc,uBAmBlB,MAAM5K,EAAUuvC,IAChB,IAAIO,EAAgB9vC,OACI,IAAbD,GACPuS,EAAWvS,EAASuS,SACpBmwB,EAAM1iC,EAAS0iC,IACX1iC,EAASsvC,MACTzM,EAAc7iC,EAASsvC,IAAIA,IAC3BxM,EAAS9iC,EAASsvC,IAAIxM,QAE1BiN,EAAgB/vC,EAAS4M,aAAe,WACxCijC,EAAa7vC,EAASgwC,eAEjBhnC,EAAMC,UACXy5B,EAAMv5B,QAAQu5B,IACV0M,IACAvM,EAAcuM,EAAoBE,IAClCxM,EAASsM,EAAoBtM,OAC7B+M,EAAaT,EAAoBS,kBAGE,IAA3BpwC,QAAQgwC,iBACpBl9B,EAAW9S,QAAQgwC,eAAeI,WAClCnN,EAAMjjC,QAAQgwC,eAAe/M,IAC7BG,EAAcpjC,QAAQgwC,eAAeH,IACrCxM,EAASrjC,QAAQgwC,eAAe3M,OAChCiN,EAAgBtwC,QAAQgwC,eAAe7iC,aAAe,WACtDijC,EAAapwC,QAAQgwC,eAAeI,YAGxC,MAAMhzB,EAAc8Z,EAAciZ,SAAS/yB,aAAe,GAC1DA,EAAYtiB,KAAKgoB,IACjB,IAAI5V,EAAW,CACXC,YAAamjC,EACbn8B,gBAAiB3T,EACjBsS,WACAlP,SAAUwsC,EACV1mC,QAASu5B,EACTI,SACAD,cACAviC,IAAKwuC,EAAItsB,SAAWA,IAKxB,OAHImU,EAAchqB,WACdA,EAAW1V,OAAOymB,OAAO/Q,EAAUgqB,EAAchqB,WAE9C,CACHA,WACAhB,oBACAd,KACAyP,eACAC,cACAH,SACA9B,kBACA1M,oBACAiR,cAEZ,CAyEuBozB,GACnB,IAAIrjC,EAAc4iC,IAClB,GAAsB,oBAAX/vC,OAAwB,CAC/B,MAAMywC,EAAczwC,OACd0wC,EAAuBD,EAAYE,cACrC,GAAGF,EAAYE,cAAcC,iBAAiBH,EAAYE,cAAcxjC,cACxEsjC,GAAalwC,UAAU4M,YACvBujC,IACAvjC,EAAcujC,EAE1B,CACI,MAAO,CACHG,IAAK3Z,EAAc2Z,MAAO,EAC1B1jC,cACA+Q,KAnDkC,iBAAvBgZ,EAAchZ,KACd,CACHpF,MAAOoe,EAAchZ,MAGzBgZ,EAAchZ,KACPgZ,EAAchZ,KAErB3U,EAAMC,UAAYmmC,GAAuBA,EAAoBmB,QACtD,CACH73B,aAAc02B,EAAoBmB,SAGtC5Z,EAAciZ,SAASr1B,aAAeoc,EAAciZ,SAASx1B,QAAUuc,EAAciZ,SAASt1B,aACvF,CACH6D,SAAU,SAAUC,SAAU,eAFtC,EAuCA5W,OAjCJ,WACI,IAAI3F,EAAS80B,EAAcnvB,OAC3B,MAAMgpC,EAAe,OAIrB,IAAIC,EAIJ,OAPK5uC,IACDA,EAAS2uC,GAGTxwC,IACAywC,EAAiBzwC,EAAS0wC,iBAER,iBAAX7uC,EACA,CAAE6D,QAAS+qC,GAAkB5uC,EAAQksC,QAASyC,GAElD,CACH9qC,QAAS+qC,GAAkB5uC,EAAO6D,SAAW8qC,EAC7CzC,QAASlsC,EAAOksC,SAAWyC,EAEvC,CAgBgBG,GACR/uC,aACA5E,QAAS25B,EAAc35B,UAAW,EAClC4zC,cAzFsC,IAA3Bja,EAAcia,UAGa,kBAA3Bja,EAAcia,UAA0Bja,EAAcia,SAFtD,CAAEnf,yBAAyB,GAKA,iBAA3BkF,EAAcia,UACd35C,OAAOymB,OAAO,GAAI,CAAE+T,yBAAyB,GAAQkF,EAAcia,UAmF9EpuB,QAASssB,EAAItsB,SAAWA,GACxBquB,KAAM/B,EAAI+B,MAAQ,GAClBC,aAAcna,EAAcma,aAEpC,CA89J2BC,CAFvBlC,EAAaA,GAAc,CAAE,EAC7BC,EAAMA,GAAO,CAAE,EACuCC,GACtD,IAAIze,EACA0gB,EACA3gB,EACAj0B,EACA60C,EACAC,EACAC,EACJ,MAAMN,EAAO,CAAE,EACf,SAASO,EAAYz5C,EAAM05C,EAAOznC,GAC9BunC,EAAc9gB,EAAQ7V,WAAW,SAC7B22B,GACA9gB,EAAQtV,MAAM,eAAepjB,YAEjC,MAAM25C,EAAQvyC,IAIV,GAHAsyC,EAAM3b,SAAW9rB,EAAEY,OACnB6mC,EAAMzb,YAAchsB,EAAEM,QACtBmnC,EAAMrnC,MAAQJ,EAAEI,OACXmnC,EACD,OAEJ,MAAMI,EAAexyC,EACjB,GAAGpH,cAAiBoH,EAAE6I,UACtB,GAAGjQ,gBAAmBiS,EAAEM,QAAUN,EAAEK,YACxComB,EAAQtV,MAAMw2B,EAAa,EAE/BF,EAAM1b,cAAgB/rB,EAAEK,UACpBonC,EAAMj0B,MACNi0B,EAAMj0B,QACDtV,MAAK,KACNwpC,GAAM,IAELz0C,OAAOkC,IACR,MAAM4G,EAAqB,iBAAN5G,EAAiB,IAAI7E,MAAM6E,GAAKA,EACrDuyC,EAAK3rC,EAAM,IAIf2rC,IAEC34C,MAAMC,QAAQjB,KACfA,EAAO,CAACA,IAEZA,EAAK8B,SAASswB,IACV8mB,EAAK9mB,GAAKsnB,EACVzC,GAAqB7kB,GAAKsnB,CAAK,GAE3C,CA2DI,SAASG,IACL,MAAMC,EAAY3nC,EAAM,WAClBjI,EAASstC,EAAenyC,QACxB00C,EAA+B3C,GAAW4C,4BAC1ChlC,EAAWwiC,EAAevtC,WAAW+K,SACrC7J,EAAkB4uC,GAA8D,MAAM,GACtF9tC,GAA0C,kBAAX/B,GAAwBA,EAAO+B,wBAAyB,EAY7F,OAXAxH,EAAWY,EAAQ,CACf4E,WAAYC,EAASyuB,OAAc9xB,EACnCgJ,OAAQ6oB,EAAQhW,UAAU,WAC1BvX,kBACAhK,OAAQ,SACRsK,QAASuJ,GAAUvJ,SAAW2rC,GAAWn7B,iBAAmBu7B,EAAeviC,YAC3EvJ,SAAUsJ,GAAUtJ,UAAYsJ,GAAU4F,UAAYxE,EAAO,IAC7DnK,uBACAS,uBAA0C,kBAAXxC,EAAuBA,GAAQwC,4BAAyB7F,IAE3F4yC,EAAY,UAAWh1C,EAAUq1C,GAC1BtxC,QAAQC,SACvB,CACI,SAASwxC,IACL,MAAMH,EAAY3nC,EAAM,WAClB+nC,EAAY,CACdjwC,WAAY0uB,EACZ9oB,OAAQ6oB,EAAQhW,UAAU,YAK9B,OAHA22B,EAAW,IAAIlwB,GAAQ+wB,GACvBhyB,EAAOiB,QAAUkwB,EACjBI,EAAY,CAAC,UAAW,OAAQJ,EAAUS,GACnCtxC,QAAQC,SACvB,CACI,SAAS0xC,IACL,MAAMC,EAAiB5C,EAAe6C,YAA8C,IAAhC1hB,EAAYhY,gBAEhE,GADsB62B,EAAeyB,UAAYmB,EAC9B,CACf,MAAMN,EAAY3nC,EAAM,YAQxB,OAPAmnC,EAAY,IAAIxb,GAAe,CAC3B7zB,WAAY0uB,EACZ9oB,OAAQ6oB,EAAQhW,UAAU,YAC1BmX,iBAAqD,iBAA5B2d,EAAeyB,UAAwBzB,EAAeyB,SAASpf,iBACxFC,wBAA4D,iBAA5B0d,EAAeyB,UAAwBzB,EAAeyB,SAASnf,0BAEnG2f,EAAY,WAAYH,EAAWQ,GAC5BR,CACnB,CACa,CACD,MAAMt4B,EAAW2X,EAAY3X,SACzBA,GACAA,EAAS9K,MAAM0U,GAAyB5qB,KAExD,CACA,CACIwK,eAAe8vC,IACX,IAAK9C,EAAemB,IAChB,OAAOnwC,QAAQC,UAEnB,MAAMqxC,EAAY3nC,EAAM,OAGxB,OAFAonC,EAAO,IAAIrD,GAAWvd,EAAaD,EAAQhW,UAAU,QACrD+2B,EAAY,MAAOF,EAAMO,GAClBtxC,QAAQC,SACvB,CACI,SAAS8xC,EAAkBC,GACvB,IAII,OAHAA,EAAa14C,SAAS+hB,KAS9B,SAA0B7jB,EAAMy6C,GAC5B,MAAMX,EAAY3nC,EAAMnS,GAClB6jB,EAAM42B,EAAevB,GACvBr1B,GACA41B,EAAYz5C,EAAM6jB,EAAKi2B,EAEnC,CAdgBY,CAAiB72B,EAAI7jB,KAAM6jB,EAAIqM,OAAO,IAEnC1nB,QAAQC,SAC3B,CACQ,MAAOrB,GACH,OAAOoB,QAAQ8H,OAAOlJ,EAClC,CACA,CA0HI,OAAOiwC,EACFlnC,MA7ML,WACI,MAAM2pC,EAAY3nC,EAAM,UAQxB,OAPAumB,EAAU,IAAIxQ,EAAO,GAAGsvB,EAAevtC,WAAW+K,UAAUC,mBAAepO,EAAW2wC,EAAe2B,cACrGzgB,EAAQ7P,aAAa2uB,EAAe3nC,OAAO9B,SAC3C2qB,EAAQ/P,aAAa6uB,EAAe3nC,OAAOumC,SACvC1d,EAAQ7V,WAAW,UACnB6V,EAAQvkB,MAAM,wBAElBslC,EAAY,SAAU/gB,EAASohB,GACxBtxC,QAAQC,aAAQ5B,EAC/B,IAoMSsJ,MA7PL,WACI,MAAM2pC,EAAY3nC,EAAM,cACxBwmB,EAAc,IAAIjY,EAAW82B,EAAevtC,WAAYyuB,EAAQhW,UAAU,eAC1E,IAAIi4B,EAAcnyC,QAAQC,QAAQ+uC,EAAexxB,MAqBjD,OApBIwxB,EAAevtC,aAAeutC,EAAexxB,OACzCoxB,EACAuD,EAAcvD,EAAUrvB,aACnB5X,MAAMyQ,IACA,CACHG,aAAcH,MAIC,oBAAX9Y,QAA0BA,QAAQgwC,eACD,iBAAlChwC,OAAOgwC,eAAec,UAC7B+B,EAAcnyC,QAAQC,QAAQ,CAC1BsY,aAAcjZ,OAAOgwC,eAAec,WAK5C+B,EAAcnyC,QAAQ8H,OAAO,yCAG9BqqC,EACFxqC,MAAMyqC,IAEP,IAAIx2B,EACJ,GAFA01B,EAAUrnC,KAAK,yBAEoC,oBAA/CnT,OAAO8N,UAAU1M,SAAS4M,KAAKstC,GAI/B,MAAM,IAAIr4C,MAAM,yBAA2BgH,KAAKC,UAAUoxC,IAE9D,OALIx2B,EAAcw2B,EAKXjiB,EAAYxU,MAAMC,EAAY,IAEpCjU,MAAK,KACNspC,EAAY,aAAc9gB,EAAamhB,GAChCtC,KAENtyC,OAAOkC,IAIR,MAHIuxB,GACAA,EAAYnU,SAEVpd,CAAC,GAEnB,IAgNS+I,MAAK,IAAM3H,QAAQsf,IAAI,CAAC+xB,IAAgBI,IAAgBE,IAAiBG,QACzEnqC,MAAK,IAAMkpC,EAAS1D,eACpBxlC,MAAK,IApBV3F,iBACI,MAAMqwC,EAA6B,2BACnC,GAAIxpC,EAAMC,eAAyD,IAAtCE,QAAQmmC,IAAIC,4BAA4E,IAA5BV,GAAYjiC,aACvEokC,EAASjwB,QAAQ,CAAEppB,KAAM66C,IAA8Bz6C,OAAS,EAEtF,UACUi5C,EAAS9vB,OAAOsxB,EAA4B,CAAEvyC,QAAS4uC,GAAYjiC,YAAa81B,IAAKv5B,QAAQu5B,KACvH,CACgB,MAAO/8B,GACH,MAAM8sC,EAAa9sC,EACnB0qB,EAAQ1qB,MAAM,mCAAmCzE,KAAKC,UAAUsxC,EAAW7qC,WAC/F,CAGA,CAMoB8qC,KACX5qC,MAAK,IACCoqC,EAAkB/C,EAAe0B,MAAQ,MAE/C/oC,MA3HL,WACI,MAAM6qC,EAAoB17C,OAAOC,KAAK25C,GAAMpvC,KAAKpK,IAC7C,MAAMmkB,EAAMq1B,EAAKx5C,GACjB,OAAOmkB,EAAI4B,MACP5B,EAAI4B,QAAUjd,QAAQC,SAAS,IAEvC,OAAOD,QAAQsf,IAAIkzB,EAC3B,IAqHS7qC,MApHL,WACI,MAMMqD,EAAO,CACTynC,YAAapwB,GACbA,QAAS2sB,EAAe3sB,SAE5B0sB,EAAc1kC,OACd,MAAMqoC,EAAO,CACTC,SAZkBC,IACb/B,GAGLA,EAAS9vB,OAAO,mBAAoB6xB,EAAc,OAAO,EASzD5nC,OACA3D,OAAQ6oB,EACRxP,QAASmwB,EACTgC,IAAKhC,EACLpvC,WAAY0uB,EACZtzB,QAASZ,EACTw0C,SAAUK,EACVX,IAAKY,EACL1uB,QAAS2sB,EAAe3sB,QACxBqsB,aACAyC,KAAM,KACFjhB,GAASllB,KAAK,0BACPmlB,EAAYnU,WAiD3B,GA9CA02B,EAAK5xC,YAAc,CACf,WAAIgyC,GACA,OAAO9D,EAAe3sB,OACzB,EACD,cAAI0wB,GACA,OAAOhyC,KAAKC,UAAU0tC,EACzB,EACD,WAAIsE,GACA,OAAO1zC,OAAOwB,YAAYmyC,OAAOzxC,QACpC,EACD,UAAIX,GACA,OAAOvB,OAAOwB,YAAYD,MAC7B,EACD,aAAIqyC,GACA,MAAM5zB,EA3vOX5V,EA4vOK,OAAO5S,OAAOC,KAAKuoB,GAAKhe,KAAKpK,IACzB,MAAMuS,EAAI6V,EAAIpoB,GACd,MAAO,CACHM,KAAMN,EACNi8C,SAAU1pC,EAAEM,QAAUN,EAAEK,UACxBD,MAAOJ,EAAEI,MACTC,UAAWL,EAAEK,UACbC,QAASN,EAAEM,QACd,GAErB,GAEQjT,OAAOC,KAAK25C,GAAMp3C,SAASpC,IACvB,MAAMmkB,EAAMq1B,EAAKx5C,GACjBw7C,EAAKx7C,GAAOmkB,CAAG,IAEnBq3B,EAAKhxC,OAAS,CAAE,EAChB5K,OAAOC,KAAKi4C,GAAgB11C,SAAS4B,IACjCw3C,EAAKhxC,OAAOxG,GAAK8zC,EAAe9zC,EAAE,IAElCyzC,GAAOA,EAAIyE,YACXt8C,OAAOC,KAAK43C,EAAIyE,YAAY95C,SAAS4B,IACjCw3C,EAAKhxC,OAAOxG,GAAKyzC,GAAKyE,WAAWl4C,EAAE,IAGvCyzC,GAAK0E,YACL1E,EAAI0E,WAAWX,GAEf9D,GAAaA,EAAU0E,gBACvB1E,EAAU0E,eAAeZ,EAAK5xC,aAE9B4xC,EAAKG,IAAK,CACV,MAAMU,EAAsB,CAACC,EAAIC,EAAOC,IAC7B,WAEH,OADAhB,EAAKrrC,OAAOiL,KAAK,uBAAuBmhC,8CAAkDC,eACnFF,EAAGxtC,MAAM0sC,EAAKG,IAAKpsC,UAC7B,EAECktC,EAASjB,EAAKG,IACpBc,EAAOC,aAAeL,EAAoBb,EAAKG,IAAI5a,YAAa,eAAgB,eAChF0b,EAAOE,eAAiBN,EAAoBb,EAAKG,IAAI1a,cAAe,iBAAkB,iBACtFwb,EAAOG,aAAeP,EAAoBb,EAAKG,IAAIxa,YAAa,eAAgB,eAChFsb,EAAOI,mBAAqBR,EAAoBb,EAAKG,IAAIpa,kBAAmB,qBAAsB,qBAClGkb,EAAOK,sBAAwBT,EAAoBb,EAAKG,IAAIla,oBAAqB,wBAAyB,sBACtH,CACQ,OAAO+Z,CACf,IA2BSh2C,OAAOuJ,GACDjG,QAAQ8H,OAAO,CAClB7B,MACAyqC,UAEN,EAEgB,oBAAXpxC,SACPA,OAAO20C,cAAgBxF,IAE3BA,GAAqBpsB,QAAUA,GAC/BosB,GAAqB3nC,QAAU2nC,GCl1QjB,MAAOyF,GAKnB,WAAAz9C,CAAY0D,GACVD,KAAKi6C,IAAMh6C,EAGb,MAAWA,GACT,OAAOD,KAAKi6C,IAOP,OAAAC,CAAQlmB,GACb,GAAIA,EAAMimB,MAAQj6C,KAAKi6C,IACrB,MAAMp6C,MAAM,iDAEdG,KAAKm6C,YAAYnmB,GAGZ,WAAAmmB,CAAYnmB,IAIZ,aAAAomB,CAAcpmB,KChCjB,SAAUqmB,GAASjuB,GACvB,MAAsB,iBAARA,CAChB,CAEM,SAAUkuB,GAASluB,GACvB,MAAsB,iBAARA,CAChB,CAEM,SAAUoE,GAASpE,GACvB,MAAsB,iBAARA,IAAqB9tB,MAAMC,QAAQ6tB,IAAgB,OAARA,CAC3D,CAEM,SAAU7tB,GAAQ6tB,GAEtB,OAAI9tB,MAAMC,QACDD,MAAMC,QAAQ6tB,GAEO,mBAAvBpuB,SAAS4M,KAAKwhB,EACvB,CACM,SAAUmuB,GAAYnuB,GAC1B,YAAsB,IAARA,CAChB,CAEM,SAAUouB,GAAkBpuB,GAChC,OAAOA,OACT,CAEM,SAAUquB,GAAmBC,GACjC,MAAuB,iBAARA,IAAqBA,GAAsB,IAAfA,EAAIh9C,QAAgB,QAAQ41B,KAAKonB,EAC9E,CAEM,SAAUC,GAAUzlB,GACxB,OAAe,IAARA,IAAwB,IAARA,GAAwC,qBAAvBl3B,SAAS4M,KAAKsqB,EACxD,CAeM,SAAU7B,GAAWjH,GACzB,SAAUA,GAAOA,EAAI7vB,aAAe6vB,EAAIxhB,MAAQwhB,EAAItgB,MACtD,CAoBgB,SAAA8uC,GAAkBzlB,EAAS0lB,QACrB,IAAT1lB,GACT0lB,EAAS1lB,EAEb,CC5DqB,MAAA2lB,WAAqBd,GAOxC,WAAAz9C,CAAYe,EAAcy9C,EAAyBC,EAA8B59C,GAC/EoD,MAAMlD,GACN0C,KAAKqB,MAAQ/D,EACb0C,KAAKsB,aAAelE,EACpB4C,KAAKi7C,aAAeF,EACpB/6C,KAAKk7C,eAAiBF,GAAiB,GAMzC,QAAW19C,GACT,OAAO0C,KAAKqB,MAMd,eAAWjE,GACT,OAAO4C,KAAKsB,aAOd,iBAAW05C,GACT,OAAOh7C,KAAKk7C,eAAe9zC,KAAK+zC,GAAOn7C,KAAKo7C,kBAAkBD,KAMhE,eAAWJ,GACT,OAAO/6C,KAAKo7C,kBAAkBp7C,KAAKi7C,cAY9B,QAAAI,CAASh+C,EAAiBmO,EAAyC8wB,GACxE,OAAOt8B,KAAKs7C,SAASD,SAASr7C,KAAKqB,MAAOhE,EAASmO,EAAU8wB,GAGxD,WAAA6d,CAAYnmB,GACjBxzB,MAAM25C,YAAYnmB,GAClB4mB,GAAe5mB,EAAM1yB,cAAekJ,GAAMxK,KAAKsB,aAAekJ,IAC9DowC,GAAe5mB,EAAMinB,cAAezwC,GAAMxK,KAAKi7C,aAAezwC,IAC9DowC,GAAe5mB,EAAMknB,gBAAiB1wC,GAAMxK,KAAKk7C,eAAiB1wC,IAG5D,iBAAA4wC,CAAkBG,WAExB,MAAO,CACLn/C,KAAoB,QAAdwP,EAAA2vC,eAAAA,EAAYt7C,UAAE,IAAA2L,OAAA,EAAAA,EAAExP,KACtBkB,KAAoB,QAAdk+C,EAAAD,eAAAA,EAAYt7C,UAAE,IAAAu7C,OAAA,EAAAA,EAAEl+C,OCzEP,MAAAm+C,WAAmBzB,GAKtC,WAAAz9C,CAAYe,EAAco+C,GACxBl7C,MAAMlD,GACN0C,KAAKqB,MAAQ/D,EACb0C,KAAK27C,uBAAyBD,EAOhC,QAAWp+C,GACT,OAAO0C,KAAKqB,MAOd,UAAWmG,GACT,OAAOxH,KAAK27C,uBAAuB37C,KAAKqB,OAM1C,WAAWu6C,GACT,OAAO57C,KAAKs7C,SAASO,WAAW,CAAEz/C,KAAM4D,KAAKqB,QAGxC,MAAAmsB,CAAOsuB,EAAoBxf,GAChC,MAAM58B,EAAgC9C,OAAeymB,OAAO,CAAEjnB,KAAM4D,KAAK1C,KAAMA,KAAM0C,KAAK1C,KAAMy+C,eAAe,GAASzf,GACxH,OAAOt8B,KAAKs7C,SAASU,aAAaF,EAAUp8C,UC7CnCu8C,GAIT,WAAA1/C,CAAY2/C,EAAY7+C,GACpB2C,KAAKm8C,OAASD,EACdl8C,KAAK3C,QAAUA,SAIV++C,GAGT,WAAA7/C,CAAY8/C,GACRr8C,KAAK5D,KAAOigD,GAId,MAAOC,WAAyCF,GAIlD,WAAA7/C,CAAYggD,EAA2BC,GACnCh8C,MAAMi8C,GAAgBC,cACtB18C,KAAKu8C,UAAYA,EACjBv8C,KAAKw8C,UAAYA,GAInB,MAAOG,WAA2CP,GAKpD,WAAA7/C,CAAYc,EAA0B03B,EAAiBC,GACnDx0B,MAAMi8C,GAAgBG,uBACtB58C,KAAK3C,QAA6B,iBAAZA,EAAuBwJ,KAAK0c,MAAMlmB,GAAWA,EACnE2C,KAAK+0B,QAAUA,EACf/0B,KAAKg1B,QAAUA,SAIVynB,IACKA,GAAKI,MAAG,QACRJ,GAAOK,QAAG,UACVL,GAAOM,QAAG,UACVN,GAAMO,OAAG,SACTP,GAAYC,aAAG,eACfD,GAAqBG,sBAAG,wBACxBH,GAAmBQ,oBAAG,sBAEtBR,GAA4BS,6BAAG,SAC/BT,GAA0BU,2BAAG,aAGlCC,IACKA,GAAOC,QAAG,UACVD,GAAOE,QAAG,UACVF,GAASG,UAAG,kBCnDjBC,GAKT,WAAAjhD,CAAYu/C,GACR97C,KAAKy9C,UAAY3B,EAGd,QAAA5V,CAASxmC,EAA4D2iB,GACxEriB,KAAK09C,gBACLF,GAAYG,IAAIzX,SAASxmC,EAAY2iB,GAGlC,OAAAib,GAGH,OAFAt9B,KAAK09C,gBAEDE,GAAuB59C,KAAKy9C,WAErB,GAGJz9C,KAAKy9C,UAAU7B,QAAQx0C,KACzBy2C,GACUA,EAAE70C,WAId,OAAA0d,GAGH,GAFA1mB,KAAK09C,gBAEDE,GAAuB59C,KAAKy9C,WAE5B,MAAO,GAGX,MAAM7B,EAAU57C,KAAKy9C,UAAU7B,QACzBkC,EAAwB,GACxBp3B,EAAmD,GAazD,OAVAk1B,EAAQx8C,SAASgG,IACSpF,KAAK+9C,iBAAiB34C,GAC9BhG,SAAS4+C,KACmC,IAAlDF,EAAYvqC,QAAQyqC,EAAoB1gD,QACxCwgD,EAAY59C,KAAK89C,EAAoB1gD,MACrCopB,EAAQxmB,KAAK89C,MAEnB,IAGCt3B,EAGJ,gBAAAq3B,CAAiB34C,GAGpB,OAFApF,KAAK09C,gBAEAt4C,EAAO4D,SAILw0C,GAAYG,IAAI9f,mBAAmBz4B,EAAO4D,UAHtC,GAoBR,MAAA6d,CACHwgB,EACAjb,EACAznB,EACAZ,EACAuU,EACAhN,GAEAtL,KAAK09C,gBACL,MAAMO,EAAkBj+C,KAAKs9B,UAO7B,GAJIsgB,GAAuBj5C,KACvBA,EAAS,gBAGTu5C,GAAcv5C,GACd,GAAe,iBAAXA,OAEG,IAAe,kBAAXA,EAUJ,IAAe,QAAXA,GAA+B,SAAXA,EAC3B,gBJvCUwK,EAAuB4sB,EAA6BC,GAE5E,GAA+B,mBAApBD,GAA2D,mBAAlBC,EAClD,OAAO7sB,EAGsB,mBAApB4sB,EACTA,EAAkB,OACgB,mBAAlBC,IAChBA,EAAgB,QAGlB7sB,EAAQ1B,KAAKsuB,EAAiBC,EAChC,CI0BuBF,CAAU0hB,GAAYG,IAAI92B,OAAOwgB,EAAYjb,EAAKznB,EAAQZ,GAAUuU,EAAShN,GAGpF,MAAM,IAAIzL,MAAM,yBAA2B8E,GAdR,CACnC,MAAMw5C,EAAmBF,EAAgB57C,QAAQs7B,GAC7B6f,GAAYG,IAAI9f,mBAAmBF,GACpCt7B,QAAQhD,GACZA,EAAE/B,OAAS+pC,IACnB3pC,OAAS,IAEZygD,EAAiBzgD,OAAS,GACAygD,EAAiB,SAQhD,GAAIC,GAAaz5C,IAEpB,GAAKA,EAAejH,QAAU,EAAG,CAC7B,MAAM2gD,EAAa15C,EAAe,GAElC,GAAI3E,KAAKs+C,YAAYD,GACS15C,EAA2CyC,KAAK4B,GAA4CA,QACnH,KAAIhJ,KAAKu+C,kBAAkBF,GAG9B,MAAM,IAAIx+C,MAAM,yBAFU8E,EAA4ByC,KAAKo3C,GAAwBA,EAAIx1C,kBAM/F,GAAIhJ,KAAKs+C,YAAY35C,QAEd,KAAI3E,KAAKu+C,kBAAkB55C,GAG9B,MAAM,IAAI9E,MAAM,yBAFW8E,EAA0BqE,SAM7D,MAAM,IAAInJ,MAAM,mBAIb,UAAAklC,CAAWrlC,GAEd,OADAM,KAAK09C,gBACEF,GAAYG,IAAI5Y,WAAWrlC,GAG/B,YAAA6lC,CAAa1G,EAChBgF,EACAC,GACA9jC,KAAK09C,gBAELF,GAAYG,IAAIpY,aAAa1G,EAAkB,CAC3CgF,2BACAC,6BACAF,gCAA4Bz/B,IAI7B,SAAA40B,CAAU8F,EAAkE4f,EAAoB95C,GAKnG,OAJA3E,KAAK09C,gBAIEF,GAAYG,IAAI5kB,UAAU8F,EAAkB4f,GAGhD,aAAAf,GACH,GAAIE,GAAuBJ,GAAYG,KACnC,MAAM,IAAI99C,MAAM,mDAIjB,WAAAy+C,CAAYppB,GAEf,YAA2B/wB,IAApB+wB,EAAI3iB,YAGR,iBAAAgsC,CAAkBrpB,GACrB,YAAwB/wB,IAAjB+wB,EAAIlsB,gBCtLN01C,GAKX,WAAAniD,CACEoiD,EACAC,EACA3/C,GACAe,KAAKs7C,SAAWqD,EAChB3+C,KAAK6+C,iBAAmBD,EACxB5+C,KAAK4B,OAAS3C,EAGhB,WAAW6/C,GACT,OAAO9+C,KAAK4B,OAAOk9C,QAGrB,aAAWC,GACT,OAAO/+C,KAAK4B,OAAOm9C,UAGrB,cAAWC,GACT,OAAOh/C,KAAK4B,OAAOo9C,WAGrB,WAAW3hD,GACT,OAAO2C,KAAK4B,OAAOvE,QAGrB,OAAWmgB,GACT,OAAOxd,KAAK4B,OAAO4b,IAGd,MAAAyhC,CAAOC,GAEZA,EAAaA,GAAc,CAAE,EAE7B,MAAMxgD,EAA6B,CAAE,EASrC,OAPA9B,OAAOC,KAAKmD,KAAK4B,QAAQxC,SAASwiC,IAChCljC,EAAOkjC,GAAQ5hC,KAAK4B,OAAOggC,EAAK,IAGlCljC,EAAOrB,QAAU6hD,EAAW7hD,SAAWqB,EAAOrB,QAC9CqB,EAAOsgD,WAAaE,EAAWF,YAActgD,EAAOsgD,WAE7Ch/C,KAAKs7C,SAAS6D,iBAAiBn/C,KAAK6+C,iBAAkBngD,ICjDjE,MAAM0gD,GAAYC,IAChB/4C,WAAW+4C,EAAI,EAAE,EAOH,SAAAC,GAAWnwC,EAAqB3D,GAC9C,IAAK+zC,GAAgB/zC,GACnB,OAAO2D,EAGTA,EAAQ1B,MACL+xC,IACCJ,IAAU,KACR5zC,EAAS,KAAMg0C,EAAK,GACpB,IAEHzzC,IACCqzC,IAAS,KACP5zC,EAASO,EAAK,KAAK,GACnB,GAER,CCJqB,MAAA0zC,WAAiBzF,GAUpC,WAAAz9C,CACE0D,EACAy/C,EACAjtC,EACApV,EACAyhD,GACAt+C,MAAMP,GACND,KAAKi6C,IAAMh6C,EACXD,KAAK2/C,SAAWD,EAChB1/C,KAAK4/C,QAAUntC,EACfzS,KAAK6/C,SAAWxiD,EAChB2C,KAAK8/C,SAAWhB,EAChB9+C,KAAK+/C,KAAO,IAAIvC,GAAYx9C,MAO9B,QAAW5D,GACT,GAAI4D,KAAKs7C,SACP,OAAOt7C,KAAKs7C,SAAS0E,gBAAgBhgD,KAAK2/C,UAS9C,WAAWtiD,GACT,OAAO2C,KAAK6/C,SAOd,UAAWptC,GACT,OAAOzS,KAAK4/C,QAOd,SAAWK,GACT,OAAKjgD,KAAK8/C,SAGH9/C,KAAKs7C,SAASO,WAAW,CAAE57C,GAAID,KAAK8/C,WAAY,GAF9C,KASX,WAAWlE,GACT,OAAO57C,KAAKs7C,SAASO,WAAW,CAAEpzB,WAAYzoB,KAAKi6C,MAMrD,OAAWtB,GACT,OAAO34C,KAAK+/C,KAYP,SAAAG,CAAU96C,EAAwBoG,GACvC,OAAOxL,KAAKs7C,SAAS6E,oBAAoBngD,KAAMoF,EAAQoG,GAWlD,YAAAwwC,CAAaT,EAAuC/vC,GACzD,OAAOxL,KAAKs7C,SAASU,aAAah8C,KAAMu7C,EAAY/vC,GAY/C,oBAAA40C,CAAqBC,EAA4CnsC,EAAkB1I,GACxF,OAAOxL,KAAKs7C,SAAS8E,qBAAqBpgD,KAAMqgD,EAAansC,EAAS1I,GAWjE,KAAAsS,CAAM1Y,EAAwBoG,GACnC,OAAOxL,KAAKs7C,SAASgF,wBAAwBtgD,KAAMoF,EAAQoG,GAStD,gBAAA+0C,CAAiBhF,GACtB,MAAMl5C,EAAS,CAAEomB,WAAYzoB,KAAKi6C,IAAK79C,KAAMm/C,GAC7C,OAAOv7C,KAAKs7C,SAASO,WAAWx5C,GAW3B,UAAAm+C,CAAWnjD,EAAiBmO,GACjC,OAAOxL,KAAKs7C,SAASmF,mBAAmBzgD,KAAM3C,EAASmO,GAalD,aAAAk1C,CAAcrjD,EAAiBmO,GACpC,OAAOxL,KAAKs7C,SAASqF,sBAAsB3gD,KAAM3C,EAASmO,GAUrD,cAAAo1C,CAAev+B,GACpB,OAAOriB,KAAKs7C,SAASuF,yBAAwB,CAAC9hD,EAAG+hD,EAAIC,KAC/ChiD,EAAEkB,KAAOD,KAAKC,IAChBoiB,EAAQtjB,EAAG+hD,EAAIC,MAWd,aAAAC,CAAc3+B,GACnB,OAAOriB,KAAKs7C,SAAS2F,uBAAsB,CAACliD,EAAG8+C,EAAGn5C,KAC5C3F,EAAEkB,KAAOD,KAAKC,IAChBoiB,EAAQtjB,EAAG8+C,EAAGn5C,MAWb,gBAAAw8C,CAAiB7+B,GACtBriB,KAAKs7C,SAAS6F,iCAAgC,CAACC,EAAK/jD,EAAS03B,EAASC,KAChEosB,EAAInhD,KAAOD,KAAKC,IAClBoiB,EAAQhlB,EAAS03B,EAASC,EAASosB,MAIvC,IAEE/+B,EAAQriB,KAAK3C,QAAS2C,KAAK3C,QAAS,GAAI2C,MACxC,MAAO0E,GACP,QAQG,IAAAyL,GACLnQ,KAAKs7C,SAAS+F,aAAarhD,MAQtB,KAAAw5B,CAAMz1B,GACX,OAAO/D,KAAKs7C,SAAS9hB,MAAMx5B,KAAM+D,GAG5B,MAAAu9C,CAAOxF,EAA6Bt+B,GACzC,IAAIiL,EAMJ,OAJEA,EADsB,iBAAbqzB,EACIA,EAEAA,EAAS77C,GAEjBD,KAAKs7C,SAASiG,iBAAiB94B,EAAYzoB,KAAKC,GAAIud,GAGtD,kBAAAgkC,CAAmBh2C,GACxBxL,KAAKs7C,SAASmG,6BAA4B,CAACC,EAAkBC,EAAkBzC,KACzEwC,IAAa1hD,KAAKi6C,KAItBzuC,EAAS0zC,EAAW,IAIjB,UAAA0C,CAAWp2C,GAChBxL,KAAKs7C,SAASuG,6BAA4B,CAACC,EAAkBC,EAA4B9iD,KACnF8iD,EAAiB9hD,KAAOD,KAAKi6C,KAIjCzuC,EAASs2C,EAAQ7iD,EAAM,IAIpB,WAAAk7C,CAAYnmB,GACjBxzB,MAAM25C,YAAYnmB,GAClB4mB,GAAe5mB,EAAM2rB,UAAWn1C,GAAMxK,KAAK2/C,SAAWn1C,IACtDowC,GAAe5mB,EAAM6rB,UAAWr1C,GAAMxK,KAAK6/C,SAAWr1C,IACtDowC,GAAe5mB,EAAM8rB,UAAWt1C,GAAMxK,KAAK8/C,SAAWt1C,KAClDwpB,EAAM4rB,SAAa5/C,KAAK4/C,SAAY5/C,KAAK4/C,QAAQ3gD,QAAU+0B,EAAM4rB,QAAQ3gD,QAC3Ee,KAAK4/C,QAAU5rB,EAAM4rB,SAIlB,kBAAAoC,CAAmBC,GACxBjiD,KAAKkiD,UAAYD,EAAU76C,KAAKpE,GACvB,IAAI07C,GAA2B1+C,KAAKs7C,SAAUt7C,KAAKi6C,IAAKj3C,KAInE,YAAWm/C,GACT,OAAOniD,KAAKkiD,UAGP,aAAAE,CAAcC,EAAe72C,GA2BlC,OAAO8zC,GA1BS,IAAIx5C,SAAkB,CAACC,EAAS6H,KAE9C,IAAI00C,EAAkBtiD,KAAK47C,QAAQl+C,OACX,IAApB4kD,GACFv8C,EAAQ/F,MAGVA,KAAK47C,QAAQx8C,SAASy+C,IACpBA,EAAE0E,iBAAiBH,cAAcC,GAAO,KACtCC,IACIA,GAAmB,GACrBv8C,EAAQ/F,QAEV,IAGJsG,YAAW,KAELg8C,EAAkB,GACpB10C,EAAO5N,KAAKC,GAAK,8CAAgDoiD,KAGlE,IAAK,IAIc72C,GAGnB,aAAAg3C,GAEL,OAAKxiD,KAAK47C,SAAmC,IAAxB57C,KAAK47C,QAAQl+C,OAI3BsC,KAAK47C,QAAQ,GAAG2G,iBAAiBvD,WAH/B,UC3UAyD,IACGA,GAAKC,MAAG,QACRD,GAAKE,MAAG,QACRF,GAAIG,KAAG,OACPH,GAAII,KAAG,OACPJ,GAAK5iD,MAAG,cAGX2lB,GAOJ,eAAOs9B,CAASxlD,GACrB,OAAO,IAAIkoB,GAAOloB,GAGb,UAAOylD,CAAI9C,GAChB,OAAO,IAAIz6B,GAAOA,GAAOw9B,YAAY/C,IAKvC,WAAA1jD,CAAYe,GACV0C,KAAKqB,MAAQ/D,EAERsgD,GAAuBp4B,GAAOy9B,cACjCjjD,KAAKkjD,YAAc19B,GAAOy9B,WAAWjjC,UAAU1iB,IAI5C,KAAAojB,CAAMnT,GACNqwC,GAAuB59C,KAAKkjD,aAG3B19B,GAAO29B,QAAUV,GAASC,OAC5Br3C,QAAQyF,KAAK9Q,KAAKojD,YAAY71C,EAASk1C,GAASC,QAHlD1iD,KAAKkjD,YAAYxiC,MAAMnT,GAQpB,KAAAkE,CAAMlE,GACNqwC,GAAuB59C,KAAKkjD,aAG3B19B,GAAO29B,QAAUV,GAASE,OAC5Bn9B,GAAO29B,QAAUV,GAASC,OAC1Br3C,QAAQyF,KAAK9Q,KAAKojD,YAAY71C,EAASk1C,GAASE,QAJlD3iD,KAAKkjD,YAAYzxC,MAAMlE,GASpB,IAAAuD,CAAKvD,GACLqwC,GAAuB59C,KAAKkjD,aAG3B19B,GAAO29B,QAAUV,GAASE,OAC5Bn9B,GAAO29B,QAAUV,GAASC,OAC1Bl9B,GAAO29B,QAAUV,GAASG,MAC1Bv3C,QAAQyF,KAAK9Q,KAAKojD,YAAY71C,EAASk1C,GAASG,OALlD5iD,KAAKkjD,YAAYpyC,KAAKvD,GAUnB,IAAA6K,CAAK7K,GACLqwC,GAAuB59C,KAAKkjD,aAG3B19B,GAAO29B,QAAUV,GAASE,OAC5Bn9B,GAAO29B,QAAUV,GAASC,OAC1Bl9B,GAAO29B,QAAUV,GAASG,MAC1Bp9B,GAAO29B,QAAUV,GAASI,MAC1Bx3C,QAAQyF,KAAK9Q,KAAKojD,YAAY71C,EAASk1C,GAASG,OANlD5iD,KAAKkjD,YAAY9qC,KAAK7K,GAWnB,KAAAjC,CAAMiC,GACNqwC,GAAuB59C,KAAKkjD,cAG/B73C,QAAQC,MAAMtL,KAAKojD,YAAY71C,EAASk1C,GAAS5iD,QACjDwL,QAAQqV,SAHR1gB,KAAKkjD,YAAY53C,MAAMiC,GAOpB,WAAA61C,CAAY71C,EAAiB2Y,GAClC,MAAO,IAAMA,EAAQ,KAAOlmB,KAAKqB,MAAQ,MAAQkM,EAM5C,kBAAOy1C,CAAYhzB,GACxB,MACMxjB,EADgB,qBACUogB,KAAKoD,EAAOzzB,YAAYyB,YACxD,OAAQwO,GAAWA,EAAQ9O,OAAS,EAAK8O,EAAQ,GAAK,IAxF1CgZ,GAAA29B,MAAgBV,GAASG,KCEpB,MAAAS,WAAuBrJ,GAYxC,WAAAz9C,CAAY0D,EAAY3C,EAAclB,EAAcqsB,EAAoBzf,EAA6C+yC,EAAwBuH,EACzIC,GACA/iD,MAAMP,GAZFD,KAAAg2B,QAAkBxQ,GAAOu9B,IAAI,UAajC/iD,KAAKwjD,MAAQpnD,EACb4D,KAAKyjD,YAAch7B,EACnBzoB,KAAKqB,MAAQ/D,EACb0C,KAAK0jD,UAAY16C,EACjBhJ,KAAK2jD,eAAiB5H,EACtB/7C,KAAK4jD,cAAgBN,EACrBtjD,KAAK6jD,YAAcN,EAQhB,SAAAO,GACH,OAAO9jD,KAAKs7C,SAASyI,gBAAgB/jD,KAAKC,IAM9C,QAAW3C,GACP,OAAO0C,KAAKqB,MAMhB,iBAAW06C,GACP,OAAO/7C,KAAK2jD,eAMhB,QAAWvnD,GACP,GAAI4D,KAAKs7C,SACL,OAAOt7C,KAAKs7C,SAAS0I,cAAchkD,KAAKwjD,OAQhD,YAAW1H,GACP,IAAImI,GAAiBjkD,KAAKyjD,aAG1B,OAAOzjD,KAAKs7C,SAAS4I,gBAAgBlkD,KAAKyjD,aAM9C,WAAWU,GACP,MAAM/C,EAAMphD,KAAK87C,SACjB,OAAImI,GAAiB7C,IAIdA,EAAInB,MAAMhgD,KAAOD,KAAKC,GAU1B,UAAAmkD,CAAWC,EAAoB74C,GAClC,OAAOxL,KAAKs7C,SAASgJ,oBAAoBtkD,KAAKC,GAAIokD,GAQ/C,QAAAE,CAASC,GACZ,OAAOxkD,KAAKs7C,SAASmJ,eAAezkD,KAAKC,GAAIukD,GAU1C,SAAAE,CAAUC,EAAsBn5C,GACnC,OAAOxL,KAAKs7C,SAASsJ,gBAAgB5kD,KAAKC,GAAI0kD,EAAQn5C,GASnD,KAAAwC,GACH,OAAOhO,KAAKs7C,SAASuJ,YAAY7kD,KAAKC,IAM1C,YAAW+I,GACP,OAAOhJ,KAAK0jD,UAQhB,oBAAWnB,GACP,MAAMn9C,EAASpF,KAAK4jD,gBACpB,OAAKx+C,GAEM,CACHnF,GAAID,KAAK6jD,aAMd,gBAAAiB,CAAiBt5C,GACpBxL,KAAK+kD,iCAAiCtI,GAAgBS,6BAA8B1xC,GAGjF,iBAAAw5C,CAAkBx5C,GACrBxL,KAAK+kD,iCAAiCtI,GAAgBU,2BAA4B3xC,GAG/E,WAAA2uC,CAAYnmB,GACf4mB,GAAe5mB,EAAMyvB,aAAcj5C,GAAMxK,KAAKyjD,YAAcj5C,IAC5DowC,GAAe5mB,EAAM2vB,gBAAiBn5C,GAAMxK,KAAK2jD,eAAiBn5C,IAClEowC,GAAe5mB,EAAM6vB,aAAcr5C,GAAMxK,KAAK6jD,YAAcr5C,IAC5DowC,GAAe5mB,EAAMwvB,OAAQh5C,GAAMxK,KAAKwjD,MAAQh5C,IAChDowC,GAAe5mB,EAAM3yB,OAAQmJ,GAAMxK,KAAKqB,MAAQmJ,IAE3CozC,GAAuB5pB,EAAM0vB,aAC9B1jD,KAAK0jD,UAAY1vB,EAAM0vB,WAIxB,gCAAAqB,CAAiCpY,EAAmBnhC,GACvDxL,KAAKs7C,SAAS2F,uBAAsB,CAACnF,EAAU12C,EAAQiT,KAE/CjT,EAAOnF,KAAOD,KAAKC,IAInBoY,IAAUs0B,GACVnhC,EAASswC,MAKd,aAAA1B,CAAcpmB,GACjBh0B,KAAK6jD,YAAc7vB,EAAM6vB,mBC7LpBoB,GAKX,WAAA1oD,CAAY0C,EAAesO,EAAiB2B,GAC1ClP,KAAKf,MAAQA,EACbe,KAAKuN,QAAUA,EACfvN,KAAKkP,KAAOA,EAGP,QAAAhM,GACL,OAAOlD,KAAKf,MAGP,UAAAimD,GACL,OAAOllD,KAAKuN,QAGP,OAAAzP,GACL,OAAOkC,KAAKkP,MCehB,MAAMi2C,GAAkB,QAElBC,GAA4B,YAK5BC,GAA2B,UAC3BC,GAA6B,YAC7BC,GAA6B,YAE7BC,GAA0B,SAC1BC,GAA0B,kBAE1BC,GAAwB,OAIxBC,GAAwB,gBAExBC,GAA4B,qBAC5BC,GAA8B,uBAE9BC,GAAgC,yBAMhCC,GAAuB,eASf,MAAOtqB,GAET,gDAAOuqB,CACX7J,EACA/+C,GAEA,MAAM6oD,EACDC,GACG,IAAIzK,GACAyK,OACA/hD,GAEZ,OAAO,IAAI22C,GACPqB,EAAO7+C,KACP6+C,EAAOgK,YAAcF,EAAiB9J,EAAOgK,YAC7ChK,EAAOiK,cAAgBjK,EAAOiK,aAAah/C,IAAI6+C,GAC/C7oD,GAGA,6CAAOipD,CAAuClK,GAClD,OAAO,IAAIV,GACPU,EAAOmK,WAC4C1sB,IAAe,IAGlE,kCAAO2sB,CAA4BpnD,EAAwBsT,GAC/D,MAAMqsC,OAAwB36C,IAAdhF,EAAI8gD,MAAsB9gD,EAAI8gD,MAAM72C,QAAUjK,EAAIqnD,SAClE,OAAO,IAAI/G,GACPtgD,EAAIg7B,YACJh7B,EAAIsnD,cACJh0C,EACAtT,EAAIq7B,iBACJskB,GAGA,0CAAO4H,CAAoCtF,GAC/C,OAAO,IAAInF,GAAsBmF,EAAK,IAAI9E,GAAiC8E,EAAI3uC,YAAQtO,IA8B3F,WAAA5H,CAAYiL,GAuBR,GAzCIxH,KAAwB2mD,yBAAkD,GAC1E3mD,KAAkC4mD,mCAAsD,GACxF5mD,KAA8B6mD,+BAAwD,GACtF7mD,KAAgC8mD,iCAAoD,GAGpF9mD,KAA6B+mD,8BAAQ,CAAE,EACvC/mD,KAA4BgnD,6BAAuC,CAAE,EACrEhnD,KAAiBs2B,kBAAU,GAC3Bt2B,KAAqBinD,sBAAQ,CAAE,EAC/BjnD,KAA6BknD,8BAAQ,CAAE,EAS3ClnD,KAAKmnD,QAAU3/C,EACfxH,KAAKi2B,YAAczuB,EAAOD,WAC1BvH,KAAKg2B,QAAUxuB,EAAO2F,OACtBnN,KAAK42C,UAAYpvC,EAAO+uC,SACxBv2C,KAAKonD,SAAW5/C,EAAOo0C,QAEvB57C,KAAKqnD,sBAAwB,IAAIvhD,SAAoBC,IACjD/F,KAAKsnD,6BAA+BvhD,CAAO,IAG/C/F,KAAKunD,uBAAyB,IAAIzhD,SAAiBC,IAC/C/F,KAAKwnD,8BAAgCzhD,CAAO,IAG3C/F,KAAKmnD,QAAQ1+B,YACdzoB,KAAKwnD,8BAA8B,IAGvCxnD,KAAKo2B,YAAcp2B,KAAKi2B,YAAYttB,OAChC,WACA,CAAC,SAAU,YAAa,eAAgB,UAEtB,oBAAXvD,OAAwB,CAE/B,MAAMO,EAAW,OAASA,SAGtBA,GAAYA,EAAS8hD,eAEqB,mBAA/B9hD,EAAS+hD,mBAEhB/hD,EAAS+hD,mBAAkB,CAACpvC,EAAchN,KACtCtL,KAAKo2B,YACAluB,KACG,CACI9L,KAAM,WAEbqR,MACItO,IACG,GAAKA,EAAI+e,MAAT,CAIA,IACIvY,EAASgiD,WAAWxoD,EAAI+e,OAC1B,MAAOxZ,GAEL,YADA4G,EAAM5G,EAAE6I,SAAW7I,GAGvB4T,SATIhN,EAAM,yCASD,GAEbA,EAAM,IAKlB3F,GAAuD,mBAApCA,EAASiiD,wBAE5BjiD,EAASiiD,wBAAuB,CAACtvC,EAAchN,KAC3CtL,KAAKo2B,YACAluB,KACG,CACI9L,KAAM,WAEbqR,MACItO,IACG,GAAKA,EAAI+e,MAAT,CAIA,IACIvY,EAASgiD,WAAWxoD,EAAI+e,OAC1B,MAAOxZ,GAEL,YADA4G,EAAM5G,EAAE6I,SAAW7I,GAGvB4T,SATIhN,EAAM,yCASD,GAEbA,EAAM,MAOlC,cAAWu8C,GACP,MAAO,MAGJ,IAAA7jD,GAEHhE,KAAK8nD,mDAGL9nD,KAAK+4B,UACDssB,GACArlD,KAAK+nD,8BAET/nD,KAAK+4B,UACDusB,GACAtlD,KAAKgoD,gCAEThoD,KAAKioD,+CAELjoD,KAAKkoD,uEAMLloD,KAAKmoD,kDAELnoD,KAAKooD,kDAELpoD,KAAK+4B,UACD8sB,GACA7lD,KAAKqoD,0BAETroD,KAAK+4B,UACD+sB,GACA9lD,KAAKsoD,4BAITtoD,KAAKuoD,+CAGLvoD,KAAK+4B,UAxMgB,gBA0Mb,KACA,GAA4C,YAAxC/4B,KAAKmnD,QAAQqB,wBAIjB,GAA4C,SAAxCxoD,KAAKmnD,QAAQqB,uBAAmC,CAChD,GAAIxoD,KAAKonD,eAA0C,IAAvBpnD,KAAKonD,SAASqB,KAEtC,YADAzoD,KAAKonD,SAASqB,KAAKz6C,QAGvB,GAAsB,oBAAX5I,QAAoD,mBAAnB,OAAS4I,MAEjD,YADA5I,OAAO4I,QAGX,GAAuB,oBAAZc,SAAqD,mBAAnB,QAAU45C,KAEnD,YADA55C,QAAQ45C,aAbZ1oD,KAAK63B,aAoBjB73B,KAAKo2B,YAAYxtB,UAAS,KAEI,gBAAtB5I,KAAKmnD,QAAQwB,MACS,kCAAtB3oD,KAAKmnD,QAAQwB,KACb3oD,KAAKsnD,6BAA6BtnD,MAElCA,KAAKo2B,YACAluB,KACG,CACI9L,KAAM,YACNwsD,eAC2B,aAAtB5oD,KAAKmnD,QAAQwB,KAAsB,GACV,eAAtB3oD,KAAKmnD,QAAQwB,KAAwB3oD,KAAKmnD,QAAQ0B,aAAe,KAEhFp7C,MAAK,KACFzN,KAAKsnD,6BAA6BtnD,KAAK,OAIvDA,KAAKo2B,YAAY34B,OAGd,OAAAo6B,GACH73B,KAAKs2B,kBAAkBl3B,SAASgU,GAAQA,GAAOpT,KAAKi2B,YAAYxiB,IAAIL,KACpEpT,KAAKs2B,kBAAkB54B,OAAS,EAK7B,KAAAqlB,GACH,OAAOjd,QAAQsf,IAAI,CAACplB,KAAKqnD,sBAAuBrnD,KAAKunD,yBAGlD,SAAAuB,GACH,OAAO9oD,KAAKqnD,sBAGT,0BAAA0B,CAA2Bv9C,GAC9BxL,KAAK4mD,mCAAmC1mD,KAAKsL,GAG1C,oBAAAw9C,CACHC,EACAlO,EACAC,EACAxzC,EACApK,GAEA,MAAM++C,EAAsC,CAAE,EAC9CA,EAAO7+C,KAAO2rD,EACd,MAAMC,EAAwBC,IAAwC,CAAE/sD,KAAM+sD,EAAiB/sD,KAAMkB,KAAM6rD,EAAiB7rD,KAAMg/B,cAAe6sB,IAKjJ,OAHAhN,EAAOgK,WAAa+C,EAAqBnO,GACzCoB,EAAOiK,aAAepL,EAAc5zC,IAAI8hD,GAEjClpD,KAAKo2B,YACPluB,KACG,CACI9L,KAAMgpD,GACNlyC,MAAO,CAACipC,KAEf1uC,MAAK,KACF,MAAM27C,EAAe3tB,GAAUuqB,0CAA0C7J,EAAQ/+C,GAOjF,OANA4C,KAAKqpD,gBACDrpD,KAAK4mD,mCACL,IAAI3K,GACAmN,EACA,IAAIhN,GAAmBK,GAAgBI,QAC3CuI,IACGgE,CAAY,IAIxB,sBAAAE,CAAuBL,GAC1B,OAAOjpD,KAAKo2B,YACPluB,KACG,CACI9L,KAzUiB,eA0UjB8W,MAAO,CAAC+1C,KAEfx7C,MAAK,KACF,MAAM27C,EAAe,IAAItO,GAAamO,OAAkB9kD,OAAWA,OAAWA,GAC9EnE,KAAKqpD,gBACDrpD,KAAK4mD,mCACL,IAAI3K,GACAmN,EACA,IAAIhN,GAAmBK,GAAgBK,UAC3CsI,GAA0B,IAInC,wBAAAmE,CAAyB/9C,GAC5BxL,KAAK8mD,iCAAiC5mD,KAAKsL,GAOxC,qBAAAg+C,CACHjO,EACAkO,EACAhL,GACA,GAAIz+C,KAAKgnD,6BAA6BzL,GAClC,OAAOz1C,QAAQ8H,OAAO,IAAI/N,MAAM,0BAA0B07C,0BAG9Dv7C,KAAKgnD,6BAA6BzL,GAAckO,EAIhD,MAAMtN,EAAS,CACXl8C,GAAIs7C,EACJ+K,UAAW/K,EACXjf,cAAemiB,GAEnB,OAAOz+C,KAAKo2B,YAAYluB,KAAK,CACzB9L,KAAMwpD,GACN8D,UAAW,CAACvN,KAEX1uC,MAAK,KACFzN,KAAKqpD,gBACDrpD,KAAK8mD,iCACL,IAAI7K,GACAxgB,GAAU4qB,uCAAuClK,GACjD,IAAIC,GAAmBK,GAAgBI,QAC3C+I,GAA0B,IAEjCpjD,OAAM,YACIxC,KAAKgnD,6BAA6BzL,EAAW,IAIzD,uBAAAoO,CAAwBpO,GAE3B,OADgBv7C,KAAKgnD,6BAA6BzL,WAK3Cv7C,KAAKgnD,6BAA6BzL,GAElCv7C,KAAKo2B,YAAYluB,KAAK,CACzB9L,KAxXyB,wBAyXzBwtD,YAAa,CAACrO,KACf9tC,MAAK,KACJzN,KAAKqpD,gBACDrpD,KAAK8mD,iCACL,IAAI7K,GACA,IAAIR,GAAWF,OAAYp3C,GAC3B,IAAIi4C,GAAmBK,GAAgBK,UAC3C8I,GAA0B,KAdvB9/C,QAAQ8H,OAAO,IAAI/N,MAAM,0BAA0B07C,sBAkB3D,sBAAAsO,CAAuBr+C,GAC1BxL,KAAK2mD,yBAAyBzmD,KAAKsL,GAGhC,gBAAAs+C,CAAiBV,EAAsB/rD,EAAkBi/B,GAC5D,MAAMytB,EAAmB,CACrB3tD,KAvYoB,SAwYpBqqD,cAAe2C,EACfY,gBAAiB3sD,GAYrB,OATI2C,KAAKiqD,yBAAyB3tB,GAC9BytB,EAAYG,eAAiB,CACzB/D,WAAY,CAAE/pD,KAAMkgC,EAAc2jB,MAAM7jD,KAAMkB,KAAMg/B,EAAc2jB,MAAM3iD,KAAMg/B,cAAeA,EAAc2jB,OAC3GmG,aAAc9pB,EAAc6tB,SAAW7tB,EAAc6tB,QAAQ/iD,KAAKgjD,IAAQ,CAAEhuD,KAAMguD,EAAGhuD,KAAMkB,KAAM8sD,EAAG9sD,KAAMg/B,cAAe8tB,OAG7HL,EAAYztB,cAAgBA,GAAiBA,EAAcl1B,KAAKgjD,KAAUhuD,KAAMguD,EAAGhuD,KAAMkB,KAAM8sD,EAAG9sD,KAAMg/B,cAAe8tB,MAGpHpqD,KAAKqqD,2CACRN,EACAxE,IACA,CAACpmD,EAAKge,IAAche,EAAIie,aAAeD,GACvCkoC,IACA,CAAClmD,EAAKge,EAAWmtC,IAAYnrD,EAAIg7B,cAAgBmwB,EAAQnwB,aACzDmrB,IACA,CAACnmD,EAAKge,EAAWmtC,IAAYnrD,EAAIg7B,cAAgBmwB,EAAQnwB,cACxDh7B,GAAQA,EAAIg7B,aACb,MAAM1sB,MAAMxN,GACkB,kCAAtBD,KAAKmnD,QAAQwB,MACR3oD,KAAKknD,8BAA8BkC,GAcrCnpD,GAbCD,KAAKknD,8BAA8BkC,IAAgB,EAE5CppD,KAAKo2B,YACPluB,KACG,CACI9L,KAAM,YACNwsD,eAAgB,CAACQ,KAExB37C,MAAK,IACKxN,OAQ5B,YAAAohD,CAAavF,GAChB,OAAO97C,KAAKo2B,YAAYluB,KAAK,CACzB9L,KA9aqB,UA+arB+9B,YAAa2hB,EAAS77C,GACtBktC,WAAY,2DACZt7B,OAAQ,wBACTpE,MAAMmsB,IAAM,IAGZ,qBAAA+mB,CAAsB7E,EAAoBz+C,EAAcktD,EAAsBC,GACjF,GAAID,EAEA,OAAOvqD,KAAK42C,UAAUprB,IAAIswB,EAAS77C,GAAI5C,GAEvCmtD,EAAcA,GAAe,GAC7B,IAAK,MAAMhgD,KAAKggD,EACZntD,EAAQmN,GAAK,KAEjB,OAAOxK,KAAK42C,UAAUx2C,OAAO07C,EAAS77C,GAAI5C,GAI3C,cAAAotD,CAAelP,EAAqBmP,GAIvC,MAAM,IAAI7qD,MAAM,uDAGb,cAAA8qD,CAAevuD,EAAckB,EAAcstD,GAE9C,IAAIC,OAA2D,IAAlC7qD,KAAKi2B,YAAY5X,aAC9C,MAAMhV,EAASrJ,KAAKi2B,YAAY5sB,OAGhC,GAAsB,oBAAXjE,OAAwB,CAC/B,MAAMO,EAAWP,OAAOO,SACpBA,IACAklD,OAAmD,IAA1BllD,EAAS8hD,cAiB1C,OAbIoD,GACA7qD,KAAKo2B,YAAYluB,KAAK,CAClB9L,KA3dO,UA+df4D,KAAKqpD,gBACDrpD,KAAK6mD,+BACL,IAAI5K,GACA,IAAIoH,GAAeh6C,EAAQ/L,EAAMlB,OAAM+H,EAAWnE,KAAK8qD,eAAezhD,GAASuhD,EAAa5qD,KAAK+qD,qBAAqB1hD,QAASlF,GAC/H,IAAIi4C,GAAmBK,GAAgBI,QAC3C,mBAEG/2C,QAAQC,QAAQsD,GAGpB,sBAAA2hD,CAAuBx/C,GAC1BxL,KAAK6mD,+BAA+B3mD,KAAKsL,GAGtC,YAAAwwC,CAAavzB,EAAoB0gC,GAI/BA,EAAiB8B,SACd9B,EAAiBlmC,MAAQkmC,EAAiB+B,OAAS/B,EAAiBgC,QAAUhC,EAAiBruC,OAC/FquC,EAAiB8B,OAAS,CACtBtC,KAAM,SACNyC,SAAU,IAKtB,MAAMC,EAAYprD,IACd,GAAKwoB,EAGL,OAAOzoB,KAAKsrD,aAAa7iC,EAAYxoB,EAAIkpD,EAAiB7rD,MACrDmQ,MAAK,IACKxN,GACT,EAGV,OAAOD,KAAKqqD,2CACR,CACIjuD,KAxgBY,cAygBZkqD,UAAW6C,EAAiB/sD,KAC5BmvD,UAAWpC,EAAiB7rD,MAAQ6rD,EAAiB/sD,KACrDkgC,cAAe6sB,EACfhvB,YAAa1R,QAEjBtkB,OACAA,EACA4hD,IACA,CAAC5mD,EAAKge,IAAche,EAAIie,aAAeD,QACvChZ,OACAA,GACChF,GAAQA,EAAIqsD,YACbH,GACC59C,KAAK49C,GAGP,iBAAMxG,CAAY5kD,SACfD,KAAKo2B,YAAYluB,KAAK,CACxB9L,KAphBiB,eAqhBjBqvD,gBAAiBxrD,IAIlB,mBAAAyrD,GACH,IAAIjjC,EAAazoB,KAAKmnD,QAAQ1+B,YAAezoB,KAAKmnD,QAAQwE,kBAAoB3rD,KAAKmnD,QAAQwE,iBAAiBljC,WACxGmjC,EAAsB5rD,KAAKmnD,QAAQwE,kBAAoB3rD,KAAKmnD,QAAQwE,iBAAiBC,mBACrFC,EAA6B7rD,KAAKmnD,QAAQwE,kBAAoB3rD,KAAKmnD,QAAQwE,iBAAiBE,0BAC5FC,EAAsB9rD,KAAKmnD,QAAQwE,kBAAoB3rD,KAAKmnD,QAAQwE,iBAAiBG,mBAEzF,GAAsB,oBAAX1mD,aACoB,IAApBA,OAAOC,UACdD,OAAOC,SAAS0mD,QACW,mBAApBC,gBAAgC,CACvC,MAAMC,EAAe,IAAID,gBAAgB3mD,SAAS0mD,OAAOxsD,MAAM,IAC/DqsD,EAAqBA,GAAsBK,EAAav5B,IAAI,eAC5Dk5B,EAAqBA,GAAsBK,EAAav5B,IAAI,8BACnB,IAA9Bm5B,IACPA,EAA4BI,EAAav5B,IAAI,iCAEjDo5B,EAAqBA,GAAsBG,EAAav5B,IAAI,yBAC5DjK,EAAaA,GAAcwjC,EAAav5B,IAAI,iBAOhD,OAJAk5B,EAAqBA,GAAsB,UAC3CC,EAA4BA,IAA6B,EACzDC,EAAqBA,GAAsB9rD,KAAKi2B,YAAY5sB,OAErD,CACHqhD,sBAAkBvmD,EAClBskB,aACAmjC,qBACAC,4BACAC,sBAID,YAAAR,CAAa7iC,EAAoBvQ,EAAkB5a,GACtD,MAAM4uD,EAAa5uD,GAAQ,CAAEA,SAAW,CAAE,EAC1C,OAAO0C,KAAKo2B,YAAYluB,KAAK,CACzB9L,KAplBmB,gBAqlBnB+vD,UAAWj0C,EACXiiB,YAAa1R,KACVyjC,IACJz+C,MAAK,KACJzN,KAAKqpD,gBACDrpD,KAAK6mD,+BACL,IAAI5K,GACA,IAAIoH,GAAenrC,OAAU/T,OAAWA,EAAWskB,EAAYzoB,KAAK8qD,eAAe5yC,QAAW/T,EAAWnE,KAAK+qD,qBAAqB7yC,QAAW/T,GAC9I,IAAIi4C,GAAmBK,GAAgBS,+BAC3C,oCAEJl9C,KAAKqpD,gBACDrpD,KAAK2mD,yBACL,IAAI1K,GACA,IAAIwD,GAASh3B,OAAYtkB,EAAW,IAAI8gD,GAAe,eAAW9gD,OAAWA,QAAYA,OAAWA,GACpG,IAAIi4C,GAAmBK,GAAgBM,UAC3C,6BAA6B,IAIlC,aAAAqP,CAAc3jC,EAAoBvQ,GACrC,OAAOlY,KAAKo2B,YAAYluB,KAAK,CACzB9L,KAxmBmB,iBAymBnB+vD,UAAWj0C,EACXiiB,YAAa1R,IACdhb,MAAK,KACJzN,KAAKqpD,gBACDrpD,KAAK6mD,+BACL,IAAI5K,GACA,IAAIoH,GAAenrC,OAAU/T,OAAWA,EAAW,KAAMnE,KAAK8qD,eAAe5yC,QAAW/T,EAAWnE,KAAK+qD,qBAAqB7yC,QAAW/T,GACxI,IAAIi4C,GAAmBK,GAAgBU,6BAC3C,kCAEJn9C,KAAKqpD,gBACDrpD,KAAK2mD,yBACL,IAAI1K,GACA,IAAIwD,GAASh3B,OAAYtkB,EAAW,IAAI8gD,GAAe,eAAW9gD,OAAWA,QAAYA,OAAWA,GACpG,IAAIi4C,GAAmBK,GAAgBM,UAC3C,2BAA2B,IAKhC,gBAAAsP,GACH,OAAOvmD,QAAQC,QAAQ,IAGpB,cAAAumD,GACH,OAAOxmD,QAAQC,QAAQ,IAGpB,aAAAwmD,GACH,OAAOzmD,QAAQC,QAAQ,IAGpB,kBAAAymD,GACH,OAAO1mD,QAAQC,QAAQ,IAQpB,oBAAAq6C,CAAqBngD,EAAYwsD,EAAuCv4C,IAKxE,eAAA6vC,CAAgB9jD,IAKhB,eAAA2kD,CAAgB3kD,EAAY0kD,IAK5B,cAAAF,CAAexkD,EAAYukD,IAK3B,mBAAAF,CAAoBrkD,EAAYysD,IAKhC,aAAAC,CAAc1sD,EAAY2sD,IAK1B,gBAAArL,CAAiBpmC,EAAc4f,EAAYvd,GAC9C,OAAOxd,KAAKo2B,YAAYluB,KAAK,CACzB9L,KAhrBsB,QAirBtBywD,KAAM9xB,EACN+xB,MAAO3xC,IAKR,gBAAAgkC,CAAiB12B,EAAoBskC,GACxC,OAAO/sD,KAAKo2B,YAAYluB,KAAK,CACzB9L,KAxrBqB,QAyrBrB+e,KAAMsN,IAEPhb,MAAK,IAAM,KAIX,oBAAAu/C,CAAqBxhD,IAKrB,oBAAAyhD,CAAqBzhD,IAIrB,sCAAA0hD,CAAuC1hD,IAKvC,sBAAA2hD,GACH,OAAOrnD,QAAQC,QAAQ,IAOnB,kBAAAqnD,GAEJ,OAAOptD,KAAKi2B,YAAY5sB,OAAS,IAAMuK,KAAK00B,MAAsB,IAAhB10B,KAAKC,UAGnD,4CAAAw5C,CACJC,EACAC,EACAC,EACArrC,GAEA,MAAMsrC,EAAqBC,GAAsBvR,GAAgB,IAAIF,GACjEE,EACA,IAAIC,GACAsR,EACIjR,GAAgBI,MAChBJ,GAAgBK,UAe5B,MAAO,CAZMwQ,GAAoBttD,KAAK2tD,6BAClCL,GACCnuD,GAAQquD,EAAOruD,GAAK,IACrBsuD,GAAkB,GAClBtrC,GAESorC,GAAsBvtD,KAAK2tD,6BACpCJ,GACCpuD,GAAQquD,EAAOruD,GAAK,IACrBsuD,GAAkB,GAClBtrC,IAEgB9f,QAAQmI,GAAMA,IAG9B,4BAAAmjD,CACJ10C,EACAu0C,EACAI,EACAvrC,GACA,OAAOriB,KAAK+4B,UACR9f,GACC9Z,IACGquD,EAAOruD,GACFC,SAASyuD,GACNxrC,EAAQjjB,SAAS0uD,GAAMA,EAAEF,EAAeC,EAAK1uD,OAAO,IAIhE,0CAAAkrD,CACJlrD,EACA4uD,EACAC,EACA/zB,EACAg0B,EACAC,EACAC,EACAC,EACAC,GAEA,MAAMC,EAAQtuD,KAAKotD,qBAEnB,IAAImB,EACAC,EACJ,MAAMC,EAAiB,IAAI3oD,SAAsB,CAACC,EAAS6H,KACvD2gD,EAAwBxoD,EACxByoD,EAAuB5gD,CAAM,IAGjC,IAEI8gD,EACAC,EACAC,EACAC,EALAC,EAA2B,KAO/B,MAAMC,EAAoB,KACtB/uD,KAAKgvD,iBAAiBN,GACjBL,GACDruD,KAAKgvD,iBAAiBL,GAE1B3uD,KAAKgvD,iBAAiBJ,GACtB5uD,KAAKgvD,iBAAiBH,EAAkB,EAG5CH,EAAwBX,GACpB/tD,KAAK+4B,UACDg1B,GACCkB,IACQjB,EAAuBiB,EAAMX,KAGlCQ,EAAsBG,EACtBjvD,KAAKgvD,iBAAiBN,GAAsB,IAGxD,IAAIQ,GAAY,EAChBP,EACI3uD,KAAK+4B,UACDkB,GACCk1B,IACQlB,EAAqBkB,EAAMb,EAAOQ,KAGnCI,EACIb,GACAA,EAAmBD,EAAkCe,KAGzDD,GAAY,EACZX,EAAsBH,EAAkCe,SAGxEP,EAAwBV,GACpBluD,KAAK+4B,UACDm1B,GACCkB,IACQjB,EAAuBiB,EAAMd,EAAOQ,IAGzCN,EAAqBY,EAAK,IAEtCP,EAAoBX,GAChBluD,KAAK+4B,UACDosB,IACCkK,IACOA,EAAKjyC,aAAekxC,GAGxBE,EAAqBa,EAAK,IAGtClwD,EAAIie,WAAakxC,EAEjB,MAAMgB,EAAWtvD,KAAKo2B,YACjBluB,KAAK/I,GACLsO,MAAK,IACKghD,IAGf,OADAa,EAAS7hD,KAAKshD,EAAmBA,GAC1BO,EAKH,mCAAAC,CAAoCC,EAAmB1Q,GAC3D,MAAM2Q,EAAWzvD,KAAK+mD,8BAA8BjI,EAAU,IAAM0Q,GACpE,OAAKC,EAGM,IAAIhU,GAAWgU,OAAUtrD,GAFzB,KAMP,SAAA40B,CAAoB9f,EAAqBoJ,GAC7C,MAAMjP,EAAMpT,KAAKi2B,YAAY5iB,GACzB4F,GACC9Z,GAAkBkjB,EAAQrM,KAAKhW,KAAbqiB,CAAmBljB,KAI1C,OAFAa,KAAKs2B,kBAAkBp2B,KAAKkT,GAErBA,EAGH,gBAAA47C,CAAiB31B,GACjBA,IACAr5B,KAAKi2B,YAAYxiB,IAAI4lB,UAEdr5B,KAAKs2B,kBAAkBt2B,KAAKs2B,kBAAkB/iB,QAAQ8lB,KAI7D,eAAAgwB,CACJr+C,EACAqN,EACAjb,GACA4N,EAAU5L,SAASigD,IACf,IACIA,EAAGhnC,GACL,MAAOtM,GACL/L,KAAKg2B,QAAQ1qB,MAAM,YAAYlO,GAAeib,EAAMhb,QAAQjB,kBAAoByK,KAAKC,UAAUiF,QAKnG,4BAAAg8C,CAA6B5oD,GAC5BA,EAAI+4B,WAGAl4B,KAAKinD,sBAAsB9nD,EAAIg7B,cAChCn6B,KAAK0vD,mBAAmBvwD,GAH5Ba,KAAKg2B,QAAQ1qB,MAAM,6CAA+CnM,EAAIg7B,aAQtE,wBAAMu1B,CAAmBvwD,GAC7B,MAAMspB,EAAatpB,EAAIg7B,YACvBn6B,KAAKinD,sBAAsBx+B,SACjBzoB,KAAK42C,UAAU7d,UAAUtQ,GAC3B,CAACja,EAAWumB,EAAcC,KACtB,MAAM3c,EAAQ,IAAI4jC,GACd,IAAIwD,GAASh3B,OAAYtkB,OAAWA,EAAWqK,OAAMrK,GACrD,IAAIw4C,GAAmCnuC,EAAMumB,EAASC,IAE1Dh1B,KAAKqpD,gBACDrpD,KAAK2mD,yBACLtuC,EACA,kBAAkB,IAI9B,8BAAA2vC,CAA+B7oD,GACnC,MAAMwwD,EAAqB3vD,KAAKinD,sBAAsB9nD,EAAIg7B,aACxB,mBAAvBw1B,GACPA,WAEG3vD,KAAKinD,sBAAsB9nD,EAAIg7B,aAGlC,wBAAAkuB,CAAyBlpD,GAC7BA,EAAIuqD,UAAUtqD,SAAS+8C,IACnBn8C,KAAK+mD,8BAA8B5nD,EAAIqnD,SAAW,IAAMrK,EAAOl8C,IAAMk8C,EAAOmK,SAAS,IAIrF,0BAAAgC,CAA2BnpD,GAC/BA,EAAIyqD,YAAYxqD,SAASowD,WACdxvD,KAAK+mD,8BAA8B5nD,EAAIqnD,SAAW,IAAMgJ,EAAU,IAIzE,gDAAA1H,GACJ9nD,KAAKqtD,6CAz8BwB,cAEC,iBA08B1B,CAACluD,EAA4BuuD,IAAYA,EACnCvuD,EAAI+T,MAAM9L,KAAKmI,GAAMksB,GAAUuqB,0CAA0Cz2C,OAAGpL,KAC5EhF,EAAI+T,MAAM9L,KAAKmI,GAAM,IAAIurC,GAAavrC,EAAEjS,UAAM6G,OAAWA,OAAWA,MAC1EnE,KAAK4mD,oCAIL,oEAAAsB,GAIJ,IAAK,MAAM0H,IAA0B,CAACvK,GAA0BG,GAAyBG,IACrF3lD,KAAK2tD,6BACDiC,GACCzwD,GACG,CAAEA,EAAI8gD,OAAS,IAAK9gD,EAAK/C,KAAM+C,EAAImnD,UAAWhpD,KAAM6B,EAAIosD,UAAWniD,QAASjK,EAAIqnD,WAC3EnoD,OAAOc,EAAI0wD,cAAgB,IAC3BzoD,KAAK0J,GAAc,IAAIuyC,GAAevyC,EAAK1H,QAAS0H,EAAKxT,KAAMwT,EAAK1U,KAAM+C,EAAIg7B,YAAan6B,KAAK8qD,eAAeh6C,EAAK1H,cAAUjF,EAAWnE,KAAK+qD,qBAAqBj6C,EAAK1H,cAAUjF,OAC3L,CAAC0pD,EAAK1uD,IAAQ,IAAI88C,GAA4B4R,EAAK,IAAIzR,GAAmBK,GAAgBS,gCAC1Fl9C,KAAK6mD,gCAIT,4CAAAoB,GAIJ,IAAK,MAAM6H,IAAkB,CAACzK,GAA0BG,IACpDxlD,KAAK2tD,6BACDmC,GACC3wD,GAAQ,CAACs8B,GAAU8qB,4BAA4BpnD,EAAK,IAAI8lD,GAAe,UAAW,GAAI,IAAIzoD,UAC3F,CAACqxD,EAAK1uD,IAAQs8B,GAAUirB,oCAAoCmH,IAC5D7tD,KAAK2mD,0BAGb3mD,KAAK2tD,6BACDrI,IACCnmD,GAAQ,CAACs8B,GAAU8qB,4BAA4BpnD,EAAK,IAAI8lD,GAAe,YAAa9lD,EAAI0S,OAAQ,IAAIrV,UACrG,CAACqxD,EAAK1uD,IAAQs8B,GAAUirB,oCAAoCmH,IAC5D7tD,KAAK2mD,0BAET3mD,KAAK2tD,6BACDpI,IACCpmD,GAAQ,CAACs8B,GAAU8qB,4BAA4BpnD,EAAK,IAAI8lD,GAAe,UAAW,GAAI,IAAIzoD,UAC3F,CAACqxD,EAAK1uD,IAAQs8B,GAAUirB,oCAAoCmH,IAC5D7tD,KAAK2mD,0BAET3mD,KAAK2tD,6BACDhI,IACCxmD,GAAQ,CAACs8B,GAAU8qB,4BAA4BpnD,EAAK,IAAI8lD,GAAe,UAAW,GAAI,IAAIzoD,UAC3F,CAACqxD,EAAK1uD,IAAQs8B,GAAUirB,oCAAoCmH,IAC5D7tD,KAAK2mD,0BAGL,+CAAAwB,GACJnoD,KAAKqtD,6CACDxH,GACAC,IACA,CAAC3mD,EAA2BuuD,IAAqBA,EAC3CvuD,EAAIuqD,UAAUtiD,IAAIq0B,GAAU4qB,wCAC5BlnD,EAAIyqD,YAAYxiD,KAAKnH,GAAOD,KAAKuvD,oCAAoCtvD,EAAId,EAAIqnD,YAAWnkD,QAAQmI,GAAW,MAALA,KAC5GxK,KAAK8mD,kCAGL,+CAAAsB,GACJpoD,KAAK+4B,UAr/BkB,kBAu/BlB55B,IACG,MAAMsqD,EAAUzpD,KAAKgnD,6BAA6B7nD,EAAI4wD,cACtD,GAAKtG,EAUL,IACI,MAAMntB,EAAgBn9B,EAAIm9B,eAAiB,CAAE,EAS7CA,EAAc0zB,cAAgB1zB,EAAc0zB,eAAiB7wD,EAAI6wD,cACjE1zB,EAAcyzB,aAAezzB,EAAcyzB,cAAgB5wD,EAAI4wD,aAC/D,MAAM5gD,EAAUs6C,EAAQ,CACpBhhC,WAAYtpB,EAAI28C,UAAY38C,EAAI28C,SAAS77C,GACzCmpD,aAAcjqD,EAAI28C,UAAY38C,EAAI28C,SAAS1/C,KAC3CA,KAAM+C,EAAIm9B,eAAiBn9B,EAAIm9B,cAAclgC,KAC7C85C,QAAS5Z,EAAc0zB,cACvB1zB,kBAEAntB,GAAWA,EAAQ1B,MAAQ0B,EAAQ3M,OACnC2M,EAAQ3M,OAAOuJ,GAAQ/L,KAAKo2B,YAAYluB,KACpC,CACI9L,KAAM+oD,GACN/nC,WAAYje,EAAIie,WAChBvL,OAAQ9F,IAAQA,EAAIwB,SAAW1G,KAAKC,UAAUiF,QAG5D,MAAOA,GACL/L,KAAKo2B,YAAYluB,KACb,CACI9L,KAAM+oD,GACN/nC,WAAYje,EAAIie,WAChBvL,OAAQ9F,IAAQA,EAAIwB,SAAW1G,KAAKC,UAAUiF,WAzCtD/L,KAAKo2B,YAAYluB,KACb,CACI9L,KAAM+oD,GACN/nC,WAAYje,EAAIie,WAChBvL,OAAQ,wBAAwB1S,EAAI4wD,oBA2CpD,4CAAAxH,GACJ,IAAK,MAAM0H,IAAiB,CAACxK,GAAyBD,IAClDxlD,KAAK+4B,UAAUk3B,GACV9wD,IACG,MAAM+wD,EAAYD,IAAkBxK,GAA2BtmD,EAAIgxD,UAAYhxD,EAAIiK,QAC7EgnD,EAAcH,IAAkBxK,GAA2BtmD,EAAIkxD,YAAclxD,EAAImnD,UACjFgK,EAAcL,IAAkBxK,GAA2BtmD,EAAIoxD,YAAcpxD,EAAIosD,UAEjFpP,EAAS,IAAIkH,GACf6M,EACAI,EACAF,EACAjxD,EAAIg7B,YACJn6B,KAAK8qD,eAAeoF,QACpB/rD,EACAnE,KAAK+qD,qBAAqBmF,QAC1B/rD,GAICnE,KAAKinD,sBAAsB9nD,EAAIg7B,aAMzB81B,IAAkBzK,IACzBxlD,KAAKwnD,8BAA8B,IANnCxnD,KAAK0vD,mBAAmBvwD,GAAKsO,MAAK,KAC1BwiD,IAAkBzK,IAClBxlD,KAAKwnD,8BAA8B,OAS/CxnD,KAAKqpD,gBACDrpD,KAAK6mD,+BACL,IAAI5K,GACAE,EACA,IAAIC,GAAmBK,GAAgBS,+BAC3C+S,EAAc,IAK9BjwD,KAAK+4B,UACD2sB,IACCvmD,IACG,MAAMg9C,EAAS,IAAIkH,GACflkD,EAAIqxD,aACJrsD,OACAA,EACA,KACAnE,KAAK8qD,eAAe3rD,EAAIqxD,cACxBrsD,EACAnE,KAAK+qD,qBAAqB5rD,EAAIqxD,cAC9BrsD,GAEJnE,KAAKqpD,gBACDrpD,KAAK6mD,+BACL,IAAI5K,GACAE,EACA,IAAIC,GAAmBK,GAAgBU,6BAC3CuI,GAAsB,IAGlC1lD,KAAKqtD,6CACDtH,QACA5hD,GACChF,GAAQ,CACL,IAAIkkD,GACAlkD,EAAIqsD,gBACJrnD,OACAA,OACAA,OACAA,OACAA,EACAnE,KAAK+qD,qBAAqB5rD,EAAIqsD,iBAC9BrnD,KACRnE,KAAK6mD,gCAGL,cAAAiE,CAAe7qD,GACnB,OAAOD,KAAKmnD,QAAQxO,IAAIrb,UAAU3jB,MAAM3W,GAAMA,EAAEqG,SAAWpJ,GAAM+C,EAAEkV,WAAajY,IAG5E,oBAAA8qD,CAAqB1hD,GACzB,MAAO,KACH,MAAMs0B,EAAS39B,KAAK8qD,eAAezhD,GACnC,IAAKs0B,EACD,OAEJ,MAAMzlB,EAAWylB,EAAOzlB,SACxB,OAAOlY,KAAKmnD,QAAQvL,QAAQ6U,OAAOpuD,QAAQw7C,GAAMA,EAAE59C,KAAOiY,IAAU,EAAE,EAItE,wBAAA+xC,CAAyB3tD,GAC7B,YAAqB,IAAVA,KAGNA,EAAiC2jD,OC5pChC,MAAOyQ,GAcnB,WAAAn0D,CAAYoiD,EAA0B/C,GAZ/B57C,KAAW2wD,YAAoD,GAC/D3wD,KAAW4wD,YAAoD,GAC/D5wD,KAAa6wD,cAAwE,GACrF7wD,KAAe8wD,gBAA4F,GAC3G9wD,KAA4B+wD,6BAAqC,GACjE/wD,KAA0BgxD,2BAAiD,GAC3EhxD,KAA2BixD,4BAAiD,GAC5EjxD,KAAyBkxD,0BAAwF,GAGjHlxD,KAAAg2B,QAAkBxQ,GAAOu9B,IAAI/iD,MAGlCA,KAAKmxD,GAAKxS,EACVA,EAAQ57B,QACLtV,MAAM2jD,IAELA,EAAGjQ,gCAAgCnhD,KAAKqxD,2BAA2Br7C,KAAKhW,OACxEoxD,EAAGnQ,sBAAsBjhD,KAAKsxD,wBAAwBt7C,KAAKhW,OAC3DoxD,EAAG3P,4BAA4BzhD,KAAKuxD,6BAA6Bv7C,KAAKhW,OACtEoxD,EAAGvP,4BAA4B7hD,KAAKwxD,6BAA6Bx7C,KAAKhW,OAClE47C,GACFA,EAAQ6V,0BAA0BzxD,KAAK0xD,kCAAkC17C,KAAKhW,UAUtF,UAAWoF,GACT,GAAIw4C,GAAuB59C,KAAK2xD,IAAK,CACnC,MAAMC,EAAmB5xD,KAAKmxD,GAAGS,iBAC7BA,EAAiBl0D,OAAS,IAC5BsC,KAAK2xD,GAAKC,EAAiB,IAG/B,OAAO5xD,KAAK2xD,GASd,YAAW7V,GACT,MAAM+V,EAAQ7xD,KAAKoF,OACnB,IAAIw4C,GAAuBiU,GAG3B,OAAOA,EAAM/V,SAUR,YAAAE,CAAaT,GAClB,OAAOv7C,KAAKmxD,GAAGnV,aAAah8C,KAAK87C,SAAUP,GAWtC,oBAAA6E,CAAqBC,EAA4CnsC,GACtE,OAAOlU,KAAKmxD,GAAG/Q,qBAAqBpgD,KAAK87C,SAAUuE,EAAansC,GAQlE,WAAW7W,GACT,MAAMy+C,EAAW97C,KAAK87C,SACtB,OAAImI,GAAiBnI,GACZ,CAAE,EAGJA,EAASz+C,QAYX,aAAAqjD,CAAcrjD,EAAiBmO,GACpC,MAAMswC,EAAW97C,KAAK87C,SACtB,OAAImI,GAAiBnI,GACZ,IAAIh2C,SAAgB,CAACC,EAAS6H,KACnCA,EAAO,kBAAkB,IAItBkuC,EAAS4E,cAAcrjD,EAASmO,GAUlC,UAAAg1C,CAAWnjD,EAAiBmO,GACjC,MAAMswC,EAAW97C,KAAK87C,SACtB,OAAImI,GAAiBnI,GACZ,IAAIh2C,SAAQ,CAACC,EAAS6H,KAC3BA,EAAO,kBAAkB,IAItBkuC,EAAS0E,WAAWnjD,EAASmO,GAG/B,gBAAAs5C,CAAiBt5C,GACtBxL,KAAKgxD,2BAA2B9wD,KAAKsL,GAGrC,MAAMqmD,EAAQ7xD,KAAKoF,OACdw4C,GAAuBiU,IAAWjU,GAAuBiU,EAAM/V,WAClEtwC,EAASqmD,EAAM/V,UAIZ,cAAAgW,CAAetmD,GACpBxL,KAAKixD,4BAA4B/wD,KAAKsL,GASjC,gBAAA01C,CAAiB11C,GACtBxL,KAAKkxD,0BAA0BhxD,KAAKsL,GAGpC,MAAMqmD,EAAQ7xD,KAAKoF,OACnB,GAAIw4C,GAAuBiU,GACzB,OAGF,MAAM/V,EAAW+V,EAAM/V,SACnB8B,GAAuB9B,IAY3BtwC,EAASswC,EAASz+C,QAASy+C,EAASz+C,QAAS,GAAIy+C,GAG5C,KAAAtiB,CAAMz1B,EAAuByH,GAClC,MAAM41C,EAAMphD,KAAK87C,SACjB,OAAO97C,KAAKmxD,GAAG33B,MAAM4nB,EAAKr9C,EAASyH,GAG9B,MAAA81C,CAAOxF,EAA6Bt+B,GACzC,IAAIiL,EAMJ,OAJEA,EADsB,iBAAbqzB,EACIA,EAEAA,EAAS77C,GAEjBD,KAAKmxD,GAAG5P,iBAAiB94B,EAAYzoB,KAAK87C,SAAS77C,GAAIud,GAGzD,kBAAAgkC,CAAmBh2C,GACxBxL,KAAK2wD,YAAYzwD,KAAKsL,GAGjB,kBAAAumD,CAAmBvmD,GACxBxL,KAAK4wD,YAAY1wD,KAAKsL,GAGjB,oBAAAwmD,CAAqBxmD,GAC1BxL,KAAK6wD,cAAc3wD,KAAKsL,GAGnB,sBAAAymD,CAAuBzmD,GAC5BxL,KAAK8wD,gBAAgB5wD,KAAKsL,GAG5B,YAAW22C,GACT,OAAKniD,KAAK87C,SAIH97C,KAAK87C,SAASqG,SAHZ,GAMJ,aAAAC,CAAcC,EAAe72C,GAElC,OAAIxL,KAAK87C,SACA97C,KAAK87C,SAASsG,cAAcC,EAAO72C,GAEnC1F,QAAQC,QAAQ,MAIpB,aAAAy8C,GAEL,OAAIxiD,KAAK87C,SACA97C,KAAK87C,SAAS0G,gBAGhB,GAGF,mBAAA0P,CAAoB1mD,GACzBxL,KAAK+wD,6BAA6B7wD,KAAKsL,GAGjC,0BAAA6lD,CAA2BvV,EAAoBz+C,EAAiBk3B,EAAeS,GACrF,MAAM68B,EAAQ7xD,KAAKoF,OACnB,GAAIw4C,GAAuBiU,GACzB,OAGF,MAAMM,EAAaN,EAAM/V,SACrB8B,GAAuBuU,IAKvBrW,EAAS77C,KAAOkyD,EAAWlyD,IAI/BD,KAAKoyD,wBAAwBtW,EAAUz+C,EAASk3B,EAAOS,GAGjD,uBAAAs8B,CAAwBxV,EAAoB12C,EAAwBiT,GAEtEulC,GAAuB59C,KAAKoF,SAK5BpF,KAAKoF,OAAOnF,KAAOmF,EAAOnF,KAI1BoY,IAAUokC,GAAgBS,8BAC5Bl9C,KAAKqyD,qBAAqBvW,EAAU97C,KAAKgxD,4BAqCzChxD,KAAKoyD,wBAAwBtW,EAAUA,EAASz+C,QAAS,KAAM,OAItDgb,IAAUokC,GAAgBU,4BACnCn9C,KAAKqyD,qBAAqBvW,EAAU97C,KAAKixD,8BAKrC,oBAAAoB,CAAqBvW,EAAoBwW,GAC/CA,EAAclzD,SAAS8M,IACrB,IACEA,EAAQ4vC,EAAUzjC,OAClB,MAAO3T,GACP1E,KAAKg2B,QAAQ5d,KAAK,0BAA4B1T,OAK5C,uBAAA0tD,CAAwBtW,EAAoBz+C,EAAiBk3B,EAAgBS,GACnFT,EAAQA,GAAS,CAAE,EACnBS,EAAUA,GAAW,GAErBh1B,KAAKkxD,0BAA0B9xD,SAAS8M,IACtC,IACEA,EAAQ7O,EAASk3B,EAAOS,EAAS8mB,GACjC,MAAOp3C,GACP1E,KAAKg2B,QAAQ5d,KAAK,0BAA4B1T,OAK5C,eAAA6tD,CAAgBtzD,GAEtBe,KAAK2wD,YAAYvxD,SAASigD,IACxB,IACEA,EAAGpgD,GACH,MAAOyF,GACP1E,KAAKg2B,QAAQ5d,KAAK,0BAA4B1T,OAK5C,eAAA8tD,CAAgBvzD,GAEtBe,KAAK4wD,YAAYxxD,SAASigD,IACxB,IACEA,EAAGpgD,GACH,MAAOyF,GACP1E,KAAKg2B,QAAQ5d,KAAK,0BAA4B1T,OAK5C,iBAAA+tD,CAAkBxzD,GAExBe,KAAK6wD,cAAczxD,SAASigD,IAC1B,IACEA,EAAGr/C,KAAK87C,SAAU78C,GAClB,MAAOyF,GACP1E,KAAKg2B,QAAQ5d,KAAK,0BAA4B1T,OAK5C,mBAAAguD,CAAoBC,EAAoBpwD,EAAoBtD,GAElEe,KAAK8wD,gBAAgB1xD,SAASigD,IAC5B,IACEA,EAAGsT,EAAUpwD,EAAUtD,GACvB,MAAOyF,GACP1E,KAAKg2B,QAAQ5d,KAAK,0BAA4B1T,OAK5C,4BAAA6sD,CAA6BzP,EAAkB7iD,GACrD,MAAM4yD,EAAQ7xD,KAAKoF,OACnB,GAAIw4C,GAAuBiU,GACzB,OAGF,MAAMM,EAAaN,EAAM/V,SACrB8B,GAAuBuU,IAKvBrQ,EAAO7hD,KAAOkyD,EAAWlyD,KAIzBhB,EAAM8/C,UAAUxrC,QAAQs+C,EAAM5xD,KAAO,EACvCD,KAAKyyD,kBAAkBxzD,GAIzBe,KAAKuyD,gBAAgBtzD,IAGf,4BAAAuyD,CAA6B1P,EAAkB8Q,EAAkB3zD,GACvE,MAAM4yD,EAAQ7xD,KAAKoF,OACnB,GAAIw4C,GAAuBiU,GACzB,OAGF,MAAMM,EAAaN,EAAM/V,SACrB8B,GAAuBuU,KAKvBS,EAAO3yD,KAAOkyD,EAAWlyD,IAC3BD,KAAKwyD,gBAAgBvzD,GAGnB6iD,EAAO7hD,KAAOkyD,EAAWlyD,IAC3BD,KAAK0yD,oBAAoB5Q,EAAQ8Q,EAAQ3zD,IAIrC,iCAAAyyD,CAAkCtsD,GACxC,MAAMg8C,EAAMphD,KAAK87C,SACZsF,GAIAA,EAAInB,OAILmB,EAAInB,MAAMsC,iBAAiBtiD,KAAOmF,EAAOnF,IAC3CD,KAAK+wD,6BAA6B3xD,SAASoM,IACzCA,EAASpG,EAAO45C,WAAW,WCpetB6T,GAYX,WAAAt2D,CAAYe,EAAcw1D,GAGxB,GAFA9yD,KAAKg2B,QAAUxQ,GAAOu9B,IAAI,gBAAkBzlD,EAAO,KACnD0C,KAAKg2B,QAAQvkB,MAAM,kCAAoCnU,EAAO,UAAYw1D,EAAgB,oBACtFA,GAAiB,EACnB,MAAM,IAAIjzD,MAAM,wCAElBG,KAAK+yD,SAAWD,EAChB9yD,KAAKgzD,WAAa,GAClBhzD,KAAKqB,MAAQ/D,EAMR,WAAA21D,CAAYznD,GACbxL,KAAKkzD,QACP1nD,OAASrH,GAEAnE,KAAKmzD,UACd3nD,EAASxL,KAAKozD,QAGhBpzD,KAAKgzD,WAAW9yD,KAAKsL,GAMhB,MAAA6nD,CAAO9lD,GAGZ,GAFAvN,KAAKg2B,QAAQvkB,MAAM,cAAgBlE,EAAU,oBAAsBvN,KAAK+yD,SAAW,IACnF/yD,KAAK+yD,WACD/yD,KAAK+yD,SAAW,EAClB,MAAM,IAAIlzD,MAAM,0BAA4BG,KAAKqB,MAAQ,kBAAoBrB,KAAK+yD,UAGhF/yD,KAAKkzD,SACPlzD,KAAKgzD,WAAW5zD,SAASoM,IACvBA,OAASrH,EAAU,IAQlB,KAAAmH,CAAMA,GACXtL,KAAKozD,OAAS9nD,EACdtL,KAAKgzD,WAAW5zD,SAAS48B,IACvBA,EAAc1wB,EAAM,IAOjB,KAAA4nD,GACL,OAAIlzD,KAAKmzD,WAGgB,IAAlBnzD,KAAK+yD,SAMP,OAAAI,GACL,OAAQlP,GAAiBjkD,KAAKozD,QAMzB,QAAAE,GACL,OAAOtzD,KAAKozD,cC3EHG,GAMX,WAAAh3D,CAAYi3D,GAJJxzD,KAAMyzD,OAAyB,CAAE,EACjCzzD,KAAU0zD,WAAsD,GAItE1zD,KAAK2zD,YAAcH,EAMd,MAAAI,CAAOjpB,GACZ3qC,KAAKuL,IAAI,CAACo/B,IAML,GAAAp/B,CAAIsoD,GACTA,EAAMz0D,SAAS8M,IACblM,KAAK8O,QAAQ,IAAImtC,GAAe/vC,EAAS,IAAIkwC,GAAmBK,GAAgBI,QAAQ,IAOrF,OAAA/tC,CAAQuJ,GAEb,MAAMhb,EAAUgb,EAAMhb,QAChBjB,EAAOiB,EAAQjB,KACf+/C,EAAS9jC,EAAM8jC,OASrB,GAAI//C,IAASqgD,GAAgBC,eACzBr/C,EAA6Cm/C,UAAW,CAC1D,MAAM4E,EAAMphD,KAAKyzD,OAAOtX,EAAOl8C,IAC3BmhD,IACD/jD,EAA6Cm/C,UAAY4E,EAAI3uC,QAQ9DrW,IAASqgD,GAAgBC,cAC1Br/C,EAA6Cm/C,WAC7Cn/C,EAA6Ck/C,WAC7Cl/C,EAA6Cm/C,UAAUv9C,QACvD5B,EAA6Ck/C,UAAUt9C,QACxD5B,EAAQjB,KAAOqgD,GAAgBM,SAKJ,oBAAlBhH,gBACL35C,IAASqgD,GAAgBS,8BAC3Bl9C,KAAKyzD,OAAOtX,EAAOl8C,KAClBD,KAAKyzD,OAAOtX,EAAOl8C,IAA8B67C,WAClDz+C,EAAQjB,KAAOqgD,GAAgBM,SAE7B3gD,IAASqgD,GAAgBU,4BAC3Bn9C,KAAKyzD,OAAOtX,EAAOl8C,MACjBD,KAAKyzD,OAAOtX,EAAOl8C,IAA8B67C,WACnDz+C,EAAQjB,KAAOqgD,GAAgBM,UAOnC,MAAM+W,EAAiB9zD,KAAK+zD,2BAA2B5X,EAAQ//C,EAAMiB,GAErE,OADA2C,KAAKg0D,iBAAiBF,EAAgBz2D,GAC/By2D,EAMF,GAAAphC,GACL,MAAM9uB,EAAS,GACf,IAAK,MAAM5G,KAAOgD,KAAKyzD,OACrB,GAAIzzD,KAAKyzD,OAAO9oD,eAAe3N,GAAM,CACnC,MAAMkP,EAAUlM,KAAKyzD,OAAOz2D,GAC5B4G,EAAO1D,KAAKgM,GAGhB,OAAOtI,EAQF,SAAAqwD,CAAU32D,GAGf,IAAK,MAAMN,KAAOgD,KAAKyzD,OACrB,GAAIz2D,IAAQM,EACV,OAAO0C,KAAKyzD,OAAOz2D,GAWlB,SAAAk3D,CAAU52D,GACf,OAAO,IAAIwI,SAAYC,IACrB,MAAMouD,EAAsBhY,IACtBA,EAAOl8C,KAAO3C,IAGlByI,EAAQo2C,GACRn8C,KAAKyd,YAAY02C,GAAmB,EAEtCn0D,KAAK+4B,UAAUo7B,GAGf,MAAM/uD,EAASpF,KAAKi0D,UAAU32D,GAC9B,GAAI8H,EAGF,OAFApF,KAAKyd,YAAY02C,QACjBpuD,EAAQX,MAUP,SAAA2zB,CAAU1W,GAQf,OAPAriB,KAAK0zD,WAAWxzD,KAAKmiB,GAErBzlB,OAAOC,KAAKmD,KAAKyzD,QAAQr0D,SAASpC,IAChC,MAAMkP,EAAUlM,KAAKyzD,OAAOz2D,GAC5BqlB,EAAQnW,EAAS,IAAIkwC,GAAmBK,GAAgBI,MAAM7+C,YAAY,IAGrE,KACLgC,KAAKyd,YAAY4E,EAAQ,EAOtB,WAAA5E,CAAY4E,GACjB,MAAMlW,EAAQnM,KAAK0zD,WAAWngD,QAAQ8O,IACxB,IAAVlW,GACFnM,KAAK0zD,WAAWhmC,OAAOvhB,EAAO,GAO1B,gBAAA6nD,CAAiB7X,EAAW9+C,GAClC2C,KAAK0zD,WAAWt0D,SAASg1D,IACvB,IACEA,EAASjY,EAAQ9+C,GACjB,MAAOqH,GACP,WAQE,0BAAAqvD,CAA2B5X,EAAW//C,EAAuBiB,GACnE,MAAMg3D,EAAelY,EAGfmY,EACHl4D,IAASqgD,GAAgBC,cACxB2X,EAAY5hD,QACZ4hD,EAAY5hD,OAAOxT,QAAUm+C,GAAcG,WAC5CnhD,IAASqgD,GAAgBC,cACxBr/C,GACAA,EAAQk/C,WACRl/C,EAAQk/C,UAAUt9C,QAAUm+C,GAAcG,UAIxCgX,EAAgBn4D,IAASqgD,GAAgBO,OAG/C,GAFqB5gD,IAASqgD,GAAgBK,cAAgD,IAA9BuX,EAAYtY,eAExDwY,GAAiBD,EAAmB,CAEtD,MAAME,EAAYx0D,KAAKyzD,OAAOtX,EAAOl8C,IAOrC,cANOD,KAAKyzD,OAAOtX,EAAOl8C,IAE1BD,KAAK2zD,YAAYxX,GACbqY,GACFrY,EAAO/B,cAAcoa,GAEhBrY,EACF,CACL,MAAMn/C,EAAMm/C,EAAOl8C,GAEdD,KAAKyzD,OAAO9oD,eAAe3N,GAI9BgD,KAAKyzD,OAAOtX,EAAOl8C,IAAIi6C,QAAQiC,IAH/Bn8C,KAAK2zD,YAAYxX,GACjBn8C,KAAKyzD,OAAOtX,EAAOl8C,IAAMk8C,GAM7B,OAAOn8C,KAAKyzD,OAAOtX,EAAOl8C,KC3MhB,MAAOw0D,GAiBnB,WAAWC,GACT,MAAmC,OAA5B10D,KAAKw7B,QAAQqsB,WAGtB,oBAAW+J,GACT,OAAO5xD,KAAK20D,kBAGd,oBAAW/C,CAAiBgD,GAC1B,MAAM,IAAI/0D,MAAM,eAGlB,WAAAtD,CAAYs4D,EAAwBC,EAAuBlZ,GAnBnD57C,KAAAg2B,QAAkBxQ,GAAOu9B,IAAI,mBAC7B/iD,KAAiB20D,kBAAqB,GACtC30D,KAAkB+0D,mBAA+C,GACjE/0D,KAAkBg1D,mBAAiE,GACnFh1D,KAA2Bi1D,4BAAoD,GAC/Ej1D,KAAek1D,gBAAY,GAejCl1D,KAAKw7B,QAAUq5B,EACf70D,KAAKm1D,eAAiB,IAAI5B,IAA0C7uD,GAAM1E,KAAKo1D,YAAY1wD,KAC3F1E,KAAKq1D,aAAe,IAAI9B,IAAwC7uD,GAAM1E,KAAKo1D,YAAY1wD,KACvF1E,KAAKs1D,YAAc,IAAI/B,IAAsC7uD,GAAM1E,KAAKo1D,YAAY1wD,KACpF1E,KAAKonD,SAAW,IAAImM,IAA4C7uD,GAAM1E,KAAKo1D,YAAY1wD,KAGvF1E,KAAKu1D,iBAAmB,IAAI1C,GAAY,wBAAyB,GACjE7yD,KAAKw1D,mBAAqB,IAAI3C,GAAY,kCAAmC,GAUzEiC,GAMF90D,KAAKy1D,aAAe,IAAI5C,GAAY,4BAA6B,GACjE7yD,KAAKu1D,iBAAiBtC,aAAayC,IAC7BA,GACF11D,KAAKy1D,aAAanqD,MAAMoqD,GAG1B11D,KAAKw1D,mBAAmBvC,aAAalnD,IAE/BA,GACF/L,KAAKy1D,aAAanqD,MAAMS,GAG1B/L,KAAKg2B,QAAQvkB,MAAM,0BAEnBzR,KAAKyqD,iBACFh9C,MAAMowC,IAEL79C,KAAK20D,kBAAkBz0D,KAAK29C,GAC5B79C,KAAKy1D,aAAapC,OAAO,0CAA4CxV,EAAE59C,GAAK,IAAI,IAEjFuC,OAAOmzD,IACN31D,KAAKg2B,QAAQvkB,MAAM,8BAAgCkkD,GACnD31D,KAAKy1D,aAAapC,QAAQ,GAC1B,IAGNrzD,KAAK41D,oBAAoB,KAI3B51D,KAAKy1D,aAAez1D,KAAKu1D,iBAG3Bv1D,KAAKw7B,QAAQwxB,sBAAsBtoD,IACjC1E,KAAK61D,0BAA0BnxD,EAAE,IAEnC1E,KAAKw7B,QAAQyxB,sBAAsBvoD,IACjC1E,KAAK81D,0BAA0BpxD,EAAE,IAEnC1E,KAAKw7B,QAAQ0xB,wCAAwCxoD,IACnD1E,KAAK+1D,oCAAoCrxD,EAAE,IAEzCk3C,GACFA,EAAQ6V,0BAA0BzxD,KAAKg2D,+BAA+BhgD,KAAKhW,OAI7EA,KAAKw7B,QAAQx3B,OAKbhE,KAAKi2D,oBAULj2D,KAAKw7B,QACFstB,YACAr7C,MAAMyoD,IACLl2D,KAAKm2D,iBAAiB,IAEvB3zD,OAAO8I,IAEND,QAAQkX,IAAIjX,EAAM,IAIjB,KAAAyX,CAAMvX,GACX,MAAM2D,EAAU,IAAIrJ,SAAyB,CAACC,EAAS6H,KACrD5N,KAAKy1D,aAAaxC,aACflnD,IACMA,EAGH6B,EAAO5N,KAAKy1D,aAAanC,YAFzBvtD,EAAQ/F,QAIV,IAGN,OAAOs/C,GAAQx5C,QAAQsf,IAAI,CAACplB,KAAKw7B,QAAQzY,QAAS5T,IAAU1B,MAAK,IAAMzN,OAAOwL,GAMzE,gBAAA6gD,GACL,OAAOrsD,KAAKm1D,eAAeziC,MAQtB,eAAAstB,CAAgB1iD,GACrB,OAAO0C,KAAKm1D,eAAelB,UAAU32D,GAYhC,oBAAA0rD,CACLC,EACAmN,EACAC,EACA7uD,EACApK,EACAoO,GAuEA,OAAO8zC,GAtES,IAAIx5C,SAAsB,CAACC,EAAS6H,KAGlD,GAAIgwC,GAAuBqL,GAEzB,YADAr7C,EAAO,kDAGT,IAAKswC,GAAc+K,GAEjB,YADAr7C,EAAO,qCAKT,IAAKgwC,GADW59C,KAAKggD,gBAAgBiJ,IAGnC,YADAr7C,EAAO,kBAAoBq7C,EAAmB,oBAKhD,IAAIqN,EACJ,GAAIrS,GAAiBmS,GAEnB,YADAxoD,EAAO,0CAIP0oD,EADEpY,GAAckY,GACE,CAAEh6D,KAAO,EAAkBkB,KAAM,GAAIy+C,eAAe,EAAOxvC,UAAW,IAErE,EAIrB,MAAMgqD,EAAwC,GAC9C,IAAKtS,GAAiBoS,IAAsBjY,GAAaiY,GAEvD,IAAK,MAAMlqD,KAASkqD,EAAmB,CACrC,MAAM1rB,EAAO0rB,EAAkBlqD,GAC/B,GAAI+xC,GAAcvT,GAAO,CACvB,MAAMjrC,EAAa,CACjBtD,KAAO,EACPkB,KAAM,GACNy+C,eAAe,EACfxvC,UAAW,CAAE,EACbiqD,WAAY,GACZC,kBAAmB,GACnBC,sBAAuB,CAAA,GAEzBH,EAAkBr2D,KAAKR,QAEvB62D,EAAkBr2D,KAAKyqC,GAM7B3qC,KAAKw7B,QACFwtB,qBAAqBC,EACpBqN,EACAC,EACA/uD,EACApK,GACDqQ,MAAM27C,IAELppD,KAAKo1D,YAAYhM,GACjBrjD,EAAQqjD,EAAa,IAEtB5mD,OAAO8I,IACNsC,EAAOtC,EAAM,GACb,IAGkBE,GAOnB,sBAAA89C,CAAuBltD,EAAcoP,GAU1C,OAAO8zC,GATS,IAAIx5C,SAAsB,CAACC,EAAS6H,KAElD,MAAM8xC,EAAU1/C,KAAKggD,gBAAgB5jD,GACjC6nD,GAAiBvE,GACnB9xC,EAAO,kBAAoBxR,EAAO,qBAGpC4D,KAAKw7B,QAAQ8tB,uBAAuBltD,GAAMqR,MAAK,IAAM1H,EAAQ25C,IAAU9xC,EAAO,IAExDpC,GAWnB,QAAA6vC,CAAS+N,EAAsB/rD,EAAkBmO,EAA+B8wB,GACrF,MAAMntB,EAAU,IAAIrJ,SAAkB,CAACC,EAAS6H,KAG1Cq2C,GADYjkD,KAAKggD,gBAAgBoJ,IAEnCx7C,EAAO,kBAAoBw7C,EAAe,qBAI5CppD,KAAKw7B,QACFsuB,iBAAiBV,EAAc/rD,EAASi/B,GACxC7uB,MAAMkpD,IAEL32D,KAAKs1D,YACFpB,UAAUyC,GACVlpD,MAAM2zC,IACLr7C,EAAQq7C,EAAI,IAEb5+C,OAAOuJ,GAAQ6B,EAAO7B,IAAK,IAE/BvJ,OAAOuJ,IACN6B,EAAO7B,EAAI,GACX,IAEN,OAAOuzC,GAAQnwC,EAAS3D,GAGnB,2BAAAorD,CAA4Bv0C,GACjCriB,KAAKm1D,eAAep8B,WAAU,CAAC89B,EAAIx5D,KACjCglB,EAAQw0C,EAAIx5D,EAAQjB,KAAK,IAOtB,cAAAkwD,GACL,OAAOtsD,KAAKq1D,aAAa3iC,MAQpB,aAAAsxB,CAAc1mD,GACnB,OAAO0C,KAAKq1D,aAAapB,UAAU32D,GAa9B,qBAAAksD,CACLjO,EACAub,EACAtrD,GACA,MAAM2D,EAAU,IAAIrJ,SAAa,CAACC,EAAS6H,KACzC,GAAIgwC,GAAuBrC,GACzB3tC,EAAO,+BADT,CAKA,GAAImpD,GAAcxb,GAChBA,EAAaA,EAAWyb,eACnB,IAAK9Y,GAAc3C,GAExB,YADA3tC,EAAO,iEAIT5N,KAAKw7B,QACFguB,sBAAsBjO,EAAYub,GAClCrpD,MAAMmnD,IACL7uD,EAAQ6uD,EAAE,IAEXpyD,OAAOuJ,IACN6B,EAAO7B,EAAI,IACX,IAEN,OAAOuzC,GAAQnwC,EAAS3D,GASnB,uBAAAm+C,CAAwBpO,EAAoB/vC,GACjD,MAAM2D,EAAU,IAAIrJ,SAAa,CAACC,EAAS6H,KACrCgwC,GAAuBrC,GACzB3tC,EAAO,2BAIJswC,GAAc3C,GAKnBv7C,KAAKw7B,QACFmuB,wBAAwBpO,GACxB9tC,MAAMmnD,IACL7uD,EAAQ6uD,EAAE,IAEXpyD,OAAOuJ,IACN6B,EAAO7B,EAAI,IAVb6B,EAAO,gCAWL,IAEN,OAAO0xC,GAAQnwC,EAAS3D,GAQnB,aAAA+gD,CAAcnD,GACnB,IAAIhI,EAAMphD,KAAKs1D,YAAY5iC,MAE3B,GADA0uB,EAAMA,EAAI/+C,QAAQtD,GAAMA,EAAE+gD,YACrBsJ,EACH,OAAOhI,EAET,IAAIluC,EAAak2C,EACjB,GAAIlL,GAAckL,GAChBl2C,EAAQ,CAACk2C,QACJ,GAAIA,aAAwBtO,GACjC5nC,EAAQ,CAACk2C,EAAa9rD,WACjB,KAAI8rD,aAAwB9qD,OAGjC,MAAM,IAAIuB,MAAM,2CAA6CupD,GAG/D,OAAOhI,EAAI/+C,QAAQw0D,IACjB,MAAMz6D,EAAOy6D,EAAGz6D,KAChB,Of9YU,SAAQuvB,EAAYsrC,GAClC,IAAK,IAAI9qD,EAAQ,EAAGA,EAAQwf,EAAMjuB,OAAQyO,IACxC,GAAI8qD,EAAUtrC,EAAMxf,GAAQA,GAC1B,OAAO,EAGX,OAAO,CACT,CeuYa+qD,CAAUhkD,GAAQ3D,GAChBnT,EAAK6D,KAAOsP,EAAEtP,IACrB,IAOC,eAAAikD,CAAgBjkD,GACrB,OAAOD,KAAKs1D,YAAYrB,UAAUh0D,GAS7B,cAAAwqD,CAAeC,EAA2BnP,GAC/C,MAAMpsC,EAAU,IAAIrJ,SAAwB,CAACC,EAAS6H,KAGpD,MAAM+9C,EAAmB3rD,KAAKw7B,QAAQkwB,sBAOtC,GANIzH,GAAiByG,KACnBA,EAAmBiB,EAAiBjB,kBAElCzG,GAAiB1I,KACnBA,EAAaoQ,EAAiBC,oBAE5BhO,GAAuBrC,GACzB,MAAM,IAAI17C,MAAM,yCAGlB,MAAM4oB,EAAakjC,GAAoBA,EAAiBljC,WAQxD,GAAIm1B,GAAuB8M,GACzB1qD,KAAKg2B,QAAQvkB,MAAM,iCAAmC8pC,EAAa,YAAcoQ,EAAiBG,mBAAqB,YAAcH,EAAiBE,0BAA4B,KAElL7rD,KAAKw7B,QAAQmvB,eAAepP,EAAYoQ,EAAiBG,mBAAoBH,EAAiBE,2BAC3Fp+C,KAAKzN,KAAKonD,SAAS8M,UAAUl+C,KAAKhW,KAAKonD,WACvC35C,MAAMowC,GACDp1B,EACKzoB,KAAKs1D,YAAYpB,UAAUzrC,GAAYhb,MAAMmsB,GAAWikB,IAExDA,IAGVpwC,MAAMowC,IACL93C,EAAQ83C,EAAE,IAEXr7C,OAAOuJ,IACN/L,KAAKg2B,QAAQ1qB,MAAMS,EAAI,QAGtB,CAEL/L,KAAKg2B,QAAQvkB,MAAM,8BAAgCi5C,EAAmB,eAAiBnP,EAAa,KAGpG,MAAMngC,EAAgBpb,KAAKonD,SAAS6M,UAAUvJ,GAC9C,IAAK9M,GAAuBxiC,GAG1B,OAFApb,KAAKg2B,QAAQvkB,MAAM,mBAAqBi5C,EAAmB,iDAC3D3kD,EAAQqV,GAKV,MAAM+7C,EAAqB,CAACp4D,EAAa8+C,EAAmBn5C,KAC1D,GAAIgmD,IAAqB7M,EAAE59C,IACrByE,IAAM+3C,GAAgBS,6BAA8B,CAElD+G,GADapG,EAAE/B,WAEjBluC,EAAO,sBAET5N,KAAKg2B,QAAQtV,MAAM,4BAA8BgqC,EAAmB,KACpE3kD,EAAQ83C,GACR79C,KAAKo3D,wBAAwBD,KAKnCn3D,KAAKihD,sBAAsBkW,GAC3Bn3D,KAAKg2B,QAAQtV,MAAM,oCAAsCgqC,EAAmB,KAC5E1qD,KAAKw7B,QAAQivB,eAAelP,EAAYmP,OAG5C,OAAOv7C,EAQF,yBAAAkoD,CAA0Bh1C,GAC/BriB,KAAKq1D,aAAat8B,WAAU,CAACu+B,EAAIj6D,KAC/BglB,EAAQi1C,EAAIj6D,EAAQjB,KAAK,IAStB,uBAAAykD,CAAwBx+B,GAC7B,OAAOriB,KAAKs1D,YAAYv8B,WAAU,CAACqoB,EAAK/jD,KACtC,GAAIA,EAAQjB,OAASqgD,GAAgBC,aAAc,CACjD,MAAMlnB,EAAKn4B,EACXglB,EAAQ++B,EAAK5rB,EAAE+mB,UAAW/mB,EAAEgnB,WAI9B,GAAIn/C,EAAQjB,OAASqgD,GAAgBK,SAClCz/C,EAAQjB,OAASqgD,GAAgBC,cAC/Br/C,EAA6Ck/C,UAAUr5C,aAAek6C,GAAcG,UACvF,IAAK,MAAMn4C,KAAUpF,KAAKonD,SAAS10B,MAC7BttB,EAAO02C,UAAY12C,EAAO02C,SAAS77C,KAAOmhD,EAAInhD,IAChDD,KAAKonD,SAASt4C,QAAQ,IAAImtC,GAA4B72C,EAAQ,IAAIg3C,GAAmBK,GAAgBU,iCAYxG,qBAAA8D,CAAsB5+B,GAC3B,MAAMk1C,EAAkB,CAACnyD,EAAwB/H,KAC/C,IAAIg/C,EAAYh/C,EAAQjB,KACpBigD,IAAcI,GAAgBI,QAEhCR,EAAY,UAEdh6B,EAAQjd,EAAO02C,SAAU12C,EAAQi3C,EAAU,EAG7C,OADAr8C,KAAKk1D,gBAAgBh1D,KAAK,CAACmiB,EAASk1C,IAC7Bv3D,KAAKonD,SAASruB,UAAUw+B,GAG1B,uBAAAH,CAAwB/0C,GAC7B,MAAMm1C,EAAQx3D,KAAKk1D,gBAAgBv7C,MAAM4R,GAASA,EAAK,KAAOlJ,IAC1Dm1C,IACFx3D,KAAKk1D,gBAAgBxnC,OAAO1tB,KAAKk1D,gBAAgB3hD,QAAQikD,GAAQ,GACjEx3D,KAAKonD,SAAS3pC,YAAY+5C,EAAM,KAa7B,YAAAxb,CAAaF,EAAoB2b,EAA4DjsD,GAClG,MAAM2D,EAAU,IAAIrJ,SAAwB,CAACC,EAAS6H,KAKpD,IAAIu7C,EAuBAuO,EAtBJ,GALI9Z,GAAuB6Z,IACzB7pD,EAAO,2BAILswC,GAAcuZ,GAChBtO,EAAmB,CAAE/sD,KAAO,EAA4BkB,KAAM,GAAIy+C,eAAe,EAAOxvC,UAAW,SAC9F,GAAIkrD,aAAqChc,GAC9C0N,EAAmB,CACjB/sD,KAAOq7D,EAAkCr7D,MAAQq7D,EAA0Bx3D,GAC3E3C,KAAMm6D,EAA0Bn6D,MAASm6D,EAAkCr7D,MAAQq7D,EAA0Bx3D,GAC7G87C,eAAe,OAEZ,CAEL,MAAM4b,EAAwB,CAAC,OAEzBC,EAAyC,CAAE,EAEjDh7D,OAAOC,KAAK46D,GAA2Br4D,SAASpC,KACb,IAA7B26D,EAAYpkD,QAAQvW,KACtB46D,EAAkC56D,GAAOy6D,EAA0Bz6D,OAGvEmsD,EAAmByO,EAIrB,IAAKha,GAAuBuL,EAAiBqN,YAE3C,GADAkB,EAAmBvO,EAAiBqN,WACJ,iBAArBkB,EAA+B,CACxC,MAAM9b,EAAU57C,KAAK67C,WAAW,CAAEz/C,KAAMs7D,KACnC9Z,GAAuBhC,IAAYA,EAAQl+C,OAAS,IACvDyrD,EAAiBqN,WAAa5a,EAAQ,GAAG37C,SAEtC,GAAK29C,GAAuB8Z,EAAiBt7D,MAKxCwhD,GAAuB8Z,EAAiBx/C,YAClDixC,EAAiBqN,WAAakB,EAAiBx/C,cANU,CACzD,MAAM0jC,EAAU57C,KAAK67C,WAAW,CAAEz/C,KAAMs7D,EAAiBt7D,QACpDwhD,GAAuBhC,IAAYA,EAAQl+C,OAAS,IACvDyrD,EAAiBqN,WAAa5a,EAAQ,GAAG37C,IAO/CD,KAAKw7B,QAAQwgB,aAAaF,GAAYA,EAAS77C,GAAIkpD,GAChD17C,MAAMoqD,IAEL73D,KAAKg2B,QAAQvkB,MAAM,qDAAuDomD,GAC1E,MAAMx1C,EAAU,CAACjd,EAAwB/H,KAEnC+H,EAAOnF,KAAO43D,GAAS/b,IAAY12C,EAAO02C,WAC5C97C,KAAKg2B,QAAQvkB,MAAM,6BAA+BomD,GAClD9xD,EAAQX,GACRpF,KAAKonD,SAAS3pC,YAAY4E,KAK9BriB,KAAKonD,SAASruB,UAAU1W,EAAQ,IAEjC7f,OAAOuJ,IACN6B,EAAO7B,EAAI,GACX,IAGN,OAAOuzC,GAAQnwC,EAAS3D,GAWnB,oBAAA40C,CAAqBtE,EAAoBgc,EAAoD5jD,EAAkB1I,GAkDpH,OAAO8zC,GAjDS,IAAIx5C,SAA0B,CAACC,EAAS6H,KAClDgwC,GAAuB9B,IACzBluC,EAAO,yBAELgwC,GAAuBka,IACzBlqD,EAAO,oCAGJtP,MAAMC,QAAQu5D,IACjBlqD,EAAO,0CAELgwC,GAAuB1pC,KACzBA,EAAU,KAGZ,MAAMu4C,EAAwC,GAC9CqL,EAAoB14D,SAAS8M,IAC3B,IAAIi9C,EAWAuO,EACJ,GAVEvO,EADEjL,GAAchyC,GACG,CAAE9P,KAAO,EAAUkB,KAAM,GAAIy+C,eAAe,EAAOxvC,UAAW,IAE7D,EAItB48C,EAAiB4O,eAAgB,EACjC5O,EAAiBj1C,QAAUA,GAGtB0pC,GAAuBuL,EAAiBqN,YAG3C,GADAkB,EAAmBvO,EAAiBqN,WAC/B5Y,GAAuB8Z,EAAiBt7D,OAEtC,IAAKwhD,GAAuB8Z,EAAiBx/C,UAAW,CAC7D,MAAM0jC,EAAU57C,KAAK67C,WAAW,CAAE57C,GAAIy3D,EAAiBx/C,YAClD0lC,GAAuBhC,IAAYA,EAAQl+C,OAAS,IACvDyrD,EAAiBqN,WAAa5a,EAAQ,GAAGx/C,KAAKkB,YAJhD6rD,EAAiBqN,WAAakB,EAAiBt7D,KAQnDqwD,EAAkBvsD,KAAKipD,EAAiB,IAG1C,MAAM6O,EAAmC,GACzCvL,EAAkBrtD,SAASgrD,GAAO4N,EAAM93D,KAAKF,KAAKg8C,aAAaF,EAAUsO,MAEzEtkD,QAAQsf,IAAI4yC,GAAOvqD,KAAK1H,GAASvD,MAAMoL,EAAO,IAExBpC,GAWnB,mBAAA20C,CAAoBrE,EAAoB12C,EAAwBoG,GACrE,MAAM8jD,EAAWtvD,KAAKw7B,QAAQ8vB,aAAaxP,EAAS77C,GAAImF,EAAOnF,IAC5DwN,MAAK,IAAMrI,IAEd,OADAk6C,GAAQgQ,EAAU9jD,GACX8jD,EAWF,uBAAAhP,CAAwBxE,EAAoB12C,EAAwBoG,GACzE,MAAM8jD,EAAWtvD,KAAKw7B,QAAQ4wB,cAActQ,EAAS77C,GAAImF,EAAOnF,IAC7DwN,MAAK,IAAMrI,IAEd,OADAk6C,GAAQgQ,EAAU9jD,GACX8jD,EAUF,kBAAA7O,CAAmB3E,EAAoBz+C,EAAiBmO,GAC7D,MAAM2D,EAAU,IAAIrJ,SAAkB,CAACC,EAAS6H,KAC1CgwC,GAAuB9B,IACzBluC,EAAO,4BAMT5N,KAAKw7B,QACFmlB,sBAAsB7E,EAAUz+C,GAAS,GACzCoQ,MAAMmsB,IACL7zB,EAAQ+1C,EAAS,IAElBt5C,OAAOuJ,IACN6B,EAAO7B,EAAI,GACX,IAGN,OAAOuzC,GAAQnwC,EAAS3D,GAYnB,qBAAAm1C,CAAsB7E,EAAoBz+C,EAAcmO,GAC7D,MAAM2D,EAAU,IAAIrJ,SAAkB,CAACC,EAAS6H,KAC1CgwC,GAAuB9B,IACzBluC,EAAO,4BAGT,MAAM48C,EAAc,GACpB,IAAK,MAAMxtD,KAAOK,EACZA,EAAQsN,eAAe3N,IAAyB,OAAjBK,EAAQL,IACzCwtD,EAAYtqD,KAAKlD,GAGrB,IAAK,MAAMi7D,KAAczN,SAChBntD,EAAQ46D,GAGjBj4D,KAAKw7B,QACFmlB,sBAAsB7E,EAAUz+C,GAAS,EAAOmtD,GAChD/8C,MAAMmsB,IAEL7zB,EAAQ+1C,EAAS,IAElBt5C,OAAOuJ,IACN6B,EAAO7B,EAAI,GACX,IAGN,OAAOuzC,GAAQnwC,EAAS3D,GAUnB,+BAAA21C,CAAgC9+B,GACrCriB,KAAKs1D,YAAYv8B,WAAU,CAACqoB,EAAK/jD,KAC/B,GAAIA,EAAQjB,OAASqgD,GAAgBG,sBAAuB,CAC1D,MAAM8D,EAAgBrjD,EACtBglB,EAAQ++B,EAAKV,EAAcrjD,QAASqjD,EAAc3rB,QAAS2rB,EAAc1rB,aASxE,YAAAqsB,CAAavF,EAAoBtwC,GAEtC,OAAO8zC,GADSt/C,KAAKw7B,QAAQ6lB,aAAavF,GAClBtwC,GAQnB,UAAAqwC,CAAWx5C,GAChB,GAAI4hD,GAAiB5hD,GACnB,OAAOrC,KAAKonD,SAAS10B,MAGvB,IAAKuxB,GAAiB5hD,EAAOpC,IAC3B,MAAO,CAACD,KAAKonD,SAAS6M,UAAU5xD,EAAOpC,KAKzC,OAFmBD,KAAKonD,SAAS10B,MAEfrwB,QAAQw7C,IAExB,IAAKoG,GAAiB5hD,EAAOjG,OAASyhD,EAAEzhD,KAAK6D,KAAOoC,EAAOjG,KACzD,OAAO,EAGT,IAAK6nD,GAAiB5hD,EAAO/E,OAASugD,EAAEvgD,OAAS+E,EAAO/E,KACtD,OAAO,EAGT,IAAK2mD,GAAiB5hD,EAAOomB,YAAa,CACxC,GAAIm1B,GAAuBC,EAAE/B,UAC3B,OAAO,EAGT,GAAI+B,EAAE/B,SAAS77C,KAAOoC,EAAOomB,WAC3B,OAAO,EAIX,OAAO,CAAI,IAIR,eAAAs7B,CAAgB9jD,GACrB,OAAOD,KAAKw7B,QAAQuoB,gBAAgB9jD,GAG/B,eAAA2kD,CAAgB3kD,EAAY0kD,EAAsBn5C,GACvD,MAAM2D,EAAU,IAAIrJ,SAAc,CAACC,EAAS6H,KAC1C5N,KAAKw7B,QAAQopB,gBAAgB3kD,EAAI0kD,GAC9Bl3C,MAAK,IAAM1H,MACXvD,OAAOuJ,GAAQ6B,EAAO7B,IAAK,IAGhC,OAAOuzC,GAAQnwC,EAAS3D,GAGnB,WAAAq5C,CAAY5kD,GACjB,OAAOD,KAAKw7B,QAAQqpB,YAAY5kD,GAG3B,cAAAwkD,CAAexkD,EAAYukD,GAChC,OAAOxkD,KAAKw7B,QAAQipB,eAAexkD,EAAIukD,GAGlC,mBAAAF,CAAoBrkD,EAAYysD,GACrC,OAAO1sD,KAAKw7B,QAAQ8oB,oBAAoBrkD,EAAIysD,GAGvC,KAAAlzB,CAAMsiB,EAAoB8Q,EAA4BphD,GAC3D,MAAM2D,EAAU,IAAIrJ,SAAa,CAACC,EAAS6H,KACpCkuC,GACHluC,EAAO,4BAGT5N,KAAKw7B,QAAQmxB,cAAc7Q,EAAS77C,GAAI2sD,GACrCn/C,MAAMgb,IACLzoB,KAAKs1D,YACFpB,UAAUzrC,GACVhb,MAAM2zC,IACLr7C,EAAQq7C,EAAI,IAEb5+C,OAAOuJ,GAAQ6B,EAAO7B,IAAK,IAE/BvJ,OAAOuJ,GAAQ6B,EAAO7B,IAAK,IAGhC,OAAOuzC,GAAQnwC,EAAS3D,GAGnB,gBAAA+1C,CAAiBpmC,EAAc4f,EAAYvd,EAAchS,GAE9DgS,EAAMA,GAAO,CAAE,EAEf,MAAMrO,EAAU,IAAIrJ,SAAoC,CAACC,EAAS6H,KAGhE,IADqB5N,KAAKs1D,YAAYrB,UAAU94C,GAG9C,YADAvN,EAAO,iCAAmCuN,GAK5C,GADmBnb,KAAKs1D,YAAYrB,UAAUl5B,GAM9C,OAAO/6B,KAAKw7B,QAAQ+lB,iBAAiBpmC,EAAM4f,EAAIvd,GAC5C/P,MAAMe,IACL,MAAMkzC,EAAWlzC,EAAKusB,GAChB97B,EAAQuP,EAAK0wC,WACb+C,EAAYzzC,EAAK0pD,YAEvBl4D,KAAKs1D,YAAYpB,UAAUxS,GAAUj0C,MAAM2zC,IACzCA,EAAIY,mBAAmBC,GACvB,MAAMkW,EAAe/W,EAAIe,SAAS9/C,QAAQ+1D,GAAMA,EAAEtZ,UAAY7/C,EAAM6/C,UAAS,GAE7E/4C,EAAQoyD,EAAa,GACrB,IAEH31D,OAAOuJ,IACN6B,EAAO7B,EAAI,IAlBb6B,EAAO,iCAAmCmtB,EAmBxC,IAGN,OAAOukB,GAAQnwC,EAAS3D,GAGnB,gBAAA2zC,CACL12B,EACAy2B,EACA1zC,GACA,MAAM2D,EAAU,IAAIrJ,SAAkB,CAACC,EAAS6H,IACvC5N,KAAKw7B,QAAQ2jB,iBAAiB12B,EAAYy2B,GAC9CzxC,MAAkB,KAMjBzN,KAAKs1D,YACFpB,UALsB/vD,WAMtBsJ,MAAMmlD,IACLA,EAAO5Q,mBALc79C,WAOrBnE,KAAKs1D,YACFpB,UATkB/vD,WAUlBsJ,MAAMq0C,IACL/7C,EAAQ+7C,EAAO,GACf,IAELt/C,OAAOuJ,GAAQ6B,EAAO7B,IAAK,IAE/BvJ,OAAOuJ,IACN6B,EAAO7B,EAAI,MAIjB,OAAOuzC,GAAQnwC,EAAS3D,GAGnB,2BAAAi2C,CAA4Bj2C,GACjCxL,KAAK+0D,mBAAmB70D,KAAKsL,GAGxB,2BAAAq2C,CAA4Br2C,GACjCxL,KAAKg1D,mBAAmB90D,KAAKsL,GAGxB,kCAAA6sD,CAAmC7sD,GACxCxL,KAAKi1D,4BAA4B/0D,KAAKsL,GAIhC,WAAA4pD,CAAYjZ,GAClBA,EAAOb,SAAWt7C,KAGZ,eAAAm2D,GACNn2D,KAAKg2B,QAAQvkB,MAAM,2BAMnBzR,KAAKw7B,QAAQ6wB,mBACV5+C,MAAMopD,IACL72D,KAAKm1D,eAAe5pD,IAAIsrD,GACxB72D,KAAKu1D,iBAAiBlC,OAAO,gBAAgB,IAE9C7wD,OAAO8I,IACNtL,KAAKg2B,QAAQ1qB,MAAMA,GACnBtL,KAAKu1D,iBAAiBjqD,MAAM,sEAAwEA,EAAM,IAG9GtL,KAAKw7B,QAAQ8wB,iBACV7+C,MAAM6pD,IACLt3D,KAAKq1D,aAAa9pD,IAAI+rD,GACtBt3D,KAAKu1D,iBAAiBlC,OAAO,mBAAmB,IAEjD7wD,OAAO8I,IACNtL,KAAKg2B,QAAQ1qB,MAAMA,GACnBtL,KAAKu1D,iBAAiBjqD,MAAM,oEAAsEA,EAAM,IAG5GtL,KAAKw7B,QAAQ+wB,gBACV9+C,MAAM6qD,IACLt4D,KAAKs1D,YAAY/pD,IAAI+sD,GACrBt4D,KAAKu1D,iBAAiBlC,OAAO,iBAAiB,IAE/C7wD,OAAO8I,IACNtL,KAAKg2B,QAAQ1qB,MAAMA,GACnBtL,KAAKu1D,iBAAiBjqD,MAAM,0EAA4EA,EAAM,IAGlHtL,KAAKw7B,QAAQgxB,qBACV/+C,MAAMyoD,IACLl2D,KAAKonD,SAAS77C,IAAI2qD,GAClBl2D,KAAKu1D,iBAAiBlC,OAAO,cAAc,IAE5C7wD,OAAO8I,IACNtL,KAAKg2B,QAAQ1qB,MAAMA,GACnBtL,KAAKu1D,iBAAiBjqD,MAAM,wEAA0EA,EAAM,IAI1G,iBAAA2qD,GACNj2D,KAAKg2B,QAAQvkB,MAAM,yBAMnBzR,KAAKw7B,QAAQutB,4BAA4B1wC,IACvCrY,KAAKm1D,eAAermD,QAAQuJ,EAAM,IAGpCrY,KAAKw7B,QAAQ+tB,0BAA0BlxC,IACrCrY,KAAKq1D,aAAavmD,QAAQuJ,EAAM,IAGlCrY,KAAKw7B,QAAQwvB,wBAAwB3yC,IACnCrY,KAAKonD,SAASt4C,QAAQuJ,EAAM,IAG9BrY,KAAKw7B,QAAQquB,wBAAwBxxC,IACnCrY,KAAKs1D,YAAYxmD,QAAQuJ,EAAM,IAI3B,yBAAAw9C,CAA0BrnD,GAEhC,MAAMkzC,EAAWlzC,EAAKusB,GAChBmkB,EAAa1wC,EAAK0wC,WAClBgZ,EAAc1pD,EAAK0pD,YAEzBl4D,KAAKs1D,YAAYpB,UAAUxS,GAAUj0C,MAAM2zC,IACzCA,EAAIY,mBAAmBkW,GACvB,MAAMK,EAA4BnX,EAAIe,SAAS9/C,QAAQ+1D,GAAMA,EAAEtZ,UAAYI,EAAWJ,UAAS,GAE/F9+C,KAAK+0D,mBAAmB31D,SAASoM,IAC/B,IACEA,EAAS41C,EAAKmX,GACd,MAAOxsD,GACP,UAEF,IAKE,yBAAA+pD,CAA0BtnD,GAChC,MAAMmzC,EAAWnzC,EAAKgqD,cAChB9W,EAAWlzC,EAAKiqD,cAChBP,EAAc1pD,EAAK0pD,YACnBhZ,EAAa1wC,EAAK0wC,WAExBl/C,KAAKs1D,YAAYpB,UAAUvS,GAAUl0C,MAAMmlD,IAEzCA,EAAO5Q,mBAAmBkW,GAE1Bl4D,KAAKs1D,YAAYpB,UAAUxS,GAAUj0C,MAAMq0C,IAEzC9hD,KAAKg1D,mBAAmB51D,SAASoM,IAC/B,IACEA,EAASs2C,EAAQ8Q,EAAQ1T,GACzB,MAAOnzC,GACP,UAEF,GACF,IAIE,mCAAAgqD,CAAoCvnD,GAC1C,MAAMvO,EAAKuO,EAAKvO,GACVi4D,EAAc1pD,EAAK0pD,YAEnB9W,EAAMphD,KAAKs1D,YAAYrB,UAAUh0D,GACnCmhD,GACFA,EAAIY,mBAAmBkW,GAInB,kBAAAtC,GACN51D,KAAKw7B,QAAQ2xB,yBACV1/C,MAAMrG,IAGDA,GACFxK,OAAOC,KAAKuK,GAAKhI,SAASpC,IACxB,MAAM25D,EAAQ35D,EACRk7D,EAAc9wD,EAAIpK,GAElBokD,EAAMphD,KAAKs1D,YAAYrB,UAAU0C,GACnCvV,GACFA,EAAIY,mBAAmBkW,MAK7Bl4D,KAAKw1D,mBAAmBnC,OAAO,+BAA+B,IAE/D7wD,OAAOuJ,IACN/L,KAAKw1D,mBAAmBlqD,MAAM,+BAAiCS,EAAI,IAIjE,8BAAAiqD,CAA+BxX,GACrC,IAAKA,EAAI/1B,WACP,OAGF,MAAM24B,EAAMphD,KAAKs1D,YAAYrB,UAAUzV,EAAI/1B,YACtC24B,GAKAA,EAAInB,OAILmB,EAAInB,MAAMsC,iBAAiBtiD,KAAOu+C,EAAIv+C,IAI1CD,KAAKi1D,4BAA4B71D,SAASoM,IACxC,IACEA,EAAS41C,EAAK5C,EAAIQ,YAClB,MAAOt6C,GACP,kBC/qCKg0D,GAcX,WAAAn8D,CAAYoiD,EAA0B8J,GACpCzoD,KAAKmxD,GAAKxS,EACV3+C,KAAK24D,IAAMlQ,EAEXzoD,KAAK44D,cAAgB,CACnBlmC,IAAK1yB,KAAK64D,yBAAyB7iD,KAAKhW,MACxCkmC,SAAUlmC,KAAKmxD,GAAGnI,qBAAqBhzC,KAAKhW,KAAKmxD,IACjDpsB,WAAY/kC,KAAKmxD,GAAG7H,uBAAuBtzC,KAAKhW,KAAKmxD,IACrDp4B,UAAW/4B,KAAKmxD,GAAGyF,4BAA4B5gD,KAAKhW,KAAKmxD,IACzD1zC,iBAAatZ,EACbk3C,SAAUr7C,KAAKmxD,GAAG9V,SAASrlC,KAAKhW,KAAKmxD,KAGvCnxD,KAAKqgD,YAAc,CACjB3tB,IAAK1yB,KAAK84D,uBAAuB9iD,KAAKhW,MACtC+4D,gBAAiB/4D,KAAKmxD,GAAG3H,sBAAsBxzC,KAAKhW,KAAKmxD,IACzD6H,kBAAmBh5D,KAAKmxD,GAAGxH,wBAAwB3zC,KAAKhW,KAAKmxD,IAC7Dp4B,UAAW/4B,KAAKmxD,GAAGkG,0BAA0BrhD,KAAKhW,KAAKmxD,IACvD1zC,iBAAatZ,GAGfnE,KAAK47C,QAAU,CACblpB,IAAK1yB,KAAKmxD,GAAGtV,WAAW7lC,KAAKhW,KAAKmxD,IAClCp4B,UAAW/4B,KAAKmxD,GAAGlQ,sBAAsBjrC,KAAKhW,KAAKmxD,IACnD8H,SAAUj5D,KAAKmxD,GAAG1G,eAAez0C,KAAKhW,KAAKmxD,IAC3C1zC,iBAAatZ,EACbqpB,OAAQxtB,KAAKmxD,GAAGnV,aAAahmC,KAAKhW,KAAKmxD,KAGzCnxD,KAAKk5D,UAAY,CACfxmC,IAAK1yB,KAAKmxD,GAAG5E,cAAcv2C,KAAKhW,KAAKmxD,IACrCp4B,UAAW/4B,KAAKmxD,GAAGtQ,wBAAwB7qC,KAAKhW,KAAKmxD,IACrD1zC,iBAAatZ,GAIV,UAAAg1D,CAAW3tD,GAChBxL,KAAKmxD,GAAG1P,4BAA4Bj2C,GAG/B,UAAAo2C,CAAWp2C,GAChBxL,KAAKmxD,GAAGtP,4BAA4Br2C,GAG/B,2BAAA4tD,CAA4B5tD,GACjCxL,KAAKmxD,GAAGkH,mCAAmC7sD,GAGrC,wBAAAqtD,CAAyBv7D,GAC/B,OAAI2mD,GAAiB3mD,GACZ0C,KAAKmxD,GAAG9E,mBAEVrsD,KAAKmxD,GAAGnR,gBAAgB1iD,GAGzB,sBAAAw7D,CAAuBx7D,GAC7B,OAAI2mD,GAAiB3mD,GACZ0C,KAAKmxD,GAAG7E,iBAEVtsD,KAAKmxD,GAAGnN,cAAc1mD,UCrEpB+7D,GAYX,WAAA98D,CAAYoiD,EAA0B8J,GACpCzoD,KAAKs5D,KAAO3a,EACZ3+C,KAAK24D,IAAMlQ,EACXzoD,KAAKolB,IAAM,IAAIszC,GAAsB/Z,EAAS8J,GASzC,KAAA1lC,CAAMvX,GACX,MAAM2D,EAAU,IAAIrJ,SAAa,CAACC,EAAS6H,KACzC5N,KAAKs5D,KAAKv2C,QACPtV,MAAK,KACJ1H,EAAQ/F,KAAK,IAEdwC,OAAOuJ,IACN6B,EAAO7B,EAAI,GACX,IAEN,OAAOuzC,GAAQnwC,EAAS3D,GAQ1B,MAAWi9C,GACT,OAAOzoD,KAAK24D,IAUd,SAAWY,GACT,YAA2Bp1D,IAApBnE,KAAK24D,IAAIvzD,OAQlB,cAAWo0D,GACT,OAAOx5D,KAAKu5D,YAA+Bp1D,IAAtBnE,KAAK24D,IAAI7c,SAYhC,OAAWnD,GACT,GAAK34C,KAAKu5D,MAIV,OAAKv5D,KAAKw5D,WAKHx5D,KAAK24D,IAAI7c,SAASnD,IAHhB,IAAI6E,GAAY,MAWpB,uBAAAic,GAEL,MAAO,UCrDEC,GACF,oCAAOC,CAA8BpyD,GACxC,OAAsC,IAA/BA,EAAW0W,gBAQtB,OAAIhY,GACA,OAAOjG,KAAK45D,KAGhB,OAAI3zD,CAAI3J,GACJ0D,KAAK45D,KAAOt9D,EAGhB,WAAAC,CAAYiL,GACR,IAAKA,EACD,MAAM,IAAI3H,MAAM,0BAapB,IAAIg1D,EAIJ,GAbK5Q,GAAiBz8C,EAAOqyD,YACzBr0C,GAAO29B,MAAQ37C,EAAOqyD,UAGrBjc,GAAuBp2C,EAAO2F,UAC/BqY,GAAOy9B,WAAaz7C,EAAO2F,QAK/BnN,KAAK85D,yBAAqD,IAA1BtyD,EAAOuyD,eACvC/5D,KAAKg6D,0BAA4BN,GAAeC,8BAA8BnyD,EAAOD,YAEjFvH,KAAK85D,yBACL,MAAM,IAAIj6D,MAAM,qBACb,IAAIG,KAAKg6D,0BAGZ,MAAM,IAAIn6D,MAAM,wDAGpB,GALIg1D,EAAS,IAAIp5B,GAAUj0B,IAKtBqtD,EACD,MAAM,IAAIh1D,MAAM,iEAGpB29C,GAAYG,IAAMn2C,EAAOmxC,IACzB,MAAMshB,EAAkB,IAAIxF,GAAgBI,GAASrtD,EAAO0yD,oBAAqB1yD,EAAOo0C,SAClF6M,EAAK,IAAI0R,GAAGF,EAAiBzyD,EAAOo0C,SAC1C57C,KAAK45D,KAAO,IAAIP,GAAYY,EAAiBxR,GAC7CzoD,KAAKo6D,cAAgBH,EAAgBl3C,QAAQtV,MAAMmsB,GAAM55B,OAG7D,2BAAWq6D,GACP,OAAOr6D,KAAK85D,yBAGhB,4BAAWQ,GACP,OAAOt6D,KAAKg6D,0BAGT,KAAAj3C,CAAMvX,GACT,OAAO8zC,GAAQt/C,KAAKo6D,cAAe5uD,ICvIpC,MAcM+uD,GAAqC,mCACrCC,GAAiB,eAQjBC,GAAoB,kBAEpBC,GAA4B,qRCxBzC,SAAS7vD,GAAe9G,GACpB,GAAIA,GAAWA,EAAQ+G,eACiB,mBAA1B/G,EAAQ+G,eACW,QAA1B/G,EAAQ+G,eACkB,WAA1B/G,EAAQ+G,eACkB,UAA1B/G,EAAQ+G,cACX,MAAM,IAAIjL,MAAM,mIAA2IkE,EAAQ+G,cAAgB,eAEvL,IAAIC,EAAoBhH,GAA4C,mBAA1BA,EAAQ+G,eAAgC/G,EAAQ+G,cACtFE,EAAY,CAAE,EAqElB,SAASC,EAAaC,EAAmBlO,GACrC,IAAImO,EAAWD,aAA6BrL,MAAQqL,EAAoB,IAAIrL,MAAMqL,GAClF,GAAIH,EACAA,EAAkBI,OADtB,CAIA,IAAIhM,EAAM,qDAAwDnC,EAAM,aAAgBmO,EAASC,MACjG,GAAIrH,EACA,OAAQA,EAAQ+G,eACZ,IAAK,MACD,OAAOO,QAAQC,MAAMnM,GACzB,IAAK,SACD,OACJ,IAAK,QACD,MAAM,IAAIU,MAAMV,GAG5BkM,QAAQC,MAAMnM,EAZtB,CAaA,CAWI,MAAO,CACHoM,IAlGJ,SAAavO,EAAKwO,EAAUC,GACxB,IAAIC,EAAkBV,EAAUhO,GA0BhC,OAzBK0O,IACDA,EAAkB,GAClBV,EAAUhO,GAAO0O,GAErBA,EAAgBxL,KAAKsL,GACjBC,GACAnF,YAAW,WACPmF,EAAmBrM,SAAQ,SAAUuM,GACjC,IAAIC,EACJ,GAA8B,QAAzBA,EAAKZ,EAAUhO,UAAyB,IAAP4O,OAAgB,EAASA,EAAGC,SAASL,GACvE,IACQlN,MAAMC,QAAQoN,GACdH,EAASM,WAAM3H,EAAWwH,GAG1BH,EAASM,WAAM3H,EAAW,CAACwH,GAE3D,CACwB,MAAOI,GACHd,EAAac,EAAK/O,EAC9C,CAEA,GACa,GAAE,GAEA,WACH,IAAIgP,EAAYhB,EAAUhO,GACrBgP,IASoB,KANzBA,EAAYA,EAAUlP,QAAO,SAAUmP,EAAKC,EAASC,GAIjD,OAHMD,IAAYV,GAAYS,EAAIvO,SAAWyO,GACzCF,EAAI/L,KAAKgM,GAEND,CACV,GAAE,KACWvO,cACHsN,EAAUhO,GAGjBgO,EAAUhO,GAAOgP,EAExB,CACT,EAsDQI,QArDJ,SAAiBpP,GAEb,IADA,IAAIqP,EAAe,GACVC,EAAK,EAAGA,EAAKC,UAAU7O,OAAQ4O,IACpCD,EAAaC,EAAK,GAAKC,UAAUD,GAErC,IAAIZ,EAAkBV,EAAUhO,GAChC,IAAK0O,GAA8C,IAA3BA,EAAgBhO,OACpC,MAAO,GAEX,IAAI8O,EAAU,GAWd,OAVAd,EAAgBtM,SAAQ,SAAUoM,GAC9B,IACI,IAAI5H,EAAS4H,EAASM,WAAM3H,EAAWkI,GACvCG,EAAQtM,KAAK0D,EAC7B,CACY,MAAOmI,GACHS,EAAQtM,UAAKiE,GACb8G,EAAac,EAAK/O,EAClC,CACA,IACewP,CACf,EAiCQC,MAbJ,WACIzB,EAAY,CAAE,CACtB,EAYQ0B,SAXJ,SAAkB1P,GACQgO,EAAUhO,WAIzBgO,EAAUhO,EACzB,EAOA,CAEA6N,GAAe+B,QAAU/B,GACzB,UAAiBA,ICnHX,SAAU8vD,GAAaxhD,GACzB,OAAKA,EAGEvc,OAAOC,KAAKsc,GAAQ/R,KAAKpK,GAAQmc,EAAOnc,KAFpC,EAGf,CAEM,SAAU49D,GAAY1lC,GACxB,IAAItxB,EACJ,IACIA,EAASiD,KAAK0c,MAAM1c,KAAKC,UAAUouB,GAAO,CAAA,IAC5C,MAAO5pB,GACL1H,EAAS,CAAE,EAGf,OAAOA,CACX,CAEgB,SAAAi3D,GAAYrvD,EAA4B8wB,GACpD,GAAIA,EAAcw+B,aACU,mBAAbtvD,EACP,MAAM,IAAI3L,MAAM,6CAG5B,CC1BO,MAAMk7D,GAAqC,IACrCC,GAAiC,ICGhC,MAAOrsD,GACV,wBAAOssD,GACV,GAAsB,oBAAX71D,OACP,OAAS,EAEb,IAAKA,OAAO81D,YACR,OAAS,EAEb,IAAK91D,OAAO81D,YAAY/yC,QACpB,OAAS,EAEb,MAAMgzC,EAAS/1D,OAAO81D,YAAY/yC,QAAQ5B,MAAM,KAC1C60C,EAAQ1oB,OAAOyoB,EAAO,IAC5B,OAAOx3C,MAAMy3C,IAAS,EAAKA,EAGxB,iBAAOhjB,CAAW9sC,GACrB,IAAIS,EAmBJ,OAjBIA,EADAT,aAAiBzL,MACXyL,EACkB,iBAAVA,EACR,IAAIzL,MAAMyL,GACT,YAAaA,GAAkC,iBAAlBA,EAAMiC,SAAwBjC,EAAMiC,QAAQ7P,OAAS,EAEnF,IAAImC,MAAMyL,EAAMiC,SACf,aAAcjC,GACQ,iBAAnBA,EAAMk0B,UACb,aAAcl0B,EAAMk0B,UACe,iBAA5Bl0B,EAAMk0B,SAASzlB,UACtBzO,EAAMk0B,SAASzlB,SAASrc,OAAS,EAE9B,IAAImC,MAAMyL,EAAMk0B,SAASzlB,UAEzB,IAAIla,MAAM,iBAGbkM,EAGJ,+BAAasvD,CAChBzxD,EACAmyB,EACAC,GAmBA,IAEI,MAnBY,CAACp4B,IACkB,mBAApBm4B,GACPA,EAAgBn4B,GAEbkC,QAAQC,QAAQnC,IAehB0U,OADc1O,KAEvB,MAAO0B,GACL,MAdS,CAACA,IACV,MAAMS,EAAM4C,GAAMypC,WAAW9sC,GAC7B,GAA6B,mBAAlB0wB,EAKX,OAAOl2B,QAAQ8H,OAAO7B,GAJlBiwB,EAAcjwB,EAAIwB,QAII,EAOnB+tD,CAAKhwD,IAIb,iBAAOiwD,CAAW5W,EAAyC6W,GAU9D,OATgCA,EAASp0D,KAAK/H,IAC1C,MAAM4jB,KAAEA,EAAInI,IAAEA,EAAK2gD,iBAAkBvQ,EAAOwQ,kBAAmBvQ,GAAW9rD,EAE1E,MAAO,CACHs8D,QAASt8D,EACTu8D,aAHY57D,KAAK67D,sBAAsB,CAAE54C,OAAMnI,MAAKowC,QAAOC,UAAUxG,GAIxE,IACF7lD,MAAK,CAACC,EAAGC,IAAMA,EAAE48D,aAAe78D,EAAE68D,eAEN,GAAGD,QAG/B,+BAAOG,CAAyB/8D,EAA6Cg9D,EAAmDC,GACnI,MAAMC,EAAgBl9D,EAAEmsD,MAAQ6Q,EAAeG,YACzCC,EAAiBp9D,EAAEosD,OAAS4Q,EAAeG,YAC3CE,EAAsBL,EAAeM,SAASp5C,KAAO+4C,EAAeE,YACpEI,EAAqBP,EAAeM,SAASvhD,IAAMkhD,EAAeE,YAClEK,EAAuBR,EAAeM,SAASnR,MAAQ6Q,EAAeG,YACtEM,EAAwBT,EAAeM,SAASlR,OAAS4Q,EAAeG,YAExEO,EAAkB7oD,KAAK8oD,KAAKH,EAAuBN,GAAiB,EAAG,GACvEU,EAAkB/oD,KAAK8oD,KAAKF,EAAwBL,GAAkB,EAAG,GACzES,EAAuBhpD,KAAK00B,MAAM8zB,EAAsBK,GACxDI,EAAsBjpD,KAAK00B,MAAMg0B,EAAqBK,GAI5D,MAAO,CACH15C,KAJS25C,EAAuBZ,EAAeE,YAK/CphD,IAJQ+hD,EAAsBb,EAAeE,YAK7ChR,MAAOnsD,EAAEmsD,MACTC,OAAQpsD,EAAEosD,QAIX,aAAOv8C,GACV,QAA6B,IAAlBD,GAAME,QACb,OAAOF,GAAME,QAGjB,GAAsB,oBAAXzJ,OAEP,OADAuJ,GAAME,SAAU,GACT,EAIX,IACIF,GAAME,QAA6D,qBAAnDjS,OAAO8N,UAAU1M,SAAS4M,KAAKP,OAAOyE,SACxD,MAAOpK,GACLiK,GAAME,SAAU,EAEpB,OAAOF,GAAME,QAGV,iBAAOiuD,GACV,MCrHK,EAACnpD,EAAO,MACnB,IAAI1T,EAAK,GACLoH,EAAW,EAAPsM,EACR,KAAOtM,KACLpH,GAfF,mEAeqC,GAAhB2T,KAAKC,SAAiB,GAE3C,OAAO5T,GD+GMyT,CAAO,IAGX,gBAAOqpD,CAAUzgE,GACpB,OAAOyB,QAAQzB,GAA+B,mBAAfA,EAAMmR,MAGlC,sBAAOuvD,CAAgB1gE,GAC1B,OAAOA,GAAqC,2BAA5B,CAAA,EAAG0B,SAAS4M,KAAKtO,GAG9B,wBAAO2gE,CAAkB3gE,GAC5B,OAAOA,QAKH,4BAAOu/D,CAAsBqB,EAAqCC,GACtE,MAAMC,EAAMF,EAAGj6C,KACTo6C,EAAMH,EAAGpiD,IACTwiD,EAASF,EAAMF,EAAGhS,MAClBqS,EAASF,EAAMH,EAAG/R,OAElBqS,EAAML,EAAGl6C,KACTw6C,EAAMN,EAAGriD,IACT4iD,EAASF,EAAML,EAAGjS,MAClByS,EAASF,EAAMN,EAAGhS,OAKxB,OAHiBv3C,KAAK8oD,IAAI,EAAG9oD,KAAKgqD,IAAIN,EAAQI,GAAU9pD,KAAK8oD,IAAIU,EAAKI,IACrD5pD,KAAK8oD,IAAI,EAAG9oD,KAAKgqD,IAAIL,EAAQI,GAAU/pD,KAAK8oD,IAAIW,EAAKI,KEpJhE,MAAOI,GAOjB,WAAAthE,CAAoBuhE,EAAqCz8D,EAAuB0+C,EAA4C/pB,EAA8C+nC,GAAtJ/9D,KAAW89D,YAAXA,EAAqC99D,KAAKqB,MAALA,EAAuBrB,KAAI+/C,KAAJA,EAA4C//C,KAAOg2B,QAAPA,EAA8Ch2B,KAAc+9D,eAAdA,EALlK/9D,KAAS2Q,UAAqB9D,KAUlCixD,EAAYE,mBAAmBh1D,IACvBA,EAASuJ,aAAevJ,EAASuJ,YAAYjV,OAAS0C,KAAKqB,OAI/DrB,KAAK2Q,UAAUvE,QAAQ,kBAAmBpD,EAAS,IAGvD80D,EAAYG,mBAAmBj1D,IACvBA,EAASuJ,aAAevJ,EAASuJ,YAAYjV,OAAS0C,KAAKqB,OAI/DrB,KAAK2Q,UAAUvE,QAAQ,kBAAmBpD,EAAS,IAGvD80D,EAAYI,cAAcC,IAClBA,EAAI7gE,OAAS0C,KAAKqB,OAItBrB,KAAK2Q,UAAUvE,QAAQ,aAAc+xD,EAAI,IAG7CL,EAAYM,cAAcD,IAClBA,EAAI7gE,OAAS0C,KAAKqB,OAItBrB,KAAK2Q,UAAUvE,QAAQ,aAAc+xD,EAAI,IAG7CL,EAAYO,gBAAgBF,IACpBA,EAAI7gE,OAAS0C,KAAKqB,QAGtBrB,KAAKs+D,OAAOC,SAAU,EACtBv+D,KAAK2Q,UAAUvE,QAAQ,eAAgB+xD,GAAI,IAG/CL,EAAYU,kBAAkBL,IACtBA,EAAI7gE,OAAS0C,KAAKqB,QAGtBrB,KAAKs+D,OAAOC,SAAU,EACtBv+D,KAAK2Q,UAAUvE,QAAQ,iBAAkB+xD,GAAI,IAIrD,QAAI7gE,GAAiB,OAAO0C,KAAKqB,KAAM,CACvC,SAAI6D,GAAkB,OAAOlF,KAAKs+D,OAAOG,KAAM,CAC/C,WAAIt2C,GAAoB,OAAOnoB,KAAKs+D,OAAOI,OAAQ,CACnD,aAAIC,GAAuB,OAAO3+D,KAAKs+D,OAAOM,SAAU,CACxD,WAAIC,GAAqB,OAAO7+D,KAAKs+D,OAAOQ,OAAQ,CACpD,WAAIC,GAAoB,OAAO/+D,KAAKs+D,OAAOU,OAAQ,CACnD,UAAIC,GAAoB,OAAOj/D,KAAKs+D,OAAOY,QAAS,CACpD,aAAIC,GAAsB,OAAOn/D,KAAKs+D,OAAOc,eAAgB,CAC7D,gBAAIhW,GAAyB,OAAOppD,KAAKs+D,OAAOxjB,YAAa,CAC7D,sBAAI8Q,GAA+B,OAAO5rD,KAAKs+D,OAAOe,kBAAmB,CACzE,kBAAIC,GACA,OAAKt/D,KAAKs+D,OAAOiB,UAGV3E,GAAY56D,KAAKs+D,OAAOiB,WAFpB,CAAE,EAIjB,iBAAIC,GAA2B,OAAOx/D,KAAKs+D,OAAOmB,aAAc,CAChE,aAAIC,GAAuB,OAAO1/D,KAAKs+D,OAAOC,UAAW,CAAK,CAC9D,QAAIoB,GAAiB,OAAO3/D,KAAKs+D,OAAOsB,IAAK,CAC7C,WAAIC,GAAoB,OAAO7/D,KAAKs+D,OAAOwB,OAAQ,CACnD,aAAIC,GAAsB,OAAO//D,KAAKs+D,OAAO0B,SAAU,CAEvD,kBAAIC,GACA,OAAKjgE,KAAKs+D,OAAO4B,eAGVtF,GAAY56D,KAAKs+D,OAAO4B,gBAFpB,CAAE,EAKjB,YAAIC,GACA,OAAKngE,KAAKs+D,OAAO8B,SAGVpgE,KAAKs+D,OAAO8B,SAFR,GAKf,cAAIC,GACA,YAAoCl8D,IAA7BnE,KAAKs+D,OAAOxjB,cAA2D,KAA7B96C,KAAKs+D,OAAOxjB,aAGjE,iBAAIxe,GACA,MAAO,CACHqiC,UAAW3+D,KAAKs+D,OAAOM,UACvBG,QAAS/+D,KAAKs+D,OAAOU,QACrBC,OAAQj/D,KAAKs+D,OAAOY,SACpBC,UAAWn/D,KAAKs+D,OAAOc,gBACvBhW,aAAcppD,KAAKs+D,OAAOxjB,aAC1B0kB,cAAex/D,KAAKs+D,OAAOmB,eAInC,aAAIvG,GACA,OAAOl5D,KAAK89D,YAAY5E,YAAY72D,QAAQ2G,GAAmDA,EAASuJ,YAAYjV,OAAS0C,KAAKqB,QAGtI,QAAIjF,GACA,OAAO4D,KAAKs+D,OAAOgC,KAGvB,QAAI3X,GACA,IAAK3oD,KAAKs+D,OAEN,MAAO,UAIX,GAAIt+D,KAAKs+D,OAAOiC,MAAoC,iBAArBvgE,KAAKs+D,OAAOiC,KACvC,OAAOvgE,KAAKs+D,OAAOiC,KAAKv7D,cAK5B,GAAIhF,KAAKqgE,WACL,MAAO,UAIX,GAAIrgE,KAAKs+D,OAAOiB,WAAav/D,KAAKs+D,OAAOiB,UAAU5W,MAA8C,iBAA/B3oD,KAAKs+D,OAAOiB,UAAU5W,KACpF,OAAO3oD,KAAKs+D,OAAOiB,UAAU5W,KAAK3jD,cAItC,IAAIw7D,EAAkBxgE,KAAKs+D,OAAOmC,sBAClC,GAAID,EAAiB,CAEjBA,EAAkBA,EAAgBj6C,MAAM,KAAK9oB,KAAK,IAClD,MAAMijE,EAAY,SACZC,EAAYH,EAAgBjtD,QAAQmtD,GAC1C,IAAkB,IAAdC,EAAkB,CAClB,MAAMC,EAAiBD,EAAYD,EAAUhjE,OACvCmjE,EAAgBL,EAAgBjtD,QAAQ,IAAMqtD,GAC9CE,EAAQN,EAAgBO,OAAOH,EAAgBC,EAAgBD,GACrE,GAAIE,GAA0B,iBAAVA,EAChB,OAAOA,EAAM97D,eAMzB,MAAO,OAGJ,sBAAMg8D,GAMT,aALqBhhE,KAAK+/C,KAAKl5B,OAAOo6C,GAAoC,CAAEC,GAAI,CAAEC,KAAM,CAACnhE,KAAKqB,SAAY,OAAQ,CAC9Gw7B,cAAem+B,GACfl8B,wBAAyBk8B,MAEPx7B,SAAS4hC,aAAa,GAIzC,eAAAC,CAAgB1uC,GACd3yB,KAAKs+D,SACNt+D,KAAKs+D,OAAS,CAAEgD,KAAM3uC,EAAM2uC,OAGhC1kE,OAAOC,KAAK81B,GAAOvzB,SAASpC,IACvBgD,KAAKs+D,OAAethE,GAAQ21B,EAAc31B,EAAI,IAIhD,KAAAukE,CAAMlkE,EAAmB0G,GAC5B,OAAO,IAAI+B,SAA8CgC,MAAO/B,EAAS6H,iBACrE,GAAI4sC,GAAkBn9C,GAClBA,EAAU,CAAE,OACT,IAAyB,UAArB2C,KAAK+9D,wBAAgB,IAAAnyD,OAAA,EAAAA,EAAEkvD,cAAkC,iBAAZz9D,GAAwBiB,MAAMC,QAAQlB,GAC1F,OAAOuQ,EAAO,IAAI/N,MAAM,qDAG5B,GAAI26C,GAAkBz2C,GAClBA,EAAU,CAAE,OACT,IAAyB,QAArBy3C,EAAAx7C,KAAK+9D,wBAAgB,IAAAviB,OAAA,EAAAA,EAAEsf,cAAkC,iBAAZ/2D,EACpD,OAAO6J,EAAO,IAAI/N,MAAM,qDAG5B,MAAMvC,EAAO0C,KAAKqB,MAClB,IAAImgE,EAAsE,QAAjDxoC,EAAqB,UAApBj1B,EAAQ09D,oBAAY,IAAAC,EAAAA,EAAI39D,EAAQ49D,uBAAgB,IAAA3oC,GAAAA,EACtE4oC,EAAe,IACY,iBAApB79D,EAAQmQ,UACf0tD,EAAiC,IAAlB79D,EAAQmQ,cAGA/P,IAAvBJ,EAAQyyD,YAA0D,iBAAvBzyD,EAAQyyD,aACnDzyD,EAAQyyD,WAAazyD,EAAQyyD,WAAWv2D,IAAM,IAGlD,MAAM4hE,EAA8B5hE,IAChC,IAAI6iB,EAEJ,MAAM5O,EAAU5N,YAAW,KACnBwc,GACAA,IAEJ,MAAMg/C,EAAS,2CAA2C7hE,aAAcD,KAAK1C,OAC7E0C,KAAKg2B,QAAQ1qB,MAAMw2D,GACnBl0D,EAAO,IAAI/N,MAAMiiE,GAAQ,GAC1BF,GAEGG,EAAY16D,IACVA,EAAEpH,KAAOA,IAGT6iB,IACAA,IACAA,OAAQ3e,GAEZgQ,aAAaD,GACbnO,EAAQsB,GAAE,EAGd,GAAIm6D,EAAoB,CACpB,MAAMx4D,EAAWhJ,KAAK89D,YAAY5E,YAAYv/C,MAAMtS,GAAMA,EAAEpH,KAAOA,IAE/D6iB,EADA9Z,EACQA,EAASg5D,WAAWD,GAEpB/hE,KAAK89D,YAAYmE,yBAAyBF,QAItDj/C,EAAQ9iB,KAAK89D,YAAYE,kBAAkB+D,IAInD,IACI/hE,KAAKg2B,QAAQtV,MAAM,wBAAwBpjB,mBAAsBuJ,KAAKC,UAAU/C,MAChF,MAYMm+D,SAZeliE,KAAK+/C,KAAKl5B,ON/OL,2BMgPtB,CACIy6C,KAAMhkE,EACN6kE,QAAS9kE,EACT+kE,QAASr+D,GAEb,OACA,CACI+6B,wBAAyB8iC,EACzB/kC,cAAem+B,MAGkBx7B,SAQzC,QAPiC,IAAtB0iC,EAAUhuD,cAAsD,IAApBnQ,EAAQmQ,UAC3D0tD,EAAmC,IAApBM,EAAUhuD,cAEW,IAA7BguD,EAAUG,qBAAsE,IAA5Bt+D,EAAQ49D,sBAAmE,IAAzB59D,EAAQ09D,eACrHD,EAAqBU,EAAUG,gBAG/BH,GAAaA,EAAUI,GACvB,GAA8B,cAA1BtiE,KAAK89D,YAAYnV,KAAsB,CAGvC,MAAM3/C,EAAWhJ,KAAK89D,YAAYyE,sBAAsB,CACpDC,gBAAYr+D,EACZs+D,qBAAiBt+D,EACjBg+D,aAASh+D,EACTs6D,WAAOt6D,EACPu+D,gBAAYv+D,EACZm+D,GAAIJ,EAAUI,GACdhB,KAAMY,EAAUZ,OAEpBv7D,EAAQiD,QAGR64D,EAA2BK,EAAUI,SAKzCv8D,OAAQ5B,GAEd,MAAOmH,GACL,MAAMS,EAAM4C,GAAMypC,WAAW9sC,GAC7BsC,EAAO7B,OAKZ,iBAAAiyD,CAAkBxyD,GAErB,OADAqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,kBAAmBC,GAG1C,iBAAAyyD,CAAkBzyD,GAErB,OADAqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,kBAAmBC,GAG1C,WAAAm3D,CAAYn3D,GAOf,OANAqvD,GAASrvD,EAAUxL,KAAK+9D,kBACpB/9D,KAAKs+D,OAAOC,SACZj4D,YAAW,KACPtG,KAAK2Q,UAAUvE,QAAQ,eAAgBpM,KAAK,GAC7C,GAEAA,KAAK2Q,UAAUpF,IAAI,eAAgBC,GAGvC,aAAAo3D,CAAcp3D,GAOjB,OANAqvD,GAASrvD,EAAUxL,KAAK+9D,mBACI,IAAxB/9D,KAAKs+D,OAAOC,SACZj4D,YAAW,KACPtG,KAAK2Q,UAAUvE,QAAQ,iBAAkBpM,KAAK,GAC/C,GAEAA,KAAK2Q,UAAUpF,IAAI,iBAAkBC,GAGzC,SAAAq3D,CAAUr3D,GACbqvD,GAASrvD,EAAUxL,KAAK+9D,kBACxB/9D,KAAK2Q,UAAUpF,IAAI,aAAcC,GAG9B,SAAAs3D,CAAUt3D,GACbqvD,GAASrvD,EAAUxL,KAAK+9D,kBACxB/9D,KAAK2Q,UAAUpF,IAAI,aAAcC,IC9U3B,MAAOu3D,GAajB,WAAAxmE,CACY09C,EACA+oB,EACAlF,EACA/d,EACAuV,EACAlO,EACApxB,EACRitC,EACQlF,GARA/9D,KAAGi6C,IAAHA,EACAj6C,KAAQgjE,SAARA,EACAhjE,KAAW89D,YAAXA,EACA99D,KAAI+/C,KAAJA,EACA//C,KAAWs1D,YAAXA,EACAt1D,KAAQonD,SAARA,EACApnD,KAAOg2B,QAAPA,EAEAh2B,KAAc+9D,eAAdA,EArBJ/9D,KAAS2Q,UAAqB9D,KAuB9Bo2D,IAIJjjE,KAAKkjE,4BAA8BljE,KAAK89D,YAAYG,mBAAmBj1D,IAC/DA,EAAS/I,KAAOD,KAAKi6C,KAIzBj6C,KAAK2Q,UAAUvE,QAAQ,UAAWpD,EAAS,IAG/ChJ,KAAKmjE,mCAAqCnjE,KAAK89D,YAAYmE,0BAA0Bj5D,IAC7EA,EAAS/I,KAAOD,KAAKi6C,KAIzBj6C,KAAK2Q,UAAUvE,QAAQ,WAAYpD,EAAS,KAIpD,MAAI/I,GAAe,OAAOD,KAAKi6C,GAAI,CAEnC,eAAI1nC,GAAyD,OAAOvS,KAAK89D,YAAYvrD,YAAYvS,KAAKgjE,SAAU,CAEhH,YAAIlnB,GACA,IAAK97C,KAAKs1D,YACN,MAAM,IAAIz1D,MAAM,+DAEpB,OAAOG,KAAKs1D,YAAYlwC,IAAI8zC,UAAUxmC,MACjCrwB,QAAQ+gE,GAA2DA,EAAiBnjE,KAAOD,KAAKyjD,cAAa,GAGtH,mBAAI4f,GAA6B,OAAOrjE,KAAKsjE,gBAAiB,CAG9D,qBAAIC,GACA,OAAOvjE,KAAK89D,YAAY5E,YAAY72D,QAAQgF,GACjB,aAAvBA,EAAEkL,YAAYnW,MACdiL,EAAEohB,YACFphB,EAAEohB,aAAezoB,KAAKyjD,cAG9B,yBAAI+f,GACA,GAAKxjE,KAAKyjD,YAGV,OAAOzjD,KAAKujE,kBAAkBlhE,QAAQohE,GAAUA,eAAAA,EAAuBJ,kBAAiB,GAG5F,UAAIj+D,GACA,IAAKpF,KAAKonD,SACN,MAAM,IAAIvnD,MAAM,4DAGpB,IAAI2+C,EAAMx+C,KAAKonD,SAASqJ,OAAO92C,MAAMkkC,GAAMA,EAAE59C,KAAOD,KAAKi6C,MAMzD,OALKuE,GAAOx+C,KAAKs1D,aAAet1D,KAAK87C,UAAY97C,KAAKwjE,wBAElDhlB,EAAMx+C,KAAKwjE,sBAAsBp+D,QAG9Bo5C,EAGX,WAAInhD,aACA,OAAmD,QAA5CqkE,EAAwB,QAAxB91D,EAAA5L,KAAK0jE,uBAAmB,IAAA93D,EAAAA,EAAW,QAAX4vC,EAAAx7C,KAAKoF,cAAM,IAAAo2C,OAAA,EAAAA,EAAEn+C,eAAO,IAAAqkE,EAAAA,EAAI,CAAE,EAG7D,SAAIx8D,GAAkB,OAAOlF,KAAK2jE,MAAO,CAEzC,sBAAIC,GAAgC,OAAO5jE,KAAK6jE,mBAAoB,CAEpE,cAAIp7C,GAAuB,OAAOzoB,KAAKyjD,WAAY,CAEnD,cAAI+V,GAAwB,OAAOx5D,KAAK8jE,WAAY,CAEpD,qBAAIC,GAA+B,OAAQ/jE,KAAK8jE,WAAY,CAE5D,OAAInrB,GACA,OAAO34C,KAAKgkE,aAGhB,mBAAIC,GACA,OAAOjkE,KAAKgkE,aAGT,cAAAE,CAAe14D,GAOlB,OANAqvD,GAASrvD,EAAUxL,KAAK+9D,kBACpB/9D,KAAKgkE,cACL19D,YAAW,KACPtG,KAAK2Q,UAAUvE,QAAQ,WAAYpM,KAAK,GACzC,GAEAA,KAAK2Q,UAAUpF,IAAI,WAAYC,GAGnC,UAAAw2D,CAAWx2D,GACd,OAAOxL,KAAKkkE,eAAe14D,GAGxB,SAAA24D,CAAU34D,GAEb,OADAqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,UAAWC,GAKlC,SAAA44D,GACH,OAAO,IAAIt+D,SAAQ,CAACC,EAAS6H,KAEzB,MAAMhK,EAAS5D,KAAKoF,OACpB,GAAIxB,EAEA,YADAmC,EAAQnC,GAKZ,MAAMqzC,EAAO,CAAC3rC,EAAelG,KACrBkG,GACAsC,EAAOtC,GAGPlG,GACAW,EAAQX,GAGZkB,YAAW,KACP6N,aAAaD,GACb4O,GAAO,GACR,EAAE,EAGT9iB,KAAKg2B,QAAQtV,MAAM,8BAA8B1gB,KAAKi6C,iBACtD,MACM/lC,EAAU5N,YAAW,KACvBtG,KAAKg2B,QAAQtV,MAAM,kBAAkB1gB,KAAKi6C,gCAC1ChD,EAAK,IAAIp3C,MAAM,iCAAiCG,KAAKi6C,OAAO,GAC7DoqB,KAEGvhD,EAAQ9iB,KAAKonD,SAASkd,eAAezmB,IACnCA,EAAE59C,KAAOD,KAAKi6C,MACdj6C,KAAKg2B,QAAQtV,MAAM,kBAAkB1gB,KAAKi6C,gBAC1ChD,OAAK9yC,EAAW05C,MAEtB,IAIH,eAAAwjB,CAAgB1uC,GACnB3yB,KAAK0jE,gBAAkB/wC,EAAMwvC,QAC7BniE,KAAK2jE,OAAShxC,EAAM8rC,MACpBz+D,KAAK6jE,qBAAsB,EACvBlxC,EAAM6vC,YAAmC,KAArB7vC,EAAM6vC,aAC1BxiE,KAAKyjD,YAAc9wB,EAAM6vC,WACzBxiE,KAAK6jE,qBAAsB,GAE/B7jE,KAAKsjE,iBAAmB3wC,EAAM8vC,iBACzBziE,KAAKyjD,aAAezjD,KAAK0jE,iBAAmB1jE,KAAK0jE,gBAAgBj7C,aAClEzoB,KAAKyjD,YAAczjD,KAAK0jE,gBAAgBj7C,YAE5CzoB,KAAK8jE,YAAc/lE,QAAQiC,KAAKyjD,aAEhCzjD,KAAKukE,2BAA2B5xC,GAG7B,0BAAA4xC,CAA2B5xC,GAC9B,IAAKA,EAAM+vC,WACP,OAGJ,MAAM8B,EAAoD7xC,EAAM+vC,WAC5D8B,GAAgBA,EAAa9mE,OAAS,IAAM88C,GAAkBgqB,EAAa,MAC3ExkE,KAAKgkE,aAAeQ,EAAa,IAIlC,IAAAr0D,GACH,OAAO,IAAIrK,SAAQ,CAACC,EAAS6H,KACzB,IAAI62D,EAAczkE,KAAKi6C,IACnBj6C,KAAKqjE,kBACLoB,EAAczkE,KAAKyoB,YAEvB,MAAMhL,EAAczd,KAAK89D,YAAYG,mBAAmBj1D,IAChDA,EAAS/I,KAAOwkE,IAChBzkE,KAAKg2B,QAAQtV,MAAM,oBAAoB+jD,aACvChnD,IACA1X,QAIR/F,KAAKg2B,QAAQtV,MAAM,6BAA6B1gB,KAAKi6C,OACrDj6C,KAAK+/C,KAAKl5B,OP9MmB,0BOgNzB,CACIy6C,KAAMthE,KAAKgjE,SACXV,GAAItiE,KAAKi6C,KAEb,OACA,CACIpd,cAAem+B,GACfl8B,wBAAyBk8B,KAE5BvtD,MAAK,KAC4B,cAA1BzN,KAAK89D,YAAYnV,OACjB3oD,KAAK89D,YAAY4G,sBAAsB,CACnCpD,KAAMthE,KAAKgjE,SACXV,GAAItiE,KAAKC,KAGb8F,QAGPvD,OAAOuJ,GAAa6B,EAAO7B,IAAK,IAItC,QAAAw4C,GACH,OAAOvkD,KAAK+/C,KAAKl5B,OPvOoB,8BOuO2B,CAAEy6C,KAAMthE,KAAKgjE,SAAUV,GAAItiE,KAAKi6C,KAAO,OAAQ,CAC3Gpd,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,IAAA/jB,GAGHj3C,KAAK2Q,UAAUlE,QAEfzM,KAAKmjE,qCACLnjE,KAAKkjE,8BAGF,UAAAyB,GACH,OAAO7+D,QAAQC,QAAQ/F,KAAK3C,SAGzB,eAAMunE,GAKT,aAJqB5kE,KAAK+/C,KAAKl5B,OPzPb,kBOyPyC,CAAE8N,QAAS,eAAgB2sC,KAAMthE,KAAKgjE,SAAUV,GAAItiE,KAAKi6C,KAAO,OAAQ,CAC/Hpd,cAAem+B,GACfl8B,wBAAyBk8B,MAEfx7B,UCvQR,MAAOqlC,GAMjB,WAAAtoE,CACWosD,EACC5I,EACAuV,EACAlO,EACApxB,EACA8uC,EACA/G,GAND/9D,KAAI2oD,KAAJA,EACC3oD,KAAI+/C,KAAJA,EACA//C,KAAWs1D,YAAXA,EACAt1D,KAAQonD,SAARA,EACApnD,KAAOg2B,QAAPA,EACAh2B,KAAe8kE,gBAAfA,EACA9kE,KAAc+9D,eAAdA,EAXJ/9D,KAAK+kE,MAAuC,CAAE,EAC9C/kE,KAAUglE,WAAmB,GAC7BhlE,KAAS2Q,UAAqB9D,KAc/B7M,KAAAilE,kBAAoBn9D,MAAOq5D,IAC9B,MAAMv6C,EAAO,CACTs6C,GAAI,CACAC,UAAMh9D,IAIV7F,MAAMC,QAAQ4iE,KACdv6C,EAAKs6C,GAAK,CACNC,SAQR,aALqBnhE,KAAK+/C,KAAKl5B,OAAO6zC,GAA2B9zC,EAAM,OAAQ,CAC3EiW,cAAem+B,GACfl8B,wBAAyBk8B,MAGfx7B,SAAS4hC,YAAY,EAGhCphE,KAAAuS,YAAejV,UAClB,YAAIsO,EAAA5L,KAAK+9D,uCAAkBjD,cAA+B,iBAATx9D,GAAqBm9C,GAAmBn9C,GACrF,MAAM,IAAIuC,MAAM,yBAGpB,OAAOG,KAAK+kE,MAAMznE,EAAK,EAGpB0C,KAAYohE,aAAG,IACXxkE,OAAOC,KAAKmD,KAAK+kE,OAAO39D,KAAKpG,GAAchB,KAAK+kE,MAAM/jE,KAG1DhB,KAASk5D,UAAG,IACRl5D,KAAKglE,WAAW59D,KAAKC,GAAMA,IAG/BrH,KAAaklE,cAAG,KACnB,MAAMv/D,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,IAAIA,EAMG,CACH,MAAM6vC,EAAax1C,KAAK+/C,KAAK/2C,SAASA,SACtC,OAAOhJ,KAAKglE,WAAWrrD,MAAMtS,GAAMA,EAAEpH,KAAOu1C,IAP5C,GAAIx1C,KAAK8kE,iBAAmB,EAAG,CAE3B,MAAMtvB,EAAa7vC,EAASgwC,cAC5B,OAAO31C,KAAKglE,WAAWrrD,MAAMtS,GAAMA,EAAEpH,KAAOu1C,IAMpC,EAGbx1C,KAAgBmlE,iBAAG,WACtB,GAAInlE,KAAK+/C,KAAK/2C,SACV,eAAO4C,EAAA5L,KAAKuS,YAAYvS,KAAK+/C,KAAK/2C,SAASuQ,gCAAoBvZ,KAAKuS,YAAYvS,KAAK+/C,KAAK/2C,SAASuJ,cAIpGvS,KAAAolE,wBAA2BC,IAC9B,MAAMC,EAActlE,KAAKohE,eACrBkE,EAAY5nE,OAAS,GACrB4nE,EAAYlmE,SAASurC,IACjB,MAAMrtC,EAAOqtC,EAAKrtC,KACI+nE,EAAQ1rD,MAAMtS,GAAMA,EAAEi6D,OAAS32B,EAAKrtC,QAGtD0C,KAAKulE,iBAAiB,CAAEjE,KAAMhkE,OAI1C+nE,EAAQjmE,SAASurC,IACS26B,EAAY3rD,MAAMtS,GAAMA,EAAE/J,OAASqtC,EAAK22B,QAG1DthE,KAAKwlE,eAAe76B,KAE1B,EAGC3qC,KAAAylE,8BAAiCC,IACpC,MAAMC,EAAmB3lE,KAAKk5D,YAC1ByM,EAAiBjoE,OAAS,GAC1BioE,EAAiBvmE,SAASurC,IACtB,MAAM1qC,EAAK0qC,EAAK1qC,GACMylE,EAAa/rD,MAAMtS,GAAMA,EAAEi7D,KAAOriE,KAGpDD,KAAK0kE,sBAAsB,CAAEpD,KAAM32B,EAAKp4B,YAAYjV,KAAMglE,GAAIriE,OAI1EylE,EAAatmE,SAASurC,IACIg7B,EAAiBhsD,MAAMtS,GAAMA,EAAEpH,KAAO0qC,EAAK23B,MAG7DtiE,KAAKuiE,sBAAsB53B,KAEjC,EAGC3qC,KAAAwlE,eAAkB7yC,IACrB,MAAM1yB,EAAKD,KAAK4lE,UAAUjzC,GAC1B3yB,KAAKg2B,QAAQtV,MAAM,cAAczgB,KACjCD,KAAK+kE,MAAM9kE,GAAM,IAAI49D,GAAgB79D,KAAMC,EAAID,KAAK+/C,KAAM//C,KAAKg2B,QAASh2B,KAAK+9D,gBAC7E,MAAMI,EAAMn+D,KAAK6lE,oBAAoBlzC,GAErC3yB,KAAK2Q,UAAUvE,QAAQ,WAAY+xD,GAEnCn+D,KAAK2Q,UAAUvE,QAAQ,eAAgB+xD,EAAI,EAGxCn+D,KAAA8lE,iBAAoBnzC,IAGvB,MAAMwrC,EAAMn+D,KAAK6lE,oBAAoBlzC,GAErC3yB,KAAK2Q,UAAUvE,QAAQ,aAAc+xD,EAAI,EAGtCn+D,KAAAulE,iBAAoB5yC,IACvB,MAAM1yB,EAAKD,KAAK4lE,UAAUjzC,GAC1B3yB,KAAKg2B,QAAQtV,MAAM,gBAAgBzgB,KACnC,MAAMk+D,EAAMn+D,KAAKuS,YAAYtS,GAG7BD,KAAKglE,WAAahlE,KAAKglE,WAAW3iE,QAAQgF,GAAMA,EAAEkL,YAAYjV,OAAS6gE,EAAI7gE,cAEpE0C,KAAK+kE,MAAM9kE,GAElBD,KAAK2Q,UAAUvE,QAAQ,aAAc+xD,EAAI,EAItCn+D,KAAA+lE,eAAkBpzC,IACrB,MAAM1yB,EAAKD,KAAK4lE,UAAUjzC,GACpBwrC,EAAMn+D,KAAKgmE,eAAe/lE,GAChCk+D,EAAIkD,gBAAgB1uC,GAEhBwrC,EAAIuB,UACJ1/D,KAAK2Q,UAAUvE,QAAQ,eAAgB+xD,GAEvCn+D,KAAK2Q,UAAUvE,QAAQ,iBAAkB+xD,IAI1Cn+D,KAAAuiE,sBAAyB5vC,IAC5B3yB,KAAKg2B,QAAQtV,MAAM,eAAeiS,EAAM2uC,QAAQ3uC,EAAM2vC,MAEtD,MAAMriE,EAAKD,KAAKimE,eAAetzC,GACzB/sB,EAAU5F,KAAKkmE,oBAAoBvzC,GAEnC3pB,EAAW,IAAI+5D,GAAa9iE,EAAI2F,EAAS5F,KAAMA,KAAK+/C,KAAM//C,KAAKs1D,YAAat1D,KAAKonD,SAAUpnD,KAAKg2B,SAAS,EAAOh2B,KAAK+9D,gBAO3H,OALA/9D,KAAKmmE,yBAAyBn9D,EAAU2pB,GAExC3yB,KAAKglE,WAAW9kE,KAAK8I,GAErBhJ,KAAK2Q,UAAUvE,QAAQ,kBAAmBpD,GACnCA,CAAQ,EAGZhJ,KAAA0kE,sBAAyB/xC,IAC5B3yB,KAAKg2B,QAAQtV,MAAM,oBAAoBiS,EAAM2uC,QAAQ3uC,EAAM2vC,MAE3D,MAAMriE,EAAKD,KAAKimE,eAAetzC,GACzB/sB,EAAU5F,KAAKkmE,oBAAoBvzC,GACnC3pB,EAAWhJ,KAAKomE,oBAAoBnmE,EAAI2F,GAE9C5F,KAAKglE,WAAahlE,KAAKglE,WAAW3iE,QAAQgF,IAAOrH,KAAKqmE,eAAeh/D,EAAGpH,EAAI2F,KAE5E5F,KAAK2Q,UAAUvE,QAAQ,kBAAmBpD,GAC1CA,EAASiuC,MAAM,EAGZj3C,KAAAsmE,6BAAgC3zC,IACnC3yB,KAAKg2B,QAAQtV,MAAM,iCAAiCiS,EAAM2uC,QAAQ3uC,EAAM2vC,MAExE,MAAMriE,EAAKD,KAAKimE,eAAetzC,GACzB/sB,EAAU5F,KAAKkmE,oBAAoBvzC,GACnC3pB,EAAWhJ,KAAKomE,oBAAoBnmE,EAAI2F,GAE9CoD,EAASu7D,2BAA2B5xC,GAEpC3yB,KAAK2Q,UAAUvE,QAAQ,yBAA0BpD,EAAS,EAGvDhJ,KAAAumE,0BAA6B5zC,IAEhC,MAAM1yB,EAAKD,KAAKimE,eAAetzC,GACzB/sB,EAAU5F,KAAKkmE,oBAAoBvzC,GAEnC3pB,EAAW,IAAI+5D,GAAa9iE,EAAI2F,OAASzB,OAAWA,OAAWA,OAAWA,EAAWnE,KAAKg2B,SAD5E,EACkGh2B,KAAK+9D,gBAE3H/9D,KAAKmmE,yBAAyBn9D,EAAU2pB,GAExC3yB,KAAK2Q,UAAUvE,QAAQ,sBAAuBpD,EAAS,EAGpDhJ,KAAAwmE,sBAAyB7zC,IAE5B,MAAM1yB,EAAKD,KAAKimE,eAAetzC,GACzBwrC,EAAMn+D,KAAKkmE,oBAAoBvzC,GAC/B3pB,EAAWhJ,KAAKomE,oBAAoBnmE,EAAIk+D,GAE9Cn+D,KAAKmmE,yBAAyBn9D,EAAU2pB,EAAM,EAI3C3yB,KAAAg+D,kBAAqBxyD,IACxBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,kBAAmBC,EAAUxL,KAAKglE,aAGzDhlE,KAAAymE,sBAAyBj7D,IAC5BqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,sBAAuBC,IAG9CxL,KAAAi+D,kBAAqBzyD,IACxBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,kBAAmBC,IAG1CxL,KAAA0mE,kBAAqBl7D,IACxBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,kBAAmBC,IAG1CxL,KAAAiiE,yBAA4Bz2D,IAC/BqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,yBAA0BC,IAGjDxL,KAAA2mE,WAAcn7D,IACjBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,WAAYC,EAAU5O,OAAOD,OAAOqD,KAAK+kE,SAGhE/kE,KAAAk+D,aAAgB1yD,IACnBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,aAAcC,IAGrCxL,KAAAq+D,eAAkB7yD,IACrBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,eAAgBC,IAGvCxL,KAAAw+D,iBAAoBhzD,IACvBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,iBAAkBC,IAGzCxL,KAAAo+D,aAAgB5yD,IACnBqvD,GAASrvD,EAAUxL,KAAK+9D,kBACjB/9D,KAAK2Q,UAAUpF,IAAI,aAAcC,IAGpC,cAAAw6D,CAAe/lE,GACnB,MAAM2D,EAAS5D,KAAKuS,YAAYtS,GAChC,IAAK2D,EACD,MAAM/D,MAAM,eAAeI,eAE/B,OAAO2D,EAGH,SAAAgiE,CAAUjzC,GACd,OAAOA,EAAM2uC,KAGT,cAAA+E,CAAer9D,EAAgD/I,EAAY2F,GAC/E,OAAOoD,EAAS/I,KAAOA,GAAM+I,EAASuJ,YAAYjV,OAASsI,EAGvD,uBAAAghE,CAAwB3mE,EAAY2F,GACxC,OAAO5F,KAAKglE,WAAW3iE,QAAQgF,GAAMrH,KAAKqmE,eAAeh/D,EAAGpH,EAAI2F,KAAU,GAGtE,mBAAAwgE,CAAoBnmE,EAAY2F,GACpC,MAAMhC,EAAS5D,KAAK4mE,wBAAwB3mE,EAAI2F,GAChD,IAAKhC,EACD,MAAM/D,MAAM,oBAAoBI,eAEpC,OAAO2D,EAGH,cAAAqiE,CAAetzC,GACnB,OAAOA,EAAM2vC,GAGT,mBAAA4D,CAAoBvzC,GACxB,OAAOA,EAAM2uC,KAGT,mBAAAuE,CAAoBlzC,GACxB,MAAM1yB,EAAKD,KAAK4lE,UAAUjzC,GAC1B3yB,KAAKg2B,QAAQtV,MAAM,wBAAwBzgB,MAAO4G,KAAKC,UAAU6rB,MACjE,MAAMwrC,EAAMn+D,KAAKgmE,eAAe/lE,GAIhC,OAFAk+D,EAAIkD,gBAAgB1uC,GAEbwrC,EAGH,wBAAAgI,CAAyBn9D,EAAwB2pB,GACrD3yB,KAAKg2B,QAAQtV,MAAM,0BAA4B1gB,KAAKimE,eAAetzC,GAAS,YAAc3yB,KAAKkmE,oBAAoBvzC,IACnH3pB,EAASq4D,gBAAgB1uC,ICxUjC,SAASmJ,GAAU3sB,EAAuB4sB,EAAsCC,GAC5E,MAAM3I,EAAcjH,MACNA,GAAOA,EAAI7vB,aAAe6vB,EAAIxhB,MAAQwhB,EAAItgB,OAGxD,OAAKunB,EAAW0I,IAAqB1I,EAAW2I,IAI3C3I,EAAW0I,GAIJ1I,EAAW2I,KACnBA,EAAgB,QAJhBD,EAAkB,OASf5sB,EAAQ1B,KAAKsuB,EAAiBC,IAb1B7sB,CAcf,CAEc,MAAO03D,GAKjB,WAAAtqE,CACYwjD,GAAA//C,KAAI+/C,KAAJA,EAJJ//C,KAAS2Q,UAAqB9D,KAC9B7M,KAAmB8mE,qBAAG,EAQvB9mE,KAAA+mE,qBAAwB/jC,IAC3BhjC,KAAK2Q,UAAUvE,QAAQ,gBAAiB42B,EAAO,EAG5ChjC,KAAAgnE,uBAA0BxiC,IAC7BxkC,KAAK2Q,UAAUvE,QAAQ,kBAAmBo4B,EAAS,EAGhDxkC,KAAAinE,UAAY,CAAC3uD,EAAmChN,IAC5CwwB,GACH97B,KAAKknE,WT3C+B,kCS6C/BxiE,GAAqEA,EAAE86B,SAAS2nC,SAErF7uD,EACAhN,GAIDtL,KAAAonE,YAAc,CAAC9uD,EAAmEhN,IAS9EwwB,GARS97B,KAAKknE,WTjDQ,uBSmDxBxiE,IACG,MAAMwwB,EAAMxwB,EAAE86B,SAAS6nC,SACvB,OAAOzqE,OAAOC,KAAKq4B,GAAK9tB,KAAKpK,GAAQk4B,EAAIl4B,IAAK,IAI5Bsb,EAAShN,GAGhCtL,KAAAsnE,iBAAmB,CAAChvD,EAA+DhN,IAO/EwwB,GANS97B,KAAKknE,WT5Da,4BS8D7BxiE,GAAMA,EAAE86B,SAAS+nC,aAClBpjE,GAGsBmU,EAAShN,GAGhCtL,KAASwnE,UAAG,CAAC/+B,EAAgBnwB,EAAmChN,IAO5DwwB,GANS97B,KAAKknE,WT1EmB,kCS4EnCxiE,GAAMA,EAAE86B,SAASioC,eAClB,CAAEN,OAAQ1+B,IAGYnwB,EAAShN,GAGhCtL,KAAgB0nE,iBAAG,CAAC1kC,EAAgB1qB,EAAmChN,IAOnEwwB,GANS97B,KAAKknE,WT/Ea,4BSiF7BxiE,GAAMA,EAAE86B,SAASioC,eAClB,CAAEF,OAAQvkC,IAGY1qB,EAAShN,GAGhCtL,KAAA2nE,YAAc,CAACrvD,EAA+DhN,IAE1EwwB,GADS97B,KAAKknE,WT5FI,mBS6FC5uD,EAAShN,GAGhCtL,KAAwB4nE,yBAAG,CAACC,EAAevvD,EAAwChN,IAO/EwwB,GANS97B,KAAKknE,WACjBY,IACCpjE,GAAMA,EAAE86B,SAASuoC,aAClB,CAAE98C,SAAU48C,IAGUvvD,EAAShN,GAGhCtL,KAA8BgoE,+BAAG,CAACH,EAAe7kC,EAAgB1qB,EAAwChN,IAMrGwwB,GALS97B,KAAKknE,WACjBY,IACCpjE,GAAMA,EAAE86B,SAASuoC,aAClB,CAAE98C,SAAU48C,EAAON,OAAQvkC,IAEL1qB,EAAShN,GAGhCtL,KAAIioE,KAAG,CAAC/7C,EAAc5T,EAAqChN,IAOvDwwB,GANS97B,KAAKknE,WACjBgB,IACCxjE,GAAMA,EAAE86B,SAAS2oC,QAClB,CAAEl9C,SAAUiB,IAGU5T,EAAShN,GAGhCtL,KAAUooE,WAAG,CAACl8C,EAAc8W,EAAgB1qB,EAAqChN,IAO7EwwB,GANS97B,KAAKknE,WACjBgB,IACCxjE,GAAMA,EAAE86B,SAAS2oC,QAClB,CAAEl9C,SAAUiB,EAAMq7C,OAAQvkC,IAGJ1qB,EAAShN,GAGhCtL,KAAAqoE,kBAAqB78D,GACjBxL,KAAK2Q,UAAUpF,IAAI,kBAAmBC,GAG1CxL,KAAAsoE,gBAAmB98D,GACfxL,KAAK2Q,UAAUpF,IAAI,gBAAiBC,GAGxCxL,KAAA0oD,KAAQ3kD,GACJ/D,KAAKknE,WTzJc,mBS2JtB,KACAnjE,GAID/D,KAAAuoE,eAAkB/8D,IACrBxL,KAAKwoE,iBACExoE,KAAK2Q,UAAUpF,IAAI,iBAAkBC,IAGzCxL,KAAAyoE,QAAW1kE,GACP/D,KAAKknE,WTpKa,kBSsKrB,KACAnjE,GAmBA/D,KAAUknE,WAAG,CACjBpiD,EACA4jD,EACA9hD,KAEAA,EAAOA,GAAQ,CAAE,EACV,IAAI9gB,SAAQ,CAACC,EAAS6H,KAEzB5N,KAAK+/C,KAAKl5B,OAAO/B,EAAQ8B,EAAM,OAAQ,CACnCiW,cAAem+B,GACfl8B,wBAAyBk8B,KAExBvtD,MAAM7J,IACE8kE,IACDA,EAAqB1xC,GAAsDA,EAAEwI,UAEjFz5B,EAAQ2iE,EAAkB9kE,GAAQ,IAErCpB,OAX4D8I,GAAUsC,EAAOtC,IAW5D,KAjCtB,cAAAk9D,GACCxoE,KAAK8mE,sBACN9mE,KAAK+/C,KAAK7Z,ST9KgB,wBS8KiBp+B,MAAO8e,IAC9C,IACI,MAAMpa,QAAgB1G,QAAQsf,IAAIplB,KAAK2Q,UAAUvE,QAAQ,iBAAkBwa,IAE3E,MAAO,CAAE+hD,QADOn8D,EAAQo5B,MAAMgjC,GAAMA,EAAED,WAExC,MAAOr9D,QAIbtL,KAAK8mE,qBAAsB,ICrLhC,MAAM+B,GAAiC,qCA2BjCC,GAET,WAAAvsE,CAAoBiqB,GAAAxmB,KAAOwmB,QAAPA,EAGb,MAAAuiD,CAAO5H,EAAgDxY,GAC1D,IAAKwY,IAAS7iE,MAAMC,QAAQ4iE,GACxB,OAAOr7D,QAAQ8H,OAAO,IAAI/N,MAAM,0EAEpC,GAAI8oD,GAAiB,YAATA,GAA+B,UAATA,EAC9B,OAAO7iD,QAAQ8H,OAAO,IAAI/N,MAAM,2DAIpC,MAAM80B,EAAiC,CACnCA,QAAS,SACT/N,KAAM,CACFu6C,OACAxY,KALRA,EAAOA,QAAAA,EAAQ,YAQf,OAAO3oD,KAAKwmB,QAAQK,OAAiDgiD,GAAgCl0C,EAAS,OAAQ,CAClHkI,cAAem+B,GACfl8B,wBAAyBk8B,KAExBvtD,MAAMm7D,GAAMA,EAAEppC,WAGhB,SACH,OAAOx/B,KAAKwmB,QAAQK,OAA6BgiD,GAAgC,CAAEl0C,QAAS,UAAY,OAAQ,CAC5GkI,cAAem+B,GACfl8B,wBAAyBk8B,KAExBvtD,MAAMm7D,GAAMA,EAAEppC,SAAS2hC,OAGzB,MAAAl7B,CAAOk4B,GACV,IAAKA,GAAsB,iBAARA,EACf,OAAOr4D,QAAQ8H,OAAO,IAAI/N,MAAM,+CAEpC,MAAM80B,EAAiC,CACnCA,QAAS,SACT/N,KAAM,CACFu6C,KAAM,CAAChD,KAGf,OAAOn+D,KAAKwmB,QAAQK,OAAagiD,GAAgCl0C,EAAS,OAAQ,CAC9EkI,cAAem+B,GACfl8B,wBAAyBk8B,KAC1BvtD,MAAMm7D,GAAMA,EAAEppC,WAGd,KAAA/yB,GAIH,OAAOzM,KAAKwmB,QAAQK,OAAagiD,GAHK,CAClCl0C,QAAS,SAE6D,OAAQ,CAC9EkI,cAAem+B,GACfl8B,wBAAyBk8B,KAC1BvtD,MAAMm7D,GAAMA,EAAEppC,WAGd,YAAAwpC,CAAa1rE,EAAc8lB,GAI9B,OAHKA,IACDA,EAAM,sBAEH,CACH9lB,OACAlB,KAAM,SACN8I,MAAO5H,EACP2rE,QAAS,CACL7lD,SC7FD,IAAA8lD,GAAC1hE,IAEZ,IAAKA,EACD,MAAM3H,MAAM,kBAGhB,IAAK2H,EAAOmxC,IACR,MAAM94C,MAAM,yBAGhB,MAAMspE,EAA+C,YAC/CC,EAA+C,YAG/CzgB,EAAyCnhD,EAAOmhD,MAAQwgB,EAC9D,GAAIxgB,IAASwgB,GAAcxgB,IAASygB,GAHW,SAGGzgB,EAE9C,MAAM,IAAI9oD,MAAM,qCAAqC8oD,sBAGzD,MAAMhR,EAAanwC,EAAOmwC,WACpBgB,EAAMnxC,EAAOmxC,IACbxrC,EAAS3F,EAAO2F,OAChByuC,EAAUp0C,EAAOo0C,QACvB,IAAItf,EAA+B,CAAE,EACrC,MAAM+sC,EAAa,IAAIxE,GAAelc,EAAMhQ,EAAKhB,EAAYiE,EAASzuC,EAAO6S,UAAU,gBAAiBxY,EAAOuyD,gBAAgB,IAAMz9B,IAC/HgtC,EAAe,IAAIzC,GAAiBluB,GAE1C,IAAI1F,EACJ,GAAI0V,IAASwgB,EACTl2B,EC9BM,SAAmBzsB,EAAuC6iD,GACpE,OAAO,IAAIvjE,SAAuB,CAACC,EAAS6H,KACxC4Y,EAAQK,OAAoCo6C,GAAoC,CAAEsI,UAAU,GAAQ,OAAQ,CACxG1sC,cAAem+B,GACfl8B,wBAAyBk8B,KAExBvtD,MAAMumC,UACH,MAAMxlC,EAAOwlC,EAASxU,SAChBlD,EAAmD,QAAnC1wB,EAAAooC,EAASxU,SAASlD,qBAAiB,IAAA1wB,EAAAA,EAAA,CAAE,EACtD4C,GACDzI,EAAQu2B,GAGZ,MAAM8kC,EAAe5yD,EAAK4yD,aACrBA,GACDr7D,EAAQu2B,GAGZq+B,GAAayG,GAAch6D,KAAKujC,GAAS0+B,EAAW7D,eAAe76B,KAEnE5kC,EAAQu2B,EAAc,IAEzB95B,OAAOuJ,GAAe6B,EAAO,IAAI/N,MAAM,uCAAuCkM,EAAIwB,aAAY,GAE3G,CDMuBi8D,CAAS7wB,EAAK0wB,OAC1B,CACH,MAAMhwC,EE/BA,SAAiCsf,EAAmCyoB,EAA8BkI,EAAgCG,GAC5I,IAAIpwC,EACAqwC,GAAY,EA8FhB,MAAO,CACHnI,MA9FU,KACV,IAAIoI,EACAC,EAEJ,MAAMC,EAAgB,IAAI/jE,SAAuB,CAACC,EAAS6H,KACvD+7D,EAAc5jE,EACd6jE,EAAah8D,CAAM,IA8EvB,OA3EA+qC,EAAI5f,UAAU+wC,GAA4B,CAAEv9D,UAAW,CAAEg9D,SAAUE,GAAa5sC,cAAe,MAC1FpvB,MAAMzK,IACHq2B,EAAer2B,EACfq2B,EAAa8U,QAAQ47B,UACjB,MAAMC,EAAcD,EAAWv7D,KACzB8tB,EAAoC,QAApB1wB,EAAAo+D,EAAO1tC,qBAAa,IAAA1wB,EAAAA,EAAI,CAAE,EAE1Cq+D,EAA0CtP,GAAaqP,EAAyC,oBAClGD,EAAWv7D,KAAK07D,WAChB9I,EAAagE,wBAAwB6E,GAErCA,EAA4B7qE,SAASurC,GAAmBy2B,EAAaoE,eAAe76B,KAGxFgwB,GAAaqP,EAA2C,sBACnD5qE,SAASurC,GAAmBy2B,EAAa0E,iBAAiBn7B,KAE/DgwB,GAAaqP,EAA2C,sBACnD5qE,SAASurC,GAAmBy2B,EAAamE,iBAAiB56B,KAE/DgwB,GAAaqP,EAAyC,oBACjD5qE,SAASurC,GAAmBy2B,EAAa2E,eAAep7B,KAE7D,MAAMw/B,EAAiDxP,GAAaqP,EAA2C,sBA0B/G,GAxBID,EAAWv7D,KAAK07D,WAChB9I,EAAaqE,8BAA8B0E,GAE3CA,EAA8B/qE,SAASurC,GAAwBy2B,EAAamB,sBAAsB53B,KAGtGgwB,GAAaqP,EAA+C,0BACvD5qE,SAASurC,GAAwBy2B,EAAamF,0BAA0B57B,KAE7EgwB,GAAaqP,EAA2C,sBACnD5qE,SAASurC,GAAwBy2B,EAAasD,sBAAsB/5B,KAEzEgwB,GAAaqP,EAA2C,sBACnD5qE,SAASurC,GAAwBy2B,EAAaoF,sBAAsB77B,KAEzEgwB,GAAaqP,EAAkD,6BAC1D5qE,SAASurC,GAAwBy2B,EAAakF,6BAA6B37B,KAEhFgwB,GAAaqP,EAAsC,iBAC9C5qE,SAASurC,GAA6C2+B,EAAavC,qBAAqBp8B,KAE7FgwB,GAAaqP,EAAyC,oBACjD5qE,SAASurC,GAA+C2+B,EAAatC,uBAAuBr8B,MAE5F++B,EAAW,CACZA,GAAY,EACZ,MAAMU,EAAqBH,EAA4BrkC,MAAM7mC,GAAMA,EAAEuiE,OAAS3oB,EAAI3vC,SAASuJ,cACrF83D,EAA0BF,EAA8BvkC,MAAMv+B,GAAMA,EAAEi7D,KAAO3pB,EAAI3vC,SAASA,WAChG,GAAIohE,EACA,GAAIC,EACAV,EAAYrtC,OACT,CACH,MAAMpD,EAAKkoC,EAAapD,mBAAmB32D,IACnCA,EAAEpH,KAAO04C,EAAI3vC,SAASA,WACtBkwB,IACAywC,EAAYrtC,YAKxBqtC,EAAYrtC,OAKxBjD,EAAaoV,UAAU1iC,GAAa69D,EAAW79D,IAAK,IAGvDvJ,OAAOuJ,IAAc,IAAAH,EAAC,OAAAg+D,EAAW,yBAAyBE,mBAAsD,QAAXl+D,EAAAG,EAAIwB,eAAO,IAAA3B,EAAAA,EAAI/E,KAAKC,UAAUiF,KAAO,IAExI89D,CAAa,EAWpB15D,KARS,KACLkpB,GACAA,EAAarrB,SAQzB,CFrE6Bs8D,CAAoB3xB,EAAK0wB,EAAYC,EAAc3gB,IAASygB,GACjFn2B,EAAe5Z,EAAakoC,QAqDhC,MAlD6C,CACzCx+C,MAAO,IAAMkwB,EAAaxlC,MAAMmM,IAAQ0iB,EAAgB1iB,CAAC,IAEzDwnD,aAAciI,EAAWjI,aACzB7uD,YAAa82D,EAAW92D,YACxB0yD,kBAAmBoE,EAAWpE,kBAE9B0B,WAAY0C,EAAW1C,WACvBzI,aAAcmL,EAAWnL,aACzBE,aAAciL,EAAWjL,aACzBC,eAAgBgL,EAAWhL,eAC3BG,iBAAkB6K,EAAW7K,iBAE7BtF,UAAWmQ,EAAWnQ,UACtB,cAAIqR,GACA,OAAOlB,EAAWnE,eACrB,EACD,iBAAIsF,GACA,OAAOnB,EAAWlE,kBACrB,EAEDnH,kBAAmBqL,EAAWrL,kBAC9BC,kBAAmBoL,EAAWpL,kBAC9ByI,kBAAmB2C,EAAW3C,kBAC9BD,sBAAuB4C,EAAW5C,sBAElCQ,UAAWqC,EAAarC,UACxBG,YAAakC,EAAalC,YAC1BE,iBAAkBgC,EAAahC,iBAC/BM,yBAA0B0B,EAAa1B,yBACvCI,+BAAgCsB,EAAatB,+BAE7CN,iBAAkB4B,EAAa5B,iBAC/BF,UAAW8B,EAAa9B,UAExBG,YAAa2B,EAAa3B,YAE1BM,KAAMqB,EAAarB,KACnBG,WAAYkB,EAAalB,WAEzBC,kBAAmBiB,EAAajB,kBAEhC3f,KAAM4gB,EAAa5gB,KACnB+f,QAASa,EAAab,QAEtBF,eAAgBe,EAAaf,eAE7BkC,SAAU,IAAI3B,GAAcnwB,GAGtB,EG1Fd,MAAM+xB,GAAoB,sBA8MX,IAAAC,GAAA,UAvMf,WAAApuE,GAKYyD,KAAA4qE,sBAAuD,IAAI18C,IAC3DluB,KAAW6qE,aAAG,EAEf,IAAA7mE,CAAK+P,EAAoB4kC,EAA+BxrC,GAC3DnN,KAAK8qE,UAAY/2D,EACjB/T,KAAK+/C,KAAOpH,EACZ34C,KAAKg2B,QAAU7oB,EAEfnN,KAAK+qE,yBAGF,UAAAC,CAAW9yD,EAAkBjO,GAChC,MAAMiD,EAAmC,CACrCjD,WAGJ,OAAOjK,KAAK8qE,UAAUG,eAAe/yD,EAAUhL,GAG5C,cAAAg+D,CAAehzD,EAAkBhT,EAAeimE,GACnDnrE,KAAKorE,gBAAgBlmE,EAAOimE,GAC5B,MAAMj+D,EAAmC,CACrCm+D,SAAU,CACNnmE,QACA4W,UAAW,SACXqvD,QAASnrE,KAAKsrE,gBAAgBpzD,EAAU,SAAUhT,EAAOimE,KAIjE,OAAOnrE,KAAK8qE,UAAUG,eAAe/yD,EAAUhL,GAG5C,cAAAq+D,CAAerzD,EAAkBhT,GACpC,MAAMgI,EAAmC,CACrCm+D,SAAU,CACNnmE,QACA4W,UAAW,SACXqvD,QAAS,KAMjB,OAFAnrE,KAAKwrE,qBAAqBtzD,EAAUhL,EAASm+D,SAASvvD,UAAW5W,GAE1DlF,KAAK8qE,UAAUG,eAAe/yD,EAAUhL,GAG5C,aAAAu+D,CAAcvzD,EAAkBwzD,EAAuBP,GAC1DnrE,KAAKorE,gBAAgBM,EAAeP,GACpC,MAAMj+D,EAAmC,CACrCm+D,SAAU,CACNnmE,MAAOwmE,EACP5vD,UAAW,SACXqvD,QAASnrE,KAAKsrE,gBAAgBpzD,EAAU,SAAUwzD,EAAeP,KAIzE,OAAOnrE,KAAK8qE,UAAUG,eAAe/yD,EAAUhL,GAG5C,aAAAy+D,CAAczzD,EAAkBwzD,EAAuBP,GAC1D,MAAMj+D,EAAmC,CACrCm+D,SAAU,CACNnmE,MAAOwmE,EACP5vD,UAAW,SACXqvD,QAASnrE,KAAKsrE,gBAAgBpzD,EAAU,SAAUwzD,EAAeP,KAIzE,OAAOnrE,KAAK8qE,UAAUG,eAAe/yD,EAAUhL,GAG5C,gBAAM0+D,CAAW1zD,EAAkB2zD,GACtC,MAAMV,EAA6D,GAE7DW,SADsB9rE,KAAK+rE,oBAAoB7zD,IACf8zD,WAAWryD,MAAM0xD,GAAaA,EAASnmE,QAAU2mE,IAevF,OAdIC,GACAA,EAAgBX,QAAQ/rE,SAASwK,IAC7B,MAAMqiE,EAAiBjsE,KAAKksE,kBAAkBtiE,EAAOuiE,YACjDF,IACAriE,EAAO4B,SAAWygE,EAAezgE,UAErC2/D,EAAQjrE,KAAK,CACTy/D,KAAM/1D,EAAO+1D,KACbn0D,SAAU5B,EAAO4B,SACjB4gE,oBAAqBxiE,EAAOwiE,oBAC5BC,mBAAoBziE,EAAOyiE,oBACsB,IAGtDvmE,QAAQC,QAAQolE,GAGpB,mBAAAY,CAAoB7zD,GACvB,OAAOlY,KAAK8qE,UAAUwB,YAAYp0D,GAG9B,eAAAozD,CAAgBpzD,EAAkB4D,EAAmB4vD,EAAuBP,GAChF,OAAOA,EAAQ/jE,KAAKwC,IAChB,MAAM2iE,EAAe,CACjB5M,KAAM/1D,EAAO+1D,KACbn0D,SAAU5B,EAAO4B,SACjB2gE,WAAYx9D,GAAMmuD,aAClBsP,oBAAqBxiE,EAAOwiE,oBAC5BC,mBAAoBziE,EAAOyiE,mBAC3BvwD,aAKJ,OAFA9b,KAAKwrE,qBAAqBtzD,EAAU4D,EAAW4vD,EAAea,GAEvDA,CAAY,IAInB,oBAAAf,CAAqBtzD,EAAkB4D,EAAmB4vD,EAAuBa,SACrF,MAAMC,EAAoB,GAAGd,KAAiBxzD,IAC9C,GAAkB,WAAd4D,EAAwB,CACnB9b,KAAK4qE,sBAAsB34D,IAAIu6D,IAChCxsE,KAAK4qE,sBAAsBp/C,IAAIghD,EAAmB,IAGtBxsE,KAAK4qE,sBAAsBl4C,IAAI85C,GACvCtsE,KAAK,CACzBisE,WAAYI,EAAaJ,WACzB3gE,SAAU+gE,EAAa/gE,gBAGxB,GAAkB,WAAdsQ,EACP,GAAIywD,EAAc,CACd,IAAIE,EAA2E,QAAjD7gE,EAAA5L,KAAK4qE,sBAAsBl4C,IAAI85C,UAAkB,IAAA5gE,EAAAA,EAAI,GACnF6gE,EAA0BA,EAAwBpqE,QAAQqqE,GAAWA,EAAOP,aAAeI,EAAaJ,aACjE,IAAnCM,EAAwB/uE,OACxBsC,KAAK4qE,sBAAsB+B,OAAOH,GAElCxsE,KAAK4qE,sBAAsBp/C,IAAIghD,EAAmBC,QAGtDzsE,KAAK4qE,sBAAsB+B,OAAOH,GAKtC,sBAAAzB,GACJ,IAAI/qE,KAAK6qE,YAAT,CAGA7qE,KAAK6qE,aAAc,EAEnB,IACI7qE,KAAK+/C,KAAK7Z,SAASwkC,IAAmB,CAAC9jD,EAAWkmB,KAC9C,MAAMm/B,EAAiBjsE,KAAKksE,kBAAkBtlD,EAAKulD,YACnD,GAAIF,EACA,IACIA,EAAezgE,WACjB,MAAO9G,GACL1E,KAAKg2B,QAAQ1qB,MAAM,wDAAyD5G,OAI1F,MAAOA,GAEL,OADA1E,KAAKg2B,QAAQ1qB,MAAM,6BAA6Bo/D,8CAA8DhmE,GACvGoB,QAAQ8H,OAAOlJ,KAItB,iBAAAwnE,CAAkBC,GACtB,IAAIS,EAOJ,MANA,IAAI5sE,KAAK4qE,sBAAsBjuE,UAAUyC,SAAS4L,IAC9C,MAAMQ,EAAWR,EAAU2O,MAAMkzD,GAAQA,EAAIV,aAAeA,IACxD3gE,IACAohE,EAAiBphE,MAGlBohE,EAGH,eAAAxB,CAAgBC,EAAkBF,GACtC,KAAMA,GAAWA,EAAQztE,OAAS,GAC9B,MAAM,IAAImC,MAAM,aAAawrE,mCAGjCF,EAAQ/rE,SAASwK,IACb,IAAKA,EAAOwiE,oBACR,MAAM,IAAIvsE,MAAM,aAAawrE,6DAEjC,IAAKzhE,EAAOyiE,mBACR,MAAM,IAAIxsE,MAAM,aAAawrE,4DAEjC,IAAKzhE,EAAO4B,SACR,MAAM,IAAI3L,MAAM,aAAawrE,gEC9C9B,IAAAyB,GAAA,UAlJX,WAAAvwE,GAPiByD,KAA4B+sE,6BAAW,IAChD/sE,KAAQonD,SAAqC,CAAE,EAC/CpnD,KAAegtE,gBAAqC,CAAE,EACtDhtE,KAAqBitE,sBAA0C,CAAE,EAKrEjtE,KAAK2Q,UAAYu8D,KAGd,IAAAlpE,CAAKmJ,GACRnN,KAAKg2B,QAAU7oB,EAIZ,GAAAulB,CAAIzyB,GACP,OAAOD,KAAKonD,SAASnnD,IAAOD,KAAKgtE,gBAAgB/sE,GAI9C,UAAAktE,CAAWltE,GACd,OAAOD,KAAKonD,SAASnnD,GAGzB,QAAWwwD,GACP,OAAOzwD,KAAKonD,SAGT,GAAA77C,CAAInG,EAAuBnG,QACiC,IAAxCe,KAAKgtE,gBAAgB5nE,EAAO2iC,IAAI9nC,IAEnDD,KAAKg2B,QAAQ1qB,MAAM,gCAAgClG,EAAO2iC,IAAI9nC,8CAIlED,KAAKgtE,gBAAgB5nE,EAAO2iC,IAAI9nC,IAAMmF,EACtCpF,KAAKitE,sBAAsB7nE,EAAO2iC,IAAI9nC,IAAMhB,EAE5Ce,KAAK2Q,UAAUvE,QAAQ,WAAYhH,GAE/BpF,KAAKotE,sBAAsBnuE,IAC3Be,KAAKqtE,gBAAgBjoE,EAAO2iC,IAAI9nC,KAIjC,MAAAgmC,CAAO7gC,UACHpF,KAAKonD,SAAShiD,EAAO2iC,IAAI9nC,WACzBD,KAAKgtE,gBAAgB5nE,EAAO2iC,IAAI9nC,WAChCD,KAAKitE,sBAAsB7nE,EAAO2iC,IAAI9nC,IAC7CD,KAAK2Q,UAAUvE,QAAQ,aAAchH,GAGlC,kBAAAkoE,CAAmBp1D,GACtB,MAAMq1D,EAAoBvtE,KAAKitE,sBAAsB/0D,QAEpB,IAAtBq1D,IAIXA,EAAkBC,YAAa,EAE3BxtE,KAAKotE,sBAAsBG,IAC3BvtE,KAAKqtE,gBAAgBn1D,IAItB,0BAAAu1D,CAA2B3kC,GAC9B,MAAM5wB,EAAW4wB,EAAQf,IAAI9nC,GAEvBstE,EAAoBvtE,KAAKitE,sBAAsB/0D,QAEpB,IAAtBq1D,IAIXA,EAAkBG,oBAAqB,EAEnC1tE,KAAKotE,sBAAsBG,IAC3BvtE,KAAKqtE,gBAAgBn1D,IAItB,OAAAy1D,CAAQ1tE,GACX,OAAO,IAAI6F,SAAQ,CAACC,EAAS6H,KAEzB,IAAIggE,EACAC,EAEJ,MAAM35D,EAAU5N,YAAW,KACvBsnE,IACAC,IACAjgE,EAAO,IAAI/N,MAAM,mBAAmBI,2BAA4BD,KAAK+sE,8CAA8C,GACpH/sE,KAAK+sE,8BAEFvuB,EAAMx+C,KAAKonD,SAASnnD,GAC1B,GAAIu+C,EACArqC,aAAaD,GACbnO,EAAQy4C,OACL,CACH,MAAMsvB,EAAU,KACZ35D,aAAaD,GACb05D,IACAC,GAAW,EAEfD,EAAU5tE,KAAK+tE,eAAelwB,IACtBA,EAAE9V,IAAI9nC,KAAOA,IAGjB6tE,IACA/nE,EAAQ83C,GAAE,IAIdgwB,EAAY7tE,KAAK8iE,WAAWjlB,IACpBA,EAAE9V,IAAI9nC,KAAOA,IAGjB6tE,IACAlgE,EAAO,IAAI/N,MAAM,mBAAmBI,0CAA0C,QAMvF,aAAA8tE,CAAcviE,GACjB,OAAOxL,KAAK2Q,UAAUpF,IAAI,WAAYC,GAGnC,OAAAwiE,CAAQxiE,GACX,OAAOxL,KAAK2Q,UAAUpF,IAAI,WAAYC,GAGnC,SAAAs3D,CAAUt3D,GACb,OAAOxL,KAAK2Q,UAAUpF,IAAI,aAAcC,GAIrC,eAAA6hE,CAAgBn1D,GACflY,KAAKgtE,gBAAgB90D,KACrBlY,KAAKonD,SAASlvC,GAAYlY,KAAKgtE,gBAAgB90D,UACxClY,KAAKgtE,gBAAgB90D,UACrBlY,KAAKitE,sBAAsB/0D,IAGtClY,KAAK2Q,UAAUvE,QAAQ,WAAYpM,KAAKonD,SAASlvC,IAG7C,qBAAAk1D,CAAsBG,GAC1B,OAAOA,GAAqBA,EAAkBC,YAAcD,EAAkBxqD,OAASwqD,EAAkBG,qBCvJnG,MAAOO,GAIjB,WAAA1xE,CAAoB2b,EAAkBokB,GAAlBt8B,KAAQkY,SAARA,EAChBlY,KAAKkuE,eAAiB5xC,EAAcp3B,MAGjC,IAAAurD,GACH,OAAOka,GAAgBiB,WAAW5rE,KAAKkY,SAAUlY,KAAKkuE,gBAGnD,MAAA1gD,CAAO29C,GACV,OAAOR,GAAgBc,cAAczrE,KAAKkY,SAAUlY,KAAKkuE,eAAgB/C,GAGtE,MAAAllC,CAAOklC,GACV,OAAOR,GAAgBgB,cAAc3rE,KAAKkY,SAAUlY,KAAKkuE,eAAgB/C,IChBnE,MAAOgD,GAEjB,WAAA5xE,CAAoB2b,GAAAlY,KAAQkY,SAARA,EAGb,IAAAu4C,GACH,OAAOzwD,KAAKouE,gBAGT,MAAA5gD,CAAOtoB,EAAeimE,GACzB,OAAOR,GAAgBO,eAAelrE,KAAKkY,SAAUhT,EAAOimE,GAGzD,MAAAllC,CAAO/gC,GACV,OAAOylE,GAAgBY,eAAevrE,KAAKkY,SAAUhT,GAGlD,UAAMyU,CAAKzU,GAEd,aADyBlF,KAAKouE,iBACZz0D,MAAM00D,GAAQA,EAAInpE,QAAUA,IAG1C,mBAAMkpE,GACV,MAAMxqE,EAAsD,GAS5D,aAP4B+mE,GAAgBoB,oBAAoB/rE,KAAKkY,WACvD8zD,WAAW5sE,SAASisE,IAC9BznE,EAAO1D,KAAK,CACRgF,MAAOmmE,EAASnmE,MAChBimE,QAAS,IAAI8C,GAAgBjuE,KAAKkY,SAAUmzD,IAC9C,IAECznE,GChCD,MAAO0qE,GAIjB,WAAA/xE,CAAoB2b,GAAAlY,KAAQkY,SAARA,EAChBlY,KAAKuuE,YAAc,IAAIJ,GAAmBj2D,GAG9C,cAAI8zD,GACA,OAAOhsE,KAAKuuE,YAGT,eAAMC,GAET,aAD4B7D,GAAgBoB,oBAAoB/rE,KAAKkY,WAChDjO,QAGlB,UAAA+gE,CAAW/gE,GACd,OAAO0gE,GAAgBK,WAAWhrE,KAAKkY,SAAUjO,ICCzD,IAAAwkE,GAAe,CAACxuE,EAAY8D,EAAmCgQ,EAAoB5G,EAAqCuhE,EAAyDC,EAAuDC,EAAoDj2B,iBACxR,MAAMhoC,EAA8Bu8D,KAC9B2B,EAAc,KAChB,MAAMC,EAAWF,IACjB,IAAKE,EACD,MAAM,IAAIjvE,MAAM,+HAEpB,OAAOivE,CAAQ,EAGb70B,EAAMh6C,EACNoB,EAAgB0C,EAAQzG,KACxByxE,EAA6ChrE,EAAQ4kD,KAC3D,IAAIqmB,EAA2CjrE,EAAQ4gD,OACnDsqB,EAAelrE,EAAQqf,IACvBugD,EAAiB5/D,EAAQmB,MACzB26C,EAA+B,QAAfj0C,EAAA7H,EAAQ1G,eAAO,IAAAuO,EAAAA,EAAI,CAAE,EACrCsjE,EAAsBnrE,EAAQi7C,WAC9BmwB,EAAkBprE,EAAQygD,MAC1B4qB,EAA4C,QAAlB5zB,EAAAz3C,EAAQsrE,kBAAU,IAAA7zB,EAAAA,EAAI,CAAE,EAClD8zB,EAAmBvrE,EAAQwrE,QAC3BC,EAAiCzrE,EAAQ0rE,qBACzCC,EAA+B3rE,EAAQ4rE,mBACvCC,EAA8B7rE,EAAQ8rE,kBACtCC,EAA2B/rE,EAAQgsE,eACnCC,EAA+C,QAArBtO,EAAA39D,EAAQksE,qBAAa,IAAAvO,GAAAA,EAC/CwO,EAAqDnsE,EAAQmJ,SACjE,MAAMijE,EAAmBpsE,EAAQwV,gBAGjC,IAqBI62D,EArBAC,EAAsBtsE,EAAQsgD,UAG9BisB,EAAqBvsE,EAAQwsE,SAG7BC,EAAwBzsE,EAAQ0sE,YAGhCC,EAAqD3sE,EAAQ9E,MAG7D0xE,EAAsB5sE,EAAQ6sE,WAC9BC,EAAoB9sE,EAAQ+sE,SAE5BC,EAAmBhtE,EAAQitE,QAE3BC,EAAqBltE,EAAQmtE,SAC7BC,EAA+BptE,EAAQqtE,mBACvCC,EAAqBttE,EAAQutE,SAK7BC,EAA2E,QAApBv4C,EAAAj1B,EAAQytE,oBAAY,IAAAx4C,EAAAA,EAAI,GAG/Ey4C,EAAc1tE,EAAQ2tE,WAEtBC,EAAiE5tE,EAAQ6tE,kBAE7E,MAAMC,EAAsB,IAAIvD,GAASruE,GAiJzC,SAAS6xE,EAAWntB,EAAkDrsC,EAAsEhN,GACxI,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAIzd,GAAuB+G,GACvB,MAAM,IAAI9kD,MAAM,2DAEpB,OAAOkU,EAAS+9D,WAAWE,GAAcrtB,EAAO,GACjDrsC,EAAShN,GAkMhB,SAAS84C,EAAW6tB,EAAuB35D,EAAsEhN,GAC7G,OAAOymE,GAAM1W,oBAAmB,IACrBtnD,EAASqwC,WAAW4tB,GAAcC,IAC1C35D,EAAShN,GA2WhB,SAAS4mE,EAAe1mE,GACpB,OAAO2mE,EAAY,gBAAiB3mE,GAiFxC,SAAS2mE,EAAYn1E,EAAawO,EAAoB4mE,GAClD,IAAK7yB,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,+BAGpB,OAAO8Q,EAAUpF,IAAIvO,EAAKwO,EAAU4mE,GA2WxC,SAASC,EAAyBC,GAC9B,MAAMvzB,EAAYqwB,EAAYkD,GAC9B,QAAyB,IAAdvzB,EACP,OAAmCA,EAZpBjiD,QAAmD,CAACC,EAAMw1E,KACzE,MAAMntE,EAAS0nE,GAAYp6C,IAAI6/C,GAI/B,OAHIntE,GACArI,EAAKmD,KAAKkF,EAAO2iC,KAEdhrC,CAAI,GACZ,IAUP,SAASy1E,UACL,GAAIrC,EACA,OAAOA,EAEX,GAAItwB,EAAS4yB,kBACT,OAAO5yB,EAAS4yB,kBAEpB,GAAI5yB,GAAYA,EAAS6yB,MAAQ7yB,EAAS6yB,KAAKngE,YAC3C,OAAOstC,EAAS6yB,KAAKngE,YAEzB,MAAMzB,EAAO6hE,IACb,GAAI7hE,GAAQA,EAAKyI,gBACb,OAAOzI,EAAKyI,gBAIhB,MAAM8vD,EAAaqF,IACnB,GAAIrF,EAAY,CACZ,MAAMrgE,EAAWqgE,EAAWnQ,YAAYv/C,MAAMtS,GAAMpH,IAAOoH,EAAEpH,KAC7D,GAAI+I,EACA,OAA2B,UAApBA,EAASuJ,mBAAW,IAAA3G,OAAA,EAAAA,EAAEtO,MAOzC,SAASq1E,IACL,GAAsB,oBAAXvtE,QAA0BA,OAAOO,UAAYP,OAAOO,SAASgtE,cAAe,CACnF,MAAM7hE,EAAO1L,OAAOO,SAASgtE,cAAc1yE,GAC3C,OAAK6Q,QACD,GAWZ,MAAMkhE,GAAyD,CAC3D,MAAI/xE,GACA,OAAOg6C,CACV,EACD,QAAI38C,GACA,OAAO+D,CACV,EACD,eAAIkR,GACA,MAAM82D,EAAaqF,IACb9oE,EAAU4sE,IAChB,GAAI5sE,GAAWyjE,EACX,OAAOA,EAAW92D,YAAY3M,EAErC,EACD,gBAAIgtE,GACA,OAAO7+D,EAAS6+D,YACnB,EACD,mBAAI3O,GACA,MAAMj7D,EAAW2vC,EAAIrb,UAAU3jB,MAAM3W,GAAMA,EAAEkV,WAAalY,KAAKC,KAC/D,GAAI+I,EACA,OAAOA,EACJ,CACH,MAAMpD,EAAU4sE,IAChB,GAAI5sE,EACA,MAAO,CAAE2M,YAAa3M,GAGjC,EACD,eAAIitE,GACA,OAAOb,GAAa/N,eACvB,EACD,OAAI7gD,GACA,OAAO6rD,CACV,EACD,SAAI/pE,GACA,OAAOy+D,CACV,EACD,yBAAIjN,GACA,OAAOwZ,CACV,EACD,YAAIhjE,GACA,OAAOgjE,CACV,EACD,cAAIU,GACA,MAA+B,QAAxB7B,EAAM/pE,cAA0B2rE,OAAcxsE,CACxD,EACD,YAAI2sE,GACA,MAA+B,QAAxB/B,EAAM/pE,cAA0B6rE,OAAY1sE,CACtD,EACD,WAAI6sE,GACA,OAAOD,CACV,EACD,gBAAIS,GACA,OAAOD,EAAczyE,MAAK,CAACg0E,EAAIC,IAAOD,EAAGxtD,MAAQytD,EAAGztD,OACvD,EACD,QAAIqjC,GACA,OAAOomB,CACV,EACD,SAAI9vE,GACA,OAAOyxE,CACV,EACD,eAAID,GACA,OAAOD,CACV,EACD,aAAInsB,GACA,OAAOgsB,CACV,EACD,YAAIa,GACA,OAAOD,CACV,EACD,WAAI5zE,GAEA,OAAOwiD,CACV,EACD,UAAI8E,GACA,OAAOqqB,CACV,EACD,aAAIgE,GACA,OAAO9C,EAAU8C,SACpB,EACD,aAAIC,GACA,OAAO/C,EAAU+C,SACpB,EACD,YAAIC,GACA,OAAOhD,EAAUgD,QACpB,EACD,YAAIC,GACA,OAAOjD,EAAUiD,QACpB,EACD,aAAIC,GACA,OAAOjE,CACV,EACD,cAAInwB,GACA,OAAOkwB,CACV,EACD,UAAImE,GACA,YAA2BlvE,IAApB6tE,GAAa/xE,EACvB,EACD,SAAIqzE,GACA,OAAOlD,CACV,EACD,WAAIb,GACA,OAAOD,CACV,EACD,YAAIiB,GACA,OAAOD,CACV,EACD,iBAAIiD,GACA,OAAOlB,EAAyB,MACnC,EACD,kBAAImB,GACA,OAAOnB,EAAyB,OACnC,EACD,mBAAIoB,GACA,OAAOpB,EAAyB,QACnC,EACD,oBAAIqB,GACA,OAAOrB,EAAyB,SACnC,EACD,wBAAI5C,GACA,OAAOD,CACV,EACD,cAAI/mD,GACA,GAAIo3B,EAAS6yB,KACT,OAAO7yB,EAAS6yB,KAAKjqD,WAEzB,MAAM3X,EAAO6hE,IACb,OAAK7hE,EAGEA,EAAK2X,gBAHZ,CAIH,EACD,oBAAIiiC,GACA,GAAI7K,EAAS6yB,KACT,OAAO7yB,EAAS6yB,KAAKhoB,iBAEzB,MAAM55C,EAAO6hE,IACb,OAAK7hE,EAGEA,EAAK45C,sBAHZ,CAIH,EACD,cAAInP,GACA,OAAOx3C,EAAQw3C,YAAc,UAChC,EACD,cAAIm2B,GACA,OAAOD,CACV,EACD,UAAIkC,GACA,GAAsB,oBAAXvuE,QAA0BA,OAAOO,SAExC,OAAOosE,GAAMxW,WAAWyW,GAAartB,OAASv/C,OAAOO,SAAiBiuE,SAG7E,EACD,qBAAIhC,GACA,OAAOh1E,OAAOymB,OAAO,CAAE,EAAEsuD,EAC5B,EACD,YAAIkC,GACA,OAAOhC,CACV,EACD,sBAAIT,GACA,OAAOD,CACV,EACD,YAAIG,GACA,OAAOD,CACV,EACDyC,SAvpCJ,SAAkBx7D,EAAsEhN,GACpF,OAAOymE,GAAM1W,oBAAmB,IACP,cAAjBqV,EACO5qE,QAAQC,QAAQisE,IAEpBj+D,EAAS+/D,SAAS9B,KAC1B15D,EAAShN,IAkpCZyoE,QA/oCJ,SAAiBz7D,EAAsEhN,GACnF,OAAOymE,GAAM1W,oBAAmB,IACP,WAAjBqV,EACO5qE,QAAQC,QAAQisE,IAEpBj+D,EAASggE,QAAQ/B,KACzB15D,EAAShN,IA0oCZ0oE,SAvoCJ,SAAkB17D,EAAsEhN,GACpF,OAAOymE,GAAM1W,oBAAmB,IACP,cAAjBqV,EACO5qE,QAAQC,QAAQisE,IAEpBj+D,EAASigE,SAAShC,KAC1B15D,EAAShN,IAkoCZ2oE,gBAhqCJ,SAAyB37D,EAAsEhN,GAC3F,OAAOymE,GAAM1W,oBAAmB,IACrBtnD,EAASkgE,gBAAgBjC,KACjC15D,EAAShN,IA8pCZ4oE,SAhoCJ,SAAkB57D,EAAsEhN,GACpF,OAAOymE,GAAM1W,oBAAmB,IACxBmV,EACO1qE,QAAQC,QAAQisE,IAEpBj+D,EAASmgE,SAASlC,KAC1B15D,EAAShN,IA2nCZ6oE,OAxnCJ,SAAgB77D,EAAsEhN,GAClF,OAAOymE,GAAM1W,oBAAmB,IACvBmV,EAGEz8D,EAASogE,OAAOnC,IAFZlsE,QAAQC,QAAQisE,KAG5B15D,EAAShN,IAmnCZ8oE,eAhnCJ,SAAwB97D,EAAsEhN,GAC1F,OAAOymE,GAAM1W,oBAAmB,IACrBtnD,EAASqgE,eAAepC,KAChC15D,EAAShN,IA8mCZk5C,MA7qCJ,SAAelsC,EAAsEhN,GACjF,OAAOymE,GAAM1W,oBAAmB,IACxB8T,EACOrpE,QAAQC,QAAQisE,IAEpBj+D,EAASywC,MAAMwtB,KACvB15D,EAAShN,IAwqCZi5C,SAvrCJ,SAAkBjsC,EAAsEhN,GACpF,OAAOymE,GAAM1W,oBAAmB,IACxB8T,EACOrpE,QAAQC,QAAQisE,IAEpBj+D,EAASwwC,SAASytB,KAC1B15D,EAAShN,IAkrCZwmE,aACAuC,SA9vCJ,SAAkBC,EAAkBh8D,EAAsEhN,GACtG,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAIzd,GAAuB02B,GACvB,MAAM,IAAIz0E,MAAM,6CAEpB,OAAIy0E,IAAa3Q,EACN79D,QAAQC,QAAQisE,IAEpBj+D,EAASsgE,SAASrC,GAAcsC,EAAS,GACjDh8D,EAAShN,IAsvCZipE,SAt0CJ,SAAkBzT,EAA6CxoD,EAAsEhN,GACjI,OAAOymE,GAAM1W,oBAAmB,KAC5B,IAAKyF,GAAuC,IAA9BlkE,OAAOC,KAAKikE,GAAOpjE,QAAgBd,OAAOC,KAAKikE,GAAOjrC,OAAO74B,IAASA,IAChF,MAAM,IAAI6C,MAAM,4BAA8BgH,KAAKC,UAAUg6D,IAEjE,GAAIA,QAAyB38D,IAAhB28D,EAAMtc,MAAqB,CACpC,GAA2B,kBAAhBsc,EAAMtc,MACb,MAAM,IAAI3kD,MAAM,+EACO,IAAhBihE,EAAMtc,OAEbn5C,QAAQ+M,KAAK,oCAGrB,GAAI0oD,QAA0B38D,IAAjB28D,EAAM7B,QAAgD,kBAAjB6B,EAAM7B,OACpD,MAAM,IAAIp/D,MAAM,oDAEpB,IAAK,MAAM+hC,IAAQ,CAAC,YAAa,YAAa,WAAY,YAAa,CACnE,MAAM4yC,EAAa1T,EACbxkE,EAAQk4E,EAAW5yC,GACzB,GAAIA,KAAQk/B,EAAO,CACf,GAAIljB,GAAuBthD,GAAQ,QACxBk4E,EAAW5yC,GAClB,SAEJ,IAAK6yC,GAAcD,EAAW5yC,IAC1B,MAAM,IAAI/hC,MAAM,IAAI+hC,wBAIhC,OAAO7tB,EAASwgE,SAASvC,GAAclR,EAAM,GAC9CxoD,EAAShN,IAyyCZopE,SA1xCJ,SAAkBC,EAA2Br8D,EAAsEhN,GAC/G,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAqB,iBAAVsZ,GACP,GAAc,WAAVA,EACA,MAAM,IAAI90E,MAAM,4CAEjB,GAAqB,kBAAV80E,EACd,MAAM,IAAI90E,MAAM,kDAEpB,OAAOkU,EAAS2gE,SAAS1C,GAAc2C,EAAM,GAC9Cr8D,EAAShN,IAixCZspE,aAvyCJ,SAAsBC,EAAiDv8D,EAAsEhN,GACzI,OAAOymE,GAAM1W,oBACT,IAAMtnD,EAAS6gE,aAAa5C,GAAc6C,IAC1Cv8D,EACAhN,IAoyCJwpE,WAhyCJ,WACI,OAAO/gE,EAAS+gE,WAAW9C,KAgyC3B+C,mBAhxCJ,SAA4BC,EAAuD18D,EAAsEhN,GACrJ,OAAOymE,GAAM1W,oBAAmB,KAC5B,IAAK2Z,GAAep4E,OAAOC,KAAKm4E,GAAan/C,OAAOv5B,QAAoB6H,IAAV7H,IAC1D,MAAM,IAAIuD,MAAM,gEAEpB,OAAOkU,EAASghE,mBAAmB/C,GAAcgD,EAAY,GAC9D18D,EAAShN,IA2wCZ2pE,mBAxwCJ,WACI,OAAOlhE,EAASkhE,mBAAmBjD,KAwwCnCkD,SA91CJ,SAAkBC,EAAgBC,EAA2H9pE,GACzJ,GAAiC,mBAAtB8pE,EACP,OAAOrD,GAAM1W,oBAAmB,KAC5B,GAAIga,GAAwBF,GACxB,MAAM,IAAIt1E,MAAM,2CAEpB,OAAOkU,EAASmhE,SAASlD,GAAcmD,EAAO,GAC/CC,EAAmB9pE,GAE1B,GAAI+pE,GAAwBF,GACxB,MAAM,IAAIt1E,MAAM,2CAEpB,IAAIu1E,aAAiB,EAAjBA,EAAmBlhE,UAAgD,iBAA9BkhE,EAAkBlhE,QACvD,MAAM,IAAIrU,MAAM,2CAEpB,OAAOkU,EAASmhE,SAASlD,GAAcmD,EAAQC,IAg1C/CE,eAztCJ,SAAwBC,EAAiDj9D,EAAsEhN,GAC3I,OAAOymE,GAAM1W,oBAAmB,KAC5B,QAA0B,IAAfka,GAAiE,IAAnC34E,OAAOC,KAAK04E,GAAY73E,OAC7D,MAAM,IAAImC,MAAM,iCAEpB,GAAIw1E,GAAwBE,EAAWC,UACnC,MAAM,IAAI31E,MAAM,6CAEpB,GAAIw1E,GAAwBE,EAAWE,aACnC,MAAM,IAAI51E,MAAM,gDAEpB,OAAOkU,EAASuhE,eAAetD,GAAcuD,EAAW,GACzDj9D,EAAShN,IA8sCZoqE,kBA3sCJ,SAA2BF,EAAkBl9D,EAAsEhN,GAC/G,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAIga,GAAwBG,GACxB,MAAM,IAAI31E,MAAM,6CAEpB,OAAOkU,EAAS2hE,kBAAkB1D,GAAcwD,EAAS,GAC1Dl9D,EAAShN,IAssCZ84C,aACAuxB,KAAM,IAAMvxB,GAAW,GACvBwxB,KAAM,IAAMxxB,GAAW,GACvByxB,OAzhCJ/tE,eAAsBguE,GAIlB,OAHIA,GAMR,SAAiCA,GAC7B,GAAuB,iBAAZA,EACP,MAAMj2E,MAAM,mDAEhB,IAAKi2E,EAAQzZ,WAAayZ,EAAQ5Z,YAC9B,MAAMr8D,MAAM,kDAVZk2E,CAAwBD,GAErB/hE,EAAS8hE,OAAO7D,GAAc8D,IAshCrC9nE,MAp3CJ,SAAegoE,EAAoH1qE,GAC/H,YAA2B,IAAhB0qE,GAAsD,mBAAhBA,EACtCjE,GAAM1W,oBAAmB,KAC5B,IAAKp7D,EACD,MAAM,IAAIJ,MAAM,iCAEpB,OAAOkU,EAAS/F,MAAMgkE,GAAa,GACpCgE,EAAa1qE,GAETyI,EAAS/F,MAAMgkE,GAAcgE,IA42CxCC,KA3nCJ,SAActxE,EAA2D2tE,EAAkGh6D,EAAsEhN,GAC7O,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAIzd,GAAuBj5C,GACvB,MAAM,IAAI9E,MAAM,sCAAwD,iBAAX8E,EAAsBA,EAASkC,KAAKC,UAAUnC,MAG/G,GAAsB,iBAAXA,EAAqB,CAC5B,MAAM65C,EAAMsuB,GAAYp6C,IAAI/tB,GAC5B,IAAK65C,EACD,MAAM,IAAI3+C,MAAM,+DAA+D8E,KAEnFA,EAAS65C,EAAIzW,IAQjB,MANyB,iBAAduqC,IACPA,EAAY,CACRA,YACA4D,WAAW,IAGZniE,EAASkiE,KAAKjE,GAAcrtE,EAAQ2tE,EAAU,GACtDh6D,EAAShN,IAwmCZ6qE,WA7gCJ,SAAoBC,GAChB,OAAOriE,EAASoiE,WAAWnE,GAAcoE,IA6gCzCC,WA1gCJ,WACI,OAAOtiE,EAASsiE,WAAWrE,KA0gC3BtxB,cAvgCJ,SAAuBrjD,EAAcib,EAAsEhN,GACvG,OAAOymE,GAAM1W,oBAAmB,KAC5B,IAAKtE,GAAc15D,GACf,MAAM,IAAIwC,MAAM,4CAGpB,OAAOkU,EAAS2sC,cAAcsxB,GAAc30E,GAAS,EAAM,GAC5Dib,EAAShN,IAigCZgrE,KA9/BJ,SAAch+D,EAAsEhN,GAChF,OAAOymE,GAAM1W,oBAAmB,IACrBtnD,EAASuiE,KAAKtE,KACtB15D,EAAShN,IA4/BZirE,OAz/BJ,SAAgBj+D,EAAsEhN,GAClF,OAAOymE,GAAM1W,oBAAmB,IACrBtnD,EAASwiE,OAAOvE,KACxB15D,EAAShN,IAu/BZkrE,QAp/BJ,SAAiBl+D,EAAkChN,GAC/C,OAAOymE,GAAM1W,oBAAmB,IACrBtnD,EAASyiE,QAAQxE,KACzB15D,EAAShN,IAk/BZmrE,QA/+BJ,SAAiBC,EAAqBp+D,EAAsEhN,GACxG,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAIga,GAAwBqB,GACxB,MAAM,IAAI72E,MAAM,6CAEpB,OAAOkU,EAAS0iE,QAAQzE,GAAc0E,EAAY,GACnDp+D,EAAShN,IA0+BZ82C,cAv+BJ,SAAuBpD,EAAoB1mC,EAAsEhN,GAC7G,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAIga,GAAwBr2B,GACxB,MAAM,IAAIn/C,MAAM,2CAEpB,OAAOkU,EAASquC,cAAc4vB,GAAchzB,EAAW,GACxD1mC,EAAShN,IAk+BZqrE,cAt9BJ7uE,eAA6B8uE,GACzB,GAAIvB,GAAwBuB,GACxB,MAAM,IAAI/2E,MAAM,IAAI+2E,oCAExB,OAAO7iE,EAAS4iE,cAAc3E,GAAc4E,IAm9B5CC,cAh9BJ/uE,iBACI,OAAOiM,EAAS8iE,cAAc7E,KAg9B9B8E,UA/mCJ,SAAmBC,EAAwDC,EAAsD1+D,EAAsEhN,GACnM,OAAOymE,GAAM1W,oBAAmB,WAC5B,MAAMnuB,EAAe,oHACrB,GAAI0Q,GAAuBm5B,GAAM,CAC7B,MAAMjV,EAAS,GAAG50B,KAA+B,iBAAR6pC,EAAmBA,EAAMlwE,KAAKC,UAAUiwE,KACjF,MAAM,IAAIl3E,MAAMiiE,GAGpB,IAAImV,EACJ,GAAmB,iBAARF,GAEP,GADAE,EAAqC,QAAtBrrE,EAAAkhE,GAAYp6C,IAAIqkD,UAAM,IAAAnrE,OAAA,EAAAA,EAAAm8B,IACjC6V,GAAuBq5B,GAAe,CACtC,MAAMnV,EAAS,GAAG50B,KAAwC,iBAAjB+pC,EAA4BA,EAAepwE,KAAKC,UAAUmwE,KACnG,MAAM,IAAIp3E,MAAMiiE,QAEjB,IAAKlkB,GAAuBm5B,EAAI92E,IAGnC,MAAM,IAAIJ,MAAMqtC,GAFhB+pC,EAAeF,EAInB,MAAMG,EAAwD,CAAE,EAUhE,OATKt5B,GAAuBo5B,KACL,iBAARA,EACPE,EAAc/qE,MAAQ6qE,GAEtBE,EAAcC,SAAWH,EAAIG,SAC7BD,EAAc/qE,MAAQ6qE,EAAI7qE,QAI3B4H,EAAS+iE,UAAU9E,GAAciF,EAAcC,EAAc,GACrE5+D,EAAShN,IAilCZ8rE,UA9kCJ,SAAmBJ,EAA8C,GAAI1+D,EAAsEhN,GACvI,OAAOymE,GAAM1W,oBAAmB,KAC5B,MAAMgc,EAAgC,CAAE,EA2BxC,YAzB4BlzE,IAEP6yE,EAFRxgB,YAGqB,iBAAnBwgB,EAAIxgB,WACX6gB,EAAY7gB,WAAawgB,EAAIxgB,WACrB5Y,GAAuBo5B,EAAIxgB,WAAWv2D,MAC9Co3E,EAAY7gB,WAAawgB,EAAIxgB,WAAWv2D,IAEvC29C,GAAuBo5B,EAAIvgB,qBAC5B4gB,EAAY5gB,kBAAoBugB,EAAIvgB,mBAEnC7Y,GAAuBo5B,EAAI9rB,SAC5BmsB,EAAYnsB,MAAQ8rB,EAAI9rB,OAEvBtN,GAAuBo5B,EAAI7rB,UAC5BksB,EAAYlsB,OAAS6rB,EAAI7rB,SAGxBvN,GAAuBo5B,EAAIryB,UAC5B0yB,EAAY1yB,OAASqyB,EAAIryB,QAG5B/G,GAAuBo5B,EAAIM,iBAC5BD,EAAYC,cAAgBN,EAAIM,eAE7BvjE,EAASqjE,UAAUpF,GAAcqF,EAAY,GACrD/+D,EAAShN,IAijCZisE,oBAn+BJ,SAA6BC,EAA+Bl/D,EAAsEhN,GAC9H,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAoC,kBAAzBmc,EACP,MAAM,IAAI33E,MAAM,qDAEpB,OAAOkU,EAASwjE,oBAAoBvF,GAAcwF,EAAqB,GACxEl/D,EAAShN,IA89BZmsE,UAh9BJ,SAAmBjwE,GACf,OAAOuM,EAAS0jE,UAAUzF,GAAcxqE,IAg9BxCkwE,cA78BJ,SAAuBlwE,GACnB,OAAOuM,EAAS2jE,cAAc1F,GAAa/xE,GAAIuH,IA68B/CmwE,cA18BJ,SAAuBC,GACnB,OAAO7jE,EAAS4jE,cAAc3F,GAAa/xE,GAAI23E,IAAW,IA08B1DC,cA37BJ,SAAuBnG,EAAoBp5D,EAAsEhN,GAC7G,OAAOymE,GAAM1W,oBAA6D,KACtE,GAAI13C,MAAM+tD,GACN,MAAM,IAAI7xE,MAAM,8BAEpB,OAAOkU,EAAS8jE,cAAc7F,GAAcN,EAAW,GACxDp5D,EAAShN,IAs7BZwsE,OAx8BJ,SAAgBx/D,EAAsEhN,GAClF,OAAOymE,GAAM1W,oBAA6D,IAC/DtnD,EAAS+jE,OAAO9F,KACxB15D,EAAShN,IAs8BZysE,QAn8BJ,SAAiBz/D,EAAsEhN,GACnF,OAAOymE,GAAM1W,oBAA6D,IAC/DtnD,EAASgkE,QAAQ/F,KACzB15D,EAAShN,IAi8BZ0sE,aAr7BJ,WACI,OAAOjkE,EAASikE,aAAahG,KAq7B7BiG,QAl7BJ,SAAiBC,GACb,OAAOnkE,EAASkkE,QAAQjG,GAAckG,IAk7BtCC,MA/6BJ,SAAeC,EAA2BzvB,GACtC,MAAM0vB,EAA6B,CAC/BC,aAAa,EACb3vB,KAAM,QAWV,MAR+B,kBAApByvB,IACPC,EAAaC,YAAcF,QAGX,IAATzvB,IACP0vB,EAAa1vB,KAAOA,GAGjB50C,EAASokE,MAAMnG,GAAcqG,IAk6BpCE,SA/5BJ,SAAkBH,GACd,MAAMC,EAAgC,CAClCC,aAAa,GAOjB,MAJ+B,kBAApBF,IACPC,EAAaC,YAAcF,GAGxBrkE,EAASwkE,SAASvG,GAAcqG,IAu5BvCG,UAzxCJ,SAAmBjI,EAAmBj4D,EAAsEhN,GACxG,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAwB,kBAAbkV,EACP,MAAM,IAAI1wE,MAAM,yCAEpB,OAAOkU,EAASykE,UAAUxG,GAAczB,EAAS,GAClDj4D,EAAShN,IAoxCZmtE,sBAjxCJ,SAA+BrH,GAC3B,GAAkC,kBAAvBA,EACP,MAAM,IAAIvxE,MAAM,mDAEpB,OAAOkU,EAAS0kE,sBAAsBzG,GAAcZ,IA8wCpDsH,IA3wCJ,WACI,OAAO3kE,EAAS2kE,IAAI1G,KA2wCpB2G,MAxwCJ,WACI,OAAO5kE,EAAS4kE,MAAM3G,KAwwCtB4G,MAx5BJ,SAAeC,GACX,OAAO9kE,EAAS6kE,MAAM5G,GAAc6G,IAw5BpCC,WAr5BJ,SAAoBC,GAChB,OAAOhlE,EAAS+kE,WAAW9G,GAAc+G,IAq5BzCC,MAh4BJ,SAAepH,GACX,OAAO79D,EAASilE,MAAMhH,GAAcJ,IAg4BpCqH,QAn5BJ,SAAiBC,GACb,OAAO,IAAIpzE,SAAQ,CAACC,EAAS6H,KACzB,MAAMurE,EAAiBjH,GACnB,CAAC1zB,EAA+C46B,EAA0CC,KAClFp5E,IAAOu+C,EAAIv+C,KACXk5E,IACApzE,EAAQisE,QAIpBj+D,EAASklE,QAAQjH,GAAckH,GAC1B12E,OAAOkC,IACJy0E,IACAvrE,EAAOlJ,EAAE,GACX,KAs4BVwjC,QA93BJ,SAAiBoxC,GACb,OAAOvlE,EAASm0B,QAAQ8pC,GAAcsH,IA83BtCC,OA1nBJ,WACI,OAAOxlE,EAASwlE,OAAOvH,KA0nBvBwH,UAvnBJ,WACI,OAAOzlE,EAASylE,UAAUxH,KAunB1ByH,SA73BJ,SAAkBr2D,EAAas2D,GAC3B,OAAO3lE,EAAS0lE,SAASzH,GAAc5uD,EAAKs2D,IA63B5CC,UA13BJ,SAAmBzsE,GACf,OAAO6G,EAAS6lE,gBAAgB5H,GAAc9kE,IA03B9C8zD,iBAv3BJ,WACI,OAAOjtD,EAAS8lE,uBAAuB7H,KAu3BvC8H,oBAp3BJ,WACI,OAAO/lE,EAAS+lE,oBAAoB9H,KAo3BpC+H,KAj3BJ,SAAcL,GACV,OAAO3lE,EAASgmE,KAAK/H,GAAc0H,IAi3BnClgD,MA92BJ1xB,eAAqB8kD,GACjB,OAAO74C,EAASylB,MAAMw4C,GAAcplB,IA82BpCotB,YA32BJlyE,eAA2BsK,GACvB,IAAKA,EACD,MAAM,IAAIvS,MAAM,4BAGpB,GAAoB,iBAATuS,EACP,MAAM,IAAIvS,MAAM,wCAIpB,aADuBkU,EAASimE,YAAYhI,GAAc5/D,IAC1CxO,QAk2BhBq2E,WAAYnyE,gBAER,OAAc,iBADK+mE,IAAcqL,uBAAuB,CAAEn7B,UAAW,CAAC9E,MAC1D,UAAE,IAAAruC,OAAA,EAAAA,EAAEuuE,OAAO,EAE3BC,UA/nBJ,SAAmBC,GACf,OAAOtmE,EAASqmE,UAAUpI,GAAcqI,IA+nBxCC,WA5nBJ,SAAuBC,GACnB,IAAIA,eAAAA,EAAeC,gBAAiB72D,MAAM42D,aAAA,EAAAA,EAAeC,eACrD,MAAM,IAAI36E,MAAM,kCAEpB,IAAI06E,eAAAA,EAAeE,YAAiD,kBAA7BF,eAAAA,EAAeE,WAClD,MAAM,IAAI56E,MAAM,+BAEpB,OAAOkU,EAASumE,WAAWtI,GAAcuI,IAunBzCG,QA11BJ,SAAiBlvE,GACb,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,iCAKpB,YAHWsE,IAAPlE,GACAuL,EAASwmE,IAENrhE,EAAUpF,IAAI,UAAWC,IAo1BhCmvE,aAj1BJ,SAAsBnvE,GAClB,OAAO2mE,EAAY,eAAgB3mE,IAi1BnCovE,eAp2BJ,SAAwBpvE,GACpB,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,iCAGpB,OADA2L,EAASwmE,GAAa9sE,MAAO8sE,IACtBG,EAAY,iBAAkB3mE,IAg2BrCqvE,mBA/0BJ,SAA4BrvE,GACxB,OAAO2mE,EAAY,qBAAsB3mE,IA+0BzCsvE,qBA50BJ,SAA8BtvE,GAC1B,OAAO2mE,EAAY,uBAAwB3mE,IA40B3CuvE,qBAz0BJ,SAA8BvvE,GAC1B,OAAO2mE,EAAY,uBAAwB3mE,IAy0B3CwvE,YAt0BJ,SAAqBxvE,GACjB,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,iCAKpB,OAHI2wE,GACAhlE,EAASwmE,IAENrhE,EAAUpF,IAAI,YAAaC,IAg0BlCyvE,WA7zBJ,SAAoBzvE,GAChB,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,iCAKpB,OAHK2wE,GACDhlE,EAASwmE,IAENrhE,EAAUpF,IAAI,WAAYC,IAuzBjC0vE,YA5yBJ,SAAqB1vE,GACjB,MAAqB,cAAjBklE,EACOyB,EAAY,YAAa3mE,EAAU,CAACwmE,KAEpCG,EAAY,YAAa3mE,IAyyBpC2vE,YArzBJ,SAAqB3vE,GACjB,MAAqB,cAAjBklE,EACOyB,EAAY,YAAa3mE,EAAU,CAACwmE,KAEpCG,EAAY,YAAa3mE,IAkzBpC4vE,SAtyBJ,SAAkB5vE,GACd,MAAqB,WAAjBklE,EACOyB,EAAY,SAAU3mE,EAAU,CAACwmE,KAEjCG,EAAY,SAAU3mE,IAmyBjC2tD,WA/xBJ,SAAoB3tD,GAChB,OAAO2mE,EAAY,WAAY3mE,IA+xB/Bo2C,WA5xBJ,SAAoBp2C,GAChB,OAAO2mE,EAAY,WAAY3mE,IA4xB/B6vE,oBAzxBJ,SAA6B7vE,GACzB,OAAO2mE,EAAY,qBAAsB3mE,IAyxBzC8vE,iBAtxBJ,SAA0B9vE,GACtB,OAAO2mE,EAAY,kBAAmB3mE,IAsxBtC+vE,iBAnxBJ,SAA0B/vE,GACtB,OAAO2mE,EAAY,eAAgB3mE,IAmxBnCgwE,gBAhxBJ,SAAyBhwE,GACrB,OAAO2mE,EAAY,iBAAkB3mE,IAgxBrC0mD,oBArwBJ,SAA6B1mD,GACzB,OAAO2mE,EAAY,sBAAuB3mE,IAqwB1CiwE,eA9wBJ,SAAwBjwE,GACpB,OAAO2mE,EAAY,gBAAiB3mE,IA8wBpCkwE,gBA3wBJ,SAAyBlwE,GACrB,OAAO2mE,EAAY,iBAAkB3mE,IA2wBrC0mE,iBACAyJ,iBAjwBJ,SAA0BnwE,GACtB,OAAO2mE,EAAY,kBAAmB3mE,IAiwBtCowE,iBA9vBJ,SAA0BpwE,GACtB,OAAO2mE,EAAY,kBAAmB3mE,IA8vBtCqwE,sBAvvBJ,SAA+BrwE,GAC3B,OAAO2mE,EAAY,wBAAyB3mE,IAuvB5CswE,6BAxwBJ,SAAsCtwE,GAClC,OAAO2mE,EAAY,gCAAiC3mE,IAwwBpDuwE,UA9uBJ,SAAmBvwE,GACf,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,+BAYpB,OAAOkU,EAASgoE,WARgB,CAACzjE,EAAqBhN,EAAmBq9D,KACrE,MAAMx5D,EAAU3D,EAASm9D,IACrBx5D,aAAO,EAAPA,EAAS1B,MACT0B,EAAQ1B,KAAK6K,GAAS9V,MAAM8I,GAE5BgN,MAGgC05D,KAiuBxCgK,aA9tBJ,SAAsBxwE,GAClB,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,+BAYpB,OAAOkU,EAASioE,cARuB,CAAC1jE,EAAqBhN,EAAmBq9D,KAC5E,MAAMx5D,EAAU3D,EAASm9D,IACrBx5D,aAAO,EAAPA,EAAS1B,MACT0B,EAAQ1B,KAAK6K,GAAS9V,MAAM8I,GAE5BgN,MAGmC05D,KAitB3CiK,oBA7rBJ,SAA6BzwE,GACzB,OAAO2mE,EAAY,sBAAuB3mE,IA6rB1C0wE,2BA1rBJ,SAAoC1wE,GAChC,OAAO2mE,EAAY,2BAA4B3mE,IA0rB/C2wE,oBAvrBJ,SAA6B3wE,GACzB,OAAO2mE,EAAY,qBAAsB3mE,IAurBzC4wE,iBAprBJ,SAA0B5wE,GACtB,OAAO2mE,EAAY,kBAAmB3mE,IAorBtC6wE,aAltBJ,SAAsB7wE,GAClB,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,+BAYpB,OAAOkU,EAASsoE,cARc,CAAC/jE,EAAqBhN,EAAmBq9D,EAAqB/hD,KACxF,MAAMzX,EAAU3D,EAASob,IACrBzX,aAAO,EAAPA,EAAS1B,MACT0B,EAAQ1B,KAAK6K,GAAS9V,MAAM8I,GAE5BgN,MAGmC05D,KAqsB3CsK,6BA5vBJ,SAAsC9wE,GAClC,IAAK+zC,GAAgB/zC,GACjB,MAAM,IAAI3L,MAAM,+BAEpB,OAAOsyE,EAAY,+BAAgC3mE,IA0vBnD,QAAI+wE,GACA,OA5WR,WACI,MAAMC,EAAa1P,GAAYrc,KAC/B,MAA4B,QAAxBse,EAAM/pE,cACC,GAEEpI,OAAOC,KAAK2/E,GAAY1/E,QAAmB,CAACC,EAAMyhD,KAC3D,MAAMp5C,EAAwBo3E,EAAWh+B,GAQzC,OAPIp5C,GACGA,EAAO2iC,IAAI6oC,iBACsB,IAA1BxrE,EAAO2iC,IAAI6oC,iBACiB,IAA5BoB,GAAapB,YACpBxrE,EAAO2iC,IAAI6oC,aAAeoB,GAAapB,YAC1C7zE,EAAKmD,KAAKkF,EAAO2iC,KAEdhrC,CAAI,GACZ,IACS+B,MAAK,CAAC29E,EAAIC,KAClB,GAAID,EAAG3L,WAAa4L,EAAG5L,SAAU,CAC7B,QAAI2L,EAAG3L,SACH,OAAOp+B,OAAOzpB,iBAElB,QAAIyzD,EAAG5L,SACH,OAAOp+B,OAAOiqC,iBAGtB,OAAOF,EAAG3L,SAAW4L,EAAG5L,QAAQ,IAmVzB8L,EACV,EAED,sBAAIjN,GACA,OAAOD,CACV,EAED,iBAAIO,GACA,OAAOD,CACV,EAGD6M,OAAM,IACK/2E,QAAQC,QAAQkpE,GAG3B6N,SAAQ,IACGh3E,QAAQC,QAAQ49D,GAG3B7f,UAAS,IACEh+C,QAAQC,QAAQipE,GAG3BrK,WAAU,IACC7+D,QAAQC,QAAQ85C,GAG3B,UAAAW,CAAWnjD,GACP,IAAK05D,GAAc15D,GACf,MAAM,IAAIwC,MAAM,6FAGpB,OAAOkU,EAAS2sC,cAAcsxB,GAAc30E,GAAS,EACxD,EAED0/E,WAAU,IACapO,IACDqO,cAAc/8E,GAGpCg9E,SAAQ,CAAC/xB,EAAgBC,IACd2mB,EAAW,CAAE5mB,QAAOC,WAG/B+xB,OAAM,CAACpiE,EAAcmI,IACV6uD,EAAW,CAAEh3D,MAAKmI,SAG7B,qBAAMk6D,SACF,MAAMC,EAAclN,EAAkBmN,iBACtC,GAAKD,EAGL,OAAqC,QAA9BxxE,EAAAkhE,GAAYrc,KAAK2sB,UAAa,IAAAxxE,OAAA,EAAAA,EAAAm8B,GACxC,EAEDjgC,gBAAqB,SACVlL,OAAOC,KAAKiwE,GAAYrc,MAC1BrpD,KAAKpK,GAAQ8vE,GAAYrc,KAAKzzD,GAAK+qC,MACnC1lC,QAAQw7C,GACaA,EAAE3wC,SAAiBmwE,mBACjBp9E,IAIhCq9E,YAAchgF,GACHuxE,IAAcpxE,KAAKH,EAAM2C,GAGpCs9E,aAAc,IACH1O,IAAc/wD,MAAM7d,IAoDnC,MAAO,CACH8nC,IAAKiqC,GACLwL,OA9CyB,CACzBC,aAnuBJ,SAAsB1oD,GAClBk6C,EAAOl6C,EAAQ3R,IACfugD,EAAS5uC,EAAQ7vB,MACjB26C,EAAW9qB,EAAQ13B,SAAW,CAAE,EAChC2xE,EAAUj6C,EAAQ4vB,OAClBuqB,EAAcn6C,EAAQiqB,WACtBmwB,EAASp6C,EAAQyvB,MACjB4qB,EAAcr6C,EAAQs6C,YAAc,CAAE,EACtCC,EAAWv6C,EAAQw6C,QACnBC,EAAwBz6C,EAAQ06C,qBAChCC,EAAsB36C,EAAQ46C,mBAC9BC,EAAqB76C,EAAQ86C,kBAC7BC,EAAkB/6C,EAAQg7C,eAC1BC,EAAiBj7C,EAAQk7C,cACzBC,EAAYn7C,EAAQ7nB,SACpBmjE,EAAat7C,EAAQsvB,UACrBisB,EAAYv7C,EAAQw7C,SACpBC,EAAez7C,EAAQ07C,YACvBC,EAAe37C,EAAQ91B,MACvB0xE,EAAc57C,EAAQ67C,WACtBG,EAAWh8C,EAAQi8C,QACnBC,EAAYl8C,EAAQm8C,SACpBC,EAAsBp8C,EAAQq8C,mBAC9BC,EAAYt8C,EAAQu8C,SAGpBG,EAAc18C,EAAQ28C,WACtBC,EAAqB58C,EAAQ68C,mBAysB7B8L,kBAvqBJ,gBACev5E,IAAPlE,IAGJ0Q,EAAUvE,QAAQ,UAAW4lE,IAC7B/xE,OAAKkE,IAmqBLw5E,wBApnBJ71E,eAAuC7I,GACrB,cAAVA,EACAuxE,GAAe,EACE,aAAVvxE,EACPuxE,GAAe,EAEfE,EAAezxE,QAEb8U,EAAS6pE,SACfjtE,EAAUvE,QAAQnN,EAAO+yE,KA4mBzB6L,mBAxsBJ,SAA4BvJ,GACxB3Q,EAAS2Q,EACTvgE,EAAS6pE,SACJE,SAAQ,KACLntE,EAAUvE,QAAQ,iBAAkBkoE,EAAUtC,GAAa,KAqsBnE+L,wBA5rBJ,SAAiC15B,GACzBA,IAAcgsB,IAGlBA,EAAahsB,EACb1zC,EAAUvE,QAAQ,qBAAsB4lE,MAwrBxCgM,iBAlsBJ,SAA0B7I,GACtBlG,EAAOkG,EACPxkE,EAAUvE,QAAQ,eAAgB+oE,EAAQnD,KAisB1CiM,4BAtrBJ,SAAqC/wE,GACjCgjE,EAAYhjE,EACZyD,EAAUvE,QAAQ,mBAAoB4lE,KAqrBtCkM,qBAlrBJ,SAA8B7gF,GAC1BwiD,EAAWxiD,EACXsT,EAAUvE,QAAQ,kBAAmByzC,EAAUmyB,KAirB/CmM,2BA9mBJ,SAAoCjN,GAChCD,EAAYC,EACZvgE,EAAUvE,QAAQ,eAAgB4lE,KA6mBlCoM,oBA1mBJ,SAA6Bz5B,GACrBqqB,EAAQl0D,MAAQ6pC,EAAO7pC,KAAOk0D,EAAQ/rD,OAAS0hC,EAAO1hC,MAAQ+rD,EAAQ9jB,QAAUvG,EAAOuG,OAAS8jB,EAAQ7jB,SAAWxG,EAAOwG,SAG9H6jB,EAAUrqB,EACVh0C,EAAUvE,QAAQ,iBAAkB4lE,MAsmBpCqM,mBAnmBJ,SAA4BjL,GACxBjE,EAASiE,EACTziE,EAAUvE,QAAQ,gBAAiB4lE,KAkmBnCsM,uBAzqBJ,SAAgCC,GAC5B,MAAMC,EAAY,CAAC,WAAY,cAAe,QAAS,WAAW1hF,QAAO,CAACC,EAAWiE,KACjFjE,EAAKiE,GAAKu9E,EAAYv9E,GAEfjE,IACR,KAMmD,IAJ9Bw0E,EAAcnqE,KAAKq3E,GAChCA,EAAIjJ,WAGKjiE,QAAQgrE,EAAY/I,WACpCjE,EAAcrxE,KAAKs+E,GAGvB7tE,EAAUvE,QAAQ,qBAAsBoyE,EAAWxM,KA2pBnD0M,yBAxpBJ,SAAkCC,GAC9B,IAAIC,EACJrN,EAAgBA,EAAcz0E,QAA8C,CAACC,EAAM0hF,KAC3EA,EAAIjJ,WAAamJ,EACjBC,EAASH,EAET1hF,EAAKmD,KAAKu+E,GAEP1hF,IACR,SAEYoH,IAAXy6E,GACAjuE,EAAUvE,QAAQ,uBAAwBwyE,EAAQ5M,KA6oBtD6M,yBAzoBJ,SAAkCN,GAC9B,MAAMK,EAASrN,EAAclvE,QAAQo8E,GAC1BA,EAAIjJ,WAAa+I,EAAY/I,WAGpCoJ,EAAOlhF,OAAS,GAChBiT,EAAUvE,QAAQ,uBAAwBwyE,EAAO,GAAI5M,KAooBzD8M,wBA7lBJ,SAAiC9/B,GAC7BkwB,EAAclwB,EACdruC,EAAUvE,QAAQ,sBAAuB4lE,KA4lBzC+M,oBAzlBJ,SAA6BnO,EAAoBI,EAAiBrB,GAC9DgB,EAAcC,EACdG,EAAWC,EACXtB,EAAsBC,EACtBh/D,EAAUvE,QAAQ,iBAAkB4lE,KAslBpCgN,4BAxjBJl3E,eAA2Cm3E,EAAmBC,GAC1D,IAAIC,EACAF,IAAch/E,GACd+vE,GAAiB,EACjBmP,EAAiBnN,KAEjBhC,GAAiB,EACjBmP,EAAiBrS,GAAYp6C,IAAIusD,GAAanS,GAAYp6C,IAAIusD,GAAWl3C,SAAM5jC,GAEnF,MAAMi7E,EAAiBtS,GAAYp6C,IAAIwsD,GAAcpS,GAAYp6C,IAAIwsD,GAAYn3C,SAAM5jC,QACjF4P,EAAS6pE,SACfjtE,EAAUvE,QAAQ,wBAAyB+yE,EAAgBC,EAAgBpN,KA8iB3EqN,yBAplBJ,SAAkCpgF,GAC9BmwE,EAAcnwE,EAAMqgF,WAAa,CAAE,EACnCzO,EAAY5xE,EAAMkN,MAClBwE,EAAUvE,QAAQ,qBAAsBgjE,EAAa4C,KAklBrDuN,gCA/kBJ,SAAyCnO,GACrCD,EAAsBC,EACtBzgE,EAAUvE,QAAQ,+BAAgC4lE,KA8kBlDwN,sBA3kBJ,SAA+BlO,GAC3BD,EAAYC,EACZ3gE,EAAUvE,QAAQ,oBAAqB4lE,KA0kBvCyN,mCAvkBJ,SAA4ChQ,GACxCD,EAAwBC,GAukBxBiQ,iCApkBJ,SAA0C/P,GAClCD,IAAwBC,IACxBD,EAAsBC,EACtBh/D,EAAUvE,QAAQ,gCAAiC4lE,MAkkBvD2N,mBA7dJ,SAA4BvG,EAA0CC,GAClEjJ,EAASgJ,EACT9J,EAAW8J,eAAAA,EAAUn5E,GAEhB29C,GAAuBw7B,IAAcx7B,GAAuBy7B,IAC7D1oE,EAAUvE,QAAQ,gBAAiB4lE,GAAcoH,EAAUC,IAyd/DuG,eAjjBJ93E,eAA8B+3E,EAAuBC,EAAoBC,EAA2B7O,EAAmB8O,GACnHrP,EAAckP,EACdnQ,EAAsBqQ,EACtBhP,EAAW+O,OACa,IAAb5O,IACPD,EAAYC,SAEVn9D,EAAS6pE,SACfoC,EAAiB5gF,SAASy+C,IACtBA,EAAE2/B,OAAOyC,qBAAqBjO,GAAa,IAE/CrhE,EAAUvE,QAAQ,WAAY4lE,KAuiB9BkO,eAhiBJp4E,eAA8BopE,EAAmB8O,GAC7CrP,OAAcxsE,EACd6rE,GAAiB,OACO,IAAbkB,IACPD,EAAYC,SAEVn9D,EAAS6pE,SACfoC,EAAiB5gF,SAASy+C,IACtBA,EAAE2/B,OAAO2C,qBAAqBnO,GAAa,IAE/CrhE,EAAUvE,QAAQ,WAAY4lE,KAuhB9BiO,qBAriBJ,SAA8BzhC,GAC1B7tC,EAAUvE,QAAQ,kBAAmBoyC,IAqiBrC2hC,qBArhBJ,SAA8B3hC,GAC1B7tC,EAAUvE,QAAQ,kBAAmBoyC,IAqhBrC4hC,wBAlhBJ,SAAiC1O,GAC7BD,EAAcC,EACd/gE,EAAUvE,QAAQ,sBAAuB4lE,KAihBzCqO,sBAhnBJ,SAA+B9P,GAC3BD,EAAYC,EACZ5/D,EAAUvE,QAAQ,iBAAkBmkE,EAAUyB,KA+mB9CsO,+BA/gBJ,SAAwC1O,GACpC,IAAIziE,EACJ,MAAM6hB,EAAO4gD,EACb,GAAK5gD,EAAK8kD,QAEH,CACH,MAAMyK,EAAa5R,IACnB,GAAK4R,EAGE,CACH,MAAMp0E,EAAQ6kB,EAAK8kD,QAAU,EAC7B3mE,EAAU,IAAIrJ,SAAQ,CAACC,EAAS6H,KAC5B2yE,EAAWn7D,MAAM3X,MAAM+tD,IACnB,MAAMsa,EAAUta,EAAS7hD,MAAMqd,GAAMA,EAAE7qB,QAAUA,IACjDpG,EAAQ+vE,EAAQ,IACjBtzE,MAAMoL,EAAO,SAPpBuB,EAAUrJ,QAAQC,aAAQ5B,QAL9BgL,EAAUrJ,QAAQC,aAAQ5B,GAiBzBgL,EAAQ1B,MAAMupB,IACfhG,EAAK8kD,QAAU9+C,EACf26C,EAAqB3gD,EACrBrgB,EAAUvE,QAAQ,2BAA4B4lE,GAAa,KAwf/DwO,qBApfJ,SAA8BhyE,GAC1BmC,EAAUvE,QAAQ,kBAAmB4lE,GAAc,CAC/CyO,OAAQjyE,EAAKiyE,OACbC,SAAUlyE,EAAKkyE,SACfC,gBAAiBnyE,EAAKmyE,mBAif1BC,iCA7eJ,SAA0CpyE,GACtCmC,EAAUvE,QAAQ,+BAAgCoC,KA2flDqyE,kBAZiC,CACjC,qBAAIhR,GACA,OAAOD,CACV,EACD,kBAAIG,GACA,OAAOD,CACV,GAOJ,EC9pDW,SAAAgR,GAAuB5oE,EAAkB04D,GACrD,MAAMh1B,EAAUkxB,GAAYrc,KAC5B,OAAO7zD,OAAOC,KAAK++C,GAAS9+C,QAAwB,CAACC,EAAMkD,KACvD,MAAMu+C,EAAM5C,EAAQ37C,GAIpB,OAHIu+C,EAAIzW,IAAI6oC,aAAeA,GAAcpyB,EAAIzW,IAAI9nC,KAAOiY,GACpDnb,EAAKmD,KAAKs+C,GAEPzhD,CAAI,GACZ,GACP,CAEM,SAAUgkF,GAAQ/wD,GACpB,QAAKA,IAAUpzB,OAAOC,KAAKmzB,GAAQ6F,OAAOv5B,QAA4B6H,IAAlB6rB,EAAO1zB,KAI/D,CCsnCe,IAAAyX,GAAA,UA/nCf,WAAAxX,GAEqByD,KAAeghF,gBAAG,oBAClBhhF,KAAaihF,cAAG,kBAIzBjhF,KAAS2Q,UAAqBu8D,KAC9BltE,KAAAkhF,UAA2Bp7E,QAAQC,UACnC/F,KAAA+9D,eAAoC,CACxCojB,6BAA6B,GAEzBnhF,KAAcohF,eAAuI,CAAE,EAE/J,gBAAWxO,GACP,OAAO5yE,KAAKqhF,UAGhB,YAAWzD,GACP,OAAO59E,KAAKkhF,UAGhB,iBAAW5kD,GACP,OAAOt8B,KAAK+9D,eAGT,IAAA/5D,CAAK20C,EAA+B3vC,GACvChJ,KAAK24C,IAAMA,EACX34C,KAAKqhF,UAAYr4E,EACjBhJ,KAAK2Q,UAAUpF,IAAI,SAAUiD,IACzB,GAAkB,WAAdA,EAAKpS,KAAmB,CACXQ,OAAOC,KAAKmD,KAAKohF,gBACzBhiF,SAASpC,IACWA,EAAIwmB,WAAWhV,EAAK0J,kBAE9BlY,KAAKohF,eAAepkF,UAOxC,gBAAAskF,CAAiB95E,GACpBxH,KAAK+9D,eAAiB,IAAK/9D,KAAK+9D,kBAAmBv2D,GAIhD,WAAA+5E,CAAY/yE,GACfxO,KAAK2Q,UAAUvE,QAAQ,QAASoC,GAG7B,UAAMP,CAAKlK,GACd,IAAIy9E,EACJxhF,KAAKkhF,UAAY,IAAIp7E,SAASC,IAC1By7E,EAAkBz7E,CAAO,IAE7B,IACI,MAAMnC,QAAe5D,KAAK24C,IAAI9xB,OAAuB,iBAAkB9iB,EAAS/D,KAAKqhF,UAAW,CAC5FxkD,cAAem+B,GACfl8B,wBAAyBi8B,KAE7B,QAAwB52D,IAApBP,EAAO47B,SACP,MAAM,IAAI3/B,MAAM,qDAGpB,MAAMI,EAAK2D,EAAO47B,SAASv/B,GACrBu+C,QAAYsuB,GAAYa,QAAQ1tE,GAWtC,OAVKD,KAAKs8B,gBAAiBt8B,KAAKs8B,cAAc6kD,6BAC1C76E,YAAW,KACoB,aAAvBk4C,EAAIzW,IAAIwT,YAIRiD,EAAIg/B,OAAOQ,iBAAiBx/B,EAAIzW,IAAI3kB,OAEzC,GAEAo7B,EAAIzW,IACL,QACNy5C,KAID,WAAMxzE,CAAM6vC,EAA6C95C,GAC5D,MAAMH,QAAe5D,KAAKoM,QAAQ,QAAS,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,WAAW,UACxE,OAAIA,EACOH,EAAO69E,OAEX5jC,EAGJ,cAAMq3B,CAASr3B,EAA6Cs3B,EAAgBuM,GAC/E,IAAI5iD,EAA0B,KAM9B,MAL8B,iBAAnB4iD,GAAiE,iBAA3BA,EAAextE,UAC5D4qB,EAAmD,IAAzB4iD,EAAextE,eAClCwtE,EAAextE,eAEpBlU,KAAKoM,QAAQ,WAAY,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAEqf,IAAK+xD,EAAQuM,kBAAkBC,kBAAmB,CAAE7iD,4BAA6B,cACtI+e,EAGJ,cAAM02B,CAAS12B,EAA6CijB,SAC/D,MAAM8gB,EAAgC,GAChCC,EAAQ1yE,GAA0ByyE,EAAc1hF,KAAKiP,GAO3D,GALKqrC,GAAkBsmB,EAAMtc,QAAW3G,EAAEu1B,WACtCyO,EAAKhkC,EAAE2G,UAINhK,GAAkBsmB,EAAM7B,QAAS,CAClC,MAAMgT,GAAenR,EAAM7B,OAC3B4iB,EAAKhkC,EAAEuG,WAAW6tB,IAOtB,GAJKz3B,GAAkBsmB,EAAM6T,QACzBkN,EAAKhkC,EAAE62B,SAAS5T,EAAM6T,SAGrBl6B,GAAmBqmB,EAAMghB,cAAgBrnC,GAAoBqmB,EAAcihB,YAAa,CACzF,MAAMC,EAA+B,QAArBp2E,EAAAk1D,EAAMghB,kBAAe,IAAAl2E,EAAAA,EAAAk1D,EAAcihB,WACnDF,EAAKhkC,EAAE84B,cAAcqL,IAGpBvnC,GAAmBqmB,EAAMmhB,WAC1BJ,EAAK7hF,KAAKoM,QAAQ,cAAe,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAEk+E,SAAUnhB,EAAMmhB,aAGlF,MAAMjN,EAAwD,CAC1DhC,UAAWlS,EAAMkS,UACjBE,SAAUpS,EAAMoS,SAChBD,UAAWnS,EAAMmS,UACjBE,SAAUrS,EAAMqS,WAGI4N,GAAQ/L,IAE5B6M,EAAKhkC,EAAEk3B,mBAAmBC,IAG9B,MAAMH,EAAkD,CACpDqN,WAAYphB,EAAMohB,WAClBC,cAAerhB,EAAMqhB,cACrBC,gBAAiBthB,EAAMshB,gBACvBC,cAAevhB,EAAMuhB,cACrBC,cAAexhB,EAAMwhB,eASzB,OAPoBvB,GAAQlM,IAExBgN,EAAKhkC,EAAE+2B,aAAaC,UAGlB/uE,QAAQsf,IAAIw8D,GAEX/jC,EAGJ,wBAAMk3B,CAAmBl3B,EAA6Cm3B,GAEzE,aADMh1E,KAAKoM,QAAQ,qBAAsB,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAASixE,IAC7Dn3B,EAGJ,wBAAMo3B,CAAmBp3B,GAE5B,aAD6B79C,KAAKoM,QAAQ,qBAAsB,CAAE8L,SAAU2lC,EAAE59C,KAI3E,mBAAM02E,CAAc94B,EAA6CikC,GAEpE,aADM9hF,KAAKoM,QAAQ,gBAAiB,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAE+9E,gBAC1DjkC,EAGJ,mBAAMg5B,CAAch5B,GAEvB,aADqB79C,KAAKoM,QAAQ,gBAAiB,CAAE8L,SAAU2lC,EAAE59C,MACnD6hF,WAGX,kBAAMlN,CAAa/2B,EAA6C0kC,GAEnE,aADMviF,KAAKoM,QAAQ,eAAgB,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAASw+E,IACvD1kC,EAGJ,gBAAMi3B,CAAWj3B,GAEpB,aADsB79C,KAAKoM,QAAQ,aAAc,CAAE8L,SAAU2lC,EAAE59C,KAI5D,cAAMy0E,CAAS72B,EAA6C82B,GAE/D,aADM30E,KAAKoM,QAAQ,WAAY,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAE4wE,WACrD92B,EAGJ,cAAMw2B,CAASx2B,EAA6Cy2B,GAC/D,MAAMvwE,EAAU,CACZmU,SAAU2lC,EAAE59C,GACZ8D,QAAS,CACLmB,MAAOovE,IAIf,aADMt0E,KAAKoM,QAAQ,WAAYrI,EAAS,gBACjC85C,EAGJ,eAAM26B,CAAU36B,EAA6C0yB,GAChE,MAAMxsE,EAAU,CACZmU,SAAU2lC,EAAE59C,GACZ8D,QAAS,CACLwsE,aAIR,aADMvwE,KAAKoM,QAAQ,YAAarI,GACzB85C,EAGJ,2BAAM46B,CAAsB56B,EAA6CuzB,GAC5E,MAAMrtE,EAAU,CACZmU,SAAU2lC,EAAE59C,GACZ8D,QAAS,CACLqtE,uBAKR,aADMpxE,KAAKoM,QAAQ,wBAAyBrI,GACrC85C,EAGJ,SAAM66B,CAAI8J,GACb,MAAMz+E,EAAU,CACZmU,SAAUsqE,EAAYviF,IAI1B,aADMD,KAAKoM,QAAQ,SAAUrI,GACtBy+E,EAGJ,WAAM7J,CAAM8J,GACf,MAAM1+E,EAAU,CACZmU,SAAUuqE,EAAaxiF,IAI3B,aADMD,KAAKoM,QAAQ,WAAYrI,GACxB0+E,EAGJ,gBAAM3Q,CAAWj0B,EAA6C8G,GACjE,MAAsB,oBAAXv/C,QAA2BA,OAAO81D,YAAoBwnB,WAAa,MACnE,IAAI58E,SAAQgC,MAAOoU,EAAKymE,KAC3B,MAAMC,EAAqB5iF,KAAK6iF,eAAel+B,EAAQ9G,GACvD,IAAI/qC,GAAS,EACb,MAAMmkC,EAAO,KACLnkC,IAGJA,GAAS,EAELgwE,IACAA,IACAA,OAA2B3+E,GAE/B+X,EAAI2hC,GACAklC,IACA5uE,aAAa4uE,GACbA,OAAiB5+E,KAGzB,IAAI4+E,EACAD,EACCF,IACDE,EAA2BjlC,EAAE29B,iBAAiBh9B,IACrCx+C,KAAK6iF,eAAel+B,EAAQnG,IAGjCvH,GAAM,KAId,UAEUj3C,KAAKoM,QAAQ,aAAc,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAE4gD,YAChE,MAAOr5C,GAEL,YADAq3E,EAAIr3E,GAKJs3E,EACA3rC,IAKJ8rC,EAAiBz8E,YAAW,KACxB2wC,GAAM,GACP,IAAK,WAGNj3C,KAAKoM,QAAQ,aAAc,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAE4gD,YAE3D9G,GAGJ,oBAAMy3B,CAAez3B,EAA6C03B,GAErE,aADMv1E,KAAKoM,QAAQ,YAAa,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAASwxE,GAAc,eAClE13B,EAGJ,uBAAM63B,CAAkB73B,EAA6C23B,GAExE,aADMx1E,KAAKoM,QAAQ,eAAgB,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAASyxE,GAAY,iBACnE33B,EAGJ,cAAM0G,CAAS1G,GAElB,aADM79C,KAAKoM,QAAQ,WAAY,CAAE8L,SAAU2lC,EAAE59C,KACtC49C,EAGJ,WAAM2G,CAAM3G,GAEf,aADM79C,KAAKoM,QAAQ,QAAS,CAAE8L,SAAU2lC,EAAE59C,KACnC49C,EAGJ,qBAAMo2B,CAAgBp2B,GAEzB,aADM79C,KAAKoM,QAAQ,kBAAmB,CAAE8L,SAAU2lC,EAAE59C,IAAM,gBACnD49C,EAGJ,cAAMi2B,CAASj2B,GAElB,aADM79C,KAAKoM,QAAQ,WAAY,CAAE8L,SAAU2lC,EAAE59C,IAAM,gBAC5C49C,EAGJ,aAAMk2B,CAAQl2B,GAEjB,aADM79C,KAAKoM,QAAQ,UAAW,CAAE8L,SAAU2lC,EAAE59C,IAAM,gBAC3C49C,EAGJ,cAAMm2B,CAASn2B,GAElB,aADM79C,KAAKoM,QAAQ,WAAY,CAAE8L,SAAU2lC,EAAE59C,IAAM,gBAC5C49C,EAGJ,cAAMq2B,CAASr2B,GAElB,aADM79C,KAAKoM,QAAQ,WAAY,CAAE8L,SAAU2lC,EAAE59C,IAAM,gBAC5C49C,EAGJ,YAAMs2B,CAAOt2B,GAEhB,aADM79C,KAAKoM,QAAQ,SAAU,CAAE8L,SAAU2lC,EAAE59C,IAAM,gBAC1C49C,EAGJ,oBAAMu2B,CAAev2B,GAExB,aADM79C,KAAKoM,QAAQ,iBAAkB,CAAE8L,SAAU2lC,EAAE59C,IAAM,gBAClD49C,EAGJ,UAAMo4B,CAAKp4B,EAA6CmlC,EAAwDj/E,GACnH,MAAM6iB,EAA2F,CAC7Fq8D,eAAgBD,EAAa/iF,IAOjC,OAJA2mB,EAAKs8D,aAAen/E,EAAQuuE,UAC5B1rD,EAAKsvD,UAAYnyE,EAAQmyE,gBAEnBl2E,KAAKoM,QAAQ,OAAQ,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS6iB,GAAQ,qBAAsB,sBAAsBo8D,EAAa/iF,MAChH49C,EAGJ,eAAMi5B,CAAUj5B,EAA6Co5B,EAAwDlzE,GASxH,aARM/D,KAAKoM,QAAQ,YAAa,CAC5B8L,SAAU2lC,EAAE59C,GACZ8D,QAAS,CACLoI,MAAOpI,EACPo/E,eAAgBlM,EAAah3E,GAC7BgjF,eAAgBplC,EAAE59C,KAEvB,oBAAoBg3E,EAAah3E,KAAM,sBAAsBg3E,EAAah3E,MACtE49C,EAGJ,eAAMu5B,CAAUv5B,EAA6C95C,GAChE,MAAMq/E,EAAsB,CAAC,qBAAsB,oBAQnD,OAPK5oC,GAAkBz2C,aAAA,EAAAA,EAASyyD,YAI5B4sB,EAAUljF,KAAK,kBAHfkjF,EAAUljF,KAAK,sBACfkjF,EAAUljF,KAAK,sBAAsB6D,EAAQyyD,qBAI3Cx2D,KAAKoM,QAAQ,YAAa,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,cAAcq/E,GACzDvlC,EAGJ,gBAAMuG,CAAWvG,EAA6Co0B,GAAc,GAC/E,IAAIt9C,EAQJ,OANIA,EADAs9C,EACU,OAEA,aAGRjyE,KAAKoM,QAAQuoB,EAAS,CAAEzc,SAAU2lC,EAAE59C,IAAM,qBACzC49C,EAGJ,YAAMg4B,CAAOh4B,EAA6Ci4B,GAE7D,aADM91E,KAAKoM,QAAQ,SAAU,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS+xE,IACjDj4B,EAGJ,gBAAMs4B,CAAWt4B,EAA6Cu4B,GAEjE,aADMp2E,KAAKoM,QAAQ,uBAAwB,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAASqyE,IAC/Dv4B,EAGJ,gBAAMw4B,CAAWx4B,GAEpB,aADM79C,KAAKoM,QAAQ,uBAAwB,CAAE8L,SAAU2lC,EAAE59C,KAClD49C,EAGJ,mBAAM6C,CAAc7C,EAA6CxgD,EAAc6vB,GAClF,IAAIgM,EACJ,IAGI,MAAMmqD,EAAgCrjF,KAAKsjF,oBAAoBjmF,GAEzD45C,EAAO,IAAInxC,SAAc,CAACC,EAAS6H,KACrCsrB,EAAK2kB,EAAEy9B,kBAAiB,KACpBv1E,GAAS,GACX,IAKN,aAHMD,QAAQsf,IAAI,CAACplB,KAAKoM,QAAQ,gBAAiB,CAC7C8L,SAAU2lC,EAAE59C,GAAI5C,QAASgmF,EAA+Bn2D,YACxD+pB,IACG4G,EACD,QACF3kB,GACAA,KAKL,UAAMo9C,CAAKz4B,GAEd,aADM79C,KAAKoM,QAAQ,aAAc,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAEuyE,MAAM,IAAU,wBACvEz4B,EAGJ,YAAM04B,CAAO14B,GAEhB,aADM79C,KAAKoM,QAAQ,aAAc,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAEuyE,MAAM,IAAW,wBACxEz4B,EAGJ,aAAM24B,CAAQ34B,GAKjB,aAJqB79C,KAAKoM,QAAQ,UAAW,CACzC8L,SAAU2lC,EAAE59C,GACZ8D,QAAS,CAAA,KAEC47D,KAGX,aAAM8W,CAAQ54B,EAA6C64B,GAO9D,aANM12E,KAAKoM,QAAQ,UAAW,CAC1B8L,SAAU2lC,EAAE59C,GACZ8D,QAAS,CACLw/E,QAAS7M,KAGV74B,EAGJ,mBAAMuE,CAAcvE,EAA6CmB,GAEpE,aADMh/C,KAAKoM,QAAQ,gBAAiB,CAAE8L,SAAU2lC,EAAE59C,GAAI8D,QAAS,CAAEi7C,eAAgB,qBAC1EnB,EAGJ,yBAAM05B,CAAoB15B,EAA6C25B,GAO1E,aANMx3E,KAAKoM,QAAQ,sBAAuB,CACtC8L,SAAU2lC,EAAE59C,GACZ8D,QAAS,CACLy/E,OAAQhM,IAEb,8BACI35B,EAGJ,oBAAM4lC,CAAexjF,EAAY8D,GACpC,MAAM2/E,EAAoB1jF,KAAK2jF,cAAc1jF,EAAI8D,SAC3C/D,KAAK4jF,aAAa,iBAAkB,CACtCrU,QAAStvE,EACT8D,QAAS2/E,IAIV,eAAMjM,CAAUuL,EAAwDj/E,GAC3E,MAAM2/E,EAAoB1jF,KAAK2jF,cAAcX,EAAa/iF,GAAI8D,GAM9D,aALM/D,KAAKoM,QAAQ,kBAAmB,CAClC8L,SAAU8qE,EAAa/iF,GACvB8D,QAAS2/E,IAGNV,EAGJ,mBAAMtL,CAAcx/D,EAAkBnU,GACzC,IAAKA,EACD,MAAM,IAAIlE,MAAM,oCAGpB,MAAMgkF,EAAc,IAAK9/E,GAEpB8/E,EAAYC,mBACbD,EAAYC,iBAAmB,GAG9BD,EAAYE,iBACbF,EAAYE,eAAiB,GAGjC,MAAMC,EAA8IhkF,KAAKikF,uBAAuB/rE,EAAU2rE,GAE1L,OAAO7jF,KAAKoM,QAAQ,iBAAkB,CAAE8L,WAAUnU,QAASigF,IAAev2E,MAAK,KAC3E,MAAMy2E,EAAUF,EAAYG,MAAM/8E,KAAKg9E,GAAMA,EAAEnkF,KA8B/C,OA5BA+jF,EAAYG,MAAM/kF,SAASglF,IACvB,IAAI54E,EAA+D,mBAAnB44E,EAAa,YACzDA,EAAEC,YAAc,IAAMD,EAAEC,YAExBtgF,EAAQ4P,gBAAgBsX,UAAYm5D,EAAEC,cACtC74E,EAAW1D,MAAO0G,EAAgD81E,KAC9D,IAAI1gF,EAUJ,OANIG,EAAQ4P,gBAAgBsX,WACxBrnB,QAAeG,EAAQ4P,KAAKnF,EAAM81E,IAKlCF,EAAEC,uBAAuBp5D,UAAYm5D,EAAEC,cAAgBtgF,EAAQ4P,WAClDywE,EAAEC,YAAY71E,EAAM81E,IAAW1gF,EAIzCA,GAAUwgF,EAAEC,WAAW,GAGtCrkF,KAAK2Q,UAAUjE,SAAS,GAAGs3E,EAAYO,YAAYH,EAAEnkF,MACrDD,KAAK2Q,UAAUpF,IAAI,GAAGy4E,EAAYO,YAAYH,EAAEnkF,KAAMuL,EAAS,IAG5D,CACHmuB,QAAS,IAAM35B,KAAKwkF,iBAAiBR,EAAYO,SAAUL,GAC3DngF,QAAS8/E,EACZ,IAIF,mBAAMlM,CAAcz/D,EAAkB0/D,GACzC,OAAO53E,KAAKoM,QAAQ,gBAAiB,CAAE8L,WAAUnU,QAAS,CAAE6zE,aAGzD,iBAAM6M,CAAYC,GACrB,OAAO1kF,KAAKoM,QACR,cACA,CAAErI,QAAS,CAAE2gF,eAId,kCAAMC,CAA6BJ,EAAkB/1E,GACxD,MAEMo2E,EAAyD,CAC3DC,OAAQr2E,EAAKs2E,UACbC,oBAAqBv2E,EAAKu2E,oBAC1BC,gBAAiBx2E,EAAKw2E,iBAGpBC,QAAkBn/E,QAAQsf,IAAIplB,KAAK2Q,UAAUvE,QAAQ,GAAGm4E,KAAY/1E,EAAKs2E,YAAaF,GARrE,IAAMp2E,EAAK81E,QAAS,KAU3C,GAAyB,IAArBW,EAAUvnF,OAAc,CACxB,MAAMwnF,EAAkB,CAAE/5B,OAAQ,EAAGD,MAAO,EAAGpwC,IAAK,EAAGmI,KAAM,GACvD+wB,EAAqC,iBAAlBixC,EAAU,IAAqB3mF,MAAMC,QAAQ0mF,EAAU,IAAqBC,EAAfD,EAAU,GAGhG,MAFyC,IAAKz2E,EAAMu2E,oBAAqB/wC,IAM1E,4BAAMmxC,CAAuBhZ,EAAoBvlD,SACpD,MAAM5b,EAA+C,QAAnCY,EAAA5L,KAAKohF,eAAejV,UAAe,IAAAvgE,EAAAA,EAAA,GACrD,IAAIw5E,GAAY,EAChB,MAAMC,EAAqB,GAa3B,aAZMv/E,QAAQsf,IAAIpa,EAAU5D,KAAKi4C,GACtB,IAAIv5C,SAAc,CAACC,EAAS6H,KAC/ByxC,GAAG,KACCt5C,GAAS,IACV,KACC6H,GAAQ,IACR03E,IACAF,GAAY,EACZC,EAAYnlF,KAAKolF,EAAM,GACxB1+D,EAAK,OAGT,CAAEw+D,YAAWC,eAGjB,YAAMvN,CAAO1yE,GAIhB,aAHMpF,KAAKoM,QAAQ,SAAU,CACzB8L,SAAU9S,EAAOnF,KAEdmF,EAGJ,aAAM2yE,CAAQ3yE,GAIjB,aAHMpF,KAAKoM,QAAQ,UAAW,CAC1B8L,SAAU9S,EAAOnF,KAEdmF,EAGJ,mBAAMyyE,CAAczyE,EAAkDssE,GAOzE,aANM1xE,KAAKoM,QAAQ,gBAAiB,CAChC8L,SAAU9S,EAAOnF,GACjB8D,QAAS,CACL2tE,gBAGDtsE,EAGJ,kBAAM4yE,CAAa5yE,GAKtB,aAJMpF,KAAKoM,QAAQ,eAAgB,CAC/B8L,SAAU9S,EAAOnF,KAGdmF,EAGJ,aAAM6yE,CAAQ7yE,EAAkDrB,GAMnE,aALgC/D,KAAKoM,QACjC,oBACA,CAAE8L,SAAU9S,EAAOnF,GAAI8D,QAAS,IAAKA,MACtCyK,KAKA,kBAAM+2E,CAAaxmC,EAAqBh7C,GAM3C,aALwC/D,KAAKoM,QACzC,yBACA,CAAE8L,SAAU6mC,EAAU,GAAIh7C,QAAS,CAAEyhF,eAAgBzmC,KAAch7C,MACpEyK,KAKA,WAAM2pE,CAAMnG,EAAwDjuE,GAMvE,aALM/D,KAAKoM,QACP,QACA,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,QAAS,IAAKA,KAGxCiuE,EAGJ,cAAMuG,CAASvG,EAAwDjuE,GAM1E,aALM/D,KAAKoM,QACP,WACA,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,QAAS,IAAKA,KAGxCiuE,EAGJ,eAAM2H,CAAUzhE,EAAkBnU,GACrC,OAAO/D,KAAKoM,QACR,YACA,CAAE8L,WAAUnU,QAAS,IAAKA,KAI3B,WAAM60E,CAAM5G,EAAwDjuE,GAKvE,aAJM/D,KAAKoM,QACP,QACA,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,QAAS,IAAKA,KAExCiuE,EAGJ,gBAAM8G,CAAW9G,EAAwDjuE,GAM5E,aALgC/D,KAAKoM,QACjC,aACA,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,QAAS,IAAKA,MAC5C0hF,SAKA,WAAMzM,CAAM5zE,EAAkDrB,GACjE,MAAMitB,EAAO,IAAKjtB,GAUlB,OATKA,EAAQ+xE,SAA+B,YAApB/xE,EAAQ+xE,UAC5B9kD,EAAK8kD,cAAgB1wE,EAAO23E,cAI5B/rD,EAAK8kD,SAAmC,iBAAjB9kD,EAAK8kD,SAAgD,iBAAjB9kD,EAAK8kD,UAChE9kD,EAAK8kD,QAAU9kD,EAAK8kD,QAAQ3pE,MAAQ,GAGjCnM,KAAKoM,QACR,QACA,CAAE8L,SAAU9S,EAAOnF,GAAI8D,QAAS,IAAKitB,KAItC,aAAMkX,CAAQ8pC,EAAwDsH,GAEzE,aADMt5E,KAAKoM,QAAQ,UAAW,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,QAAS,CAAEu1E,iBAC/DtH,EAGJ,cAAMyH,CAASzH,EAAwD5uD,EAAarf,EAAsF,CAAA,GAC7KA,EAAQ2hF,mBAAqB3hF,EAAQ4hF,OACrC,MAAM/hF,QAAyE5D,KAAKoM,QAAQ,cAAe,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,QAAS,CAAEqf,MAAKrf,aACxJ,MAAO,CACHqf,MACA5lB,KAAMoG,EAAOgiF,SACbjyE,KAAM/P,EAAOiiF,UAId,qBAAMjM,CAAgB5H,EAAwDjuE,GAEjF,aADM/D,KAAKoM,QAAQ,kBAAmB,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,YAC5DiuE,EAGJ,4BAAM6H,CAAuB7H,GAEhC,aADqBhyE,KAAKoM,QAAQ,yBAA0B,CAAE8L,SAAU85D,EAAa/xE,KAIlF,eAAMm6E,CAAUpI,EAAwDjuE,GAE3E,aADM/D,KAAKoM,QAAQ,YAAa,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,YACtDiuE,EAGJ,UAAAsI,CAActI,EAAwDjuE,GACzE,OAAO,IAAI+B,SAAQ,CAACoW,EAAKymE,KACrB,MAAMzkE,EAAQvP,GAAMmuD,aACd5jC,EAAKl5B,KAAK2Q,UAAUpF,IAAI,SAAUqb,IACpC,GAAkB,iBAAdA,EAAKxqB,MAA2BwqB,EAAK1O,WAAa85D,EAAa/xE,IAAM2mB,EAAKpY,KAAK0P,QAAUA,EAAO,CAChGgb,IACA,MAAM1qB,EAAOoY,EAAKpY,KACd,WAAYA,IACQ,WAAhBA,EAAKiE,OACLkwE,EAAI,IAAI9iF,MAAM2O,EAAKjB,UACI,eAAhBiB,EAAKiE,QACZyJ,EAAI1N,EAAK5K,aAKzB5D,KAAKoM,QAAQ,aAAc,CAAE8L,SAAU85D,EAAa/xE,GAAI8D,QAASnH,OAAOymB,OAAO,CAAE,EAAE,IAAKtf,GAAW,CAAEma,WAAW,IAWjH,aAAM9R,CAAQuoB,EAAiB5wB,KAAiBq/E,GACnD,OAAOpjF,KAAK8lF,YAAY9lF,KAAKihF,cAAetsD,EAAS5wB,KAAYq/E,GAG9D,kBAAMQ,CAAajvD,EAAiB5wB,KAAiBq/E,GACxD,OAAOpjF,KAAK8lF,YAAY9lF,KAAKghF,gBAAiBrsD,EAAS5wB,KAAYq/E,GAGhE,aAAMnK,CAAQp7B,EAA6C95C,GAC9D,MAAM6iB,EAAO,CACT1O,SAAU2lC,EAAE59C,GACZ8D,WAGJ,aADM/D,KAAKoM,QAAQ,UAAWwa,GACvBi3B,EAGJ,oBAAMotB,CAAe/yD,EAAkBnU,GAC1C,MAAM6iB,EAAO,CACT1O,WACAnU,iBAEE/D,KAAKoM,QAAQ,iBAAkBwa,GAGlC,iBAAM0lD,CAAYp0D,GACrB,MAAM0O,EAAO,CACT1O,YAGJ,aADqBlY,KAAKoM,QAAQ,cAAewa,GAI9C,SAAAm1D,CAAUvwE,EAAyIu6E,GACtJ,MAAMpgF,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,OAAIA,GAAoC,aAAxBogF,EAASxqC,WACd51C,EAASqgF,gBAAgBx6E,EAAUu6E,EAAS9lF,IAE5CD,KAAKimF,kBAAkBz6E,EAAUu6E,EAAS9lF,GAAI,aAItD,cAAAimF,CAAe16E,EAAiF8nE,GACnG,OAAOtzE,KAAKmmF,sBAAsB7S,EAAMrzE,GAAI,aAAa,EAAMuL,GAG5D,YAAAwwE,CAAaxwE,EAAiFu6E,GACjG,MAAMpgF,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,OAAIA,GAAoC,aAAxBogF,EAASxqC,WACd51C,EAAS+hD,kBAAkBl8C,EAAUu6E,EAAS9lF,IAE9CD,KAAKimF,kBAAkBz6E,EAAUu6E,EAAS9lF,GAAI,gBAItD,YAAAo8E,CAAa7wE,EAA2Gu6E,GAC3H,MAAMpgF,EAA6B,oBAAXP,QAA2BA,OAAeO,SAClE,OAAIA,GAAoC,aAAxBogF,EAASxqC,WACd51C,EAASiiD,uBAAuBp8C,EAAUu6E,EAAS9lF,IAEnDD,KAAKimF,kBAAkBz6E,EAAUu6E,EAAS9lF,GAAI,gBAItD,WAAMu5B,CAAMp0B,EAAkDwnD,GACjE,MAAMhmC,EAAO,CACT1O,SAAU9S,EAAOnF,GACjB8D,QAAS6oD,GAEPhpD,QAAe5D,KAAKoM,QAAQ,QAASwa,GAE3C,aADkBkmD,GAAYa,QAAQ/pE,EAAO3D,KAClC8nC,IAGR,iBAAMiyC,CAAYgJ,EAAwD5wE,GAC7E,MAAMwU,EAAO,CACT1O,SAAU8qE,EAAa/iF,GACvB8D,QAAS,CACLqO,SAGR,OAAOpS,KAAKoM,QAAQ,cAAewa,GAGhC,YAAM2yD,CAAOvH,SACVhyE,KAAKoM,QAAQ,SAAU,CAAE8L,SAAU85D,EAAa/xE,KAGnD,eAAMu5E,CAAUxH,SACbhyE,KAAKoM,QAAQ,YAAa,CAAE8L,SAAU85D,EAAa/xE,KAGtD,yBAAM65E,CAAoB10E,GAC7B,OAAOpF,KAAKoM,QAAQ,sBAAuB,CAAE8L,SAAU9S,EAAOnF,KAG3D,IAAA85E,CAAK30E,EAAkDrB,GAC1D,OAAO/D,KAAKoM,QAAQ,OAAQ,CAAE8L,SAAU9S,EAAOnF,GAAI8D,YAGhD,cAAAqiF,CAAenmF,GACLrD,OAAOC,KAAKmD,KAAKohF,gBACzBhiF,SAASpC,IACNA,EAAIwmB,WAAWvjB,WACRD,KAAKohF,eAAepkF,MAK/B,iBAAAipF,CAAkBz6E,EAAqK+4E,EAAkBnoF,GAC7M,OAAO4D,KAAKmmF,sBAAsB5B,EAAUnoF,GAAM,EAAOoP,GAGrD,qBAAA26E,CAAsB5B,EAAkBnoF,EAAciqF,EAAkB76E,GAC5E,MAAMvL,EAAK,GAAGskF,KAAYnoF,IAEnBkqF,EAAqB,OAItBxjE,EAAQ,WACV,GAAI9iB,KAAKohF,eAAenhF,GAAK,CACzB,MAAM+K,EAAYhL,KAAKohF,eAAenhF,GACtCD,KAAKohF,eAAenhF,GAAM+K,EAAU3I,QAAQg9C,GAAOA,IAAO7zC,IACnB,IAAnCxL,KAAKohF,eAAenhF,GAAIvC,eACjBsC,KAAKohF,eAAenhF,GAInC,GAAmB,KADoB,QAA3B2L,EAAA5L,KAAKohF,eAAenhF,UAAO,IAAA2L,EAAAA,EAAA,IAC/BlO,OAAc,CAClB,MAAMqG,EAAU,CACZ0Z,aAAa,GAEb4oE,EACArmF,KAAK4jF,aAAaxnF,EAAM,CACpBmzE,QAASgV,EACTxgF,YACDvB,MAAM8jF,GAETtmF,KAAKoM,QAAQhQ,EAAM,CACf8b,SAAUqsE,EACVxgF,YACDvB,MAAM8jF,KAKrB,OAAItmF,KAAKohF,eAAenhF,IACpBD,KAAKohF,eAAenhF,GAAIC,KAAKsL,GACtBsX,IAEP9iB,KAAKohF,eAAenhF,GAAM,CAACuL,GAE3B66E,EACArmF,KAAK4jF,aAAaxnF,EAAM,CAAEmzE,QAASgV,IAAY/hF,MAAM8jF,GAErDtmF,KAAKoM,QAAQhQ,EAAM,CAAE8b,SAAUqsE,IAAY/hF,MAAM8jF,GAG9CxjE,GAGH,sBAAAmhE,CAAuB/rE,EAAkBnU,GAC7C,MAAMwiF,EAA4B,CAACC,EAA4C5kD,KAC3E,GAAI79B,EAAQ69B,UAAyBz9B,IAAfqiF,EAAK5kD,IAAsC,OAAf4kD,EAAK5kD,IAAiB,CACpE,MAAM6kD,EAAmB1iF,EAAQ69B,GAChC4kD,EAAK5kD,GAAgB6kD,IAIxBtC,EAA2CpgF,EAAQogF,MAAM/8E,KAAKg9E,IAChEmC,EAA0BnC,EAAG,YAC7BmC,EAA0BnC,EAAG,mBAEzBrgF,EAAQ4P,WAA2BxP,IAAlBigF,EAAEC,aAA+C,OAAlBD,EAAEC,cAClDD,EAAEC,YAActgF,EAAQ4P,MAG3BywE,EAA4BsC,cAAgBtC,EAAEC,YAC9CD,EAA4BU,UAAYV,EAAElsE,SAEtCksE,EAAEuC,iBACHvC,EAAEuC,eAAiB,UAGhBvC,KAGX,MAAO,IACArgF,EACHogF,QACAI,SAAUrsE,EACVwuE,cAAe3iF,EAAQ4P,KACvBizE,kBAAmB7iF,EAAQ8iF,YAI3B,gBAAArC,CAAiBtsE,EAAkB4uE,GACvC,OAAO9mF,KAAKoM,QAAQ,yBAA0B,CAC1C8L,WACAnU,QAAS,CAAA,IACV0J,MAAK,KACJq5E,EAAQ1nF,SAASa,IACbD,KAAK2Q,UAAUjE,SAAS,GAAGwL,KAAYjY,IAAK,GAC9C,IAIF,mBAAA8mF,CAAoB/4C,KAAiCo1C,GACzD,MAAM4D,EAA6B,GAC7BC,EAAW7D,aAAA,EAAAA,EAAW/gF,QAAQrB,IAAOw5C,GAAkBx5C,KAAIoG,KAAKpK,GAC3D,IAAI8I,SAAe8iE,IACtB,MAAOxsE,EAAM8b,EAAW81B,EAAO91B,UAAYlb,EAAIupB,MAAM,KACrDygE,EAAI9mF,KAAKF,KAAK2Q,UAAUpF,IAAI,SAAUiD,IAC9BA,EAAKpS,OAASA,GAAQoS,EAAK0J,WAAaA,GACxC0wD,OAEL,MAGLh/D,EAAS,IAAI9D,SAAa,CAACC,EAAS6H,KACtC5N,KAAK24C,IAAI9xB,OAAY,kBAAmBmnB,EAAQhuC,KAAKqhF,UAAW,CAC5DxkD,cAAem+B,GACfl8B,wBAAyBi8B,KAExBttD,MAAMpG,IACCA,EAAEm4B,UAAYn4B,EAAEm4B,SAASzlB,SACzBnM,EAAOvG,GAEPtB,EAAQsB,EAAEm4B,aAGjBh9B,OAAOkC,GAAMkJ,EAAOlJ,IAAG,IAEhC,OAAOoB,QAAQsf,IAAI,CAACxb,KAAWq9E,IAC1Bx5E,MAAMm7D,GACIA,EAAE,KAEZkV,SAAQ,KACLkJ,EAAI5nF,SAAS85B,GAAOA,KAAK,IAI7B,iBAAM4sD,CAAYz+C,EAAoB1S,EAAiB5wB,KAAiBq/E,GAC5E,MAAMzB,kBAAEA,KAAsBl6C,GAAmB1jC,EAC3CiqC,EAAS,IACRvG,EACH9S,WAGJ,IAAI6sD,EACJxhF,KAAKkhF,UAAY,IAAIp7E,SAASC,IAC1By7E,EAAkBz7E,CAAO,IAE7B,IACI,MAAsB,oBAAXX,QAA2BA,OAAO81D,YAAoBwnB,WAAa,YAC7D1iF,KAAK+mF,oBAAoB/4C,KAAWo1C,SAEpCpjF,KAAKknF,iBAAiB7/C,EAAY2G,EAAQ2zC,GAErD,QACNH,KAIA,sBAAM0F,CAAiB7/C,EAAoBtjC,EAAc49E,GAC7D,IAAIzoD,EACJ,IACI,MAAMhb,EAAQvP,GAAMmuD,aACdzkD,EAAQ,IAAIvS,SAAe8iE,IAC7B1vC,EAAKl5B,KAAK2Q,UAAUpF,IAAI,SAAUiD,IAC1BA,EAAK0P,QAAUA,GACf0qD,MAEN,IAEAx8D,EAAU,IAAItG,SAAa,CAACC,EAAS6H,KACvC7J,EAAQma,MAAQA,EACXyjE,EAKOA,EAAkB7iD,wBAElB6iD,EAAkB9kD,gBAC1B8kD,EAAkB9kD,cAAgBm+B,IAFlC2mB,EAAkB7iD,wBAA0Bi8B,GAL5C4mB,EAAoB,CAChB9kD,cAAem+B,GACfl8B,wBAAyBi8B,IAOjC/6D,KAAK24C,IAAI9xB,OAAYwgB,EAAYtjC,EAAS/D,KAAKqhF,UAAWM,GACrDl0E,MAAMpG,IACCA,EAAEm4B,UAAYn4B,EAAEm4B,SAASzlB,SACzBnM,EAAO,IAAI/N,MAAMwH,EAAEm4B,SAASzlB,WAE5BhU,EAAQsB,EAAEm4B,aAGjBh9B,OAAOkC,IACJ,MAAM4G,EAAQqD,GAAMypC,WAAW1zC,GAC/BkJ,EAAOtC,EAAM,GACf,IAIV,aADqBxF,QAAQsf,IAAI,CAAChZ,EAASiM,KAC7B,GACR,QACF6gB,GACAA,KAKJ,cAAA2pD,CAAesE,EAAqDtpC,GACxE,MAAMxiC,EAAUwiC,EAAE8G,OACZz3C,EAAW2wC,EAAE3wC,SACnB,IAAIi+C,EAASg8B,EAAUh8B,OACnBD,EAAQi8B,EAAUj8B,MAClBi8B,EAAUh8B,OAASj+C,EAAS8lE,YAC5B7nB,EAASj+C,EAAS8lE,WAElBmU,EAAUh8B,OAASj+C,EAAS+lE,YAC5B9nB,EAASj+C,EAAS+lE,WAElBkU,EAAUj8B,MAAQh+C,EAASgmE,WAC3BhoB,EAAQh+C,EAASgmE,UAEjBiU,EAAUj8B,MAAQh+C,EAASimE,WAC3BjoB,EAAQh+C,EAASimE,UAGrB,MAAMiU,GAAkBj8B,GAAS9vC,EAAQ8vC,SAAWA,EAC9Ck8B,GAAiBn8B,GAAQ7vC,EAAQ6vC,QAAUA,EAC3Co8B,GAAgBH,EAAUlkE,MAAO5H,EAAQ4H,OAASkkE,EAAUlkE,KAC5DskE,GAAeJ,EAAUrsE,KAAMO,EAAQP,MAAQqsE,EAAUrsE,IAE/D,OAAOssE,GAAmBC,GAAkBC,GAAiBC,EAGzD,mBAAAjE,CAAoBjmF,GACxB,IAEI,MAAM2zB,EAAY,CAAE,EACpB,IAAK,MAAMh0B,KAAOJ,OAAOC,KAAKQ,GAAU,CACpC,IAAIf,EAAQe,EAAQL,QACC,IAAVV,IACPA,EAAQ,MAEZ00B,EAAKh0B,GAAOV,EAEhB,OAAO00B,EACT,MACE,OAAO3zB,GAKP,aAAAsmF,CAAc1jF,EAAY8D,GAC9B,IAAKA,EACD,MAAM,IAAIlE,MAAM,oCAGpB,MAAMgkF,EAAc,IAAK9/E,GAEpB8/E,EAAY8C,iBACb9C,EAAY8C,eAAiB,UAUjC,MAPyE,IAClE9C,EACH2D,YAAa3D,EAAYlwE,KACzB4wE,SAAUtkF,EACVwnF,QAAS5D,EAAY3rE,YCzmCnB,MAAOwvE,GAajB,WAAAnrF,CAAYo8C,EAA+BxrC,EAAqCuhE,EAAyDC,EAAuDC,EAAoD+Y,EAAgBpY,GAX5PvvE,KAAS2Q,UAAqBu8D,KAYlCltE,KAAK+/C,KAAOpH,EACZ34C,KAAKg2B,QAAU7oB,EAAO6S,UAAU,UAChChgB,KAAK4nF,UAAYD,EACjB3nF,KAAKsvE,SAAWC,EAChBvvE,KAAK6nF,kBAAoBnZ,EACzB1uE,KAAK8nF,kBAAoBnZ,EACzB3uE,KAAK+nF,mBAAqBnZ,EAGvB,IAAA5qE,GACH,OAAO,IAAI8B,SAAQ,CAACC,EAAS6H,KACzB5N,KAAK+/C,KAAK7Z,SAAS,+BAA+B,CAACtf,EAAMkmB,IAC9C9sC,KAAKgoF,eAAephE,KAGT,IAAI9gB,SAAc,CAACmiF,EAAeC,KACpDloF,KAAK+/C,KAAKhnB,UAAU,kBAAmB,CACnCp0B,OAAQ,OACR4H,UAAW,CACP47E,YAAY,GAEhBh6C,OAAS47B,IACL,GAA6B,kBAAzBA,EAAWv7D,KAAKpS,KAGhB,OAFA4D,KAAK+9D,eAAiBgM,EAAWv7D,UACjCuF,GAASutE,iBAAiBthF,KAAK+9D,gBAGnC/9D,KAAKooF,aAAare,EAAWv7D,KAAMzI,GACnCgO,GAASwtE,YAAYxX,EAAWv7D,KAAK,EAEzCkgC,YAAc1lC,IACVhJ,KAAKgkE,aAAeh7D,EAEpB+K,GAAS/P,KAAKhE,KAAK+/C,KAAM//C,KAAKgkE,aAAa,IAEhDxhE,OAAO8I,UACN,MAAMiC,EAAU,GAAgB,QAAb3B,EAAAN,aAAA,EAAAA,EAAOwZ,cAAM,IAAAlZ,OAAA,EAAAA,EAAEtO,UAAUuJ,KAAKC,UAAUwE,aAAK,EAALA,EAAOg0B,kBAAkBh0B,aAAA,EAAAA,EAAOiC,UAC3FK,EAAO,IAAI/N,MAAM0N,GAAS,GAC5B,GACL,IAIT,YAAWwG,GACP,OAAOA,GAGJ,IAAA9F,CAAK3Q,EAAc8lB,EAAarf,GACnCA,EAAUA,GAAW,CAAE,EACvB,MAAMskF,EAAc,IAAKtkF,GAazB,YAX+BI,IAA3BkkF,EAAY7xB,YAA8D,iBAA3B6xB,EAAY7xB,aAC3D6xB,EAAY7xB,WAAa6xB,EAAY7xB,WAAWv2D,IAAM,IAG1DooF,EAAY/qF,KAAOA,EACnB+qF,EAAYjlE,IAAMA,EAGlBilE,EAAYC,YAAcvkF,EAAQukF,aAAevkF,EAAQ9E,aAElDopF,EAAYppF,MACZe,KAAK+T,SAAS9F,KAAKo6E,GAGvB,aAAA3Q,CAAcx/D,EAAkBnU,GACnC,OAAO/D,KAAK+T,SAAS2jE,cAAcx/D,EAAUnU,GAG1C,eAAM0zE,CAAUv/D,EAAkBnU,GACrC,MAAMqB,EAAS0nE,GAAYp6C,IAAIxa,SACzBlY,KAAK+T,SAAS0jE,UAAUryE,EAAO2iC,IAAKhkC,GAGvC,WAAAwkF,CAAY/8E,GACf,OAAOxL,KAAK2Q,UAAUpF,IAAI,eAAgBC,GAGvC,WAAAg9E,CAAYh9E,GACf,OAAOxL,KAAK2Q,UAAUpF,IAAI,eAAgBC,GAGvC,yBAAAimD,CAA0BjmD,GAC7B,OAAOxL,KAAK2Q,UAAUpF,IAAI,sBAAuBC,GAG9C,OAAAi9E,CAAQj9E,GACX,OAAOxL,KAAK2Q,UAAUpF,IAAI,eAAgBC,GAGvC,EAAAi9C,GACH,OAAOzoD,KAAK4nF,UAGT,OAAAc,GACH,OAAO1oF,KAAKsvE,SAIT,oBAAAqZ,CAAqBn9E,GACxB,OAAOxL,KAAK2Q,UAAUpF,IAAI,sBAAuBC,GAG9C,8BAAAo9E,CAA+Bp9E,GAClC,OAAOxL,KAAK2Q,UAAUpF,IAAI,uBAAwBC,GAG/C,wBAAAq9E,CAAyBr9E,GAC5B,OAAOxL,KAAK2Q,UAAUpF,IAAI,2BAA4BC,GAGnD,mBAAAs9E,CAAoBt9E,GACvB,OAAOxL,KAAK2Q,UAAUpF,IAAI,sBAAuBC,GAG9C,gBAAAu9E,CAAiBv9E,GACpB,OAAOxL,KAAK2Q,UAAUpF,IAAI,YAAaC,GAGpC,iBAAAw9E,CAAkBx9E,GACrB,OAAOxL,KAAK2Q,UAAUpF,IAAI,aAAcC,GAGrC,2BAAAy9E,CAA4Bz9E,GAC/B,OAAOxL,KAAK2Q,UAAUpF,IAAI,gCAAiCC,GAGvD,cAAAw8E,CAAephE,GACnB,MAAkB,+BAAdA,EAAKxqB,KACE4D,KAAK+T,SAAS4wE,6BAA6B/9D,EAAKpY,KAAK0J,SAAU0O,EAAKpY,MACtD,cAAdoY,EAAKxqB,MAAsC,iBAAdwqB,EAAKxqB,MAAyC,iBAAdwqB,EAAKxqB,KAClE4D,KAAK+T,SAASoxE,uBAAuBv+D,EAAKpY,KAAK29D,WAAYvlD,EAAKpY,KAAKoY,MAGzE9gB,QAAQ8H,OAAO,6BAA8BgZ,EAAaxqB,QAG7D,YAAAgsF,CAAac,EAAyBC,GAC1C,MAAMC,EAAsBppF,KAAKqpF,uBAAuBH,GAGxD,GAAwB,aAApBA,EAAW9sF,KAAqB,CAahC,OAZiC8sF,EACTttC,QAAQx8C,SAASy+C,IACrC,MAAMyrC,EAAiBxc,GAAYp6C,IAAImrB,EAAE59C,IACrCqpF,GACAA,EAAe9L,OAAOC,aAAaz9E,KAAKupF,8BAA8B1rC,IACtEyrC,EAAezI,kBAAoB7gF,KAAKwpF,uBAAuB3rC,IAE/D79C,KAAKypF,yBAAyB5rC,EAAE59C,GAAI49C,GAExC79C,KAAK2Q,UAAUvE,QAAQ,eAAgBg9E,EAAoB,SAE/DD,EAAanpF,MAKjB,GAAwB,oBAApBkpF,EAAW9sF,KAEX,YADA4D,KAAK2Q,UAAUvE,QAAQ,eAAgBg9E,GAK3C,GAAwB,YAApBF,EAAW9sF,KAAoB,CAC/B,MAAMstF,EAA0B,EAGhC,OAFA1pF,KAAK2pF,uBAAuBD,EAAuBxxE,SAAUwxE,EAAuBl7E,MAAQ,SAC5FxO,KAAK2Q,UAAUvE,QAAQ,eAAgBg9E,GAI3C,GAAwB,6BAApBF,EAAW9sF,KAAqC,CAChD,MAAM0U,EAAOo4E,EAGb,OAFAlpF,KAAK2Q,UAAUvE,QAAQ,2BAA4B0E,EAAKtC,WACxDxO,KAAK2Q,UAAUvE,QAAQ,eAAgB88E,GAI3C,GAAwB,wBAApBA,EAAW9sF,KAAgC,CAC3C,MAAM0U,EAAOo4E,EAGb,OAFAlpF,KAAK2Q,UAAUvE,QAAQ,sBAAuB0E,EAAKtC,WACnDxO,KAAK2Q,UAAUvE,QAAQ,eAAgB88E,GAI3C,GAAwB,gCAApBA,EAAW9sF,KAAwC,CACnD,MAAM0U,EAAOo4E,EAGb,OAFAlpF,KAAK2Q,UAAUvE,QAAQ,gCAAiC0E,EAAKtC,WAC7DxO,KAAK2Q,UAAUvE,QAAQ,eAAgB88E,GAK3C,MAAMU,EAAuC9c,GAAYp6C,IAAI,EAAaxa,UAC1E,IAAK0xE,EAED,YADA5pF,KAAKg2B,QAAQ1qB,MAAM,iDAAiDzE,KAAKC,UAAUoiF,EAAY,KAAM,MAIzG,MAAMW,EAAsDD,EAAsB7hD,IAC5E+hD,EAAgCF,EAAsBpM,OAG5D,GAAwB,kBAApB0L,EAAW9sF,KAA0B,CACrC,MAAM2tF,EAAgCb,EACtCY,EAAgB1L,oBAAoB2L,EAA6Bv7E,MAIrE,GAAwB,eAApB06E,EAAW9sF,KAAuB,CAClC,MAAM4tF,EAA6Bd,EACnCpc,GAAYQ,mBAAmB0c,EAA0B9xE,UACzD4xE,EAAgB9L,iBAAiBgM,EAA0Bx7E,MAI/D,GAAwB,iBAApB06E,EAAW9sF,KAAyB,CACpC,MAAM6tF,EAA0Bf,EAChCY,EAAgBjM,mBAAmBoM,EAAuBz7E,MAI9D,GAAwB,oBAApB06E,EAAW9sF,KAA4B,CACvC,MAAM8tF,EAAoChB,EAC1CY,EAAgBzJ,sBAAsB6J,EAAiC17E,MAyB3E,GArBwB,sBAApB06E,EAAW9sF,MACX0tF,EAAgB/L,wBAAwBmL,EAAW16E,MAI/B,mBAApB06E,EAAW9sF,MACX0tF,EAAgB5L,qBAAqBgL,EAAW16E,MAI5B,iBAApB06E,EAAW9sF,MACX0tF,EAAgBnM,wBAAwBuL,EAAW16E,MAI/B,sBAApB06E,EAAW9sF,OACX0tF,EAAgBhL,wBAAwBoK,EAAW16E,MACnDxO,KAAK2Q,UAAUvE,QAAQ,sBAAuBy9E,IAI1B,uBAApBX,EAAW9sF,KAA+B,CAC1C,MAAM+tF,EAA+BjB,EACrCY,EAAgBzK,yBAAyB8K,EAA6B37E,MACtEs+D,GAAYW,2BAA2Bmc,GACvC5pF,KAAK2Q,UAAUvE,QAAQ,sBAAuB+9E,EAA6B37E,MAG/E,GAAwB,iCAApB06E,EAAW9sF,KAAyC,CACpD,MAAM0U,EAAOo4E,EACbY,EAAgBrK,mCAAmC3uE,EAAKtC,KAAK47E,oBAC7DpqF,KAAK2Q,UAAUvE,QAAQ,uBAAwB0E,EAAKtC,MAIxD,GAAwB,iBAApB06E,EAAW9sF,KAAyB,CACpC,MAAMiuF,EAA0BnB,EAChClpF,KAAKsqF,aAAaR,EAAiBD,EAAWQ,EAAuB77E,MAQzE,GALwB,uBAApB06E,EAAW9sF,OACX0tF,EAAgB/K,oBAAoBmK,EAAW16E,KAAKwiE,QAASkY,EAAW16E,KAAKwiE,QAASkY,EAAW16E,KAAKmhE,oBACtG3vE,KAAK2Q,UAAUvE,QAAQ,kBAGH,qBAApB88E,EAAW9sF,KAA6B,CACxC,MAAM4jF,EAAmBc,GAAuB+I,EAAU5pF,GAAIipF,EAAW16E,KAAKwiE,SACxExiE,EAAO06E,EAAW16E,KACxBs7E,EAAgBlK,eAAepxE,EAAKwiE,QAASxiE,EAAKwiE,QAASxiE,EAAKmhE,mBAAoBnhE,EAAK0iE,SAAU8O,GAC9FvyE,MAAK3F,UAEEk4E,EAAiBtiF,OAAS,UACpBqW,GAAS6pE,SACf59E,KAAK2Q,UAAUvE,QAAQ,eAAgBy9E,EAAWX,EAAW16E,KAAKwiE,QAASkY,EAAW16E,KAAKmhE,wBAK3G,GAAwB,uBAApBuZ,EAAW9sF,KAA+B,CAE1C,MAAMmuF,EAAgBV,EAAUjZ,WAC1BoP,EAAmBc,GAAuB+I,EAAU5pF,GAAIsqF,GAC9DT,EAAgB5J,eAAegJ,EAAW16E,KAAK0iE,SAAU8O,GACpDvyE,MAAK3F,UAEEk4E,EAAiBtiF,OAAS,UACpBqW,GAAS6pE,SACf59E,KAAK2Q,UAAUvE,QAAQ,eAAgBy9E,EAAWX,EAAW16E,KAAKwiE,QAAS6Y,EAAUjZ,gBAK7E,+BAApBsY,EAAW9sF,MACX0tF,EAAgBpK,iCAAiCwJ,EAAW16E,KAAKmhE,oBAG7C,0BAApBuZ,EAAW9sF,MACX0tF,EAAgB9K,4BAA4BkK,EAAW16E,KAAKg8E,YAAatB,EAAW16E,KAAKi8E,cAGrE,kBAApBvB,EAAW9sF,MACX0tF,EAAgBjL,yBAAyBqK,EAAW16E,MAGhC,gBAApB06E,EAAW9sF,MACX0tF,EAAgBxL,uBAAuB4K,EAAW16E,MAG9B,kBAApB06E,EAAW9sF,MACX0tF,EAAgBpL,yBAAyBwK,EAAW16E,MAGhC,4BAApB06E,EAAW9sF,MACX0tF,EAAgB1J,wBAAwB8I,EAAW16E,MAI/B,WAApB06E,EAAW9sF,OACX0wE,GAAY7mC,OAAO2jD,GACnBE,EAAgBpM,qBAGI,yBAApBwL,EAAW9sF,MACX0tF,EAAgB3L,2BAA2B+K,EAAW16E,MAGlC,6BAApB06E,EAAW9sF,MACX0tF,EAAgBxJ,+BAA+B4I,EAAW16E,MAGtC,mBAApB06E,EAAW9sF,MACX0tF,EAAgBtJ,qBAAqB0I,EAAW16E,MAG5B,8BAApB06E,EAAW9sF,MACX0tF,EAAgBvK,gCAAgC2J,EAAW16E,MAGvC,oBAApB06E,EAAW9sF,MACX0tF,EAAgBtK,sBAAsB0J,EAAW16E,MAG7B,qCAApB06E,EAAW9sF,MACX0tF,EAAgBlJ,iCAAiCsI,EAAW16E,MAIhExO,KAAK2Q,UAAUvE,QAAQ,eAAgBg9E,GAGnC,wBAAAK,CAAyBvxE,EAAkBnU,GAC/C,MAAM2mF,EAAqB1qF,KAAK2qF,iBAAiBzyE,EAAUnU,GAC3D+oE,GAAYvhE,IAAIm/E,EAAoB,CAChC3nE,OAAO,EACPyqD,YAAY,EACZE,oBAAoB,IAIpB,sBAAAic,CAAuBzxE,EAAkBnU,SAC7C,MAAM2mF,EAAqB1qF,KAAK2qF,iBAAiBzyE,EAAUnU,GACrD6mF,EAAiD,WAAtCF,EAAmB3iD,IAAIwT,WAClCsvC,EAAoD,aAAtCH,EAAmB3iD,IAAIwT,YAA6D,cAAhCmvC,EAAmB3iD,IAAI4gB,KACzFmiC,GAAgD,IAArCJ,EAAmB3iD,IAAIsc,UACxC,IAAImpB,GAAa,EACbE,GAAqB,EACrBkd,IAEApd,GAAa,IAGbqd,GAAeC,KAEfpd,GAAqB,GAGpBkd,IACDpd,IAAiC,QAAnB5hE,EAAA5L,KAAK+9D,sBAAc,IAAAnyD,OAAA,EAAAA,EAAEu1E,8BAGvCrU,GAAYvhE,IAAIm/E,EAAoB,CAChC3nE,OAAO,EACPyqD,aACAE,uBAIA,gBAAAid,CAAiBzyE,EAAkBnU,GACvC,MAAM2mF,EAAoCjc,GAAcv2D,EAAUlY,KAAKupF,8BAA8BxlF,GAAUgQ,GAAU/T,KAAKg2B,QAASh2B,KAAK6nF,kBAAmB7nF,KAAK8nF,kBAAmB9nF,KAAK+nF,mBAAoB/nF,KAAK+/C,MAErN,OADA2qC,EAAmB7J,kBAAoB7gF,KAAKwpF,uBAAuBzlF,GAC5D2mF,EAGH,kBAAMJ,CAAaR,EAA+BD,EAAqDrlC,GAC3GslC,EAAgBzL,mBAAmB75B,GACnC,IAESxkD,KAAK+9D,eAAeojB,mCACfrU,GAAYa,QAAQkc,EAAU5pF,IAE1C,MAAOqL,GACL,OAEAk5C,EACAxkD,KAAK2Q,UAAUvE,QAAQ,YAAay9E,GAEpC7pF,KAAK2Q,UAAUvE,QAAQ,aAAcy9E,GAIrC,6BAAAN,CAA8B3iE,GAElC,MAAO,CACHtpB,KAAMspB,EAAKtpB,KACXD,QAASupB,EAAKvpB,QACdsnD,OAAQ/9B,EAAK+9B,OACbvhC,IAAKwD,EAAKxD,IACVle,MAAO0hB,EAAK1hB,MACZm/C,UAAWz9B,EAAKy9B,UAChBG,MAAO59B,EAAKwsD,UACZn0E,MAAO2nB,EAAK3nB,MACZ+/C,WAAYp4B,EAAKo4B,WACjBuwB,QAAS3oD,EAAK2oD,QACdF,WAAYzoD,EAAK04D,UACjBlM,UAAWxsD,EAAKwsD,UAChB3D,qBAAsB7oD,EAAKwjE,mBAC3B3Z,YAAa7pD,EAAK6pD,YAClBG,WAAYhqD,EAAKoqD,QACjBA,QAASpqD,EAAKoqD,QACdroB,KAAM/hC,EAAK+hC,KACXgnB,mBAAoB/oD,EAAK+oD,mBACzBM,cAAerpD,EAAKmkE,YACpB79E,SAAU0Z,EAAK1Z,SACfquC,WAAY30B,EAAK20B,WACjBm2B,WAAY9qD,EAAK8qD,WAEjBR,SAAUtqD,EAAKsqD,SACfU,kBAAmBhrD,EAAKgrD,kBACxBrB,SAAU3pD,EAAK2pD,SACfO,SAAUlqD,EAAKkqD,SAEfU,aAAc5qD,EAAK4qD,aACnBwZ,gBAAiBpkE,EAAKitD,SACtBt6D,gBAAiBqN,EAAKrN,gBACtB63D,mBAAoBxqD,EAAKwqD,mBACzBE,SAAU1qD,EAAK0qD,UAIf,sBAAAkY,CAAuB5iE,GAC3B,MAAO,CACHipD,kBAAmBjpD,EAAKipD,kBACxBE,eAAgBnpD,EAAKmpD,gBAIrB,sBAAAsZ,CAAuB4B,GAC3B,IAEI,IAAKA,EAAY/yE,SACb,OAAO+yE,EAIX,MAAM7lF,EAAS0nE,GAAYp6C,IAAIu4D,EAAY/yE,UAC3C,IAAK9S,EACD,OAAO6lF,EAGX,MAAMrnF,EAA8B,CAChC3E,MAAOgsF,EAAY7uF,KACnB8pD,WAAY9gD,EAAO2iC,IAAIzqC,QACpB2tF,GAoBP,MAjBqB,qBAAjBrnF,EAAO3E,QACP2E,EAAO3E,MAAQ,eAGE,iBAAjB2E,EAAO3E,QAEP2E,EAAO3E,MAAQ2E,EAAO4K,KAAK08E,OAAO,GAAGC,cAAgBvnF,EAAO4K,KAAKjP,MAAM,IAGtD,gBAAjBqE,EAAO3E,QACP2E,EAAO3E,MAAQ,oBAGE,kBAAjB2E,EAAO3E,QACP2E,EAAO3E,MAAQ,sBAGZ2E,EACT,MAAO0H,GACL,OAAO2/E,ICzhBnB,ICGAG,GAAe,CAACnrF,EAAY8T,KAExB,MAAMpD,EAA8B06E,KAE9BC,EAAuB,GAE7B,IAAIC,EACAlb,EAwDJvoE,eAAesE,EAAQuoB,EAAiB5wB,KAAwClH,GAE5E,aADMkX,EAAS3H,QAAwCuoB,EAAS5wB,KAAYlH,GACrE2uF,EAwBX,SAASC,IACL,MAAMC,EAAyD,GAS/D,OAPAJ,EAAWlsF,SAASmzE,IAChB,MAAMoZ,EAAeC,EAAmBrZ,QACZ,IAAjBoZ,GACPD,EAAWxrF,KAAKyrF,MAIjBD,EAGX,SAASE,EAAmB1zE,GACxB,OAAO40D,GAAYp6C,IAAIxa,GAAY40D,GAAYp6C,IAAIxa,GAAU6vB,SAAM5jC,EA8DvE,MAAMqnF,EAA8C,CAChDvrF,KACA,WAAI27C,GACA,OAjH8D6vC,GAkHjE,EACD9xE,KAzIJ,SAAcvU,EAA2DkT,EAAsEhN,GAC3I,IAAIinE,EACkB,iBAAXntE,EACPmtE,EAAQntE,EACAo1C,GAAkBp1C,KAC1BmtE,EAAQntE,EAAOnF,IAGnB,MAAMu+C,EAAMotC,EAAmBrZ,GAC/B,GAAI/zB,EAIA,MAHuB,mBAAZlmC,GACPA,EAAQkmC,GAELA,EAEc,mBAAVlzC,GACPA,EAAM,sBAAsBinE,MA0HpC,mBAAIsZ,GACA,YA/DqD1nF,IAD1BsnF,IAAsB9xE,MAAMkkC,IAAOA,EAAE4xB,sBAiEnE,EACD,gBAAIqc,GACA,OA5DGP,CA6DN,EACD,aAAIlnC,GACA,OAAOgsB,CACV,EACD0b,WAAY,CAACzzE,EAAShN,IACXymE,GAAM1W,oBAAmB,IACrBjvD,EAAQ,2BAA4B,CAAE8L,SAAUozE,EAAW,GAAIvnF,QAAS,CAAEy/E,QAAQ,OAAa8H,EAAWlkF,KAAKy2C,GAAM,gCAAgCA,QAC7JvlC,EAAShN,GAEhB0gF,WAAY,CAAC1zE,EAAShN,IACXymE,GAAM1W,oBAAmB,IACrBjvD,EAAQ,2BAA4B,CAAE8L,SAAUozE,EAAW,GAAIvnF,QAAS,CAAEy/E,QAAQ,OAAc8H,EAAWlkF,KAAKy2C,GAAM,gCAAgCA,QAC9JvlC,EAAShN,GAEhBwxE,SAAUh1E,gBACUiM,EAAS3H,QAA2B,gBAAiB,CAAE8L,SAAUozE,EAAW,MACnFpmF,MAEbmvE,SAAUvsE,MAAO5C,IACb,GAAIu1C,GAAmBv1C,GACnB,MAAM,IAAIrF,MAAM,0CAEpB,OAAOuM,EAAQ,gBAAiB,CAAE8L,SAAUozE,EAAW,GAAIvnF,QAAS,CAAEmB,UAAU,EAEpF+yE,QAAUC,GACCnkE,EAASwxE,aAAa+F,EAAYpT,GAE7CpE,SAAU,CAACx7D,EAAShN,IACTymE,GAAM1W,oBAAmB,IACrBjvD,EAAQ,gBAAiB,CAAE8L,SAAUozE,EAAW,OAASA,EAAWlkF,KAAKy2C,GAAM,gBAAgBA,QACvGvlC,EAAShN,GAEhByoE,QAAS,CAACz7D,EAAShN,IACRymE,GAAM1W,oBAAmB,IACrBjvD,EAAQ,eAAgB,CAAE8L,SAAUozE,EAAW,OAASA,EAAWlkF,KAAKy2C,GAAM,gBAAgBA,QACtGvlC,EAAShN,GAEhBqqE,KAAOpxB,IACH,IAAK/J,GAAkB+J,KAAc5J,GAAU4J,GAC3C,MAAM,IAAI1kD,MAAM,oCAGpB,OADA0kD,IAAY/J,GAAkB+J,IAAYA,EACnCxwC,EAAS6vE,aAAa,YAAa,CACtCrU,QAAStvE,EACT8D,QAAS,CAAEwgD,aACb,EAENqxB,KAAM,IACK7hE,EAAS6vE,aAAa,YAAa,CACtCrU,QAAStvE,IAGjBgsF,OAAS,IACEl4E,EAAS6vE,aAAa,cAAe,CACxCrU,QAAStvE,IAGjB+N,MAAO,IACI+F,EAAS6vE,aAAa,aAAc,CACvCrU,QAAStvE,IAGjBw3E,UAAY1zE,GACDgQ,EAAS0vE,eAAexjF,EAAI8D,GAEvCmoF,0BAvHJ,SAAmC1gF,GAC/B,OAAOmF,EAAUpF,IAAI,4BAA6BC,IAuHlD84D,cApHJ,SAAuB94D,GACnB,OAAOmF,EAAUpF,IAAI,eAAgBC,IAoHrC2gF,gBAjHJ,SAAyB3gF,GACrB,OAAOmF,EAAUpF,IAAI,iBAAkBC,IAiHvC6vE,oBA9GJ,SAA6B7vE,GACzB,IAAKA,EACD,MAAM,IAAI3L,MAAM,iCAEpB,GAAI2L,GAAgC,mBAAbA,EACnB,MAAM,IAAI3L,MAAM,wCAEpB,OAAO8Q,EAAUpF,IAAI,2BAA4BC,IAwGjDuwE,UArGJ,SAAmBvwE,GACf,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,+BAYpB,OAAOkU,EAASmyE,gBARgB,CAAC5tE,EAAqBhN,EAAmBq9D,KACrE,MAAMx5D,EAAU3D,EAASm9D,IACrBx5D,aAAO,EAAPA,EAAS1B,MACT0B,EAAQ1B,KAAK6K,GAAS9V,MAAM8I,GAE5BgN,MAGqCkzE,KA0F3CY,EAA0B,CAC5B,WAAIxwC,GACA,OAAO0vC,CACV,EACDprC,UAjPJp4C,eAAyByqE,eACrB,IAAkC,IAA9B+Y,EAAW/3E,QAAQg/D,GAAe,CAClC+Y,EAAWprF,KAAKqyE,GAChB,MAAM/zB,EAAqBsuB,GAAYp6C,IAAI6/C,GAC3C/zB,EAAIg/B,OAAOmC,mBAAmB6L,OAAarnF,GAC3ConF,EAAoF,QAAhE/vC,EAA2C,QAA3C5vC,EAAA4yC,EAAIqiC,kBAAkBhR,yBAAqB,IAAAjkE,EAAAA,EAAA2/E,SAAqB,IAAA/vC,GAAAA,EACpF60B,EAAmE,QAAtDr3C,EAAwC,QAAxC0oC,EAAAljB,EAAIqiC,kBAAkB9Q,sBAAkB,IAAArO,EAAAA,EAAA2O,SAAc,IAAAr3C,GAAAA,QAC7DjlB,EAAS6pE,SACfjtE,EAAUvE,QAAQ,eAAgBo/E,EAAahtC,EAAIzW,OA0OvDskD,aAtOJvkF,eAA4B02C,GACxB,MAAMryC,EAAgBm/E,EAAW/3E,QAAQirC,EAAIzW,IAAI9nC,KACnC,IAAVkM,IACAm/E,EAAW59D,OAAOvhB,EAAO,GACzBqyC,EAAIg/B,OAAOmC,wBAAmBx7E,EAAWqnF,SACnCz3E,EAAS6pE,SACfjtE,EAAUvE,QAAQ,iBAAkBo/E,EAAahtC,EAAIzW,OAiOzD03C,mCAtLJ,SAA4CyJ,GACxCv4E,EAAUvE,QAAQ,4BAA6Bo/E,IAsL/Cc,6BAnLJ,SAAsCC,GAClClc,EAAakc,EACb57E,EAAUvE,QAAQ,2BAA4Bo/E,IAkL9CgB,4BA/KJ,SAAqCC,GACjClB,EAAoBkB,IAiLxB,MAAO,CACHC,SAAUlB,EACVmB,cAAeP,EAClB,EC9PLQ,GAAe,CAACpkD,EAA0Br7B,KACtC,MAAMwD,EAA8B06E,KAC9BwB,EAA2C,CAAE,EACnD,IAAIC,GAA2B,EAG/B,MAAMlxC,EAAUkxB,GAAYrc,KAwH5B,SAASs8B,EAAkBxa,EAA0Dj6D,EAA2DhN,GAC5I,IAAI4M,EACiB,iBAAVq6D,EACPr6D,EAAWq6D,EACH/3B,GAAkB+3B,KAC1Br6D,EAAWq6D,EAAMtyE,IAErB,MAAM2D,EAAShH,OAAOD,OAAOkwF,GAASlzE,MAAMqzE,GACMA,EAASN,SACpC9wC,QAAQv5C,QAAQw7C,GAAMA,EAAE59C,KAAOiY,IACtCxa,SAEhB,GAAIkG,EAIA,MAHuB,mBAAZ0U,GACPA,EAAQ1U,EAAO8oF,UAEZ9oF,EAAO8oF,SACU,mBAAVphF,GACdA,EAAM,wCAId,SAAS2hF,EAAa1d,GAClB,OAAKA,EAGE,IAAIzpE,SAAQ,CAACoW,EAAKymE,KACrB,MAAMuK,EAAeL,EAAQtd,GAC7B,GAAI2d,EACAhxE,EAAIgxE,EAAaR,cACd,CACH,MAAMxzD,EAAKi0D,GAAc7Z,IACjBA,EAAMrzE,KAAOsvE,IACbr2C,IACAhd,EAAIo3D,WAVTxtE,QAAQ8H,OAAO,IAAI/N,MAAM,4BA0CxC,SAASstF,EAAa3hF,GAClB,OAAOmF,EAAUpF,IAAI,cAAeC,GAyDxC,SAAS00C,EAAUqvB,EAAiBgD,GAChC,MAAMe,EA1BV,SAAqB/D,GACjB,GAAKsd,EAAQliF,eAAe4kE,GAUxB,OAAOsd,EAAQtd,GAVmB,CAElC,MAAM6d,EAAoChC,GAAa7b,EAAS/mC,EAAYz0B,UAC5E84E,EAAQtd,GAAW6d,EAEnB,MAAM9Z,EAAQ8Z,EAAoBV,SAGlC,OAFA/7E,EAAUvE,QAAQ,cAAeknE,GAE1B8Z,GAiBGC,CAAY9d,GAE1B,OADA+D,EAAMqZ,cAAczsC,UAAUqyB,GACvBe,EAGX,SAAS+Y,EAAa/Y,EAAqB90B,GAClC80B,IAGLA,EAAMqZ,cAAcN,aAAa7tC,GApBrC,SAAuB0uC,GACnB,MAAM5Z,EAAQ4Z,EAAaR,SACE,IAAzBpZ,EAAM13B,QAAQl+C,gBACPmvF,EAAQvZ,EAAMrzE,IACrB8T,GAASqyE,eAAe9S,EAAMrzE,IAC9B0Q,EAAUvE,QAAQ,gBAAiBknE,IAgBvCga,CAAcha,IAqClB,SAASia,EAAyBhb,GAC9B,IAAIr6D,EAMJ,MALqB,iBAAVq6D,EACPr6D,EAAWq6D,EACH/3B,GAAkB+3B,KAC1Br6D,EAAWq6D,EAAMtyE,IAEdrD,OAAOD,OAAOkwF,GAASlzE,MAAMqzE,GACVA,EAASL,cACJ/wC,QAAQv5C,QAAQpC,GAAOA,IAAOiY,IAC7Cxa,SAIpB,SAAS8vF,EAAmBje,GACxB,IAAKA,GAA8B,iBAAZA,EACnB,MAAM,IAAI1vE,MAAM,0DAnTxBjD,OAAOC,KAAK++C,GAASx8C,SAAS4B,IAC1B,MAAMw9C,EAAM5C,EAAQ56C,GACduuE,EAAU/wB,EAAIzW,IAAIwnC,QAClBgD,EAAQ/zB,EAAIzW,IAAI9nC,GAEjBw6C,GAAmB80B,IACpBrvB,EAAUqvB,EAASgD,MAI3BzF,GAAYhK,WAAWjlB,IAEnBwuC,EADckB,EAAyB1vC,EAAE9V,KACrB8V,EAAE,IAG1BrV,EAAYmgD,sBAAsBO,KAkPlC,SAAkCjqF,GAC9B,MAAMswE,EAAUtwE,EAAMswE,QAChBr3D,EAAWjZ,EAAMiZ,SACjBsmC,EAAMsuB,GAAYp6C,IAAIxa,GAC5B,IAAKsmC,EACD,OAEJ,MAAMivC,EAAeF,EAAyB/uC,EAAIzW,KAGlD,GAAIyS,GAAkB+0B,GAElB,YADA8c,EAAaoB,EAAcjvC,GAI/B,GAAIhE,GAAkBizC,KAAkBjzC,GAAkB+0B,GAEtD,YADArvB,EAAUqvB,EAAS/wB,EAAIzW,IAAI9nC,IAI3BwtF,EAAaf,SAASzsF,KAAOsvE,GAKrC,SAAoB/wB,EAAoBrjC,EAAc4f,GAClD,MAAMw3C,EAAQ/zB,EAAIzW,IAAI9nC,GAChBytF,EAAYb,EAAQ1xE,GAC1BkxE,EAAaqB,EAAWlvC,GACxB,MAAMmvC,EAAUztC,EAAUnlB,EAAIw3C,GAC9B/zB,EAAIg/B,OAAOmC,mBAAmBgO,EAAQjB,SAAUgB,EAAUhB,UAC1D/7E,EAAUvE,QAAQ,eAAgBmmE,EAAOp3D,EAAM4f,GAV3C6yD,CAAWpvC,EAAKivC,EAAaf,SAASzsF,GAAIsvE,GAtQ9C8P,CAAyB6J,EAAW,IAGxC1gD,EAAYogD,gCAAgCM,IACxC,MACM5V,EAAwCyZ,EAD7B7D,EAAWhxE,UAE5B,QAAqB,IAAVo7D,EAAuB,CAC9B,MAAMua,EAA4BhB,EAAQvZ,EAAMrzE,KAEjB,IAA3B6sF,IACAA,EAAyBxZ,EAAM13B,QAAQl+C,QAG3CovF,IAC+B,IAA3BA,IACAA,GAA2B,EAC3Be,EAAYlB,cAAclN,mCAAmCyJ,QAKzE1gD,EAAYqgD,0BAA0Br6E,IAClC,MAAMq/E,EAA4BhB,EAAQr+E,EAAK+gE,SAC3Cse,GACAA,EAAYlB,cAAcL,6BAA6B99E,EAAKk+C,YAIpElkB,EAAYsgD,qBAAqBt6E,IAC7B,MAAM0+E,EAAeL,EAAQr+E,EAAK+gE,SACf,eAAf/gE,EAAKvP,QACDiuF,aAAY,EAAZA,EAAcR,WACdQ,EAAaP,cAAcH,6BAA4B,GAE3D77E,EAAUvE,QAAQ,mBAAoBoC,EAAK+gE,UACrB,YAAf/gE,EAAKvP,SACRiuF,aAAY,EAAZA,EAAcR,WACdQ,EAAaP,cAAcH,6BAA4B,GAE3D77E,EAAUvE,QAAQ,gBAAiB8gF,EAAaR,cAkQxD,MAAMoB,EAA6C,CAC/C,MAAIrlC,GACA,OA9PR,iBACI,OAAOskC,EAAuC,QAArBnhF,EAAA48B,EAAYkgD,iBAAS,IAAA98E,EAAAA,EAAI48B,EAAYigB,MA6PnDA,EACV,EACDj7B,OA5PJ1lB,eAAsB/D,GAClB,GAAIy2C,GAAkBz2C,GAClB,MAAM,IAAIlE,MAAM,2BAGpB,GAAI26C,GAAkBz2C,EAAQ+pF,UAAYxvF,MAAMC,QAAQwF,EAAQ+pF,SAAqC,IAA1B/pF,EAAQ+pF,OAAOpwF,OACtF,MAAM,IAAImC,MAAM,kCAGpB,MAAMkuF,SAAEA,SAAmBh6E,GAAS6vE,aAAa,eAAgB,CAC7D7/E,YAEE+pF,EAAUC,EAAsB3mF,KAAKmoE,GAChC0d,EAAa1d,KAExB,OAAOzpE,QAAQsf,IAAI0oE,IA8OnB9/E,MA3OJlG,eAAqBkmF,EAAoDjqF,GACrE,GAAIy2C,GAAkBwzC,GAClB,MAAM,IAAInuF,MAAM,yBAGpB,IAAI0vE,EAAU,GAOd,GALIA,EADqB,iBAAdye,EACGA,EAEAA,EAAU/tF,GAGpBu6C,GAAkBz2C,GAClB,MAAM,IAAIlE,MAAM,iCAGdkU,GAAS6vE,aAAa,aAAc,CACtCrU,UACAxrE,aA0NJ0sD,KAtNJ,SAAcn4C,GACV,MAAM1U,EAA2ChH,OAAOC,KAAKgwF,GAASzlF,KAAKmoE,IACvE,GAAIsd,EAAQtd,GACR,OAAOsd,EAAQtd,GAASmd,YAQhC,MAHuB,mBAAZp0E,GACPA,EAAQ1U,GAELA,GA4MPmpF,oBACAE,eACAgB,WAlKJ,iBACI,OAAOhB,EAAkC,QAArBrhF,EAAA48B,EAAYkgD,iBAAS,IAAA98E,EAAAA,EAAI48B,EAAYigB,OAkKzD0kC,eACAe,eAvIJ,SAAwB1iF,GACpB,OAAOmF,EAAUpF,IAAI,gBAAiBC,IAuItC2iF,UArJJrmF,eAAyBynE,GAKrB,OAJAie,EAAmBje,SACbx7D,GAAS6vE,aAAa,iBAAkB,CAC1CrU,YAEGA,GAiJP6e,OAlKJtmF,eAAsBynE,EAAiBhrB,GAEnC,GADAipC,EAAmBje,IACd/0B,GAAkB+J,KAAc5J,GAAU4J,GAC3C,MAAM,IAAI1kD,MAAM,oCAEpB0kD,IAAY/J,GAAkB+J,IAAYA,QACpCxwC,GAAS6vE,aAAa,cAAe,CACvCrU,UACAxrE,QAAS,CAAEwgD,eA2Jf8pC,aAlIJ,SAAsB7iF,GAClB,IAAKA,EACD,MAAM,IAAI3L,MAAM,iCAEpB,GAAI2L,GAAgC,mBAAbA,EACnB,MAAM,IAAI3L,MAAM,wCAEpB,OAAO8Q,EAAUpF,IAAI,mBAAoBC,IA4HzC8iF,UAzHJ,SAAmB9iF,GACf,IAAKA,EACD,MAAM,IAAI3L,MAAM,iCAEpB,GAAI2L,GAAgC,mBAAbA,EACnB,MAAM,IAAI3L,MAAM,wCAEpB,OAAO8Q,EAAUpF,IAAI,gBAAiBC,KAyH1C,MAAO,CACH+iF,UAAWT,EACXU,aAJ2B,CAAEC,cA5IjC,SAAuBjjF,GACnB,OAAOmF,EAAUpF,IAAI,eAAgBC,KAgJxC,EC5VLkjF,GAAe,CAAC/1C,EAA+BxrC,EAAqCuhE,EAAyDC,EAAuDggB,EAAiD50B,KACjP,MAAMppD,EAA8Bu8D,KAC9Bl3C,EAAU7oB,EAChB,IAAI2gF,EACAtlD,EAEJskC,GAAY9oE,KAAKgyB,GAEjB,MAAM44D,EAAU,IAAI9oF,SAAc,CAACC,EAAS6H,KHhBjC,EAAC+qC,EAA+BxrC,EAAqCuhE,EAAyDC,EAAuDC,EAAoD7U,WACpP,MAAM/jC,EAAU7oB,EAChB,GAAuB,IAAnB4sD,EAGA,MADA/jC,EAAQtV,MAAM,iBACR,IAAI7gB,MAAM,qBACb,OAAIk6D,GAAkB,GAEzB/jC,EAAQtV,MAAM,mBACP,IAAImuE,GAAGl2C,EAAK3iB,EAAS04C,EAAkBC,EAAkBC,EAAmBxpE,OAAOO,SAASuS,SAA0C,QAAhCtM,EAACxG,OAAe0pF,wBAAgB,IAAAljF,OAAA,EAAAA,EAAE3L,IAAI+D,SAInJgyB,EAAQtV,MAAM,8BACP,IAAImuE,GAAGl2C,EAAK3iB,EAAS04C,EAAkBC,EAAkBC,GAAmB5qE,SGGnF+qF,CAAYp2C,EAAK3iB,EAAS04C,EAAkBC,EAAkBggB,EAAgB50B,GACzEtsD,MAAMwnC,IACHzM,EAAcyM,EACd64C,EAASlB,GAAc33C,GACvB01B,GAAgB3mE,KAAKixC,EAAIlhC,SAAU4kC,EAAK3iB,GACxCjwB,GAAS,IAEZvD,OAAOkC,IACJ,MAAMqH,EAAM,iEAAiErH,EAAE6I,UAC/EyoB,EAAQ1qB,MAAMS,EAAKrH,GACnBkJ,EAAO,IAAI/N,MAAMkM,GAAK,GACxB,IAOV,SAAS08C,IACL,MAAMumC,EAAWliB,GAAYK,WAAW3kC,EAAYigB,MACpD,OAAOumC,EAAWA,EAASjnD,SAAM5jC,EA6GrC,SAAS8qF,EAAYzjF,GACjB,OAAOmF,EAAUpF,IAAI,eAAgBC,GAGzC,SAAS0jF,EAAc1jF,GACnB,OAAOmF,EAAUpF,IAAI,iBAAkBC,GAuI3C,OAJAshE,GAAYiB,eARZ,SAA2BlwB,GACvBltC,EAAUvE,QAAQ,eAAgByxC,EAAE9V,QAQxC+kC,GAAYhK,WALZ,SAA6BjlB,GACzBltC,EAAUvE,QAAQ,iBAAkByxC,EAAE9V,QAOnC,CACH0gB,KACAx6C,KAxPJ,SAAc3Q,EAAc8lB,EAAarf,EAAmDuU,EAAsEhN,GAC9J,OAAOymE,GAAM1W,oBAAmB,KAC5B,GAAIga,GAAwB/3E,GACxB,MAAM,IAAIuC,MAAM,+BAEpB,GAAIw1E,GAAwBjyD,GACxB,MAAM,IAAIvjB,MAAM,8BAGpB,IAAK+9C,GAAuB75C,GAAU,CAClC,MAAMorF,EAAeprF,EACrB,IAAK,MAAM69B,IAAQ,CAAC,YAAa,YAAa,WAAY,WAAY,QAAS,SAAU,MAAO,QAC5F,GAAIA,KAAQutD,EAAc,CACtB,MAAM7yF,EAAQ6yF,EAAavtD,GAC3B,GAAIgc,GAAuBthD,GAAQ,QACxB6yF,EAAavtD,GACpB,SAEJ,IAAK6yC,GAAcn4E,GAAQ,CAEvB,MAAM,IAAIuD,MADS,GAAG+hC,sBAG1B,IAA2B,UAAvButD,EAAavtD,IAA4C,WAAvButD,EAAavtD,KAC3CtlC,GAAS,EAAG,CAEZ,MAAM,IAAIuD,MADS,GAAG+hC,iCAO1C,OAAO4G,EAAYv6B,KAAK3Q,EAAM8lB,EAAKrf,EAAQ,GAC5CuU,EAAShN,IAyNZqO,KAtNJ,SAAcrc,EAAcgb,EAAsEhN,GAC9F,MAAMswC,EAA4CkxB,GAAYrc,KAExD2+B,EAAoBxyF,OAAOC,KAAK++C,GAAS9+C,QAAmD,CAACC,EAAMw1E,WACrG,MAAMntE,EAAwBw2C,EAAQ22B,GAItC,OAHiB,QAAb3mE,EAAAxG,aAAA,EAAAA,EAAQ2iC,WAAK,IAAAn8B,OAAA,EAAAA,EAAAtO,QAASA,GACtBP,EAAKmD,KAAKkF,EAAO2iC,KAEdhrC,CAAI,GACZ,IAGH,GADYqyF,EAAkB,GAK1B,MAHuB,mBAAZ92E,GACPA,EAAQ82E,EAAkB,IAEvBA,EAAkB,GAEJ,mBAAV9jF,GACPA,EAAM,gCAAkChO,IAoMhD+xF,SA/LJ,SAAkBpvF,EAAYqY,EAAsEhN,GAChG,MAAMswC,EAA4CkxB,GAAYrc,KACxD2+B,EAAoBxyF,OAAOC,KAAK++C,GAAS9+C,QAAmD,CAACC,EAAMw1E,KACrG,MAAMntE,EAAwBw2C,EAAQ22B,GAItC,YAHsB,IAAXntE,GAA0BA,EAAO2iC,IAAI9nC,KAAOA,GACnDlD,EAAKmD,KAAKkF,EAAO2iC,KAEdhrC,CAAI,GACZ,IAEH,GADYqyF,EAAkB,GAK1B,MAHuB,mBAAZ92E,GACPA,EAAQ82E,EAAkB,IAEvBA,EAAkB,GAEJ,mBAAV9jF,GACPA,EAAM,mCAAqCrL,IA+KnDwwD,KA1KJ,SAAcn4C,GACV,MAAMsjC,EAA4CkxB,GAAYrc,KAExD2+B,EAAgExyF,OAAOC,KAAK++C,GAC7Ex0C,KAAKpG,GACK46C,EAAQ56C,GAAG+mC,MAG1B,GAAuB,mBAAZzvB,EACP,OAAO82E,EAGX92E,EAAQ82E,IA+JRrsE,MArQJ,WACI,OAAO6rE,GAqQPtqB,cAAe2qB,EACfA,cACA9C,gBAAiB+C,EACjBA,gBACAI,cA/IJ,SAAqB9jF,GACjB,IAAI+jF,EACAC,GAAe,EAQnB,OAPAZ,EAAQnhF,MAAK,KACL+hF,IAGJD,EAAY/mD,EAAY+/C,YAAY/8E,GAAS,IAG1C,KACHgkF,GAAe,EACXD,GACAA,MAmIRE,cA9HJ,SAAqBjkF,GACjB,IAAI+jF,EACAC,GAAe,EAQnB,OAPAZ,EAAQnhF,MAAK,KACL+hF,IAGJD,EAAY/mD,EAAYggD,YAAYh9E,GAAS,IAG1C,KACHgkF,GAAe,EACXD,GACAA,MAkHR99B,0BA7GJ,SAAmCjmD,GAC/B,IAAI+jF,EACAC,GAAe,EAQnB,OAPAZ,EAAQnhF,MAAK,KACL+hF,IAGJD,EAAY/mD,EAAYipB,0BAA0BjmD,GAAS,IAGxD,KACHgkF,GAAe,EACXD,GACAA,MAiGRG,qBAxDJ,SAA8BlkF,GAC1B,OAAOg9B,EAAYygD,4BAA4Bz9E,IAyD/C,UAAIsiF,GACA,OAAOA,EAAOS,SACjB,EACDxF,iBAjGJ,SAA0Bv9E,GACtB,IAAI+jF,EACAC,GAAe,EAQnB,OAPAZ,EAAQnhF,MAAK,KACL+hF,IAGJD,EAAY/mD,EAAYugD,iBAAiBv9E,GAAS,IAG/C,KACHgkF,GAAe,EACXD,GACAA,MAqFRvG,kBAhFJ,SAA2Bx9E,GACvB,IAAI+jF,EACAC,GAAe,EAQnB,OAPAZ,EAAQnhF,MAAK,KACL+hF,IAGJD,EAAY/mD,EAAYwgD,kBAAkBx9E,GAAS,IAGhD,KACHgkF,GAAe,EACXD,GACAA,MAoER9G,QA3DJ,SAAiBj9E,GACb,IAAI+jF,EACAC,GAAe,EAQnB,OAPAZ,EAAQnhF,MAAK,KACL+hF,IAGJD,EAAY/mD,EAAYigD,QAAQj9E,GAAS,IAGtC,KACHgkF,GAAe,EACXD,GACAA,MA+CR7X,cA1CJ,SAAuB6M,EAAkB/8E,GACrC,OAAOghC,EAAYkvC,cAAc6M,EAAU/8E,IA0C3CiwE,UAvCJ,SAAmB8M,EAAkB/8E,GACjC,OAAOghC,EAAYivC,UAAU8M,EAAU/8E,IAuCvCmyE,UA9KJ,SAAmB51E,GACf,MAAMy6C,EAAMiK,IACN8pB,EAAQ/zB,EAAMA,EAAIv+C,GAAK,GAC7B,OAAO8T,GAAS4lE,UAAUpH,EAAOxuE,IA4KjC0gF,YAzKJ,SAAqBC,GACjB,OAAO3wE,GAAS0wE,YAAYC,IA0K/B,EC9RU,IAAAiL,GAAA,UA5Bf,WAAApzF,GACYyD,KAAO4vF,QAAsC,GAE9C,WAAAC,CAAYC,GACf9vF,KAAK4vF,QAAU5vF,KAAK4vF,QAAQvtF,OAAOytF,GAGhC,SAAAC,GACH/vF,KAAK4vF,QAAU,GAGZ,GAAArkF,CAAIo/B,GACP3qC,KAAK4vF,QAAQ1vF,KAAKyqC,GAGtB,OAAWvlB,GACP,OAAOplB,KAAK4vF,QAGT,KAAAI,CAAMF,GACT,OAAO9vF,KAAK4vF,QAAQvtF,OAAOytF,GAGxB,KAAAG,CAAMH,GACT,OAAO9vF,KAAKgwF,MAAMF,GAAW,KCjBvB,MAAOI,GAIjB,WAAA3zF,CAAoBiL,EAAyC2oF,EAAiEnlF,EAAqCmC,GAA/InN,KAAMwH,OAANA,EAAyCxH,KAAgBmwF,iBAAhBA,EAAiEnwF,KAASgL,UAATA,EAAqChL,KAAMmN,OAANA,EAC/JnN,KAAKwmB,QAAUhf,EAAOmxC,IACtB34C,KAAKowF,yBAGF,eAAAC,CAAgB7kF,GACnB,OAAOxL,KAAKgL,UAAUO,IAAI,gBAAiBC,GAGvC,eAAA63D,GAEJ,GAA6B,oBAAlBttB,cAA+B,CACtC,MAAM14C,EAAU04C,cAAc4uB,aAC9B,OAAOtnE,GAAWA,EAAQq1E,MAAQr1E,EAAQq1E,KAAK4d,gBAInD,MAAM34C,EAAa33C,KAAKmwF,mBACxB,IAAKx4C,EACD,OAAO,EAGX,IAAKA,EAAW6hB,WACZ,OAAO,EAGX,MAAMw1B,EAAWr3C,EAAW8Q,GAAGrjD,OACzB+sD,EAAaxa,EAAW8Q,GAAG3M,SAEjC,SAAKqW,IAAe68B,IAIb78B,EAAWlS,MAAMhgD,KAAO+uF,EAAS/uF,GAGpC,sBAAAmwF,GACJpwF,KAAKwmB,QAAQ0f,SA/CS,yBA+CqEtf,IACvF,MAAM2pE,EAAWvwF,KAAKgL,UAAUoB,QAAQ,gBAAiBwa,IACrD2pE,aAAQ,EAARA,EAAU7yF,QAAS,GACnBsC,KAAKmN,OAAOiL,KAAK,+FAErB,MAAMo4E,EAAgBD,EAAS,GACzBE,EAAwBzwF,KAAKwH,OAAOipF,sBAE1C,GAAqC,kBAA1BA,GAAuCA,EAC9C,MAAO,CAAEA,yBACN,GAAInyF,MAAMC,QAAQkyF,IAA0BA,EAAsB/yF,OAAS,EAC9E,MAAO,CAAE+yF,yBAGb,MAAM7sF,EAAuD,CAAE8sF,cAAeF,aAAA,EAAAA,EAAeE,cAAeC,qBAAiBxsF,GAO7H,OAJInE,KAAKqjE,oBACLz/D,EAAO+sF,gBAAkBH,aAAA,EAAAA,EAAeG,iBAGrC/sF,CAAM,KCpED,SAAAgtF,GAAmBC,GACvC,IAAKA,EACD,OAAOA,EAGX,GAAIvyF,MAAMC,QAAQsyF,GACd,OAAOA,EAAUzpF,KAAKujC,GACXimD,GAAmBjmD,KAIlC,GAAyB,iBAAdkmD,GAA+C,iBAAdA,GAA+C,kBAAdA,EACzE,OAAOA,EAIX,OAAOj0F,OAAOC,KAAKg0F,GAAW/zF,QAAO,CAAC+uB,EAAaxQ,WAC/C,MACMy1E,EAAiBF,GADTC,EAAUx1E,IAGxB,IAAIre,EAAMqe,EAMV,OALc,QAAVzP,EAAAyP,EAAQ,UAAE,IAAAzP,OAAA,EAAAA,EAAE5G,iBAAkBqW,EAAQ,KACtCre,EAAMqe,EAAQ,GAAGrW,cAAgBqW,EAAQ0lD,OAAO,IAGpDl1C,EAAY7uB,GAAO8zF,EACZjlE,CAAW,GAXkB,CAAE,EAa9C,CC9Bc,MAAOklE,GAsBjB,WAAAx0F,CAAYiS,GACRxO,KAAK1C,KAAOkR,EAAKlR,KACjB0C,KAAK5D,KAAOoS,EAAKpS,KACjB4D,KAAKgxF,WAAaxiF,EAAKwiF,WACvBhxF,KAAK3C,QAAUmR,EAAKnR,QACpB2C,KAAKq/B,SAAW7wB,EAAK6wB,SACrBr/B,KAAKmoB,QAAU3Z,EAAK2Z,QACpBnoB,KAAKw7D,SAAWhtD,EAAKgtD,0BCzB7B5+D,OAAOq0F,eAAe1+E,GAAS,aAAc,CAAEjW,OAAO,cCAtDM,OAAOq0F,eAAexyF,GAAS,aAAc,CAAEnC,OAAO,QCHlD40F,GAQAC,SAVJv0F,OAAOq0F,eAAehmC,GAAS,aAAc,CAAE3uD,OAAO,IACtD2uD,GAAAkmC,iBAA2BlmC,GAAAimC,gBAAqB,EAEhD,SAAWA,GACPA,EAAmB,OAAI,SACvBA,EAAqB,SAAI,WACzBA,EAA+B,mBAAI,qBACnCA,EAAqB,SAAI,WACzBA,EAAuB,WAAI,WAC9B,CAND,CAMGA,KAAejmC,GAAAimC,WAAqBA,GAAa,CAAE,IAEtD,SAAWC,GACPA,EAAsB,IAAI,MAC1BA,EAAyB,OAAI,SAC7BA,EAAyB,OAAI,QAChC,CAJD,CAIGA,KAAqBlmC,GAAAkmC,iBAA2BA,GAAmB,CAAE,cCVxEv0F,OAAOq0F,eAAeG,GAAS,aAAc,CAAE90F,OAAO,cCAtDM,OAAOq0F,eAAeI,GAAS,aAAc,CAAE/0F,OAAO,gBCLtD,IAAIg1F,EAAmBtxF,IAAQA,GAAKsxF,kBAAqB10F,OAAO4wB,OAAM,SAAa+jE,EAAGlyF,EAAG2B,EAAGwwF,QAC7ErtF,IAAPqtF,IAAkBA,EAAKxwF,GAC3B,IAAIywF,EAAO70F,OAAO80F,yBAAyBryF,EAAG2B,GACzCywF,KAAS,QAASA,GAAQpyF,EAAEoL,WAAagnF,EAAKE,UAAYF,EAAKG,gBAClEH,EAAO,CAAEI,YAAY,EAAMn/D,IAAK,WAAa,OAAOrzB,EAAE2B,MAExDpE,OAAOq0F,eAAeM,EAAGC,EAAIC,EAChC,EAAA,SAAcF,EAAGlyF,EAAG2B,EAAGwwF,QACTrtF,IAAPqtF,IAAkBA,EAAKxwF,GAC3BuwF,EAAEC,GAAMnyF,EAAE2B,EACb,GACG8wF,EAAgB9xF,IAAQA,GAAK8xF,cAAiB,SAASzyF,EAAGypB,GAC1D,IAAK,IAAI0M,KAAKn2B,EAAa,YAANm2B,GAAoB54B,OAAO8N,UAAUC,eAAeC,KAAKke,EAAS0M,IAAI87D,EAAgBxoE,EAASzpB,EAAGm2B,EAC1H,EACD54B,OAAOq0F,eAAcnoE,EAAU,aAAc,CAAExsB,OAAO,IAItDw1F,EAAaC,GAA0BjpE,GACvCgpE,EAAaE,GAAqBlpE,GAClCgpE,EAAaG,GAAqBnpE,GAClCgpE,EAAaI,GAAsBppE,GACnCgpE,EAAaK,GAA8BrpE,QCR3C,MAAMspE,GAAuB,kBAEf,MAAOC,GAKjB,WAAA91F,CAAoBiL,EAAyCi1B,EAA+BzxB,EAA6BmC,GAArGnN,KAAMwH,OAANA,EAAyCxH,KAAMy8B,OAANA,EAA+Bz8B,KAASgL,UAATA,EAFpFhL,KAAiCsyF,mCAAG,EAGxCtyF,KAAKqpE,WAAa7hE,EAAO6hE,WACzBrpE,KAAKglB,SAAW,IAAIkrE,GAAgB1oF,EAAQA,EAAO+qF,eAAgBvnF,EAAWmC,GAC9EsvB,EAAO1D,YAGJ,sBAAMy5D,CAAiBl1F,SAEpB0C,KAAKyyF,iBADQ,sBACqB,CAAEn1F,SAIvC,wBAAMo1F,SAEH1yF,KAAKyyF,iBADQ,yBAKhB,sBAAME,GACT,MAEM1nC,SADejrD,KAAKyyF,iBADP,qBAEGjzD,SACtB,GAAIyrB,UAA8D,iBAAXA,GAAsD,IAA/BruD,OAAOC,KAAKouD,GAAQvtD,QAIlG,OAAOk9D,GAAY56D,KAAK4yF,aAAe3nC,EAASjrD,KAAKywD,OAAO92C,MAAMk5E,GAAMA,EAAEv1F,OAAS2tD,EAAO3tD,MAAQu1F,EAAEz2F,OAAS6uD,EAAO7uD,QAGjH,KAAA2mB,GACH,MAAyB,qBAArB/iB,KAAKwH,OAAOmhD,KACL3oD,KAAKy8B,OAAOq2D,YAEhB9yF,KAAKy8B,OAAO1Z,MAGhB,IAAAgwE,CAAK9nC,GACR,OAAO,IAAInlD,SAAyC,CAACC,EAAS6H,aAI1D,GAFA5N,KAAKgzF,oBAEDx4C,GAAkByQ,GAClB,OAAOr9C,EAAO,IAAI/N,MAAM,uBAG5B,GAAI46C,GAAmBwQ,EAAO3tD,MAC1B,OAAOsQ,EAAO,IAAI/N,MAAM,qCAGxB46C,GAAmBwQ,EAAO7uD,QAC1B6uD,EAAO7uD,KAAO,UAGbq+C,GAAmBwQ,EAAOxiC,cAC3BwiC,EAAO7uD,KAAO,YAGlB,MAAM62F,EAAqC,CACvC31F,KAAM2tD,EAAO3tD,KACblB,KAAM6uD,EAAO7uD,KACbiB,gBAASuO,EAAAq/C,EAAO5tD,uBAAW,CAAE,EAC7BgiC,iBAAUmc,EAAAyP,EAAO5rB,wBAAY,CAAE,EAC/Bt7B,QAAS,CAAE,GAGf,GAAoB,aAAhBknD,EAAO7uD,KAAqB,CAC5B,IAAIu6D,EAAQ1L,EAAOxiC,WACnB,IAAKkuC,EAAO,CACR,IAAK32D,KAAKqpE,WAAWkB,WAAW/Q,WAC5B,OAAO5rD,EAAO,IAAI/N,MAAM,gFAE5B82D,EAAQ32D,KAAKqpE,WAAWkB,WAAW9hD,WAEvCwqE,EAAaxqE,WAAakuC,MACvB,IAAoB,WAAhB1L,EAAO7uD,KAWd,OAAOwR,EAAO,IAAI/N,MAAM,eAAeorD,EAAO7uD,0BAV1CkC,MAAMC,QAAQ0sD,EAAOioC,mBACrBD,EAAalvF,QAAQmvF,gBAAkBjoC,EAAOioC,iBAE9C50F,MAAMC,QAAQ0sD,EAAOiO,aACrB+5B,EAAalvF,QAAQm1D,UAAYjO,EAAOiO,WAET,kBAAxBjO,EAAOkoC,eACdF,EAAalvF,QAAQovF,aAAeloC,EAAOkoC,cAMnDnzF,KAAKozF,qBAAqB,aAAcH,EAAcltF,EAAS6H,EAAO,IAIvE,OAAAmmE,CAAQhwE,GACX,OAAO,IAAI+B,SAAsD,CAACC,EAAS6H,eAGvE,GAFA5N,KAAKgzF,oBAEDx4C,GAAkBz2C,GAClB,OAAO6J,EAAO,IAAI/N,MAAM,iCAG5B,GAAI46C,GAAmB12C,EAAQzG,MAC3B,OAAOsQ,EAAO,IAAI/N,MAAM,sCAW5B,GARI46C,GAAmB12C,EAAQ3H,QAC3B2H,EAAQ3H,KAAO,UAGdq+C,GAAmB12C,EAAQsvF,oBAC5BtvF,EAAQ3H,KAAO,YAGE,aAAjB2H,EAAQ3H,KAAqB,CAI7B,GAHIo+C,GAAkBz2C,EAAQ08C,sBAC1B18C,EAAQ08C,oBAAqB,GAES,kBAA/B18C,EAAQ08C,mBACf,OAAO7yC,EAAO,IAAI/N,MAAM,oDAE5BkE,EAAQsvF,iBAA+C,QAA5BznF,EAAA7H,EAAQsvF,wBAAoB,IAAAznF,EAAAA,EAAA5L,KAAKqpE,WAAWkB,WAAW9hD,WAYtF,GARK+xB,GAAkBz2C,EAAQuvF,wBAC3BvvF,EAAQwvF,sBAAwBxvF,EAAQuvF,sBAGxC94C,GAAkBz2C,EAAQwvF,yBAC1BxvF,EAAQwvF,uBAAwB,IAG/B54C,GAAU52C,EAAQwvF,uBACnB,OAAO3lF,EAAO,IAAI/N,MAAM,uDAO5B,GAJI26C,GAAkBz2C,EAAQyvF,WAC1BzvF,EAAQyvF,QAAUzvF,EAAQwvF,wBAGzB54C,GAAU52C,EAAQyvF,SACnB,OAAO5lF,EAAO,IAAI/N,MAAM,yCAG5B,IAAK26C,GAAkBz2C,EAAQ1G,WAAamzB,GAASzsB,EAAQ1G,SACzD,OAAOuQ,EAAO,IAAI/N,MAAM,yCAG5B,IAAK26C,GAAkBz2C,EAAQmQ,UAAuC,iBAApBnQ,EAAQmQ,QACtD,OAAOtG,EAAO,IAAI/N,MAAM,yCAG5BkE,EAAQ1G,QAA6B,QAAnBm+C,EAAAz3C,EAAQ1G,eAAW,IAAAm+C,EAAAA,EAAA,CAAE,EAEvC,MAAMi4C,EAA2C,CAC7CC,eAAgB3vF,EAAQsvF,iBACxB5yC,mBAAoB18C,EAAQ08C,mBAC5BkzC,0BAA2B5vF,EAAQ4vF,0BAInCC,qBAAsB7vF,EAAQ8vF,aAE9BN,sBAAuBxvF,EAAQwvF,sBAC/BO,mBAAoB/vF,EAAQyvF,QAAU,GAAK,CAA2B,QAA1B9xB,EAAA1hE,KAAKqpE,WAAWkB,kBAAU,IAAA7I,OAAA,EAAAA,EAAEzhE,KAGtEmsB,EAAyB,CAC3BhwB,KAAM2H,EAAQ3H,KACdkB,KAAMyG,EAAQzG,KACdD,QAAS0G,EAAQ1G,QACjB0G,QAAS0vF,GAET1vF,EAAQmQ,UACRkY,EAAIlY,QAAUnQ,EAAQmQ,SAG1BlU,KAAKozF,qBAAqB,gBAAiBhnE,EAAKrmB,EAAS6H,GAAQ,EAAK,IAIvE,KAAA4mB,CAAMzwB,GACT,OAAO,IAAI+B,SAAsD,CAACC,EAAS6H,KAEvE,GADA5N,KAAKgzF,oBACkB,iBAAZjvF,EACP,OAAO6J,EAAO,IAAI/N,MAAM,iCAE5B,GAAI46C,GAAmB12C,EAAQgwF,UAC3B,OAAOnmF,EAAO,IAAI/N,MAAM,0CAG5B,MAAMV,EAA0B,IACzB4E,GAGP/D,KAAKozF,qBAAqB,cAAej0F,EAAK4G,EAAS6H,GAAQ,EAAK,IAIrE,MAAAq4B,CAAO7pC,EAAckB,GACxB,OAAO,IAAIwI,SAAc,CAACC,EAAS6H,KAG/B,GAFA5N,KAAKgzF,qBAEA11F,EACD,OAAOsQ,EAAO,IAAI/N,MAAM,8BAG5B,IAAKzD,EACD,OAAOwR,EAAO,IAAI/N,MAAM,8BAG5B,MAAMV,EAA8B,CAChC/C,OACAkB,QAGJ0C,KAAKozF,qBAAqB,eAAgBj0F,EAAK4G,EAAS6H,EAAO,IAIhE,IAAA6iD,GAEH,OADAzwD,KAAKgzF,oBACEp4B,GAAY+0B,GAAMvqE,KAGtB,MAAA2jD,CAAO6mB,EAA4CjnC,GACtD,OAAO,IAAI7iD,SAAqD,CAACC,EAAS6H,KAEtE,GADA5N,KAAKgzF,qBACAx4C,GAAkBmO,IACN,UAATA,GAA6B,YAATA,EAEpB,OAAO/6C,EAAO,IAAI/N,MAAM,GAAG8oD,oDAGnC,IAAKrqD,MAAMC,QAAQqxF,GACf,OAAOhiF,EAAO,IAAI/N,MAAM,sCAE5B,MAAMV,EAAwB,CAC1BwpD,KAAMA,GAAQ,UACdinC,WAGJ5vF,KAAKozF,qBAAqB,gBAAiBj0F,EAAK4G,EAAS6H,GAAQ,EAAK,IAIvE,OAAOomF,GACV,OAAO,IAAIluF,SAA2C,CAACC,EAAS6H,WAC5D,IAAK4sC,GAAkBw5C,MAA2C,QAA3BpoF,EAAAhP,OAAOD,OAAOu0F,GAAAA,mBAAa,IAAAtlF,OAAA,EAAAA,EAAAC,SAASmoF,IACvE,OAAOpmF,EAAO,IAAI/N,MAAM,GAAGm0F,qCAW/Bh0F,KAAKozF,qBAAqB,gBAAiB,CAAE,GARvBxvF,IAClB,IAAIgsF,EAA6C5vF,KAAKi0F,gBAAgBrwF,EAAOswF,SAAS9sF,KAAKmI,GAAM,IAAIwhF,GAAWH,GAAmBrhF,MAC/HykF,IACApE,EAAUA,EAAQvtF,QAAQwwF,GAAMA,EAAEz2F,OAAS43F,KAE/CjuF,EAAQ6pF,EAAQ,GAGyChiF,GAAQ,EAAK,IAI3E,MAAAumF,CAAOlpC,EAAyCmpC,GACnD,OAAO,IAAItuF,SAA4B,CAACC,EAAS6H,KAG7C,GAFA5N,KAAKgzF,qBAEA/nC,EACD,OAAOr9C,EAAO,IAAI/N,MAAM,gCAG5B,IAAKorD,EAAO3tD,KACR,OAAOsQ,EAAO,IAAI/N,MAAM,8BAG5B,IAAKorD,EAAO7uD,KACR,OAAOwR,EAAO,IAAI/N,MAAM,8BAG5B,MAAMV,EAAwB,CAAE/C,KAAM6uD,EAAO7uD,KAAMi4F,QAASppC,EAAO3tD,KAAM82F,WAEzEp0F,KAAKozF,qBAAqB,eAAgBj0F,EAAK4G,EAAS6H,EAAO,IAIhE,cAAA0mF,CAAerpC,GAClB,OAAO,IAAInlD,SAAQ,CAACC,EAAS6H,KACzB,IAAKq9C,EACD,OAAOr9C,EAAO,IAAI/N,MAAM,gCAG5B,IAAKorD,EAAO3tD,KACR,OAAOsQ,EAAO,IAAI/N,MAAM,8BAG5B,IAAKorD,EAAO7uD,KACR,OAAOwR,EAAO,IAAI/N,MAAM,8BAG5B,IAAKorD,EAAO5rB,SACR,OAAOzxB,EAAO,IAAI/N,MAAM,kCAG5B,MAAMozF,EAAoB,CACtB31F,KAAM2tD,EAAO3tD,KACblB,KAAM6uD,EAAO7uD,KACbijC,SAAU4rB,EAAO5rB,UAGrBr/B,KAAKozF,qBAAqB,iBAAkBH,EAAcltF,EAAS6H,GAAQ,EAAK,IAIjF,SAAAugF,CAAU7wF,EAAcyG,GAC3B,OAAO,IAAI+B,SAAQ,CAACC,EAAS6H,KACzB,IAAKtQ,EACD,OAAOsQ,EAAO,IAAI/N,MAAM,yBAG5B,MAAM6Y,EAAoC,CACtCpb,OACAlB,KAAM,SACNiB,SAJJ0G,EAAUA,GAAW,CAAE,GAIF1G,SAAW,CAAE,EAC9BgiC,SAAUt7B,EAAQs7B,UAAY,CAAE,GAEpCr/B,KAAKozF,qBAAqB,kBAAmB16E,EAAS3S,EAAS6H,GAAQ,EAAK,IAI7E,MAAAwgF,CAAO9wF,EAAcD,EAAe0G,GACvC,OAAO,IAAI+B,SAAsD,CAACC,EAAS6H,KACvE,IAAKtQ,EACD,OAAOsQ,EAAO,IAAI/N,MAAM,yBAE5B,MAAM6Y,EAAoC,CACtCpb,OACAlB,KAAM,SACNiB,aACG0G,GAEP/D,KAAKozF,qBAAqB,eAAgB16E,EAAS3S,EAAS6H,GAAQ,EAAK,IAI1E,sBAAM2mF,GAGT,IAAItpC,SADiBjrD,KAAKyyF,iBADP,qBAECjzD,SAASyrB,OAC7B,GAAKA,EAOL,OAJKjrD,KAAK4yF,eAEN3nC,EAASjrD,KAAKywD,OAAO92C,MAAMk5E,GAAMA,EAAEv1F,OAAS2tD,EAAO3tD,MAAQu1F,EAAEz2F,OAAS6uD,EAAO7uD,QAE1Ew+D,GAAY3P,GAGhB,sBAAAupC,GACH,OAAO,IAAI1uF,SAAQ,CAACC,EAAS6H,KAEzB5N,KAAKyyF,iBADc,0BAEdhlF,MAAM7J,IACH,MAAM6wF,EAAkB7wF,EAAO47B,SAC/Bz5B,EAAQ0uF,EAAgB,IAE3BjyF,MAAMoL,EAAO,IAInB,OAAAogE,CAAQxiE,GACX,MAAM5H,EAAS5D,KAAKgL,UAAUO,IAAI,QAASC,GAU3C,OARImkF,GAAMvqE,IAAI1nB,OAAS,GACnBiyF,GAAMvqE,IAAIhmB,SAAS6rD,IACf,IACIz/C,EAASy/C,GACX,MAAOl/C,GAAK,KAIfnI,EAGJ,SAAAk/D,CAAUt3D,GACb,OAAOxL,KAAKgL,UAAUO,IAAI,UAAWC,GAGlC,SAAAq3D,CAAUr3D,GACb,OAAOxL,KAAKgL,UAAUO,IAAI,UAAWC,GAGlC,UAAAkpF,CAAWlpF,GACd,OAAOxL,KAAKgL,UAAUO,IAAI,WAAYC,GAGnC,SAAAmpF,CAAUnpF,GACb,OAAOxL,KAAKgL,UAAUO,IAAI,UAAWC,GAGlC,OAAAi9E,CAAQj9E,GACX,OAAOxL,KAAKy8B,OAAOgsD,QAAQj9E,GAGxB,eAAA6kF,CAAgB7kF,GACnB,OAAOxL,KAAKglB,SAASqrE,gBAAgB7kF,GAGlC,gBAAAopF,CAAiBppF,GAKpB,OAJ+C,IAA3CxL,KAAKsyF,oCACLtyF,KAAKsyF,mCAAoC,EACzCtyF,KAAK60F,mCAEF70F,KAAKgL,UAAUO,IAAI,kBAAmBC,GAG1C,yBAAAspF,CAA0Bz3F,GAC7B,OAAO,IAAIyI,SAAQ,CAACC,EAAS6H,KACzB,GAAIvQ,GAA8B,iBAAZA,EAClB,OAAOuQ,EAAO,IAAI/N,MAAM,8BAG5B,MAAM6Y,EAA+C,CACjDrb,QAFJA,EAAUA,QAAAA,EAAW,CAAE,GAIvB2C,KAAKozF,qBAAqB,+BAAgC16E,EAAS3S,EAAS6H,GAAQ,EAAK,IAI1F,oBAAAmnF,CAAqB13F,GACxB,OAAO,IAAIyI,SAAQ,CAACC,EAAS6H,KACzB,GAAIvQ,GAA8B,iBAAZA,EAClB,OAAOuQ,EAAO,IAAI/N,MAAM,8BAG5B,MAAM6Y,EAA+C,CACjDrb,QAFJA,EAAUA,QAAAA,EAAW,CAAE,GAIvB2C,KAAKozF,qBAAqB,uBAAwB16E,EAAS3S,EAAS6H,GAAQ,EAAK,IAIlF,SAAM8kB,CAAIp1B,EAAclB,GAC3B,MAAMgG,EAAWpC,KAAKywD,OAAO92C,MAAMk5E,GAAMA,EAAEv1F,OAASA,GAAQu1F,EAAEz2F,OAASA,IACvE,IAAKgG,EACD,MAAM,IAAIvC,MAAM,gCAAgCvC,cAAiBlB,KAErE,OAAOw+D,GAAYx4D,GAGhB,YAAM4yF,CAAO54F,SAChB,IAAKo+C,GAAkBp+C,MAAqC,QAA3BwP,EAAAhP,OAAOD,OAAOu0F,GAAAA,mBAAa,IAAAtlF,OAAA,EAAAA,EAAAC,SAASzP,IACjE,MAAM,IAAIyD,MAAO,GAAGzD,oCAGxB,OAAOw+D,GADU56D,KAAKywD,OAAOpuD,QAAQwwF,GAAMz2F,IAASy2F,EAAEz2F,QAInD,kBAAM64F,SAEHj1F,KAAKyyF,iBADQ,kBAIf,UAAAG,GACJ,MAA4B,SAArB5yF,KAAKwH,OAAOmhD,KAGf,iBAAAqqC,GACJ,GAAIhzF,KAAK4yF,aACL,MAAM/yF,MAAM,yDAIZ,qCAAMg1F,SACJ70F,KAAKwH,OAAOmxC,IAAIzS,SAAS,0BAA0B,CAACtf,EAAekmB,KACrE9sC,KAAKgL,UAAUoB,QAAQ,kBAAmBwa,EAAK,IAI/C,oBAAAwsE,CAAqB/rD,EAAoBzgB,EAAkB7gB,EAAgC6H,EAA4BsnF,GAC3H,IACIC,EADAC,EAAsBF,EAG1B,MAAMh3E,EAAQvP,GAAMmuD,aACpBl2C,EAAK1I,MAAQA,EAEb,MAAMm3E,EAAe,KACbD,GAAuBD,GACvBpvF,EAAQovF,IAIVr2D,EAA0B,KAE3Bo2D,GACDl1F,KAAKy8B,OAAOkxC,QAAQzvD,EAAO4gB,GACtBrxB,MAAK,KACF2nF,GAAsB,EACtBC,GAAc,IAEjB7yF,OAAOuJ,IACJ6B,EAAO7B,EAAI,IAwBvB/L,KAAKyyF,iBAAiBprD,EAAYzgB,EAAM,OAAQ,CAAEkY,4BAC7CrxB,MArBoB7J,IACrB,IAAKA,EAAO47B,SACR,OAAO5xB,EAAO,IAAI/N,MAAM,yBAA2BwnC,IAGvD,GAAIzjC,EAAO47B,SAAS/sB,QAAsC,YAA3B7O,EAAO47B,SAAS/sB,QAAmD,mBAA3B7O,EAAO47B,SAAS/sB,OAA8B,CACjH,GAAiC,iBAArB7O,EAAe,SACvB,OAAOgK,EAAO,IAAI/N,MAAM+D,EAAO47B,WAC5B,GAAiC,iBAArB57B,EAAe,SAC9B,OAAIA,EAAO47B,SAAS/sB,QAAU7O,EAAO47B,SAASvuB,OACnCrD,EAAO,IAAI/N,MAAM,GAAG+D,EAAO47B,SAAS/sB,WAAW5L,KAAKC,UAAUlD,EAAO47B,SAASvuB,YAE9ErD,EAAO,IAAI/N,MAAM+D,EAAO47B,WAK3C21D,EAAYvxF,EAAO47B,SACnB61D,GAAc,IAIb7yF,OAAOuJ,GAAa6B,EAAO7B,KAG5B,sBAAM0mF,CAAiBprD,EAAoBzgB,EAAejiB,EAAkDZ,GAQhH,YAN+C,KAD/CA,EAAUA,QAAAA,EAAW,CAAE,GACJ+6B,0BACf/6B,EAAQ+6B,wBAA0Bk8B,SAED,IAA1Bj3D,EAAQ84B,gBACf94B,EAAQ84B,cAAgBm+B,IAExBh7D,KAAKs1F,+BACQt1F,KAAKwH,OAAOmxC,IAAI9xB,OAAOurE,GAAsB,CAAEz9D,QAAS0S,EAAY74B,KAAMoY,GAAQjiB,EAAQZ,SAE1F/D,KAAKwH,OAAOmxC,IAAI9xB,OAAO,WAAWwgB,IAAczgB,EAAMjiB,EAAQZ,GAI3E,eAAAkwF,CAAgB/+D,GACpB,OAAKA,EAIEt4B,OAAOC,KAAKq4B,GAAK9tB,KAAKpG,GAAMk0B,EAAIl0B,KAH5B,GAMP,sBAAAs0F,GACJ,OAAOt1F,KAAKwH,OAAOmxC,IAAIjyB,UAAUkf,MAAM9gB,GAAWA,EAAOxnB,OAAS80F,MCrjB5D,MAAOmD,GAajB,WAAAh5F,CAAoBo8C,EAAuC3tC,GAAvChL,KAAG24C,IAAHA,EAAuC34C,KAASgL,UAATA,EAF1ChL,KAAUw1F,WAAG,wBAI1Bx1F,KAAK+iB,MAAQ,IAAIjd,SAAc,CAACC,EAAS6H,KACrC5N,KAAKy1F,aAAe1vF,EACpB/F,KAAK01F,YAAc9nF,CAAM,IAG7B5N,KAAK8yF,YAAc,IAAIhtF,SAAc,CAACC,EAAS6H,KAC3C5N,KAAK21F,mBAAqB5vF,EAC1B/F,KAAK41F,kBAAoBhoF,CAAM,IAIhC,SAAAmrB,CAAU88D,GACb,MAAM1pE,EAAa+I,GACRl1B,KAAKi0F,gBAAgB/+D,GAAK9tB,KAAKmI,GAAMqhF,GAAmBrhF,KAI9DvP,KAAK81F,4BAWN91F,KAAK24C,IAAI5f,UAAU/4B,KAAKw1F,WAAY,CAAE34D,cAAe,MAChDpvB,MAAMsF,IACHA,EAAKo7B,QAAQvnB,IACT,MAAMpY,EAAOoY,EAAKpY,KACdA,EAAKunF,YACL/1F,KAAK21F,qBAET31F,KAAKg2F,WAAW7pE,EAAU3d,EAAKynF,eAAgBznF,EAAKunF,YACpD/1F,KAAKk2F,cAAc/pE,EAAU3d,EAAK2nF,kBAClCn2F,KAAKo2F,cAAcjqE,EAAU3d,EAAK6nF,kBAClCr2F,KAAKs2F,cAAcnqE,EAAU3d,EAAK+nF,kBAClCv2F,KAAKw2F,eAAerqE,EAAU3d,EAAKioF,mBACnCz2F,KAAKgL,UAAUoB,QAAQ,cAAeoC,EAAK,IAG/CuE,EAAK07B,UAAU1iC,IACX,MAAM5M,EAAM,yBAAyBa,KAAKw1F,wBAAwB3uF,KAAKC,UAAUiF,KACjF/L,KAAK01F,YAAYv2F,GACjBa,KAAK41F,kBAAkBz2F,EAAI,IAG/Ba,KAAKy1F,cAAc,IAEtBjzF,OAAOuJ,IACJ,MAAM5M,EAAM,yBAAyBa,KAAKw1F,wBAAwB3uF,KAAKC,UAAUiF,KACjF/L,KAAK01F,YAAYv2F,GACjBa,KAAK41F,kBAAkBz2F,EAAI,KAnC/B02F,GACA71F,KAAKy1F,eAITnvF,YAAW,KACPtG,KAAK+4B,WAAU,EAAK,GACrB,MAiCJ,OAAA0vD,CAAQj9E,GACX,OAAOxL,KAAKgL,UAAUO,IAAI,cAAeC,GAGtC,OAAAmiE,CAAQzvD,EAAehK,GAI1B,OAHKA,IACDA,EAAU,KAEP,IAAIpO,SAAc,CAACC,EAAS6H,KAC/B,IAAIqpC,GAAO,EACX,MAAMx5B,EAAczd,KAAKyoF,SAASwC,IAC1BA,EAAYyL,QAAUx4E,IACtB+4B,GAAO,EACPx5B,IACA1X,QAIRO,YAAW,KACF2wC,GACDrpC,EAAO,eAEZsG,EAAQ,IAIX,yBAAA4hF,GACJ,IACI,OAGmC,IAH5B91F,KAAK24C,IACPjyB,UACAtf,KAAK/H,GAAMA,EAAE/B,OACbiW,QAAQvT,KAAKw1F,YACpB,MAAO9wF,GACL,OAAO,GAIP,UAAAsxF,CAAWW,EAAoBzsB,GACnC,IAAKysB,EACD,OAEJ,MAAMC,EAAyBC,IAC3B,MAAM5rC,EAAS,IAAI8lC,GAAW8F,GAC9BlH,GAAMpkF,IAAI0/C,GACVjrD,KAAKgL,UAAUoB,QAAQ,QAAS6+C,EAAO,EAG3C0rC,EAAYv3F,SAASy3F,IACjB,GAAI3sB,EAAY,CACEylB,GAAMM,OAAO6G,GAAmB92F,KAAK+2F,eAAeD,EAAgBD,MAE9ED,EAAsBC,QAG1BD,EAAsBC,MAK1B,aAAAX,CAAcc,GACbA,GAGLA,EAAe53F,SAAS63F,IACpBtH,GAAME,aAAaiH,IAAoB92F,KAAK+2F,eAAeD,EAAgBG,KAE3Ej3F,KAAKgL,UAAUoB,QAAQ,UAAW6qF,EAAc,IAIhD,aAAAb,CAAcc,GACbA,GAILA,EAAe93F,SAAS+3F,IAEpBxH,GAAME,aAAaiH,IAAoB92F,KAAK+2F,eAAeD,EAAgBK,KAC3ExH,GAAMpkF,IAAI,IAAIwlF,GAAWoG,IAEzBn3F,KAAKgL,UAAUoB,QAAQ,UAAW+qF,EAAc,IAKhD,aAAAb,CAAcc,GACbA,GAILA,EAAeh4F,SAASi4F,IACpB,MAAMP,EAAiBnH,GAAMM,OAAO50E,GAAYrb,KAAK+2F,eAAe17E,EAAS,CAAEjf,KAAMi7F,EAAcj7F,KAAMkB,KAAM+5F,EAAchD,YAE7H,IAAKyC,EAED,MAAMj3F,MAAM,sDAAsDw3F,EAAcj7F,iBAAiBi7F,EAAchD,WAGnHyC,EAAex5F,KAAO+5F,EAAcjD,QAEpCp0F,KAAKgL,UAAUoB,QAAQ,UAAW0qF,EAAe,IAIjD,cAAAC,CAAeO,EAAyCC,GAC5D,OAAOD,EAAQh6F,OAASi6F,EAAQj6F,MAAQg6F,EAAQl7F,OAASm7F,EAAQn7F,KAG7D,eAAA63F,CAAgB/+D,GACpB,OAAKA,EAIEt4B,OAAOC,KAAKq4B,GAAK9tB,KAAKpG,GAAMk0B,EAAIl0B,KAH5B,GAMP,cAAAw1F,CAAe/B,GAEdA,GAILA,EAAgBr1F,SAASo3F,IACrB,MAAMM,EAAiBnH,GAAMM,OAAO50E,GAAYrb,KAAK+2F,eAAe17E,EAAS,CAAEjf,KAAMo6F,EAAep6F,KAAMkB,KAAMk5F,EAAel5F,SAC/H0C,KAAKgL,UAAUoB,QAAQ,WAAY0qF,EAAe,KCzMhD,MAAOU,GAIjB,WAAAj7F,CACYwjD,EACA/pB,GADAh2B,KAAI+/C,KAAJA,EACA//C,KAAOg2B,QAAPA,EALJh2B,KAAS2Q,UAAqBu8D,KAC9BltE,KAAW6qE,aAAG,EASf7qE,KAAGolB,IAAGtd,gBACc9H,KAAKy3F,OAA4CC,GAAeC,OAAQ,KAC/EvwF,IAAIpH,KAAK43F,iBAGtB53F,KAAA0yB,IAAM5qB,MAAO7H,IAChB,MAAM61E,QAAgB91E,KAAKy3F,OAA0CC,GAAe30C,IAAK,CAAE9iD,OAC3F,OAAOD,KAAK43F,gBAAgB9hB,EAAQ,EAGjC91E,KAAU63F,WAAG/vF,gBACO9H,KAAKolB,OAAOzL,MAAMqd,GAAMA,EAAE8gE,YAS9C93F,KAAAi4E,QAAUnwE,MAAO/D,SACK/D,KAAKy3F,OAAeC,GAAeK,QAAS,IAAKh0F,IAIvE/D,KAAAg4F,WAAalwF,MAAO/D,SACG/D,KAAKy3F,OAA0BC,GAAeO,WAAY,IAAKl0F,IAItF/D,KAAgBk4F,iBAAGpwF,eACF9H,KAAKy3F,OAAwCC,GAAeS,kBAS5En4F,KAAAy3F,OAAS3vF,MAAU6sB,EAAiB5wB,WAET/D,KAAK+/C,KAAKl5B,OAxDvB,uBAwDiD,CAAE9iB,QAAS,IAAKA,GAAW4wB,WAAU,OAAQ,CAC5GkI,cAAem+B,GACfl8B,wBAAyBk8B,MAELx7B,SAAShxB,KAG7BxO,KAAA43F,gBAAmBQ,IACvB,MAAMC,EAAmB,IAClBD,EACHngB,QAAUtkE,GAAsB3T,KAAKi4E,QAAQ,CAAEh4E,GAAIm4F,EAASn4F,GAAI0T,UAE9D2kF,EAAgBD,EAAiBh8B,SAGvC,OAFAi8B,EAAc9tF,EAAI8tF,EAAcr1E,KAChCq1E,EAAc/iE,EAAI8iE,EAAiBh8B,SAASvhD,IACrCu9E,CAAgB,EA1CpB,aAAArb,CAAc/8E,GAEjB,OADgBD,KAAKy3F,OAA0CC,GAAea,cAAe,CAAEt4F,OAmB5F,gBAAAu4F,CAAiBn5C,GAEpB,OADAr/C,KAAKkmC,WACElmC,KAAK2Q,UAAUpF,IAAI,qBAAsB8zC,GAuB5C,QAAAnZ,GACAlmC,KAAK6qE,cAGT7qE,KAAK6qE,aAAc,EACnB7qE,KAAK+/C,KAAK7Z,SA9EQ,wBA8EkD,CAACtf,EAAMkmB,KACvE,MAAMz0B,EAAQuO,EAAKvO,MACb7J,EAAOoY,EAAKpY,KAClB,GACS,oBADD6J,EAEArY,KAAK2Q,UAAUvE,QAAQ,qBAAsBoC,EAAKgtD,SAASp0D,IAAIpH,KAAK43F,uBAGpE53F,KAAKg2B,QAAQ5d,KAAK,mBAAmBC,UASzD,IAAKq/E,IAAL,SAAKA,GACDA,EAAA,QAAA,UACAA,EAAA,WAAA,aACAA,EAAA,OAAA,SACAA,EAAA,IAAA,MACAA,EAAA,cAAA,gBACAA,EAAA,iBAAA,kBACH,CAPD,CAAKA,KAAAA,GAOJ,CAAA,UClGYe,GAGT,WAAAl8F,CAAY49E,GACRn6E,KAAKm6E,QAAUA,EAGnB,wBAAWue,GACP,QAAS14F,KAAKm6E,QAGX,WAAAwe,CAAYxe,GACf,OAAOn6E,KAAKm6E,UAAYA,EAGrB,YAAAoD,CAAapD,QAEAh2E,IAAZg2E,GAAyBn6E,KAAKm6E,UAAYA,IAC1Cn6E,KAAKm6E,aAAUh2E,GAIhB,WAAAm5E,CAAYnD,GACfn6E,KAAKm6E,QAAUA,EAGZ,GAAA/0D,GACH,OAAIplB,KAAKm6E,QACE,CAACn6E,KAAKm6E,SAEV,GAGJ,QAAAn8E,GACH,OAAOgC,KAAKm6E,QAGT,MAAAye,CAAO5kE,GACV,OAAIA,aAAiBykE,IACVz4F,KAAKm6E,UAAYnmD,EAAMmmD,eAM7B0e,GAIT,WAAAt8F,CAAYuyE,GAHK9uE,KAAgB84F,iBAAG,MAS5B94F,KAAK8uE,SALJA,EAG0B,iBAAbA,EAEEA,eAAAA,EAAUvoD,MAAMvmB,KAAK84F,kBAAkBz2F,OAAOtE,UAE7C+wE,QAAAA,EAAY,IAAIzsE,OAAOtE,SALxB,GASxB,wBAAW26F,GACP,OAAO14F,KAAK8uE,SAASpxE,OAAS,EAG3B,WAAAi7F,CAAYxe,GACf,OAAOn6E,KAAK8uE,SAASjjE,SAASsuE,GAI3B,WAAAmD,CAAYnD,GACK,IAAI0e,GAAe1e,GAC3B/0D,MAAMhmB,SAAS25F,IAClB/4F,KAAK8uE,SAASjjE,SAASktF,IACxB/4F,KAAK8uE,SAAS5uE,KAAK64F,MAKxB,YAAAxb,CAAapD,GACQ,IAAI0e,GAAe1e,QAAAA,EAAWn6E,KAAK8uE,UAC3C1pD,MAAMhmB,SAASwa,IAC3B5Z,KAAK8uE,SAAW9uE,KAAK8uE,SAASzsE,QAAQ22F,GAAOA,IAAOp/E,GAAE,IAIvD,GAAAwL,GACH,OAAOplB,KAAK8uE,SAGT,QAAA9wE,GACH,GAA6B,IAAzBgC,KAAK8uE,SAASpxE,OAGlB,OAAOsC,KAAK8uE,SAASrxE,KAAKuC,KAAK84F,kBAG5B,MAAAF,CAAO5kE,GACV,OAAIA,aAAiB6kE,KAEV74F,KAAK8uE,SAASpxE,SAAWs2B,EAAM86C,SAASpxE,QAC3CsC,KAAK8uE,SAASj5C,OAAM,CAACjc,EAAGvS,IAAMuS,IAAMoa,EAAM86C,SAASznE,OCzGnE,IAAImf,GACAyyE,GACA9rF,GACG,MAAM+rF,GAA2B,wBAIjCpxF,eAAeyvC,GAAa4hD,EAA0CrqB,EAAwBsqB,WAGjGjsF,GAASisF,EACT5yE,GAAU2yE,EAEY,oBAAX/zF,QACHA,OAAOO,WACPszF,GAAe7zF,OAAOO,SAASuS,UAGlC+gF,KACDA,GAAeE,EAAWnwF,SAASA,gBAGjCwd,GAAQ0f,SAlBqB,wBAkBqCtf,IACpE,MAAM+N,EAAU/N,EAAK+N,QACrB,IAAKA,EACD,MAAM,IAAI90B,MAAM,4BAGpB,GADAsN,GAAOuT,MAAM,qBAAqBiU,WAAiB9tB,KAAKC,UAAU8f,MAClD,SAAZ+N,EAAoB,CACpB,MAAM10B,EAAK2mB,EAAKuzD,QAChB,IAAKl6E,EACD,MAAM,IAAIJ,MAAM,uBAGpB,OAAOivE,EAASuqB,qBAAqBp5F,GAEzC,GAAgB,UAAZ00B,EACA,OAAOm6C,EAASwqB,wBAEpB,GAAgB,QAAZ3kE,EAAmB,CAEnB,MAAO,CAAE10B,GADE6uE,EAASzzD,WAGxB,GAAgB,yBAAZsZ,EAAJ,CAMA,GAAgB,gCAAZA,EACA,MAAO,CAAE4kE,aAAa,GAE1B,GAAgB,eAAZ5kE,EAA0B,CAC1B,MAAM6kE,EAAiB5yE,EAAK4yE,eAC5B,IAAKA,EACD,MAAM,IAAI35F,MAAM,mCAGpB,OAAOivE,EAASuqB,qBAAqB,IAAIR,GAAeW,GAAgBx7F,YAE5E,GAAgB,gBAAZ22B,EAA2B,CAC3B,MAAM8kE,EAAkB7yE,EAAK6yE,gBAC7B,OAAO3qB,EAASwqB,sBAAsB,IAAIT,GAAeY,GAAiBz7F,YAG9E,MAAM,IAAI6B,MAAM,mBAAmB80B,KAtBnC,CACI,MAAM+Y,EAAe9mB,EAAK8mB,aACpBu1C,EAAiBr8D,EAAK8yE,KAC5B5qB,EAAS6qB,0BAA0BjsD,EAAcu1C,GAmBR,IAIjD,MAAMr/E,QAAe4iB,GAAQK,OAAiEqyE,GAA0B,CAAEQ,KAAMT,GAAcjwF,SAAUwd,GAAQxd,SAASA,UAAY,OAAQ,CACzL6zB,cAAem+B,GACfl8B,wBAAyBi8B,KAK7B,OAHqB,UAAjBn3D,EAAO47B,gBAAU,IAAA5zB,OAAA,EAAAA,EAAA8hC,eACjBohC,EAAS6qB,0BAAyC,QAAfn+C,EAAA53C,EAAO47B,gBAAQ,IAAAgc,OAAA,EAAAA,EAAE9N,aAAcurD,IAE/Dr1F,EAAO47B,QAClB,CAEO13B,eAAe8xF,GAAiBzf,EAAiB5H,eAC9C1rD,GAAa,eAAgB,CAAEszD,WAA6B,QAAlBvuE,EAAA2mE,SAAkB,IAAA3mE,EAAAA,EAAAqtF,GACtE,CAEOnxF,eAAe+xF,GAAoB1f,EAAkB5H,SAClD1rD,GAAa,gBAAiB,CAAEkyE,WAAY5e,GAAW5H,QAAAA,EAAS0mB,GAC1E,CAMOnxF,eAAegyF,GAAwB75F,GAC1C,IAEI,aADqB4mB,GAA+C,kBAAmB,CAAA,EAAI5mB,QAAAA,EAAMg5F,KACnFz5D,SAChB,MAAO96B,IAGb,CAWOoD,eAAeiyF,GAAmBplE,EAAyC10B,EAAYoiD,EAAgB23C,SACpGnzE,GAAa8N,EAAS,CAAE10B,KAAIoiD,QAAO23C,SAC7C,CAEOlyF,eAAemyF,GAAmBzyF,EAAiDH,GAItF,GAAoC,kBAAzBG,EAAO0yF,eAA+D,iBAAzB1yF,EAAO0yF,cAE3D,OAgER,SAAsBvxC,GAClB,GAA2D,WAAvDA,GAA+D,UAAJA,EAE3D,MAAM,IAAI9oD,MAAM,iBAAiB8oD,IAEzC,CAtEQwxC,CAAa3yF,EAAO0yF,eACb,CAAEvxC,KAAMnhD,EAAO0yF,cAAeE,oBAAgBj2F,GAGzD,IACI,MAAMP,QAAeyD,EAAEwf,OAA8DqyE,GAA0B,CAAEvkE,QAAS,mBAAqB,OAAQ,CACnJkI,cAAem+B,GACfl8B,wBAAyBi8B,KAEvBq/B,EAAiBx2F,EAAO47B,SAAS46D,eACvC,MAA6B,WAAzBx2F,EAAO47B,SAASmpB,KACT,CACHA,KAAoD,SACpDyxC,kBAE4B,UAAzBx2F,EAAO47B,SAASmpB,KAChB,CACHA,KAAmD,QACnDyxC,kBAGG,CACHzxC,KAAoD,SACpDyxC,kBAGV,MAAO11F,GACL,MAAO,CAAEikD,KAAoD,SAAEyxC,oBAAgBj2F,GAEvF,CAsBA,SAAS0iB,GAAU8N,EAAiBnmB,EAAWkrF,GAC3C,MAAM9yE,EAEF,CAAE+N,UAASnmB,QAIf,OAHIkrF,IACA9yE,EAAK8yE,KAAOA,GAETlzE,GAAQK,OAAUqyE,GAA0BtyE,EAC/C,OAAQ,CACRiW,cAAem+B,GACfl8B,wBAAyBi8B,IAEjC,CCvLA,MAAMs/B,GAAiB,gBACjBC,GAAmB,yBAEHC,GAGlB,WAAAh+F,CAAsBg6C,GAAAv2C,KAAQu2C,SAARA,EAGf,SAAAxd,CAAUvtB,GACbxL,KAAKwL,SAAWA,EAGb,YAAAgvF,CAAal9F,EAAckO,GAC9B,IAAKxL,KAAKy6F,UAAUn9F,GAChB,OAAOwI,QAAQ8H,OAAO,IAAI/N,MAAM,sBAAsBvC,qBAG1D,MAAMw6B,EAAc93B,KAAK06F,kBAAkBp9F,GAE3C,OAAO0C,KAAKu2C,SAASxd,UAAUjB,GAAa,CAACtpB,EAAMorB,EAAG+gE,EAAIC,EAAK/gE,KAC3DruB,EAASgD,EAAKA,KAAMA,EAAMqrB,aAAA,EAAAA,EAAWnB,UAAU,IAShD,GAAAtT,GAIH,OAHqBplB,KAAKu2C,SAASnxB,MACM/iB,QAAQy1B,GAAgBA,EAAYtU,WAAW62E,MAC/CjzF,KAAKyzF,GAAuBA,EAAmB95B,OAAOs5B,MAI5F,oBAAMS,CAAex9F,GACxB,IAAK0C,KAAKy6F,UAAUn9F,GAChB,MAAM,IAAIuC,MAAM,wBAAwBvC,oBAG5C,MAAMw6B,EAAc93B,KAAK06F,kBAAkBp9F,GAErC66B,QAAoBn4B,KAAKu2C,SAAS7jB,IAAIoF,GAE5C,OAAIK,EAAYmiE,IACLt6F,KAAK+6F,uBAAuB5iE,WAG5BA,EAAYmiE,IAGhBniE,GAGJ,aAAA6iE,CAAc19F,EAAckR,GAC/B,MAAMspB,EAAc93B,KAAK06F,kBAAkBp9F,GAC3C,OAAO0C,KAAKu2C,SAASn2C,OAAO03B,EAAatpB,GAGtC,UAAAysF,CAAW39F,EAAckR,GAC5B,MAAMspB,EAAc93B,KAAK06F,kBAAkBp9F,GACrC49F,EAAWl7F,KAAKm7F,YAAY3sF,GAElC,GAAIxO,KAAKu2C,SAASrf,iBAAkB,CAChC,MAAM2B,EAAoDj8B,OAAOC,KAAK2R,GAAMpH,KAAKpK,IACtE,CACHQ,KAAM,QAAUR,EAChBV,MAAOkS,EAAKxR,OAQpB,OAJIk+F,GACAriE,EAAW34B,KAAK,CAAE1C,KAAM88F,GAAkBh+F,MAAO4+F,IAG9Cl7F,KAAKu2C,SAAS3d,SAASd,EAAae,GAO3C,OALIqiE,IACA1sF,EAAK8rF,IAAoBY,GAItBl7F,KAAKu2C,SAASn2C,OAAO03B,EAAa,CAAEtpB,SAI5C,QAAAoqB,CAASt7B,EAAcu+B,GAC1B,MAAM/D,EAAc93B,KAAK06F,kBAAkBp9F,GAE3C,GAAI0C,KAAKu2C,SAASrf,iBAAkB,CAChC,MAAM2B,EAAoDgD,EAAMz0B,KAAKouB,IAC1D,CACHh4B,KAAM,QAAUg4B,EAAEh4B,KAClBlB,MAAOk5B,EAAEl5B,UAWjB,OAPAu8B,EAAWzxB,KAAKouB,IACZ,MAAM0lE,EAAWl7F,KAAKm7F,YAAY3lE,EAAEl5B,OAChC4+F,GACAriE,EAAW34B,KAAK,CAAE1C,KAAM88F,GAAkBh+F,MAAO4+F,OAIlDl7F,KAAKu2C,SAAS3d,SAASd,EAAae,GAE3C,MAAM,IAAIh5B,MAAM,8BAIjB,gBAAAu7F,CAAiB99F,GACpB,MAAMw6B,EAAc93B,KAAK06F,kBAAkBp9F,GAC3C,OAAO0C,KAAKu2C,SAASn2C,OAAO03B,EAAa,CAAEtpB,KAAM,GAAI8rF,CAACA,SAAmBn2F,IAGtE,SAAAs2F,CAAUn9F,GACb,OAAO0C,KAAKolB,MAAMwgB,MAAMy1D,GAAgBA,IAAgB/9F,IAGrD,YAAM2oC,CAAO3oC,GAChB,IAAK0C,KAAKy6F,UAAUn9F,GAChB,MAAM,IAAIuC,MAAM,wBAAwBvC,oBAG5C,MAAMw6B,EAAc93B,KAAK06F,kBAAkBp9F,SACrC0C,KAAKu2C,SAAS5c,QAAQ7B,GAGtB,iBAAA4iE,CAAkBp9F,GACxB,OAAO+8F,GAAiB/8F,EAGlB,WAAA69F,CAAY3sF,GAClB,MAAM8sF,EAAe1+F,OAAOC,KAAK2R,GAAMnM,QAAQrF,GAAyC,IAAzBA,EAAIuW,QAAQ,WAE3E,GAA4B,IAAxB+nF,EAAa59F,OAAjB,CAIA,GAAI49F,EAAa59F,OAAS,EACtB,MAAM,IAAImC,MAAM,2DAGpB,OAAOy7F,EAAa,GAAG/0E,MAAM,KAAKhnB,MAAM,GAAG9B,KAAK,MAG1C,sBAAAs9F,CAAuBQ,GAE7B,MAAMC,iBAAEA,KAAqBC,GAASF,EAKhCG,EAAc,CAAEt/F,KAHHo/F,EAAiBj1E,MAAM,KAAK9oB,KAAK,QAGTg+F,EAAKjtF,KAAK,QAAQgtF,aAGtDC,EAAKjtF,KAAK,QAAQgtF,KAWzB,MATgB,CACZl+F,KAAMi+F,EAAej+F,KACrBk1C,KAAM+oD,EAAe/oD,KACrBhkC,KAAM,IACCitF,EAAKjtF,KACRmtF,KAAMD,KAQhB,MAAOE,WAAqCrB,GAAlD,WAAAh+F,uBAEYyD,KAA2B67F,4BAAa,GACxC77F,KAAc87F,eAAsC,CAAE,EAGvD,mBAAMC,CAAc97F,GACvB,MAAM+7F,EAAc,IAAInD,GAAe54F,GAAImlB,MAE3C,IAAK,MAAM2zE,KAAciD,EAChBh8F,KAAK67F,4BAA4BhwF,SAASktF,UACrC/4F,KAAKi8F,mBAAmBlD,GAKnC,WAAMj7E,CAAM7d,GACf,MAAMw5F,EAAkB,IAAIZ,GAAe54F,GAAImlB,MAC/C,IAAK,MAAM2zE,KAAcU,EACjBz5F,KAAK67F,4BAA4BhwF,SAASktF,IAC1C/4F,KAAKk8F,uBAAuBnD,GAKjC,gBAAMkC,CAAWh7F,EAAYuO,GAChC,MAAMsgE,EAAW,IAAI+pB,GAAe54F,GAAImlB,MACxC,IAAK,MAAM+0D,KAAWrL,QACZtuE,MAAMy6F,WAAW9gB,EAAS3rE,GAIjC,cAAMoqB,CAAS34B,EAAY47B,GAC9B,MAAMizC,EAAW,IAAI+pB,GAAe54F,GAAImlB,MACxC,IAAK,MAAM+0D,KAAWrL,QACZtuE,MAAMo4B,SAASuhD,EAASt+C,GAI/B,SAAA4+D,CAAUn9F,GAEb,OADiB,IAAIu7F,GAAev7F,GAAM8nB,MAC1ByQ,OAAOskD,GAAY35E,MAAMi6F,UAAUtgB,KAG/C,wBAAM8hB,CAAmB3+F,GAC7B,MAAMw6B,EAAc93B,KAAK06F,kBAAkBp9F,GACrC6+F,QAAan8F,KAAKu2C,SAASxd,UAAUjB,GAAa,CAACtpB,EAAMorB,EAAG+gE,EAAIC,EAAK/gE,KACnE75B,KAAKwL,UACLxL,KAAKwL,SAASgD,EAAKA,KAAMA,EAAMqrB,aAAS,EAATA,EAAWnB,cAGlD14B,KAAK67F,4BAA4B37F,KAAK5C,GACtC0C,KAAK87F,eAAehkE,GAAeqkE,EAG/B,4BAAMD,CAAuB5+F,GACjC,MAAMw6B,EAAc93B,KAAK06F,kBAAkBp9F,GACrCwlB,EAAQ9iB,KAAK87F,eAAehkE,GAC9BhV,IACAA,WACO9iB,KAAK87F,eAAehkE,IAE/B93B,KAAK67F,4BAA8B77F,KAAK67F,4BAA4Bx5F,QAAQ83E,GAAYA,IAAY78E,KAItG,MAAO8+F,WAAgC7B,GAIlC,mBAAMwB,CAAcz+F,GACvB0C,KAAKyd,cACL,MAAMqa,EAAc93B,KAAK06F,kBAAkBp9F,GAC3C0C,KAAKkqC,sBAAwBlqC,KAAKu2C,SAASxd,UAAUjB,GAAa,CAACtpB,EAAMorB,EAAG+gE,EAAIC,EAAK/gE,KAC7E75B,KAAKwL,UACLxL,KAAKwL,SAASgD,EAAKA,KAAMA,EAAMqrB,aAAS,EAATA,EAAWnB,cAK/C,WAAM5a,GACL9d,KAAKwL,UACLxL,KAAKwL,SAAS,CAAE,OAAErH,GAEtBnE,KAAKyd,cAGD,WAAAA,GACAzd,KAAKkqC,kBACLlqC,KAAKkqC,kBACLlqC,KAAKkqC,qBAAkB/lC,UC3PtBk4F,GAkBT,WAAA9/F,CAAoBiqB,EAA+C81E,EAA2DC,EAAiEpvF,GAA3KnN,KAAOwmB,QAAPA,EAA+CxmB,KAAas8F,cAAbA,EAA2Dt8F,KAAgBu8F,iBAAhBA,EAAiEv8F,KAAMmN,OAANA,EAjBvLnN,KAAOw8F,QAAG,OACVx8F,KAAUy8F,WAAG,UACbz8F,KAAkB08F,mBAAG,kBACrB18F,KAAa28F,eAAG,EAEhB38F,KAAQgN,SAAqBH,KAI7B7M,KAAc48F,eAAQ,CAAE,EAExB58F,KAAA68F,4BAA8B,IAAI3uE,IAS1C,mBAAM4uE,CAAc/4F,GAChB,IAAK/D,KAAK+8F,iBACN,OAAOj3F,QAAQC,QAAQ,IAE3B,GAA2C,IAAvC/F,KAAK+8F,iBAAiB33E,MAAM1nB,OAC5B,OAAOoI,QAAQC,QAAQ,IAE3B,MAAMnC,EAAS,GACf,IAAK,MAAMu2E,KAAWn6E,KAAK+8F,iBAAiB33E,MACxCxhB,EAAO1D,WAAWF,KAAK0yB,IAAIynD,EAASp2E,IAExC,OAAOH,EAGJ,UAAMI,CAAKg5F,EAAqCr0C,EAAYs0C,GAC/Dj9F,KAAK2oD,KAAOA,EACZ3oD,KAAKg9F,OAASA,EACdh9F,KAAKg9F,OAAOjkE,UAAU/4B,KAAKqiB,QAAQrM,KAAKhW,OACxCA,KAAKk9F,wCACL,IAAI9C,EAAiB6C,EACC,oBAAX73F,aAAqD,IAApBA,OAAOO,WAC/Cy0F,EAAkBh1F,OAAOO,SAAiBy0F,gBAE9Cp6F,KAAK+8F,iBAAmB/8F,KAAKm9F,MAAM/C,GACnCp6F,KAAKmN,OAAOuT,MAAM,2BAA2BioC,4BAA+ByxC,MACxEp6F,KAAK+8F,iBAAiBrE,uBACtB14F,KAAKmN,OAAOuT,MAAM,6BAA6B1gB,KAAK+8F,iBAAiB/+F,qBAC/DgC,KAAKq5F,qBAAqBr5F,KAAK+8F,iBAAiB/+F,aAIvD,SAAA+6B,CAAUvtB,EAAwGzH,GACrH,GAAwB,mBAAbyH,EACP,MAAM,IAAI3L,MAAM,8CAUpB,MAAMI,EAAK0O,GAAMmuD,aACjB98D,KAAK48F,eAAe38F,IAAM,EAE1B,MAAMumC,GAAkBziC,aAAO,EAAPA,EAASq5F,aAC3Bp9F,KAAKq9F,wCAAwC7xF,EAAUvL,EAAI8D,EAAQq5F,aACnEp9F,KAAKs9F,4BAA4B9xF,EAAUvL,GAEjD,GAAID,KAAKu9F,WAAY,CACjB,IAAIA,EAAa3gG,OAAOymB,OAAO,CAAA,EAAIrjB,KAAKu9F,YACxCj3F,YAAWwB,UACH9H,KAAK48F,eAAe38F,KAChBD,KAAKu9F,aACLA,EAAav9F,KAAKu9F,YAEtB/2D,EAAgB+2D,EAAWlgG,QAAQmR,KAAM+uF,EAAWlgG,QAASkgG,EAAW7kE,mBAErE14B,KAAK48F,eAAe38F,EAAG,GAC/B,GAGP,MAAM6iB,EAAQ9iB,KAAKgN,SAASzB,IAAIvL,KAAKw8F,QAASh2D,GAC9C,MAAO,KACHxmC,KAAK48F,eAAe38F,IAAM,EAC1BD,KAAK68F,4BAA4BlwB,OAAO1sE,GACxC6iB,GAAO,EAIR,kBAAM03E,CAAal9F,EAAckO,EAAwGzH,GAC5I,GAAoB,iBAATzG,EACP,MAAM,IAAIuC,MAAM,wCAEpB,GAAwB,mBAAb2L,EACP,MAAM,IAAI3L,MAAM,8CAGpB,MAAMI,EAAK0O,GAAMmuD,aAEXt2B,GAAkBziC,aAAO,EAAPA,EAASq5F,aAC3Bp9F,KAAKq9F,wCAAwC7xF,EAAUvL,EAAI8D,EAAQq5F,aACnEp9F,KAAKs9F,4BAA4B9xF,EAAUvL,GAE3C6iB,QAAc9iB,KAAKg9F,OAAOxC,aAAal9F,EAAMkpC,GACnD,MAAO,KACHxmC,KAAK68F,4BAA4BlwB,OAAO1sE,GACxC6iB,GAAO,EAIR,aAAM4wB,CAAQllC,EAAczK,GAC/B,GAAoB,iBAATyK,EACP,MAAM,IAAI3O,MAAM,yCAOpB,GAJIkE,GACA/D,KAAKw9F,uBAAuBz5F,GAGT,iBAAZA,EACP,OAAO/D,KAAKy9F,mBAAmBjvF,EAAMzK,GAGzC,MAAMs3F,EAAiC,iBAAZt3F,EAAuBA,EAAU/D,KAAK+8F,iBAAiB/+F,WAElF,IAAKq9F,EACD,MAAM,IAAIx7F,MAAM,8BAGpB,IAAKG,KAAKg9F,OAAOvC,UAAUY,GACvB,OAAOv1F,QAAQ8H,OAAO,IAAI/N,MAAM,wBAAwBw7F,qBAG5D,GAAa,UAATr7F,KAAK2oD,KAmBF,CAEH,WAD0B3oD,KAAK09F,yBAAyBrC,IAAcsC,MAElE,MAAM,IAAI99F,MAAM,uDAAuDw7F,KAE3E,OAAOr7F,KAAKg9F,OAAO/B,WAAWI,EAAa7sF,GAxBkB,CAC7D,MAAMovF,EAAoB,IAAI/E,GAAewC,GAAaj2E,MACpDy4E,EAA+B,GACrC,IAAK,MAAMC,KAAMF,EAAmB,QACN59F,KAAK09F,yBAAyBI,IAAKH,YAKvD39F,KAAKg9F,OAAO/B,WAAW6C,EAAItvF,GAH7BqvF,EAAmB39F,KAAK49F,GAKhC,GAAID,EAAmBngG,OAAS,EAAG,CAC/B,MAAMqgG,EAAwB,oEAAoEF,EAAmBpgG,KAAK,QAC1H,GAAIogG,EAAmBngG,SAAWkgG,EAAkBlgG,OAChD,MAAM,IAAImC,MAAMk+F,GAEhB/9F,KAAKmN,OAAOiL,KAAK2lF,KAY1B,cAAMnlE,CAASiD,EAA8Cv+B,GAChE,GAAIA,EAAM,CACN,GAAoB,iBAATA,EACP,MAAM,IAAIuC,MAAM,wCAGpB,IAAKG,KAAKg9F,OAAOvC,UAAUn9F,GACvB,OAAOwI,QAAQ8H,OAAO,IAAI/N,MAAM,wBAAwBvC,qBAG5D,WAAY0C,KAAK09F,yBAAyBpgG,IAAOqgG,MAC7C,MAAM,IAAI99F,MAAM,uDAAuDvC,KAG3E,OAAO0C,KAAKg9F,OAAOpkE,SAASt7B,EAAMu+B,GAGtC,IAAK77B,KAAK+8F,iBACN,MAAM,IAAIl9F,MAAM,8BAGpB,WAAYG,KAAK09F,yBAAyB19F,KAAK+8F,iBAAiB/+F,aAAa2/F,MACzE,MAAM,IAAI99F,MAAM,uDAAuDG,KAAK+8F,iBAAiB/+F,cAGjG,IAAKM,MAAMC,QAAQs9B,GACf,MAAM,IAAIh8B,MAAM,6CAOpB,OAJAg8B,EAAMz8B,SAAS5B,IACXwC,KAAKg+F,iBAAiBxgG,EAAK,IAGxBwC,KAAKg9F,OAAOpkE,SAAS54B,KAAK+8F,iBAAiB/+F,WAAY69B,GAG3D,aAAMlD,CAAQn7B,EAA2CF,GAC5D,GAAIA,EAAM,CACN,GAAoB,iBAATA,EACP,MAAM,IAAIuC,MAAM,wCAGpB,IAAKG,KAAKg9F,OAAOvC,UAAUn9F,GACvB,OAAOwI,QAAQ8H,OAAO,IAAI/N,MAAM,wBAAwBvC,qBAG5D,WAAY0C,KAAK09F,yBAAyBpgG,IAAOqgG,MAC7C,MAAM,IAAI99F,MAAM,uDAAuDvC,KAG3E,OAAO0C,KAAKg9F,OAAOpkE,SAASt7B,EAAM,CAACE,IAGvC,IAAKwC,KAAK+8F,iBACN,MAAM,IAAIl9F,MAAM,8BAGpB,WAAYG,KAAK09F,yBAAyB19F,KAAK+8F,iBAAiB/+F,aAAa2/F,MACzE,MAAM,IAAI99F,MAAM,uDAAuDG,KAAK+8F,iBAAiB/+F,cAKjG,OAFAgC,KAAKg+F,iBAAiBxgG,GAEfwC,KAAKg9F,OAAOpkE,SAAS54B,KAAK+8F,iBAAiB/+F,WAAY,CAACR,IAG5D,GAAA4nB,GACH,MAAM64E,EAAej+F,KAAKg9F,OAAO53E,MACjC,OAAOtf,QAAQC,QAAQk4F,GAGpB,UAAMxtC,GACT,MAAMwtC,QAAqBj+F,KAAKolB,MAEhC,aAD8Btf,QAAQsf,IAAI64E,EAAa72F,KAAKi0F,GAAgBr7F,KAAK0yB,IAAI2oE,MAIlF,SAAM3oE,CAAIp1B,EAAcyG,GAC3B,GAAoB,iBAATzG,EACP,OAAOwI,QAAQ8H,OAAO,IAAI/N,MAAM,iDAGpC,KAAKkE,aAAA,EAAAA,EAASq5F,aACV,OAAOp9F,KAAKg9F,OAAOlC,eAAex9F,GCrQX,CAACyG,IAChC,GAAuB,iBAAZA,GAAwBzF,MAAMC,QAAQwF,GAC7C,MAAM,IAAIlE,MAAM,gCAGpB,GAAIkE,EAAQq5F,cAA+C,iBAAxBr5F,EAAQq5F,cAA6Br5F,EAAQq5F,YAAY1/F,QACxF,MAAM,IAAImC,MAAM,sDDkQhBq+F,CAAoBn6F,GAEpB,MAAM1G,QAAgB2C,KAAKg9F,OAAOlC,eAAex9F,GAEjD,OAAO0C,KAAKm+F,uBAAuB9gG,EAAS0G,EAAQq5F,aAIjD,KAAAgB,CAAMr6F,GACT,OAAK/D,KAAK+8F,iBAGiC,IAAvC/8F,KAAK+8F,iBAAiB33E,MAAM1nB,OACrBoI,QAAQC,aAAQ5B,GAEpBnE,KAAK0yB,IAAI1yB,KAAK+8F,iBAAiB33E,MAAM,GAAIrhB,GALrC+B,QAAQC,aAAQ5B,GAQxB,UAAM1G,CAAKH,EAAc4a,GAC5B,OAAIA,SACAlY,KAAKq+F,oBAAoBnmF,GACzBlY,KAAKmN,OAAOuT,MAAM,mBAAmBpjB,iBAAoB4a,KAClD2hF,GAAoBv8F,EAAM4a,IAE9BlY,KAAKs+F,SAAShhG,GAGlB,0BAAM+7F,CAAqBgC,GAE9B,OADAr7F,KAAKmN,OAAOuT,MAAM,oBAAoB26E,mBAC/Br7F,KAAKs+F,SAASjD,GAAa,GAG/B,KAAAv9E,CAAM/Z,GAET,IAAImU,EACAmjF,EAWJ,OAbAr7F,KAAKmN,OAAOuT,MAAM,iCAAiC7Z,KAAKC,UAAU/C,MAG3C,iBAAZA,EACPmU,EAAWnU,EACe,iBAAZA,GAAyBzF,MAAMC,QAAQwF,IAA9C,MAA0DA,IAC7DA,EAAQmU,WACRA,EAAWnU,EAAQmU,UAEnBnU,EAAQo2E,UACRkhB,EAAct3F,EAAQo2E,UAGjB,UAATn6E,KAAK2oD,KACE3oD,KAAKu+F,eAAelD,EAAanjF,GAEjClY,KAAKw+F,gBAAgBnD,EAAanjF,GAI1C,qBAAAohF,CAAsB+B,GAEzB,OADAr7F,KAAKmN,OAAOuT,MAAM,oBAAoB26E,mBAC/Br7F,KAAKy+F,WAAU,EAAOpD,GAG1B,OAAAhgF,GACH,OAAOrb,KAAK+8F,iBAAiB/+F,WAG1B,EAAAyqD,GACH,OAAOzoD,KAAKqb,UAGT,UAAAqjF,SACH,OAAsC,QAA/B9yF,EAAA5L,KAAK+8F,iBAAiB33E,aAAS,IAAAxZ,EAAAA,EAAA,GAGnC,iBAAA+yF,CAAkBnzF,GACrB,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAGpB,IAAIkvC,EAEY/uC,KAAKqb,YAEjB0zB,EAAYzoC,YAAW,KACnBkF,EAASxL,KAAK0+F,aAAa,GAC5B,IAGP,MAAMxlE,EAAKl5B,KAAKgN,SAASzB,IAAIvL,KAAK08F,mBAAoBlxF,GACtD,MAAO,KACH0tB,IACA/kB,aAAa46B,EAAU,EAIxB,OAAA6vD,CAAQpzF,GACX,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAWpB,OAPgBG,KAAKqb,WAEjB/U,YAAW,KACPkF,EAASxL,KAAKqb,UAAU,GACzB,GAGArb,KAAKgN,SAASzB,IAAIvL,KAAKy8F,YAAY,KACtCjxF,EAASxL,KAAKqb,UAAU,IAIzB,SAAAwnD,CAAUr3D,GACb,OAAOxL,KAAK4+F,QAAQpzF,GAGjB,SAAMD,CAAIuF,SACb,GAAoB,iBAATA,EACP,MAAM,IAAIjR,MAAM,yCAEpB,QAAyB,IAAdiR,EAAKxT,KACZ,MAAM,IAAIuC,MAAM,yBAEpB,GAAyB,iBAAdiR,EAAKxT,KACZ,MAAM,IAAIuC,MAAM,6CAEpB,QAAyB,IAAdiR,EAAK0hC,KACZ,MAAM,IAAI3yC,MAAM,yBAEpB,GAAyB,iBAAdiR,EAAK0hC,KACZ,MAAM,IAAI3yC,MAAM,8CAEpB,QAA+B,IAApBiR,EAAK0hC,KAAK6P,MACjB,MAAM,IAAIxiD,MAAM,+BAEpB,GAA+B,iBAApBiR,EAAK0hC,KAAK6P,MACjB,MAAM,IAAIxiD,MAAM,mDAGpB,MAAMxC,EAAoD,CACtDC,KAAMwT,EAAKxT,KACXk1C,KAAM1hC,EAAK0hC,MAAQ,CAAE,EACrBhkC,KAAMsC,EAAKtC,MAAQ,CAAA,GAUvB,OAPAxO,KAAKmN,OAAOuT,MAAM,mBAAmB5P,EAAKxT,cAEpCy8F,GAAmB,aAAcjpF,EAAKxT,KAAMwT,EAAK0hC,KAAK6P,MAAgB,QAATz2C,EAAAkF,EAAK0hC,YAAI,IAAA5mC,OAAA,EAAAA,EAAEouF,aAGxEh6F,KAAKg9F,OAAOhC,cAAclqF,EAAKxT,KAAMD,GAEpCA,EAGJ,YAAM4oC,CAAOk0C,GAChB,GAAuB,iBAAZA,EACP,MAAM,IAAIt6E,MAAM,gDAGpBG,KAAKmN,OAAOuT,MAAM,qBAAqBy5D,WAEjCn6E,KAAKg9F,OAAO/2D,OAAOk0C,SAEnB4f,GAAmB,gBAAiB5f,GAGvC,yBAAM0kB,CAAoB1kB,GAC7Bn6E,KAAK8+F,mBAAmB3kB,GAExB,aAD0Bn6E,KAAKk6E,uBAAuB,CAAEpL,SAAU,CAACqL,MAChD/yE,KAAKy2C,GAAMA,EAAEz4C,SAG7B,4BAAM80E,CAAuB73E,GAChCrC,KAAK++F,kCAAkC18F,GACvC,IACI,MAAMyO,QFzUXhJ,eAA+BzF,GAElC,aADqBwkB,GAA4B,kBAAmB,CAAExkB,YACxDm9B,QAClB,CEsU+Bw/D,CAAgB38F,GAC7B48F,EAAaj/F,KAAKs8F,gBACxB,GAAIxrF,aAAI,EAAJA,EAAM8qC,QACN,OAAO9qC,EAAK8qC,QAAQ9+C,QAAO,CAACC,EAAMmsF,KAC9B,MAAM9jF,EAAS65F,EAAW5P,SAASnG,EAAWhxE,UAM9C,OALAnb,EAAKmD,KAAK,CACNkF,SACA+0E,QAAS+O,EAAW/O,QACpB5nE,YAAa22E,EAAW32E,cAErBxV,CAAI,GACZ,IAET,MAAOmiG,GACLl/F,KAAKmN,OAAO7B,MAAM,wFAAyF4zF,GAE/G,MAAO,GAGJ,cAAMC,CAASC,GAElB,OADAp/F,KAAKq/F,0BAA0BD,GF9WhCt3F,eAA+B4lC,eAC5B7mB,GAAa,WAAY6mB,EAAuC,QAAzB9hC,EAAA8hC,EAAax1B,gBAAY,IAAAtM,EAAAA,EAAAqtF,GAC1E,CE6WeqG,CAAgBF,GAGpB,qBAAMG,CAAgBrnF,GAIzB,OAHIA,GACAlY,KAAKq+F,oBAAoBnmF,GAEtB4hF,GAAwB5hF,GAG5B,iBAAMsnF,CAAYJ,GAErB,OADAp/F,KAAKq/F,0BAA0BD,GF7WhCt3F,eAA6C4lC,eAC1C7mB,GAAa,cAAe6mB,EAAuC,QAAzB9hC,EAAA8hC,EAAax1B,gBAAY,IAAAtM,EAAAA,EAAAqtF,GAC7E,CE4WewG,CAA8BL,GAGlC,yBAAAzF,CAA0BjsD,EAAsDx1B,GACnFlY,KAAKgN,SAASZ,QAAQ,uBAAwB,CAC1CshC,eACAx1B,aAID,sBAAMwnF,CAAiBvlB,GAC1B,MAAMkhB,EAAiC,iBAAZlhB,EAAuBA,EAAUn6E,KAAK+8F,iBAAiB/+F,WAElF,IAAKq9F,EACD,OAGJ,IAAKr7F,KAAKg9F,OAAOvC,UAAUY,GACvB,OAIJ,aAD0Br7F,KAAK09F,yBAAyBrC,IAAcsC,MAK/D39F,KAAKg9F,OAAO5B,iBAAiBC,QAJpC,EAOI,OAAAh5E,CAAQ7T,EAAcnR,EAAmDq7B,GACxEr7B,GAAYq7B,GAKjB14B,KAAKu9F,WAAa,CAAElgG,UAASq7B,aAC7B14B,KAAK48F,eAAiB,CAAE,EACxB58F,KAAKgN,SAASZ,QAAQpM,KAAKw8F,QAAShuF,EAAMnR,EAASq7B,IAN/C14B,KAAKu9F,gBAAap5F,EASlB,cAAMm6F,CAAShhG,EAAcqiG,GAAiB,GAElD,GADA3/F,KAAKmN,OAAOuT,MAAM,oBAAoBpjB,MAASqiG,EAAiB,GAAK,kBACjD,iBAATriG,EACP,MAAM,IAAIuC,MAAM,gDAGpB,MAAM+/F,EAAQ5/F,KAAKm9F,MAAM7/F,GAEpB0C,KAAK28F,gBAAiB38F,KAAK+8F,iBAAiBpE,YAAYiH,EAAM5hG,aAKnEgC,KAAK28F,eAAgB,QAGf72F,QAAQsf,IAAIw6E,EAAMx6E,MAAMhe,KAAKsoB,GAAM1vB,KAAK6/F,oBAAoBnwE,MAElE1vB,KAAK+8F,iBAAiBzf,YAAYhgF,GAClC0C,KAAKu9F,gBAAap5F,EAElBnE,KAAKmN,OAAOuT,MAAM,kCAAkCpjB,MAASqiG,EAAiB,GAAK,wBAC7E3/F,KAAKg9F,OAAOjB,cAAc/7F,KAAK+8F,iBAAiB/+F,YAElD2hG,IACA3/F,KAAKmN,OAAOuT,MAAM,6BAA6BpjB,MAASqiG,EAAiB,GAAK,wBACxE9F,GAAoBv8F,GAC1B0C,KAAKmN,OAAOuT,MAAM,4BAA4BpjB,MAASqiG,EAAiB,GAAK,mBAGjF3/F,KAAK8/F,6BACL9/F,KAAKmN,OAAOuT,MAAM,mBAAmBpjB,KAAQqiG,EAAiB,GAAK,uCAAuC3/F,KAAK+8F,iBAAiB/+F,eArB5HgC,KAAKmN,OAAOuT,MAAM,wBAAwBpjB,MAASqiG,EAAiB,GAAK,kBAwBzE,yBAAME,CAAoBviG,GAC9B,MAAMyiG,EAAoB1E,GACDr7F,KAAKg9F,OAAO53E,MACbvZ,SAASwvF,GAIjC,IAAK0E,EAAiBziG,GAAO,CACzB,MAAM0iG,EAAuB,IAAIl6F,SAAc,CAACC,EAAS6H,KAErD,MAAMqyF,EAAaz5F,aAAY,KACvBu5F,EAAiBziG,KACjB6W,aAAa46B,GACb71B,cAAc+mF,GACdl6F,OAEL,KAEGgpC,EAAYzoC,YAAW,KACzB4S,cAAc+mF,GAEPryF,EAAO,IAAI/N,MAAM,wBAAwBvC,uBACjD,IAAK,UAGN0iG,GAIN,eAAMvB,CAAUkB,GAAiB,EAAMO,GAC3C,GAAKlgG,KAAK+8F,iBAAiBrE,qBAA3B,CAKA,IAAIwH,GAAclgG,KAAK+8F,iBAAiBpE,YAAYuH,GAoBpD,OAfAlgG,KAAKmN,OAAOuT,MAAM,6BAA6Bw/E,MAAcP,EAAiB,GAAK,kBACnF3/F,KAAK+8F,iBAAiBxf,aAAa2iB,SAE7BlgG,KAAKg9F,OAAOl/E,MAAMoiF,GACxBlgG,KAAKu9F,gBAAap5F,EAElBnE,KAAK8/F,6BAEDH,IACA3/F,KAAKmN,OAAOuT,MAAM,6BAA6Bw/E,MAAcP,EAAiB,GAAK,wBAC7E9F,GAAoB75F,KAAK+8F,iBAAiB/+F,YAChDgC,KAAKmN,OAAOuT,MAAM,4BAA4Bw/E,MAAcP,EAAiB,GAAK,mBAGtF3/F,KAAKmN,OAAOuT,MAAM,yBAAyBw/E,MAAcP,EAAiB,GAAK,wCAAwC3/F,KAAK+8F,iBAAiB/+F,eACtI8H,QAAQC,UAnBX/F,KAAKmN,OAAOuT,MAAM,gBAAgBi/E,EAAiB,GAAK,+CAA+CO,WALvGlgG,KAAKmN,OAAOuT,MAAM,gBAAgBi/E,EAAiB,GAAK,iEA2BxD,oBAAMQ,CAAeR,GAAiB,EAAMO,GAChDlgG,KAAKmN,OAAOuT,MAAM,2BAA2Bw/E,EAAUliG,eAAe2hG,EAAiB,GAAK,kBAI5F,IAHwB3/F,KAAK+8F,iBAAiB33E,MAEJwgB,MAAMhsB,GAAMsmF,EAAUvH,YAAY/+E,OACjD5Z,KAAK+8F,iBAAiBrE,qBAE7C,YADA14F,KAAKmN,OAAOuT,MAAM,gBAAgBi/E,EAAiB,GAAK,iDAI5D,MAAMtE,EAAc6E,EAAUliG,WAc9B,OAbAgC,KAAK+8F,iBAAiBxf,aAAa8d,SAE7Br7F,KAAKg9F,OAAOl/E,MAAMu9E,GACxBr7F,KAAKu9F,gBAAap5F,EAElBnE,KAAK8/F,6BAEDH,IACA3/F,KAAKmN,OAAOuT,MAAM,6BAA6B26E,MAAgBsE,EAAiB,GAAK,wBAC/E/F,GAAiByB,GACvBr7F,KAAKmN,OAAOuT,MAAM,4BAA4B26E,MAAgBsE,EAAiB,GAAK,mBAExF3/F,KAAKmN,OAAOuT,MAAM,wBAAwB26E,MAAgBsE,EAAiB,GAAK,uCAAuC3/F,KAAK+8F,iBAAiB/+F,cACtI8H,QAAQC,UAGX,0BAAA+5F,GACJ9/F,KAAKgN,SAASZ,QAAQpM,KAAKy8F,WAAYz8F,KAAK+8F,iBAAiB/+F,YAC7DgC,KAAKgN,SAASZ,QAAQpM,KAAK08F,mBAAoB18F,KAAK+8F,iBAAiB33E,OAGjE,8BAAMs4E,CAAyBrC,SACnC,MAAM3tD,EAA2C,QAA5B9hC,EAAA5L,KAAKogG,2BAAuB,IAAAx0F,EAAAA,QAAMkuF,KACvD,IAAKpsD,IAAiBpvC,MAAMC,QAAQmvC,EAAaohC,YAAcphC,EAAaohC,SAASn1D,MAAKC,GAAKA,EAAEtc,OAAS+9F,IACtG,MAAO,CACHgF,MAAM,EACN1C,OAAO,GAIf,OADkBjwD,EAAaohC,SAASn1D,MAAKC,GAAKA,EAAEtc,OAAS+9F,IAIzD,qBAAAiF,CAAsB90F,EAAsB2gE,EAAoBo0B,GACpEvgG,KAAK68F,4BAA4BrxE,IAAI2gD,EAAY,CAC7C9sB,GAAI7zC,EACJ6vF,YAAakF,IAEbvgG,KAAKwgG,2BAGTxgG,KAAKwgG,yBAA2BxgG,KAAKgN,SAASzB,IAAI,wBAAwB,EAAGmiC,mBACzE1tC,KAAKmN,OAAOuT,MAAM,0BAA0B7Z,KAAKC,UAAU4mC,MAC3D1tC,KAAK68F,4BAA4Bz9F,SAAQ,EAAGigD,KAAIg8C,eAAep7F,KAC3D,MAAMwgG,EAAiB/yD,EAAaohC,SAASn1D,MAAMC,GAAqDA,EAAEtc,OAAS+9F,IAC9GoF,EAIDA,EAAeJ,OACfrgG,KAAK68F,4BAA4BlwB,OAAO1sE,GACe,IAAnDD,KAAK68F,4BAA4BlgG,OAAOe,QAAgBsC,KAAKwgG,2BAC7DxgG,KAAKwgG,2BACLxgG,KAAKwgG,yBAA2B,MAEpCnhD,KATAr/C,KAAKmN,OAAOuT,MAAM,YAAY26E,kCAWpC,KAIF,qCAAA6B,GACJl9F,KAAKgN,SAASzB,IAAI,wBAAyBq9D,IACvC5oE,KAAKmN,OAAOuT,MAAM,kCAAkC7Z,KAAKC,UAAU8hE,EAAEl7B,iBACrE1tC,KAAKogG,oBAAsBx3B,EAAEl7B,YAAY,IAIzC,gBAAAswD,CAAiBxgG,GACrB,IAAKA,EACD,MAAM,IAAIqC,MAAM,8CAGpB,GAAoB,iBAATrC,EACP,MAAM,IAAIqC,MAAM,8CAA8CgH,KAAKC,UAAUtJ,MAGjF,IAAKA,EAAKA,KACN,MAAM,IAAIqC,MAAM,sDAAsDgH,KAAKC,UAAUtJ,MAGzF,IAAKA,EAAKlB,MACN,MAAM,IAAIuD,MAAM,uDAAuDgH,KAAKC,UAAUtJ,MAG1F,GAAyB,iBAAdA,EAAKA,KACZ,MAAM,IAAIqC,MAAM,qEAAqEgH,KAAKC,UAAUtJ,MAIpG,sBAAAggG,CAAuBz5F,GAC3B,GAAwB,iBAAZA,GAA2C,iBAAZA,GAAyBzF,MAAMC,QAAQwF,GAC9E,MAAM,IAAIlE,MAAM,4CAGpB,GAAuB,iBAAZkE,GAKX,GAAgB,WAAZA,IAAyBA,EAAQrG,OACjC,MAAM,IAAImC,MAAM,8CALhBG,KAAK0gG,6BAA6B38F,GASlC,4BAAA28F,CAA6B38F,GACjC,GAAuB,iBAAZA,GAAwBzF,MAAMC,QAAQwF,GAC7C,MAAM,IAAIlE,MAAM,gCAGpB,GAAIkE,EAAQzG,OAAiC,iBAAjByG,EAAQzG,OAAsByG,EAAQzG,KAAKI,QACnE,MAAM,IAAImC,MAAM,8CAGpB,GAAIjD,OAAOC,KAAKkH,GAAS8H,SAAS,SAAmC,kBAAjB9H,EAAQ43F,KACxD,MAAM,IAAI97F,MAAM,qCAIhB,wBAAM49F,CAAmBjvF,EAAWzK,GACxC,MAAMs3F,EAAct3F,EAAQzG,MAAQ0C,KAAK+8F,iBAAiB/+F,WAE1D,IAAKgC,KAAKg9F,OAAOvC,UAAUY,GAEvB,MAAM,IAAIx7F,MAAM,wBAAwBkE,EAAQzG,uBAGpD,IAAK+9F,EACD,MAAM,IAAIx7F,MAAM,+DAKpB,WAF0BG,KAAK09F,yBAAyBrC,IAAcsC,MAGlE,MAAM,IAAI99F,MAAM,uDAAuDG,KAAK+8F,iBAAiB/+F,cAGjG,OAAK+F,EAAQ43F,KAIN37F,KAAK2gG,gBAAgBtF,EAAa7sF,GAH9BxO,KAAKg9F,OAAO/B,WAAWI,EAAa7sF,GAM3C,qBAAMmyF,CAAgBtF,EAAqB7sF,SAC/C,GAAyB,iBAAdA,EAAKpS,gBAAsBwP,EAAA4C,EAAKpS,2BAAMsB,QAC7C,MAAM,IAAImC,MAAM,8DAGpB,MAAMzD,KAAEA,KAASq/F,GAASjtF,EAEpBoyF,EAAaxkG,EAAKmqB,MAAM,KAAK9oB,KAAK,KAElCojG,EAAoB,CAAE,CAAC,QAAQD,KAAenF,GAEpD,OAAOz7F,KAAKg9F,OAAO/B,WAAWI,EAAawF,GAGvC,2BAAAvD,CAA4B9xF,EAAqGvL,GAiBrI,OAhBwB6H,MAAO8xB,EAAQv8B,EAAmDq7B,KAEtF,MAAMooE,QAA6B9gG,KAAK09F,yBAAyBrgG,EAAQC,MAGnEyjG,EAAc/gG,KAAKghG,wBAAwB3jG,GAE7CyjG,EAAqBT,KACrB70F,EAASu1F,EAAa1jG,EAASq7B,GAE/B14B,KAAKsgG,uBAAsB,KACvB90F,EAASu1F,EAAa1jG,EAASq7B,EAAU,GAC1Cz4B,EAAI5C,EAAQC,OAOnB,uCAAA+/F,CAAwC7xF,EAAqGvL,EAAYi7F,GAC7J,MAAM+F,EAAY,CAAEC,UAAU,GAqC9B,OAnCwBp5F,MAAO8xB,EAAQv8B,EAAmDq7B,KAEtF,MAEMyoE,EAA0B,KAE5B,MAAM3yF,KAAEA,EAAIgtF,iBAAEA,GAAqBn+F,EAE7B+jG,EAAe,QAAQlG,EAAS30E,MAAM,KAAK9oB,KAAK,OAGtD,IAAK+Q,EAAK4yF,GACN,OAGJ,GAAIH,EAAUC,SAEV,OAAOlhG,KAAKqhG,oCAAoC,CAAEC,sBAAuB9F,EAAkB4F,aAAclG,EAAU1vF,WAAUnO,UAASq7B,cAG1I,MAAM6oE,EAAW,CAAEnlG,KAAM8+F,KAAa1sF,EAAK4yF,IAE3C51F,EAAS,CAAEmwF,KAAM4F,GAAYlkG,EAASq7B,GAEtCuoE,EAAUC,UAAW,CAAI,SAtBMlhG,KAAK09F,yBAAyBrgG,EAAQC,OAyBhD+iG,KACrBc,IAIJnhG,KAAKsgG,sBAAsBa,EAAyBlhG,EAAI5C,EAAQC,KAAK,EAMrE,mCAAA+jG,CAAoCz6E,GACxC,MAAM06E,sBAAEA,EAAqBF,aAAEA,EAAY51F,SAAEA,EAAQnO,QAAEA,EAAOq7B,UAAEA,GAAc9R,EAI9E,GAF4B06E,EAAsB/6E,MAAM,KAAK9oB,KAAK,OAEtC2jG,EACxB,OAKJ51F,EAAS,CAAEmwF,KAFM,CAAEv/F,KAAMglG,KAAiB/jG,EAAQmR,KAAK,QAAQ8yF,OAElCjkG,EAASq7B,GAGlC,sBAAAylE,CAAuB9gG,EAAmD+jG,WAC9E,IAAwB,QAApB5lD,EAAc,QAAd5vC,EAAAvO,EAAQmR,YAAM,IAAA5C,OAAA,EAAAA,EAAA+vF,YAAM,IAAAngD,OAAA,EAAAA,EAAAp/C,QAASglG,EAC7B,MAAO,CACH9jG,KAAMD,EAAQC,KACdk1C,KAAMn1C,EAAQm1C,KACdhkC,KAAM,CAAEmtF,KAAMt+F,EAAQmR,KAAKmtF,OAInC,MAAM6F,EAAc,QAAQJ,EAAa76E,MAAM,KAAK9oB,KAAK,OAEzD,IAAKJ,EAAQmR,KAAKgzF,GACd,MAAO,CACHlkG,KAAMD,EAAQC,KACdk1C,KAAMn1C,EAAQm1C,KACdhkC,KAAM,CAAA,GAId,MAAMktF,EAAc,CAAEt/F,KAAMglG,KAAiB/jG,EAAQmR,KAAKgzF,IAE1D,MAAO,CACHlkG,KAAMD,EAAQC,KACdk1C,KAAMn1C,EAAQm1C,KACdhkC,KAAM,CAAEmtF,KAAMD,IAId,uBAAAsF,CAAwB3jG,GAE5B,MAAMmR,KAAEA,EAAIgtF,iBAAEA,GAAqBn+F,EAEnC,IAAKm+F,EACD,OAAOhtF,EAGX,MAAMoyF,EAAapF,EAAiBj1E,MAAM,KAAK9oB,KAAK,KAG9CgkG,EAAqB,QAAQjG,IAE7B+F,EAAW,CAAEnlG,KAAMwkG,KAAepyF,EAAKizF,KAErCA,CAACA,GAAqBC,KAAmBjG,GAASjtF,EAE1D,MAAO,IAAKitF,EAAME,KAAM4F,GAGpB,KAAApE,CAAMl9F,GACV,MAAa,UAATD,KAAK2oD,KACE,IAAIkwC,GAAe54F,GAEnB,IAAIw4F,GAAgBx4F,GAI3B,eAAAu+F,CAAgBnD,EAAsBnjF,GAC1C,OAAIA,GACAlY,KAAKmN,OAAOuT,MAAM,2BAA2B26E,mBAA6BnjF,MAEnE2hF,QAAoB11F,EAAW+T,KAE1ClY,KAAKmN,OAAOuT,MAAM,2BAA2B26E,qBACtCr7F,KAAKy+F,WAAU,EAAMpD,IAGxB,oBAAMkD,CAAelD,EAAsBnjF,GAC/C,GAAIA,EAEA,OADAlY,KAAKmN,OAAOuT,MAAM,0BAA0B26E,mBAA6BnjF,MAClE0hF,GAAiByB,EAAanjF,GAClC,CAEH,MAAMypF,EAAYtG,EAAc,IAAIxC,GAAewC,GAAer7F,KAAK+8F,iBAEvE,OADA/8F,KAAKmN,OAAOuT,MAAM,0BAA0BihF,EAAU3jG,8BAC/CgC,KAAKmgG,gBAAe,EAAMwB,IAIjC,mBAAAtD,CAAoBnmF,GACxB,GAAwB,iBAAbA,EACP,MAAM,IAAIrY,MAAM,6CAGpB,IADgBG,KAAKs8F,gBACRjN,SAASn3E,GAClB,MAAM,IAAIrY,MAAM,mBAAmBqY,qBAInC,kBAAA4mF,CAAmB3kB,GACvB,IAAKA,EACD,MAAM,IAAIt6E,MAAM,8DAGpB,GAAuB,iBAAZs6E,EACP,MAAM,IAAIt6E,MAAM,gDAGpB,GADqBG,KAAKg9F,OAAO53E,MAChByQ,OAAOv4B,GAASA,IAAS68E,IACtC,MAAM,IAAIt6E,MAAM,YAAYs6E,uBAI5B,iCAAA4kB,CAAkC18F,GACtC,QAAe8B,IAAX9B,IAIW,OAAXA,GAAmB/D,MAAMC,QAAQ8D,IAA6B,iBAAXA,GACnD,MAAM,IAAIxC,MAAM,iDAIhB,cAAA+hG,CAAexC,GACnB,MAAO,SAAUA,EAGb,yBAAAC,CAA0BD,GAC9B,GAAIA,SAAqD9gG,MAAMC,QAAQ6gG,IAAuC,iBAAhBA,EAC1F,MAAM,IAAIv/F,MAAM,iFAGpB,GAAIG,KAAK4hG,eAAexC,IAA4C,iBAArBA,EAAY9hG,KACvD,MAAM,IAAIuC,MAAM,+DAGpB,GAAyB,OAArBu/F,EAAYiB,WAAsCl8F,IAArBi7F,EAAYiB,MAAkD,kBAArBjB,EAAYiB,KAClF,MAAM,IAAIxgG,MAAM,4DAGpB,GAA0B,OAAtBu/F,EAAYzB,YAAwCx5F,IAAtBi7F,EAAYzB,OAAoD,kBAAtByB,EAAYzB,MACpF,MAAM,IAAI99F,MAAM,6DAGpB,KAA0B,OAArBu/F,EAAYiB,WAAsCl8F,IAArBi7F,EAAYiB,MAA8C,OAAtBjB,EAAYzB,YAAwCx5F,IAAtBi7F,EAAYzB,OAC5G,MAAM,IAAI99F,MAAM,qGAGS,OAAzBu/F,EAAYlnF,eAA8C/T,IAAzBi7F,EAAYlnF,UAC7ClY,KAAKq+F,oBAAoBe,EAAYlnF,WEt9BjD,MAAM2pF,GAAgB,4BAOTC,GAMT,WAAAvlG,CAAoBo8C,GAAA34C,KAAG24C,IAAHA,EAJZ34C,KAAQgN,SAAqBH,KAC7B7M,KAAW+hG,aAAG,EACd/hG,KAAAgiG,QAAU,IAAI9zE,IAKf,cAAMgY,CAASp1B,EAAoDtF,GACtE,QAAoB,IAATsF,EACP,MAAM,IAAIjR,MAAM,4BAGpB,GAAoB,iBAATiR,EACPA,EAAO,CACHmxF,OAAQnxF,OAET,CACH,IAAKA,EAAKmxF,OACN,MAAM,IAAIpiG,MAAM,mCAGpBiR,EAAO,CACHmxF,OAAQnxF,EAAKmxF,OACb7kG,YAAa0T,EAAK1T,aAI1B,MAAM8kG,EAAYliG,KAAKmiG,aAAarxF,EAAKmxF,QACzC,GAAIjiG,KAAKgiG,QAAQ/vF,IAAIiwF,GACjB,MAAM,IAAIriG,MAAM,gBAAgBqiG,wBAIhCliG,KAAK+hG,cACL/hG,KAAK+hG,aAAc,QACb/hG,KAAKoiG,2BAGfpiG,KAAKgN,SAASzB,IAAI22F,EAAW12F,SAGvBxL,KAAK24C,IAAI9xB,OAAOg7E,GAAe,CAAEltE,QA/CvB,WA+CiDstE,OAAQC,EAAW9kG,YAAa0T,EAAK1T,aAAe,OAAQ,CACzHy/B,cAAem+B,GACfl8B,wBAAyBk8B,KAG7Bh7D,KAAKgiG,QAAQx2E,IAAI02E,EAAWpxF,GAGzB,gBAAMi0B,CAAWk9D,GACpB,QAAsB,IAAXA,EACP,MAAM,IAAIpiG,MAAM,4BAGpB,GAAsB,iBAAXoiG,EACP,MAAM,IAAIpiG,MAAM,mCAGpB,MAAMqiG,EAAYliG,KAAKmiG,aAAaF,SAC9BjiG,KAAK24C,IAAI9xB,OAAOg7E,GAAe,CAAEltE,QAhErB,aAgEiDstE,OAAQC,GAAa,OAAQ,CAC5FrlE,cAAem+B,GACfl8B,wBAAyBk8B,KAE7Bh7D,KAAKgiG,QAAQr1B,OAAOu1B,GACpBliG,KAAKgN,SAASN,SAASw1F,GAGpB,mBAAMG,SACHriG,KAAK24C,IAAI9xB,OAAOg7E,GAAe,CAAEltE,QAxElB,iBAwEmD,OAAQ,CAC5EkI,cAAem+B,GACfl8B,wBAAyBk8B,KAE7Bh7D,KAAKgiG,QAAQv1F,QACbzM,KAAKgN,SAASP,QAOX,YAAA61F,CAAaL,GAChB,MAAMC,EAAYliG,KAAKmiG,aAAaF,GACpC,OAAOjiG,KAAKgiG,QAAQ/vF,IAAIiwF,GAGpB,uBAAAE,GACJ,OAAOpiG,KAAK24C,IAAIzS,SA9FH,sBA8F2Btf,IAGpC,MAAMs7E,EAAYt7E,EAAK5pB,IAAIgI,cACrB8L,EAAO9Q,KAAKgiG,QAAQtvE,IAAIwvE,GAC9BliG,KAAKgN,SAASZ,QAAQ81F,EAAWpxF,EAAK,IAItC,YAAAqxF,CAAaF,GACjB,GAAIA,EACA,OAAOA,EAAO/0E,QAAQ,MAAO,IAAIloB,+BCrG9B0xC,GAAC3yC,IAyBZ,SAASw+F,EAA0DjmG,EAAuBkmG,EAA+BC,GAGrH,GAAqB,kBAAVnmG,IAAwBA,EAC/B,OAIJ,MAAMqsD,EAAO+5C,EAAgBpmG,EAAOkmG,EAAaC,GAEjD,YAAoB,IAAT95C,EAMU,iBAAVrsD,GACPA,EAAMqsD,KAAOA,EACNrsD,GAGJ,CACHqsD,aAZJ,EAuBJ,SAAS+5C,EAAgBpmG,EAAuBkmG,EAA+BC,GAE3E,MAAqB,iBAAVnmG,EAEAomG,EAAgBpmG,EAAMqsD,KAAM65C,EAAaC,GAAUzkG,gBAClC,IAAV1B,EAEa,kBAAhBkmG,GAA8BA,EAGP,kBAAhBA,GAA6BA,OAGhB,IAAbC,EAA2BD,EAAcC,OACzB,IAAhBD,OACd,EAEOA,OARP,EAUoB,kBAAVlmG,EAEVA,OAE4B,IAAbmmG,EAA4BD,EAAcC,OAGzD,EAIDnmG,EAGX,MAGMqmG,GAAwBh0F,GAAMC,UAAmB,gCAGjDg0F,EAAqB,OACrBC,EAAkBD,EAalBE,EAAyC,kBAAtB/+F,EAAQ++F,WAAyD,kBAAvB/+F,EAAQg/F,WAE3E,MAAO,CACHnT,QAAS2S,EAAqCx+F,EAAQ6rF,QAASgT,EAAoBC,GACnFlrD,WAAY4qD,EAAwCx+F,EAAQ4zC,WAAYgrD,EApBjD,iCAqBvBt5B,WAAYk5B,EAAwCx+F,EAAQslE,YAzBzC,EACI,aAyBvBztB,QAAS2mD,EAAuCx+F,EAAQ63C,SAAS,GAAM,GACvEkzB,SAAUyzB,EAhBsB,kBAArBx+F,EAAQ+qE,SACR/qE,EAAQ+qE,WACoB,iBAArB/qE,EAAQ+qE,UAA6D,kBAA7B/qE,EAAQ+qE,SAAS7kE,UAAyBlG,EAAQ+qE,SAAS7kE,UAC1G,CAAE0+C,MAAM,KAAS5kD,EAAQ+qE,WAa+B,GAAO,GAC1EtT,SAAU+mC,EAAuCx+F,EAAQy3D,UAAU,GAAM,GACzEsnC,UAAWA,IAAwB,EACtC,QC9HQE,GA6BT,WAAAzmG,CAA0BwH,GAAA/D,KAAO+D,QAAPA,EAFlB/D,KAASgL,UAAqBqgF,KAGlCrrF,KAAKmrE,QAAUpnE,EAAQonE,QACvBnrE,KAAKijG,KAAOl/F,EAAQk/F,KACpBjjG,KAAKkjG,MAAQn/F,EAAQm/F,MACrBljG,KAAKwO,KAAOzK,EAAQyK,KACpBxO,KAAKmjG,IAAMp/F,EAAQo/F,IACnBnjG,KAAK2/D,KAAO57D,EAAQ47D,KACpB3/D,KAAKojG,MAAQr/F,EAAQq/F,MACrBpjG,KAAKqjG,KAAOt/F,EAAQs/F,KACpBrjG,KAAKsjG,SAAWv/F,EAAQu/F,SACxBtjG,KAAKujG,mBAAqBx/F,EAAQw/F,mBAClCvjG,KAAK2lF,OAAS5hF,EAAQ4hF,OACtB3lF,KAAKwd,IAAMzZ,EAAQyZ,IACnBxd,KAAK8E,UAAYf,EAAQe,UACzB9E,KAAKkF,MAAQnB,EAAQmB,MAGlB,KAAA8I,GACH,MAAM,IAAInO,MAAM,2BAIb,gBAAAyF,CAAiBlJ,EAAWg4D,EAAerwD,GAC9C/D,KAAKgL,UAAUO,IAAInP,EAAMg4D,GAItB,mBAAAovC,CAAoBpnG,EAAWg4D,EAAerwD,IAG9C,aAAA0/F,CAAcprF,GAEjB,OADArY,KAAKgL,UAAUoB,QAAQiM,EAAMjc,KAAMic,IAC5B,SC7DFqrF,GAET,WAAAnnG,CAAoBiqB,EAA+Cm9E,GAA/C3jG,KAAOwmB,QAAPA,EAA+CxmB,KAAa2jG,cAAbA,EAG5D,mBAAAtoB,CAAoB7vE,GACvB,OAAOxL,KAAK2jG,cAAc,8BAA+Bn4F,GAGtD,MAAAo4F,GACH,OAAO5jG,KAAKwmB,QAAQK,OAAO,8BAA0B1iB,EAAW,OAAQ,CACpE04B,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,IAAA2a,GACH,OAAO31E,KAAKwmB,QAAQK,OAAO,yBAA0B,CAAE8uD,MAAM,GAAQ,OAAQ,CACzE94C,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,IAAA4a,GACH,OAAO51E,KAAKwmB,QAAQK,OAAO,0BAGxB,eAAMw9B,GAKT,aAJ4BrkD,KAAKwmB,QAAQK,OAAkC,4BAA6B,CAAE8N,QAAS,kBAAoB,OAAQ,CAC3IkI,cAAem+B,GACfl8B,wBAAyBk8B,MAERx7B,SAASqkE,aAG3B,KAAAC,GACH,MAAO,CACHzoB,oBAAqBr7E,KAAKq7E,oBAAoBrlE,KAAKhW,MACnD4jG,OAAQ5jG,KAAK4jG,OAAO5tF,KAAKhW,MACzB21E,KAAM31E,KAAK21E,KAAK3/D,KAAKhW,MACrB41E,KAAM51E,KAAK41E,KAAK5/D,KAAKhW,MACrBqkD,UAAWrkD,KAAKqkD,UAAUruC,KAAKhW,cCpB9B+jG,GAwBT,WAAAxnG,CAAoBiqB,EAAuCrZ,GAAvCnN,KAAOwmB,QAAPA,EApBHxmB,KAA4BgkG,6BAAG,kCAC/BhkG,KAA0BikG,2BAAG,4BAC7BjkG,KAA2BkkG,4BAAG,oCAC9BlkG,KAA0BmkG,2BAAG,4BAC7BnkG,KAA4BokG,6BAAG,2BAExCpkG,KAAiBqkG,mBAAG,EACpBrkG,KAAmCskG,oCAAG,8BAC7BtkG,KAAAukG,eAAiB,6BAA+B51F,GAAMmuD,aAC/D98D,KAAM8qC,OAAG,EACT9qC,KAAawkG,cAAyC,CAAE,EACxDxkG,KAAQgN,SAAqBq+E,KAG7BrrF,KAA0BykG,4BAAG,EAC7BzkG,KAAuB0kG,yBAAG,EAC1B1kG,KAAkC2kG,mCAAG,EACrC3kG,KAA4B4kG,6BAAG,EAInC5kG,KAAKmN,OAASA,EAAO6S,UAAU,iBAC/BhgB,KAAK6kG,OAAS,IAAInB,GAASl9E,EAASxmB,KAAK8kG,kBAAkB9uF,KAAKhW,OAChEA,KAAK+kG,UAAY/kG,KAAK6kG,OAAOf,QAC7B9jG,KAAKglG,0BAGT,cAAWC,GACP,OAAO,GAGX,SAAWC,GACP,OAAOllG,KAAK+kG,UAGT,WAAMI,CAAMphG,SACf,MAAMqhG,QAAqBplG,KAAKqlG,mBAAmBthG,GAE7CuhG,EAAkB,IAAItC,GAAmBj/F,GAC/C/D,KAAKwkG,cAAcY,EAAanlG,IAAMqlG,EAEtC,IACI,MAAMC,QAAyBvlG,KAAKwmB,QAAQK,OAAO7mB,KAAKkkG,4BAA6B,CAAEkB,gBAAgB,OAAQ,CAC3GvoE,cAAem+B,GACfl8B,wBAAyBk8B,KAE7BsqC,EAAgBrlG,GAAgC,QAA3B2L,EAAA25F,EAAiB/lE,gBAAU,IAAA5zB,OAAA,EAAAA,EAAA3L,GAClD,MAAO8L,GAEL,MAAMmhC,EAAenhC,EAAIwB,QACzBjH,YAAW,KACPtG,KAAKwlG,6BAA6BF,EAAiBp4D,EAAa,GACjE,GAEP,OAAOo4D,EAGJ,eAAMG,CAAUpjG,GAKnB,aAJqBrC,KAAKwmB,QAAQK,OAAO7mB,KAAKokG,6BAA8B/hG,EAAQ,OAAQ,CACxFw6B,cAAem+B,GACfl8B,wBAAyBk8B,MAEfx7B,SAGX,eAAMkmE,GAKT,aAJqB1lG,KAAKwmB,QAAQK,OAAO7mB,KAAKokG,kCAA8BjgG,EAAW,OAAQ,CAC3F04B,cAAem+B,GACfl8B,wBAAyBk8B,MAEfx7B,SAGX,eAAMm6C,CAAU51E,uBACnB,IAAKA,GAAWzF,MAAMC,QAAQwF,GAC1B,MAAM,IAAIlE,MAAM,0CAGpB,GAAsC,IAAlCjD,OAAOD,OAAOoH,GAASrG,OACvB,MAAM,IAAImC,MAAM,4CAGpB,QAA8B,IAAnBkE,EAAQ4hG,QAAoD,kBAAnB5hG,EAAQ4hG,OACxD,MAAM,IAAI9lG,MAAM,uCAGpB,QAAoC,IAAzBkE,EAAQ6hG,cAAgE,kBAAzB7hG,EAAQ6hG,aAC9D,MAAM,IAAI/lG,MAAM,4CAGpB,QAAmC,IAAxBkE,EAAQ8hG,aAA8D,iBAAxB9hG,EAAQ8hG,YAC7D,MAAM,IAAIhmG,MAAM,0CAGpB,GAAIkE,EAAQ+hG,cAAgD,iBAAzB/hG,EAAQ+hG,aACvC,MAAM,IAAIjmG,MAAM,2CAGpB,IAA0B,UAAtBkE,EAAQ+hG,oBAAc,IAAAl6F,OAAA,EAAAA,EAAAm6F,WAAYznG,MAAMC,QAA8B,UAAtBwF,EAAQ+hG,oBAAc,IAAAtqD,OAAA,EAAAA,EAAAuqD,SACtE,MAAM,IAAIlmG,MAAM,kDAGpB,IAA0B,UAAtBkE,EAAQ+hG,oBAAc,IAAApkC,OAAA,EAAAA,EAAAskC,WAAY1nG,MAAMC,QAA8B,UAAtBwF,EAAQ+hG,oBAAc,IAAA9sE,OAAA,EAAAA,EAAAgtE,SACtE,MAAM,IAAInmG,MAAM,kDAGpB,GAAIkE,EAAQkiG,QAAoC,iBAAnBliG,EAAQkiG,OACjC,MAAM,IAAIpmG,MAAM,8CAGpB,YAAIqmG,EAAAniG,EAAQkiG,6BAAQt9C,OAAuC,iBAAxB5kD,EAAQkiG,OAAOt9C,KAC9C,MAAM,IAAI9oD,MAAM,mDAGpB,YAAIsmG,EAAApiG,EAAQkiG,6BAAQG,UAA6C,iBAA3BriG,EAAQkiG,OAAOG,QACjD,MAAM,IAAIvmG,MAAM,sDAGpB,GAAIkE,EAAQsiG,WAA0C,iBAAtBtiG,EAAQsiG,UACpC,MAAM,IAAIxmG,MAAM,iDAGpB,YAAIymG,EAAAviG,EAAQsiG,gCAAWJ,SAA8C,iBAA7BliG,EAAQsiG,UAAUJ,OACtD,MAAM,IAAIpmG,MAAM,wDAGpB,YAAI0mG,EAAAxiG,EAAQsiG,gCAAWnB,QAA4C,iBAA5BnhG,EAAQsiG,UAAUnB,MACrD,MAAM,IAAIrlG,MAAM,uDAGpB,QAAgD,IAArCkE,EAAQyiG,0BAAwF,kBAArCziG,EAAQyiG,yBAC1E,MAAM,IAAI3mG,MAAM,wDAOpB,aAJqBG,KAAKwmB,QAAQK,OAAO7mB,KAAKskG,oCAAqCvgG,EAAS,OAAQ,CAChG84B,cAAem+B,GACfl8B,wBAAyBk8B,MAEfx7B,SAGX,sBAAMwhC,GAKT,aAJqBhhE,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,oBAAsB,OAAQ,CAC/GkI,cAAem+B,GACfl8B,wBAAyBk8B,MAEfx7B,SAGX,UAAMixB,GAWT,aAV4BzwD,KAAKwmB,QAAQK,OAA6E7mB,KAAKmkG,2BACvH,CACIxvE,QAAS,OACTnmB,KAAM,CAAEi4F,gBAAgB,IAE5B,OACA,CACI5pE,cAAem+B,GACfl8B,wBAAyBk8B,MAEZx7B,SAASglE,cAG3B,gBAAMvJ,CAAWh7F,EAAYuO,GAChC,MAEMk4F,EAAY,CACd1pG,IAAK,OACLV,MAAO,CACHqqG,YAAa9/F,KAAKC,UAAU0H,GALnB,CAACxR,EAAaV,SACV,IAAVA,EAAwB,KAAOA,MAW1C,aAJ4B0D,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,6BAA8BnmB,KAAM,CAAEvO,KAAIymG,cAAe,OAAQ,CACzJ7pE,cAAem+B,GACfl8B,wBAAyBk8B,MAERx7B,SAGlB,QAAAonE,CAASp7F,GACZ,OAAOxL,KAAK8kG,kBAAkB,yBAA0Bt5F,GAGrD,cAAAq7F,CAAer7F,GAClB,OAAOxL,KAAK8kG,kBAAkB,mBAAoBt5F,GAG/C,QAAA+iC,CAAS/iC,GACZ,OAAOxL,KAAK8kG,kBAAkB,yBAA0Bt5F,GAGrD,sBAAAs7F,CAAuBt7F,GAC1B,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAK+4B,YACL,MAAMG,EAAKl5B,KAAKgN,SAASzB,IAAI,2BAA4BC,GACzD,MAAO,KACH0tB,IACAl5B,KAAK+mG,mCAAmC,EAIzC,gBAAAC,CAAiBx7F,GACpB,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAKinG,4BACL,MAAM/tE,EAAKl5B,KAAKgN,SAASzB,IAAI,qBAAsBC,GACnD,MAAO,KACH0tB,IACAl5B,KAAKknG,0CAA0C,EAIhD,aAAAC,CAAiB37F,GACpB,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAK+4B,YACL,MAAMG,EAAKl5B,KAAKgN,SAASzB,IAAI,+BAAgCC,GAC7D,MAAO,KACH0tB,IACAl5B,KAAK+mG,mCAAmC,EAIzC,cAAMK,SACHpnG,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,YAAc,OAAQ,CACxFkI,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,cAAMqsC,SACHrnG,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,cAAenmB,KAAM,CAAEi4F,gBAAgB,IAAU,OAAQ,CAC3H5pE,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,WAAMvuD,CAAMxM,GACf,IAAKA,EACD,MAAM,IAAIJ,MAAM,iDAEpB,GAAoB,iBAAR,EACR,MAAM,IAAIA,MAAM,4CAEdG,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,QAASnmB,KAAM,CAAEvO,OAAQ,OAAQ,CACnG48B,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,eAAMssC,CAAU9C,GACnBxkG,KAAKunG,yBAAyB/C,SACxBxkG,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,YAAanmB,KAAM,CAAEg2F,kBAAmB,OAAQ,CAClH3nE,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,WAAMwsC,CAAMvnG,EAAY2J,EAAiB7F,SACtC/D,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,QAASnmB,KAAM,CAAEvO,KAAI2J,SAAQ7F,YAAa,OAAQ,CACpH84B,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,YAAMysC,CAAOxnG,EAAYg5C,SACtBj5C,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,SAAUnmB,KAAM,CAAEvO,KAAIg5C,aAAc,OAAQ,CAC9Gpc,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,gBAAM0sC,CAAWlD,EAAyBvrD,GAC7C,IAAKA,EACD,MAAM,IAAIp5C,MAAM,uDAEpB,GAAwB,iBAAbo5C,EACP,MAAM,IAAIp5C,MAAM,kDAEpBG,KAAKunG,yBAAyB/C,SACxBxkG,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,aAAcnmB,KAAM,CAAEg2F,gBAAevrD,aAAc,OAAQ,CAC7Hpc,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,cAAM73D,CAASlD,EAAYhB,GAC9B,IAAKgB,EACD,MAAM,IAAIJ,MAAM,iDAEpB,GAAoB,iBAAR,EACR,MAAM,IAAIA,MAAM,sCAGpB,IAAKZ,EACD,MAAM,IAAIY,MAAM,oDAGpBG,KAAK2nG,cAAc1oG,SAEbe,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,cAAenmB,KAAM,CAAEvO,KAAIhB,UAAW,OAAQ,CAChH49B,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,eAAM4sC,CAAUpD,EAAyBvlG,GAC5C,IAAKA,EACD,MAAM,IAAIY,MAAM,oDAEpB,GAAqB,iBAAVZ,EACP,MAAM,IAAIY,MAAM,+CAEpBG,KAAKunG,yBAAyB/C,SACxBxkG,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,eAAgBnmB,KAAM,CAAEg2F,gBAAevlG,UAAW,OAAQ,CAC5H49B,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,KAAA8oC,GACH,MAAO,CACHmB,WAAYjlG,KAAKilG,WACjBC,MAAOllG,KAAK6kG,OAAOf,QACnBqB,MAAOnlG,KAAKmlG,MAAMnvF,KAAKhW,MACvBylG,UAAWzlG,KAAKylG,UAAUzvF,KAAKhW,MAC/B0lG,UAAW1lG,KAAK0lG,UAAU1vF,KAAKhW,MAC/B25E,UAAW35E,KAAK25E,UAAU3jE,KAAKhW,MAC/BghE,iBAAkBhhE,KAAKghE,iBAAiBhrD,KAAKhW,MAC7CywD,KAAMzwD,KAAKywD,KAAKz6C,KAAKhW,MACrB4mG,SAAU5mG,KAAK4mG,SAAS5wF,KAAKhW,MAC7B6mG,eAAgB7mG,KAAK6mG,eAAe7wF,KAAKhW,MACzCuuC,SAAUvuC,KAAKuuC,SAASv4B,KAAKhW,MAC7B8mG,uBAAwB9mG,KAAK8mG,uBAAuB9wF,KAAKhW,MACzDgnG,iBAAkBhnG,KAAKgnG,iBAAiBhxF,KAAKhW,MAC7CmnG,cAAennG,KAAKmnG,cAAcnxF,KAAKhW,MACvConG,SAAUpnG,KAAKonG,SAASpxF,KAAKhW,MAC7BqnG,SAAUrnG,KAAKqnG,SAASrxF,KAAKhW,MAC7ByM,MAAOzM,KAAKyM,MAAMuJ,KAAKhW,MACvBwnG,MAAOxnG,KAAKwnG,MAAMxxF,KAAKhW,MACvBmD,SAAUnD,KAAKmD,SAAS6S,KAAKhW,MAC7Bi7F,WAAYj7F,KAAKi7F,WAAWjlF,KAAKhW,MACjCynG,OAAQznG,KAAKynG,OAAOzxF,KAAKhW,MACzB0nG,WAAY1nG,KAAK0nG,WAAW1xF,KAAKhW,MACjCsnG,UAAWtnG,KAAKsnG,UAAUtxF,KAAKhW,MAC/B4nG,UAAW5nG,KAAK4nG,UAAU5xF,KAAKhW,MAC/B+oE,OAAQ/oE,KAAK6nG,oBAAoB7xF,KAAKhW,OAIvC,yBAAM6nG,CAAoBrD,GAC7B,IAAKA,IAAkBlmG,MAAMC,QAAQimG,IAA2C,IAAzBA,EAAc9mG,OACjE,MAAM,IAAImC,MAAM,0EAGpB,MAAMioG,QAAyDhiG,QAAQsf,IACnEo/E,EAAcp9F,KAAK2gG,GAAwB/nG,KAAKqlG,mBAAmB0C,GAAqB,MAO5F,aAJ+B/nG,KAAKwmB,QAAQK,OAAO7mB,KAAKmkG,2BAA4B,CAAExvE,QAAS,sBAAuBnmB,KAAM,CAAEw5F,qBAAsBF,IAA2B,OAAQ,CACnLjrE,cAAem+B,GACfl8B,wBAAyBk8B,MAELx7B,SAASglE,cAG7B,wBAAMa,CAAmBthG,EAAsEkkG,eAGnG,GAFAjoG,KAAK66D,SAAS92D,EAASkkG,IAElBjoG,KAAKqkG,kBAAmB,CACzB,MAAM6D,EAAkB,GACxB,IAAK,IAAI/7F,EA5YE,EA4YsBA,EAAQnM,KAAKilG,WAAY94F,IACtD+7F,EAAgBhoG,KACZF,KAAKwmB,QAAQ0f,SAAS,GAAGlmC,KAAKukG,kBAAkBp4F,IAASnM,KAAKmoG,wBAAwBnyF,KAAKhW,QAInGA,KAAKqkG,mBAAoB,QACnBv+F,QAAQsf,IAAI8iF,GAItB,MAAMjoG,EAAe,QAAV2L,EAAA7H,EAAQ9D,UAAE,IAAA2L,EAAAA,EAAI+C,GAAMmuD,aACzB1gE,EAAmB,QAAZo/C,EAAAz3C,EAAQ3H,YAAI,IAAAo/C,EAAAA,EAAI,eACvB4pD,EAAwC,CAC1CnlG,KACAhB,cAAOyiE,EAAA39D,EAAQ9E,qBAAS,SACxBiG,MAAOnB,EAAQmB,MACf9I,OACAgsG,iBAAUpvE,EAAAj1B,EAAQqkG,wBAAY,OAC9BhrG,YAAa2G,EAAQk/F,KACrBoF,4BAA6B,GAAGroG,KAAKukG,mBACrCp5B,QAAS,GACTm9B,SAAUroG,EACVkZ,OAAQpV,EAAQoV,OAChBovF,oBAAoB,EACpBC,aAAczkG,EAAQykG,cAS1B,OANIzkG,EAAQonE,SACRnrE,KAAKyoG,cAAc1kG,EAAS9D,EAAImlG,GAGpCplG,KAAK0oG,cAAc3kG,EAASqhG,GAErBA,EAGH,iBAAAN,CAAsC9nG,EAAawO,GACvD,GAAwB,mBAAbA,EACP,MAAM,IAAI3L,MAAM,8CAEpBG,KAAK+4B,YACL,MAAMG,EAAKl5B,KAAKgN,SAASzB,IAAIvO,EAAKwO,GAClC,MAAO,KACH0tB,IACAl5B,KAAK+mG,mCAAmC,EAIxC,aAAA2B,CAAc3kG,EAAsEqhG,GAQxF,GAPIrhG,EAAQ47D,OACRylC,EAAauD,WAAavD,EAAauD,YAAc,GACrDvD,EAAauD,WAAWzoG,KACpB,CAAElD,IAAK,OAAQV,MAAO,CAAEqqG,YAAa5iG,EAAQ47D,SAIjD57D,EAAQyK,KAAM,CACd42F,EAAauD,WAAavD,EAAauD,YAAc,GACrD,MAAMC,EAAe/hG,KAAKC,UAAU/C,EAAQyK,MAC5C42F,EAAauD,WAAWzoG,KACpB,CAAElD,IAAK,OAAQV,MAAO,CAAEqqG,YAAaiC,KAIV,iBAAxB7kG,EAAQ8kG,cACfzD,EAAauD,WAAavD,EAAauD,YAAc,GACrDvD,EAAauD,WAAWzoG,KACpB,CAAElD,IAAK,cAAeV,MAAO,CAAEqqG,YAAa5iG,EAAQ8kG,YAAY7qG,eAIrC,iBAAxB+F,EAAQ8hG,cACfT,EAAauD,WAAavD,EAAauD,YAAc,GACrDvD,EAAauD,WAAWzoG,KACpB,CAAElD,IAAK,cAAeV,MAAO,CAAEqqG,YAAa5iG,EAAQ8hG,YAAY7nG,eAKpE,aAAAyqG,CAAc1kG,EAAsE9D,EAAYmlG,aACpG,MAAM0D,EAAe/kG,EAAQonE,QAAQ5rE,MAAM,EAAGS,KAAKilG,YAEnD,IAAI94F,EA/dW,EAgef,IAAK,MAAMvC,KAAUk/F,EAAc,CAC/B,MAAMliF,EAAkE,CACpEmiF,kBAAmB9oG,EACnB+oG,UAAWp/F,EAAOA,OAClBq/F,yBAAkBr9F,EAAAhC,EAAO4c,8BAAS1B,OAClCokF,yBAAkB1tD,EAAA5xC,EAAO4c,8BAAS7hB,OAClCwkG,oBAAqBtiG,KAAKC,UAA0B,QAAhB46D,EAAA93D,EAAO4c,eAAS,IAAAk7C,OAAA,EAAAA,EAAAn1D,YAGlDkyC,EAAa7hD,OAAOC,KAAK+pB,GAAMxf,KAAKpK,IAE/B,CACHM,KAAMN,EACNV,MAAO,CACHqqG,YAJM//E,EAAK5pB,QASjBosG,EAA4C,CAC9C9rG,KAAM,GAAG0C,KAAKukG,kBAAkBp4F,IAChC/O,YAAawM,EAAO1E,MACpB2/B,YAAaj7B,EAAO1E,MACpBmkG,YAAaz/F,EAAOy/F,YACpB3kB,UAAW96E,EAAO86E,UAClBjmC,cAGJ2mD,EAAaj6B,QAAQjrE,KAAKkpG,GAC1Bj9F,KAIA,QAAA0uD,CAAS92D,EAAsEkkG,GACnF,IAAKlkG,EACD,MAAM,IAAIlE,MAAM,yCAEpB,GAAuB,iBAAZkE,EACP,MAAM,IAAIlE,MAAM,yCAEpB,IAAKkE,EAAQmB,MACT,MAAM,IAAIrF,MAAM,yCAEpB,GAA6B,iBAAlBkE,EAAQmB,MACf,MAAM,IAAIrF,MAAM,8CAEpB,GAAIkE,EAAQqkG,UAAwC,iBAArBrkG,EAAQqkG,SACnC,MAAM,IAAIvoG,MAAM,iDAEpB,GAAIkE,EAAQ8kG,aAA8C,iBAAxB9kG,EAAQ8kG,YACtC,MAAM,IAAIhpG,MAAM,oDAEpB,GAAIkE,EAAQ8hG,aAA8C,iBAAxB9hG,EAAQ8hG,YACtC,MAAM,IAAIhmG,MAAM,oDAEhBkE,EAAQ9E,OACRe,KAAK2nG,cAAc5jG,EAAQ9E,MAAOgpG,GAIlC,aAAAN,CAAc1oG,EAAegpG,GACjC,GAAuB,iBAAX,EACR,MAAM,IAAIpoG,MAAM,yCAGpB,MAAMypG,EAAc,CAChB,SACA,eACA,SAOJ,GAJIrB,GACAqB,EAAYppG,KAAK,OAAQ,UAAW,aAAc,WAGjDopG,EAAYz9F,SAAS5M,GACtB,MAAM,IAAIY,MAAM,uBAAuBZ,mBAIvC,SAAA85B,GACJ/4B,KAAK2kG,qCACA3kG,KAAKykG,6BACNzkG,KAAKykG,4BAA6B,EAElCzkG,KAAKmN,OAAO2D,KAAK,+BAA+B9Q,KAAKgkG,kCACrDhkG,KAAKwmB,QACAuS,UAAU/4B,KAAKgkG,6BAA8B,CAC1Cz3F,UAAW,CACPg9F,eAAe,EACf9C,gBAAgB,KAGvBh5F,MAAM2F,IACHpT,KAAKwpG,6BAA+Bp2F,EACpCpT,KAAKmN,OAAO2D,KAAK,+BAA+B9Q,KAAKgkG,kCACrD5wF,EAAI+6B,QAAO,EAAG3/B,WACVxO,KAAKypG,WAAWj7F,EAAK,IAEzB4E,EAAIm7B,UAAS,IAAI3nB,KACb5mB,KAAKykG,4BAA6B,EAClCzkG,KAAKmN,OAAO2D,KACR,gCAAgCjK,KAAKC,UAAU8f,KAClD,IAELxT,EAAIq7B,UAAS,IAAI7nB,KACb5mB,KAAKykG,4BAA6B,EAClCzkG,KAAKmN,OAAOiL,KACR,gCAAgCvR,KAAKC,UAAU8f,KAClD,GACH,IAELpkB,OAAOkC,IACJ1E,KAAKykG,4BAA6B,EAClCzkG,KAAKmN,OAAO7B,MAAM,2BAA2BtL,KAAKgkG,gCAAiCt/F,EAAE,KAK7F,yBAAAuiG,GACJjnG,KAAK4kG,+BACA5kG,KAAK0kG,0BACN1kG,KAAK0kG,yBAA0B,EAC/B1kG,KAAKmN,OAAO2D,KAAK,+BAA+B9Q,KAAKikG,gCACrDjkG,KAAKwmB,QACAuS,UAAU/4B,KAAKikG,2BAA4B,CACxC13F,UAAW,CACPg9F,eAAe,KAGtB97F,MAAM2F,IACHpT,KAAK0pG,uBAAyBt2F,EAC9BpT,KAAKmN,OAAO2D,KAAK,+BAA+B9Q,KAAKikG,gCACrD7wF,EAAI+6B,QAAO,EAAG3/B,WACVxO,KAAKgN,SAASZ,QAAQ,qBAAsB,CAAEu9F,MAAOn7F,EAAKm7F,OAAQ,IAEtEv2F,EAAIm7B,UAAS,IAAI3nB,KACb5mB,KAAK0kG,yBAA0B,EAC/B1kG,KAAKmN,OAAO2D,KACR,gCAAgCjK,KAAKC,UAAU8f,KAClD,IAELxT,EAAIq7B,UAAS,IAAI7nB,KACb5mB,KAAK0kG,yBAA0B,EAC/B1kG,KAAKmN,OAAOiL,KACR,gCAAgCvR,KAAKC,UAAU8f,KAClD,GACH,IAELpkB,OAAOkC,IACJ1E,KAAK0kG,yBAA0B,EAC/B1kG,KAAKmN,OAAO7B,MAAM,2BAA2BtL,KAAKikG,8BAA+Bv/F,EAAE,KAK3F,uBAAAsgG,GACJhlG,KAAKgN,SAASzB,IAAI,0BAA2BtL,IACzCD,KAAK4pG,eAAe3pG,EAAG,IAE3BD,KAAKgN,SAASzB,IAAI,0BAA2B65F,IACzCplG,KAAK6pG,aAAazE,EAAanlG,GAAG,IAIlC,UAAAwpG,CAAWl8F,SACf,IACQ,UAAWA,GAAWjP,MAAMC,QAAQgP,EAAQsmD,OAC5C7zD,KAAK8pG,gBAAgBv8F,GACd,WAAYA,GAAWjP,MAAMC,QAAQgP,EAAQw8F,SACpD/pG,KAAKgqG,aAAaz8F,GAElB,kBAAmBA,GAA4C,iBAA1BA,EAAQ+uB,gBAC7Ct8B,KAAKmN,OAAO2D,KAAK,0BAA0BjK,KAAKC,UAAUyG,EAAQ+uB,kCAClEt8B,KAAKgN,SAASZ,QAAQ,2BAA4BmB,EAAQ+uB,cAAe/uB,EAAQ+uB,cAAc2tE,kBAE/F,YAAa18F,GAAsC,iBAApBA,EAAQonB,UACvC30B,KAAKmN,OAAO2D,KAAK,qBAAwC,UAAnBvD,EAAQonB,eAAW,IAAA/oB,EAAAA,EAAA/E,KAAKC,UAAUyG,uBAChD,cAApBA,EAAQonB,SAA+C,cAApBpnB,EAAQonB,SAC3C30B,KAAKgN,SAASZ,QAAQ,8BAAmD,cAApBmB,EAAQonB,UAGvE,MAAOjwB,GACL1E,KAAKmN,OAAO7B,MAAM,uCAAwC5G,IAI1D,eAAAolG,CAAgBv8F,GACpB,MAAMsmD,EAAQtmD,EAAQsmD,MACtB7zD,KAAKmN,OAAO2D,KACR,YAAY+iD,EAAMn2D,wCAEtB,MAAM8mG,EAAmE3wC,EAGzE,GAAItmD,EAAQ28D,WACRs6B,EAAcplG,SAASswB,IACnB1vB,KAAKgN,SAASZ,QAAQ,yBAA0BsjB,EAAE,QAEnD,CACH,MAAM01E,EAAeZ,EAAc,GACR,WAAvBY,EAAanmG,MACbe,KAAKgN,SAASZ,QAAQ,yBAA0B,CAAEnM,GAAImlG,EAAanlG,KAEnED,KAAKgN,SAASZ,QAAQ,yBAA0Bg5F,IAKpD,YAAA4E,CAAaz8F,GACFA,EAAQw8F,OAChB3qG,SAAS0R,UACZ,MAAM7Q,EAAK6Q,EAAK7Q,GACVs0B,EAAkB,QAAV3oB,EAAAkF,EAAKyjB,aAAK,IAAA3oB,EAAAA,EAAI,CAAE,EAC9B,GAAoB,WAAhB2oB,EAAMt1B,MACNe,KAAKgN,SAASZ,QAAQ,yBAA0B,CAAEnM,QAAOs0B,SACtD,GAAIA,EAAMt1B,MACbe,KAAKgN,SAASZ,QAAQ,mBAAoB,CAAEnM,MAAMs0B,EAAMt1B,YACrD,GAAIs1B,EAAMo0E,WAAY,CACzB,MACMuB,EADa31E,EAAMo0E,WACQhvF,MAAM5a,GAAgB,SAAVA,EAAE/B,MAC3CktG,GACAlqG,KAAKgN,SAASZ,QAAQ,+BAAgC,CAAEnM,MAAM4G,KAAK0c,MAAM2mF,EAAc5tG,MAAMqqG,kBAMrG,cAAAiD,CAAe3pG,GACnB,MAAMmlG,aAAEA,EAAYpoG,IAAEA,GAA4DgD,KAAKmqG,gBAAgBlqG,GACnGmlG,IACAplG,KAAKuhF,YAAY6jB,EAAc,gBACxBplG,KAAKwkG,cAAcxnG,IAI1B,YAAA6sG,CAAa5pG,GACjB,MAAMmlG,aAAEA,GAAqEplG,KAAKmqG,gBAAgBlqG,GAC9FmlG,GACAplG,KAAKuhF,YAAY6jB,EAAc,QAI/B,eAAA+E,CAAgBlqG,GACpB,IAAImlG,EACApoG,EACJ,IAAK,MAAMgE,KAAKhB,KAAKwkG,cACjB,GAAIxkG,KAAKwkG,cAAcxjG,GAAGf,KAAOA,EAAI,CACjCmlG,EAAeplG,KAAKwkG,cAAcxjG,GAClChE,EAAMgE,EACN,MAGR,MAAO,CAAEokG,eAAcpoG,OAGnB,uBAAAmrG,CAAwBvhF,GAC5B,MAAMwjF,EAAsBpqG,KAAKqqG,uBAAuBzjF,GACxD,GAAkC,YAA9BwjF,EAAoB/xF,MAEpB,OAEJ,MAAM+sF,EAAeplG,KAAKwkG,cAAc4F,EAAoBE,gBACvDlF,GAILplG,KAAKuqG,4BAA4BnF,EAAcgF,GAG3C,2BAAAG,CAA4BnF,EAA4Cx+E,GAC5E,OAAQA,EAAKvO,OACT,IAAK,SACD,OAAOrY,KAAKwqG,8BAA8BpF,EAAcx+E,EAAK6jF,2BAEjE,IAAK,QACD,OAAOzqG,KAAK0qG,6BAA6BtF,GAE7C,IAAK,QACD,OAAOplG,KAAKuhF,YAAY6jB,EAAc,SAE1C,IAAK,QACD,OAAOplG,KAAKwlG,6BAA6BJ,EAAcx+E,EAAKtb,OAEhE,IAAK,OACD,OAAOtL,KAAKuhF,YAAY6jB,EAAc,SAQ1C,6BAAAoF,CAA8BpF,EAA4Cv7F,GAE9E,MAAMwO,EAAoD,CACtDjc,KAAM,WACNwN,OAAQC,EAAQm/F,WAGhB5D,EAAauF,UACbvF,EAAauF,SAAStyF,GAI1B+sF,EAAa3B,cAAcprF,GAGvB,4BAAAqyF,CAA6BtF,GAEjC,MAAM/sF,EAAmD,CAAEjc,KAAM,WAC7DgpG,EAAawF,SACbxF,EAAawF,QAAQvyF,GAIzB+sF,EAAa3B,cAAcprF,GAGvB,WAAAkpE,CAAY6jB,EAEhB/oD,SAEA,MAAMhkC,EAAQ,CAAEjc,KAAMigD,GAEI,QAA1BzwC,EAAAw5F,EADkB,KAAK/oD,YACG,IAAAzwC,GAAAA,EAAAhB,KAAAw6F,EAAA/sF,GAG1B+sF,EAAa3B,cAAcprF,GAGvB,4BAAAmtF,CAA6BJ,EAA4C95F,GAE7E,MAAM+M,EAAQ,CAAEjc,KAAM,UAAWkP,SAC7B85F,EAAaxzF,SACbwzF,EAAaxzF,QAAQyG,GAIzB+sF,EAAa3B,cAAcprF,GAGvB,sBAAAgyF,CAAuBzjF,SAC3B,IAAIhjB,EACJ,MAAMyU,EAAyB,QAAjBzM,EAAAgb,EAAKw+E,oBAAY,IAAAx5F,OAAA,EAAAA,EAAEyM,MAUjC,OANIzU,EAHCyU,EAGQ,CACLA,QACAiyF,eAAgB1jF,EAAKw+E,aAAayF,qBAClCJ,0BAA2B7jF,GALtB5mB,KAAK8qG,+BAA+BlkF,GAQ1ChjB,EAGH,8BAAAknG,CAA+BlkF,SACnC,IAAIhjB,EAqBJ,OAnBIA,EADAgjB,EAAKmiF,kBACI,CACL1wF,MAAO,SACPiyF,eAAgB1jF,EAAKmiF,kBACrB0B,0BAA2B7jF,IAEL,UAAnBA,EAAKw+E,oBAAc,IAAAx5F,OAAA,EAAAA,EAAAi/F,sBACjB,CACLxyF,MAAO,QACPiyF,eAAgB1jF,EAAKw+E,aAAayF,qBAClCJ,0BAA2B7jF,GAGtB,CACLvO,MAAO,UACPiyF,oBAAgBnmG,EAChBsmG,0BAA2B7jF,GAI5BhjB,EAGH,iCAAAmjG,GACJ/mG,KAAK2kG,qCAED3kG,KAAKwpG,8BAA4E,IAA5CxpG,KAAK2kG,qCAC1C3kG,KAAKwpG,6BAA6Bx7F,QAClChO,KAAKwpG,kCAA+BrlG,GAIpC,wCAAA+iG,GACJlnG,KAAK4kG,+BAED5kG,KAAK0pG,wBAAgE,IAAtC1pG,KAAK4kG,+BACpC5kG,KAAK0pG,uBAAuB17F,QAC5BhO,KAAK0pG,4BAAyBvlG,GAI9B,wBAAAojG,CAAyB/C,GAC7B,IAAKlmG,MAAMC,QAAQimG,GACf,MAAM,IAAI3kG,MAAM,6EAGpB,GAAI2kG,EAAc5+D,MAAMlW,GAAmB,iBAANA,IACjC,MAAM,IAAI7vB,MAAM,uFCh3BfkrG,GAOT,WAAAxuG,CAAoBg6C,EAAiD/vB,GAAjDxmB,KAAQu2C,SAARA,EAAiDv2C,KAAOwmB,QAAPA,EAN7DxmB,KAAQgN,SAAqBH,KAI7B7M,KAAYgrG,cAAG,EAGnBhrG,KAAKghE,mBAGF,UAAMvQ,GAET,SADMzwD,KAAKghE,oBACNhhE,KAAKirG,cACN,MAAM,IAAIprG,MAAM,iBAEpB,aAAcG,KAAKg1F,UAAUx1D,SAASpa,IAGnC,gBAAM8lF,GAET,SADMlrG,KAAKghE,oBACNhhE,KAAKirG,cACN,MAAM,IAAIprG,MAAM,iBAEpB,MAAMulB,QAAYplB,KAAKg1F,SACvB,OAAO5vE,EAAIoa,SAASpa,IAAIzL,MAAMpK,GAAMA,EAAEjS,OAAS8nB,EAAIoa,SAAS23C,WAGzD,YAAMg0B,CAAOC,GAEhB,SADMprG,KAAKghE,oBACNhhE,KAAKqrG,cACN,MAAM,IAAIxrG,MAAM,uBAGdG,KAAKwmB,QAAQK,OAAO7mB,KAAKqrG,cAAe,CAAED,UAG7C,SAAAvoC,CAAUr3D,GACb,IAAKA,EACD,MAAM,IAAI3L,MAAM,iCAEpB,GAAI2L,GAAgC,mBAAbA,EACnB,MAAM,IAAI3L,MAAM,wCAGpB,OADAG,KAAK+4B,YACE/4B,KAAKgN,SAASzB,IAAI,UAAWC,GAGhC,sBAAMw1D,GACV,IACI,GAAIhhE,KAAKsrG,kBACL,OAEJ,MAAM9jG,QAAexH,KAAKwmB,QAAQK,OAhER,4BAiE1B7mB,KAAKsrG,kBAAoB9jG,EAAOg4B,SAAS8rE,kBACzCtrG,KAAKirG,cAAgBzjG,EAAOg4B,SAAS+rE,oBACrCvrG,KAAKqrG,cAAgB7jG,EAAOg4B,SAASgsE,oBACvC,MAAOlgG,GACL,QAIA,YAAM0pF,GAEV,aADMh1F,KAAKghE,yBACEhhE,KAAKwmB,QAAQK,OAAkB7mB,KAAKirG,eAG7C,eAAMlyE,SACJ/4B,KAAKghE,mBACPhhE,KAAKgrG,eAGThrG,KAAKgrG,cAAe,EACpBhrG,KAAKu2C,SAASxd,UAAU/4B,KAAKsrG,mBAAoB98F,IACzCA,GAAQA,EAAK4W,KAAO5W,EAAK2oE,UACzBn3E,KAAKgN,SAASZ,QAAQ,UAAWoC,EAAK4W,IAAIzL,MAAMpK,GAAMA,EAAEjS,OAASkR,EAAK2oE,iBCzFtF,MAAMs0B,GAAyB,CAAC,OAAQ,QAAS,UAAW,mBAAoB,OAAQ,UAAW,QAC7FC,GAAiB,CAAC,QAAS,OAAQ,OAAQ,UAAW,UAAW,QAAS,UAAW,OAAQ,cAAe,aAAc,QAAS,cAAe,eAAgB,WAAY,YAAa,eAAgB,gBAAiB,UAAW,qBAO7O,IAAIC,GAAK,SAAU/nG,GAAU,OAAU+nG,IAAI,EAAM/nG,OAAQA,IAMrDmI,GAAM,SAAUT,GAAS,OAAUqgG,IAAI,EAAOrgG,MAAOA,IAwDrDsgG,GAAO,SAAUC,EAAGC,EAAI3/D,GACxB,OAAiB,IAAV2/D,EAAGH,GAAeG,GACX,IAAV3/D,EAAGw/D,GAAex/D,EACdw/D,GAAGE,EAAEC,EAAGloG,OAAQuoC,EAAGvoC,QAC/B,EAIImoG,GAAW,SAAUF,EAAGjjC,GACxB,OAAgB,IAATA,EAAE+iC,GAAc/iC,EAAI78D,GAAI8/F,EAAEjjC,EAAEt9D,OACvC,EA6BI0gG,GAAW,WAQX,OAPAA,GAAWpvG,OAAOymB,QAAU,SAAkB9T,GAC1C,IAAK,IAAIvM,EAAGqE,EAAI,EAAGqoB,EAAInjB,UAAU7O,OAAQ2J,EAAIqoB,EAAGroB,IAE5C,IAAK,IAAImuB,KADTxyB,EAAIuJ,UAAUlF,GACOzK,OAAO8N,UAAUC,eAAeC,KAAK5H,EAAGwyB,KAAIjmB,EAAEimB,GAAKxyB,EAAEwyB,IAE9E,OAAOjmB,CACf,EACWy8F,GAASlgG,MAAM9L,KAAMuM,UAChC,EAcA,SAAS0/F,GAAQltG,EAAGC,GAChB,GAAID,IAAMC,EACN,OAAO,EAEX,GAAU,OAAND,GAAoB,OAANC,EACd,OAAO,EAEX,oBAA2B,EACvB,OAAO,EAEX,GAAmB,iBAAP,EAAiB,CAEzB,GAAIV,MAAMC,QAAQQ,GAAI,CAClB,IAAKT,MAAMC,QAAQS,GACf,OAAO,EAEX,GAAID,EAAErB,SAAWsB,EAAEtB,OACf,OAAO,EAEX,IAAK,IAAI2J,EAAI,EAAGA,EAAItI,EAAErB,OAAQ2J,IAC1B,IAAK4kG,GAAQltG,EAAEsI,GAAIrI,EAAEqI,IACjB,OAAO,EAGf,OAAO,CACV,CAED,IAAIxK,EAAOD,OAAOC,KAAKkC,GACvB,GAAIlC,EAAKa,SAAWd,OAAOC,KAAKmC,GAAGtB,OAC/B,OAAO,EAEX,IAAS2J,EAAI,EAAGA,EAAIxK,EAAKa,OAAQ2J,IAAK,CAClC,IAAKrI,EAAE2L,eAAe9N,EAAKwK,IACvB,OAAO,EAEX,IAAK4kG,GAAQltG,EAAElC,EAAKwK,IAAKrI,EAAEnC,EAAKwK,KAC5B,OAAO,CAEd,CACD,OAAO,CACV,CACL,CAIA,IAAI6kG,GAAc,SAAUC,GAAQ,OAAO7tG,MAAMC,QAAQ4tG,IACrDC,GAAe,SAAUD,GACzB,MAAuB,iBAATA,GAA8B,OAATA,IAAkBD,GAAYC,EACrE,EAyBIE,GAAc,SAAUC,EAAUC,GAClC,MAAO,YAAcD,EAAW,SAzBnB,SAAUH,GACvB,cAAeA,GACX,IAAK,SACD,MAAO,WACX,IAAK,SACD,MAAO,WACX,IAAK,UACD,MAAO,YACX,IAAK,YACD,MAAO,YACX,IAAK,SACD,OAAIA,aAAgB7tG,MACT,WAEO,OAAT6tG,EACE,OAGA,YAEf,QACI,OAAOtlG,KAAKC,UAAUqlG,GAElC,CAE+CK,CAAWD,EAC1D,EACIE,GAAY,SAAU5wE,GACtB,OAAOA,EAAMz0B,KAAI,SAAU5J,GAAQ,MAAwB,iBAATA,EAAoB,IAAMA,EAAO,IAAMA,EAAO,GAAO,IAAEC,KAAK,GAClH,EACIivG,GAAY,SAAUC,EAAO/gG,GAC7B,IAAIirD,EAAKjrD,EAAGirD,GAAI4kC,EA5FpB,SAAgBz4F,EAAG0B,GACf,IAAI6K,EAAI,CAAA,EACR,IAAK,IAAIimB,KAAKxyB,EAAOpG,OAAO8N,UAAUC,eAAeC,KAAK5H,EAAGwyB,IAAM9wB,EAAE6O,QAAQiiB,GAAK,IAC9EjmB,EAAEimB,GAAKxyB,EAAEwyB,IACb,GAAS,MAALxyB,GAAqD,mBAAjCpG,OAAOgxB,sBACtB,KAAIvmB,EAAI,EAAb,IAAgBmuB,EAAI54B,OAAOgxB,sBAAsB5qB,GAAIqE,EAAImuB,EAAE93B,OAAQ2J,IAC3D3C,EAAE6O,QAAQiiB,EAAEnuB,IAAM,GAAKzK,OAAO8N,UAAU+iB,qBAAqB7iB,KAAK5H,EAAGwyB,EAAEnuB,MACvEkI,EAAEimB,EAAEnuB,IAAMrE,EAAEwyB,EAAEnuB,IAF4B,CAItD,OAAOkI,CACX,CAkF2Bq9F,CAAOhhG,EAAI,CAAC,OACnC,OAAQogG,GAAS,CAAEn1C,GAAI81C,GAAS91C,GAAM,KAAO4kC,EACjD,EAsBIoR,GAAyB,WAezB,SAASA,EAAQC,GACb,IAAIC,EAAQ/sG,KACZA,KAAK8sG,OAASA,EAwBd9sG,KAAKgtG,IAAM,SAAUb,GACjB,OAAOJ,IAAS,SAAUzgG,GAAS,MAAQ,CACvC2hG,KAAM,eACNv8E,MAAOy7E,EACPt1C,GAAI,SAAWvrD,EAAMurD,IAAM,IAC3BtpD,QAASjC,EAAMiC,SAAW,GACzB,GAAEw/F,EAAMD,OAAOX,GAChC,EAIQnsG,KAAKktG,WAAa,SAAUf,GAAQ,OA5QxB,KADMvjC,EA6QmCmkC,EAAMC,IAAIb,IA5Q1DR,GAAc7lG,QAAQC,QAAQ6iE,EAAEhlE,QAAUkC,QAAQ8H,OAAOg7D,EAAEt9D,OADxD,IAAUs9D,GAkRlB5oE,KAAKmtG,iBAAmB,SAAUhB,GAAQ,OAjP9B,SAAUvjC,GAC1B,IAAa,IAATA,EAAE+iC,GACF,OAAO/iC,EAAEhlE,OAGT,MAAMglE,EAAEt9D,KAEhB,CA0OyD8hG,CAAcL,EAAMC,IAAIb,KAYzEnsG,KAAKoH,IAAM,SAAUykG,GACjB,OAAO,IAAIgB,GAAQ,SAAUV,GAAQ,OAnPvC,SAAUN,EAAGjjC,GACnB,OAAgB,IAATA,EAAE+iC,GAAcA,GAAGE,EAAEjjC,EAAEhlE,SAAWglE,CAC7C,CAiPwDxhE,CAAIykG,EAAGkB,EAAMD,OAAOX,GAAS,GACrF,EAiDQnsG,KAAKqtG,QAAU,SAAUxB,GACrB,OAAO,IAAIgB,GAAQ,SAAUV,GACzB,OA/QF,SAAUN,EAAGjjC,GACvB,OAAgB,IAATA,EAAE+iC,GAAcE,EAAEjjC,EAAEhlE,QAAUglE,CACzC,CA6QuBykC,EAAQ,SAAU/wG,GAAS,OAAOuvG,EAAEvvG,GAAOwwG,OAAOX,EAAM,GAAIY,EAAMD,OAAOX,GAChG,GACA,EAwBQnsG,KAAKgwF,MAAQ,SAAU18D,EAAM4Z,GACzB,OAAO6/D,EAAMM,SAAQ,SAAU/wG,GAAS,OAAQg3B,EAAKh3B,GAASuwG,EAAQS,QAAQhxG,GAASuwG,EAAQvxC,KAAKpuB,EAAe,GAC/H,CACK,CAkWD,OA9VA2/D,EAAQj5E,OAAS,WACb,OAAO,IAAIi5E,GAAQ,SAAUV,GACzB,MAAuB,iBAATA,EACRR,GAAGQ,GACHpgG,GAAI,CAAEwB,QAAS8+F,GAAY,WAAYF,IACzD,GACA,EAIIU,EAAQU,OAAS,WACb,OAAO,IAAIV,GAAQ,SAAUV,GACzB,MAAuB,iBAATA,EACRR,GAAGQ,GACHpgG,GAAI,CAAEwB,QAAS8+F,GAAY,WAAYF,IACzD,GACA,EAIIU,EAAQW,QAAU,WACd,OAAO,IAAIX,GAAQ,SAAUV,GACzB,MAAuB,kBAATA,EACRR,GAAGQ,GACHpgG,GAAI,CAAEwB,QAAS8+F,GAAY,YAAaF,IAC1D,GACA,EACIU,EAAQY,SAAW,SAAUnxG,GACzB,OAAO,IAAIuwG,GAAQ,SAAUV,GACzB,OAAOF,GAAQE,EAAM7vG,GACfqvG,GAAGrvG,GACHyP,GAAI,CAAEwB,QAAS,YAAc1G,KAAKC,UAAUxK,GAAS,SAAWuK,KAAKC,UAAUqlG,IACjG,GACA,EACIU,EAAQ78E,OAAS,SAAU09E,GACvB,OAAO,IAAIb,GAAQ,SAAUV,GACzB,GAAIC,GAAaD,IAASuB,EAAU,CAChC,IAAIx4E,EAAM,CAAA,EACV,IAAK,IAAIl4B,KAAO0wG,EACZ,GAAIA,EAAS/iG,eAAe3N,GAAM,CAC9B,IAAI4rE,EAAI8kC,EAAS1wG,GAAK8vG,OAAOX,EAAKnvG,IAClC,IAAa,IAAT4rE,EAAE+iC,GAMD,YAAkBxnG,IAAdgoG,EAAKnvG,GACH+O,GAAI,CAAEwB,QAAS,YAAcvQ,EAAM,sCAGnC+O,GAAI2gG,GAAU,IAAM1vG,EAAK4rE,EAAEt9D,aARjBnH,IAAbykE,EAAEhlE,SACFsxB,EAAIl4B,GAAO4rE,EAAEhlE,OASxB,CAEL,OAAO+nG,GAAGz2E,EACb,CACI,OAAIk3E,GAAaD,GACXR,GAAGQ,GAGHpgG,GAAI,CAAEwB,QAAS8+F,GAAY,YAAaF,IAE/D,GACA,EACIU,EAAQlhF,MAAQ,SAAUgiF,GACtB,OAAO,IAAId,GAAQ,SAAUV,GACzB,GAAID,GAAYC,IAASwB,EAAS,CAI9B,OAAOxB,EAAKrvG,QAAO,SAAUmP,EAAK2oD,EAAGvtD,GACjC,OAAOukG,IAAK,SAAU1tG,EAAK0F,GAAU,OAAO1F,EAAIG,OAAO,CAACuF,GAAW,GAAEqI,EAJrD,SAAU2oD,EAAGvtD,GAC7B,OAAO0kG,IAAS,SAAU6B,GAAU,OAAOlB,GAAU,IAAMrlG,EAAI,IAAKumG,EAAQ,GAAID,EAAQb,OAAOl4C,GACnH,CAE8Fi5C,CAAcj5C,EAAGvtD,GAC/G,GAAmBskG,GAAG,IACT,CACI,OAAIO,GAAYC,GACVR,GAAGQ,GAGHpgG,GAAI,CAAEwB,QAAS8+F,GAAY,WAAYF,IAE9D,GACA,EACIU,EAAQiB,MAAQ,SAAUJ,GACtB,OAAO,IAAIb,GAAQ,SAAUV,GACzB,GAAID,GAAYC,GAAO,CACnB,GAAIA,EAAKzuG,SAAWgwG,EAAShwG,OACzB,OAAOqO,GAAI,CACPwB,QAAS,8BAAgCmgG,EAAShwG,OAAS,uBAAyByuG,EAAKzuG,SAIjG,IADA,IAAIkG,EAAS,GACJyD,EAAI,EAAGA,EAAIqmG,EAAShwG,OAAQ2J,IAAK,CACtC,IAAI0mG,EAAML,EAASrmG,GAAGylG,OAAOX,EAAK9kG,IAClC,IAAI0mG,EAAIpC,GAIJ,OAAO5/F,GAAI2gG,GAAU,IAAMrlG,EAAI,IAAK0mG,EAAIziG,QAHxC1H,EAAOyD,GAAK0mG,EAAInqG,MAKvB,CACD,OAAO+nG,GAAG/nG,EACb,CAEG,OAAOmI,GAAI,CAAEwB,QAAS8+F,GAAY,qBAAuBqB,EAAShwG,OAAQyuG,IAE1F,GACA,EACIU,EAAQmB,MAAQ,SAAUC,EAAIC,GAE1B,IADA,IAAIR,EAAW,GACNphG,EAAK,EAAGA,EAAKC,UAAU7O,OAAQ4O,IACpCohG,EAASphG,EAAK,GAAKC,UAAUD,GAEjC,OAAOugG,EAAQsB,MAAMriG,MAAM+gG,EAAS,CAACoB,EAAIC,GAAI7vG,OAAOqvG,GAC5D,EACIb,EAAQuB,aAAe,SAAUH,EAAIC,GAEjC,IADA,IAAIG,EAAK,GACA/hG,EAAK,EAAGA,EAAKC,UAAU7O,OAAQ4O,IACpC+hG,EAAG/hG,EAAK,GAAKC,UAAUD,GAE3B,OAAO,IAAIugG,GAAQ,SAAUV,GACzB,MAAO,CAAC8B,EAAIC,GAAI7vG,OAAOgwG,GAAIvxG,QAAO,SAAUmP,EAAK0hG,GAAW,OAAO/B,GAAKhvG,OAAOymB,OAAQpX,EAAK0hG,EAAQb,OAAOX,MAAWR,GAAG,CAAE,GACvI,GACA,EAmBIkB,EAAQyB,QAAU,WAAc,OAAO,IAAIzB,GAAQ,SAAUV,GAAQ,OAAOR,GAAGQ,EAAQ,GAAE,EAKzFU,EAAQ0B,YAAc,WAClB,OAAO,IAAI1B,GAAQ,SAAUV,GAAQ,OAAOR,GAAGQ,EAAM,GAC7D,EAWIU,EAAQ2B,KAAO,SAAUb,GACrB,OAAO,IAAId,GAAQ,SAAUV,GACzB,GAAIC,GAAaD,GAAO,CACpB,IAAIj3E,EAAM,CAAA,EACV,IAAK,IAAIl4B,KAAOmvG,EACZ,GAAIA,EAAKxhG,eAAe3N,GAAM,CAC1B,IAAI4rE,EAAI+kC,EAAQb,OAAOX,EAAKnvG,IAC5B,IAAa,IAAT4rE,EAAE+iC,GAIF,OAAO5/F,GAAI2gG,GAAU,IAAM1vG,EAAK4rE,EAAEt9D,QAHlC4pB,EAAIl4B,GAAO4rE,EAAEhlE,MAKpB,CAEL,OAAO+nG,GAAGz2E,EACb,CAEG,OAAOnpB,GAAI,CAAEwB,QAAS8+F,GAAY,YAAaF,IAE/D,GACA,EAkBIU,EAAQ4B,SAAW,SAAUd,GACzB,OAAO,IAAId,GAAQ,SAAUV,GAAQ,OAAQA,QAAsCR,QAAGxnG,GAAawpG,EAAQb,OAAOX,EAAO,GACjI,EAeIU,EAAQsB,MAAQ,WAEZ,IADA,IAAIT,EAAW,GACNphG,EAAK,EAAGA,EAAKC,UAAU7O,OAAQ4O,IACpCohG,EAASphG,GAAMC,UAAUD,GAE7B,OAAO,IAAIugG,GAAQ,SAAUV,GAEzB,IADA,IAAIuC,EAAS,GACJrnG,EAAI,EAAGA,EAAIqmG,EAAShwG,OAAQ2J,IAAK,CACtC,IAAIuhE,EAAI8kC,EAASrmG,GAAGylG,OAAOX,GAC3B,IAAa,IAATvjC,EAAE+iC,GACF,OAAO/iC,EAGP8lC,EAAOrnG,GAAKuhE,EAAEt9D,KAErB,CACD,IAAIqjG,EAAaD,EACZtnG,KAAI,SAAUkE,GAAS,MAAO,YAAcA,EAAMurD,IAAM,IAAM,KAAOvrD,EAAMiC,OAAQ,IACnF9P,KAAK,QACV,OAAOsO,GAAI,CACPwB,QAAS,mEAAsEohG,EAAa,MAE5G,GACA,EAKI9B,EAAQ+B,YAAc,SAAUC,EAAclB,GAC1C,OAAO,IAAId,GAAQ,SAAUV,GACzB,OAAOR,GA/kBD,SAAUkD,EAAcjmC,GACtC,OAAgB,IAATA,EAAE+iC,GAAc/iC,EAAEhlE,OAASirG,CACtC,CA6kBsBD,CAAYC,EAAclB,EAAQb,OAAOX,IAC/D,GACA,EAkCIU,EAAQiC,QAAU,SAAUjzE,EAAO8xE,GAC/B,OAAO,IAAId,GAAQ,SAAUV,GAEzB,IADA,IAAI4C,EAAa5C,EACR9kG,EAAI,EAAGA,EAAIw0B,EAAMn+B,OAAQ2J,IAAK,CACnC,QAAmBlD,IAAf4qG,EACA,OAAOhjG,GAAI,CACP8qD,GAAI41C,GAAU5wE,EAAMt8B,MAAM,EAAG8H,EAAI,IACjCkG,QAAS,wBAGZ,GAAwB,iBAAbsuB,EAAMx0B,KAAoB+kG,GAAa2C,GACnD,OAAOhjG,GAAI,CACP8qD,GAAI41C,GAAU5wE,EAAMt8B,MAAM,EAAG8H,EAAI,IACjCkG,QAAS8+F,GAAY,YAAa0C,KAGrC,GAAwB,iBAAblzE,EAAMx0B,KAAoB6kG,GAAY6C,GAClD,OAAOhjG,GAAI,CACP8qD,GAAI41C,GAAU5wE,EAAMt8B,MAAM,EAAG8H,EAAI,IACjCkG,QAAS8+F,GAAY,WAAY0C,KAIrCA,EAAaA,EAAWlzE,EAAMx0B,GAErC,CACD,OAAO0kG,IAAS,SAAUzgG,GACtB,YAAsBnH,IAAf4qG,EACD,CAAEl4C,GAAI41C,GAAU5wE,GAAQtuB,QAAS,uBACjCm/F,GAAUD,GAAU5wE,GAAQvwB,EACrC,GAAEqiG,EAAQb,OAAOiC,GAC9B,GACA,EAIIlC,EAAQS,QAAU,SAAU0B,GACxB,OAAO,IAAInC,GAAQ,SAAUV,GAAQ,OAAOR,GAAGqD,EAAY,GACnE,EAIInC,EAAQvxC,KAAO,SAAUpuB,GACrB,OAAO,IAAI2/D,GAAQ,SAAUV,GAAQ,OAAOpgG,GAAI,CAAEwB,QAAS2/B,GAAgB,GACnF,EAqBI2/D,EAAQoC,KAAO,SAAUC,GACrB,OAAO,IAAIrC,GAAQ,SAAUV,GAAQ,OAAO+C,IAAYpC,OAAOX,EAAM,GAC7E,EACWU,CACX,IAIIj5E,GAASi5E,GAAQj5E,OAEjB25E,GAASV,GAAQU,OAEjBC,GAAUX,GAAQW,QAElBc,GAAUzB,GAAQyB,QAEtBzB,GAAQ0B,YAER,IAAId,GAAWZ,GAAQY,SAEnBz9E,GAAS68E,GAAQ78E,OAEjBrE,GAAQkhF,GAAQlhF,MAEpBkhF,GAAQiB,MAER,IAAIU,GAAO3B,GAAQ2B,KAEfC,GAAW5B,GAAQ4B,SAEnBN,GAAQtB,GAAQsB,MAEpBtB,GAAQmB,MAERnB,GAAQuB,aAERvB,GAAQ+B,YAER/B,GAAQiC,QAERjC,GAAQS,QAERT,GAAQvxC,KAERuxC,GAAQoC,KAER,MAAME,GAAwBv7E,KAASo8D,OAAOhtF,GAAMA,EAAEtF,OAAS,GAAG,+BAC5D0xG,GAA2B7B,KAASvd,OAAOtvF,GAAQA,GAAO,GAAG,kCAE7D2uG,GAA0Br/E,GAAO,CACnC1yB,KAAM6xG,GACNtqE,YAAa4pE,GAAS76E,MACtB2iB,SAAUk4D,GAAS9iF,GAAMiI,OACzB07E,aAAcb,GAASz+E,QAErBu/E,GAAgBpB,GAAMV,GAAS,OAAQA,GAAS,UAAWA,GAAS,UAAWA,GAAS,gBAAiBA,GAAS,UAClH+B,GAAmBx/E,GAAO,CAC5B5M,IAAK+rF,KAEHM,GAAgBz/E,GAAO,CACzB0/E,IAAKP,GACLx7F,KAAM86F,GAASU,IACf/yG,KAAMqyG,GAASU,MAEbQ,GAAsB3/E,GAAO,CAC/B0/E,IAAKP,GACLx7F,KAAM86F,GAASU,IACf/yG,KAAMqyG,GAASU,IACfnV,MAAOyU,GAASU,MAEdS,GAA4B5/E,GAAO,CACrCumB,SAAU5qB,GAAMwjF,IAChBtqE,YAAa4pE,GAASU,IACtBU,WAAYpB,GAASU,IACrBG,aAAcb,GAASH,QAErBwB,GAAmB9/E,GAAO,CAC5B+/E,WAAYtB,GAASD,GAAKoB,KAC1BI,OAAQvB,GAASD,GAAK7iF,GAAMwjF,QAE1Bc,GAAuBjgF,GAAO,CAChCkgF,WAAYzB,GAAS9iF,GAAMwjF,KAC3BY,WAAYtB,GAAS9iF,GAAMwjF,OAEzBgB,GAAsBngF,GAAO,CAC/B1yB,KAAM6xG,GACN/xG,YAAaqxG,GAASU,IACtBe,WAAYzB,GAAS9iF,GAAMwjF,KAC3BY,WAAYtB,GAAS9iF,GAAMwjF,OAEzBiB,GAAmBpgF,GAAO,CAC5BqgF,QAAS5B,GAASqB,IAClBQ,aAAc7B,GAASwB,IACvBM,YAAa9B,GAAS9iF,GAAMwkF,OAE1BK,GAAkCxgF,GAAO,CAC3C5M,IAAKqrF,GAASU,IACdr0F,IAAK2zF,GAASlB,MACdtqF,KAAMwrF,GAASlB,MACfriD,MAAOujD,GAASW,IAChBjkD,OAAQsjD,GAASW,MAEfqB,GAAoCzgF,GAAO,CAC7C1yB,KAAMmxG,GAASU,IACf/yG,KAAMqyG,GAASU,GAAsBnf,OAAOhtF,GAAY,WAANA,GAAgB,+BAClEkC,MAAOupG,GAASU,IAChBhnF,QAASsmF,GAASU,IAClBuB,iBAAkBjC,GAASH,MAC3B3uC,KAAM8uC,GAAS76E,MACfmrC,QAAS0vC,GAAS76E,MAClBq1C,QAASwlC,GAAS+B,IAClBH,QAAS5B,GAAS9iF,GAAM0jF,KACxBpwC,OAAQwvC,GAASjB,QAEfmD,GAAsB3gF,GAAO,CAC/B1yB,KAAM6xG,GACNyB,MAAOzB,GACPjqG,MAAOupG,GAASU,IAChBhnF,QAASsmF,GAASU,IAClB0B,SAAU1B,GACV2B,aAAc3B,GACdv4B,QAAS63B,GAASU,IAClB/xG,YAAaqxG,GAASU,IACtB4B,aAActC,GAASU,IACvB6B,aAAcvC,GAASU,IACvB8B,UAAWxC,GAASU,IACpB+B,OAAQzC,GAAS9iF,GAAMqE,GAAO,CAAE5M,IAAKqrF,GAASU,QAC9CgC,MAAO1C,GAAS9iF,GAAMqE,GAAO,CAAE2vC,KAAM8uC,GAASU,QAC9CG,aAAchB,KACd+B,QAAS5B,GAAS9iF,GAAM0jF,OAEtB+B,GAA+BphF,GAAO,CACxC4gF,MAAOnC,GAASU,IAChB7xG,KAAMmxG,GAASU,IACflmC,QAASwlC,GAASe,IAClBrnF,QAASsmF,GAASU,IAClBjqG,MAAOupG,GAASU,IAChBv4B,QAAS63B,GAASU,IAClB9L,KAAMoL,GAASU,IACf/xG,YAAaqxG,GAASU,IACtBnjC,WAAYyiC,GAAS9iF,GAAMwjF,KAC3BgC,MAAO1C,GAAS9iF,GAAM8jF,KACtB4B,YAAa5C,GAAS9iF,GAAMgkF,KAC5BoB,aAActC,GAASU,IACvB6B,aAAcvC,GAASU,IACvBmC,SAAU7C,GAASU,IACnB8B,UAAWxC,GAASU,IACpBG,aAAcb,GAAS9iF,GAAM2iF,OAC7BiD,cAAe9C,GAASH,MACxB9nF,QAASioF,GAAS2B,MAEhBoB,GAAsBxhF,GAAO,CAC/B4gF,MAAOzB,GACP7xG,KAAM6xG,GACN/yG,KAAMmzG,GACNtmC,QAASumC,GACTrnF,QAASsmF,GAASU,IAClBjqG,MAAOupG,GAASU,IAChBv4B,QAAS63B,GAASU,IAClB9L,KAAMoL,GAASU,IACf/xG,YAAaqxG,GAASU,IACtBnjC,WAAYyiC,GAAS9iF,GAAMwjF,KAC3BgC,MAAO1C,GAAS9iF,GAAM8jF,KACtB4B,YAAa5C,GAAS9iF,GAAMgkF,KAC5BoB,aAActC,GAASU,IACvB6B,aAAcvC,GAASU,IACvBmC,SAAU7C,GAASU,IACnB8B,UAAWxC,GAASU,IACpBG,aAAcb,GAAS9iF,GAAM2iF,OAC7BiD,cAAe9C,GAASH,MACxB9nF,QAASioF,GAAS2B,IAClBqB,kBAAmBhD,GAASD,GAAK4C,OAE/BM,GAAwBvD,GAAMwC,GAAqBa,IAEnDG,GAAoCrmG,GAC/B,GAAGA,EAAM2hG,WAAW3hG,EAAMurD,OAAOhwD,KAAKC,UAAUwE,EAAMolB,oBAAoBplB,EAAMiC,UAG3F,MAAMqkG,GACFC,4BAA8B,CAC1BC,IAAK,SACLC,OAAQ,MACRC,OAAQ,SACRC,aAAc,YACdj+E,MAAO,UAEX,KAAAk+E,GACI,MAAO,CACHC,iBAAkBnyG,KAAKmyG,iBAAiBn8F,KAAKhW,MAC7CoyG,0BAA2BpyG,KAAKoyG,0BAA0Bp8F,KAAKhW,MAC/DqyG,wBAAyBryG,KAAKqyG,wBAAwBr8F,KAAKhW,MAEvE,CACI,gBAAAmyG,CAAiBzyG,GACb,MAAM4yG,EAAYZ,GAAsB1E,IAAIttG,GAC5C,OAAK4yG,EAAU3G,GAGXjsG,EAAWkxG,OAASlxG,EAAWupE,QACxB,CAAEspC,QAAQ,EAAMpqF,QAAS,OAEhCzoB,EAAWmxG,SACJ,CAAE0B,QAAQ,EAAMpqF,QAAS,OAE7B,CAAEoqF,QAAQ,EAAO1gG,OAAQ,qCARrB,CAAE0gG,QAAQ,EAAO1gG,OAAQ8/F,GAAiCW,EAAUhnG,OASvF,CACI,yBAAA8mG,CAA0B1yG,GACtB,MAAM6yG,OAAEA,EAAMpqF,QAAEA,GAAYnoB,KAAKmyG,iBAAiBzyG,GAClD,IAAK6yG,EACD,MAAM,IAAI1yG,MAAM,qCAEpB,MAAMyyG,EAAYZ,GAAsB1E,IAAIttG,GAC5C,IAAK4yG,EAAU3G,GACX,MAAM,IAAI9rG,MAAM,gBAAgBsoB,wBAA8BwpF,GAAiCW,EAAUhnG,UAE7G,MAAM20D,EAAiBjgE,KAAKwyG,gCAAgC9yG,EAAYyoB,GAClEsqF,EAAgB,CAAErvF,IAAKpjB,KAAK0yG,OAAOhzG,EAAYyoB,IAC/CwqF,EAAsB,CACxBr1G,KAAMoC,EAAWkxG,MACjBx0G,KAAM,SACNq2G,gBACAxyC,eAAgB,IACTA,EACHowC,QAAqB,QAAZloF,EACH83C,EAAeowC,QACfrwG,KAAK4yG,8BAA8BlzG,GACzCupE,QAASwpC,GAEbvtG,MAAOxF,EAAWwF,MAClBijB,QAASzoB,EAAWyoB,QACpBw3C,KAAM3/D,KAAK6yG,sBAAsBnzG,EAAYyoB,GAC7C42C,QAASr/D,EAAWtC,YACpBu+F,KAAkB,QAAZxzE,EAAoB,IAAKzoB,EAAYozG,kBAAmB,YAAU3uG,GAEtE4uG,EAAsBrzG,EAAW6xG,eAAeyB,WAAatzG,EAAW6xG,eAAwB,OACtG,IAAKwB,EACD,OAAOJ,EAEX,MAAMM,EAAwBxC,GAAkCzD,IAAI+F,GACpE,IAAKE,EAAsBtH,GACvB,MAAM,IAAI9rG,MAAM,gBAAgBsoB,wBAA8BwpF,GAAiCsB,EAAsB3nG,UAEzH,OAAK1O,OAAOC,KAAKo2G,EAAsBrvG,QAAQlG,OAGxCsC,KAAKkzG,iCAAiCP,EAAqBM,EAAsBrvG,QAF7E+uG,CAGnB,CACI,uBAAAN,CAAwB3yG,GACpB,MAAM6yG,OAAEA,EAAMpqF,QAAEA,GAAYnoB,KAAKmyG,iBAAiBzyG,GAClD,IAAK6yG,EACD,MAAM,IAAI1yG,MAAM,qCAEpB,MAAMyyG,EAAYZ,GAAsB1E,IAAIttG,GAC5C,IAAK4yG,EAAU3G,GACX,MAAM,IAAI9rG,MAAM,gBAAgBsoB,wBAA8BwpF,GAAiCW,EAAUhnG,UAE7G,GAAgB,QAAZ6c,EAAmB,CACnB,MAAMgrF,EAAmBzzG,EACzB,MAAO,CACHpC,KAAM61G,EAAiBvC,MACvBx0G,KAAM,SACN6sE,QAAS,CACL7lD,IAAKpjB,KAAK0yG,OAAOhzG,EAAYyoB,IAEjCA,QAASgrF,EAAiBhrF,QAC1BjjB,MAAOiuG,EAAiBjuG,MACxB0xE,QAASu8B,EAAiBv8B,QAC1B7X,QAASo0C,EAAiB/1G,YAC1BuiE,KAAMwzC,EAAiBhC,QAAQ,GAAGxxC,KAClC0wC,QAAS8C,EAAiB9C,QAC1BK,iBAAkB,CACdI,aAAcqC,EAAiBrC,aAC/BI,OAAQiC,EAAiBjC,OACzBH,aAAcoC,EAAiBpC,aAC/BC,aAAcmC,EAAiBnC,aAC/BC,UAAWkC,EAAiBlC,UAC5BE,MAAOgC,EAAiBhC,MACxB7B,aAAc6D,EAAiB7D,cAGnD,CACQ,MAAM8D,EAAmB1zG,EACnB2zG,EAAoB,CACtB/1G,KAAM81G,EAAiBxC,MACvBx0G,KAAM4D,KAAK6xG,4BAA4BuB,EAAiBh3G,MACxD6sE,QAASmqC,EAAiBnqC,QAC1B9gD,QAASirF,EAAiBjrF,QAC1BjjB,MAAOkuG,EAAiBluG,MACxB0xE,QAASw8B,EAAiBx8B,QAC1B7X,QAASq0C,EAAiBh2G,YAC1BuiE,KAAM3/D,KAAK6yG,sBAAsBO,EAAkB,OACnD/C,QAASrwG,KAAK4yG,8BAA8BQ,GAC5CzX,KAAM,IAAKyX,EAAkBN,kBAAmB,QAE9CC,EAAsBrzG,EAAW6xG,eAAeyB,WAAatzG,EAAW6xG,eAAwB,OACtG,IAAKwB,EACD,OAAOM,EAEX,GAAmC,iBAAxBN,GAAoCz0G,MAAMC,QAAQw0G,GACzD,MAAM,IAAIlzG,MAAM,YAAYH,EAAW6xG,cAAcyB,UAAY,0BAA4B,kCAEjG,OAAOhzG,KAAKszG,mCAAmCD,EAAmBN,EAC1E,CACI,+BAAAP,CAAgC9yG,EAAYyoB,GACxC,MAAgB,QAAZA,EACOvrB,OAAO22G,YAAY32G,OAAOmyB,QAAQrvB,GAAY2C,QAAO,EAAErF,MAAUyuG,GAAuB5/F,SAAS7O,MAErGJ,OAAO22G,YAAY32G,OAAOmyB,QAAQrvB,GAAY2C,QAAO,EAAErF,MAAUyuG,GAAuB5/F,SAAS7O,KAAS0uG,GAAe7/F,SAAS7O,KACjJ,CACI,MAAA01G,CAAOhzG,EAAYyoB,GACf,IAAI/E,EACJ,GAAgB,QAAZ+E,EAAmB,CACnB,MAAMqrF,EAAiB3sG,KAAK0c,MAAM7jB,EAAWmxG,UAC7CztF,EAAMowF,EAAevqC,SAAS7lD,KAAOowF,EAAepwF,GAChE,MAEYA,EAAM1jB,EAAWupE,SAAS7lD,IAE9B,IAAKA,GAAsB,iBAARA,EACf,MAAM,IAAIvjB,MAAM,gBAAgBsoB,4CAA8D,QAAZA,EAAoB,WAAa,kBAEvH,OAAO/E,CACf,CACI,6BAAAwvF,CAA8BlzG,GAC1B,MAAM+zG,EAAc/zG,EAAW8mB,SAAS6pF,SAASN,WACjD,IAAK0D,EACD,OASJ,OAPgB72G,OAAOmyB,QAAQ0kF,GAAarsG,KAAKssG,IAC7C,MAAOC,EAAYC,GAAcF,EACjC,MAAO,CACHp2G,KAAMq2G,KACHC,EACN,GAGb,CACI,qBAAAf,CAAsBnzG,EAAYyoB,GAC9B,MAAgB,QAAZA,EACOzoB,EAAWyxG,OAAOx3F,MAAMk6F,GAAYA,EAAQl0C,QAAOA,WAAQx7D,EAE/DzE,EAAWyxG,OAAOx3F,MAAMk6F,GAAYA,EAAQnE,OAAMA,UAAOvrG,CACxE,CACI,gCAAA+uG,CAAiCY,EAAaC,GAC1C,IAAIC,EAA4BF,EAChC,GAAIC,EAAuB9qC,QAAS,CAChC,MAAMA,EAAU,IAAK6qC,EAAYrB,iBAAkBsB,EAAuB9qC,SAC1E+qC,EAA0BvB,cAAgBxpC,EAC1C+qC,EAA0B/zC,eAAegJ,QAAUA,CAC/D,CAOQ,OANI3qE,MAAMC,QAAQw1G,EAAuB1D,WACrC2D,EAA0B/zC,eAAeowC,SAAW2D,EAA0B/zC,eAAeowC,SAAW,IAAIhyG,OAAO01G,EAAuB1D,UAE9I2D,EAA4B,IAAKA,KAA8BD,UACxDC,EAA0B/qC,eAC1B+qC,EAA0B3D,QAC1B2D,CACf,CACI,kCAAAV,CAAmC9rG,EAAQ6rG,GACvC,MAAMY,EAAYr3G,OAAOymB,OAAO,CAAA,EAAI7b,EAAQ6rG,EAAmB,CAAEpqC,QAAS,IAAKzhE,EAAOyhE,WAAYoqC,EAAkBpqC,WAIpH,OAHI3qE,MAAMC,QAAQ80G,EAAkBhD,WAChC4D,EAAU5D,SAAW7oG,EAAO6oG,SAAW,IAAIhyG,OAAOg1G,EAAkBhD,UAEjE4D,CACf,EAGA,MAAMC,GAAa,CACfC,OAAQ,CACJhF,yBACAC,6BAEJzT,KAAM,CACF+V,yBACAf,uBACAa,yBAIR,IAAI4C,IACJ,SAAWA,GACPA,EAA+B,eAAI,6DACnCA,EAAmC,mBAAI,2BACvCA,EAA4B,YAAI,cAChCA,EAAiC,iBAAI,qBACrCA,EAAkC,kBAAI,6BACtCA,EAA4C,4BAAI,+BAChDA,EAAuC,uBAAI,yCAC3CA,EAAqC,qBAAI,kCACzCA,EAAiC,iBAAI,gCACrCA,EAA0C,0BAAI,gDAC9CA,EAAyC,yBAAI,yGAChD,CAZD,CAYGA,KAAmBA,GAAiB,CAAA,IAsBvC,MAAMC,GAAM,IApBZ,MACIC,MACAC,UAAYL,GACZM,QAAU,CACNnE,QAAS+D,IAEb,QAAIzY,GAIA,OAHK37F,KAAKs0G,QACNt0G,KAAKs0G,OAAQ,IAAI1C,IAAcM,SAE5BlyG,KAAKs0G,KACpB,CACI,YAAI5G,GACA,OAAO1tG,KAAKu0G,SACpB,CACI,UAAI7F,GACA,OAAO1uG,KAAKw0G,OACpB,GAIaH,GAAI1Y,KACA0Y,GAAI3G,SACrB,MAAMgB,GAAS2F,GAAI3F,OCloCN+F,GAAoC,uBAOpCC,GAA+B,CAAC,kBAAmB,QAYnDC,GAASjG,GAAO2B,QCGhBuE,GAAc,CAAIzlG,EAA2B6E,EAA6BC,IAC5E,IAAInO,SAAW,CAACC,EAAS6H,KAE5B,IAAIinG,GAAgB,EAEpB,MAAM3gG,EAAU5N,YAAW,KACvB,IAAKuuG,EACD,OAEJA,GAAgB,EAGhBjnG,EAFgBqG,GAAkB,wBAAwBD,IAE3C,GAChBA,GAEH7E,IACK1B,MAAM7J,IACEixG,IAGLA,GAAgB,EAChB1gG,aAAaD,GACbnO,EAAQnC,GAAO,IAElBpB,OAAO8I,IACCupG,IAGLA,GAAgB,EAChB1gG,aAAaD,GAEbtG,EAAOtC,GAAM,GACf,IC0EDwpG,GAA4BC,YACrC,GAAkC,iBAAvBA,EAAYC,OACnB,MAAO,CAAEC,SAAS,EAAO3pG,MAAO,2EAA2EypG,EAAYC,QAG3H,IAA8B,UAA1BD,EAAYG,oBAAc,IAAAtpG,OAAA,EAAAA,EAAAupG,iBAAsE,kBAAnB,UAA1BJ,EAAYG,oBAAc,IAAA15D,OAAA,EAAAA,EAAA25D,gBAC7E,MAAO,CAAEF,SAAS,EAAO3pG,MAAO,iGAAiGypG,EAAYG,aAAaC,gBAG9J,MAAMF,QAAEA,EAAO3pG,MAAEA,GAvImB,CAAC+W,IACrC,GAAuB,iBAAZA,EACP,MAAO,CAAE4yF,SAAS,EAAO3pG,MAAO,6EAA6E+W,GAGjH,MAAM+yF,EAAsBV,GAA6BryG,QAAQrF,KAAUA,KAAOqlB,KAElF,OAAI+yF,EAAoB13G,OACb,CAAEu3G,SAAS,EAAO3pG,MAAO,gEAAgE8pG,EAAoB33G,KAAK,SAGtH,CAAEw3G,SAAS,EAAMtJ,GAAItpF,EAAS,EA4HVgzF,CAAgCN,EAAY1yF,SAEvE,OAAO4yF,EACD,CAAEA,SAAS,EAAMtJ,GAAIoJ,GACrB,CAAEE,UAAS3pG,QAAO,EAGfgqG,GAAyB58F,IASlC,GA/HiC,CAACrb,IAClC,GAAKA,EAAL,CAIA,GAAuB,iBAAZA,EACP,MAAM,IAAIwC,MAAM,kDAGpB,GAAIxC,EAAQjB,MAAgC,iBAAjBiB,EAAQjB,KAC/B,MAAM,IAAIyD,MAAM,iFAGpB,GAAIxC,EAAQmR,MAAgC,iBAAjBnR,EAAQmR,KAC/B,MAAM,IAAI3O,MAAM,mFAyGpB01G,CAA6B78F,EAAQrb,SAjIJ,CAACsH,IAClC,GAAKA,GAIiB,iBAAXA,GAAyC,iBAAXA,EACrC,MAAM,IAAI9E,MAAM,6HA6HpB21G,CAA4B98F,EAAQ/T,QAzFH,CAACuP,IAClC,GAAKA,EAAL,CAIA,GAAuB,iBAAZA,EACP,MAAM,IAAIrU,MAAM,0CAGpB,GAAIqU,GAAW,EACX,MAAM,IAAIrU,MAAM,qDAiFpB41G,CAA6B/8F,EAAQxE,SA7EI,CAACwhG,IAC1C,GAAKA,GAIuC,kBAAjCA,EACP,MAAM,IAAI71G,MAAM,6DAyEpB81G,CAAqCj9F,EAAQg9F,mCAEJ,IAA9Bh9F,EAAQk9F,mBAA0E,kBAA9Bl9F,EAAQk9F,kBACnE,MAAM,IAAI/1G,MAAM,mDAGhB6Y,EAAQyJ,UACRzJ,EAAQyJ,SAAS/iB,SAASijB,GAlHG,CAACA,IAClC,IAAKA,EAAQ9I,gBACT,MAAM,IAAI1Z,MAAM,8CAA8CgH,KAAKC,UAAUub,MAGjF,IAAKA,EAAQjmB,KACT,MAAM,IAAIyD,MAAM,mCAAmCgH,KAAKC,UAAUub,MAGtE,GAAqB,aAAjBA,EAAQjmB,OAAwBimB,EAAQmzB,WACxC,MAAM,IAAI31C,MAAM,yCAAyCgH,KAAKC,UAAUub,OAwGlCwzF,CAA6BxzF,YCtJ9DyzF,GAYT,WAAAv5G,CACYiqB,EACAo1B,EACAzuC,EACRpJ,EACQgyG,EACA1sC,GALArpE,KAAOwmB,QAAPA,EACAxmB,KAAO47C,QAAPA,EACA57C,KAAMmN,OAANA,EAEAnN,KAAe+1G,gBAAfA,EACA/1G,KAAUqpE,WAAVA,EAjBJrpE,KAAAg2G,UAAY,IAAI/6F,IAGPjb,KAA+Bi2G,gCAA6D,CAAE,EAEvGj2G,KAAoBk2G,sBAAG,EAGvBl2G,KAAwBm2G,yBAAoB,GAC5Cn2G,KAAsBo2G,uBAA+F,CAAE,EAU3Hp2G,KAAKq2G,gCAAgCtyG,EAASslE,GAG3C,UAAM1vD,CAAK28F,SACRxwG,QAAQsf,IAAIplB,KAAKm2G,0BAEvB,IAAI9F,QAAgBrwG,KAAKolB,MACzB,QAA4B,IAAjBkxF,EACP,OAAOjG,EAGX,GAA4B,iBAAjBiG,EACP,OAAOjG,EAAQhuG,QAAQ2yG,GAAWA,EAAO13G,OAASg5G,IAGtD,GAA4B,iBAAjBA,EACP,MAAM,IAAIz2G,MAAM,6DAGpB,GAAIy2G,EAAalZ,YAAa,CAC1B,MAAMmZ,EAAYD,EAAalZ,YAAYp4F,cAC3CqrG,EAAUA,EAAQhuG,QAAQ2yG,GAAWA,EAAO7yF,SAASyjB,MAAMvjB,IAAY,IAAAzW,EAAA,OAAsB,UAAtByW,EAAQm0F,oBAAc,IAAA5qG,OAAA,EAAAA,EAAAg6B,MAAM6wE,GAAOA,EAAGzxG,gBAAkBuxG,GAAU,MAG7I,GAAID,EAAazG,WAAY,CACzB,MAAM6G,EAAoBJ,EAAazG,WAAW7qG,cAClDqrG,EAAUA,EAAQhuG,QAAQ2yG,GAAWA,EAAO7yF,SAASyjB,MAAMvjB,UAAY,OAAkB,QAAlBzW,EAAAyW,EAAQwtF,kBAAU,IAAAjkG,OAAA,EAAAA,EAAE5G,iBAAkB0xG,CAAiB,MAOlI,OAJIJ,EAAah5G,OACb+yG,EAAUA,EAAQhuG,QAAQ2yG,GAAWA,EAAO13G,OAASg5G,EAAah5G,QAG/D+yG,EAGJ,WAAMlL,CAAMwR,GACf,GAA8B,iBAAlBA,GAAuD,iBAAlBA,GAAyD,iBAAlBA,GAA8D,iBAAzBA,EAAc3B,OACvI,MAAM,IAAIn1G,MAAM,+EAGS,iBAAlB82G,IACPA,EAAgB,CAAE3B,OAAQ2B,IAG9BrB,GAAsBqB,SAEhB7wG,QAAQsf,IAAIplB,KAAKm2G,0BAEnBQ,EAAcf,oBACd51G,KAAKmN,OAAOuT,MAAM,yCAAyCi2F,EAAc3B,gBAEnEh1G,KAAK42G,wBAAwBD,EAAc3B,SAGrD,MAAM6B,EAAqC,CAAE,EAEvC3iG,EAAUyiG,EAAcjB,6BH1ED,WG0EwDiB,EAAcziG,SHtEnE,IGwE1B4iG,QAAoC92G,KAAK+2G,sCAAsCJ,EAAeE,EAAkB3iG,GAEtH,GAAI4iG,EACA,OAAOA,EAGX,MAAME,EAAoBh3G,KAAKi3G,gBAAgBjhG,KAAKhW,KAAM,CAAE0Y,QAASi+F,EAAeE,mBAAkB3iG,YAEtG,GAAIyiG,EAAcjB,6BACd,OAAOsB,IAIX,MAAMntC,EAAgB+qC,GAAmDoC,EACrE9iG,EAAS,GAAGygG,GAAOuC,sCAAsCrwG,KAAKC,UAAU6vG,MAK5E,OAFA9sC,EAAcrnE,OAAM,IAAMxC,KAAKm3G,mBAAmBN,EAAiBrhE,cAE5Dq0B,EAGJ,SAAMzkD,GAOT,IAAI+7C,QANEr7D,QAAQsf,IAAIplB,KAAKm2G,0BAOvB,IACI,MAAMvyG,QAAe5D,KAAKwmB,QAAQK,OAA0C,0BAA2B,CAAEuwF,iBAAiB,GAAQ,OAAQ,CACtIv6E,cAAem+B,GACfl8B,wBAAyBk8B,KAE7BmG,EAAOv9D,EAAO47B,SAAS4hC,aACzB,MAAO18D,GAEL,OADA1E,KAAKmN,OAAO7B,MAAM,kCAAmC5G,GAC9C,GAEX,MAAM2rG,EAA8D,CAAE,EAChEgH,EAAkBl2C,EAAK9+D,QAAQ87D,GAAQA,EAAIkyC,SAAWlyC,EAAIkyC,QAAQ3yG,OAAS,IAEjF,IAAK,MAAMygE,KAAOk5C,EACd,IAAK,MAAMC,KAAan5C,EAAIkyC,QAAS,CACjC,IAAI2E,EAAS3E,EAAQiH,EAAUh6G,MAC1B03G,IACDA,EAAS,CACL13G,KAAMg6G,EAAUh6G,KAChB6kB,SAAU,IAEdkuF,EAAQiH,EAAUh6G,MAAQ03G,GAG9B,MAAM3yF,EAAkD,CACpD9I,gBAAiB4kD,EAAI7gE,KACrBi6G,iBAAkBp5C,EAAIj5D,OAAS,GAC/BsyG,uBAAwBr5C,EAAIY,QAC5Bl6B,YAAayyE,EAAUzyE,YACvB2xE,aAAcc,EAAU/gE,SACxBkhE,gBAAiBt5C,EAAIwB,KACrBvjE,KAAM,MACNyzG,WAAYyH,EAAUzH,YAG1BmF,EAAO7yF,SAASjiB,KAAKmiB,GAI7B,MAAMib,EAAUt9B,KAAKwmB,QAAQ8W,UACvBo6E,EAAkBp6E,EAAQl2B,KAAKu2B,GAAWA,EAAOzlB,WAAU7V,QAAQs1G,QAA6C,IAAnBA,IAE7FC,EAAgB,kBAGtB,IAAIC,EAEJ,GAJwC73G,KAAKwmB,QAAQE,UAAUkf,MAAM9gB,GAAWA,EAAOxnB,OAASs6G,IAK5F,IACI,MAAMh0G,QAAe5D,KAAKwmB,QAAQK,OAA6B+wF,EAAe,CAAEp5F,IAAKk5F,GAAmB,OAAQ,CAC5G76E,cAAem+B,GACfl8B,wBAAyBk8B,KAE7B68C,EAAej0G,EAAO47B,SAASoc,QACjC,MAAOl3C,IAMb,IAAK,MAAMi5B,KAAUL,QACXx3B,QAAQsf,IAAIuY,EAAOC,aACpBv7B,QAAQyiB,GAAWA,EAAOxnB,KAAKkmB,WAAWixF,MAC1CrtG,KAAIU,MAAOgd,IACR,MAAM6uF,EAAa7uF,EAAOxnB,KAAK4vB,QAAQunF,GAAmC,IAC1E,IAAIO,EAAS3E,EAAQsD,GAChBqB,IACDA,EAAS,CACL13G,KAAMq2G,EACNxxF,SAAU,IAEdkuF,EAAQsD,GAAcqB,GAE1B,MAAM9vG,QAAclF,KAAK83G,iBAAiBn6E,EAAOzlB,SAAU2/F,GACrDx1F,EAAkDriB,KAAK+3G,uBAAuB,CAAEjzF,SAAQq8C,OAAMxjC,SAAQg2E,aAAYzuG,UACxH8vG,EAAO7yF,SAASjiB,KAAKmiB,EAAQ,KAIzC,OAAOzlB,OAAOD,OAAO0zG,GAGlB,iBAAA2H,CAAkBhD,EAAoE3yF,GACzF,GAAuB,iBAAX2yF,GAAyC,iBAAXA,GAA2C,iBAAXA,GAAgD,iBAAlBA,EAAOA,OAC3G,MAAM,IAAIn1G,MAAM,+EAEpB,GAAuB,mBAAZwiB,EACP,MAAM,IAAIxiB,MAAM,6CAKpB,MAAM8zG,EAA+B,iBAAXqB,EAAsBA,EAASA,EAAOA,OAC1D3tE,EAAa,GAAGotE,KAAoCd,IAC1D,IAEIsE,EAFAC,EAAgF,CAAE,EAMtF,GAF0Bl4G,KAAKg2G,UAAU/jG,IAAI0hG,GAGzC,MAAM,IAAI9zG,MAAM,8BAA8B8zG,yBAGlD3zG,KAAKg2G,UAAUzqG,IAAIooG,GAEnB,MAAM/vG,EAAS,CACX6Z,YAAa,KACTzd,KAAKg2G,UAAUrpC,OAAOgnC,GAEtBsE,EACKxqG,MAAK,IAAMzN,KAAKwmB,QAAQue,WAAWsC,KACnC7kC,OAAOuJ,GAAQ/L,KAAKmN,OAAOuT,MAAM,wCAAwC2mB,yBAAkCxgC,KAAKC,UAAUiF,OAAQ,GAI/I,GAAsB,iBAAXipG,EAAqB,CAC5B,MAAQA,OAAQhgF,KAAYymE,GAASuZ,EACrCkD,EAAazc,EAejB,OAZAwc,EAAkBj4G,KAAKwmB,QAAQ0f,SAAS,CAAE5oC,KAAM+pC,EAAYjI,MAAO,CAAE41E,OAAQkD,KAAiBtxF,IAC1F,GAAI5mB,KAAKg2G,UAAU/jG,IAAI0hG,GACnB,OAAOtxF,EAAQuE,MAIvBqxF,EAAgBz1G,OAAOuJ,IACnB/L,KAAKg2G,UAAUrpC,OAAOgnC,GAEtB3zG,KAAKmN,OAAOiL,KAAK,sCAAsCivB,yBAAkCxgC,KAAKC,UAAUiF,KAAO,IAG5GnI,EAGJ,cAAMsiC,CAAS8uE,EAAoE3yF,GACtF,GAAuB,iBAAX2yF,GAAyC,iBAAXA,GAA2C,iBAAXA,GAAgD,iBAAlBA,EAAOA,OAC3G,MAAM,IAAIn1G,MAAM,+EAGpB,GAAuB,mBAAZwiB,EACP,MAAM,IAAIxiB,MAAM,mDAGdiG,QAAQsf,IAAIplB,KAAKm2G,0BAGvB,MAAMxC,EAA+B,iBAAXqB,EAAsBA,EAASA,EAAOA,OAC1D3tE,EAAarnC,KAAKm4G,uBAAuBxE,GAE/C,IAAIuE,EAAgF,CAAE,EAItF,GAF0Bl4G,KAAKg2G,UAAU/jG,IAAI0hG,GAGzC,MAAM,IAAI9zG,MAAM,8BAA8B8zG,yBAKlD,GAFA3zG,KAAKg2G,UAAUzqG,IAAIooG,GAEG,iBAAXqB,EAAqB,CAC5B,MAAQA,OAAQhgF,KAAYymE,GAASuZ,EACrCkD,EAAazc,EAGjB,UACUz7F,KAAKwmB,QAAQ0f,SAAS,CAAE5oC,KAAM+pC,EAAYjI,MAAO,CAAE41E,OAAQkD,KAAgB,CAACtxF,EAA8CkmB,KAC5H,GAAI9sC,KAAKg2G,UAAU/jG,IAAI0hG,GACnB,OAAOtxF,EAAQuE,EAAMkmB,MAG/B,MAAO/gC,GAGL,MAFA/L,KAAKg2G,UAAUrpC,OAAOgnC,GAEhB,IAAI9zG,MAAM,sCAAsCwnC,yBAAkCxgC,KAAKC,UAAUiF,MAG3G,MAAO,CACH0R,YAAa,IAAMzd,KAAKo4G,kBAAkBzE,IAI3C,oBAAM0E,CAAeC,WAGxB,GD7N6B,CAACA,IAClC,IAAKA,EACD,MAAM,IAAIz4G,MAAM,6IAGpB,MAAMqF,MAAEA,EAAKqzG,aAAEA,EAAYrkG,QAAEA,EAAO8gG,OAAEA,EAAMwB,aAAEA,EAAY3G,WAAEA,EAAU2I,iBAAEA,GAAqBF,EAE7F,QAAqB,IAAVpzG,IAA2C,iBAAVA,IAAuBA,EAAMxH,QACrE,MAAM,IAAImC,MAAM,yCAGpB,QAA4B,IAAjB04G,GAAwD,kBAAjBA,EAC9C,MAAM,IAAI14G,MAAM,4CAGpB,QAAuB,IAAZqU,IAA+C,iBAAZA,GAAwBA,GAAW,GAC7E,MAAM,IAAIrU,MAAM,+CAGpB,QAAsB,IAAXm1G,IAA6C,iBAAXA,IAAwBA,EAAOt3G,QACxE,MAAM,IAAImC,MAAM,0CAGpB,QAA4B,IAAjB22G,KAAkCl4G,MAAMC,QAAQi4G,IAAiBA,EAAa5wE,MAAK6yE,GAAsB,iBAARA,KACxG,MAAM,IAAI54G,MAAM,2DAGpB,QAA0B,IAAfgwG,IAAqD,iBAAfA,IAA4BA,EAAWnyG,QACpF,MAAM,IAAImC,MAAM,8CAGpB,QAAgC,IAArB24G,KAAsCl6G,MAAMC,QAAQi6G,IAAqBA,EAAiB5yE,MAAKhgC,GAA8B,iBAAZA,KACxH,MAAM,IAAI/F,MAAM,+DAGpB,MAAMka,EAAW,uHAEjB,IAAKnd,OAAOC,KAAKy7G,GAAe56G,OAC5B,MAAM,IAAImC,MAAMka,GAGpB,KAAKi7F,GAAWnF,GAAgB2G,GAAiBA,EAAa94G,QAAa86G,GAAqBA,EAAiB96G,QAC7G,MAAM,IAAImC,MAAMka,ICiLhB2+F,CAAsBJ,GAElBA,EAAcC,eAAiBv4G,KAAKk2G,qBACpC,MAAM,IAAIr2G,MAAM,oGAGT,QAAX+L,EAAA5L,KAAKmN,cAAM,IAAAvB,GAAAA,EAAE8U,MAAM,mDAAmD7Z,KAAKC,UAAUwxG,MAErF,MAAMK,EAAmB34G,KAAK44G,uBAAuB54G,KAAKolB,MAAOkzF,GAEjE,IAAKK,IAAqBA,EAAiBj7G,OACvC,MAAO,CAAEykB,SAAU,IAGvB,MAAMlU,KAAEA,EAAI4D,OAAEA,GAAW7R,KAAK64G,+CAA+CF,EAAkBL,GAE/F,IAAKrqG,EAGD,OAFa,QAAbutC,EAAAx7C,KAAKmN,cAAQ,IAAAquC,GAAAA,EAAA96B,MAAM,6CAA6C7O,KAEzD,CAAEsQ,SAAUw2F,GAGvB,MAAM9B,EAAqC,CAAErhE,gBAAYrxC,GAEnD+P,EAAUokG,EAAcpkG,SHpTY,IG2T1C,MAAO,CAAEiO,SAAU,OALGyyF,IAAY,IAAM50G,KAAK84G,iBAAiB,CAAEpgG,QAAS4/F,EAAezB,mBAAkB/xF,OAAQ,oBAC9G5Q,EACA,cAAcA,qDAA2DrN,KAAKC,UAAUwxG,QAMzF,gBAAMS,CAAW12F,SACpBriB,KAAKmN,OAAOuT,MAAM,8CAA8C7Z,KAAKC,UAAUub,MD9KlD,CAACA,IAClC,GAAuB,iBAAZA,EACP,MAAM,IAAIxiB,MAAM,mCAGpB,GAAuC,iBAA5BwiB,EAAQ9I,kBAAiC8I,EAAQ9I,gBAAgB7b,OACxE,MAAM,IAAImC,MAAM,0DAGpB,GAA4B,iBAAjBwiB,EAAQjmB,OAAsB,CAAC,MAAO,YAAYyP,SAASwW,EAAQjmB,MAC1E,MAAM,IAAIyD,MAAM,4DAA4DwiB,EAAQjmB,QAGxF,QAAwC,IAA7BimB,EAAQk1F,kBAAwE,iBAA7Bl1F,EAAQk1F,iBAClE,MAAM,IAAI13G,MAAM,0CAGpB,QAA8C,IAAnCwiB,EAAQm1F,wBAAoF,iBAAnCn1F,EAAQm1F,uBACxE,MAAM,IAAI33G,MAAM,gDAGpB,QAAuC,IAA5BwiB,EAAQo1F,iBAAsE,iBAA5Bp1F,EAAQo1F,gBACjE,MAAM,IAAI53G,MAAM,yCAGpB,QAAmC,IAAxBwiB,EAAQwiB,aAA8D,iBAAxBxiB,EAAQwiB,YAC7D,MAAM,IAAIhlC,MAAM,qCAGpB,QAAoC,IAAzBwiB,EAAQm0F,gBAAkCl4G,MAAMC,QAAQ8jB,EAAQm0F,eAAiBn0F,EAAQm0F,aAAa5wE,MAAK6yE,GAAsB,iBAARA,KAChI,MAAM,IAAI54G,MAAM,2DAGpB,QAAkC,IAAvBwiB,EAAQmzB,YAA4D,iBAAvBnzB,EAAQmzB,WAC5D,MAAM,IAAI31C,MAAM,oCAGpB,QAAqC,IAA1BwiB,EAAQ22F,eAAkE,iBAA1B32F,EAAQ22F,cAC/D,MAAM,IAAIn5G,MAAM,uCAGpB,QAAkC,IAAvBwiB,EAAQwtF,YAA4D,iBAAvBxtF,EAAQwtF,WAC5D,MAAM,IAAIhwG,MAAM,qCCsIhBo5G,CAAsB52F,GAEtB,MAAMguF,QAAgBrwG,KAAKolB,MDpID,IAAC8P,ICsIR7S,EDrIvBzlB,OAAOC,KAAKq4B,GAAK91B,SAAQpC,IACJ,OAAbk4B,EAAIl4B,SAA8BmH,IAAb+wB,EAAIl4B,WAClBk4B,EAAIl4B,MCqIJ,QAAX4O,EAAA5L,KAAKmN,cAAM,IAAAvB,GAAAA,EAAE8U,MAAM,mDAEnB,MAAMw4F,EAAkBl5G,KAAKm5G,gCAAgC9I,EAAShuF,GAItE,OAFAriB,KAAKmN,OAAOuT,MAAM,iCAAiC7Z,KAAKC,UAAUub,MAE3D,CAAEguF,QAAS6I,GAGf,wBAAME,GACTp5G,KAAKmN,OAAOuT,MAAM,wEAEZ1gB,KAAK+1G,gBAAgB31G,OAAO,CAAEiwG,aAASlsG,IAG1C,cAAAk1G,CAAe7tG,SAElB,MAAM8tG,EAA8B,QAAjB1tG,EAAA5L,KAAKqpE,kBAAY,IAAAz9D,OAAA,EAAAA,EAAA+6D,YAAW7+D,MAAOq2D,UAClD,MAAMv4D,EAAUu4D,EAAI7gE,KACdi8G,QAAep7C,EAAI6C,oBACgB,QAAjBp1D,EAAA2tG,aAAA,EAAAA,EAAQlJ,eAAS,IAAAzkG,OAAA,EAAAA,EAAAlO,SAIzC67G,EAAOlJ,QAAQjxG,SAAS41G,IACpB,MAAM3yF,EAAUriB,KAAKw5G,8BAA8BD,EAAQvE,GACtDh1G,KAAKo2G,uBAAuBxwG,KAC7B5F,KAAKo2G,uBAAuBxwG,GAAW,IAEvB5F,KAAKo2G,uBAAuBxwG,GACpC1F,KAAK,CAAEmiB,UAAS/kB,KAAM03G,EAAO13G,OACzCkO,EAAS6W,EAAS2yF,EAAO13G,KAAK,GAChC,IAGAm8G,EAAsBz5G,KAAKwmB,QAAQ+X,mBAAkB,EAAGzZ,SAAQ6Y,aAClE,IAAK7Y,EAAOxnB,KAAKkmB,WAAWixF,IACxB,OAEJ,MAAMd,EAAa7uF,EAAOxnB,KAAK4vB,QAAQunF,GAAmC,IACpEiF,EAAc15G,KAAK+3G,uBAAuB,CAAEjzF,SAAQq8C,KAAM,GAAIxjC,SAAQg2E,aAAYzuG,MAAO,KAC/FsG,EAASkuG,EAAa/F,EAAW,IAGrC,MAAO,KACgC,mBAAxB8F,GACPA,IAEsB,mBAAfH,GACPA,KAKL,gBAAAK,CAAiBnuG,SACpB,MAAMouG,EAAgC,QAAjBhuG,EAAA5L,KAAKqpE,kBAAY,IAAAz9D,OAAA,EAAAA,EAAAsyD,cAAap2D,MAAOq2D,IACtD,MAAMv4D,EAAUu4D,EAAI7gE,KACd6kB,EAAWniB,KAAKo2G,uBAAuBxwG,IACrBuc,aAAA,EAAAA,EAAUzkB,iBAI3BsC,KAAKo2G,uBAAuBxwG,GACnCuc,EAAS/iB,SAASy6G,IACdruG,EAASquG,EAAiBx3F,QAASw3F,EAAiBv8G,KAAK,IAC3D,IAGAm8G,EAAsBz5G,KAAKwmB,QAAQiY,qBAAoB,EAAG3Z,SAAQ6Y,aACpE,IAAK7Y,EAAOxnB,KAAKkmB,WAAWixF,IACxB,OAEJ,MAAMd,EAAa7uF,EAAOxnB,KAAK4vB,QAAQunF,GAAmC,IACpEiF,EAAc15G,KAAK+3G,uBAAuB,CAAEjzF,SAAQq8C,KAAM,GAAIxjC,SAAQg2E,aAAYzuG,MAAO,KAC/FsG,EAASkuG,EAAa/F,EAAW,IAGrC,MAAO,KACgC,mBAAxB8F,GACPA,IAEwB,mBAAjBG,GACPA,KAML,KAAA9V,GACH,MAAO,CACH1+E,IAAKplB,KAAKolB,IAAIpP,KAAKhW,MACnB2Z,KAAM3Z,KAAK2Z,KAAK3D,KAAKhW,MACrBmlG,MAAOnlG,KAAKmlG,MAAMnvF,KAAKhW,MACvBg4G,kBAAmBh4G,KAAKg4G,kBAAkBhiG,KAAKhW,MAC/CkmC,SAAUlmC,KAAKkmC,SAASlwB,KAAKhW,MAC7Bq4G,eAAgBr4G,KAAKq4G,eAAeriG,KAAKhW,MACzC+4G,WAAY/4G,KAAK+4G,WAAW/iG,KAAKhW,MACjCo5G,mBAAoBp5G,KAAKo5G,mBAAmBpjG,KAAKhW,MACjDq5G,eAAgBr5G,KAAKq5G,eAAerjG,KAAKhW,MACzC25G,iBAAkB35G,KAAK25G,iBAAiB3jG,KAAKhW,OAI7C,gBAAA44G,CAAiBvI,EAA4ChuG,GACjE,MAAMy3G,EAA8BzJ,EAAQhuG,QAAQ2yG,IAChD,IAAI3yG,EAAO2yG,QAAU3yG,EAAO2yG,SAAWA,EAAO13G,KAA9C,CAIA,GAAI+E,EAAOwtG,WAAY,CACnB,MAAM8I,EAAmB3D,EAAO7yF,SAAS9f,QAAQggB,GAAoDA,EAAQwtF,YAAcxtF,EAAQwtF,aAAextG,EAAOwtG,aAEzJ,IAAK8I,EAAiBj7G,OAAQ,OAE9Bs3G,EAAO7yF,SAAWw2F,EAGtB,GAAIt2G,EAAOm0G,aAAc,CACrB,MAAMmC,EAAmB3D,EAAO7yF,SAAS9f,QAAQggB,UAAoD,eAAAzW,EAAAvJ,EAAOm0G,mCAAc3gF,OAAOunE,IAAuB,IAAAxxF,EAAC,OAAoB,QAApBA,EAAAyW,EAAQm0F,oBAAY,IAAA5qG,OAAA,EAAAA,EAAEC,SAASuxF,EAAY,GAAC,IAErM,IAAKub,EAAiBj7G,OAAQ,OAE9Bs3G,EAAO7yF,SAAWw2F,EAGtB,GAAIt2G,EAAOm2G,iBAAkB,CACzB,MAAMG,EAAmB3D,EAAO7yF,SAAS9f,QAAQggB,IAAoD,IAAAzW,EAAA,OAAyB,QAAzBA,EAAAvJ,EAAOm2G,wBAAkB,IAAA5sG,OAAA,EAAAA,EAAAC,SAASwW,EAAQ9I,gBAAgB,IAE/J,IAAKo/F,EAAiBj7G,OAAQ,OAE9Bs3G,EAAO7yF,SAAWw2F,EAGtB,OAAO3D,EAAM,IAGjB,OAAO8E,EAA4B1yG,KAAK4tG,GAAWA,EAAO7yF,WAAUhkB,KAAK,GAGrE,qBAAM84G,EAAgBv+F,QAAEA,EAAOm+F,iBAAEA,EAAgB3iG,QAAEA,YACvD,MAAMojG,QAAkBt3G,KAAK0yB,IAAIha,EAAQs8F,QAEzC,QAAyB,IAAdsC,EACP,MAAM,IAAIz3G,MAAM,GAAG80G,GAAOoF,8BAA8BrhG,EAAQs8F,UAGpE,MAAM/mG,KAAEA,EAAI4D,OAAEA,SAAiB7R,KAAKg6G,sCAAsC1C,EAAW5+F,GAErF,IAAKzK,EAID,OAHAjO,KAAKmN,OAAOuT,MAAM,6CAA6C7O,KAGxD6G,EAAQg9F,6BACTd,IAAmD,IAAM50G,KAAKi6G,YAAYvhG,EAASxE,IAAUA,EAAS,GAAGygG,GAAOuC,wBAAwBhjG,8BACxIlU,KAAKi6G,YAAYvhG,EAASxE,GAGpC,MAAMgmG,QAAwBl6G,KAAK84G,iBAAiB,CAAEpgG,UAASoM,OAAQ,QAAS+xF,qBAIhF,GAFa,QAAbjrG,EAAA5L,KAAKmN,cAAQ,IAAAvB,GAAAA,EAAA8U,MAAM,qCAAqC7Z,KAAKC,UAAUozG,sBAAoChmG,KAEvGwE,EAAQg9F,6BACR,OAAOd,IAAY,IAAM50G,KAAKm6G,2BAA2BzhG,EAASwhG,EAAiBhmG,IAAUA,EAAS,GAAGygG,GAAOuC,wBAAwBhjG,8BAG5I,MAAMtQ,QAAe5D,KAAKm6G,2BAA2BzhG,EAASwhG,EAAiBhmG,GAI/E,OAFa,QAAbsnC,EAAAx7C,KAAKmN,cAAQ,IAAAquC,GAAAA,EAAA96B,MAAM,yCAAyC7Z,KAAKC,UAAU4R,EAAQs8F,YAAYnuG,KAAKC,UAAUlD,MAEvGA,EAGH,SAAM8uB,CAAIsiF,GACd,aAAch1G,KAAKolB,OAAOzL,MAAMygG,GAAqBA,EAAiB98G,OAAS03G,IAG3E,iBAAMiF,CAAYtD,EAAuDziG,GAC7E,MAAMy/F,EAAagD,EAAc3B,OAC3BsC,QAAkBt3G,KAAK0yB,IAAIihF,GAEjC,QAAyB,IAAd2D,EACP,MAAM,IAAIz3G,MAAM,GAAG80G,GAAOoF,8BAA8BpD,EAAc3B,UAG1E,MAAMqF,EAAuB1D,EAAcx0F,SAAWniB,KAAKs6G,oBAAoB3D,EAAcx0F,SAAU,CAAE/lB,KAAM,QAAW4D,KAAKs6G,oBAAoBhD,EAAUn1F,SAAU,CAAE/lB,KAAM,QAEzKm+G,EAA4B5D,EAAcx0F,SAAWniB,KAAKs6G,oBAAoB3D,EAAcx0F,SAAU,CAAE/lB,KAAM,aAAgB4D,KAAKs6G,oBAAoBhD,EAAUn1F,SAAU,CAAE/lB,KAAM,aAEzL,IAAIimB,EAsBJ,GAnBKs0F,EAAchyG,QAAmC,UAAzBgyG,EAAchyG,SACvC0d,EAAUk4F,GAA6BF,GAId,aAAzB1D,EAAchyG,SACd0d,EAAUg4F,GAIsB,iBAAzB1D,EAAchyG,QAAuBgyG,EAAchyG,OAAOw5D,MACjE97C,EAAUriB,KAAKs6G,oBAAoBhD,EAAUn1F,SAAU,CAAEg8C,IAAKw4C,EAAchyG,OAAOw5D,OAInD,iBAAzBw4C,EAAchyG,QAAuBgyG,EAAchyG,OAAOqE,WACjEqZ,EAAUriB,KAAKs6G,oBAAoBhD,EAAUn1F,SAAU,CAAEnZ,SAAU2tG,EAAchyG,OAAOqE,SAAUm1D,IAAKw4C,EAAchyG,OAAOw5D,QAG3H97C,EACD,MAAM,IAAIxiB,MAAM,oCAAoCgH,KAAKC,UAAU6vG,qCAKvE,aAFqB32G,KAAKm6G,2BAA2BxD,EAAet0F,EAASnO,GAKzE,gCAAMimG,CAA2BxD,EAAuDt0F,EAAiDnO,WAG7I,GAFW,QAAXtI,EAAA5L,KAAKmN,cAAM,IAAAvB,GAAAA,EAAE8U,MAAM,oCAAoC7Z,KAAKC,UAAUub,OAEjEA,EAAQmzB,WAAY,CACrB,MAAMglE,EAAoBx6G,KAAKy6G,eAAep4F,EAAQ9I,gBAAiBo9F,EAAct5G,QAASs5G,EAAc5yG,SAASvB,OAAOuJ,IACxH,MAAM2uG,EAA2B,iBAAR3uG,EAAmBA,EAAMlF,KAAKC,UAAUiF,GACjE,MAAM,IAAIlM,MAAM,GAAG80G,GAAOgG,wCAAwCD,IAAY,IAGlFr4F,EAAQmzB,iBAAmBglE,EAG/B,MAAMnzE,EAAa,GAAGotE,KAAoCkC,EAAc3B,SAElE4F,EAAgB,CAClB97E,wBAAyB5qB,EAAUA,EAAU,IHrjBP,IGsjBtC2oB,cAAe3oB,EAAUA,EAAU,IHtjBG,KGyjBpC21D,EAAgB7pE,KAAKwmB,QAAQK,OAAOwgB,EAAYsvE,EAAct5G,QAAS,CAAE2L,SAAUqZ,EAAQmzB,YAAcolE,GAC1Gp4G,OAAOuJ,IACJ,MAAM2uG,EAA2B,iBAAR3uG,EAAmBA,EAAMlF,KAAKC,UAAUiF,GACjE,MAAM,IAAIlM,MAAM,GAAG80G,GAAOkG,qCAAqCH,IAAY,IAG7E92G,QAAeimE,EAIrB,OAFW,QAAXruB,EAAAx7C,KAAKmN,cAAM,IAAAquC,GAAAA,EAAE96B,MAAM,oDAAoD7Z,KAAKC,UAAUlD,MAE/E,CACH8U,QAASi+F,EACTt0F,QAAS,IAAKA,EAASjmB,KAAM,YAC7BwH,OAAQA,EAAO47B,UAIf,sBAAMs5E,EAAiBpgG,QAAEA,EAAOoM,OAAEA,EAAM+xF,iBAAEA,wBAC9CjrG,EAAA5L,KAAKmN,uBAAQuT,MAAM,qCAAqC1gB,KAAK86G,oDAAoDj0G,KAAKC,UAAU4R,MAEhI,MAAMqiG,QAA2B/6G,KAAKg7G,+BAEzB,QAAbx/D,EAAAx7C,KAAKmN,cAAQ,IAAAquC,GAAAA,EAAA96B,MAAM,6BAA6Bq6F,KAEhD,MAAME,EAAej7G,KAAKk7G,kBAAkBp2F,EAAQpM,EAASqiG,GAEvDI,QAAqBn7G,KAAKo7G,oBAErB,QAAX15C,EAAA1hE,KAAKmN,cAAM,IAAAu0D,GAAAA,EAAEhhD,MAAM,8CAA8C7Z,KAAKC,UAAUm0G,mBAA8Bp0G,KAAKC,UAAUq0G,MAE7H,MAAMnyG,QAAiBhJ,KAAKqpE,WAAW92D,YAAYvS,KAAK86G,wBAAwBv5C,MAAM05C,EAAcE,GAEpGtE,EAAiBrhE,WAAaxsC,EAAS/I,GAE5B,QAAX+4B,EAAAh5B,KAAKmN,cAAM,IAAA6rB,GAAAA,EAAEtY,MAAM,qCAAqC1X,EAAS/I,aAEjED,KAAKq7G,2BAA2BryG,EAAU8b,GAE1C,MAAM5Q,GAAUwE,EAAQxE,QH7lBQ,KG+lBhClU,KAAKs7G,sBAAsB,CACvBtG,OAAmB,UAAXlwF,EAAsBpM,EAAmDs8F,YAAS7wG,EAC1FqxC,WAAYxsC,EAAS/I,GACrB86G,qBACA7mG,UACA6F,SAAU,cAAc7F,oDAAqE,UAAX4Q,EAC5E,cAAepM,EAAmDs8F,SAClE,QAAQlwF,yBAA8Bje,KAAKC,UAAW4R,SAMhE,aAFsB1Y,KAAKu7G,uBAAuB,CAAE/lE,WAAYxsC,EAAS/I,GAAI6sC,OAAQmuE,EAAaO,cAAe12F,SAAQpM,YAKrH,sBAAMo/F,CAAiB73G,EAAY43G,WACvC,QAA4B,IAAjBA,EACP,OAAgE,UAAzDA,EAAal+F,MAAM8hG,GAAgBA,EAAYx7G,KAAOA,WAAG,IAAA2L,OAAA,EAAAA,EAAE1G,MAItE,MAAME,EAAqB,QAAZo2C,EAAAx7C,KAAK47C,eAAO,IAAAJ,OAAA,EAAAA,EAAE6zC,SAASpvF,GAEtC,aADoBmF,aAAM,EAANA,EAAQ03E,YAIxB,4BAAMy+B,EAAuB/lE,WAAEA,EAAU1wB,OAAEA,EAAMpM,QAAEA,EAAOo0B,OAAEA,cAChE,IACI,MAAMkH,QAAiBh0C,KAAKi2G,gCAAgCzgE,GAAYrmC,QAElEusG,EAAwB,UAAX52F,EAAqB,cAAckvB,EAASghE,UAAY,GAkB3E,OAjBW,QAAXppG,EAAA5L,KAAKmN,cAAM,IAAAvB,GAAAA,EAAE8U,MAAM,yBAAyBg7F,MAAe70G,KAAKC,UAAUktC,EAAS3xB,gDAAgDmzB,KAEnIx1C,KAAK27G,qBAAqBnmE,GAEb,QAAbgG,EAAAx7C,KAAKmN,cAAQ,IAAAquC,GAAAA,EAAA96B,MAAM,oBAAoB80B,2BAEZ,UAAvBxB,EAASkhE,oBAAc,IAAAxzC,OAAA,EAAAA,EAAAyzC,uBACjBn1G,KAAK47G,eAAe,CACtB5G,OAAQhhE,EAASghE,OACjB3yF,QAAS2xB,EAAS3xB,QAClBhgB,OAAmB,mBAAXyiB,EACF,CAAE0zF,iBAAmB9/F,EAAmD8/F,iBAAkBhC,aAAe99F,EAAmD89F,aAAc3G,WAAan3F,EAAmDm3F,iBAC1O1rG,EACN2oC,WAIDkH,EAAS3xB,QAElB,MAAO/W,GAGL,MAFAtL,KAAK27G,qBAAqBnmE,GAEpB,IAAI31C,MAAMyL,IAIhB,kCAAM0vG,GACV,MAAM3zE,EHxqBiC,+BGwqBc14B,GAAMmuD,aAI3D,aAFM98D,KAAKwmB,QAAQ0f,SAASmB,GAAY,CAACzgB,EAAMgnB,IAAa5tC,KAAK67G,wBAAwBj1F,EAAMgnB,KAExFvG,EAGH,uBAAAw0E,CAAwBj1F,EAAWgnB,GACvC,MAAM5kC,SAAEA,GAAa4kC,EAEfqnE,EAAUH,GAAyBluF,GAEzC,IAAKquF,EAOD,OANAj1G,KAAKmN,OAAOuT,MAAM,oCAAoCktB,EAAS5kC,0CAA0CisG,EAAQ3pG,SAEjHtL,KAAKi2G,gCAAgCjtG,GAAU4E,OAAOqnG,EAAQ3pG,YAE9DtL,KAAK27G,qBAAqB3yG,GAK9B,MAAM8yG,EAAgB7G,EAAQtJ,GAE9B3rG,KAAKi2G,gCAAgCjtG,GAAUjD,QAAQ+1G,GAEvD97G,KAAK+7G,6BAA6B/yG,GAG9B,iBAAAkyG,CAAkBp2F,EAAgCpM,EAA0F2uB,SAChJ,MAAM20E,EAAYh8G,KAAKwmB,QAAQxd,SAASuJ,aAAevS,KAAKwmB,QAAQxd,SAASuQ,gBAEvE0iG,GAAmD,QAAtCrwG,EAAA5L,KAAKqpE,WAAW92D,YAAYypG,UAAU,IAAApwG,OAAA,EAAAA,EAAE1G,QAAS,GAE9Dg3G,EAAmB,CACrBtuE,SAAU5tC,KAAKwmB,QAAQxd,SAASA,SAChCq+B,aACAm0E,cAAe,CAAEv7G,GAAID,KAAKwmB,QAAQxd,SAASA,SAAUuQ,gBAAiByiG,EAAWzE,iBAAkB0E,GACnGE,YAAa,OAGjB,MAAkB,UAAXr3F,EACD,IAAKo3F,EAAkBlH,OAAQt8F,GAC/B,IAAKwjG,EAAkB5D,cAAe5/F,GAGxC,uBAAM0iG,GACV,MAAM58D,EAAMx+C,KAAK47C,QAAQ6M,KAEzB,IAAKjK,EACD,OAGJ,MAAMmG,QAAenG,EAAIsF,YAEzB,MAAO,CACHhpC,UAAW9a,KAAKo8G,2BAA2Bz3D,GAC3C1hC,MAAO0hC,EAAOuG,MH/tBY,KG+tBsB,EAAIvG,EAAO1hC,KAC3DioC,MHhuB0B,IGiuB1BC,OHhuB2B,KGouB3B,gCAAMixD,CAA2Bz3D,GACrC,MAEM03D,SAFkBr8G,KAAK47C,QAAQ6M,KAAKs0B,cAEN1gB,SAASlR,OAEvCrwC,GAAO6pC,EAAOwG,OHzuBW,KGyuByB,EAAIxG,EAAO7pC,IAEnE,OAAIA,EAAM,EACC,EAGPA,EH/uB2B,IG+uBKuhG,EACzBA,EAAoB,EAGxBvhG,EAGH,qBAAAwgG,EAAsB9lE,WAAEA,EAAUw/D,OAAEA,EAAM+F,mBAAEA,EAAkB7mG,QAAEA,EAAO6F,SAAEA,IAE7E,IAAIhU,EAA2C,OAE3C6H,EAAmC,OAEvC,MAAMuB,EFlwBa,EAAI4E,EAAkGC,EAA6BC,IAEnJ,IAAInO,SAAW,CAACC,EAAS6H,KAC5B,MAAMsG,EAAU5N,YAAW,KAIvBsH,EAFgBqG,GAAkB,wBAAwBD,IAE3C,GAChBA,GAEqB,IAAIlO,QAAWiO,GAGlCtG,MAAM7J,IACHuQ,aAAaD,GACbnO,EAAQnC,EAAO,IAElBpB,OAAO8I,IACJ6I,aAAaD,GACbtG,EAAOtC,EAAM,GACf,IE8uBUwI,EAA8B,CAACoI,EAAKymE,KAChD58E,EAAUmW,EACVtO,EAAS+0E,CAAG,GACbzuE,EAAS6F,GAEZ/Z,KAAKi2G,gCAAgCzgE,GAAc,CAAEw/D,SAAQjvG,UAAS6H,SAAQuB,UAASk4B,WAAY0zE,GAG/F,oBAAMN,CAAeloG,EAAqBlV,EAAc0G,GAK5D,aAJqB/D,KAAKwmB,QAAQK,OAAqC,2BAA4B,CAAEy6C,KAAM/uD,EAAaxO,QAAS,IAAKA,EAASu4G,oBAAoB,IAAU,OAAQ,CACjLz/E,cAAem+B,GACfl8B,wBAAyBk8B,MAEfx7B,SAAS8iC,GAGnB,0BAAA+4C,CAA2BryG,EAAgD8b,GAC/E,MAAMvS,YAAEA,GAAgBvJ,EAElB8Z,EAAQvQ,EAAY0rD,mBAAmBwF,IACzC,GAAIA,EAAKxjE,KAAO+I,EAAS/I,GACrB,OAGJ,MAAMs8G,EAAgBv8G,KAAKi2G,gCAAgCxyC,EAAKxjE,IAEhE,IAAKs8G,EACD,OAAOz5F,IAGX,MAAM/I,EAAW,kBAA6B,UAAX+K,EAAqB,iBAAiBy3F,EAAcvH,SAAW,IAAIlwF,6BAAkC9b,EAASuJ,YAAYjV,sCAE7Ji/G,EAAc3uG,OAAOmM,GAErB/Z,KAAK+7G,6BAA6Bt4C,EAAKxjE,IAEvC6iB,GAAO,IAIP,kCAAMi5F,CAA6BvmE,GACvC,MAAM+mE,EAAgBv8G,KAAKi2G,gCAAgCzgE,GAE3D,IAAK+mE,EACD,OAIsBv8G,KAAKwmB,QAAQue,WAAWw3E,EAAcl1E,YAE9C7kC,OAAO8I,GAAUtL,KAAKmN,OAAOiL,KAAK9M,YAE7CtL,KAAKi2G,gCAAgCzgE,GAGxC,kBAAA2hE,CAAmB3hE,GAClBA,GAILx1C,KAAK27G,qBAAqBnmE,GAGtB,oBAAAmmE,CAAqBnmE,GACzB,MAAMgnE,EAAQx8G,KAAK47C,QAAQyzC,SAAS75C,GAEpCgnE,SAAAA,EAAOxuG,QAAQxL,OAAOuJ,GAAQ/L,KAAKmN,OAAO7B,MAAMS,KAG5C,+BAAAsqG,CAAgCtyG,EAAkCslE,iBAEjEA,GAKLrpE,KAAKk2G,qBAA2E,kBAA9B,QAAftqG,EAAA7H,EAAQssG,eAAO,IAAAzkG,OAAA,EAAAA,EAAE6wG,0BAC9C14G,EAAQssG,QAAQoM,wBAGtBz8G,KAAK86G,uBAAoE,QAA3Cp5C,EAAiB,QAAjBlmB,EAAAz3C,EAAQssG,eAAS,IAAA70D,OAAA,EAAAA,EAAAs/D,8BAA0B,IAAAp5C,EAAAA,EHx0BxC,kBG00BjC1hE,KAAK08G,+BAA6E,QAA5CxW,EAAiB,QAAjBltE,EAAAj1B,EAAQssG,eAAS,IAAAr3E,OAAA,EAAAA,EAAA8F,+BAA2B,IAAAonE,EAAAA,EH70BzC,KGm0BrClmG,KAAKk2G,sBAAuB,EAa5B,2CAAM8D,CAAsChF,EAAyCt8F,GACzF,MAAMikG,EAAY38G,KAAK48G,uCAEvB,IAAKD,EAAU1uG,KACX,OAAO0uG,EAKX,aAFoC38G,KAAK68G,mCAAmC7H,EAAQt8F,GAM7E,CAAEzK,MAAM,GAHJ,CAAEA,MAAM,EAAO4D,OAAQ,iBAAiBmjG,EAAO13G,6BAMtD,8CAAAu7G,CAA+C12F,EAAoD9f,GACvG,OAAwB,IAApB8f,EAASzkB,OACF,CAAEuQ,MAAM,EAAO4D,OAAQ,oDAAoDhL,KAAKC,UAAUzE,MAGjE,kBAAzBA,aAAM,EAANA,EAAQk2G,eAA+Bl2G,EAAOk2G,aAIlDv4G,KAAK48G,uCAHD,CAAE3uG,MAAM,EAAO4D,OAAQ,wDAM9B,oCAAA+qG,GACJ,IAAK58G,KAAKk2G,qBACN,MAAO,CAAEjoG,MAAM,EAAO4D,OAAQ,iEAKlC,OAF2B7R,KAAKqpE,WAAW92D,YAAYvS,KAAK86G,wBAMrD,CAAE7sG,MAAM,GAHJ,CAAEA,MAAM,EAAO4D,OAAQ,yCAAyC7R,KAAK86G,qCAM5E,wCAAM+B,CAAmC7H,EAAyCt8F,GAMtF,MAAMyJ,QAAiBniB,KAAK88G,iBAAiBpkG,EAAQyJ,UAAY6yF,EAAO7yF,UAExE,IAAKzJ,EAAQ/T,OACT,OAAOwd,EAASzkB,OAAS,EAG7B,GAAuB,UAAnBgb,EAAQ/T,OACR,OAAOwd,EAAS9f,QAAOggB,GAA4B,aAAjBA,EAAQjmB,MAAuBimB,EAAQmzB,aAAY93C,OAAS,GAAKs3G,EAAO7yF,SAAS9f,QAAOggB,GAA4B,QAAjBA,EAAQjmB,OAAgBsB,OAAS,EAG1K,GAAuB,aAAnBgb,EAAQ/T,OACR,OAAOwd,EAAS9f,QAAOggB,GAA4B,QAAjBA,EAAQjmB,OAAgBsB,OAAS,EAGvE,GAAIgb,EAAQ/T,OAAOqE,SACf,OAAO,EAGX,GAAI0P,EAAQ/T,OAAOw5D,IAAK,CACpB,MAAM4+C,EAAkBrkG,EAAQ/T,OAAOw5D,IAIvC,OAFkCh8C,EAAS9f,QAAQggB,GAAYA,EAAQ9I,kBAAoBwjG,GAAmB16F,EAAQmzB,aAErF93C,OAAS,EAG9C,OAAO,EAGH,sBAAMo/G,CAAiB36F,GA2B3B,aA1BoErc,QAAQsf,IAAIjD,EAAS/a,KAAIU,MAAOua,IAChG,GAAqB,aAAjBA,EAAQjmB,KACR,OAAOimB,EAGX,MAEM26F,GAA0C,WAFxBh9G,KAAKqpE,WAAW92D,YAAY8P,EAAQ9I,iBAAiBynD,oBAE/CxB,cAE9B,MAAO,IAAKn9C,EAAS26F,cAAa,MAGkC36G,QAAO,CAACggB,EAASuX,EAAGqjF,KACxF,GAAI56F,EAAQmzB,aAAenzB,EAAQ26F,YAC/B,OAAO36F,EAKX,OAFuB46F,EAAgBtjG,MAAMm0C,GAAMA,EAAEtY,YAAcsY,EAAEv0C,kBAAoB8I,EAAQ9I,uBAEjG,EAIO8I,CAAO,IAMd,sBAAA81F,CAAuBxE,GAC3B,MAAO,GAAGc,KAAoCd,IAG1C,0BAAAuJ,CAA2BC,GAC/Bn9G,KAAKm2G,yBAA2Bn2G,KAAKm2G,yBAAyB9zG,QAAQ8M,GAAYA,IAAYguG,IAG1F,iBAAA/E,CAAkBzE,GACtB3zG,KAAKg2G,UAAUrpC,OAAOgnC,GAEtB,MAAMtsE,EAAarnC,KAAKm4G,uBAAuBxE,GAGzCyJ,EAAoBp9G,KAAKwmB,QAAQue,WAAWsC,GAElDrnC,KAAKm2G,yBAAyBj2G,KAAKk9G,GAEnCA,EACK3vG,MAAK,KACFzN,KAAKk9G,2BAA2BE,EAAkB,IAErD56G,OAAOuJ,IACJ/L,KAAKmN,OAAO7B,MAAM,wCAAwC+7B,yBAAmCt7B,GAE7F/L,KAAKk9G,2BAA2BE,EAAkB,IAItD,mBAAA9C,CAAoBn4F,EAAoD9f,GAC5E,OAAIA,EAAOjG,KACA+lB,EAASxI,MAAM0I,GAAYA,EAAQjmB,OAASiG,EAAOjG,OAG1DiG,EAAO2G,SACAmZ,EAASxI,MAAM0I,GAAYhgB,EAAO87D,IACnC97C,EAAQ9I,kBAAoBlX,EAAO87D,KAAO97C,EAAQmzB,aAAenzC,EAAO2G,SACxEqZ,EAAQmzB,aAAenzC,EAAO2G,WAIpC3G,EAAO87D,IACAh8C,EAASxI,MAAM0I,GAAYA,EAAQ9I,kBAAoBlX,EAAO87D,WADzE,EAKI,+BAAAg7C,CAAgC9I,EAA4ChuF,GAChF,MAAM62F,EAAkB7I,EAAQvzG,QAAO,CAACugH,EAA6DrI,KACjGA,EAAO7yF,SAAS/iB,SAASk+G,IACrB,MAAMrI,EAAUr4G,OAAOC,KAAKwlB,GAASwT,OAAO74B,UACxC,MAAe,iBAARA,UACD4O,EAAAyW,EAAQm0F,mCAAc3gF,OAAOunE,UAAwB,OAA2B,QAA3BxxF,EAAA0xG,EAAe9G,oBAAY,IAAA5qG,OAAA,EAAAA,EAAEC,SAASuxF,EAAY,IACtGkgB,EAAuBtgH,KAAUqlB,EAAgBrlB,EAAI,IAGhE,IAAKi4G,EACD,OAGJ,MAAMsI,EAAsD,CACxDvI,OAAQA,EAAO13G,KACfk5G,aAAc8G,EAAe9G,aAC7Bp5G,YAAakgH,EAAe9F,uBAC5B3yE,YAAay4E,EAAez4E,YAC5B86B,KAAM29C,EAAe7F,gBACrB5H,WAAYyN,EAAezN,YAG/BwN,EAAqBn9G,KAAKq9G,EAAe,IAGtCF,IACR,IAEH,OAAOnE,EAGH,6BAAMtC,CAAwBjD,SAGlC,IAAI6J,EAFJx9G,KAAKmN,OAAOuT,MAAM,wDAAwDizF,KAI1E,IACI6J,QAAcx9G,KAAK+1G,gBAAgBrjF,MACrC,MAAOpnB,GAEL,YADAtL,KAAKmN,OAAOiL,KAAK,0CAA2D,iBAAV9M,EAAqBA,EAAQzE,KAAKC,UAAUwE,MAIlH,MAAMmyG,EAAwB,QAAV7xG,EAAA4xG,EAAMhvG,YAAI,IAAA5C,OAAA,EAAAA,EAAEykG,QAEhC,IAAKoN,EAGD,YAFAz9G,KAAKmN,OAAOuT,MAAM,6CAKf+8F,EAAY9J,GAEnB,MAAM+J,EAAe,IACdF,EAAMhvG,KACT6hG,QAASoN,GAGb,UACUz9G,KAAK+1G,gBAAgB31G,OAAOs9G,GACpC,MAAOpyG,GAGL,YAFAtL,KAAKmN,OAAOiL,KAAK,6CAA8D,iBAAV9M,EAAqBA,EAAQzE,KAAKC,UAAUwE,MAKrHtL,KAAKmN,OAAOuT,MAAM,mCAAmCizF,0BAGjD,+BAAMgK,CAA0BhH,WACpC,IAAI6G,EAEJ,IACIA,QAAcx9G,KAAK+1G,gBAAgBrjF,MACrC,MAAOpnB,GAGL,YAFAtL,KAAKmN,OAAOiL,KAAK,0CAA2D,iBAAV9M,EAAqBA,EAAQzE,KAAKC,UAAUwE,MAKlH,MAAMsyG,EAAuC,QAAtBpiE,EAAY,QAAZ5vC,EAAA4xG,EAAMhvG,YAAM,IAAA5C,OAAA,EAAAA,EAAAykG,eAAU,IAAA70D,OAAA,EAAAA,EAAAm7D,EAAc3B,QAE3D,OAAO4I,eAAAA,EAAgBv7F,QAGnB,2CAAM00F,CAAsCJ,EAAuDE,EAAuB3iG,GAC9H,GAAIyiG,EAAchyG,OACd,OAGJ,MAAMk5G,QAA0B79G,KAAK29G,0BAA0BhH,GAE/D,IAAKkH,EACD,OAGJ,MAAMnlG,EAAU,IACTi+F,EACHhyG,OAAQ,CACJw5D,IAAK0/C,EAAkBtkG,gBACvBvQ,SAAU60G,EAAkBroE,aAGpC,IAGI,aAFuBx1C,KAAKi3G,gBAAgB,CAAEv+F,UAASm+F,mBAAkB3iG,YAG3E,MAAO5I,GACLtL,KAAKmN,OAAOuT,MAAM,oFAEZ1gB,KAAK42G,wBAAwBD,EAAc3B,SAIjD,oBAAM4G,EAAe5G,OAAEA,EAAM3yF,QAAEA,EAAOhgB,OAAEA,EAAMyqC,OAAEA,YACpD,MAAMgxE,QAAkB99G,KAAK+1G,gBAAgBrjF,IAAIoa,EAAOvzB,iBAElDwkG,GAAkC,QAAfnyG,EAAAkyG,aAAA,EAAAA,EAAWtvG,YAAI,IAAA5C,OAAA,EAAAA,EAAEykG,UAAW,CAAE,EAEjD2N,EAAgB,IACfF,EAAUtvG,KACb6hG,QAAS,IACF0N,EACH/I,CAACA,GAAS,CAAE3yF,UAAShgB,kBAIvBrC,KAAK+1G,gBAAgB31G,OAAO49G,EAAe,CAAE7/C,IAAKrxB,EAAOvzB,kBAEpD,QAAXiiC,EAAAx7C,KAAKmN,cAAM,IAAAquC,GAAAA,EAAE1qC,KAAK,uCAAuCg8B,EAAOvzB,wBAG5D,sBAAAw+F,EAAuB52C,KAAEA,EAAIwyC,WAAEA,EAAU7uF,OAAEA,EAAM6Y,OAAEA,EAAMz4B,MAAEA,IAC/D,MAAM4L,EAAOgU,EAAOsa,MAAM41E,OAEpB72C,EAAMgD,EAAKxnD,MAAMskG,GAAmBA,EAAe3gH,OAASqgC,EAAOprB,cACzE,IAAI2rG,GACA//C,aAAG,EAAHA,EAAKkyC,WACL6N,EAAY//C,EAAIkyC,QAAQ12F,MAAMwkG,GAAiBA,EAAa7gH,OAASq2G,KAezE,MAZwD,CACpDn+D,WAAY7X,EAAO30B,SACnBuQ,gBAAiBokB,EAAOprB,YACxBklG,gBAAiB3mG,EAAK6uD,OAAQxB,aAAA,EAAAA,EAAKwB,MACnC43C,kBAAkBp5C,eAAAA,EAAKj5D,QAAS,GAChCsyG,uBAAwB1mG,EAAK1T,cAAe+gE,aAAA,EAAAA,EAAKY,SACjDl6B,YAAa/zB,EAAK+zB,cAAeq5E,aAAA,EAAAA,EAAWr5E,aAC5C2xE,aAAc1lG,EAAK0lG,eAAgB0H,aAAA,EAAAA,EAAW3nE,UAC9CyiE,cAAe9zG,EACf9I,KAAM,WACNyzG,YAAYqO,aAAS,EAATA,EAAWrO,aAAc/+F,EAAK++F,YAK1C,6BAAA2J,CAA8Br7C,EAAwB62C,GAC1D,MAAO,CACHz7F,gBAAiB4kD,EAAI7gE,KACrBi6G,iBAAkBp5C,EAAIj5D,OAAS,GAC/BsyG,uBAAwBr5C,EAAIY,QAC5Bl6B,YAAamwE,EAAOnwE,YACpB2xE,aAAcxB,EAAOz+D,SACrBkhE,gBAAiBt5C,EAAIwB,KACrBvjE,KAAM,MACNyzG,WAAYmF,EAAOnF,mBC1oClBuO,GAQT,WAAA7hH,CAAoBqJ,EAAyB4gB,GAAzBxmB,KAAO4F,QAAPA,EAAyB5F,KAAOwmB,QAAPA,EANrCxmB,KAAQgN,SAAqBH,KAC7B7M,KAAuBq+G,yBAAG,EAQ3B,SAAM3rF,CAAOyrC,GAKhB,aAJoBn+D,KAAKwmB,QAAQK,OAAOu3F,GAAME,sBAAuB,CAAEngD,IAAKA,QAAAA,EAAOn+D,KAAK4F,SAAW,OAAQ,CACvGi3B,cAAem+B,GACfl8B,wBAAyBk8B,MAEjBx7B,SAGT,SAAMhU,CAAIhd,EAAWzK,SACxB/D,KAAKu+G,iBAAiB/vG,SAChBxO,KAAKwmB,QAAQK,OAAOu3F,GAAMI,sBAAuB,CAAErgD,IAAqB,QAAhBvyD,EAAA7H,aAAA,EAAAA,EAASo6D,WAAO,IAAAvyD,EAAAA,EAAA5L,KAAK4F,QAAS4I,OAAMs+C,OAAO,GAAS,OAAQ,CACtHjwB,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,YAAMyjD,CAAOtgD,EAAa3vD,GAG7B,OAFAxO,KAAK0+G,UAAUvgD,GACfn+D,KAAKu+G,iBAAiB/vG,GACfxO,KAAKwrB,IAAIhd,EAAM,CAAE2vD,QAGrB,YAAM/9D,CAAOoO,EAAWzK,SAC3B/D,KAAKu+G,iBAAiB/vG,SAChBxO,KAAKwmB,QAAQK,OAAOu3F,GAAMI,sBAAuB,CAAErgD,IAAqB,QAAhBvyD,EAAA7H,aAAA,EAAAA,EAASo6D,WAAO,IAAAvyD,EAAAA,EAAA5L,KAAK4F,QAAS4I,OAAMs+C,OAAO,GAAQ,OAAQ,CACrHjwB,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,eAAM2jD,CAAUxgD,EAAa3vD,GAGhC,OAFAxO,KAAK0+G,UAAUvgD,GACfn+D,KAAKu+G,iBAAiB/vG,GACfxO,KAAKI,OAAOoO,EAAM,CAAE2vD,QAGxB,WAAM1xD,CAAM0xD,SACTn+D,KAAKwmB,QAAQK,OAAOu3F,GAAMI,sBAAuB,CAAErgD,IAAKA,QAAAA,EAAOn+D,KAAK4F,QAAS6G,OAAO,GAAQ,OAAQ,CACtGowB,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,cAAM4jD,CAASzgD,GAClBn+D,KAAK0+G,UAAUvgD,SACTn+D,KAAKwmB,QAAQK,OAAOu3F,GAAMI,sBAAuB,CAAErgD,MAAK1xD,OAAO,GAAQ,OAAQ,CACjFowB,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,YAAMg6B,GAKT,aAJoBh1F,KAAKwmB,QAAQK,OAAOu3F,GAAME,2BAAuBn6G,EAAW,OAAQ,CACpF04B,cAAem+B,GACfl8B,wBAAyBk8B,MAEjBx7B,SAGT,cAAM4nE,SACHpnG,KAAKwmB,QAAQK,OAAOu3F,GAAMI,sBAAuB,CAAE/xG,OAAO,GAAQ,OAAQ,CAC5EowB,cAAem+B,GACfl8B,wBAAyBk8B,KAI1B,SAAAjiC,CAAavtB,GAEhB,OADAxL,KAAK6+G,eAAerzG,GACbxL,KAAKw6F,aAAax6F,KAAK4F,QAAS4F,GAGpC,YAAAgvF,CAAgBr8B,EAAa3yD,GAChCxL,KAAK0+G,UAAUvgD,GACfn+D,KAAK6+G,eAAerzG,GACpB,MAAMszG,EAAgB9+G,KAAKgN,SAASzB,IAAI4yD,EAAK3yD,GAW7C,OARAxL,KAAK++G,0BACAtxG,MAAK,KACFzN,KAAKwmB,QAAQK,OAAOu3F,GAAME,sBAAuB,CAAEngD,MAAKplC,WAAW,GAAQ,OAAQ,CAC/E8D,cAAem+B,GACfl8B,wBAAyBk8B,IAC3B,IAGH,KACH8jD,GAAe,EAIf,6BAAMC,GACN/+G,KAAKq+G,0BAGTr+G,KAAKq+G,yBAA0B,QAEzBr+G,KAAKwmB,QAAQ0f,SAASk4E,GAAMY,0BAA2Bp4F,IACzD5mB,KAAKgN,SAASZ,QAAQwa,EAAKu3C,IAAKv3C,EAAK,KAIrC,SAAA83F,CAAUvgD,GACd,IAAKA,EACD,MAAM,IAAIt+D,MAAM,yBAEpB,IAAKy6C,GAAS6jB,GACV,MAAM,IAAIt+D,MAAM,0BAGhB,gBAAA0+G,CAAiB/vG,GACrB,IAAKA,EACD,MAAM,IAAI3O,MAAM,0BAEpB,IAAK2wB,GAAShiB,GACV,MAAM,IAAI3O,MAAM,4BAIhB,cAAAg/G,CAAerzG,GACnB,IAAK6nB,GAAW7nB,GACZ,MAAM,IAAI3L,MAAM,+BA/HTu+G,GAAwBY,yBAAG,mBAC3BZ,GAAqBE,sBAAG,gBACxBF,GAAqBI,sBAAG,sBCN9BS,GAET,WAAA1iH,CAAoB8qC,EAA4B7gB,GAA5BxmB,KAAUqnC,WAAVA,EAA4BrnC,KAAOwmB,QAAPA,EAGzC,SAAMkM,CAAIrwB,GAEb,aADqBrC,KAAK6mB,OAAM,cAAsE,CAAExkB,YAC1Fm9B,SAAS0/E,QAGpB,SAAM1zF,CAAI2zF,GACbn/G,KAAKo/G,mBAAmBD,SAClBn/G,KAAK6mB,OAA8D,aAAAs4F,GAGtE,YAAMl5E,CAAO7iB,EAAa9lB,GAC7B,IAAKg9C,GAASl3B,GACV,MAAM,IAAIvjB,MAAM,0BAEpB,IAAKy6C,GAASh9C,GACV,MAAM,IAAIuC,MAAM,iCAEdG,KAAK6mB,OAAiE,gBAAA,CAAEzD,MAAK9lB,SAG/E,MAAAupB,CAAU8N,EAAmBnmB,GACjC,OAAOxO,KAAKwmB,QAAQK,OAAU7mB,KAAKqnC,WAAY,CAAE1S,UAAS/N,KAAMpY,GAC5D,OAAQ,CACRquB,cAAem+B,GACfl8B,wBAAyBi8B,KAIzB,kBAAAqkD,CAAmBD,GACvB,IAAKA,EACD,MAAM,IAAIt/G,MAAM,4BAEpB,IAAK2wB,GAAS2uF,GACV,MAAM,IAAIt/G,MAAM,8BAEpB,GAAI8O,GAAMsuD,kBAAkBkiD,EAAO/7F,OAASk3B,GAAS6kE,EAAO/7F,KACxD,MAAM,IAAIvjB,MAAM,iCAEpB,GAAI8O,GAAMsuD,kBAAkBkiD,EAAO7hH,QAAUg9C,GAAS6kE,EAAO7hH,MACzD,MAAM,IAAIuC,MAAM,kCAEpB,IAAK8O,GAAMsuD,kBAAkBkiD,EAAO7iH,SAAWg+C,GAAS6kE,EAAO7iH,OAC3D,MAAM,IAAIuD,MAAM,mCAEpB,IAAK8O,GAAMsuD,kBAAkBkiD,EAAOx2G,UAAY2xC,GAAS6kE,EAAOx2G,QAC5D,MAAM,IAAI9I,MAAM,oCAEpB,IAAK8O,GAAMsuD,kBAAkBkiD,EAAO3hH,QAAU88C,GAAS6kE,EAAO3hH,MAC1D,MAAM,IAAIqC,MAAM,kCAEpB,IAAK8O,GAAMsuD,kBAAkBkiD,EAAOE,SAAoC,kBAAlBF,EAAOE,OACzD,MAAM,IAAIx/G,MAAM,qCAEpB,IAAK8O,GAAMsuD,kBAAkBkiD,EAAOG,WAAwC,kBAApBH,EAAOG,SAC3D,MAAM,IAAIz/G,MAAM,uCAEpB,IAAK8O,GAAMsuD,kBAAkBkiD,EAAOI,iBAAoD,iBAA1BJ,EAAOI,eACjE,MAAM,IAAI1/G,MAAM,mDCpEf2/G,GAST,WAAAjjH,CAA6BiL,GAAAxH,KAAMwH,OAANA,EAPZxH,KAAey/G,gBAAG,SAElBz/G,KAAAgqE,OAAmG,CAChH01C,cAAe,CAAEpiH,KAAM,gBAAiBwY,OAAQ9V,KAAK2/G,oBAAoB3pG,KAAKhW,OAC9E4/G,YAAa,CAAEtiH,KAAM,cAAewY,OAAQ9V,KAAK6/G,kBAAkB7pG,KAAKhW,QAKrE,KAAAuhE,CAAM/oB,GAEL7pC,GAAMC,WAMV5O,KAAKw4C,KAAOA,EAEZx4C,KAAK8/G,0BAEL9/G,KAAK+/G,mBAGD,uBAAAD,GACJ16G,OAAOE,iBAAiBtF,KAAKy/G,iBAAkBpnG,IAC3C,MAAM7J,EAAQ6J,EAAsB2nG,OAEpC,IAAKxxG,IAASA,EAAKyxG,OACf,OAGJ,MAAMC,EAAsB1xG,EAAKyxG,OAAO5nG,MAElC8nG,EAAengH,KAAKgqE,OAAOk2C,GAE5BC,GAILA,EAAarqG,OAAOtH,EAAKyxG,OAAO1yG,QAAQ,IAKxC,eAAAwyG,GACJ//G,KAAKkI,KAAK,SAGN,iBAAA23G,GACC7/G,KAAKwH,OAAOs7F,UAKjB9iG,KAAKkI,KAAK,sBAAuB,CAAEswC,KAAMx4C,KAAKw4C,OAJ1Cx4C,KAAKkI,KAAK,sBAAuB,CAAEoD,MAAO,2GAO1C,mBAAAq0G,GACJ3/G,KAAK+/G,kBAGD,IAAA73G,CAAKykC,EAAmBp/B,GAC5B,MAAM1D,EAAU,CAAEo2G,OAAQ,CAAE5nG,MAAOs0B,EAAWp/B,YAExC8K,EAAQ,IAAI+nG,YAAYpgH,KAAKy/G,gBAAiB,CAAEO,OAAQn2G,IAE9DzE,OAAOq+F,cAAcprF,IC1EtB,MAAMrH,GACT,YAAO/B,CAAMC,GACT,OAAO,IAAIpJ,SAASC,GAAYO,WAAWP,EAASmJ,IAC5D,CACI,yBAAamxG,GAET,aACUrgH,KAAKiP,MAFc,WAIrC,CACI,SAAIK,GACA,OAAOtP,KAAKoP,UAAYpP,KAAKqP,QACrC,CACI,WAAA9S,GACIyD,KAAKmP,QAAU,IAAIrJ,SAAQ,CAACC,EAAS6H,KACjC5N,KAAK+F,QAAWwJ,IACZvP,KAAKqP,UAAW,EAChBtJ,EAAQwJ,EAAE,EAEdvP,KAAK4N,OAAU7B,IACX/L,KAAKoP,UAAW,EAChBxB,EAAO7B,EAAI,CACd,GAEb,ECjBA,MAAqBu0G,GAArB,WAAA/jH,GAKqByD,KAAqBugH,sBAAG,8BACxBvgH,KAA4BwgH,6BAAG,8BAGxCxgH,KAAaygH,cAAmE,GAGjF,IAAAz8G,CAAKwiB,GACRxmB,KAAKwmB,QAAUA,EAGZ,cAAM0f,CAASxtB,GAClB,IAAKA,GAA8B,iBAAZA,GAAwBpa,MAAMC,QAAQma,GACzD,MAAM,IAAI7Y,MAAM,kCAIpB,GAAuB,mBADP6Y,EAAQ2J,QAEpB,MAAM,IAAIxiB,MAAM,4CAGpB,MAAM4gH,EAAgB/nG,EAAQ+nG,cAE9BzgH,KAAK0gH,sBAAsBD,GAE3BzgH,KAAKygH,cAAcvgH,KAAKwY,GAExB,UACU1Y,KAAKwmB,QAAQK,OAAO7mB,KAAKugH,sBAAuB,CAClD5rF,QAAS,WACT8rF,iBACD,OAAQ,CACP5jF,cAAem+B,GACfl8B,wBAAyBk8B,WAEvBh7D,KAAK2gH,gCACb,MAAOr1G,GACLtL,KAAKygH,cAAgBzgH,KAAKygH,cAAcp+G,QAAQgF,GAAMA,IAAMqR,IAC5D,MAAMnL,EAAUjC,EAAMiC,SAAqB,gBAE3C,MADiB,IAAI1N,MAAM,oCAAoC0N,MAKhE,gBAAMw3B,CAAWrsB,GACpB,IAAKA,GAA8B,iBAAZA,GAAwBpa,MAAMC,QAAQma,GACzD,MAAM,IAAI7Y,MAAM,kCAEpB,MAAM4gH,EAAgB/nG,EAAQ+nG,cAC9BzgH,KAAK0gH,sBAAsBD,GAE3B,UACUzgH,KAAKwmB,QAAQK,OAAO7mB,KAAKugH,sBAAuB,CAClD5rF,QAAS,aACT8rF,iBACD,OAAQ,CACP5jF,cAAem+B,GACfl8B,wBAAyBk8B,KAE7Bh7D,KAAKygH,cAAgBzgH,KAAKygH,cAAcp+G,QAAQmF,IACpCi5G,EAAc76E,MAAMg7E,GACjBp5G,EAAOi5G,cAAc76E,MAAMv+B,GACvBA,EAAEsB,SAAWi4G,EAAaj4G,QAAUtB,EAAEyU,YAAc8kG,EAAa9kG,gBAItF,MAAOxQ,GACL,MAAMiC,EAAUjC,EAAMiC,SAAqB,gBAE3C,MADiB,IAAI1N,MAAM,sCAAsC0N,MAMlE,wBAAMszG,CAAyBl4G,EAAgBmT,EAAmBglG,EAAwBC,GAC7F,GAAgE,IAA5D/gH,KAAKwmB,QAAQE,QAAQ1mB,KAAKugH,uBAAuB7iH,OACjD,MAAO,CAAE,EAgBb,aAbqBsC,KAAKwmB,QAAQK,OAAiC7mB,KAAKugH,sBAAuB,CAC3F5rF,QAAS,oBACT8rF,cAAe,CAAC,CACZK,gBACAn4G,SACAmT,YACAilG,WAEL,OAAQ,CACPlkF,cAAem+B,GACfl8B,wBAAyBk8B,MAGfx7B,SAGX,wBAAOwhF,CAAkBC,EAAwBt4G,EAAgBi4G,GACpE,MAAMl6F,EAAU45F,GAAaY,oBAAoBv4G,IAAW,GAsB5D,OADiB,IAAIw4G,MAAMF,EApB0B,CACjD,GAAAvuF,CAAI/tB,EAAQy8G,EAAaC,GACrB,MAAMC,EAAWC,QAAQ7uF,IAAI/tB,EAAQy8G,EAAaC,GAClD,IACI,GAAwB,mBAAbC,EACP,OAAOA,EAGX,MAAME,EAAkB96F,EAAQ7a,SAASu1G,GACnCK,EAAc9yG,GAAMouD,UAAUukD,IAAa3yG,GAAMquD,gBAAgBskD,GACvE,OAAKE,GAAoBC,EAGlBnB,GAAaoB,gBAAgBJ,EAAgCF,EAAuBz8G,EAAQgE,EAAQi4G,GAFhGU,EAGb,MAAOh2G,GACL,OAAOg2G,MAShB,sBAAOI,CAAgBC,EAAoCP,EAAqBz8G,EAAagE,EAAgBi4G,GAChH,OAAO94G,kBAAkB8e,GACrB,MAAMg7F,QAAiChB,EAAaC,mBAAmBl4G,EAAQy4G,EAAax6F,EAAM,UAClG,IAAKjY,GAAMsuD,kBAAkB2kD,EAAyBC,iBAClD,OAAOD,EAAyBC,gBAE/BlzG,GAAMsuD,kBAAkB2kD,EAAyBd,iBAClDl6F,EAAOg7F,EAAyBd,eAEpC,MAAMp6E,QAAqBi7E,EAAe71G,MAAMnH,EAAQiiB,GAClDk7F,QAAgClB,EAAaC,mBAAmBl4G,EAAQy4G,EAAa,CAAC16E,GAAe,SAC3G,OAAK/3B,GAAMsuD,kBAAkB6kD,EAAwBD,iBAG9Cn7E,EAFIo7E,EAAwBD,eAGtC,EAIE,KAAA/d,GACH,MAAO,CACH59D,SAAUlmC,KAAKkmC,SAASlwB,KAAKhW,MAC7B+kC,WAAY/kC,KAAK+kC,WAAW/uB,KAAKhW,OAIjC,mCAAM2gH,UACsB,UAA5B3gH,KAAK+hH,6BAAuB,IAAAn2G,OAAA,EAAAA,EAAA0D,SAGhCtP,KAAK+hH,sBAAwB,IAAI/wG,GACjChR,KAAKwoE,kBAGD,oBAAMA,SACJxoE,KAAKwmB,QAAQ0f,SAGhBlmC,KAAKwgH,8BAA8B14G,MAAO0G,IAEzC,GAAgB,sBADAA,EAAKmmB,QACgB,CACjC,MAAMqtF,EAAqBxzG,EAAKoyG,aAC1BqB,EAAcjiH,KAAKygH,cAAc9mG,MAAMnS,GAClCA,EAAOi5G,cAAc76E,MAAMg7E,GACvBA,EAAaj4G,SAAWq5G,EAAmBr5G,QAAUi4G,EAAa9kG,YAAckmG,EAAmBlmG,cAIlH,aADqBmmG,EAAY5/F,QAAQ2/F,OAKjDhiH,KAAK+hH,sBAAsBh8G,UAGvB,qBAAA26G,CAAsBD,GAC1B,IAAKniH,MAAMC,QAAQkiH,GACf,MAAM,IAAI5gH,MAAM,kDAGpB,GAA6B,IAAzB4gH,EAAc/iH,OACd,MAAM,IAAImC,MAAM,6CAEpB,IAAK,MAAM+gH,KAAgBH,EAAe,CACtC,GAAI,MAAOG,GAAiF,iBAAjBA,GAA6BtiH,MAAMC,QAAQqiH,GAClH,MAAM,IAAI/gH,MAAM,+CAEpB,GAAmC,iBAAxB+gH,EAAaj4G,SAAwBi4G,EAAaj4G,OACzD,MAAM,IAAI9I,MAAM,yCAEpB,GAAsC,iBAA3B+gH,EAAa9kG,YAA2B8kG,EAAa9kG,UAC5D,MAAM,IAAIjc,MAAM,4CAEpBG,KAAKkiH,mBAAmBtB,IAIxB,kBAAAsB,CAAmBtB,GACvB,IAAKpmE,GAAkBomE,EAAaG,OAAQ,CACxC,MAAMoB,EAAc,CAAC,MAAO,SAAU,SAASt2G,SAAS+0G,EAAaG,OACrE,GAAkC,iBAAvBH,EAAaG,QAAuBoB,EAC3C,MAAM,IAAItiH,MAAM,0CA9MZygH,GAAAY,oBAAsD,CAClE7Q,QAAW,CAAC,UCepB,MAAM+R,GAA4B,UCjBlC,WAAA7lH,GAGWyD,KAAWqiH,aAAG,EACdriH,KAAOipE,QAAkB,GACzBjpE,KAAA4N,OAAiC,OACjC5N,KAAA+F,QAAqF,OAErF,IAAA/B,CAAKwD,GACRxH,KAAKqiH,aAAc,EACnBriH,KAAKsiH,QAAQ96G,GACbxH,KAAKmP,QAAU,IAAIrJ,SAAQ,CAACC,EAAS6H,KACjC5N,KAAK+F,QAAUA,EACf/F,KAAK4N,OAASA,CAAM,IAIrB,OAAA00G,CAAQ96G,GACXxH,KAAKipE,QAAQ/oE,KAAK,CAAE6mB,KAAM,IAAIvqB,KAAQgL,WAGnC,IAAAyvC,CAAKsrE,GACRviH,KAAK+F,QAAQw8G,GAGV,KAAAj3G,CAAM5G,GACT1E,KAAK4N,OAAOlJ,KDPd+kD,GAAU3hD,MAAO/D,IACnB,IAAIy+G,GAAW,EACVJ,GAASC,cACVG,GAAW,EACXJ,GAASp+G,KAAKD,IAIlB,MAAM4B,EAAwD,oBAAXP,QAA0BA,OAAOO,SACpF,GAAIA,IACK68G,EAED,OADAJ,GAASE,QAAQv+G,GACVq+G,GAASjzG,QAGxB,MAAMozG,QAAUE,GAAY1+G,EAAS4B,GAErC,OADAy8G,GAASr8G,QAAQw8G,GACVA,CAAC,EAGNE,GAAc36G,MAAO/D,EAAkC4B,KACzD,MACMo0D,EAAiBprD,GAAMssD,oBAMvBpiB,EAAanC,GADnB3yC,EAAUA,GAAW,CAAE,GAIvB,IAAI+5D,EACArgB,EACA2J,EACAs7D,EACAC,EACAC,EAPJ7+G,EAAQwxC,QAAUxxC,EAAQwxC,SAAW,CAAE,EAQvC,MAAMstE,EAAgB,IAAIvC,GACpBwC,EAA2B,IAAItD,GAAiB3mE,GAwLtD,SAASkqE,EAAaz8F,EAAoBnZ,EAAkC3F,GACxE,MAAMw7G,EAAY71G,EAAO6S,UAAUsG,GAEnC,GAAI9e,GAAUA,EAAO2F,OAAQ,CACzB,MAAM81G,EAAez7G,EAAO2F,OACxB81G,EAAa53G,SACb23G,EAAU78F,aAAa88F,EAAa53G,SAEpC43G,EAAavvE,SACbsvE,EAAU/8F,aAAag9F,EAAavvE,SAQ5C,OAAOsvE,EAGX,MAAMvuE,EAA+B,CAEjC+B,KAAM,CACF,CAAEl5C,KAAM,UAAWkwB,OAxM3B,SAAuB01F,GACnB,GAAIrqE,EAAW+C,QAAS,CAEpB,MAAMunE,EAAgBJ,EAAa,UAAWG,EAAK/1G,OAAQ0rC,EAAW+C,SAgBtE,OAdAwL,EAAWsnC,GACPw0B,EAAKvqE,IACLwqE,GACA,IACWrlD,IAEX,IACW4kD,IAEX,IACWC,GAEX5oD,GACJqpD,EAASh8D,GACFA,KAsLP,CAAE9pD,KAAM,aAAckwB,OAlL9B,SAA0B01F,SACtB,GAAIrqE,EAAWlB,YACP+hB,GAAeC,+BAAiCD,GAAeC,8BAA8BupD,EAAK37G,YAAa,CAE/G,MAAM87G,EAAiBN,EAAa,WAAYG,EAAK/1G,OAAQ0rC,EAAWlB,YAqBxE,OAnBA8F,EAAY,IAAIic,GAAe,CAC3BnyD,WAAY27G,EAAK37G,WACjBgvC,SAAU2sE,EAAK3sE,SACfoC,IAAKuqE,EAAKvqE,IACVxrC,OAAQk2G,EACRxpD,SAAU,OACVK,qBAAqB,EACrB1R,uBAAwB,OACxBmD,iBAAkB,KAClB/P,QAASwL,EACTsnB,iBAAkB,IACP5Q,EAEXnV,KAAM9P,EAAWlB,WAAWgR,KAC5BE,aAAchQ,EAAWlB,WAAWkR,aACpCpgC,WAAkC,QAAtB7c,EAAAjG,eAAAA,EAAU8hD,oBAAY,IAAA77C,OAAA,EAAAA,EAAE6c,WACpCsxC,mBACD9zD,IACHm9G,EAAS3lE,GACFA,KA0JX,CAAEngD,KAAM,aAAckwB,OArJ9B,SAA0B01F,GACtB,IAAKrqE,EAAWwwB,WACZ,OAGJ,MAAMl8D,EAAS41G,EAAa,aAAcG,EAAK/1G,OAAQ0rC,EAAWwwB,YAYlE,OATAvL,EAAcoL,GAAkB,CAC5BvwB,IAAKuqE,EAAKvqE,IACViD,QAASwL,EACTj6C,SACAwqC,WAAY8F,EACZkL,KAAM9P,EAAWwwB,WAAW1gB,KAC5BoR,mBAEJqpD,EAAStlD,GACFA,IAqIH,CAAExgE,KAAM,UAAWkwB,OAlI3B,SAAuB01F,SACnB,IAAKrqE,EAAW+2C,QACZ,OAGJ,MAAMziF,EAAS41G,EAAa,UAAWG,EAAK/1G,OAAQ0rC,EAAW+2C,SACzD0zB,EAAgBzqE,EAAW+2C,QAC3B2zB,EEjJA,SAAU/7G,GAEpB,IAAKA,EAAOmxC,IACR,MAAM94C,MAAM,0BAGhB,IAAK2H,EAAO2F,OACR,MAAMtN,MAAM,6BAIhB2H,EAAOmhD,KAAOnhD,EAAOmhD,MAAQ,OAE7B,MAAMx7C,EAAS3F,EAAO2F,OAChBnC,EAA8BqgF,KAEpC,IAAIm4B,EAQJ,OANIh8G,EAAOmhD,KACP66D,EAAY,IAAIjuB,GAAU/tF,EAAOmxC,IAAK3tC,GAKnC,IAAIkpF,GAAQ1sF,EAAQg8G,EAAWx4G,EAAWmC,EACrD,CFwHoBs2G,CAAe,CACvB9qE,IAAKuqE,EAAKvqE,IACV0wB,WAAYvL,EACZy0B,eAAgB,IAAM90C,EACtBtwC,SACAw7C,KAAM26D,EAAc36D,KACpB8nC,8BAAuB7kF,EAAA03G,EAAc7yB,sCACrC12B,mBAGJ,OADAqpD,EAASG,GACFA,IAkHH,CAAEjmH,KAAM,WAAYkwB,OA/G5B,SAAwB01F,GACpB,IAAKrqE,EAAWi2B,SACZ,OAIJ,MAAM3hE,EAAS41G,EAAa,WAAYG,EAAK/1G,OAAQ0rC,EAAWi2B,UAEhE,GAAKo0C,EAAK3sE,SAQV,OAHAosE,EG5KQ,SAAQn7G,EAAiD+uC,EAAyCoC,EAA+B2jD,EAAmDC,EAAyDpvF,GACzP,MAAMu2G,EACFzpB,GAAmBzyF,EAAQmxC,GACtBlrC,MAAK3F,OAAQ6gD,OAAMyxC,qBAChB,MAAMupB,EAAqB,WAAJh7D,EAA0D,IAAIyzC,GAAwB7lD,GAAY,IAAIqlD,GAA6BrlD,GAM1J,MAL0D,UAAtDoS,GACAx7C,EAAO2D,KAAK,oCAEVg+D,EAAS9qE,KAAK2/G,EAAgBh7D,EAAMyxC,SACpC7iD,GAAaoB,EAAKm2B,EAAU3hE,IAC3B,CAAI,IAGjB2hE,EAAW,IAAIutB,GAAa1jD,EAAK2jD,EAAeC,EAAkBpvF,GAExE,MAAO,CACH4rB,UAAW+1C,EAAS/1C,UAAU/iB,KAAK84D,GACnC0rB,aAAc1rB,EAAS0rB,aAAaxkF,KAAK84D,GACzCp7B,QAASo7B,EAASp7B,QAAQ19B,KAAK84D,GAC/Bn2C,QAASm2C,EAASn2C,QAAQ3iB,KAAK84D,GAC/Bl2C,SAAUk2C,EAASl2C,SAAS5iB,KAAK84D,GACjC1pD,IAAK0pD,EAAS1pD,IAAIpP,KAAK84D,GACvBre,KAAMqe,EAASre,KAAKz6C,KAAK84D,GACzBp8C,IAAKo8C,EAASp8C,IAAI1c,KAAK84D,GACvBrxE,KAAMqxE,EAASrxE,KAAKuY,KAAK84D,GACzBhxD,MAAOgxD,EAAShxD,MAAM9H,KAAK84D,GAC3BqwB,SAAUrwB,EAASqwB,SAASnpF,KAAK84D,GACjCywB,gBAAiBzwB,EAASywB,gBAAgBvpF,KAAK84D,GAC/C4wB,iBAAkB5wB,EAAS4wB,iBAAiB1pF,KAAK84D,GACjD0wB,YAAa1wB,EAAS0wB,YAAYxpF,KAAK84D,GAEvCzzD,QAASyzD,EAASzzD,QAAQrF,KAAK84D,GAC/BrmB,GAAIqmB,EAASrmB,GAAGzyC,KAAK84D,GAErB8vB,QAAS9vB,EAAS8vB,QAAQ5oF,KAAK84D,GAC/BjM,UAAWiM,EAASjM,UAAU7sD,KAAK84D,GACnCvjE,IAAKujE,EAASvjE,IAAIyK,KAAK84D,GACvB7oC,OAAQ6oC,EAAS7oC,OAAOjwB,KAAK84D,GAC7B+vB,oBAAqB/vB,EAAS+vB,oBAAoB7oF,KAAK84D,GACvDoL,uBAAwBpL,EAASoL,uBAAuBlkE,KAAK84D,GAC7DsvB,MAAOtvB,EAASsvB,MAAMpoF,KAAK84D,GAC3B/rD,MAAOjb,gBACGhC,QAAQsf,IAAI,CAAEmxB,EAAiBxzB,QAAS2gG,GAAsB,EAExE,QAAI/6D,GAAS,OAAOmmB,EAASnmB,IAAM,EACnCm0C,cAAehuB,EAASguB,cAAc9mF,KAAK84D,GAC3C4vB,WAAY5vB,EAAS4vB,WAAW1oF,KAAK84D,GACrC6vB,kBAAmB7vB,EAAS6vB,kBAAkB3oF,KAAK84D,GAE3D,CH2HoBA,CAAS,CAAEorB,cAAerhD,EAAWi2B,SAASorB,eAAiBgpB,EAAK3sE,SAAU2sE,EAAKvqE,KAAK,IAAMyO,IAAU,IAAM0W,GAAa3wD,GAEvIi2G,EAAST,GACFA,EAPHx1G,EAAO7B,MAAM,mEAuGb,CAAEhO,KAAM,UAAWkwB,OA7F3B,SAAuB01F,GACnB,MAAMU,EIrLR,SAAkBjrE,GACpB,MAAMqpD,EAAU,IAAIF,GAAYnpD,GAEhC,MAAO,CACHzS,SAAU87D,EAAQ97D,SAASlwB,KAAKgsF,GAChCj9D,WAAYi9D,EAAQj9D,WAAW/uB,KAAKgsF,GACpCK,cAAeL,EAAQK,cAAcrsF,KAAKgsF,GAC1CM,aAAcN,EAAQM,aAAatsF,KAAKgsF,GAExCj/E,MAAO,IAAMjd,QAAQC,UAE7B,CJ0K2Bi8F,CAAQkhB,EAAKvqE,KAGhC,OADAyqE,EAASQ,GACFA,IA0FH,CAAEtmH,KAAM,WAAYkwB,OAvE5B,SAA2B01F,GACvB,GAAIrqE,EAAW2iB,SAAU,CACrB,MAAMqoD,EAAiBd,EAAa,WAAYG,EAAK/1G,OAAQ0rC,EAAW2iB,UAIxE,OAFAknD,EAAY,IAAIlrB,GAAe0rB,EAAKvqE,IAAKkrE,GACzCT,EAASV,GACFA,KAkEP,CAAEplH,KAAM,QAASkwB,OAnDzB,SAAqB01F,WACjB,MAAMt9G,EAA0D,QAAhD41C,EAAuB,QAAvB5vC,EAAA7H,EAAQwO,mBAAe,IAAA3G,EAAAA,EAAAjG,eAAAA,EAAU4T,uBAAe,IAAAiiC,EAAAA,EAAI0nE,EAAK18F,QAAQxd,SAASuJ,YAI1F,OAHAqwG,EAAS,IAAIxE,GAAMx4G,EAASs9G,EAAK18F,SAEjC48F,EAASR,GACFA,IA+CH,CAAEtlH,KAAM,UAAWkwB,OAzF3B,SAAuB01F,GACnB,MAAMv6G,EAAS,UAETm7G,EADU,IAAIhO,GAAQoN,EAAKvqE,IAAKyO,EAAU87D,EAAK/1G,OAAO6S,UAAUrX,GAAS5E,EAAS6+G,EAAQ9kD,GACrEgmC,QACrBigB,EAAkBzD,GAAaU,kBAAkB8C,EAAYn7G,EAAQk6G,GAE3E,OADAO,EAASW,GACFA,IAoFH,CAAEzmH,KAAM,gBAAiBkwB,OAjFjC,SAA6B01F,GACzB,MAAMc,EAAmB,IAAIjgB,GAAcmf,EAAK18F,QAAS08F,EAAK/1G,QAAQ22F,QAGtE,OADAsf,EAASY,GACFA,IA8EH,CAAE1mH,KAAM,SAAUkwB,OAjE1B,SAAsB01F,GAClB,IAAKA,EAAK3sE,SAEN,OAEJ,MAAM0tE,EK1NE,SAAQ1tE,EAAyC/vB,GAC7D,MAAM09F,EAAS,IAAInZ,GAAWx0D,EAAU/vB,GAExC,MAAO,CACHiqC,KAAMyzD,EAAOzzD,KAAKz6C,KAAKkuG,GACvBhZ,WAAYgZ,EAAOhZ,WAAWl1F,KAAKkuG,GACnC/Y,OAAQ+Y,EAAO/Y,OAAOn1F,KAAKkuG,GAC3BrhD,UAAWqhD,EAAOrhD,UAAU7sD,KAAKkuG,GACjCnhG,MAAO,IAAMjd,QAAQC,UAE7B,CLgN0Bm+G,CAAOhB,EAAK3sE,SAAU2sE,EAAK18F,SAG7C,OADA48F,EAASa,GACFA,IA0DH,CAAE3mH,KAAM,UAAWkwB,OA/C3B,SAAuB01F,GACnB,MAAMj9G,EMzOE,SAAQ0yC,EAA+BtR,GACnD,MAAM63E,EAAU,IAAID,GAAQ53E,EAAYsR,GAExC,MAAO,CACHjmB,IAAKwsF,EAAQxsF,IAAI1c,KAAKkpG,GACtBj5E,OAAQi5E,EAAQj5E,OAAOjwB,KAAKkpG,GAC5B1zF,IAAK0zF,EAAQ1zF,IAAIxV,KAAKkpG,GACtBn8F,MAAO,IAAMjd,QAAQC,UAE7B,CNgOoBm5G,CAAQgE,EAAK18F,QA7LF,kBAgMvB,OADA48F,EAASn9G,GACFA,IA4CH,CAAE3I,KAAM,eAAgBkwB,OAzChC,SAA4B01F,GAGxB,OAFAL,EAAc7+G,KAAKk/G,EAAK18F,SACxB48F,EAASP,GACFA,EAAc/e,WAyCrB37E,WAEAgxB,WAAaX,IAETA,EAAKhxC,OAAOmwC,WAAakB,EAAWlB,WACpCa,EAAKhxC,OAAOo0C,QAAU/C,EAAW+C,QACjCpD,EAAKhxC,OAAO6hE,WAAaxwB,EAAWwwB,WACpC7wB,EAAKhxC,OAAOooF,QAAU/2C,EAAW+2C,QACjCp3C,EAAKhxC,OAAOsnE,SAAWj2B,EAAWi2B,SAClCt2B,EAAKhxC,OAAOg0D,SAAW3iB,EAAW2iB,QAAQ,GAI5C2oD,EAAoB,GAQ1B,SAASf,EAAS/lG,GACd8mG,EAAWjkH,KAAKmd,GARE,oBAAXjY,SACDA,OAAeg/G,iBAChBh/G,OAAeg/G,eAAiB,IAEpCh/G,OAAeg/G,eAAelkH,KAAKikH,IAOxC,MAAME,QAAiBC,GAAYvgH,EAAS0wC,GAS5C,OANIn2C,MAAMC,QAAQwF,aAAA,EAAAA,EAASwgH,YAAcxgH,EAAQwgH,UAAU7mH,cACjDoI,QAAQsf,IAAIrhB,EAAQwgH,UAAUn9G,KAAK+Z,GAAQA,EAAIkjG,EAAStgH,MAGlE++G,EAAyBvhD,MAAM8iD,GAExBA,CAAO,YAGlB56D,GAAQlR,YAAe+rE,GAAoBn8F,QAC3CshC,GAAQthC,QAAUA,GAClBshC,GAAQ+6D,MAAQpC,GOnUhB,IAAIqC,GAAeC,GACfC,IAAoB,EACxB,GAAsB,oBAAXv/G,OAAwB,CAC/B,MAAMywC,EAAczwC,OAEdsvC,EAAqC,QAAzB9oC,GAAAiqC,EAAYnB,iBAAa,IAAA9oC,GAAAA,GAAAiqC,EAAYlwC,SACnD+uC,GAAaA,EAAUkwE,eACvBH,GAAwC,WAAzB5uE,EAAYgvE,iBAAa,IAAArpE,GAAAA,GAAA3F,EAAYivE,KAEpDH,IAAoB,GAGpBA,KACA9uE,EAAYivE,KAAOL,GACnB5uE,EAAYgvE,UAAYJ,WAIrB5uE,EAAYkvE,iBACZlvE,EAAYmvE,QACvB,QAECP,GAAqB73G,QAAU63G,GAEjBA","x_google_ignoreList":[0,22,26,72]}
1
+ {"version":3,"file":"desktop.umd.min.js","sources":["../node_modules/@interopio/core/dist/core.es.js","../src/activity/entities/activityEntity.ts","../src/activity/helpers/util.ts","../src/activity/entities/activityType.ts","../src/activity/entities/windowType.ts","../src/activity/contracts/entityEvent.ts","../src/activity/core/activityAGM.ts","../src/activity/entities/attachedActivityDescriptor.ts","../src/activity/helpers/promiseExtensions.ts","../src/activity/entities/activity.ts","../src/activity/helpers/logger.ts","../src/activity/entities/activityWindow.ts","../src/activity/contracts/activityStatus.ts","../src/activity/bridges/gw3Bridge.ts","../src/activity/API/activityMyAPI.ts","../src/activity/helpers/readyMarker.ts","../src/activity/helpers/entityObservableCollection.ts","../src/activity/core/activityManager.ts","../src/activity/API/activityManagementAPI.ts","../src/activity/API/activityAPI.ts","../src/activity/activityModule.ts","../src/app-manager/const/agm-names.ts","../node_modules/callback-registry/lib/index.js","../src/app-manager/helper.ts","../src/constants.ts","../src/utils.ts","../../../node_modules/nanoid/non-secure/index.js","../src/app-manager/application.ts","../src/app-manager/instance.ts","../src/app-manager/app-manager.ts","../src/app-manager/entitlements.ts","../src/app-manager/in-memory.ts","../src/app-manager/main.ts","../src/app-manager/snapshot.ts","../src/app-manager/data-subscription.ts","../src/windows/jumpList/manager.ts","../src/windows/store.ts","../src/windows/jumpList/actions.ts","../src/windows/jumpList/categories.ts","../src/windows/jumpList/main.ts","../src/windows/window.ts","../src/windows/environment/helpers.ts","../src/windows/environment/gd/executor.ts","../src/windows/environment/gd/gd.ts","../src/windows/environment/detector.ts","../src/windows/group.ts","../src/windows/groups.ts","../src/windows/main.ts","../src/layouts/store.ts","../src/layouts/contextProvider.ts","../src/layouts/transform.ts","../src/layouts/layout.ts","../../schemas/app/application.js","../../schemas/app/system.js","../../schemas/app/layout.js","../../schemas/app/swTheme.js","../../schemas/app/swConfiguration.js","../../schemas/app/main.js","../src/layouts/layouts.ts","../src/layouts/stream/acsStream.ts","../src/displays/displayManager.ts","../src/channels/channelIDUtils.ts","../src/channels/agm.ts","../src/channels/contexts.ts","../src/channels/channels.ts","../src/channels/helpers.ts","../src/hotkeys/hotkeys.ts","../src/config.ts","../src/notifications/notification.ts","../src/notifications/panel.ts","../src/notifications/main.ts","../src/themes/themes.ts","../node_modules/@interopio/utils/dist/utils.es.js","../src/intents/constants.ts","../src/intents/common.ts","../src/intents/helpers.ts","../src/intents/intents.ts","../src/prefs/index.ts","../src/cookies/index.ts","../src/eventsDispatcher.ts","../../../app/utils/promise.js","../src/interception/main.ts","../src/glue.ts","../src/factoryCallInfo.ts","../src/layouts/main.ts","../src/channels/main.ts","../src/hotkeys/main.ts","../src/themes/main.ts","../src/cookies/main.ts","../src/index.ts"],"sourcesContent":["var MetricTypes = {\n STRING: 1,\n NUMBER: 2,\n TIMESTAMP: 3,\n OBJECT: 4\n};\n\nfunction getMetricTypeByValue(metric) {\n if (metric.type === MetricTypes.TIMESTAMP) {\n return \"timestamp\";\n }\n else if (metric.type === MetricTypes.NUMBER) {\n return \"number\";\n }\n else if (metric.type === MetricTypes.STRING) {\n return \"string\";\n }\n else if (metric.type === MetricTypes.OBJECT) {\n return \"object\";\n }\n return \"unknown\";\n}\nfunction getTypeByValue(value) {\n if (value.constructor === Date) {\n return \"timestamp\";\n }\n else if (typeof value === \"number\") {\n return \"number\";\n }\n else if (typeof value === \"string\") {\n return \"string\";\n }\n else if (typeof value === \"object\") {\n return \"object\";\n }\n else {\n return \"string\";\n }\n}\nfunction serializeMetric(metric) {\n const serializedMetrics = {};\n const type = getMetricTypeByValue(metric);\n if (type === \"object\") {\n const values = Object.keys(metric.value).reduce((memo, key) => {\n const innerType = getTypeByValue(metric.value[key]);\n if (innerType === \"object\") {\n const composite = defineNestedComposite(metric.value[key]);\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite,\n };\n }\n else {\n memo[key] = {\n type: innerType,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n serializedMetrics.composite = values;\n }\n serializedMetrics.name = normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name);\n serializedMetrics.type = type;\n serializedMetrics.description = metric.description;\n serializedMetrics.context = {};\n return serializedMetrics;\n}\nfunction defineNestedComposite(values) {\n return Object.keys(values).reduce((memo, key) => {\n const type = getTypeByValue(values[key]);\n if (type === \"object\") {\n memo[key] = {\n type: \"object\",\n description: \"\",\n context: {},\n composite: defineNestedComposite(values[key]),\n };\n }\n else {\n memo[key] = {\n type,\n description: \"\",\n context: {},\n };\n }\n return memo;\n }, {});\n}\nfunction normalizeMetricName(name) {\n if (typeof name !== \"undefined\" && name.length > 0 && name[0] !== \"/\") {\n return \"/\" + name;\n }\n else {\n return name;\n }\n}\nfunction getMetricValueByType(metric) {\n const type = getMetricTypeByValue(metric);\n if (type === \"timestamp\") {\n return Date.now();\n }\n else {\n return publishNestedComposite(metric.value);\n }\n}\nfunction publishNestedComposite(values) {\n if (typeof values !== \"object\") {\n return values;\n }\n return Object.keys(values).reduce((memo, key) => {\n const value = values[key];\n if (typeof value === \"object\" && value.constructor !== Date) {\n memo[key] = publishNestedComposite(value);\n }\n else if (value.constructor === Date) {\n memo[key] = new Date(value).getTime();\n }\n else if (value.constructor === Boolean) {\n memo[key] = value.toString();\n }\n else {\n memo[key] = value;\n }\n return memo;\n }, {});\n}\nfunction flatten(arr) {\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);\n }, []);\n}\nfunction getHighestState(arr) {\n return arr.sort((a, b) => {\n if (!a.state) {\n return 1;\n }\n if (!b.state) {\n return -1;\n }\n return b.state - a.state;\n })[0];\n}\nfunction aggregateDescription(arr) {\n let msg = \"\";\n arr.forEach((m, idx, a) => {\n const path = m.path.join(\".\");\n if (idx === a.length - 1) {\n msg += path + \".\" + m.name + \": \" + m.description;\n }\n else {\n msg += path + \".\" + m.name + \": \" + m.description + \",\";\n }\n });\n if (msg.length > 100) {\n return msg.slice(0, 100) + \"...\";\n }\n else {\n return msg;\n }\n}\nfunction composeMsgForRootStateMetric(system) {\n const aggregatedState = system.root.getAggregateState();\n const merged = flatten(aggregatedState);\n const highestState = getHighestState(merged);\n const aggregateDesc = aggregateDescription(merged);\n return {\n description: aggregateDesc,\n value: highestState.state,\n };\n}\n\nfunction gw3 (connection, config) {\n if (!connection || typeof connection !== \"object\") {\n throw new Error(\"Connection is required parameter\");\n }\n let joinPromise;\n let session;\n const init = (repo) => {\n let resolveReadyPromise;\n joinPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n session = connection.domain(\"metrics\");\n session.onJoined((reconnect) => {\n if (!reconnect && resolveReadyPromise) {\n resolveReadyPromise();\n resolveReadyPromise = undefined;\n }\n const rootStateMetric = {\n name: \"/State\",\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const defineRootMetricsMsg = {\n type: \"define\",\n metrics: [rootStateMetric],\n };\n session.sendFireAndForget(defineRootMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for root state metric: ${JSON.stringify(err)}`);\n });\n if (reconnect) {\n replayRepo(repo);\n }\n });\n session.join({\n system: config.system,\n service: config.service,\n instance: config.instance\n });\n };\n const replayRepo = (repo) => {\n replaySystem(repo.root);\n };\n const replaySystem = (system) => {\n createSystem(system);\n system.metrics.forEach((m) => {\n createMetric(m);\n });\n system.subSystems.forEach((ss) => {\n replaySystem(ss);\n });\n };\n const createSystem = async (system) => {\n if (system.parent === undefined) {\n return;\n }\n await joinPromise;\n const metric = {\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n type: \"object\",\n composite: {\n Description: {\n type: \"string\",\n description: \"\",\n },\n Value: {\n type: \"number\",\n description: \"\",\n },\n },\n description: \"System state\",\n context: {},\n };\n const createMetricsMsg = {\n type: \"define\",\n metrics: [metric],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const updateSystem = async (system, state) => {\n await joinPromise;\n const shadowedUpdateMetric = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(system.path.join(\"/\") + \"/\" + system.name + \"/State\"),\n value: {\n Description: state.description,\n Value: state.state,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(shadowedUpdateMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for system state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n const stateObj = composeMsgForRootStateMetric(system);\n const rootMetric = {\n type: \"publish\",\n peer_id: connection.peerId,\n values: [{\n name: \"/State\",\n value: {\n Description: stateObj.description,\n Value: stateObj.value,\n },\n timestamp: Date.now(),\n }],\n };\n session.sendFireAndForget(rootMetric)\n .catch((err) => {\n config.logger.warn(`Failed to send update for root state metric of ${system.name}: ${JSON.stringify(err)}`);\n });\n };\n const createMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n const m = serializeMetric(metricClone);\n const createMetricsMsg = {\n type: \"define\",\n metrics: [m],\n };\n session.sendFireAndForget(createMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to send define for metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n if (typeof metricClone.value !== \"undefined\") {\n updateMetricCore(metricClone);\n }\n };\n const updateMetric = async (metric) => {\n const metricClone = cloneMetric(metric);\n await joinPromise;\n updateMetricCore(metricClone);\n };\n const updateMetricCore = (metric) => {\n if (canUpdate()) {\n const value = getMetricValueByType(metric);\n const publishMetricsMsg = {\n type: \"publish\",\n values: [{\n name: normalizeMetricName(metric.path.join(\"/\") + \"/\" + metric.name),\n value,\n timestamp: Date.now(),\n }],\n };\n return session.sendFireAndForget(publishMetricsMsg)\n .catch((err) => {\n config.logger.warn(`Failed to publish metric ${metric.name}: ${JSON.stringify(err)}`);\n });\n }\n return Promise.resolve();\n };\n const cloneMetric = (metric) => {\n const metricClone = { ...metric };\n if (typeof metric.value === \"object\" && metric.value !== null) {\n metricClone.value = { ...metric.value };\n }\n return metricClone;\n };\n const canUpdate = () => {\n try {\n const func = config.canUpdateMetric ?? (() => true);\n return func();\n }\n catch {\n return true;\n }\n };\n return {\n init,\n createSystem,\n updateSystem,\n createMetric,\n updateMetric,\n };\n}\n\nvar Helpers = {\n validate: (definition, parent, transport) => {\n if (definition === null || typeof definition !== \"object\") {\n throw new Error(\"Missing definition\");\n }\n if (parent === null || typeof parent !== \"object\") {\n throw new Error(\"Missing parent\");\n }\n if (transport === null || typeof transport !== \"object\") {\n throw new Error(\"Missing transport\");\n }\n },\n};\n\nclass BaseMetric {\n definition;\n system;\n transport;\n value;\n type;\n path = [];\n name;\n description;\n get repo() {\n return this.system?.repo;\n }\n get id() { return `${this.system.path}/${name}`; }\n constructor(definition, system, transport, value, type) {\n this.definition = definition;\n this.system = system;\n this.transport = transport;\n this.value = value;\n this.type = type;\n Helpers.validate(definition, system, transport);\n this.path = system.path.slice(0);\n this.path.push(system.name);\n this.name = definition.name;\n this.description = definition.description;\n transport.createMetric(this);\n }\n update(newValue) {\n this.value = newValue;\n return this.transport.updateMetric(this);\n }\n}\n\nclass NumberMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.NUMBER);\n }\n incrementBy(num) {\n this.update(this.value + num);\n }\n increment() {\n this.incrementBy(1);\n }\n decrement() {\n this.incrementBy(-1);\n }\n decrementBy(num) {\n this.incrementBy(num * -1);\n }\n}\n\nclass ObjectMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.OBJECT);\n }\n update(newValue) {\n this.mergeValues(newValue);\n return this.transport.updateMetric(this);\n }\n mergeValues(values) {\n return Object.keys(this.value).forEach((k) => {\n if (typeof values[k] !== \"undefined\") {\n this.value[k] = values[k];\n }\n });\n }\n}\n\nclass StringMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.STRING);\n }\n}\n\nclass TimestampMetric extends BaseMetric {\n constructor(definition, system, transport, value) {\n super(definition, system, transport, value, MetricTypes.TIMESTAMP);\n }\n now() {\n this.update(new Date());\n }\n}\n\nfunction system(name, repo, protocol, parent, description) {\n if (!repo) {\n throw new Error(\"Repository is required\");\n }\n if (!protocol) {\n throw new Error(\"Transport is required\");\n }\n const _transport = protocol;\n const _name = name;\n const _description = description || \"\";\n const _repo = repo;\n const _parent = parent;\n const _path = _buildPath(parent);\n let _state = {};\n const id = _arrayToString(_path, \"/\") + name;\n const root = repo.root;\n const _subSystems = [];\n const _metrics = [];\n function subSystem(nameSystem, descriptionSystem) {\n if (!nameSystem || nameSystem.length === 0) {\n throw new Error(\"name is required\");\n }\n const match = _subSystems.filter((s) => s.name === nameSystem);\n if (match.length > 0) {\n return match[0];\n }\n const _system = system(nameSystem, _repo, _transport, me, descriptionSystem);\n _subSystems.push(_system);\n return _system;\n }\n function setState(state, stateDescription) {\n _state = { state, description: stateDescription };\n _transport.updateSystem(me, _state);\n }\n function stringMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.STRING, value, (metricDef) => new StringMetric(metricDef, me, _transport, value));\n }\n function numberMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.NUMBER, value, (metricDef) => new NumberMetric(metricDef, me, _transport, value));\n }\n function objectMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.OBJECT, value, (metricDef) => new ObjectMetric(metricDef, me, _transport, value));\n }\n function timestampMetric(definition, value) {\n return _getOrCreateMetric(definition, MetricTypes.TIMESTAMP, value, (metricDef) => new TimestampMetric(metricDef, me, _transport, value));\n }\n function _getOrCreateMetric(metricObject, expectedType, value, createMetric) {\n let metricDef = { name: \"\" };\n if (typeof metricObject === \"string\") {\n metricDef = { name: metricObject };\n }\n else {\n metricDef = metricObject;\n }\n const matching = _metrics.filter((shadowedMetric) => shadowedMetric.name === metricDef.name);\n if (matching.length > 0) {\n const existing = matching[0];\n if (existing.type !== expectedType) {\n throw new Error(`A metric named ${metricDef.name} is already defined with different type.`);\n }\n if (typeof value !== \"undefined\") {\n existing\n .update(value)\n .catch(() => { });\n }\n return existing;\n }\n const metric = createMetric(metricDef);\n _metrics.push(metric);\n return metric;\n }\n function _buildPath(shadowedSystem) {\n if (!shadowedSystem || !shadowedSystem.parent) {\n return [];\n }\n const path = _buildPath(shadowedSystem.parent);\n path.push(shadowedSystem.name);\n return path;\n }\n function _arrayToString(path, separator) {\n return ((path && path.length > 0) ? path.join(separator) : \"\");\n }\n function getAggregateState() {\n const aggState = [];\n if (Object.keys(_state).length > 0) {\n aggState.push({\n name: _name,\n path: _path,\n state: _state.state,\n description: _state.description,\n });\n }\n _subSystems.forEach((shadowedSubSystem) => {\n const result = shadowedSubSystem.getAggregateState();\n if (result.length > 0) {\n aggState.push(...result);\n }\n });\n return aggState;\n }\n const me = {\n get name() {\n return _name;\n },\n get description() {\n return _description;\n },\n get repo() {\n return _repo;\n },\n get parent() {\n return _parent;\n },\n path: _path,\n id,\n root,\n get subSystems() {\n return _subSystems;\n },\n get metrics() {\n return _metrics;\n },\n subSystem,\n getState: () => {\n return _state;\n },\n setState,\n stringMetric,\n timestampMetric,\n objectMetric,\n numberMetric,\n getAggregateState,\n };\n _transport.createSystem(me);\n return me;\n}\n\nclass Repository {\n root;\n constructor(options, protocol) {\n protocol.init(this);\n this.root = system(\"\", this, protocol);\n this.addSystemMetrics(this.root, options.clickStream || options.clickStream === undefined);\n }\n addSystemMetrics(rootSystem, useClickStream) {\n if (typeof navigator !== \"undefined\") {\n rootSystem.stringMetric(\"UserAgent\", navigator.userAgent);\n }\n if (useClickStream && typeof document !== \"undefined\") {\n const clickStream = rootSystem.subSystem(\"ClickStream\");\n const documentClickHandler = (e) => {\n if (!e.target) {\n return;\n }\n const target = e.target;\n const className = target ? target.getAttribute(\"class\") ?? \"\" : \"\";\n clickStream.objectMetric(\"LastBrowserEvent\", {\n type: \"click\",\n timestamp: new Date(),\n target: {\n className,\n id: target.id,\n type: \"<\" + target.tagName.toLowerCase() + \">\",\n href: target.href || \"\",\n },\n });\n };\n clickStream.objectMetric(\"Page\", {\n title: document.title,\n page: window.location.href,\n });\n if (document.addEventListener) {\n document.addEventListener(\"click\", documentClickHandler);\n }\n else {\n document.attachEvent(\"onclick\", documentClickHandler);\n }\n }\n rootSystem.stringMetric(\"StartTime\", (new Date()).toString());\n const urlMetric = rootSystem.stringMetric(\"StartURL\", \"\");\n const appNameMetric = rootSystem.stringMetric(\"AppName\", \"\");\n if (typeof window !== \"undefined\") {\n if (typeof window.location !== \"undefined\") {\n const startUrl = window.location.href;\n urlMetric.update(startUrl);\n }\n if (typeof window.glue42gd !== \"undefined\") {\n appNameMetric.update(window.glue42gd.appName);\n }\n }\n }\n}\n\nclass NullProtocol {\n init(repo) {\n }\n createSystem(system) {\n return Promise.resolve();\n }\n updateSystem(metric, state) {\n return Promise.resolve();\n }\n createMetric(metric) {\n return Promise.resolve();\n }\n updateMetric(metric) {\n return Promise.resolve();\n }\n}\n\nclass PerfTracker {\n api;\n lastCount = 0;\n initialPublishTimeout = 10 * 1000;\n publishInterval = 60 * 1000;\n system;\n constructor(api, initialPublishTimeout, publishInterval) {\n this.api = api;\n this.initialPublishTimeout = initialPublishTimeout ?? this.initialPublishTimeout;\n this.publishInterval = publishInterval ?? this.publishInterval;\n this.scheduleCollection();\n this.system = this.api.subSystem(\"performance\", \"Performance data published by the web application\");\n }\n scheduleCollection() {\n setTimeout(() => {\n this.collect();\n setInterval(() => {\n this.collect();\n }, this.publishInterval);\n }, this.initialPublishTimeout);\n }\n collect() {\n try {\n this.collectMemory();\n this.collectEntries();\n }\n catch {\n }\n }\n collectMemory() {\n const memory = window.performance.memory;\n this.system.stringMetric(\"memory\", JSON.stringify({\n totalJSHeapSize: memory.totalJSHeapSize,\n usedJSHeapSize: memory.usedJSHeapSize\n }));\n }\n collectEntries() {\n const allEntries = window.performance.getEntries();\n if (allEntries.length <= this.lastCount) {\n return;\n }\n this.lastCount = allEntries.length;\n const jsonfiedEntries = allEntries.map((i) => i.toJSON());\n this.system.stringMetric(\"entries\", JSON.stringify(jsonfiedEntries));\n }\n}\n\nvar metrics = (options) => {\n let protocol;\n if (!options.connection || typeof options.connection !== \"object\") {\n protocol = new NullProtocol();\n }\n else {\n protocol = gw3(options.connection, options);\n }\n const repo = new Repository(options, protocol);\n let rootSystem = repo.root;\n if (!options.disableAutoAppSystem) {\n rootSystem = rootSystem.subSystem(\"App\");\n }\n const api = addFAVSupport(rootSystem);\n initPerf(api, options.pagePerformanceMetrics);\n return api;\n};\nfunction initPerf(api, config) {\n if (typeof window === \"undefined\") {\n return;\n }\n const perfConfig = window?.glue42gd?.metrics?.pagePerformanceMetrics;\n if (perfConfig) {\n config = perfConfig;\n }\n if (config?.enabled) {\n new PerfTracker(api, config.initialPublishTimeout, config.publishInterval);\n }\n}\nfunction addFAVSupport(system) {\n const reportingSystem = system.subSystem(\"reporting\");\n const def = {\n name: \"features\"\n };\n let featureMetric;\n const featureMetricFunc = (name, action, payload) => {\n if (typeof name === \"undefined\" || name === \"\") {\n throw new Error(\"name is mandatory\");\n }\n else if (typeof action === \"undefined\" || action === \"\") {\n throw new Error(\"action is mandatory\");\n }\n else if (typeof payload === \"undefined\" || payload === \"\") {\n throw new Error(\"payload is mandatory\");\n }\n if (!featureMetric) {\n featureMetric = reportingSystem.objectMetric(def, { name, action, payload });\n }\n else {\n featureMetric.update({\n name,\n action,\n payload\n });\n }\n };\n system.featureMetric = featureMetricFunc;\n return system;\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\ncreateRegistry.default = createRegistry;\nvar lib = createRegistry;\n\n\nvar CallbackRegistryFactory = /*@__PURE__*/getDefaultExportFromCjs(lib);\n\nclass InProcTransport {\n gw;\n registry = CallbackRegistryFactory();\n client;\n constructor(settings, logger) {\n this.gw = settings.facade;\n this.gw.connect((_client, message) => {\n this.messageHandler(message);\n }).then((client) => {\n this.client = client;\n });\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n if (this.client) {\n this.client.send(msg);\n return Promise.resolve(undefined);\n }\n else {\n return Promise.reject(`not connected`);\n }\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"in-memory\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass SharedWorkerTransport {\n logger;\n worker;\n registry = CallbackRegistryFactory();\n constructor(workerFile, logger) {\n this.logger = logger;\n this.worker = new SharedWorker(workerFile);\n this.worker.port.onmessage = (e) => {\n this.messageHandler(e.data);\n };\n }\n get isObjectBasedTransport() {\n return true;\n }\n sendObject(msg) {\n this.worker.port.postMessage(msg);\n return Promise.resolve();\n }\n send(_msg) {\n return Promise.reject(\"not supported\");\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n onConnectedChanged(callback) {\n callback(true);\n return () => { };\n }\n close() {\n return Promise.resolve();\n }\n open() {\n return Promise.resolve();\n }\n name() {\n return \"shared-worker\";\n }\n reconnect() {\n return Promise.resolve();\n }\n messageHandler(msg) {\n this.registry.execute(\"onMessage\", msg);\n }\n}\n\nclass Utils {\n static isNode() {\n if (typeof Utils._isNode !== \"undefined\") {\n return Utils._isNode;\n }\n if (typeof window !== \"undefined\") {\n Utils._isNode = false;\n return false;\n }\n try {\n Utils._isNode = Object.prototype.toString.call(global.process) === \"[object process]\";\n }\n catch (e) {\n Utils._isNode = false;\n }\n return Utils._isNode;\n }\n static _isNode;\n}\n\nclass PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n resolve;\n reject;\n promise;\n rejected = false;\n resolved = false;\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\n\nconst timers = {};\nfunction getAllTimers() {\n return timers;\n}\nfunction timer (timerName) {\n const existing = timers[timerName];\n if (existing) {\n return existing;\n }\n const marks = [];\n function now() {\n return new Date().getTime();\n }\n const startTime = now();\n mark(\"start\", startTime);\n let endTime;\n let period;\n function stop() {\n endTime = now();\n mark(\"end\", endTime);\n period = endTime - startTime;\n return period;\n }\n function mark(name, time) {\n const currentTime = time ?? now();\n let diff = 0;\n if (marks.length > 0) {\n diff = currentTime - marks[marks.length - 1].time;\n }\n marks.push({ name, time: currentTime, diff });\n }\n const timerObj = {\n get startTime() {\n return startTime;\n },\n get endTime() {\n return endTime;\n },\n get period() {\n return period;\n },\n stop,\n mark,\n marks\n };\n timers[timerName] = timerObj;\n return timerObj;\n}\n\nconst WebSocketConstructor = Utils.isNode() ? require(\"ws\") : window.WebSocket;\nclass WS {\n ws;\n logger;\n settings;\n startupTimer = timer(\"connection\");\n _running = true;\n _registry = CallbackRegistryFactory();\n wsRequests = [];\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n if (!this.settings.ws) {\n throw new Error(\"ws is missing\");\n }\n }\n onMessage(callback) {\n return this._registry.add(\"onMessage\", callback);\n }\n send(msg, options) {\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(() => {\n try {\n this.ws?.send(msg);\n resolve();\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n });\n }\n open() {\n this.logger.info(\"opening ws...\");\n this._running = true;\n return new Promise((resolve, reject) => {\n this.waitForSocketConnection(resolve, reject);\n });\n }\n close() {\n this._running = false;\n if (this.ws) {\n this.ws.close();\n }\n return Promise.resolve();\n }\n onConnectedChanged(callback) {\n return this._registry.add(\"onConnectedChanged\", callback);\n }\n name() {\n return this.settings.ws;\n }\n reconnect() {\n this.ws?.close();\n const pw = new PromiseWrapper();\n this.waitForSocketConnection(() => {\n pw.resolve();\n });\n return pw.promise;\n }\n waitForSocketConnection(callback, failed) {\n failed = failed ?? (() => { });\n if (!this._running) {\n failed(`wait for socket on ${this.settings.ws} failed - socket closed by user`);\n return;\n }\n if (this.ws?.readyState === 1) {\n callback();\n return;\n }\n this.wsRequests.push({ callback, failed });\n if (this.wsRequests.length > 1) {\n return;\n }\n this.openSocket();\n }\n async openSocket(retryInterval, retriesLeft) {\n this.logger.info(`opening ws to ${this.settings.ws}, retryInterval: ${retryInterval}, retriesLeft: ${retriesLeft}...`);\n this.startupTimer.mark(\"opening-socket\");\n if (retryInterval === undefined) {\n retryInterval = this.settings.reconnectInterval;\n }\n if (typeof retriesLeft === \"undefined\") {\n retriesLeft = this.settings.reconnectAttempts;\n }\n if (retriesLeft !== undefined) {\n if (retriesLeft === 0) {\n this.notifyForSocketState(`wait for socket on ${this.settings.ws} failed - no more retries left`);\n return;\n }\n this.logger.debug(`will retry ${retriesLeft} more times (every ${retryInterval} ms)`);\n }\n try {\n await this.initiateSocket();\n this.startupTimer.mark(\"socket-initiated\");\n this.notifyForSocketState();\n }\n catch {\n setTimeout(() => {\n const retries = retriesLeft === undefined ? undefined : retriesLeft - 1;\n this.openSocket(retryInterval, retries);\n }, retryInterval);\n }\n }\n initiateSocket() {\n const pw = new PromiseWrapper();\n this.logger.debug(`initiating ws to ${this.settings.ws}...`);\n this.ws = new WebSocketConstructor(this.settings.ws ?? \"\");\n let wasOpen = false;\n this.ws.onerror = (err) => {\n let reason;\n try {\n const seen = new WeakSet();\n const replacer = (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n if (value instanceof Error) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack\n };\n }\n return value;\n };\n reason = JSON.stringify(err, replacer);\n }\n catch {\n reason = err.message;\n }\n this.logger.info(`ws error - reason: ${reason}`);\n pw.reject(\"error\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"error\");\n }\n this.notifyStatusChanged(false, reason);\n };\n this.ws.onclose = (err) => {\n this.logger.info(`ws closed - code: ${err?.code} reason: ${err?.reason}`);\n pw.reject(\"closed\");\n if (wasOpen) {\n wasOpen = false;\n this.notifyForSocketState(\"closed\");\n }\n this.notifyStatusChanged(false);\n };\n this.ws.onopen = () => {\n this.startupTimer.mark(\"ws-opened\");\n this.logger.info(`ws opened ${this.settings.identity?.application}`);\n pw.resolve();\n wasOpen = true;\n this.notifyStatusChanged(true);\n };\n this.ws.onmessage = (message) => {\n this._registry.execute(\"onMessage\", message.data);\n };\n return pw.promise;\n }\n notifyForSocketState(error) {\n this.wsRequests.forEach((wsRequest) => {\n if (error) {\n if (wsRequest.failed) {\n wsRequest.failed(error);\n }\n }\n else {\n wsRequest.callback();\n }\n });\n this.wsRequests = [];\n }\n notifyStatusChanged(status, reason) {\n this._registry.execute(\"onConnectedChanged\", status, reason);\n }\n}\n\nclass MessageReplayerImpl {\n specs;\n specsNames = [];\n messages = {};\n isDone;\n subs = {};\n subsRefCount = {};\n connection;\n constructor(specs) {\n this.specs = {};\n for (const spec of specs) {\n this.specs[spec.name] = spec;\n this.specsNames.push(spec.name);\n }\n }\n init(connection) {\n this.connection = connection;\n for (const name of this.specsNames) {\n for (const type of this.specs[name].types) {\n let refCount = this.subsRefCount[type];\n if (!refCount) {\n refCount = 0;\n }\n refCount += 1;\n this.subsRefCount[type] = refCount;\n if (refCount > 1) {\n continue;\n }\n const sub = connection.on(type, (msg) => this.processMessage(type, msg));\n this.subs[type] = sub;\n }\n }\n }\n processMessage(type, msg) {\n if (this.isDone || !msg) {\n return;\n }\n for (const name of this.specsNames) {\n if (this.specs[name].types.indexOf(type) !== -1) {\n const messages = this.messages[name] || [];\n this.messages[name] = messages;\n messages.push(msg);\n }\n }\n }\n drain(name, callback) {\n if (callback) {\n (this.messages[name] || []).forEach(callback);\n }\n delete this.messages[name];\n for (const type of this.specs[name].types) {\n this.subsRefCount[type] -= 1;\n if (this.subsRefCount[type] <= 0) {\n this.connection?.off(this.subs[type]);\n delete this.subs[type];\n delete this.subsRefCount[type];\n }\n }\n delete this.specs[name];\n if (!this.specs.length) {\n this.isDone = true;\n }\n }\n}\n\n/* @ts-self-types=\"./index.d.ts\" */\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';\nlet nanoid = (size = 21) => {\n let id = '';\n let i = size | 0;\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0];\n }\n return id\n};\n\nconst PromisePlus = (executor, timeoutMilliseconds, timeoutMessage) => {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n reject(message);\n }, timeoutMilliseconds);\n const providedPromise = new Promise(executor);\n providedPromise\n .then((result) => {\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n\nclass WebPlatformTransport {\n settings;\n logger;\n identity;\n isPreferredActivated;\n _communicationId;\n publicWindowId;\n selfAssignedWindowId;\n iAmConnected = false;\n parentReady = false;\n rejected = false;\n parentPingResolve;\n parentPingInterval;\n connectionResolve;\n extConnectionResolve;\n extConnectionReject;\n connectionReject;\n port;\n myClientId;\n children = [];\n extContentAvailable = false;\n extContentConnecting = false;\n extContentConnected = false;\n parentWindowId;\n parentInExtMode = false;\n webNamespace = \"g42_core_web\";\n parent;\n parentType;\n parentPingTimeout = 5000;\n connectionRequestTimeout = 7000;\n defaultTargetString = \"*\";\n registry = CallbackRegistryFactory();\n messages = {\n connectionAccepted: { name: \"connectionAccepted\", handle: this.handleConnectionAccepted.bind(this) },\n connectionRejected: { name: \"connectionRejected\", handle: this.handleConnectionRejected.bind(this) },\n connectionRequest: { name: \"connectionRequest\", handle: this.handleConnectionRequest.bind(this) },\n parentReady: {\n name: \"parentReady\", handle: () => {\n }\n },\n parentPing: { name: \"parentPing\", handle: this.handleParentPing.bind(this) },\n platformPing: { name: \"platformPing\", handle: this.handlePlatformPing.bind(this) },\n platformReady: { name: \"platformReady\", handle: this.handlePlatformReady.bind(this) },\n clientUnload: { name: \"clientUnload\", handle: this.handleClientUnload.bind(this) },\n manualUnload: { name: \"manualUnload\", handle: this.handleManualUnload.bind(this) },\n extConnectionResponse: { name: \"extConnectionResponse\", handle: this.handleExtConnectionResponse.bind(this) },\n extSetupRequest: { name: \"extSetupRequest\", handle: this.handleExtSetupRequest.bind(this) },\n gatewayDisconnect: { name: \"gatewayDisconnect\", handle: this.handleGatewayDisconnect.bind(this) },\n gatewayInternalConnect: { name: \"gatewayInternalConnect\", handle: this.handleGatewayInternalConnect.bind(this) }\n };\n constructor(settings, logger, identity) {\n this.settings = settings;\n this.logger = logger;\n this.identity = identity;\n this.extContentAvailable = !!window.glue42ext;\n this.setUpMessageListener();\n this.setUpUnload();\n this.setupPlatformUnloadListener();\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : undefined;\n }\n manualSetReadyState() {\n this.iAmConnected = true;\n this.parentReady = true;\n }\n get transportWindowId() {\n return this.publicWindowId;\n }\n get communicationId() {\n return this._communicationId;\n }\n async sendObject(msg) {\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: msg }, this.defaultTargetString);\n }\n if (!this.port) {\n throw new Error(\"Cannot send message, because the port was not opened yet\");\n }\n this.port.postMessage(msg);\n }\n get isObjectBasedTransport() {\n return true;\n }\n onMessage(callback) {\n return this.registry.add(\"onMessage\", callback);\n }\n send() {\n return Promise.reject(\"not supported\");\n }\n onConnectedChanged(callback) {\n return this.registry.add(\"onConnectedChanged\", callback);\n }\n async open() {\n this.logger.debug(\"opening a connection to the web platform gateway.\");\n await this.connect();\n this.notifyStatusChanged(true);\n }\n close() {\n const message = {\n glue42core: {\n type: this.messages.gatewayDisconnect.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n this.port?.postMessage(message);\n this.parentReady = false;\n this.notifyStatusChanged(false, \"manual reconnection\");\n return Promise.resolve();\n }\n name() {\n return \"web-platform\";\n }\n async reconnect() {\n await this.close();\n return Promise.resolve();\n }\n initiateInternalConnection() {\n return new Promise((resolve, reject) => {\n this.logger.debug(\"opening an internal web platform connection\");\n this.port = this.settings.port;\n if (this.iAmConnected) {\n this.logger.warn(\"cannot open a new connection, because this client is currently connected\");\n return;\n }\n this.port.onmessage = (event) => {\n if (this.iAmConnected && !event.data?.glue42core) {\n this.registry.execute(\"onMessage\", event.data);\n return;\n }\n const data = event.data?.glue42core;\n if (!data) {\n return;\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.success) {\n this.publicWindowId = this.settings.windowId;\n if (this.identity && this.publicWindowId) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.publicWindowId;\n }\n resolve();\n }\n if (data.type === this.messages.gatewayInternalConnect.name && data.error) {\n reject(data.error);\n }\n };\n this.port.postMessage({\n glue42core: {\n type: this.messages.gatewayInternalConnect.name\n }\n });\n });\n }\n initiateRemoteConnection(target) {\n return PromisePlus((resolve, reject) => {\n this.connectionResolve = resolve;\n this.connectionReject = reject;\n this.myClientId = this.myClientId ?? nanoid(10);\n const bridgeInstanceId = this.getMyWindowId() || nanoid(10);\n const request = {\n glue42core: {\n type: this.messages.connectionRequest.name,\n clientId: this.myClientId,\n clientType: \"child\",\n bridgeInstanceId,\n selfAssignedWindowId: this.selfAssignedWindowId\n }\n };\n this.logger.debug(\"sending connection request\");\n if (this.extContentConnecting) {\n request.glue42core.clientType = \"child\";\n request.glue42core.bridgeInstanceId = this.myClientId;\n request.glue42core.parentWindowId = this.parentWindowId;\n return window.postMessage(request, this.defaultTargetString);\n }\n if (!target) {\n throw new Error(\"Cannot send a connection request, because no glue target was specified!\");\n }\n target.postMessage(request, this.defaultTargetString);\n }, this.connectionRequestTimeout, \"The connection to the target glue window timed out\");\n }\n async isParentCheckSuccess(parentCheck) {\n try {\n await parentCheck;\n return { success: true };\n }\n catch (error) {\n return { success: false };\n }\n }\n setUpMessageListener() {\n if (this.settings.port) {\n this.logger.debug(\"skipping generic message listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"message\", (event) => {\n const data = event.data?.glue42core;\n if (!data || this.rejected) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n if (!this.checkMessageTypeValid(data.type)) {\n this.logger.error(`cannot handle the incoming glue42 core message, because the type is invalid: ${data.type}`);\n return;\n }\n const messageType = data.type;\n this.logger.debug(`received valid glue42core message of type: ${messageType}`);\n this.messages[messageType].handle(event);\n });\n }\n setUpUnload() {\n if (this.settings.port) {\n this.logger.debug(\"skipping unload event listener, because this is an internal client\");\n return;\n }\n window.addEventListener(\"beforeunload\", () => {\n if (this.extContentConnected) {\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.parent) {\n this.parent.postMessage(message, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n });\n }\n handlePlatformReady(event) {\n this.logger.debug(\"the web platform gave the ready signal\");\n this.parentReady = true;\n if (this.parentPingResolve) {\n this.parentPingResolve();\n delete this.parentPingResolve;\n }\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n this.parent = event.source;\n this.parentType = window.name.includes(\"#wsp\") ? \"workspace\" : \"window\";\n }\n handleConnectionAccepted(event) {\n const data = event.data?.glue42core;\n if (this.myClientId === data.clientId) {\n return this.handleAcceptanceOfMyRequest(data);\n }\n return this.handleAcceptanceOfGrandChildRequest(data, event);\n }\n handleAcceptanceOfMyRequest(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me.\");\n this.isPreferredActivated = data.isPreferredActivated;\n if (this.extContentConnecting) {\n return this.processExtContentConnection(data);\n }\n if (!data.port) {\n this.logger.error(\"cannot set up my connection, because I was not provided with a port\");\n return;\n }\n this.publicWindowId = this.getMyWindowId();\n if (this.identity) {\n this.identity.windowId = this.publicWindowId;\n this.identity.instance = this.identity.instance ? this.identity.instance : this.publicWindowId || nanoid(10);\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n this._communicationId = data.communicationId;\n this.port = data.port;\n this.port.onmessage = (e) => this.registry.execute(\"onMessage\", e.data);\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n this.logger.error(\"unable to call the connection resolve, because no connection promise was found\");\n }\n processExtContentConnection(data) {\n this.logger.debug(\"handling a connection accepted signal targeted at me for extension content connection.\");\n this.extContentConnecting = false;\n this.extContentConnected = true;\n this.publicWindowId = this.parentWindowId || this.myClientId;\n if (this.extContentConnecting && this.identity) {\n this.identity.windowId = this.publicWindowId;\n }\n if (this.identity && data.appName) {\n this.identity.application = data.appName;\n this.identity.applicationName = data.appName;\n }\n window.addEventListener(\"message\", (event) => {\n const extData = event.data?.glue42ExtInc;\n if (!extData) {\n return;\n }\n const allowedOrigins = this.settings.allowedOrigins || [];\n if (allowedOrigins.length && !allowedOrigins.includes(event.origin)) {\n this.logger.warn(`received a message from an origin which is not in the allowed list: ${event.origin}`);\n return;\n }\n this.registry.execute(\"onMessage\", extData);\n });\n if (this.connectionResolve) {\n this.logger.debug(\"my connection is set up, calling the connection resolve.\");\n this.connectionResolve();\n delete this.connectionResolve;\n return;\n }\n }\n handleAcceptanceOfGrandChildRequest(data, event) {\n if (this.extContentConnecting || this.extContentConnected) {\n this.logger.debug(\"cannot process acceptance of a grandchild, because I am connected to a content script\");\n return;\n }\n this.logger.debug(`handling a connection accepted signal targeted at a grandchild: ${data.clientId}`);\n const child = this.children.find((c) => c.grandChildId === data.clientId);\n if (!child) {\n this.logger.error(`cannot handle connection accepted for grandchild: ${data.clientId}, because there is no grandchild with this id`);\n return;\n }\n child.connected = true;\n this.logger.debug(`the grandchild connection for ${data.clientId} is set up, forwarding the success message and the gateway port`);\n data.parentWindowId = this.publicWindowId;\n child.source.postMessage(event.data, child.origin, [data.port]);\n return;\n }\n handleConnectionRejected(event) {\n this.logger.debug(\"handling a connection rejection. Most likely the reason is that this window was not created by a glue API call\");\n if (!this.connectionReject) {\n return;\n }\n const errorMsg = typeof event.data.glue42core?.error === \"string\"\n ? `Connection was rejected. ${event.data.glue42core?.error}`\n : \"The platform connection was rejected. Most likely because this window was not created by a glue API call\";\n this.connectionReject(errorMsg);\n delete this.connectionReject;\n }\n handleConnectionRequest(event) {\n if (this.extContentConnecting) {\n this.logger.debug(\"This connection request event is targeted at the extension content\");\n return;\n }\n const source = event.source;\n const data = event.data.glue42core;\n if (!data.clientType || data.clientType !== \"grandChild\") {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source was not opened by a glue API call\");\n }\n if (!data.clientId) {\n return this.rejectConnectionRequest(source, event.origin, \"rejecting a connection request, because the source did not provide a valid id\");\n }\n if (!this.parent) {\n return this.rejectConnectionRequest(source, event.origin, \"Cannot forward the connection request, because no direct connection to the platform was found\");\n }\n this.logger.debug(`handling a connection request for a grandchild: ${data.clientId}`);\n this.children.push({ grandChildId: data.clientId, source, connected: false, origin: event.origin });\n this.logger.debug(`grandchild: ${data.clientId} is prepared, forwarding connection request to the platform`);\n this.parent.postMessage(event.data, this.defaultTargetString);\n }\n handleParentPing(event) {\n if (!this.parentReady) {\n this.logger.debug(\"my parent is not ready, I am ignoring the parent ping\");\n return;\n }\n if (!this.iAmConnected) {\n this.logger.debug(\"i am not fully connected yet, I am ignoring the parent ping\");\n return;\n }\n const message = {\n glue42core: {\n type: this.messages.parentReady.name\n }\n };\n if (this.extContentConnected) {\n message.glue42core.extMode = { windowId: this.myClientId };\n }\n const source = event.source;\n this.logger.debug(\"responding to a parent ping with a ready message\");\n source.postMessage(message, event.origin);\n }\n setupPlatformUnloadListener() {\n this.onMessage((msg) => {\n if (msg.type === \"platformUnload\") {\n this.logger.debug(\"detected a web platform unload\");\n this.parentReady = false;\n this.notifyStatusChanged(false, \"Gateway unloaded\");\n }\n });\n }\n handleManualUnload() {\n const message = {\n glue42core: {\n type: this.messages.clientUnload.name,\n data: {\n clientId: this.myClientId,\n ownWindowId: this.identity?.windowId\n }\n }\n };\n if (this.extContentConnected) {\n return window.postMessage({ glue42ExtOut: message }, this.defaultTargetString);\n }\n this.port?.postMessage(message);\n }\n handleClientUnload(event) {\n const data = event.data.glue42core;\n const clientId = data?.data.clientId;\n if (!clientId) {\n this.logger.warn(\"cannot process grand child unload, because the provided id was not valid\");\n return;\n }\n const foundChild = this.children.find((child) => child.grandChildId === clientId);\n if (!foundChild) {\n this.logger.warn(\"cannot process grand child unload, because this client is unaware of this grandchild\");\n return;\n }\n this.logger.debug(`handling grandchild unload for id: ${clientId}`);\n this.children = this.children.filter((child) => child.grandChildId !== clientId);\n }\n handlePlatformPing() {\n return;\n }\n notifyStatusChanged(status, reason) {\n this.iAmConnected = status;\n this.registry.execute(\"onConnectedChanged\", status, reason);\n }\n checkMessageTypeValid(typeToValidate) {\n return typeof typeToValidate === \"string\" && !!this.messages[typeToValidate];\n }\n rejectConnectionRequest(source, origin, reason) {\n this.rejected = true;\n this.logger.error(reason);\n const rejection = {\n glue42core: {\n type: this.messages.connectionRejected.name\n }\n };\n source.postMessage(rejection, origin);\n }\n requestConnectionPermissionFromExt() {\n return this.waitForContentScript()\n .then(() => PromisePlus((resolve, reject) => {\n this.extConnectionResolve = resolve;\n this.extConnectionReject = reject;\n const message = {\n glue42core: {\n type: \"extSetupRequest\"\n }\n };\n this.logger.debug(\"permission request to the extension content script was sent\");\n window.postMessage(message, this.defaultTargetString);\n }, this.parentPingTimeout, \"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection timed out\"));\n }\n handleExtConnectionResponse(event) {\n const data = event.data?.glue42core;\n if (!data.approved) {\n return this.extConnectionReject ? this.extConnectionReject(\"Cannot initialize glue, because this app was not opened or created by a Glue Client and the request for extension connection was rejected\") : undefined;\n }\n if (this.extConnectionResolve) {\n this.extConnectionResolve();\n delete this.extConnectionResolve;\n }\n this.extContentConnecting = true;\n this.parentType = \"extension\";\n this.logger.debug(\"The extension connection was approved, proceeding.\");\n }\n handleExtSetupRequest() {\n return;\n }\n handleGatewayDisconnect() {\n return;\n }\n handleGatewayInternalConnect() {\n return;\n }\n waitForContentScript() {\n const contentReady = !!window.glue42ext?.content;\n if (contentReady) {\n return Promise.resolve();\n }\n return PromisePlus((resolve) => {\n window.addEventListener(\"Glue42EXTReady\", () => {\n resolve();\n });\n }, this.connectionRequestTimeout, \"The content script was available, but was never heard to be ready\");\n }\n async connect() {\n if (this.settings.port) {\n await this.initiateInternalConnection();\n this.logger.debug(\"internal web platform connection completed\");\n return;\n }\n this.logger.debug(\"opening a client web platform connection\");\n await this.findParent();\n await this.initiateRemoteConnection(this.parent);\n this.logger.debug(\"the client is connected\");\n }\n async findParent() {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const myInsideParents = this.getPossibleParentsInWindow(window);\n const myOutsideParents = this.getPossibleParentsOutsideWindow(window.top?.opener, window.top);\n const uniqueParents = new Set([...myInsideParents, ...myOutsideParents]);\n if (!uniqueParents.size && !this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n if (!uniqueParents.size && this.extContentAvailable) {\n await this.requestConnectionPermissionFromExt();\n return;\n }\n const defaultParentCheck = await this.isParentCheckSuccess(this.confirmParent(Array.from(uniqueParents)));\n if (defaultParentCheck.success) {\n this.logger.debug(\"The default parent was found!\");\n return;\n }\n if (!this.extContentAvailable) {\n throw new Error(connectionNotPossibleMsg);\n }\n await this.requestConnectionPermissionFromExt();\n }\n getPossibleParentsInWindow(currentWindow) {\n return (!currentWindow?.parent || currentWindow === currentWindow.parent) ? [] : [currentWindow.parent, ...this.getPossibleParentsInWindow(currentWindow.parent)];\n }\n getPossibleParentsOutsideWindow(opener, current) {\n return (!opener || !current || opener === current) ? [] : [opener, ...this.getPossibleParentsInWindow(opener), ...this.getPossibleParentsOutsideWindow(opener.opener, opener)];\n }\n confirmParent(targets) {\n const connectionNotPossibleMsg = \"Cannot initiate glue, because this window was not opened or created by a glue client\";\n const parentCheck = PromisePlus((resolve) => {\n this.parentPingResolve = resolve;\n const message = {\n glue42core: {\n type: this.messages.platformPing.name\n }\n };\n this.parentPingInterval = setInterval(() => {\n targets.forEach((target) => {\n target.postMessage(message, this.defaultTargetString);\n });\n }, 1000);\n }, this.parentPingTimeout, connectionNotPossibleMsg);\n parentCheck.catch(() => {\n if (this.parentPingInterval) {\n clearInterval(this.parentPingInterval);\n delete this.parentPingInterval;\n }\n });\n return parentCheck;\n }\n getMyWindowId() {\n if (this.parentType === \"workspace\") {\n return window.name.substring(0, window.name.indexOf(\"#wsp\"));\n }\n if (window !== window.top) {\n return;\n }\n if (window.name?.includes(\"g42\")) {\n return window.name;\n }\n this.selfAssignedWindowId = this.selfAssignedWindowId || `g42-${nanoid(10)}`;\n return this.selfAssignedWindowId;\n }\n}\n\nconst waitForInvocations = (invocations, callback) => {\n let left = invocations;\n return () => {\n left--;\n if (left === 0) {\n callback();\n }\n };\n};\n\nclass AsyncSequelizer {\n minSequenceInterval;\n queue = [];\n isExecutingQueue = false;\n constructor(minSequenceInterval = 0) {\n this.minSequenceInterval = minSequenceInterval;\n }\n enqueue(action) {\n return new Promise((resolve, reject) => {\n this.queue.push({ action, resolve, reject });\n this.executeQueue();\n });\n }\n async executeQueue() {\n if (this.isExecutingQueue) {\n return;\n }\n this.isExecutingQueue = true;\n while (this.queue.length) {\n const operation = this.queue.shift();\n if (!operation) {\n this.isExecutingQueue = false;\n return;\n }\n try {\n const actionResult = await operation.action();\n operation.resolve(actionResult);\n }\n catch (error) {\n operation.reject(error);\n }\n await this.intervalBreak();\n }\n this.isExecutingQueue = false;\n }\n intervalBreak() {\n return new Promise((res) => setTimeout(res, this.minSequenceInterval));\n }\n}\n\nfunction domainSession (domain, connection, logger, successMessages, errorMessages) {\n if (domain == null) {\n domain = \"global\";\n }\n successMessages = successMessages ?? [\"success\"];\n errorMessages = errorMessages ?? [\"error\"];\n let isJoined = domain === \"global\";\n let tryReconnecting = false;\n let _latestOptions;\n let _connectionOn = false;\n const callbacks = CallbackRegistryFactory();\n connection.disconnected(handleConnectionDisconnected);\n connection.loggedIn(handleConnectionLoggedIn);\n connection.on(\"success\", (msg) => handleSuccessMessage(msg));\n connection.on(\"error\", (msg) => handleErrorMessage(msg));\n connection.on(\"result\", (msg) => handleSuccessMessage(msg));\n if (successMessages) {\n successMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleSuccessMessage(msg));\n });\n }\n if (errorMessages) {\n errorMessages.forEach((sm) => {\n connection.on(sm, (msg) => handleErrorMessage(msg));\n });\n }\n const requestsMap = {};\n function join(options) {\n _latestOptions = options;\n return new Promise((resolve, reject) => {\n if (isJoined) {\n resolve({});\n return;\n }\n let joinPromise;\n if (domain === \"global\") {\n joinPromise = _connectionOn ? Promise.resolve({}) : Promise.reject(\"not connected to gateway\");\n }\n else {\n logger.debug(`joining domain ${domain}`);\n const joinMsg = {\n type: \"join\",\n destination: domain,\n domain: \"global\",\n options,\n };\n joinPromise = send(joinMsg);\n }\n joinPromise\n .then(() => {\n handleJoined();\n resolve({});\n })\n .catch((err) => {\n logger.debug(\"error joining \" + domain + \" domain: \" + JSON.stringify(err));\n reject(err);\n });\n });\n }\n function leave() {\n if (domain === \"global\") {\n return Promise.resolve();\n }\n logger.debug(\"stopping session \" + domain + \"...\");\n const leaveMsg = {\n type: \"leave\",\n destination: domain,\n domain: \"global\",\n };\n tryReconnecting = false;\n return send(leaveMsg)\n .then(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n })\n .catch(() => {\n isJoined = false;\n callbacks.execute(\"onLeft\");\n });\n }\n function handleJoined() {\n logger.debug(\"did join \" + domain);\n isJoined = true;\n const wasReconnect = tryReconnecting;\n tryReconnecting = false;\n callbacks.execute(\"onJoined\", wasReconnect);\n }\n function handleConnectionDisconnected() {\n logger.debug(\"connection is down\");\n _connectionOn = false;\n isJoined = false;\n tryReconnecting = true;\n Object.keys(requestsMap).forEach(requestId => {\n const request = requestsMap[requestId];\n if (request) {\n logger.trace(`failing pending request ${requestId} due to connection lost`);\n request.error({\n err: \"Connection lost - gateway connection was disconnected\"\n });\n }\n });\n callbacks.execute(\"onLeft\", { disconnected: true });\n }\n async function handleConnectionLoggedIn() {\n _connectionOn = true;\n if (tryReconnecting) {\n logger.debug(\"connection is now up - trying to reconnect...\");\n try {\n await join(_latestOptions);\n }\n catch {\n logger.trace(`failed to reconnect`);\n }\n }\n }\n function onJoined(callback) {\n if (isJoined) {\n callback(false);\n }\n return callbacks.add(\"onJoined\", callback);\n }\n function onLeft(callback) {\n if (!isJoined) {\n callback();\n }\n return callbacks.add(\"onLeft\", callback);\n }\n function handleErrorMessage(msg) {\n if (domain !== msg.domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.error(msg);\n }\n function handleSuccessMessage(msg) {\n if (msg.domain !== domain) {\n return;\n }\n const requestId = msg.request_id;\n if (!requestId) {\n return;\n }\n const entry = requestsMap[requestId];\n if (!entry) {\n return;\n }\n entry.success(msg);\n }\n function getNextRequestId() {\n return nanoid(10);\n }\n let queuedCalls = [];\n function send(msg, tag, options) {\n const ignore = [\"hello\", \"join\"];\n if (msg.type && ignore.indexOf(msg.type) === -1) {\n if (!isJoined) {\n console.warn(`trying to send a message (${msg.domain} ${msg.type}) but not connected, will queue`);\n const pw = new PromiseWrapper();\n queuedCalls.push({ msg, tag, options, pw });\n if (queuedCalls.length === 1) {\n const unsubscribe = onJoined(() => {\n logger.info(`joined - will now send queued messages (${queuedCalls.length} -> [${queuedCalls.map((m) => m.msg.type)}])`);\n queuedCalls.forEach((qm) => {\n send(qm.msg, qm.tag, qm.options)\n .then((t) => qm.pw.resolve(t))\n .catch((e) => qm.pw.reject(e));\n });\n queuedCalls = [];\n unsubscribe();\n });\n }\n return pw.promise;\n }\n }\n options = options ?? {};\n msg.request_id = msg.request_id ?? getNextRequestId();\n msg.domain = msg.domain ?? domain;\n if (!options.skipPeerId) {\n msg.peer_id = connection.peerId;\n }\n const requestId = msg.request_id;\n return new Promise((resolve, reject) => {\n requestsMap[requestId] = {\n success: (successMsg) => {\n delete requestsMap[requestId];\n successMsg._tag = tag;\n resolve(successMsg);\n },\n error: (errorMsg) => {\n logger.warn(`Gateway error - ${JSON.stringify(errorMsg)}`);\n delete requestsMap[requestId];\n errorMsg._tag = tag;\n reject(errorMsg);\n },\n };\n connection\n .send(msg, options)\n .catch((err) => {\n requestsMap[requestId]?.error({ err });\n });\n });\n }\n function sendFireAndForget(msg) {\n msg.request_id = msg.request_id ? msg.request_id : getNextRequestId();\n msg.domain = msg.domain ?? domain;\n msg.peer_id = connection.peerId;\n return connection.send(msg);\n }\n return {\n join,\n leave,\n onJoined,\n onLeft,\n send,\n sendFireAndForget,\n on: (type, callback) => {\n connection.on(type, (msg) => {\n if (msg.domain !== domain) {\n return;\n }\n try {\n callback(msg);\n }\n catch (e) {\n logger.error(`Callback failed: ${e} \\n ${e.stack} \\n msg was: ${JSON.stringify(msg)}`, e);\n }\n });\n },\n loggedIn: (callback) => connection.loggedIn(callback),\n connected: (callback) => connection.connected(callback),\n disconnected: (callback) => connection.disconnected(callback),\n get peerId() {\n return connection.peerId;\n },\n get domain() {\n return domain;\n },\n };\n}\n\nclass Connection {\n settings;\n logger;\n protocolVersion = 3;\n peerId;\n token;\n info;\n resolvedIdentity;\n availableDomains;\n gatewayToken;\n replayer;\n messageHandlers = {};\n ids = 1;\n registry = CallbackRegistryFactory();\n _connected = false;\n isTrace = false;\n transport;\n _defaultTransport;\n _defaultAuth;\n _targetTransport;\n _targetAuth;\n _swapTransport = false;\n _switchInProgress = false;\n _transportSubscriptions = [];\n datePrefix = \"#T42_DATE#\";\n datePrefixLen = this.datePrefix.length;\n dateMinLen = this.datePrefixLen + 1;\n datePrefixFirstChar = this.datePrefix[0];\n _sequelizer = new AsyncSequelizer();\n _isLoggedIn = false;\n shouldTryLogin = true;\n pingTimer;\n sessions = [];\n globalDomain;\n initialLogin = true;\n initialLoginAttempts = 3;\n loginConfig;\n loginRetryInProgress = false;\n constructor(settings, logger) {\n this.settings = settings;\n this.logger = logger;\n settings = settings || {};\n settings.reconnectAttempts = settings.reconnectAttempts ?? 10;\n settings.reconnectInterval = settings.reconnectInterval ?? 1000;\n if (settings.inproc) {\n this.transport = new InProcTransport(settings.inproc, logger.subLogger(\"inMemory\"));\n }\n else if (settings.sharedWorker) {\n this.transport = new SharedWorkerTransport(settings.sharedWorker, logger.subLogger(\"shared-worker\"));\n }\n else if (settings.webPlatform) {\n this.transport = new WebPlatformTransport(settings.webPlatform, logger.subLogger(\"web-platform\"), settings.identity);\n }\n else if (settings.ws !== undefined) {\n this.transport = new WS(settings, logger.subLogger(\"ws\"));\n }\n else {\n throw new Error(\"No connection information specified\");\n }\n this.isTrace = logger.canPublish(\"trace\");\n logger.debug(`starting with ${this.transport.name()} transport`);\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n this._defaultTransport = this.transport;\n this.ping();\n }\n async switchTransport(settings) {\n return this._sequelizer.enqueue(async () => {\n if (!settings || typeof settings !== \"object\") {\n throw new Error(\"Cannot switch transports, because the settings are missing or invalid.\");\n }\n if (typeof settings.type === \"undefined\") {\n throw new Error(\"Cannot switch the transport, because the type is not defined\");\n }\n this.logger.trace(`Starting transport switch with settings: ${JSON.stringify(settings)}`);\n const switchTargetTransport = settings.type === \"secondary\" ? this.getNewSecondaryTransport(settings) : this._defaultTransport;\n this._targetTransport = switchTargetTransport;\n this._targetAuth = settings.type === \"secondary\" ? this.getNewSecondaryAuth(settings) : this._defaultAuth;\n const verifyPromise = this.verifyConnection();\n this._swapTransport = true;\n this._switchInProgress = true;\n this.logger.trace(\"The new transport has been set, closing the current transport\");\n await this.transport.close();\n try {\n await verifyPromise;\n const isSwitchSuccess = this.transport === switchTargetTransport;\n this.logger.info(`The reconnection after the switch was completed. Was the switch a success: ${isSwitchSuccess}`);\n this._switchInProgress = false;\n return { success: isSwitchSuccess };\n }\n catch (error) {\n this.logger.info(\"The reconnection after the switch timed out, reverting back to the default transport.\");\n this.switchTransport({ type: \"default\" });\n this._switchInProgress = false;\n return { success: false };\n }\n });\n }\n onLibReAnnounced(callback) {\n return this.registry.add(\"libReAnnounced\", callback);\n }\n setLibReAnnounced(lib) {\n this.registry.execute(\"libReAnnounced\", lib);\n }\n send(message, options) {\n if (this.transport.sendObject &&\n this.transport.isObjectBasedTransport) {\n const msg = this.createObjectMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${JSON.stringify(msg)}`);\n }\n return this.transport.sendObject(msg, options);\n }\n else {\n const strMessage = this.createStringMessage(message);\n if (this.isTrace) {\n this.logger.trace(`>> ${strMessage}`);\n }\n return this.transport.send(strMessage, options);\n }\n }\n on(type, messageHandler) {\n type = type.toLowerCase();\n if (this.messageHandlers[type] === undefined) {\n this.messageHandlers[type] = {};\n }\n const id = this.ids++;\n this.messageHandlers[type][id] = messageHandler;\n return {\n type,\n id,\n };\n }\n off(info) {\n delete this.messageHandlers[info.type.toLowerCase()][info.id];\n }\n get isConnected() {\n return this._isLoggedIn;\n }\n connected(callback) {\n return this.loggedIn(() => {\n const currentServer = this.transport.name();\n callback(currentServer);\n });\n }\n disconnected(callback) {\n return this.registry.add(\"disconnected\", callback);\n }\n async login(authRequest, reconnect) {\n this.logger.debug(`Login initiated - reconnect: ${reconnect}, transport: ${this.transport.name()}`);\n if (!this._defaultAuth) {\n this._defaultAuth = authRequest;\n }\n if (this._swapTransport) {\n this.logger.trace(\"Detected a transport swap, swapping transports\");\n const newAuth = this.transportSwap();\n authRequest = newAuth ?? authRequest;\n }\n try {\n await this.transport.open();\n this.logger.debug(`Transport: ${this.transport.name()} opened, logging in`);\n timer(\"connection\").mark(\"transport-opened\");\n const identity = await this.loginCore(authRequest, reconnect);\n this.logger.debug(`Logged in with identity: ${JSON.stringify(identity)}`);\n timer(\"connection\").mark(\"protocol-logged-in\");\n return identity;\n }\n catch (error) {\n if (this._switchInProgress) {\n this.logger.debug(\"An error while logging in after a transport swap, preparing a default swap.\");\n this.prepareDefaultSwap();\n }\n throw new Error(error);\n }\n }\n async logout() {\n await this.logoutCore();\n await this.transport.close();\n }\n loggedIn(callback) {\n if (this._isLoggedIn) {\n callback();\n }\n return this.registry.add(\"onLoggedIn\", callback);\n }\n domain(domain, successMessages, errorMessages) {\n let session = this.sessions.find((s) => s.domain === domain);\n if (!session) {\n session = domainSession(domain, this, this.logger.subLogger(`domain=${domain}`), successMessages, errorMessages);\n this.sessions.push(session);\n }\n return session;\n }\n authToken() {\n const createTokenReq = {\n domain: \"global\",\n type: \"create-token\"\n };\n if (!this.globalDomain) {\n return Promise.reject(new Error(\"no global domain session\"));\n }\n return this.globalDomain.send(createTokenReq)\n .then((res) => {\n return res.token;\n });\n }\n reconnect() {\n return this.transport.reconnect();\n }\n setLoggedIn(value) {\n this._isLoggedIn = value;\n if (this._isLoggedIn) {\n this.initialLogin = false;\n this.registry.execute(\"onLoggedIn\");\n }\n }\n distributeMessage(message, type) {\n const handlers = this.messageHandlers[type.toLowerCase()];\n if (handlers !== undefined) {\n Object.keys(handlers).forEach((handlerId) => {\n const handler = handlers[handlerId];\n if (handler !== undefined) {\n try {\n handler(message);\n }\n catch (error) {\n try {\n this.logger.error(`Message handler failed with ${error.stack}`, error);\n }\n catch (loggerError) {\n console.log(\"Message handler failed\", error);\n }\n }\n }\n });\n }\n }\n handleConnectionChanged(connected) {\n if (this._connected === connected) {\n this.logger.trace(\"connection state unchanged, skipping\");\n return;\n }\n this.logger.info(`connection state changed to ${connected ? \"connected\" : \"disconnected\"}`);\n this._connected = connected;\n if (connected) {\n if (this.settings?.replaySpecs?.length) {\n this.replayer = new MessageReplayerImpl(this.settings.replaySpecs);\n this.replayer.init(this);\n }\n this.registry.execute(\"connected\");\n }\n else {\n this.setLoggedIn(false);\n if (this.shouldTryLogin) {\n this.attemptLoginWithRetry();\n }\n this.registry.execute(\"disconnected\");\n }\n }\n async attemptLoginWithRetry() {\n if (!this.loginConfig) {\n throw new Error(\"no login info\");\n }\n if (this.loginRetryInProgress) {\n this.logger.debug(\"login attempt already in progress, ignoring request...\");\n return;\n }\n if (this._isLoggedIn) {\n this.logger.debug(\"already logged in, ignoring request...\");\n return;\n }\n if (this.initialLogin) {\n this.logger.debug(`initial login attempt failed, ${this.initialLoginAttempts} attempts remaining...`);\n if (this.initialLoginAttempts <= 0) {\n this.logger.info(\"maximum initial login attempts reached, will not try to login again\");\n return;\n }\n this.initialLoginAttempts--;\n }\n try {\n this.logger.debug(`will try a new login... ${this.loginRetryInProgress}`);\n this.loginRetryInProgress = true;\n await this.login(this.loginConfig, true);\n }\n catch (e) {\n this.logger.error(`error trying to login: ${e?.message}`, e);\n setTimeout(this.attemptLoginWithRetry.bind(this), this.settings.reconnectInterval ?? 1000);\n }\n finally {\n this.loginRetryInProgress = false;\n }\n }\n handleTransportMessage(msg) {\n let msgObj;\n if (typeof msg === \"string\") {\n msgObj = this.processStringMessage(msg);\n }\n else {\n msgObj = this.processObjectMessage(msg);\n }\n if (this.isTrace) {\n this.logger.trace(`<< ${JSON.stringify(msgObj)}`);\n }\n this.distributeMessage(msgObj.msg, msgObj.msgType);\n }\n verifyConnection() {\n return PromisePlus((resolve) => {\n let unsub;\n const ready = waitForInvocations(2, () => {\n if (unsub) {\n unsub();\n }\n resolve();\n });\n unsub = this.onLibReAnnounced((lib) => {\n if (lib.name === \"interop\") {\n return ready();\n }\n if (lib.name === \"contexts\") {\n return ready();\n }\n });\n }, 10000, \"Transport switch timed out waiting for all libraries to be re-announced\");\n }\n getNewSecondaryTransport(settings) {\n if (!settings.transportConfig?.url) {\n throw new Error(\"Missing secondary transport URL.\");\n }\n return new WS(Object.assign({}, this.settings, { ws: settings.transportConfig.url, reconnectAttempts: 1 }), this.logger.subLogger(\"ws-secondary\"));\n }\n getNewSecondaryAuth(settings) {\n if (!settings.transportConfig?.auth) {\n throw new Error(\"Missing secondary transport auth information.\");\n }\n return settings.transportConfig.auth;\n }\n transportSwap() {\n this._swapTransport = false;\n if (!this._targetTransport || !this._targetAuth) {\n this.logger.warn(`Error while switching transports - either the target transport or auth is not defined: transport defined -> ${!!this._defaultTransport}, auth defined -> ${!!this._targetAuth}. Staying on the current one.`);\n return;\n }\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport = this._targetTransport;\n const unsubConnectionChanged = this.transport.onConnectedChanged(this.handleConnectionChanged.bind(this));\n const unsubOnMessage = this.transport.onMessage(this.handleTransportMessage.bind(this));\n this._transportSubscriptions.push(unsubConnectionChanged);\n this._transportSubscriptions.push(unsubOnMessage);\n return this._targetAuth;\n }\n prepareDefaultSwap() {\n this._transportSubscriptions.forEach((unsub) => unsub());\n this._transportSubscriptions = [];\n this.transport.close().catch((error) => this.logger.warn(`Error closing the ${this.transport.name()} transport after a failed connection attempt: ${JSON.stringify(error)}`));\n this._targetTransport = this._defaultTransport;\n this._targetAuth = this._defaultAuth;\n this._swapTransport = true;\n }\n processStringMessage(message) {\n const msg = JSON.parse(message, (key, value) => {\n if (typeof value !== \"string\") {\n return value;\n }\n if (value.length < this.dateMinLen) {\n return value;\n }\n if (!value.startsWith(this.datePrefixFirstChar)) {\n return value;\n }\n if (value.substring(0, this.datePrefixLen) !== this.datePrefix) {\n return value;\n }\n try {\n const milliseconds = parseInt(value.substring(this.datePrefixLen, value.length), 10);\n if (isNaN(milliseconds)) {\n return value;\n }\n return new Date(milliseconds);\n }\n catch (ex) {\n return value;\n }\n });\n return {\n msg,\n msgType: msg.type,\n };\n }\n createStringMessage(message) {\n const oldToJson = Date.prototype.toJSON;\n try {\n const datePrefix = this.datePrefix;\n Date.prototype.toJSON = function () {\n return datePrefix + this.getTime();\n };\n const result = JSON.stringify(message);\n return result;\n }\n finally {\n Date.prototype.toJSON = oldToJson;\n }\n }\n processObjectMessage(message) {\n if (!message.type) {\n throw new Error(\"Object should have type property\");\n }\n return {\n msg: message,\n msgType: message.type,\n };\n }\n createObjectMessage(message) {\n return message;\n }\n async loginCore(config, reconnect) {\n this.loginConfig = config;\n if (!this.loginConfig) {\n this.loginConfig = { username: \"\", password: \"\" };\n }\n this.shouldTryLogin = true;\n const authentication = await this.setupAuthConfig(config, reconnect);\n const helloMsg = {\n type: \"hello\",\n identity: this.settings.identity,\n authentication\n };\n if (config.sessionId) {\n helloMsg.request_id = config.sessionId;\n }\n if (!this.globalDomain) {\n this.globalDomain = domainSession(\"global\", this, this.logger.subLogger(\"global-domain\"), [\n \"welcome\",\n \"token\",\n \"authentication-request\"\n ]);\n }\n const sendOptions = { skipPeerId: true };\n if (this.initialLogin) {\n sendOptions.retryInterval = this.settings.reconnectInterval;\n sendOptions.maxRetries = this.settings.reconnectAttempts;\n }\n try {\n const welcomeMsg = await this.tryAuthenticate(this.globalDomain, helloMsg, sendOptions, config);\n this.logger.info(\"login successful with peerId \" + welcomeMsg.peer_id);\n this.peerId = welcomeMsg.peer_id;\n this.resolvedIdentity = welcomeMsg.resolved_identity;\n this.availableDomains = welcomeMsg.available_domains;\n if (welcomeMsg.options) {\n this.token = welcomeMsg.options.access_token;\n this.info = welcomeMsg.options.info;\n }\n this.setLoggedIn(true);\n return welcomeMsg.resolved_identity;\n }\n catch (err) {\n this.logger.error(\"error sending hello message - \" + (err.message || err.msg || err.reason || err), err);\n throw err;\n }\n finally {\n if (config?.flowCallback && config.sessionId) {\n config.flowCallback(config.sessionId, null);\n }\n }\n }\n async tryAuthenticate(globalDomain, helloMsg, sendOptions, config) {\n let welcomeMsg;\n while (true) {\n const msg = await globalDomain.send(helloMsg, undefined, sendOptions);\n if (msg.type === \"authentication-request\") {\n const token = Buffer.from(msg.authentication.token, \"base64\");\n if (config.flowCallback && config.sessionId) {\n helloMsg.authentication.token =\n (await config.flowCallback(config.sessionId, token))\n .data\n .toString(\"base64\");\n }\n helloMsg.request_id = config.sessionId;\n }\n else if (msg.type === \"welcome\") {\n welcomeMsg = msg;\n break;\n }\n else if (msg.type === \"error\") {\n throw new Error(\"Authentication failed: \" + msg.reason);\n }\n else {\n throw new Error(\"Unexpected message type during authentication: \" + msg.type);\n }\n }\n return welcomeMsg;\n }\n async setupAuthConfig(config, reconnect) {\n const authentication = {};\n this.gatewayToken = config.gatewayToken;\n if (config.gatewayToken) {\n if (reconnect) {\n try {\n config.gatewayToken = await this.getNewGWToken();\n }\n catch (e) {\n this.logger.warn(`failed to get GW token when reconnecting ${e?.message || e}`);\n }\n }\n authentication.method = \"gateway-token\";\n authentication.token = config.gatewayToken;\n this.gatewayToken = config.gatewayToken;\n }\n else if (config.flowName === \"sspi\") {\n authentication.provider = \"win\";\n authentication.method = \"access-token\";\n if (config.flowCallback && config.sessionId) {\n authentication.token =\n (await config.flowCallback(config.sessionId, null))\n .data\n .toString(\"base64\");\n }\n else {\n throw new Error(\"Invalid SSPI config\");\n }\n }\n else if (config.token) {\n authentication.method = \"access-token\";\n authentication.token = config.token;\n }\n else if (config.username) {\n authentication.method = \"secret\";\n authentication.login = config.username;\n authentication.secret = config.password;\n }\n else if (config.provider) {\n authentication.provider = config.provider;\n authentication.providerContext = config.providerContext;\n }\n else {\n throw new Error(\"invalid auth message\" + JSON.stringify(config));\n }\n return authentication;\n }\n async logoutCore() {\n this.logger.debug(\"logging out...\");\n this.shouldTryLogin = false;\n if (this.pingTimer) {\n clearTimeout(this.pingTimer);\n }\n const promises = this.sessions.map((session) => {\n return session.leave();\n });\n await Promise.all(promises);\n }\n getNewGWToken() {\n if (typeof window !== \"undefined\") {\n const glue42gd = window.glue42gd;\n if (glue42gd) {\n return glue42gd.getGWToken();\n }\n }\n return Promise.reject(new Error(\"not running in GD\"));\n }\n ping() {\n if (!this.shouldTryLogin) {\n return;\n }\n if (this._isLoggedIn) {\n this.send({ type: \"ping\" });\n }\n this.pingTimer = setTimeout(() => {\n this.ping();\n }, 30 * 1000);\n }\n}\n\nconst order = [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"off\"];\nclass Logger {\n name;\n parent;\n static Interop;\n static InteropMethodName = \"T42.AppLogger.Log\";\n static Instance;\n path;\n subLoggers = [];\n _consoleLevel;\n _publishLevel;\n loggerFullName;\n includeTimeAndLevel;\n logFn = console;\n customLogFn = false;\n constructor(name, parent, logFn) {\n this.name = name;\n this.parent = parent;\n this.name = name;\n if (parent) {\n this.path = `${parent.path}.${name}`;\n }\n else {\n this.path = name;\n }\n this.loggerFullName = `[${this.path}]`;\n this.includeTimeAndLevel = !logFn;\n if (logFn) {\n this.logFn = logFn;\n this.customLogFn = true;\n }\n }\n subLogger(name) {\n const existingSub = this.subLoggers.filter((subLogger) => {\n return subLogger.name === name;\n })[0];\n if (existingSub !== undefined) {\n return existingSub;\n }\n Object.keys(this).forEach((key) => {\n if (key === name) {\n throw new Error(\"This sub logger name is not allowed.\");\n }\n });\n const sub = new Logger(name, this, this.customLogFn ? this.logFn : undefined);\n this.subLoggers.push(sub);\n return sub;\n }\n publishLevel(level) {\n if (level) {\n this._publishLevel = level;\n }\n return this._publishLevel || this.parent?.publishLevel();\n }\n consoleLevel(level) {\n if (level) {\n this._consoleLevel = level;\n }\n return this._consoleLevel || this.parent?.consoleLevel();\n }\n log(message, level, error) {\n this.publishMessage(level || \"info\", message, error);\n }\n trace(message) {\n this.log(message, \"trace\");\n }\n debug(message) {\n this.log(message, \"debug\");\n }\n info(message) {\n this.log(message, \"info\");\n }\n warn(message) {\n this.log(message, \"warn\");\n }\n error(message, err) {\n this.log(message, \"error\", err);\n }\n canPublish(level, compareWith) {\n const levelIdx = order.indexOf(level);\n const restrictionIdx = order.indexOf(compareWith || this.consoleLevel() || \"trace\");\n return levelIdx >= restrictionIdx;\n }\n publishMessage(level, message, error) {\n const loggerName = this.loggerFullName;\n if (level === \"error\" && !error) {\n const e = new Error();\n if (e.stack) {\n message =\n message +\n \"\\n\" +\n e.stack\n .split(\"\\n\")\n .slice(4)\n .join(\"\\n\");\n }\n }\n if (this.canPublish(level, this.publishLevel())) {\n const interop = Logger.Interop;\n if (interop) {\n try {\n if (interop.methods({ name: Logger.InteropMethodName }).length > 0) {\n const args = {\n msg: message,\n logger: loggerName,\n level\n };\n if (error && error instanceof Error) {\n args.error = {\n message: error.message,\n stack: error.stack ?? \"\"\n };\n }\n interop.invoke(Logger.InteropMethodName, args)\n .catch((e) => {\n this.logFn.warn(`Unable to send log message to the platform: ${e.message}`, e);\n });\n }\n }\n catch {\n }\n }\n }\n if (this.canPublish(level)) {\n let prefix = \"\";\n if (this.includeTimeAndLevel) {\n const date = new Date();\n const time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}:${date.getMilliseconds()}`;\n prefix = `[${time}] [${level}] `;\n }\n const toPrint = `${prefix}${loggerName}: ${message}`;\n switch (level) {\n case \"trace\":\n this.logFn.debug(toPrint);\n break;\n case \"debug\":\n if (this.logFn.debug) {\n this.logFn.debug(toPrint);\n }\n else {\n this.logFn.log(toPrint);\n }\n break;\n case \"info\":\n this.logFn.info(toPrint);\n break;\n case \"warn\":\n this.logFn.warn(toPrint);\n break;\n case \"error\":\n if (error) {\n this.logFn.error(toPrint, error);\n }\n else {\n this.logFn.error(toPrint);\n }\n break;\n }\n }\n }\n}\n\nconst GW_MESSAGE_CREATE_CONTEXT = \"create-context\";\nconst GW_MESSAGE_ACTIVITY_CREATED = \"created\";\nconst GW_MESSAGE_ACTIVITY_DESTROYED = \"destroyed\";\nconst GW_MESSAGE_CONTEXT_CREATED = \"context-created\";\nconst GW_MESSAGE_CONTEXT_ADDED = \"context-added\";\nconst GW_MESSAGE_SUBSCRIBE_CONTEXT = \"subscribe-context\";\nconst GW_MESSAGE_SUBSCRIBED_CONTEXT = \"subscribed-context\";\nconst GW_MESSAGE_UNSUBSCRIBE_CONTEXT = \"unsubscribe-context\";\nconst GW_MESSAGE_DESTROY_CONTEXT = \"destroy-context\";\nconst GW_MESSAGE_CONTEXT_DESTROYED = \"context-destroyed\";\nconst GW_MESSAGE_UPDATE_CONTEXT = \"update-context\";\nconst GW_MESSAGE_CONTEXT_UPDATED = \"context-updated\";\nconst GW_MESSAGE_JOINED_ACTIVITY = \"joined\";\n\nconst ContextMessageReplaySpec = {\n get name() {\n return \"context\";\n },\n get types() {\n return [\n GW_MESSAGE_CREATE_CONTEXT,\n GW_MESSAGE_ACTIVITY_CREATED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_SUBSCRIBE_CONTEXT,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n GW_MESSAGE_DESTROY_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_UPDATE_CONTEXT,\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_JOINED_ACTIVITY\n ];\n }\n};\n\nvar version = \"6.5.3-iocd-beta\";\n\nfunction prepareConfig (configuration, ext, glue42gd) {\n let nodeStartingContext;\n if (Utils.isNode()) {\n const startingContextString = process.env._GD_STARTING_CONTEXT_;\n if (startingContextString) {\n try {\n nodeStartingContext = JSON.parse(startingContextString);\n }\n catch {\n }\n }\n }\n function getConnection() {\n const gwConfig = configuration.gateway;\n const protocolVersion = gwConfig?.protocolVersion ?? 3;\n const reconnectInterval = gwConfig?.reconnectInterval;\n const reconnectAttempts = gwConfig?.reconnectAttempts;\n const defaultWs = \"ws://localhost:8385\";\n let ws = gwConfig?.ws;\n const sharedWorker = gwConfig?.sharedWorker;\n const inproc = gwConfig?.inproc;\n const webPlatform = gwConfig?.webPlatform ?? undefined;\n if (glue42gd) {\n ws = glue42gd.gwURL;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwURL) {\n ws = nodeStartingContext.gwURL;\n }\n if (!ws && !sharedWorker && !inproc) {\n ws = defaultWs;\n }\n let instanceId;\n let windowId;\n let pid;\n let environment;\n let region;\n const appName = getApplication();\n let uniqueAppName = appName;\n if (typeof glue42gd !== \"undefined\") {\n windowId = glue42gd.windowId;\n pid = glue42gd.pid;\n if (glue42gd.env) {\n environment = glue42gd.env.env;\n region = glue42gd.env.region;\n }\n uniqueAppName = glue42gd.application ?? \"glue-app\";\n instanceId = glue42gd.appInstanceId;\n }\n else if (Utils.isNode()) {\n pid = process.pid;\n if (nodeStartingContext) {\n environment = nodeStartingContext.env;\n region = nodeStartingContext.region;\n instanceId = nodeStartingContext.instanceId;\n }\n }\n else if (typeof window?.glue42electron !== \"undefined\") {\n windowId = window?.glue42electron.instanceId;\n pid = window?.glue42electron.pid;\n environment = window?.glue42electron.env;\n region = window?.glue42electron.region;\n uniqueAppName = window?.glue42electron.application ?? \"glue-app\";\n instanceId = window?.glue42electron.instanceId;\n }\n else ;\n const replaySpecs = configuration.gateway?.replaySpecs ?? [];\n replaySpecs.push(ContextMessageReplaySpec);\n let identity = {\n application: uniqueAppName,\n applicationName: appName,\n windowId,\n instance: instanceId,\n process: pid,\n region,\n environment,\n api: ext.version || version\n };\n if (configuration.identity) {\n identity = Object.assign(identity, configuration.identity);\n }\n return {\n identity,\n reconnectInterval,\n ws,\n sharedWorker,\n webPlatform,\n inproc,\n protocolVersion,\n reconnectAttempts,\n replaySpecs,\n };\n }\n function getContexts() {\n if (typeof configuration.contexts === \"undefined\") {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"boolean\" && configuration.contexts) {\n return { reAnnounceKnownContexts: true };\n }\n if (typeof configuration.contexts === \"object\") {\n return Object.assign({}, { reAnnounceKnownContexts: true }, configuration.contexts);\n }\n return false;\n }\n function getApplication() {\n if (configuration.application) {\n return configuration.application;\n }\n if (glue42gd) {\n return glue42gd.applicationName;\n }\n if (typeof window !== \"undefined\" && typeof window.glue42electron !== \"undefined\") {\n return window.glue42electron.application;\n }\n const uid = nanoid(10);\n if (Utils.isNode()) {\n if (nodeStartingContext) {\n return nodeStartingContext.applicationConfig.name;\n }\n return \"NodeJS\" + uid;\n }\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n return document.title + ` (${uid})`;\n }\n return uid;\n }\n function getAuth() {\n if (typeof configuration.auth === \"string\") {\n return {\n token: configuration.auth\n };\n }\n if (configuration.auth) {\n return configuration.auth;\n }\n if (Utils.isNode() && nodeStartingContext && nodeStartingContext.gwToken) {\n return {\n gatewayToken: nodeStartingContext.gwToken\n };\n }\n if (configuration.gateway?.webPlatform || configuration.gateway?.inproc || configuration.gateway?.sharedWorker) {\n return {\n username: \"glue42\", password: \"glue42\"\n };\n }\n }\n function getLogger() {\n let config = configuration.logger;\n const defaultLevel = \"warn\";\n if (!config) {\n config = defaultLevel;\n }\n let gdConsoleLevel;\n if (glue42gd) {\n gdConsoleLevel = glue42gd.consoleLogLevel;\n }\n if (typeof config === \"string\") {\n return { console: gdConsoleLevel ?? config, publish: defaultLevel };\n }\n return {\n console: gdConsoleLevel ?? config.console ?? defaultLevel,\n publish: config.publish ?? defaultLevel\n };\n }\n const connection = getConnection();\n let application = getApplication();\n if (typeof window !== \"undefined\") {\n const windowAsAny = window;\n const containerApplication = windowAsAny.htmlContainer ?\n `${windowAsAny.htmlContainer.containerName}.${windowAsAny.htmlContainer.application}` :\n windowAsAny?.glue42gd?.application;\n if (containerApplication) {\n application = containerApplication;\n }\n }\n return {\n bus: configuration.bus ?? false,\n application,\n auth: getAuth(),\n logger: getLogger(),\n connection,\n metrics: configuration.metrics ?? true,\n contexts: getContexts(),\n version: ext.version || version,\n libs: ext.libs ?? [],\n customLogger: configuration.customLogger\n };\n}\n\nclass GW3ContextData {\n name;\n contextId;\n context;\n isAnnounced;\n joinedActivity;\n updateCallbacks = {};\n activityId;\n sentExplicitSubscription;\n hasReceivedSnapshot;\n constructor(contextId, name, isAnnounced, activityId) {\n this.contextId = contextId;\n this.name = name;\n this.isAnnounced = isAnnounced;\n this.activityId = activityId;\n this.context = {};\n }\n hasCallbacks() {\n return Object.keys(this.updateCallbacks).length > 0;\n }\n getState() {\n if (this.isAnnounced && this.hasCallbacks()) {\n return 3;\n }\n if (this.isAnnounced) {\n return 2;\n }\n if (this.hasCallbacks()) {\n return 1;\n }\n return 0;\n }\n}\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\nlodash_clonedeep.exports;\n\n(function (module, exports) {\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t promiseTag = '[object Promise]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t symbolTag = '[object Symbol]',\n\t weakMapTag = '[object WeakMap]';\n\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n\t/** Used to match `RegExp` flags from their coerced string values. */\n\tvar reFlags = /\\w*$/;\n\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n\t/** Used to identify `toStringTag` values supported by `_.clone`. */\n\tvar cloneableTags = {};\n\tcloneableTags[argsTag] = cloneableTags[arrayTag] =\n\tcloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n\tcloneableTags[boolTag] = cloneableTags[dateTag] =\n\tcloneableTags[float32Tag] = cloneableTags[float64Tag] =\n\tcloneableTags[int8Tag] = cloneableTags[int16Tag] =\n\tcloneableTags[int32Tag] = cloneableTags[mapTag] =\n\tcloneableTags[numberTag] = cloneableTags[objectTag] =\n\tcloneableTags[regexpTag] = cloneableTags[setTag] =\n\tcloneableTags[stringTag] = cloneableTags[symbolTag] =\n\tcloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n\tcloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n\tcloneableTags[errorTag] = cloneableTags[funcTag] =\n\tcloneableTags[weakMapTag] = false;\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\n\t/** Detect free variable `exports`. */\n\tvar freeExports = exports && !exports.nodeType && exports;\n\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n\t/**\n\t * Adds the key-value `pair` to `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to modify.\n\t * @param {Array} pair The key-value pair to add.\n\t * @returns {Object} Returns `map`.\n\t */\n\tfunction addMapEntry(map, pair) {\n\t // Don't return `map.set` because it's not chainable in IE 11.\n\t map.set(pair[0], pair[1]);\n\t return map;\n\t}\n\n\t/**\n\t * Adds `value` to `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to modify.\n\t * @param {*} value The value to add.\n\t * @returns {Object} Returns `set`.\n\t */\n\tfunction addSetEntry(set, value) {\n\t // Don't return `set.add` because it's not chainable in IE 11.\n\t set.add(value);\n\t return set;\n\t}\n\n\t/**\n\t * A specialized version of `_.forEach` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayEach(array, iteratee) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\n\t while (++index < length) {\n\t if (iteratee(array[index], index, array) === false) {\n\t break;\n\t }\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\n\t/**\n\t * Checks if `value` is a host object in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n\t */\n\tfunction isHostObject(value) {\n\t // Many host objects are `Object` objects that can coerce to strings\n\t // despite having improperly defined `toString` methods.\n\t var result = false;\n\t if (value != null && typeof value.toString != 'function') {\n\t try {\n\t result = !!(value + '');\n\t } catch (e) {}\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Converts `map` to its key-value pairs.\n\t *\n\t * @private\n\t * @param {Object} map The map to convert.\n\t * @returns {Array} Returns the key-value pairs.\n\t */\n\tfunction mapToArray(map) {\n\t var index = -1,\n\t result = Array(map.size);\n\n\t map.forEach(function(value, key) {\n\t result[++index] = [key, value];\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype,\n\t funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined,\n\t Symbol = root.Symbol,\n\t Uint8Array = root.Uint8Array,\n\t getPrototype = overArg(Object.getPrototypeOf, Object),\n\t objectCreate = Object.create,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t splice = arrayProto.splice;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeGetSymbols = Object.getOwnPropertySymbols,\n\t nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n\t nativeKeys = overArg(Object.keys, Object);\n\n\t/* Built-in method references that are verified to be native. */\n\tvar DataView = getNative(root, 'DataView'),\n\t Map = getNative(root, 'Map'),\n\t Promise = getNative(root, 'Promise'),\n\t Set = getNative(root, 'Set'),\n\t WeakMap = getNative(root, 'WeakMap'),\n\t nativeCreate = getNative(Object, 'create');\n\n\t/** Used to detect maps, sets, and weakmaps. */\n\tvar dataViewCtorString = toSource(DataView),\n\t mapCtorString = toSource(Map),\n\t promiseCtorString = toSource(Promise),\n\t setCtorString = toSource(Set),\n\t weakMapCtorString = toSource(WeakMap);\n\n\t/** Used to convert symbols to primitives and strings. */\n\tvar symbolProto = Symbol ? Symbol.prototype : undefined,\n\t symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t}\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t return this.has(key) && delete this.__data__[key];\n\t}\n\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n\t}\n\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t}\n\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t return true;\n\t}\n\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\n\t if (index < 0) {\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries ? entries.length : 0;\n\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t return getMapData(this, key)['delete'](key);\n\t}\n\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t getMapData(this, key).set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\n\t/**\n\t * Creates a stack cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Stack(entries) {\n\t this.__data__ = new ListCache(entries);\n\t}\n\n\t/**\n\t * Removes all key-value entries from the stack.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Stack\n\t */\n\tfunction stackClear() {\n\t this.__data__ = new ListCache;\n\t}\n\n\t/**\n\t * Removes `key` and its value from the stack.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction stackDelete(key) {\n\t return this.__data__['delete'](key);\n\t}\n\n\t/**\n\t * Gets the stack value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction stackGet(key) {\n\t return this.__data__.get(key);\n\t}\n\n\t/**\n\t * Checks if a stack value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Stack\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction stackHas(key) {\n\t return this.__data__.has(key);\n\t}\n\n\t/**\n\t * Sets the stack `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Stack\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the stack cache instance.\n\t */\n\tfunction stackSet(key, value) {\n\t var cache = this.__data__;\n\t if (cache instanceof ListCache) {\n\t var pairs = cache.__data__;\n\t if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n\t pairs.push([key, value]);\n\t return this;\n\t }\n\t cache = this.__data__ = new MapCache(pairs);\n\t }\n\t cache.set(key, value);\n\t return this;\n\t}\n\n\t// Add methods to `Stack`.\n\tStack.prototype.clear = stackClear;\n\tStack.prototype['delete'] = stackDelete;\n\tStack.prototype.get = stackGet;\n\tStack.prototype.has = stackHas;\n\tStack.prototype.set = stackSet;\n\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\n\t var length = result.length,\n\t skipIndexes = !!length;\n\n\t for (var key in value) {\n\t if ((hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\n\t/**\n\t * The base implementation of `_.assign` without support for multiple sources\n\t * or `customizer` functions.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction baseAssign(object, source) {\n\t return object && copyObject(source, keys(source), object);\n\t}\n\n\t/**\n\t * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n\t * traversed objects.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @param {boolean} [isFull] Specify a clone including symbols.\n\t * @param {Function} [customizer] The function to customize cloning.\n\t * @param {string} [key] The key of `value`.\n\t * @param {Object} [object] The parent object of `value`.\n\t * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\tfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n\t var result;\n\t if (customizer) {\n\t result = object ? customizer(value, key, object, stack) : customizer(value);\n\t }\n\t if (result !== undefined) {\n\t return result;\n\t }\n\t if (!isObject(value)) {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isArr) {\n\t result = initCloneArray(value);\n\t if (!isDeep) {\n\t return copyArray(value, result);\n\t }\n\t } else {\n\t var tag = getTag(value),\n\t isFunc = tag == funcTag || tag == genTag;\n\n\t if (isBuffer(value)) {\n\t return cloneBuffer(value, isDeep);\n\t }\n\t if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n\t if (isHostObject(value)) {\n\t return object ? value : {};\n\t }\n\t result = initCloneObject(isFunc ? {} : value);\n\t if (!isDeep) {\n\t return copySymbols(value, baseAssign(result, value));\n\t }\n\t } else {\n\t if (!cloneableTags[tag]) {\n\t return object ? value : {};\n\t }\n\t result = initCloneByTag(value, tag, baseClone, isDeep);\n\t }\n\t }\n\t // Check for circular references and return its corresponding clone.\n\t stack || (stack = new Stack);\n\t var stacked = stack.get(value);\n\t if (stacked) {\n\t return stacked;\n\t }\n\t stack.set(value, result);\n\n\t if (!isArr) {\n\t var props = isFull ? getAllKeys(value) : keys(value);\n\t }\n\t arrayEach(props || value, function(subValue, key) {\n\t if (props) {\n\t key = subValue;\n\t subValue = value[key];\n\t }\n\t // Recursively populate clone (susceptible to call stack limits).\n\t assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n\t });\n\t return result;\n\t}\n\n\t/**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\tfunction baseCreate(proto) {\n\t return isObject(proto) ? objectCreate(proto) : {};\n\t}\n\n\t/**\n\t * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n\t * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n\t * symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {Function} keysFunc The function to get the keys of `object`.\n\t * @param {Function} symbolsFunc The function to get the symbols of `object`.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n\t var result = keysFunc(object);\n\t return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n\t}\n\n\t/**\n\t * The base implementation of `getTag`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t return objectToString.call(value);\n\t}\n\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `buffer`.\n\t *\n\t * @private\n\t * @param {Buffer} buffer The buffer to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Buffer} Returns the cloned buffer.\n\t */\n\tfunction cloneBuffer(buffer, isDeep) {\n\t if (isDeep) {\n\t return buffer.slice();\n\t }\n\t var result = new buffer.constructor(buffer.length);\n\t buffer.copy(result);\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `arrayBuffer`.\n\t *\n\t * @private\n\t * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n\t * @returns {ArrayBuffer} Returns the cloned array buffer.\n\t */\n\tfunction cloneArrayBuffer(arrayBuffer) {\n\t var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n\t new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `dataView`.\n\t *\n\t * @private\n\t * @param {Object} dataView The data view to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned data view.\n\t */\n\tfunction cloneDataView(dataView, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n\t return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n\t}\n\n\t/**\n\t * Creates a clone of `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned map.\n\t */\n\tfunction cloneMap(map, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n\t return arrayReduce(array, addMapEntry, new map.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of `regexp`.\n\t *\n\t * @private\n\t * @param {Object} regexp The regexp to clone.\n\t * @returns {Object} Returns the cloned regexp.\n\t */\n\tfunction cloneRegExp(regexp) {\n\t var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n\t result.lastIndex = regexp.lastIndex;\n\t return result;\n\t}\n\n\t/**\n\t * Creates a clone of `set`.\n\t *\n\t * @private\n\t * @param {Object} set The set to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned set.\n\t */\n\tfunction cloneSet(set, isDeep, cloneFunc) {\n\t var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n\t return arrayReduce(array, addSetEntry, new set.constructor);\n\t}\n\n\t/**\n\t * Creates a clone of the `symbol` object.\n\t *\n\t * @private\n\t * @param {Object} symbol The symbol object to clone.\n\t * @returns {Object} Returns the cloned symbol object.\n\t */\n\tfunction cloneSymbol(symbol) {\n\t return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n\t}\n\n\t/**\n\t * Creates a clone of `typedArray`.\n\t *\n\t * @private\n\t * @param {Object} typedArray The typed array to clone.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the cloned typed array.\n\t */\n\tfunction cloneTypedArray(typedArray, isDeep) {\n\t var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n\t return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n\t}\n\n\t/**\n\t * Copies the values of `source` to `array`.\n\t *\n\t * @private\n\t * @param {Array} source The array to copy values from.\n\t * @param {Array} [array=[]] The array to copy values to.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction copyArray(source, array) {\n\t var index = -1,\n\t length = source.length;\n\n\t array || (array = Array(length));\n\t while (++index < length) {\n\t array[index] = source[index];\n\t }\n\t return array;\n\t}\n\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\n\t var index = -1,\n\t length = props.length;\n\n\t while (++index < length) {\n\t var key = props[index];\n\n\t var newValue = undefined;\n\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\n\t/**\n\t * Copies own symbol properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy symbols from.\n\t * @param {Object} [object={}] The object to copy symbols to.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copySymbols(source, object) {\n\t return copyObject(source, getSymbols(source), object);\n\t}\n\n\t/**\n\t * Creates an array of own enumerable property names and symbols of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names and symbols.\n\t */\n\tfunction getAllKeys(object) {\n\t return baseGetAllKeys(object, keys, getSymbols);\n\t}\n\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable symbol properties of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of symbols.\n\t */\n\tvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n\t/**\n\t * Gets the `toStringTag` of `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tvar getTag = baseGetTag;\n\n\t// Fallback for data views, maps, sets, and weak maps in IE 11,\n\t// for data views in Edge < 14, and promises in Node.js.\n\tif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n\t (Map && getTag(new Map) != mapTag) ||\n\t (Promise && getTag(Promise.resolve()) != promiseTag) ||\n\t (Set && getTag(new Set) != setTag) ||\n\t (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n\t getTag = function(value) {\n\t var result = objectToString.call(value),\n\t Ctor = result == objectTag ? value.constructor : undefined,\n\t ctorString = Ctor ? toSource(Ctor) : undefined;\n\n\t if (ctorString) {\n\t switch (ctorString) {\n\t case dataViewCtorString: return dataViewTag;\n\t case mapCtorString: return mapTag;\n\t case promiseCtorString: return promiseTag;\n\t case setCtorString: return setTag;\n\t case weakMapCtorString: return weakMapTag;\n\t }\n\t }\n\t return result;\n\t };\n\t}\n\n\t/**\n\t * Initializes an array clone.\n\t *\n\t * @private\n\t * @param {Array} array The array to clone.\n\t * @returns {Array} Returns the initialized clone.\n\t */\n\tfunction initCloneArray(array) {\n\t var length = array.length,\n\t result = array.constructor(length);\n\n\t // Add properties assigned by `RegExp#exec`.\n\t if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n\t result.index = array.index;\n\t result.input = array.input;\n\t }\n\t return result;\n\t}\n\n\t/**\n\t * Initializes an object clone.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneObject(object) {\n\t return (typeof object.constructor == 'function' && !isPrototype(object))\n\t ? baseCreate(getPrototype(object))\n\t : {};\n\t}\n\n\t/**\n\t * Initializes an object clone based on its `toStringTag`.\n\t *\n\t * **Note:** This function only supports cloning values with tags of\n\t * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n\t *\n\t * @private\n\t * @param {Object} object The object to clone.\n\t * @param {string} tag The `toStringTag` of the object to clone.\n\t * @param {Function} cloneFunc The function to clone values.\n\t * @param {boolean} [isDeep] Specify a deep clone.\n\t * @returns {Object} Returns the initialized clone.\n\t */\n\tfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n\t var Ctor = object.constructor;\n\t switch (tag) {\n\t case arrayBufferTag:\n\t return cloneArrayBuffer(object);\n\n\t case boolTag:\n\t case dateTag:\n\t return new Ctor(+object);\n\n\t case dataViewTag:\n\t return cloneDataView(object, isDeep);\n\n\t case float32Tag: case float64Tag:\n\t case int8Tag: case int16Tag: case int32Tag:\n\t case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n\t return cloneTypedArray(object, isDeep);\n\n\t case mapTag:\n\t return cloneMap(object, isDeep, cloneFunc);\n\n\t case numberTag:\n\t case stringTag:\n\t return new Ctor(object);\n\n\t case regexpTag:\n\t return cloneRegExp(object);\n\n\t case setTag:\n\t return cloneSet(object, isDeep, cloneFunc);\n\n\t case symbolTag:\n\t return cloneSymbol(object);\n\t }\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n\t return value === proto;\n\t}\n\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to process.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\n\t/**\n\t * This method is like `_.clone` except that it recursively clones `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 1.0.0\n\t * @category Lang\n\t * @param {*} value The value to recursively clone.\n\t * @returns {*} Returns the deep cloned value.\n\t * @see _.clone\n\t * @example\n\t *\n\t * var objects = [{ 'a': 1 }, { 'b': 2 }];\n\t *\n\t * var deep = _.cloneDeep(objects);\n\t * console.log(deep[0] === objects[0]);\n\t * // => false\n\t */\n\tfunction cloneDeep(value) {\n\t return baseClone(value, true, true);\n\t}\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\n\t/**\n\t * This method returns a new empty array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {Array} Returns the new empty array.\n\t * @example\n\t *\n\t * var arrays = _.times(2, _.stubArray);\n\t *\n\t * console.log(arrays);\n\t * // => [[], []]\n\t *\n\t * console.log(arrays[0] === arrays[1]);\n\t * // => false\n\t */\n\tfunction stubArray() {\n\t return [];\n\t}\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\n\tmodule.exports = cloneDeep; \n} (lodash_clonedeep, lodash_clonedeep.exports));\n\nvar lodash_clonedeepExports = lodash_clonedeep.exports;\nvar cloneDeep = /*@__PURE__*/getDefaultExportFromCjs(lodash_clonedeepExports);\n\nfunction applyContextDelta(context, delta, logger) {\n try {\n if (logger?.canPublish(\"trace\")) {\n logger?.trace(`applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`);\n }\n if (!delta) {\n return context;\n }\n if (delta.reset) {\n context = { ...delta.reset };\n return context;\n }\n context = deepClone(context, undefined);\n if (delta.commands) {\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n deletePath(context, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(context, command.value, command.path);\n }\n }\n return context;\n }\n const added = delta.added;\n const updated = delta.updated;\n const removed = delta.removed;\n if (added) {\n Object.keys(added).forEach((key) => {\n context[key] = added[key];\n });\n }\n if (updated) {\n Object.keys(updated).forEach((key) => {\n mergeObjectsProperties(key, context, updated);\n });\n }\n if (removed) {\n removed.forEach((key) => {\n delete context[key];\n });\n }\n return context;\n }\n catch (e) {\n logger?.error(`error applying context delta ${JSON.stringify(delta)} on context ${JSON.stringify(context)}`, e);\n return context;\n }\n}\nfunction deepClone(obj, hash) {\n return cloneDeep(obj);\n}\nconst mergeObjectsProperties = (key, what, withWhat) => {\n const right = withWhat[key];\n if (right === undefined) {\n return what;\n }\n const left = what[key];\n if (!left || !right) {\n what[key] = right;\n return what;\n }\n if (typeof left === \"string\" ||\n typeof left === \"number\" ||\n typeof left === \"boolean\" ||\n typeof right === \"string\" ||\n typeof right === \"number\" ||\n typeof right === \"boolean\" ||\n Array.isArray(left) ||\n Array.isArray(right)) {\n what[key] = right;\n return what;\n }\n what[key] = Object.assign({}, left, right);\n return what;\n};\nfunction deepEqual(x, y) {\n if (x === y) {\n return true;\n }\n if (!(x instanceof Object) || !(y instanceof Object)) {\n return false;\n }\n if (x.constructor !== y.constructor) {\n return false;\n }\n for (const p in x) {\n if (!x.hasOwnProperty(p)) {\n continue;\n }\n if (!y.hasOwnProperty(p)) {\n return false;\n }\n if (x[p] === y[p]) {\n continue;\n }\n if (typeof (x[p]) !== \"object\") {\n return false;\n }\n if (!deepEqual(x[p], y[p])) {\n return false;\n }\n }\n for (const p in y) {\n if (y.hasOwnProperty(p) && !x.hasOwnProperty(p)) {\n return false;\n }\n }\n return true;\n}\nfunction setValueToPath(obj, value, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n obj[pathArr[i]] = {};\n }\n if (typeof obj[pathArr[i]] !== \"object\") {\n obj[pathArr[i]] = {};\n }\n obj = obj[pathArr[i]];\n }\n obj[pathArr[i]] = value;\n}\nfunction isSubset(superObj, subObj) {\n return Object.keys(subObj).every((ele) => {\n if (typeof subObj[ele] === \"object\") {\n return isSubset(superObj?.[ele] || {}, subObj[ele] || {});\n }\n return subObj[ele] === superObj?.[ele];\n });\n}\nfunction deletePath(obj, path) {\n const pathArr = path.split(\".\");\n let i;\n for (i = 0; i < pathArr.length - 1; i++) {\n if (!obj[pathArr[i]]) {\n return;\n }\n obj = obj[pathArr[i]];\n }\n delete obj[pathArr[i]];\n}\n\nclass GW3Bridge {\n _logger;\n _connection;\n _trackAllContexts;\n _reAnnounceKnownContexts;\n _gw3Session;\n _contextNameToData = {};\n _gw3Subscriptions = [];\n _nextCallbackSubscriptionNumber = 0;\n _creationPromises = {};\n _contextNameToId = {};\n _contextIdToName = {};\n _protocolVersion = undefined;\n _contextsTempCache = {};\n _contextsSubscriptionsCache = [];\n _systemContextsSubKey;\n get protocolVersion() {\n if (!this._protocolVersion) {\n const contextsDomainInfo = this._connection.availableDomains.find((d) => d.uri === \"context\");\n this._protocolVersion = contextsDomainInfo?.version ?? 1;\n }\n return this._protocolVersion;\n }\n get setPathSupported() {\n return this.protocolVersion >= 2;\n }\n constructor(config) {\n this._connection = config.connection;\n this._logger = config.logger;\n this._trackAllContexts = config.trackAllContexts;\n this._reAnnounceKnownContexts = config.reAnnounceKnownContexts;\n this._gw3Session = this._connection.domain(\"global\", [\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_CONTEXT_UPDATED,\n ]);\n this._gw3Session.disconnected(this.resetState.bind(this));\n this._gw3Session.onJoined((wasReconnect) => {\n if (!wasReconnect) {\n return;\n }\n if (!this._reAnnounceKnownContexts) {\n return this._connection.setLibReAnnounced({ name: \"contexts\" });\n }\n this.reInitiateState()\n .then(() => this._connection.setLibReAnnounced({ name: \"contexts\" }))\n .catch((err) => {\n this._logger.warn(`Error while re-announcing contexts: ${JSON.stringify(err)}`);\n });\n });\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n }\n dispose() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n this._gw3Subscriptions.length = 0;\n for (const contextName in this._contextNameToData) {\n if (this._contextNameToId.hasOwnProperty(contextName)) {\n delete this._contextNameToData[contextName];\n }\n }\n }\n createContext(name, data) {\n if (name in this._creationPromises) {\n return this._creationPromises[name];\n }\n this._creationPromises[name] =\n this._gw3Session\n .send({\n type: GW_MESSAGE_CREATE_CONTEXT,\n domain: \"global\",\n name,\n data,\n lifetime: \"retained\",\n })\n .then((createContextMsg) => {\n this._contextNameToId[name] = createContextMsg.context_id;\n this._contextIdToName[createContextMsg.context_id] = name;\n const contextData = this._contextNameToData[name] || new GW3ContextData(createContextMsg.context_id, name, true, undefined);\n contextData.isAnnounced = true;\n contextData.name = name;\n contextData.contextId = createContextMsg.context_id;\n contextData.context = createContextMsg.data || deepClone(data);\n contextData.hasReceivedSnapshot = true;\n this._contextNameToData[name] = contextData;\n delete this._creationPromises[name];\n return createContextMsg.context_id;\n });\n return this._creationPromises[name];\n }\n all() {\n return Object.keys(this._contextNameToData)\n .filter((name) => this._contextNameToData[name].isAnnounced);\n }\n async update(name, delta) {\n if (delta) {\n delta = deepClone(delta);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n await this.createContext(name, delta);\n return;\n }\n let currentContext = contextData.context;\n if (!contextData.hasCallbacks()) {\n currentContext = await this.get(contextData.name);\n }\n const calculatedDelta = this.setPathSupported ?\n this.calculateContextDeltaV2(currentContext, delta) :\n this.calculateContextDeltaV1(currentContext, delta);\n if (!Object.keys(calculatedDelta.added).length\n && !Object.keys(calculatedDelta.updated).length\n && !calculatedDelta.removed.length\n && !calculatedDelta.commands?.length) {\n return Promise.resolve();\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: calculatedDelta,\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, calculatedDelta, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async set(name, data) {\n if (data) {\n data = deepClone(data);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return this.createContext(name, data);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { reset: data },\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n reset: data,\n added: {},\n removed: [],\n updated: {}\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n setPath(name, path, value) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPath operation is not supported, use Glue42 3.10 or later\");\n }\n return this.setPaths(name, [{ path, value }]);\n }\n async setPaths(name, pathValues) {\n if (!this.setPathSupported) {\n return Promise.reject(\"glue.contexts.setPaths operation is not supported, use Glue42 3.10 or later\");\n }\n if (pathValues) {\n pathValues = deepClone(pathValues);\n }\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n const obj = {};\n for (const pathValue of pathValues) {\n setValueToPath(obj, pathValue.value, pathValue.path);\n }\n return this.createContext(name, obj);\n }\n const commands = [];\n for (const pathValue of pathValues) {\n if (pathValue.value === null) {\n commands.push({ type: \"remove\", path: pathValue.path });\n }\n else {\n commands.push({ type: \"set\", path: pathValue.path, value: pathValue.value });\n }\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UPDATE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n delta: { commands }\n }, {}, { skipPeerId: false })\n .then((gwResponse) => {\n this.handleUpdated(contextData, {\n added: {},\n removed: [],\n updated: {},\n commands\n }, {\n updaterId: gwResponse.peer_id\n });\n });\n }\n async get(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n return Promise.resolve({});\n }\n if (contextData && (!contextData.hasCallbacks() || !contextData.hasReceivedSnapshot)) {\n return new Promise((resolve, reject) => {\n this.subscribe(name, (data, _d, _r, un) => {\n this.unsubscribe(un);\n resolve(data);\n }).catch(reject);\n });\n }\n const context = contextData?.context ?? {};\n return Promise.resolve(deepClone(context));\n }\n async subscribe(name, callback, subscriptionKey) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const thisCallbackSubscriptionNumber = typeof subscriptionKey === \"undefined\" ? this._nextCallbackSubscriptionNumber : subscriptionKey;\n if (typeof subscriptionKey === \"undefined\") {\n this._nextCallbackSubscriptionNumber += 1;\n }\n if (this._contextsSubscriptionsCache.every((subscription) => subscription.subKey !== this._nextCallbackSubscriptionNumber)) {\n this._contextsSubscriptionsCache.push({ contextName: name, subKey: thisCallbackSubscriptionNumber, callback });\n }\n let contextData = this._contextNameToData[name];\n if (!contextData ||\n !contextData.isAnnounced) {\n contextData = contextData || new GW3ContextData(undefined, name, false, undefined);\n this._contextNameToData[name] = contextData;\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n const hadCallbacks = contextData.hasCallbacks();\n contextData.updateCallbacks[thisCallbackSubscriptionNumber] = callback;\n if (!hadCallbacks) {\n if (!contextData.joinedActivity) {\n if (contextData.context && contextData.sentExplicitSubscription) {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n return this.sendSubscribe(contextData)\n .then(() => thisCallbackSubscriptionNumber);\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n else {\n if (contextData.hasReceivedSnapshot) {\n const clone = deepClone(contextData.context);\n callback(clone, clone, [], thisCallbackSubscriptionNumber);\n }\n return Promise.resolve(thisCallbackSubscriptionNumber);\n }\n }\n unsubscribe(subscriptionKey) {\n this._contextsSubscriptionsCache = this._contextsSubscriptionsCache.filter((subscription) => subscription.subKey !== subscriptionKey);\n for (const name of Object.keys(this._contextNameToData)) {\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return;\n }\n const hadCallbacks = contextData.hasCallbacks();\n delete contextData.updateCallbacks[subscriptionKey];\n if (contextData.isAnnounced &&\n hadCallbacks &&\n !contextData.hasCallbacks() &&\n contextData.sentExplicitSubscription) {\n this.sendUnsubscribe(contextData).catch(() => { });\n }\n if (!contextData.isAnnounced &&\n !contextData.hasCallbacks()) {\n delete this._contextNameToData[name];\n }\n }\n }\n async destroy(name) {\n if (name in this._creationPromises) {\n await this._creationPromises[name];\n }\n const contextData = this._contextNameToData[name];\n if (!contextData) {\n return Promise.reject(`context with ${name} does not exist`);\n }\n return this._gw3Session\n .send({\n type: GW_MESSAGE_DESTROY_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n }).then(() => undefined);\n }\n handleUpdated(contextData, delta, extraData) {\n const oldContext = contextData.context;\n contextData.context = applyContextDelta(contextData.context, delta, this._logger);\n contextData.hasReceivedSnapshot = true;\n if (this._contextNameToData[contextData.name] === contextData &&\n !deepEqual(oldContext, contextData.context)) {\n this.invokeUpdateCallbacks(contextData, delta, extraData);\n }\n }\n subscribeToContextCreatedMessages() {\n const createdMessageTypes = [\n GW_MESSAGE_CONTEXT_ADDED,\n GW_MESSAGE_CONTEXT_CREATED,\n GW_MESSAGE_ACTIVITY_CREATED,\n ];\n for (const createdMessageType of createdMessageTypes) {\n const sub = this._connection.on(createdMessageType, this.handleContextCreatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextCreatedMessage(contextCreatedMsg) {\n const createdMessageType = contextCreatedMsg.type;\n if (createdMessageType === GW_MESSAGE_ACTIVITY_CREATED) {\n this._contextNameToId[contextCreatedMsg.activity_id] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.activity_id;\n }\n else if (createdMessageType === GW_MESSAGE_CONTEXT_ADDED) {\n this._contextNameToId[contextCreatedMsg.name] = contextCreatedMsg.context_id;\n this._contextIdToName[contextCreatedMsg.context_id] = contextCreatedMsg.name;\n }\n else ;\n const name = this._contextIdToName[contextCreatedMsg.context_id];\n if (!name) {\n throw new Error(\"Received created event for context with unknown name: \" + contextCreatedMsg.context_id);\n }\n if (!this._contextNameToId[name]) {\n throw new Error(\"Received created event for context with unknown id: \" + contextCreatedMsg.context_id);\n }\n let contextData = this._contextNameToData[name];\n if (contextData) {\n if (contextData.isAnnounced) {\n return;\n }\n else {\n if (!contextData.hasCallbacks()) {\n throw new Error(\"Assertion failure: contextData.hasCallbacks()\");\n }\n contextData.isAnnounced = true;\n contextData.contextId = contextCreatedMsg.context_id;\n contextData.activityId = contextCreatedMsg.activity_id;\n if (!contextData.sentExplicitSubscription) {\n this.sendSubscribe(contextData).catch(() => { });\n }\n }\n }\n else {\n this._contextNameToData[name] = contextData =\n new GW3ContextData(contextCreatedMsg.context_id, name, true, contextCreatedMsg.activity_id);\n if (this._trackAllContexts) {\n this.subscribe(name, () => { }).then((subKey) => this._systemContextsSubKey = subKey);\n }\n }\n }\n subscribeToContextUpdatedMessages() {\n const updatedMessageTypes = [\n GW_MESSAGE_CONTEXT_UPDATED,\n GW_MESSAGE_SUBSCRIBED_CONTEXT,\n GW_MESSAGE_JOINED_ACTIVITY,\n ];\n for (const updatedMessageType of updatedMessageTypes) {\n const sub = this._connection.on(updatedMessageType, this.handleContextUpdatedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextUpdatedMessage(contextUpdatedMsg) {\n const updatedMessageType = contextUpdatedMsg.type;\n const contextId = contextUpdatedMsg.context_id;\n let contextData = this._contextNameToData[this._contextIdToName[contextId]];\n const justSeen = !contextData || !contextData.isAnnounced;\n if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n if (!contextData) {\n contextData =\n this._contextNameToData[contextUpdatedMsg.activity_id] ||\n new GW3ContextData(contextId, contextUpdatedMsg.activity_id, true, contextUpdatedMsg.activity_id);\n }\n this._contextNameToData[contextUpdatedMsg.activity_id] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.activity_id;\n this._contextNameToId[contextUpdatedMsg.activity_id] = contextId;\n contextData.contextId = contextId;\n contextData.isAnnounced = true;\n contextData.activityId = contextUpdatedMsg.activity_id;\n contextData.joinedActivity = true;\n }\n else {\n if (!contextData || !contextData.isAnnounced) {\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData = contextData || new GW3ContextData(contextId, contextUpdatedMsg.name, true, undefined);\n contextData.sentExplicitSubscription = true;\n this._contextNameToData[contextUpdatedMsg.name] = contextData;\n this._contextIdToName[contextId] = contextUpdatedMsg.name;\n this._contextNameToId[contextUpdatedMsg.name] = contextId;\n }\n else {\n this._logger.error(`Received 'update' for unknown context: ${contextId}`);\n }\n return;\n }\n }\n const oldContext = contextData.context;\n contextData.hasReceivedSnapshot = true;\n if (updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n contextData.context = contextUpdatedMsg.data || {};\n }\n else if (updatedMessageType === GW_MESSAGE_JOINED_ACTIVITY) {\n contextData.context = contextUpdatedMsg.context_snapshot || {};\n }\n else if (updatedMessageType === GW_MESSAGE_CONTEXT_UPDATED) {\n contextData.context = applyContextDelta(contextData.context, contextUpdatedMsg.delta, this._logger);\n }\n else {\n throw new Error(\"Unrecognized context update message \" + updatedMessageType);\n }\n if (justSeen ||\n !deepEqual(contextData.context, oldContext) ||\n updatedMessageType === GW_MESSAGE_SUBSCRIBED_CONTEXT) {\n this.invokeUpdateCallbacks(contextData, contextUpdatedMsg.delta, { updaterId: contextUpdatedMsg.updater_id });\n }\n }\n invokeUpdateCallbacks(contextData, delta, extraData) {\n delta = delta || { added: {}, updated: {}, reset: {}, removed: [] };\n if (delta.commands) {\n delta.added = delta.updated = delta.reset = {};\n delta.removed = [];\n for (const command of delta.commands) {\n if (command.type === \"remove\") {\n if (command.path.indexOf(\".\") === -1) {\n delta.removed.push(command.path);\n }\n setValueToPath(delta.updated, null, command.path);\n }\n else if (command.type === \"set\") {\n setValueToPath(delta.updated, command.value, command.path);\n }\n }\n }\n for (const updateCallbackIndex in contextData.updateCallbacks) {\n if (contextData.updateCallbacks.hasOwnProperty(updateCallbackIndex)) {\n try {\n const updateCallback = contextData.updateCallbacks[updateCallbackIndex];\n updateCallback(deepClone(contextData.context), deepClone(Object.assign({}, delta.added || {}, delta.updated || {}, delta.reset || {})), delta.removed, parseInt(updateCallbackIndex, 10), extraData);\n }\n catch (err) {\n this._logger.debug(\"callback error: \" + JSON.stringify(err));\n }\n }\n }\n }\n subscribeToContextDestroyedMessages() {\n const destroyedMessageTypes = [\n GW_MESSAGE_CONTEXT_DESTROYED,\n GW_MESSAGE_ACTIVITY_DESTROYED,\n ];\n for (const destroyedMessageType of destroyedMessageTypes) {\n const sub = this._connection.on(destroyedMessageType, this.handleContextDestroyedMessage.bind(this));\n this._gw3Subscriptions.push(sub);\n }\n }\n handleContextDestroyedMessage(destroyedMsg) {\n const destroyedMessageType = destroyedMsg.type;\n let contextId;\n let name;\n if (destroyedMessageType === GW_MESSAGE_ACTIVITY_DESTROYED) {\n name = destroyedMsg.activity_id;\n contextId = this._contextNameToId[name];\n if (!contextId) {\n this._logger.error(`Received 'destroyed' for unknown activity: ${destroyedMsg.activity_id}`);\n return;\n }\n }\n else {\n contextId = destroyedMsg.context_id;\n name = this._contextIdToName[contextId];\n if (!name) {\n this._logger.error(`Received 'destroyed' for unknown context: ${destroyedMsg.context_id}`);\n return;\n }\n }\n delete this._contextIdToName[contextId];\n delete this._contextNameToId[name];\n const contextData = this._contextNameToData[name];\n delete this._contextNameToData[name];\n if (!contextData || !contextData.isAnnounced) {\n this._logger.error(`Received 'destroyed' for unknown context: ${contextId}`);\n return;\n }\n }\n sendSubscribe(contextData) {\n contextData.sentExplicitSubscription = true;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_SUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n })\n .then(() => undefined)\n .catch(() => {\n contextData.sentExplicitSubscription = false;\n });\n }\n sendUnsubscribe(contextData) {\n const prev = contextData.sentExplicitSubscription;\n contextData.sentExplicitSubscription = false;\n return this._gw3Session\n .send({\n type: GW_MESSAGE_UNSUBSCRIBE_CONTEXT,\n domain: \"global\",\n context_id: contextData.contextId,\n })\n .then(() => undefined)\n .catch(() => {\n contextData.sentExplicitSubscription = prev;\n });\n }\n calculateContextDeltaV1(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined };\n if (from) {\n for (const x of Object.keys(from)) {\n if (Object.keys(to).indexOf(x) !== -1\n && to[x] !== null\n && !deepEqual(from[x], to[x])) {\n delta.updated[x] = to[x];\n }\n }\n }\n for (const x of Object.keys(to)) {\n if (!from || (Object.keys(from).indexOf(x) === -1)) {\n if (to[x] !== null) {\n delta.added[x] = to[x];\n }\n }\n else if (to[x] === null) {\n delta.removed.push(x);\n }\n }\n return delta;\n }\n calculateContextDeltaV2(from, to) {\n const delta = { added: {}, updated: {}, removed: [], reset: undefined, commands: [] };\n for (const x of Object.keys(to)) {\n if (to[x] !== null) {\n const fromX = from ? from[x] : null;\n if (!deepEqual(fromX, to[x])) {\n delta.commands?.push({ type: \"set\", path: x, value: to[x] });\n }\n }\n else {\n delta.commands?.push({ type: \"remove\", path: x });\n }\n }\n return delta;\n }\n resetState() {\n for (const sub of this._gw3Subscriptions) {\n this._connection.off(sub);\n }\n if (this._systemContextsSubKey) {\n this.unsubscribe(this._systemContextsSubKey);\n delete this._systemContextsSubKey;\n }\n this._gw3Subscriptions = [];\n this._contextNameToId = {};\n this._contextIdToName = {};\n delete this._protocolVersion;\n this._contextsTempCache = Object.keys(this._contextNameToData).reduce((cacheSoFar, ctxName) => {\n cacheSoFar[ctxName] = this._contextNameToData[ctxName].context;\n return cacheSoFar;\n }, {});\n this._contextNameToData = {};\n }\n async reInitiateState() {\n this.subscribeToContextCreatedMessages();\n this.subscribeToContextUpdatedMessages();\n this.subscribeToContextDestroyedMessages();\n this._connection.replayer?.drain(ContextMessageReplaySpec.name, (message) => {\n const type = message.type;\n if (!type) {\n return;\n }\n if (type === GW_MESSAGE_CONTEXT_CREATED ||\n type === GW_MESSAGE_CONTEXT_ADDED ||\n type === GW_MESSAGE_ACTIVITY_CREATED) {\n this.handleContextCreatedMessage(message);\n }\n else if (type === GW_MESSAGE_SUBSCRIBED_CONTEXT ||\n type === GW_MESSAGE_CONTEXT_UPDATED ||\n type === GW_MESSAGE_JOINED_ACTIVITY) {\n this.handleContextUpdatedMessage(message);\n }\n else if (type === GW_MESSAGE_CONTEXT_DESTROYED ||\n type === GW_MESSAGE_ACTIVITY_DESTROYED) {\n this.handleContextDestroyedMessage(message);\n }\n });\n await Promise.all(this._contextsSubscriptionsCache.map((subscription) => this.subscribe(subscription.contextName, subscription.callback, subscription.subKey)));\n await this.flushQueue();\n for (const ctxName in this._contextsTempCache) {\n if (typeof this._contextsTempCache[ctxName] !== \"object\" || Object.keys(this._contextsTempCache[ctxName]).length === 0) {\n continue;\n }\n const lastKnownData = this._contextsTempCache[ctxName];\n this._logger.info(`Re-announcing known context: ${ctxName}`);\n await this.flushQueue();\n await this.update(ctxName, lastKnownData);\n }\n this._contextsTempCache = {};\n this._logger.info(\"Contexts are re-announced\");\n }\n flushQueue() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n }\n}\n\nclass ContextsModule {\n initTime;\n initStartTime;\n initEndTime;\n _bridge;\n constructor(config) {\n this._bridge = new GW3Bridge(config);\n }\n all() {\n return this._bridge.all();\n }\n update(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.update(name, data);\n }\n set(name, data) {\n this.checkName(name);\n this.checkData(data);\n return this._bridge.set(name, data);\n }\n setPath(name, path, data) {\n this.checkName(name);\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(data);\n return this.set(name, data);\n }\n return this._bridge.setPath(name, path, data);\n }\n setPaths(name, paths) {\n this.checkName(name);\n if (!Array.isArray(paths)) {\n throw new Error(\"Please provide the paths as an array of PathValues!\");\n }\n for (const { path, value } of paths) {\n this.checkPath(path);\n const isTopLevelPath = path === \"\";\n if (isTopLevelPath) {\n this.checkData(value);\n }\n }\n return this._bridge.setPaths(name, paths);\n }\n subscribe(name, callback) {\n this.checkName(name);\n if (typeof callback !== \"function\") {\n throw new Error(\"Please provide the callback as a function!\");\n }\n return this._bridge\n .subscribe(name, (data, delta, removed, key, extraData) => callback(data, delta, removed, () => this._bridge.unsubscribe(key), extraData))\n .then((key) => () => {\n this._bridge.unsubscribe(key);\n });\n }\n get(name) {\n this.checkName(name);\n return this._bridge.get(name);\n }\n ready() {\n return Promise.resolve(this);\n }\n destroy(name) {\n this.checkName(name);\n return this._bridge.destroy(name);\n }\n get setPathSupported() {\n return this._bridge.setPathSupported;\n }\n checkName(name) {\n if (typeof name !== \"string\" || name === \"\") {\n throw new Error(\"Please provide the name as a non-empty string!\");\n }\n }\n checkPath(path) {\n if (typeof path !== \"string\") {\n throw new Error(\"Please provide the path as a dot delimited string!\");\n }\n }\n checkData(data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Please provide the data as an object!\");\n }\n }\n}\n\nfunction promisify (promise, successCallback, errorCallback) {\n if (typeof successCallback !== \"function\" && typeof errorCallback !== \"function\") {\n return promise;\n }\n if (typeof successCallback !== \"function\") {\n successCallback = () => { };\n }\n else if (typeof errorCallback !== \"function\") {\n errorCallback = () => { };\n }\n return promise.then(successCallback, errorCallback);\n}\n\nfunction rejectAfter(ms = 0, promise, error) {\n let timeout;\n const clearTimeoutIfThere = () => {\n if (timeout) {\n clearTimeout(timeout);\n }\n };\n promise\n .then(() => {\n clearTimeoutIfThere();\n })\n .catch(() => {\n clearTimeoutIfThere();\n });\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => reject(error), ms);\n });\n}\n\nvar InvokeStatus;\n(function (InvokeStatus) {\n InvokeStatus[InvokeStatus[\"Success\"] = 0] = \"Success\";\n InvokeStatus[InvokeStatus[\"Error\"] = 1] = \"Error\";\n})(InvokeStatus || (InvokeStatus = {}));\nclass Client {\n protocol;\n repo;\n instance;\n configuration;\n constructor(protocol, repo, instance, configuration) {\n this.protocol = protocol;\n this.repo = repo;\n this.instance = instance;\n this.configuration = configuration;\n }\n subscribe(method, options, successCallback, errorCallback, existingSub) {\n const callProtocolSubscribe = (targetServers, stream, successProxy, errorProxy) => {\n options.methodResponseTimeout = options.methodResponseTimeout ?? options.waitTimeoutMs;\n this.protocol.client.subscribe(stream, options, targetServers, successProxy, errorProxy, existingSub);\n };\n const promise = new Promise((resolve, reject) => {\n const successProxy = (sub) => {\n resolve(sub);\n };\n const errorProxy = (err) => {\n reject(err);\n };\n if (!method) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n let methodDef;\n if (typeof method === \"string\") {\n methodDef = { name: method };\n }\n else {\n methodDef = method;\n }\n if (!methodDef.name) {\n reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n return;\n }\n if (options === undefined) {\n options = {};\n }\n let target = options.target;\n if (target === undefined) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\") {\n reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\", \"best\", or an instance.`));\n return;\n }\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = options.method_response_timeout;\n if (options.methodResponseTimeout === undefined) {\n options.methodResponseTimeout = this.configuration.methodResponseTimeout;\n }\n }\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = options.wait_for_method_timeout;\n if (options.waitTimeoutMs === undefined) {\n options.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n const delayStep = 500;\n let delayTillNow = 0;\n let currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n callProtocolSubscribe(currentServers, currentServers[0].methods[0], successProxy, errorProxy);\n }\n else {\n const retry = () => {\n if (!target || !(options.waitTimeoutMs)) {\n return;\n }\n delayTillNow += delayStep;\n currentServers = this.getServerMethodsByFilterAndTarget(methodDef, target);\n if (currentServers.length > 0) {\n const streamInfo = currentServers[0].methods[0];\n callProtocolSubscribe(currentServers, streamInfo, successProxy, errorProxy);\n }\n else if (delayTillNow >= options.waitTimeoutMs) {\n const def = typeof method === \"string\" ? { name: method } : method;\n callProtocolSubscribe(currentServers, def, successProxy, errorProxy);\n }\n else {\n setTimeout(retry, delayStep);\n }\n };\n setTimeout(retry, delayStep);\n }\n });\n return promisify(promise, successCallback, errorCallback);\n }\n servers(methodFilter) {\n const filterCopy = methodFilter === undefined\n ? undefined\n : { ...methodFilter };\n return this.getServers(filterCopy).map((serverMethodMap) => {\n return serverMethodMap.server.instance;\n });\n }\n methods(methodFilter) {\n if (typeof methodFilter === \"string\") {\n methodFilter = { name: methodFilter };\n }\n else {\n methodFilter = { ...methodFilter };\n }\n return this.getMethods(methodFilter);\n }\n methodsForInstance(instance) {\n return this.getMethodsForInstance(instance);\n }\n methodAdded(callback) {\n return this.repo.onMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.repo.onMethodRemoved(callback);\n }\n serverAdded(callback) {\n return this.repo.onServerAdded(callback);\n }\n serverRemoved(callback) {\n return this.repo.onServerRemoved((server, reason) => {\n callback(server, reason);\n });\n }\n serverMethodAdded(callback) {\n return this.repo.onServerMethodAdded((server, method) => {\n callback({ server, method });\n });\n }\n serverMethodRemoved(callback) {\n return this.repo.onServerMethodRemoved((server, method) => {\n callback({ server, method });\n });\n }\n async invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n const getInvokePromise = async () => {\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = { ...methodFilter };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.`);\n }\n if (!argumentObj) {\n argumentObj = {};\n }\n if (!target) {\n target = \"best\";\n }\n if (typeof target === \"string\" && target !== \"all\" && target !== \"best\" && target !== \"skipMine\") {\n return Promise.reject(new Error(`\"${target}\" is not a valid target. Valid targets are \"all\" and \"best\".`));\n }\n if (!additionalOptions) {\n additionalOptions = {};\n }\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = additionalOptions.method_response_timeout;\n if (additionalOptions.methodResponseTimeoutMs === undefined) {\n additionalOptions.methodResponseTimeoutMs = this.configuration.methodResponseTimeout;\n }\n }\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = additionalOptions.wait_for_method_timeout;\n if (additionalOptions.waitTimeoutMs === undefined) {\n additionalOptions.waitTimeoutMs = this.configuration.waitTimeoutMs;\n }\n }\n if (additionalOptions.waitTimeoutMs !== undefined && typeof additionalOptions.waitTimeoutMs !== \"number\") {\n return Promise.reject(new Error(`\"${additionalOptions.waitTimeoutMs}\" is not a valid number for \"waitTimeoutMs\" `));\n }\n if (typeof argumentObj !== \"object\") {\n return Promise.reject(new Error(`The method arguments must be an object. method: ${methodDefinition.name}`));\n }\n let serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length === 0) {\n try {\n serversMethodMap = await this.tryToAwaitForMethods(methodDefinition, target, additionalOptions);\n }\n catch (err) {\n const method = {\n ...methodDefinition,\n getServers: () => [],\n supportsStreaming: false,\n objectTypes: methodDefinition.objectTypes ?? [],\n flags: methodDefinition.flags?.metadata ?? {}\n };\n const errorObj = {\n method,\n called_with: argumentObj,\n message: `Can not find a method matching ${JSON.stringify(methodFilter)} with server filter ${JSON.stringify(target)}`,\n executed_by: undefined,\n returned: undefined,\n status: undefined,\n };\n return Promise.reject(errorObj);\n }\n }\n const timeout = additionalOptions.methodResponseTimeoutMs;\n const additionalOptionsCopy = additionalOptions;\n const invokePromises = serversMethodMap.map((serversMethodPair) => {\n const invId = nanoid(10);\n const method = serversMethodPair.methods[0];\n const server = serversMethodPair.server;\n const invokePromise = this.protocol.client.invoke(invId, method, argumentObj, server, additionalOptionsCopy);\n return Promise.race([\n invokePromise,\n rejectAfter(timeout, invokePromise, {\n invocationId: invId,\n message: `Invocation timeout (${timeout} ms) reached for method name: ${method?.name}, target instance: ${JSON.stringify(server.instance)}, options: ${JSON.stringify(additionalOptionsCopy)}`,\n status: InvokeStatus.Error,\n })\n ]);\n });\n const invocationMessages = await Promise.all(invokePromises);\n const results = this.getInvocationResultObj(invocationMessages, methodDefinition, argumentObj);\n const allRejected = invocationMessages.every((result) => result.status === InvokeStatus.Error);\n if (allRejected) {\n return Promise.reject(results);\n }\n return results;\n };\n return promisify(getInvokePromise(), success, error);\n }\n getInvocationResultObj(invocationResults, method, calledWith) {\n const all_return_values = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Success)\n .reduce((allValues, currentValue) => {\n allValues = [\n ...allValues,\n {\n executed_by: currentValue.instance,\n returned: currentValue.result,\n called_with: calledWith,\n method,\n message: currentValue.message,\n status: currentValue.status,\n }\n ];\n return allValues;\n }, []);\n const all_errors = invocationResults\n .filter((invokeMessage) => invokeMessage.status === InvokeStatus.Error)\n .reduce((allErrors, currError) => {\n allErrors = [\n ...allErrors,\n {\n executed_by: currError.instance,\n called_with: calledWith,\n name: method.name,\n message: currError.message,\n }\n ];\n return allErrors;\n }, []);\n const invResult = invocationResults[0];\n const result = {\n method,\n called_with: calledWith,\n returned: invResult.result,\n executed_by: invResult.instance,\n all_return_values,\n all_errors,\n message: invResult.message,\n status: invResult.status\n };\n return result;\n }\n tryToAwaitForMethods(methodDefinition, target, additionalOptions) {\n return new Promise((resolve, reject) => {\n if (additionalOptions.waitTimeoutMs === 0) {\n reject();\n return;\n }\n const delayStep = 500;\n let delayTillNow = 0;\n const retry = () => {\n delayTillNow += delayStep;\n const serversMethodMap = this.getServerMethodsByFilterAndTarget(methodDefinition, target);\n if (serversMethodMap.length > 0) {\n clearInterval(interval);\n resolve(serversMethodMap);\n }\n else if (delayTillNow >= (additionalOptions.waitTimeoutMs || 10000)) {\n clearInterval(interval);\n reject();\n return;\n }\n };\n const interval = setInterval(retry, delayStep);\n });\n }\n filterByTarget(target, serverMethodMap) {\n if (typeof target === \"string\") {\n if (target === \"all\") {\n return [...serverMethodMap];\n }\n else if (target === \"best\") {\n const localMachine = serverMethodMap\n .find((s) => s.server.instance.isLocal);\n if (localMachine) {\n return [localMachine];\n }\n if (serverMethodMap[0] !== undefined) {\n return [serverMethodMap[0]];\n }\n }\n else if (target === \"skipMine\") {\n return serverMethodMap.filter(({ server }) => server.instance.peerId !== this.instance.peerId);\n }\n }\n else {\n let targetArray;\n if (!Array.isArray(target)) {\n targetArray = [target];\n }\n else {\n targetArray = target;\n }\n const allServersMatching = targetArray.reduce((matches, filter) => {\n const myMatches = serverMethodMap.filter((serverMethodPair) => {\n return this.instanceMatch(filter, serverMethodPair.server.instance);\n });\n return matches.concat(myMatches);\n }, []);\n return allServersMatching;\n }\n return [];\n }\n instanceMatch(instanceFilter, instanceDefinition) {\n if (instanceFilter?.peerId && instanceFilter?.instance) {\n instanceFilter = { ...instanceFilter };\n delete instanceFilter.peerId;\n }\n return this.containsProps(instanceFilter, instanceDefinition);\n }\n methodMatch(methodFilter, methodDefinition) {\n return this.containsProps(methodFilter, methodDefinition);\n }\n containsProps(filter, repoMethod) {\n const filterProps = Object.keys(filter)\n .filter((prop) => {\n return filter[prop] !== undefined\n && filter[prop] !== null\n && typeof filter[prop] !== \"function\"\n && prop !== \"object_types\"\n && prop !== \"display_name\"\n && prop !== \"id\"\n && prop !== \"gatewayId\"\n && prop !== \"identifier\"\n && prop[0] !== \"_\";\n });\n return filterProps.every((prop) => {\n let isMatch;\n const filterValue = filter[prop];\n const repoMethodValue = repoMethod[prop];\n switch (prop) {\n case \"objectTypes\":\n isMatch = (filterValue || []).every((filterValueEl) => {\n return (repoMethodValue || []).includes(filterValueEl);\n });\n break;\n case \"flags\":\n isMatch = isSubset(repoMethodValue || {}, filterValue || {});\n break;\n default:\n isMatch = String(filterValue).toLowerCase() === String(repoMethodValue).toLowerCase();\n }\n return isMatch;\n });\n }\n getMethods(methodFilter) {\n if (methodFilter === undefined) {\n return this.repo.getMethods();\n }\n const methods = this.repo.getMethods().filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n return methods;\n }\n getMethodsForInstance(instanceFilter) {\n const allServers = this.repo.getServers();\n const matchingServers = allServers.filter((server) => {\n return this.instanceMatch(instanceFilter, server.instance);\n });\n if (matchingServers.length === 0) {\n return [];\n }\n let resultMethodsObject = {};\n if (matchingServers.length === 1) {\n resultMethodsObject = matchingServers[0].methods;\n }\n else {\n matchingServers.forEach((server) => {\n Object.keys(server.methods).forEach((methodKey) => {\n const method = server.methods[methodKey];\n resultMethodsObject[method.identifier] = method;\n });\n });\n }\n return Object.keys(resultMethodsObject)\n .map((key) => {\n return resultMethodsObject[key];\n });\n }\n getServers(methodFilter) {\n const servers = this.repo.getServers();\n if (methodFilter === undefined) {\n return servers.map((server) => {\n return { server, methods: [] };\n });\n }\n return servers.reduce((prev, current) => {\n const methodsForServer = Object.values(current.methods);\n const matchingMethods = methodsForServer.filter((method) => {\n return this.methodMatch(methodFilter, method);\n });\n if (matchingMethods.length > 0) {\n prev.push({ server: current, methods: matchingMethods });\n }\n return prev;\n }, []);\n }\n getServerMethodsByFilterAndTarget(methodFilter, target) {\n const serversMethodMap = this.getServers(methodFilter);\n return this.filterByTarget(target, serversMethodMap);\n }\n}\n\nclass ServerSubscription {\n protocol;\n repoMethod;\n subscription;\n constructor(protocol, repoMethod, subscription) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.subscription = subscription;\n }\n get stream() {\n if (!this.repoMethod.stream) {\n throw new Error(\"no stream\");\n }\n return this.repoMethod.stream;\n }\n get arguments() { return this.subscription.arguments || {}; }\n get branchKey() { return this.subscription.branchKey; }\n get instance() {\n if (!this.subscription.instance) {\n throw new Error(\"no instance\");\n }\n return this.subscription.instance;\n }\n close() {\n this.protocol.server.closeSingleSubscription(this.repoMethod, this.subscription);\n }\n push(data) {\n this.protocol.server.pushDataToSingle(this.repoMethod, this.subscription, data);\n }\n}\n\nclass Request {\n protocol;\n repoMethod;\n requestContext;\n arguments;\n instance;\n constructor(protocol, repoMethod, requestContext) {\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n this.requestContext = requestContext;\n this.arguments = requestContext.arguments;\n this.instance = requestContext.instance;\n }\n accept() {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, \"\");\n }\n acceptOnBranch(branch) {\n this.protocol.server.acceptRequestOnBranch(this.requestContext, this.repoMethod, branch);\n }\n reject(reason) {\n this.protocol.server.rejectRequest(this.requestContext, this.repoMethod, reason);\n }\n}\n\nlet ServerStreaming$1 = class ServerStreaming {\n protocol;\n server;\n constructor(protocol, server) {\n this.protocol = protocol;\n this.server = server;\n protocol.server.onSubRequest((rc, rm) => this.handleSubRequest(rc, rm));\n protocol.server.onSubAdded((sub, rm) => this.handleSubAdded(sub, rm));\n protocol.server.onSubRemoved((sub, rm) => this.handleSubRemoved(sub, rm));\n }\n handleSubRequest(requestContext, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRequestHandler === \"function\")) {\n return;\n }\n const request = new Request(this.protocol, repoMethod, requestContext);\n repoMethod.streamCallbacks.subscriptionRequestHandler(request);\n }\n handleSubAdded(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionAddedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionAddedHandler(sub);\n }\n handleSubRemoved(subscription, repoMethod) {\n if (!(repoMethod &&\n repoMethod.streamCallbacks &&\n typeof repoMethod.streamCallbacks.subscriptionRemovedHandler === \"function\")) {\n return;\n }\n const sub = new ServerSubscription(this.protocol, repoMethod, subscription);\n repoMethod.streamCallbacks.subscriptionRemovedHandler(sub);\n }\n};\n\nclass ServerBranch {\n key;\n protocol;\n repoMethod;\n constructor(key, protocol, repoMethod) {\n this.key = key;\n this.protocol = protocol;\n this.repoMethod = repoMethod;\n }\n subscriptions() {\n const subList = this.protocol.server.getSubscriptionList(this.repoMethod, this.key);\n return subList.map((sub) => {\n return new ServerSubscription(this.protocol, this.repoMethod, sub);\n });\n }\n close() {\n this.protocol.server.closeAllSubscriptions(this.repoMethod, this.key);\n }\n push(data) {\n this.protocol.server.pushData(this.repoMethod, data, [this.key]);\n }\n}\n\nclass ServerStream {\n _protocol;\n _repoMethod;\n _server;\n name;\n constructor(_protocol, _repoMethod, _server) {\n this._protocol = _protocol;\n this._repoMethod = _repoMethod;\n this._server = _server;\n this.name = this._repoMethod.definition.name;\n }\n branches(key) {\n const bList = this._protocol.server.getBranchList(this._repoMethod);\n if (key) {\n if (bList.indexOf(key) > -1) {\n return new ServerBranch(key, this._protocol, this._repoMethod);\n }\n return undefined;\n }\n else {\n return bList.map((branchKey) => {\n return new ServerBranch(branchKey, this._protocol, this._repoMethod);\n });\n }\n }\n branch(key) {\n return this.branches(key);\n }\n subscriptions() {\n const subList = this._protocol.server.getSubscriptionList(this._repoMethod);\n return subList.map((sub) => {\n return new ServerSubscription(this._protocol, this._repoMethod, sub);\n });\n }\n get definition() {\n const def2 = this._repoMethod.definition;\n return {\n accepts: def2.accepts,\n description: def2.description,\n displayName: def2.displayName,\n name: def2.name,\n objectTypes: def2.objectTypes,\n returns: def2.returns,\n supportsStreaming: def2.supportsStreaming,\n flags: def2.flags?.metadata,\n };\n }\n close() {\n this._protocol.server.closeAllSubscriptions(this._repoMethod);\n this._server.unregister(this._repoMethod.definition, true);\n }\n push(data, branches) {\n if (typeof branches !== \"string\" && !Array.isArray(branches) && branches !== undefined) {\n throw new Error(\"invalid branches should be string or string array\");\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n this._protocol.server.pushData(this._repoMethod, data, branches);\n }\n updateRepoMethod(repoMethod) {\n this._repoMethod = repoMethod;\n }\n}\n\nclass Server {\n protocol;\n serverRepository;\n streaming;\n invocations = 0;\n currentlyUnregistering = {};\n constructor(protocol, serverRepository) {\n this.protocol = protocol;\n this.serverRepository = serverRepository;\n this.streaming = new ServerStreaming$1(protocol, this);\n this.protocol.server.onInvoked(this.onMethodInvoked.bind(this));\n }\n createStream(streamDef, callbacks, successCallback, errorCallback, existingStream) {\n const promise = new Promise((resolve, reject) => {\n if (!streamDef) {\n reject(\"The stream name must be unique! Please, provide either a unique string for a stream name to “glue.interop.createStream()” or a “methodDefinition” object with a unique “name” property for the stream.\");\n return;\n }\n let streamMethodDefinition;\n if (typeof streamDef === \"string\") {\n streamMethodDefinition = { name: \"\" + streamDef };\n }\n else {\n streamMethodDefinition = { ...streamDef };\n }\n if (!streamMethodDefinition.name) {\n return reject(`The “name” property is required for the “streamDefinition” object and must be unique. Stream definition: ${JSON.stringify(streamMethodDefinition)}`);\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === streamMethodDefinition.name);\n if (nameAlreadyExists) {\n return reject(`A stream with the name \"${streamMethodDefinition.name}\" already exists! Please, provide a unique name for the stream.`);\n }\n streamMethodDefinition.supportsStreaming = true;\n if (!callbacks) {\n callbacks = {};\n }\n if (typeof callbacks.subscriptionRequestHandler !== \"function\") {\n callbacks.subscriptionRequestHandler = (request) => {\n request.accept();\n };\n }\n const repoMethod = this.serverRepository.add({\n definition: streamMethodDefinition,\n streamCallbacks: callbacks,\n protocolState: {},\n });\n this.protocol.server.createStream(repoMethod)\n .then(() => {\n let streamUserObject;\n if (existingStream) {\n streamUserObject = existingStream;\n existingStream.updateRepoMethod(repoMethod);\n }\n else {\n streamUserObject = new ServerStream(this.protocol, repoMethod, this);\n }\n repoMethod.stream = streamUserObject;\n resolve(streamUserObject);\n })\n .catch((err) => {\n if (repoMethod.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n reject(err);\n });\n });\n return promisify(promise, successCallback, errorCallback);\n }\n register(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallbackFunction = async (context, resultCallback) => {\n try {\n const result = callback(context.args, context.instance);\n if (result && typeof result.then === \"function\") {\n const resultValue = await result;\n resultCallback(undefined, resultValue);\n }\n else {\n resultCallback(undefined, result);\n }\n }\n catch (e) {\n resultCallback(e ?? \"\", e ?? \"\");\n }\n };\n wrappedCallbackFunction.userCallback = callback;\n return this.registerCore(methodDefinition, wrappedCallbackFunction);\n }\n registerAsync(methodDefinition, callback) {\n if (!methodDefinition) {\n return Promise.reject(\"Method definition is required. Please, provide either a unique string for a method name or a “methodDefinition” object with a required “name” property.\");\n }\n if (typeof callback !== \"function\") {\n return Promise.reject(`The second parameter must be a callback function. Method: ${typeof methodDefinition === \"string\" ? methodDefinition : methodDefinition.name}`);\n }\n const wrappedCallback = async (context, resultCallback) => {\n try {\n let resultCalled = false;\n const success = (result) => {\n if (!resultCalled) {\n resultCallback(undefined, result);\n }\n resultCalled = true;\n };\n const error = (e) => {\n if (!resultCalled) {\n if (!e) {\n e = \"\";\n }\n resultCallback(e, e);\n }\n resultCalled = true;\n };\n const methodResult = callback(context.args, context.instance, success, error);\n if (methodResult && typeof methodResult.then === \"function\") {\n methodResult\n .then(success)\n .catch(error);\n }\n }\n catch (e) {\n resultCallback(e, undefined);\n }\n };\n wrappedCallback.userCallbackAsync = callback;\n return this.registerCore(methodDefinition, wrappedCallback);\n }\n async unregister(methodFilter, forStream = false) {\n if (methodFilter === undefined) {\n return Promise.reject(\"Please, provide either a unique string for a name or an object containing a “name” property.\");\n }\n if (typeof methodFilter === \"function\") {\n await this.unregisterWithPredicate(methodFilter, forStream);\n return;\n }\n let methodDefinition;\n if (typeof methodFilter === \"string\") {\n methodDefinition = { name: methodFilter };\n }\n else {\n methodDefinition = methodFilter;\n }\n if (methodDefinition.name === undefined) {\n return Promise.reject(\"Method name is required. Cannot find a method if the method name is undefined!\");\n }\n const methodToBeRemoved = this.serverRepository.getList().find((serverMethod) => {\n return serverMethod.definition.name === methodDefinition.name\n && (serverMethod.definition.supportsStreaming || false) === forStream;\n });\n if (!methodToBeRemoved) {\n return Promise.reject(`Method with a name \"${methodDefinition.name}\" does not exist or is not registered by your application!`);\n }\n await this.removeMethodsOrStreams([methodToBeRemoved]);\n }\n async unregisterWithPredicate(filterPredicate, forStream) {\n const methodsOrStreamsToRemove = this.serverRepository.getList()\n .filter((sm) => filterPredicate(sm.definition))\n .filter((serverMethod) => (serverMethod.definition.supportsStreaming || false) === forStream);\n if (!methodsOrStreamsToRemove || methodsOrStreamsToRemove.length === 0) {\n return Promise.reject(`Could not find a ${forStream ? \"stream\" : \"method\"} matching the specified condition!`);\n }\n await this.removeMethodsOrStreams(methodsOrStreamsToRemove);\n }\n removeMethodsOrStreams(methodsToRemove) {\n const methodUnregPromises = [];\n methodsToRemove.forEach((method) => {\n const promise = this.protocol.server.unregister(method)\n .then(() => {\n if (method.repoId) {\n this.serverRepository.remove(method.repoId);\n }\n });\n methodUnregPromises.push(promise);\n this.addAsCurrentlyUnregistering(method.definition.name, promise);\n });\n return Promise.all(methodUnregPromises);\n }\n async addAsCurrentlyUnregistering(methodName, promise) {\n const timeout = new Promise((resolve) => setTimeout(resolve, 5000));\n this.currentlyUnregistering[methodName] = Promise.race([promise, timeout]).then(() => {\n delete this.currentlyUnregistering[methodName];\n });\n }\n async registerCore(method, theFunction) {\n let methodDefinition;\n if (typeof method === \"string\") {\n methodDefinition = { name: \"\" + method };\n }\n else {\n methodDefinition = { ...method };\n }\n if (!methodDefinition.name) {\n return Promise.reject(`Please, provide a (unique) string value for the “name” property in the “methodDefinition” object: ${JSON.stringify(method)}`);\n }\n const unregisterInProgress = this.currentlyUnregistering[methodDefinition.name];\n if (typeof unregisterInProgress !== \"undefined\") {\n await unregisterInProgress;\n }\n const nameAlreadyExists = this.serverRepository.getList()\n .some((serverMethod) => serverMethod.definition.name === methodDefinition.name);\n if (nameAlreadyExists) {\n return Promise.reject(`A method with the name \"${methodDefinition.name}\" already exists! Please, provide a unique name for the method.`);\n }\n if (methodDefinition.supportsStreaming) {\n return Promise.reject(`When you create methods with “glue.interop.register()” or “glue.interop.registerAsync()” the property “supportsStreaming” cannot be “true”. If you want “${methodDefinition.name}” to be a stream, please use the “glue.interop.createStream()” method.`);\n }\n const repoMethod = this.serverRepository.add({\n definition: methodDefinition,\n theFunction,\n protocolState: {},\n });\n return this.protocol.server.register(repoMethod)\n .catch((err) => {\n if (repoMethod?.repoId) {\n this.serverRepository.remove(repoMethod.repoId);\n }\n throw err;\n });\n }\n onMethodInvoked(methodToExecute, invocationId, invocationArgs) {\n if (!methodToExecute || !methodToExecute.theFunction) {\n return;\n }\n methodToExecute.theFunction(invocationArgs, (err, result) => {\n if (err !== undefined && err !== null) {\n if (err.message && typeof err.message === \"string\") {\n err = err.message;\n }\n else if (typeof err !== \"string\") {\n try {\n err = JSON.stringify(err);\n }\n catch (unStrException) {\n err = `un-stringifyable error in onMethodInvoked! Top level prop names: ${Object.keys(err)}`;\n }\n }\n }\n if (!result) {\n result = {};\n }\n else if (typeof result !== \"object\" || Array.isArray(result)) {\n result = { _value: result };\n }\n this.protocol.server.methodInvocationResult(methodToExecute, invocationId, err, result);\n });\n }\n}\n\nclass InstanceWrapper {\n wrapped = {};\n constructor(API, instance, connection) {\n this.wrapped.getMethods = function () {\n return API.methodsForInstance(this);\n };\n this.wrapped.getStreams = function () {\n return API.methodsForInstance(this).filter((m) => m.supportsStreaming);\n };\n if (instance) {\n this.refreshWrappedObject(instance);\n }\n if (connection) {\n connection.loggedIn(() => {\n this.refresh(connection);\n });\n this.refresh(connection);\n }\n }\n unwrap() {\n return this.wrapped;\n }\n refresh(connection) {\n if (!connection) {\n return;\n }\n const resolvedIdentity = connection?.resolvedIdentity;\n const instance = Object.assign({}, resolvedIdentity ?? {}, { peerId: connection?.peerId });\n this.refreshWrappedObject(instance);\n }\n refreshWrappedObject(resolvedIdentity) {\n Object.keys(resolvedIdentity).forEach((key) => {\n this.wrapped[key] = resolvedIdentity[key];\n });\n this.wrapped.user = resolvedIdentity.user;\n this.wrapped.instance = resolvedIdentity.instance;\n this.wrapped.application = resolvedIdentity.application ?? nanoid(10);\n this.wrapped.applicationName = resolvedIdentity.applicationName;\n this.wrapped.pid = resolvedIdentity.pid ?? resolvedIdentity.process ?? Math.floor(Math.random() * 10000000000);\n this.wrapped.machine = resolvedIdentity.machine;\n this.wrapped.environment = resolvedIdentity.environment;\n this.wrapped.region = resolvedIdentity.region;\n this.wrapped.windowId = resolvedIdentity.windowId;\n this.wrapped.isLocal = resolvedIdentity.isLocal ?? true;\n this.wrapped.api = resolvedIdentity.api;\n this.wrapped.service = resolvedIdentity.service;\n this.wrapped.peerId = resolvedIdentity.peerId;\n }\n}\n\nconst hideMethodSystemFlags = (method) => {\n return {\n ...method,\n flags: method.flags.metadata || {}\n };\n};\nclass ClientRepository {\n logger;\n API;\n servers = {};\n myServer;\n methodsCount = {};\n callbacks = CallbackRegistryFactory();\n constructor(logger, API) {\n this.logger = logger;\n this.API = API;\n const peerId = this.API.instance.peerId;\n this.myServer = {\n id: peerId,\n methods: {},\n instance: this.API.instance,\n wrapper: this.API.unwrappedInstance,\n };\n this.servers[peerId] = this.myServer;\n }\n addServer(info, serverId) {\n this.logger.debug(`adding server ${serverId}`);\n const current = this.servers[serverId];\n if (current) {\n return current.id;\n }\n const wrapper = new InstanceWrapper(this.API, info);\n const serverEntry = {\n id: serverId,\n methods: {},\n instance: wrapper.unwrap(),\n wrapper,\n };\n this.servers[serverId] = serverEntry;\n this.callbacks.execute(\"onServerAdded\", serverEntry.instance);\n return serverId;\n }\n removeServerById(id, reason) {\n const server = this.servers[id];\n if (!server) {\n this.logger.warn(`not aware of server ${id}, my state ${JSON.stringify(Object.keys(this.servers))}`);\n return;\n }\n else {\n this.logger.debug(`removing server ${id}`);\n }\n Object.keys(server.methods).forEach((methodId) => {\n this.removeServerMethod(id, methodId);\n });\n delete this.servers[id];\n this.callbacks.execute(\"onServerRemoved\", server.instance, reason);\n }\n addServerMethod(serverId, method) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n if (server.methods[method.id]) {\n return;\n }\n const identifier = this.createMethodIdentifier(method);\n const that = this;\n const methodDefinition = {\n identifier,\n gatewayId: method.id,\n name: method.name,\n displayName: method.display_name,\n description: method.description,\n version: method.version,\n objectTypes: method.object_types || [],\n accepts: method.input_signature,\n returns: method.result_signature,\n supportsStreaming: typeof method.flags !== \"undefined\" ? method.flags.streaming : false,\n flags: method.flags ?? {},\n getServers: () => {\n return that.getServersByMethod(identifier);\n }\n };\n methodDefinition.object_types = methodDefinition.objectTypes;\n methodDefinition.display_name = methodDefinition.displayName;\n methodDefinition.version = methodDefinition.version;\n server.methods[method.id] = methodDefinition;\n const clientMethodDefinition = hideMethodSystemFlags(methodDefinition);\n if (!this.methodsCount[identifier]) {\n this.methodsCount[identifier] = 0;\n this.callbacks.execute(\"onMethodAdded\", clientMethodDefinition);\n }\n this.methodsCount[identifier] = this.methodsCount[identifier] + 1;\n this.callbacks.execute(\"onServerMethodAdded\", server.instance, clientMethodDefinition);\n return methodDefinition;\n }\n removeServerMethod(serverId, methodId) {\n const server = this.servers[serverId];\n if (!server) {\n throw new Error(\"server does not exists\");\n }\n const method = server.methods[methodId];\n delete server.methods[methodId];\n const clientMethodDefinition = hideMethodSystemFlags(method);\n this.methodsCount[method.identifier] = this.methodsCount[method.identifier] - 1;\n if (this.methodsCount[method.identifier] === 0) {\n this.callbacks.execute(\"onMethodRemoved\", clientMethodDefinition);\n }\n this.callbacks.execute(\"onServerMethodRemoved\", server.instance, clientMethodDefinition);\n }\n getMethods() {\n return this.extractMethodsFromServers(Object.values(this.servers)).map(hideMethodSystemFlags);\n }\n getServers() {\n return Object.values(this.servers).map(this.hideServerMethodSystemFlags);\n }\n onServerAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerAdded\", callback);\n const serversWithMethodsToReplay = this.getServers().map((s) => s.instance);\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, serversWithMethodsToReplay, callback);\n }\n onMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodAdded\", callback);\n const methodsToReplay = this.getMethods();\n return this.returnUnsubWithDelayedReplay(unsubscribeFunc, methodsToReplay, callback);\n }\n onServerMethodAdded(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodAdded\", callback);\n let unsubCalled = false;\n const servers = this.getServers();\n setTimeout(() => {\n servers.forEach((server) => {\n const methods = server.methods;\n Object.keys(methods).forEach((methodId) => {\n if (!unsubCalled) {\n callback(server.instance, methods[methodId]);\n }\n });\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n onMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerRemoved\", callback);\n return unsubscribeFunc;\n }\n onServerMethodRemoved(callback) {\n const unsubscribeFunc = this.callbacks.add(\"onServerMethodRemoved\", callback);\n return unsubscribeFunc;\n }\n getServerById(id) {\n const server = this.servers[id];\n if (!server) {\n return undefined;\n }\n return this.hideServerMethodSystemFlags(this.servers[id]);\n }\n reset() {\n Object.keys(this.servers).forEach((key) => {\n this.removeServerById(key, \"reset\");\n });\n this.servers = {\n [this.myServer.id]: this.myServer\n };\n this.methodsCount = {};\n }\n createMethodIdentifier(methodInfo) {\n const accepts = methodInfo.input_signature ?? \"\";\n const returns = methodInfo.result_signature ?? \"\";\n return (methodInfo.name + accepts + returns).toLowerCase();\n }\n getServersByMethod(identifier) {\n const allServers = [];\n Object.values(this.servers).forEach((server) => {\n Object.values(server.methods).forEach((method) => {\n if (method.identifier === identifier) {\n allServers.push(server.instance);\n }\n });\n });\n return allServers;\n }\n returnUnsubWithDelayedReplay(unsubscribeFunc, collectionToReplay, callback) {\n let unsubCalled = false;\n setTimeout(() => {\n collectionToReplay.forEach((item) => {\n if (!unsubCalled) {\n callback(item);\n }\n });\n }, 0);\n return () => {\n unsubCalled = true;\n unsubscribeFunc();\n };\n }\n hideServerMethodSystemFlags(server) {\n const clientMethods = {};\n Object.entries(server.methods).forEach(([name, method]) => {\n clientMethods[name] = hideMethodSystemFlags(method);\n });\n return {\n ...server,\n methods: clientMethods\n };\n }\n extractMethodsFromServers(servers) {\n const methods = Object.values(servers).reduce((clientMethods, server) => {\n return [...clientMethods, ...Object.values(server.methods)];\n }, []);\n return methods;\n }\n}\n\nclass ServerRepository {\n nextId = 0;\n methods = [];\n add(method) {\n method.repoId = String(this.nextId);\n this.nextId += 1;\n this.methods.push(method);\n return method;\n }\n remove(repoId) {\n if (typeof repoId !== \"string\") {\n return new TypeError(\"Expecting a string\");\n }\n this.methods = this.methods.filter((m) => {\n return m.repoId !== repoId;\n });\n }\n getById(id) {\n if (typeof id !== \"string\") {\n return undefined;\n }\n return this.methods.find((m) => {\n return m.repoId === id;\n });\n }\n getList() {\n return this.methods.map((m) => m);\n }\n length() {\n return this.methods.length;\n }\n reset() {\n this.methods = [];\n }\n}\n\nconst SUBSCRIPTION_REQUEST = \"onSubscriptionRequest\";\nconst SUBSCRIPTION_ADDED = \"onSubscriptionAdded\";\nconst SUBSCRIPTION_REMOVED = \"onSubscriptionRemoved\";\nclass ServerStreaming {\n session;\n repository;\n serverRepository;\n logger;\n ERR_URI_SUBSCRIPTION_FAILED = \"com.tick42.agm.errors.subscription.failure\";\n callbacks = CallbackRegistryFactory();\n nextStreamId = 0;\n constructor(session, repository, serverRepository, logger) {\n this.session = session;\n this.repository = repository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n session.on(\"add-interest\", (msg) => {\n this.handleAddInterest(msg);\n });\n session.on(\"remove-interest\", (msg) => {\n this.handleRemoveInterest(msg);\n });\n }\n acceptRequestOnBranch(requestContext, streamingMethod, branch) {\n if (typeof branch !== \"string\") {\n branch = \"\";\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n throw new TypeError(\"The streaming method is missing its subscriptions.\");\n }\n if (!Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n throw new TypeError(\"The streaming method is missing its branches.\");\n }\n const streamId = this.getStreamId(streamingMethod, branch);\n const key = requestContext.msg.subscription_id;\n const subscription = {\n id: key,\n arguments: requestContext.arguments,\n instance: requestContext.instance,\n branchKey: branch,\n streamId,\n subscribeMsg: requestContext.msg,\n };\n streamingMethod.protocolState.subscriptionsMap[key] = subscription;\n this.session.sendFireAndForget({\n type: \"accepted\",\n subscription_id: key,\n stream_id: streamId,\n }).catch((err) => {\n this.logger.warn(`Failed to send accepted message for subscription ${key}: ${JSON.stringify(err)}`);\n });\n this.callbacks.execute(SUBSCRIPTION_ADDED, subscription, streamingMethod);\n }\n rejectRequest(requestContext, streamingMethod, reason) {\n if (typeof reason !== \"string\") {\n reason = \"\";\n }\n this.sendSubscriptionFailed(\"Subscription rejected by user. \" + reason, requestContext.msg.subscription_id);\n }\n pushData(streamingMethod, data, branches) {\n if (typeof streamingMethod !== \"object\" || !Array.isArray(streamingMethod.protocolState.branchKeyToStreamIdMap)) {\n return;\n }\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n if (typeof branches === \"string\") {\n branches = [branches];\n }\n else if (!Array.isArray(branches) || branches.length <= 0) {\n branches = [];\n }\n const streamIdList = streamingMethod.protocolState.branchKeyToStreamIdMap\n .filter((br) => {\n if (!branches || branches.length === 0) {\n return true;\n }\n return branches.indexOf(br.key) >= 0;\n }).map((br) => {\n return br.streamId;\n });\n streamIdList.forEach((streamId) => {\n const publishMessage = {\n type: \"publish\",\n stream_id: streamId,\n data,\n };\n this.session.sendFireAndForget(publishMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send publish message for stream ${streamId}: ${JSON.stringify(err)}`);\n });\n });\n }\n pushDataToSingle(method, subscription, data) {\n if (typeof data !== \"object\") {\n throw new Error(\"Invalid arguments. Data must be an object.\");\n }\n const postMessage = {\n type: \"post\",\n subscription_id: subscription.id,\n data,\n };\n this.session.sendFireAndForget(postMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send post message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n }\n closeSingleSubscription(streamingMethod, subscription) {\n if (streamingMethod.protocolState.subscriptionsMap) {\n delete streamingMethod.protocolState.subscriptionsMap[subscription.id];\n }\n const dropSubscriptionMessage = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping a single subscription\",\n };\n this.session.sendFireAndForget(dropSubscriptionMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n subscription.instance;\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n closeMultipleSubscriptions(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\" || typeof streamingMethod.protocolState.subscriptionsMap !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n let subscriptionsToClose = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey === \"string\") {\n subscriptionsToClose = subscriptionsToClose.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n subscriptionsToClose.forEach((subscription) => {\n delete subscriptionsMap[subscription.id];\n const drop = {\n type: \"drop-subscription\",\n subscription_id: subscription.id,\n reason: \"Server dropping all subscriptions on stream_id: \" + subscription.streamId,\n };\n this.session.sendFireAndForget(drop)\n .catch((err) => {\n this.logger.warn(`Failed to send drop-subscription message for subscription ${subscription.id}: ${JSON.stringify(err)}`);\n });\n });\n }\n getSubscriptionList(streamingMethod, branchKey) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n let subscriptions = [];\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n if (typeof branchKey !== \"string\") {\n subscriptions = allSubscriptions;\n }\n else {\n subscriptions = allSubscriptions.filter((sub) => {\n return sub.branchKey === branchKey;\n });\n }\n return subscriptions;\n }\n getBranchList(streamingMethod) {\n if (typeof streamingMethod !== \"object\") {\n return [];\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return [];\n }\n const subscriptionsMap = streamingMethod.protocolState.subscriptionsMap;\n const allSubscriptions = Object.keys(subscriptionsMap)\n .map((key) => {\n return subscriptionsMap[key];\n });\n const result = [];\n allSubscriptions.forEach((sub) => {\n let branch = \"\";\n if (typeof sub === \"object\" && typeof sub.branchKey === \"string\") {\n branch = sub.branchKey;\n }\n if (result.indexOf(branch) === -1) {\n result.push(branch);\n }\n });\n return result;\n }\n onSubAdded(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_ADDED, callback);\n }\n onSubRequest(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REQUEST, callback);\n }\n onSubRemoved(callback) {\n this.onSubscriptionLifetimeEvent(SUBSCRIPTION_REMOVED, callback);\n }\n handleRemoveInterest(msg) {\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (typeof msg.subscription_id !== \"string\" ||\n typeof streamingMethod !== \"object\") {\n return;\n }\n if (!streamingMethod.protocolState.subscriptionsMap) {\n return;\n }\n if (typeof streamingMethod.protocolState.subscriptionsMap[msg.subscription_id] !== \"object\") {\n return;\n }\n const subscription = streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n delete streamingMethod.protocolState.subscriptionsMap[msg.subscription_id];\n this.callbacks.execute(SUBSCRIPTION_REMOVED, subscription, streamingMethod);\n }\n onSubscriptionLifetimeEvent(eventName, handlerFunc) {\n this.callbacks.add(eventName, handlerFunc);\n }\n getNextStreamId() {\n return this.nextStreamId++ + \"\";\n }\n handleAddInterest(msg) {\n const caller = this.repository.getServerById(msg.caller_id);\n const instance = caller?.instance ?? {};\n const requestContext = {\n msg,\n arguments: msg.arguments_kv || {},\n instance,\n };\n const streamingMethod = this.serverRepository.getById(msg.method_id);\n if (streamingMethod === undefined) {\n const errorMsg = \"No method with id \" + msg.method_id + \" on this server.\";\n this.sendSubscriptionFailed(errorMsg, msg.subscription_id);\n return;\n }\n if (streamingMethod.protocolState.subscriptionsMap &&\n streamingMethod.protocolState.subscriptionsMap[msg.subscription_id]) {\n this.sendSubscriptionFailed(\"A subscription with id \" + msg.subscription_id + \" already exists.\", msg.subscription_id);\n return;\n }\n this.callbacks.execute(SUBSCRIPTION_REQUEST, requestContext, streamingMethod);\n }\n sendSubscriptionFailed(reason, subscriptionId) {\n const errorMessage = {\n type: \"error\",\n reason_uri: this.ERR_URI_SUBSCRIPTION_FAILED,\n reason,\n request_id: subscriptionId,\n };\n this.session.sendFireAndForget(errorMessage)\n .catch((err) => {\n this.logger.warn(`Failed to send subscription failed message for subscription ${subscriptionId}: ${JSON.stringify(err)}`);\n });\n }\n getStreamId(streamingMethod, branchKey) {\n if (typeof branchKey !== \"string\") {\n branchKey = \"\";\n }\n if (!streamingMethod.protocolState.branchKeyToStreamIdMap) {\n throw new Error(`streaming ${streamingMethod.definition.name} method without protocol state`);\n }\n const needleBranch = streamingMethod.protocolState.branchKeyToStreamIdMap.filter((branch) => {\n return branch.key === branchKey;\n })[0];\n let streamId = (needleBranch ? needleBranch.streamId : undefined);\n if (typeof streamId !== \"string\" || streamId === \"\") {\n streamId = this.getNextStreamId();\n streamingMethod.protocolState.branchKeyToStreamIdMap.push({ key: branchKey, streamId });\n }\n return streamId;\n }\n}\n\nclass ServerProtocol {\n session;\n clientRepository;\n serverRepository;\n logger;\n callbacks = CallbackRegistryFactory();\n streaming;\n constructor(session, clientRepository, serverRepository, logger) {\n this.session = session;\n this.clientRepository = clientRepository;\n this.serverRepository = serverRepository;\n this.logger = logger;\n this.streaming = new ServerStreaming(session, clientRepository, serverRepository, logger.subLogger(\"streaming\"));\n this.session.on(\"invoke\", (msg) => this.handleInvokeMessage(msg));\n }\n createStream(repoMethod) {\n repoMethod.protocolState.subscriptionsMap = {};\n repoMethod.protocolState.branchKeyToStreamIdMap = [];\n return this.register(repoMethod, true);\n }\n register(repoMethod, isStreaming) {\n const methodDef = repoMethod.definition;\n const flags = Object.assign({}, { metadata: methodDef.flags ?? {} }, { streaming: isStreaming || false });\n const registerMsg = {\n type: \"register\",\n methods: [{\n id: repoMethod.repoId,\n name: methodDef.name,\n display_name: methodDef.displayName,\n description: methodDef.description,\n version: methodDef.version,\n flags,\n object_types: methodDef.objectTypes || methodDef.object_types,\n input_signature: methodDef.accepts,\n result_signature: methodDef.returns,\n restrictions: undefined,\n }],\n };\n return this.session.send(registerMsg, { methodId: repoMethod.repoId })\n .then(() => {\n this.logger.debug(\"registered method \" + repoMethod.definition.name + \" with id \" + repoMethod.repoId);\n })\n .catch((msg) => {\n this.logger.warn(`failed to register method ${repoMethod.definition.name} with id ${repoMethod.repoId} - ${JSON.stringify(msg)}`);\n throw msg;\n });\n }\n onInvoked(callback) {\n this.callbacks.add(\"onInvoked\", callback);\n }\n methodInvocationResult(method, invocationId, err, result) {\n let msg;\n if (err || err === \"\") {\n msg = {\n type: \"error\",\n request_id: invocationId,\n reason_uri: \"agm.errors.client_error\",\n reason: err,\n context: result,\n peer_id: undefined,\n };\n }\n else {\n msg = {\n type: \"yield\",\n invocation_id: invocationId,\n peer_id: this.session.peerId,\n result,\n request_id: undefined,\n };\n }\n this.session.sendFireAndForget(msg)\n .catch((error => {\n this.logger.warn(`Failed to send method invocation result for method ${method.definition.name} invocation ${invocationId} - ${JSON.stringify(error)}`);\n }));\n }\n async unregister(method) {\n const msg = {\n type: \"unregister\",\n methods: [method.repoId],\n };\n await this.session.send(msg);\n }\n getBranchList(method) {\n return this.streaming.getBranchList(method);\n }\n getSubscriptionList(method, branchKey) {\n return this.streaming.getSubscriptionList(method, branchKey);\n }\n closeAllSubscriptions(method, branchKey) {\n this.streaming.closeMultipleSubscriptions(method, branchKey);\n }\n pushData(method, data, branches) {\n this.streaming.pushData(method, data, branches);\n }\n pushDataToSingle(method, subscription, data) {\n this.streaming.pushDataToSingle(method, subscription, data);\n }\n closeSingleSubscription(method, subscription) {\n this.streaming.closeSingleSubscription(method, subscription);\n }\n acceptRequestOnBranch(requestContext, method, branch) {\n this.streaming.acceptRequestOnBranch(requestContext, method, branch);\n }\n rejectRequest(requestContext, method, reason) {\n this.streaming.rejectRequest(requestContext, method, reason);\n }\n onSubRequest(callback) {\n this.streaming.onSubRequest(callback);\n }\n onSubAdded(callback) {\n this.streaming.onSubAdded(callback);\n }\n onSubRemoved(callback) {\n this.streaming.onSubRemoved(callback);\n }\n handleInvokeMessage(msg) {\n const invocationId = msg.invocation_id;\n const callerId = msg.caller_id;\n const methodId = msg.method_id;\n const args = msg.arguments_kv;\n const methodList = this.serverRepository.getList();\n const method = methodList.filter((m) => {\n return m.repoId === methodId;\n })[0];\n if (method === undefined) {\n return;\n }\n const client = this.clientRepository.getServerById(callerId)?.instance;\n const invocationArgs = { args, instance: client };\n this.callbacks.execute(\"onInvoked\", method, invocationId, invocationArgs);\n }\n}\n\nclass UserSubscription {\n repository;\n subscriptionData;\n get requestArguments() {\n return this.subscriptionData.params.arguments || {};\n }\n get servers() {\n return this.subscriptionData.trackedServers.reduce((servers, pair) => {\n if (pair.subscriptionId) {\n const server = this.repository.getServerById(pair.serverId)?.instance;\n if (server) {\n servers.push(server);\n }\n }\n return servers;\n }, []);\n }\n get serverInstance() {\n return this.servers[0];\n }\n get stream() {\n return this.subscriptionData.method;\n }\n constructor(repository, subscriptionData) {\n this.repository = repository;\n this.subscriptionData = subscriptionData;\n }\n onData(dataCallback) {\n if (typeof dataCallback !== \"function\") {\n throw new TypeError(\"The data callback must be a function.\");\n }\n this.subscriptionData.handlers.onData.push(dataCallback);\n if (this.subscriptionData.handlers.onData.length === 1 && this.subscriptionData.queued.data.length > 0) {\n this.subscriptionData.queued.data.forEach((dataItem) => {\n dataCallback(dataItem);\n });\n }\n }\n onClosed(closedCallback) {\n if (typeof closedCallback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onClosed.push(closedCallback);\n }\n onFailed(callback) {\n }\n onConnected(callback) {\n if (typeof callback !== \"function\") {\n throw new TypeError(\"The callback must be a function.\");\n }\n this.subscriptionData.handlers.onConnected.push(callback);\n }\n close() {\n this.subscriptionData.close();\n }\n setNewSubscription(newSub) {\n this.subscriptionData = newSub;\n }\n}\n\nclass TimedCache {\n config;\n cache = [];\n timeoutIds = [];\n constructor(config) {\n this.config = config;\n }\n add(element) {\n const id = nanoid(10);\n this.cache.push({ id, element });\n const timeoutId = setTimeout(() => {\n const elementIdx = this.cache.findIndex((entry) => entry.id === id);\n if (elementIdx < 0) {\n return;\n }\n this.cache.splice(elementIdx, 1);\n }, this.config.ELEMENT_TTL_MS);\n this.timeoutIds.push(timeoutId);\n }\n flush() {\n const elements = this.cache.map((entry) => entry.element);\n this.timeoutIds.forEach((id) => clearInterval(id));\n this.cache = [];\n this.timeoutIds = [];\n return elements;\n }\n}\n\nconst STATUS_AWAITING_ACCEPT = \"awaitingAccept\";\nconst STATUS_SUBSCRIBED = \"subscribed\";\nconst ERR_MSG_SUB_FAILED = \"Subscription failed.\";\nconst ERR_MSG_SUB_REJECTED = \"Subscription rejected.\";\nconst ON_CLOSE_MSG_SERVER_INIT = \"ServerInitiated\";\nconst ON_CLOSE_MSG_CLIENT_INIT = \"ClientInitiated\";\nclass ClientStreaming {\n session;\n repository;\n logger;\n subscriptionsList = {};\n timedCache = new TimedCache({ ELEMENT_TTL_MS: 10000 });\n subscriptionIdToLocalKeyMap = {};\n nextSubLocalKey = 0;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"subscribed\", this.handleSubscribed);\n session.on(\"event\", this.handleEventData);\n session.on(\"subscription-cancelled\", this.handleSubscriptionCancelled);\n }\n subscribe(streamingMethod, params, targetServers, success, error, existingSub) {\n if (targetServers.length === 0) {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" No available servers matched the target params.\",\n });\n return;\n }\n const subLocalKey = this.getNextSubscriptionLocalKey();\n const pendingSub = this.registerSubscription(subLocalKey, streamingMethod, params, success, error, params.methodResponseTimeout || 10000, existingSub);\n if (typeof pendingSub !== \"object\") {\n error({\n method: streamingMethod,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Unable to register the user callbacks.\",\n });\n return;\n }\n targetServers.forEach((target) => {\n const serverId = target.server.id;\n const method = target.methods.find((m) => m.name === streamingMethod.name);\n if (!method) {\n this.logger.error(`can not find method ${streamingMethod.name} for target ${target.server.id}`);\n return;\n }\n pendingSub.trackedServers.push({\n serverId,\n subscriptionId: undefined,\n });\n const msg = {\n type: \"subscribe\",\n server_id: serverId,\n method_id: method.gatewayId,\n arguments_kv: params.arguments,\n };\n this.session.send(msg, { serverId, subLocalKey })\n .then((m) => this.handleSubscribed(m))\n .catch((err) => this.handleErrorSubscribing(err));\n });\n }\n drainSubscriptions() {\n const existing = Object.values(this.subscriptionsList);\n this.subscriptionsList = {};\n this.subscriptionIdToLocalKeyMap = {};\n return existing;\n }\n drainSubscriptionsCache() {\n return this.timedCache.flush();\n }\n getNextSubscriptionLocalKey() {\n const current = this.nextSubLocalKey;\n this.nextSubLocalKey += 1;\n return current;\n }\n registerSubscription(subLocalKey, method, params, success, error, timeout, existingSub) {\n const subsInfo = {\n localKey: subLocalKey,\n status: STATUS_AWAITING_ACCEPT,\n method,\n params,\n success,\n error,\n trackedServers: [],\n handlers: {\n onData: existingSub?.handlers.onData || [],\n onClosed: existingSub?.handlers.onClosed || [],\n onConnected: existingSub?.handlers.onConnected || [],\n },\n queued: {\n data: [],\n closers: [],\n },\n timeoutId: undefined,\n close: () => this.closeSubscription(subLocalKey),\n subscription: existingSub?.subscription\n };\n if (!existingSub) {\n if (params.onData) {\n subsInfo.handlers.onData.push(params.onData);\n }\n if (params.onClosed) {\n subsInfo.handlers.onClosed.push(params.onClosed);\n }\n if (params.onConnected) {\n subsInfo.handlers.onConnected.push(params.onConnected);\n }\n }\n this.subscriptionsList[subLocalKey] = subsInfo;\n subsInfo.timeoutId = setTimeout(() => {\n if (this.subscriptionsList[subLocalKey] === undefined) {\n return;\n }\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n error({\n method,\n called_with: params.arguments,\n message: ERR_MSG_SUB_FAILED + \" Subscription attempt timed out after \" + timeout + \" ms.\",\n });\n delete this.subscriptionsList[subLocalKey];\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED && pendingSub.trackedServers.length > 0) {\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return (typeof server.subscriptionId !== \"undefined\");\n });\n delete pendingSub.timeoutId;\n if (pendingSub.trackedServers.length <= 0) {\n this.callOnClosedHandlers(pendingSub);\n delete this.subscriptionsList[subLocalKey];\n }\n }\n }, timeout);\n return subsInfo;\n }\n handleErrorSubscribing = (errorResponse) => {\n const tag = errorResponse._tag;\n const subLocalKey = tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n pendingSub.trackedServers = pendingSub.trackedServers.filter((server) => {\n return server.serverId !== tag.serverId;\n });\n if (pendingSub.trackedServers.length <= 0) {\n clearTimeout(pendingSub.timeoutId);\n if (pendingSub.status === STATUS_AWAITING_ACCEPT) {\n const reason = (typeof errorResponse.reason === \"string\" && errorResponse.reason !== \"\") ?\n ' Publisher said \"' + errorResponse.reason + '\".' :\n \" No reason given.\";\n const callArgs = typeof pendingSub.params.arguments === \"object\" ?\n JSON.stringify(pendingSub.params.arguments) :\n \"{}\";\n pendingSub.error({\n message: ERR_MSG_SUB_REJECTED + reason + \" Called with:\" + callArgs,\n called_with: pendingSub.params.arguments,\n method: pendingSub.method,\n });\n }\n else if (pendingSub.status === STATUS_SUBSCRIBED) {\n this.callOnClosedHandlers(pendingSub);\n }\n delete this.subscriptionsList[subLocalKey];\n }\n };\n handleSubscribed = (msg) => {\n const subLocalKey = msg._tag.subLocalKey;\n const pendingSub = this.subscriptionsList[subLocalKey];\n if (typeof pendingSub !== \"object\") {\n return;\n }\n const serverId = msg._tag.serverId;\n const acceptingServer = pendingSub.trackedServers\n .filter((server) => {\n return server.serverId === serverId;\n })[0];\n if (typeof acceptingServer !== \"object\") {\n return;\n }\n acceptingServer.subscriptionId = msg.subscription_id;\n this.subscriptionIdToLocalKeyMap[msg.subscription_id] = subLocalKey;\n const isFirstResponse = (pendingSub.status === STATUS_AWAITING_ACCEPT);\n pendingSub.status = STATUS_SUBSCRIBED;\n if (isFirstResponse) {\n let reconnect = false;\n let sub = pendingSub.subscription;\n if (sub) {\n sub.setNewSubscription(pendingSub);\n pendingSub.success(sub);\n reconnect = true;\n }\n else {\n sub = new UserSubscription(this.repository, pendingSub);\n pendingSub.subscription = sub;\n pendingSub.success(sub);\n }\n for (const handler of pendingSub.handlers.onConnected) {\n try {\n handler(sub.serverInstance, reconnect);\n }\n catch (e) {\n }\n }\n }\n };\n handleEventData = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const trackedServersFound = subscription.trackedServers.filter((s) => {\n return s.subscriptionId === msg.subscription_id;\n });\n if (trackedServersFound.length !== 1) {\n return;\n }\n const isPrivateData = msg.oob;\n const sendingServerId = trackedServersFound[0].serverId;\n const server = this.repository.getServerById(sendingServerId);\n const receivedStreamData = () => {\n return {\n data: msg.data,\n server: server?.instance ?? {},\n requestArguments: subscription.params.arguments,\n message: undefined,\n private: isPrivateData,\n };\n };\n const onDataHandlers = subscription.handlers.onData;\n const queuedData = subscription.queued.data;\n if (onDataHandlers.length > 0) {\n onDataHandlers.forEach((callback) => {\n if (typeof callback === \"function\") {\n callback(receivedStreamData());\n }\n });\n }\n else {\n queuedData.push(receivedStreamData());\n }\n };\n handleSubscriptionCancelled = (msg) => {\n const subLocalKey = this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n if (typeof subLocalKey === \"undefined\") {\n return;\n }\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n const expectedNewLength = subscription.trackedServers.length - 1;\n subscription.trackedServers = subscription.trackedServers.filter((server) => {\n if (server.subscriptionId === msg.subscription_id) {\n subscription.queued.closers.push(server.serverId);\n return false;\n }\n else {\n return true;\n }\n });\n if (subscription.trackedServers.length !== expectedNewLength) {\n return;\n }\n if (subscription.trackedServers.length <= 0) {\n this.timedCache.add(subscription);\n clearTimeout(subscription.timeoutId);\n this.callOnClosedHandlers(subscription);\n delete this.subscriptionsList[subLocalKey];\n }\n delete this.subscriptionIdToLocalKeyMap[msg.subscription_id];\n };\n callOnClosedHandlers(subscription, reason) {\n const closersCount = subscription.queued.closers.length;\n const closingServerId = (closersCount > 0) ? subscription.queued.closers[closersCount - 1] : null;\n let closingServer;\n if (closingServerId !== undefined && typeof closingServerId === \"string\") {\n closingServer = this.repository.getServerById(closingServerId)?.instance ?? {};\n }\n subscription.handlers.onClosed.forEach((callback) => {\n if (typeof callback !== \"function\") {\n return;\n }\n callback({\n message: reason || ON_CLOSE_MSG_SERVER_INIT,\n requestArguments: subscription.params.arguments || {},\n server: closingServer,\n stream: subscription.method,\n });\n });\n }\n closeSubscription(subLocalKey) {\n const subscription = this.subscriptionsList[subLocalKey];\n if (typeof subscription !== \"object\") {\n return;\n }\n subscription.trackedServers.forEach((server) => {\n if (typeof server.subscriptionId === \"undefined\") {\n return;\n }\n subscription.queued.closers.push(server.serverId);\n this.session.sendFireAndForget({\n type: \"unsubscribe\",\n subscription_id: server.subscriptionId,\n reason_uri: \"\",\n reason: ON_CLOSE_MSG_CLIENT_INIT,\n }).catch((err) => {\n this.logger.warn(`Error sending unsubscribe for subscription id ${server.subscriptionId}: ${JSON.stringify(err)}`);\n });\n delete this.subscriptionIdToLocalKeyMap[server.subscriptionId];\n });\n subscription.trackedServers = [];\n this.callOnClosedHandlers(subscription, ON_CLOSE_MSG_CLIENT_INIT);\n delete this.subscriptionsList[subLocalKey];\n }\n}\n\nclass ClientProtocol {\n session;\n repository;\n logger;\n streaming;\n constructor(session, repository, logger) {\n this.session = session;\n this.repository = repository;\n this.logger = logger;\n session.on(\"peer-added\", (msg) => this.handlePeerAdded(msg));\n session.on(\"peer-removed\", (msg) => this.handlePeerRemoved(msg));\n session.on(\"methods-added\", (msg) => this.handleMethodsAddedMessage(msg));\n session.on(\"methods-removed\", (msg) => this.handleMethodsRemovedMessage(msg));\n this.streaming = new ClientStreaming(session, repository, logger);\n }\n subscribe(stream, options, targetServers, success, error, existingSub) {\n this.streaming.subscribe(stream, options, targetServers, success, error, existingSub);\n }\n invoke(id, method, args, target) {\n const serverId = target.id;\n const methodId = method.gatewayId;\n const msg = {\n type: \"call\",\n server_id: serverId,\n method_id: methodId,\n arguments_kv: args,\n };\n return this.session.send(msg, { invocationId: id, serverId })\n .then((m) => this.handleResultMessage(m))\n .catch((err) => this.handleInvocationError(err));\n }\n drainSubscriptions() {\n return this.streaming.drainSubscriptions();\n }\n drainSubscriptionsCache() {\n return this.streaming.drainSubscriptionsCache();\n }\n handlePeerAdded(msg) {\n const newPeerId = msg.new_peer_id;\n const remoteId = msg.identity;\n const isLocal = msg.meta ? msg.meta.local : true;\n const pid = Number(remoteId.process);\n const serverInfo = {\n machine: remoteId.machine,\n pid: isNaN(pid) ? remoteId.process : pid,\n instance: remoteId.instance,\n application: remoteId.application,\n applicationName: remoteId.applicationName,\n environment: remoteId.environment,\n region: remoteId.region,\n user: remoteId.user,\n windowId: remoteId.windowId,\n peerId: newPeerId,\n api: remoteId.api,\n isLocal\n };\n this.repository.addServer(serverInfo, newPeerId);\n }\n handlePeerRemoved(msg) {\n const removedPeerId = msg.removed_id;\n const reason = msg.reason;\n this.repository.removeServerById(removedPeerId, reason);\n }\n handleMethodsAddedMessage(msg) {\n const serverId = msg.server_id;\n const methods = msg.methods;\n methods.forEach((method) => {\n this.repository.addServerMethod(serverId, method);\n });\n }\n handleMethodsRemovedMessage(msg) {\n const serverId = msg.server_id;\n const methodIdList = msg.methods;\n const server = this.repository.getServerById(serverId);\n if (server) {\n const serverMethodKeys = Object.keys(server.methods);\n serverMethodKeys.forEach((methodKey) => {\n const method = server.methods[methodKey];\n if (methodIdList.indexOf(method.gatewayId) > -1) {\n this.repository.removeServerMethod(serverId, methodKey);\n }\n });\n }\n }\n handleResultMessage(msg) {\n const invocationId = msg._tag.invocationId;\n const result = msg.result;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n return {\n invocationId,\n result,\n instance: server?.instance,\n status: InvokeStatus.Success,\n message: \"\"\n };\n }\n handleInvocationError(msg) {\n this.logger.debug(`handle invocation error ${JSON.stringify(msg)}`);\n if (\"_tag\" in msg) {\n const invocationId = msg._tag.invocationId;\n const serverId = msg._tag.serverId;\n const server = this.repository.getServerById(serverId);\n const message = msg.reason;\n const context = msg.context;\n return {\n invocationId,\n result: context,\n instance: server?.instance,\n status: InvokeStatus.Error,\n message\n };\n }\n else {\n return {\n invocationId: \"\",\n message: msg.message,\n status: InvokeStatus.Error,\n error: msg\n };\n }\n }\n}\n\nfunction gW3ProtocolFactory (instance, connection, clientRepository, serverRepository, libConfig, interop) {\n const logger = libConfig.logger.subLogger(\"gw3-protocol\");\n let resolveReadyPromise;\n const readyPromise = new Promise((resolve) => {\n resolveReadyPromise = resolve;\n });\n const session = connection.domain(\"agm\", [\"subscribed\"]);\n const server = new ServerProtocol(session, clientRepository, serverRepository, logger.subLogger(\"server\"));\n const client = new ClientProtocol(session, clientRepository, logger.subLogger(\"client\"));\n async function handleReconnect() {\n logger.info(\"reconnected - will replay registered methods and subscriptions\");\n client.drainSubscriptionsCache().forEach((sub) => {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to soft-re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`soft-subscribing to method ${methodInfo.name} DONE`)).catch((error) => logger.warn(`subscribing to method ${methodInfo.name} failed: ${JSON.stringify(error)}}`));\n });\n const reconnectionPromises = [];\n const existingSubscriptions = client.drainSubscriptions();\n for (const sub of existingSubscriptions) {\n const methodInfo = sub.method;\n const params = Object.assign({}, sub.params);\n logger.info(`trying to re-subscribe to method ${methodInfo.name}, with params: ${JSON.stringify(params)}`);\n reconnectionPromises.push(interop.client.subscribe(methodInfo, params, undefined, undefined, sub).then(() => logger.info(`subscribing to method ${methodInfo.name} DONE`)));\n }\n const registeredMethods = serverRepository.getList();\n serverRepository.reset();\n for (const method of registeredMethods) {\n const def = method.definition;\n if (method.stream) {\n reconnectionPromises.push(interop.server.createStream(def, method.streamCallbacks, undefined, undefined, method.stream)\n .then(() => logger.info(`subscribing to method ${def.name} DONE`))\n .catch(() => logger.warn(`subscribing to method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallback) {\n reconnectionPromises.push(interop.register(def, method.theFunction.userCallback)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n else if (method?.theFunction?.userCallbackAsync) {\n reconnectionPromises.push(interop.registerAsync(def, method.theFunction.userCallbackAsync)\n .then(() => logger.info(`registering method ${def.name} DONE`))\n .catch(() => logger.warn(`registering method ${def.name} FAILED`)));\n }\n }\n await Promise.all(reconnectionPromises);\n logger.info(\"Interop is re-announced\");\n }\n function handleInitialJoin() {\n if (resolveReadyPromise) {\n resolveReadyPromise({\n client,\n server,\n });\n resolveReadyPromise = undefined;\n }\n }\n session.onJoined((reconnect) => {\n clientRepository.addServer(instance, connection.peerId);\n if (reconnect) {\n handleReconnect().then(() => connection.setLibReAnnounced({ name: \"interop\" })).catch((error) => logger.warn(`Error while re-announcing interop: ${JSON.stringify(error)}`));\n }\n else {\n handleInitialJoin();\n }\n });\n session.onLeft(() => {\n clientRepository.reset();\n });\n session.join();\n return readyPromise;\n}\n\nclass Interop {\n instance;\n readyPromise;\n client;\n server;\n unwrappedInstance;\n protocol;\n clientRepository;\n serverRepository;\n constructor(configuration) {\n if (typeof configuration === \"undefined\") {\n throw new Error(\"configuration is required\");\n }\n if (typeof configuration.connection === \"undefined\") {\n throw new Error(\"configuration.connections is required\");\n }\n const connection = configuration.connection;\n if (typeof configuration.methodResponseTimeout !== \"number\") {\n configuration.methodResponseTimeout = 30 * 1000;\n }\n if (typeof configuration.waitTimeoutMs !== \"number\") {\n configuration.waitTimeoutMs = 30 * 1000;\n }\n this.unwrappedInstance = new InstanceWrapper(this, undefined, connection);\n this.instance = this.unwrappedInstance.unwrap();\n this.clientRepository = new ClientRepository(configuration.logger.subLogger(\"cRep\"), this);\n this.serverRepository = new ServerRepository();\n let protocolPromise;\n if (connection.protocolVersion === 3) {\n protocolPromise = gW3ProtocolFactory(this.instance, connection, this.clientRepository, this.serverRepository, configuration, this);\n }\n else {\n throw new Error(`protocol ${connection.protocolVersion} not supported`);\n }\n this.readyPromise = protocolPromise.then((protocol) => {\n this.protocol = protocol;\n this.client = new Client(this.protocol, this.clientRepository, this.instance, configuration);\n this.server = new Server(this.protocol, this.serverRepository);\n return this;\n });\n }\n ready() {\n return this.readyPromise;\n }\n serverRemoved(callback) {\n return this.client.serverRemoved(callback);\n }\n serverAdded(callback) {\n return this.client.serverAdded(callback);\n }\n serverMethodRemoved(callback) {\n return this.client.serverMethodRemoved(callback);\n }\n serverMethodAdded(callback) {\n return this.client.serverMethodAdded(callback);\n }\n methodRemoved(callback) {\n return this.client.methodRemoved(callback);\n }\n methodAdded(callback) {\n return this.client.methodAdded(callback);\n }\n methodsForInstance(instance) {\n return this.client.methodsForInstance(instance);\n }\n methods(methodFilter) {\n return this.client.methods(methodFilter);\n }\n servers(methodFilter) {\n return this.client.servers(methodFilter);\n }\n subscribe(method, options, successCallback, errorCallback) {\n return this.client.subscribe(method, options, successCallback, errorCallback);\n }\n createStream(streamDef, callbacks, successCallback, errorCallback) {\n return this.server.createStream(streamDef, callbacks, successCallback, errorCallback);\n }\n unregister(methodFilter) {\n return this.server.unregister(methodFilter);\n }\n registerAsync(methodDefinition, callback) {\n return this.server.registerAsync(methodDefinition, callback);\n }\n register(methodDefinition, callback) {\n return this.server.register(methodDefinition, callback);\n }\n invoke(methodFilter, argumentObj, target, additionalOptions, success, error) {\n return this.client.invoke(methodFilter, argumentObj, target, additionalOptions, success, error);\n }\n waitForMethod(name) {\n const pw = new PromiseWrapper();\n const unsubscribe = this.client.methodAdded((m) => {\n if (m.name === name) {\n unsubscribe();\n pw.resolve(m);\n }\n });\n return pw.promise;\n }\n}\n\nconst successMessages = [\"subscribed\", \"success\"];\nclass MessageBus {\n connection;\n logger;\n peerId;\n session;\n subscriptions;\n readyPromise;\n constructor(connection, logger) {\n this.connection = connection;\n this.logger = logger;\n this.peerId = connection.peerId;\n this.subscriptions = [];\n this.session = connection.domain(\"bus\", successMessages);\n this.readyPromise = this.session.join();\n this.readyPromise.then(() => {\n this.watchOnEvent();\n });\n }\n ready() {\n return this.readyPromise;\n }\n publish = (topic, data, options) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"publish\",\n topic,\n data,\n peer_id: this.peerId,\n routing_key: routingKey,\n target_identity: target\n });\n this.session.send(args)\n .catch((err) => {\n this.logger.error(`Failed to publish message to topic ${topic} with routing key ${routingKey} for ${JSON.stringify(target)}: ${JSON.stringify(err)}`);\n });\n };\n subscribe = (topic, callback, options) => {\n return new Promise((resolve, reject) => {\n const { routingKey, target } = options || {};\n const args = this.removeEmptyValues({\n type: \"subscribe\",\n topic,\n peer_id: this.peerId,\n routing_key: routingKey,\n source: target\n });\n this.session.send(args)\n .then((response) => {\n const { subscription_id } = response;\n this.subscriptions.push({ subscription_id, topic, callback, source: target });\n resolve({\n unsubscribe: () => {\n this.session.send({ type: \"unsubscribe\", subscription_id, peer_id: this.peerId })\n .then(() => {\n this.subscriptions = this.subscriptions.filter((s) => s.subscription_id !== subscription_id);\n }).catch((err) => {\n this.logger.warn(`Failed to send unsubscribe request for ${subscription_id}: ${JSON.stringify(err)}`);\n });\n return Promise.resolve();\n }\n });\n })\n .catch((error) => reject(error));\n });\n };\n watchOnEvent = () => {\n this.session.on(\"event\", (args) => {\n const { data, subscription_id } = args;\n const source = args[\"publisher-identity\"];\n const subscription = this.subscriptions.find((s) => s.subscription_id === subscription_id);\n if (subscription) {\n if (!subscription.source) {\n subscription.callback(data, subscription.topic, source);\n }\n else {\n if (this.keysMatch(subscription.source, source)) {\n subscription.callback(data, subscription.topic, source);\n }\n }\n }\n });\n };\n removeEmptyValues(obj) {\n const cleaned = {};\n Object.keys(obj).forEach((key) => {\n if (obj[key] !== undefined && obj[key] !== null) {\n cleaned[key] = obj[key];\n }\n });\n return cleaned;\n }\n keysMatch(obj1, obj2) {\n const keysObj1 = Object.keys(obj1);\n let allMatch = true;\n keysObj1.forEach((key) => {\n if (obj1[key] !== obj2[key]) {\n allMatch = false;\n }\n });\n return allMatch;\n }\n}\n\nconst IOConnectCoreFactory = (userConfig, ext) => {\n const iodesktop = typeof window === \"object\" ? (window.iodesktop ?? window.glue42gd) : undefined;\n const preloadPromise = typeof window === \"object\" ? (window.gdPreloadPromise ?? Promise.resolve()) : Promise.resolve();\n const glueInitTimer = timer(\"glue\");\n userConfig = userConfig || {};\n ext = ext || {};\n const internalConfig = prepareConfig(userConfig, ext, iodesktop);\n let _connection;\n let _interop;\n let _logger;\n let _metrics;\n let _contexts;\n let _bus;\n let _allowTrace;\n const libs = {};\n function registerLib(name, inner, t) {\n _allowTrace = _logger.canPublish(\"trace\");\n if (_allowTrace) {\n _logger.trace(`registering ${name} module`);\n }\n const done = (e) => {\n inner.initTime = t.stop();\n inner.initEndTime = t.endTime;\n inner.marks = t.marks;\n if (!_allowTrace) {\n return;\n }\n const traceMessage = e ?\n `${name} failed - ${e.message}` :\n `${name} is ready - ${t.endTime - t.startTime}`;\n _logger.trace(traceMessage);\n };\n inner.initStartTime = t.startTime;\n if (inner.ready) {\n inner.ready()\n .then(() => {\n done();\n })\n .catch((e) => {\n const error = typeof e === \"string\" ? new Error(e) : e;\n done(error);\n });\n }\n else {\n done();\n }\n if (!Array.isArray(name)) {\n name = [name];\n }\n name.forEach((n) => {\n libs[n] = inner;\n IOConnectCoreFactory[n] = inner;\n });\n }\n function setupConnection() {\n const initTimer = timer(\"connection\");\n _connection = new Connection(internalConfig.connection, _logger.subLogger(\"connection\"));\n let authPromise = Promise.resolve(internalConfig.auth);\n if (internalConfig.connection && !internalConfig.auth) {\n if (iodesktop) {\n authPromise = iodesktop.getGWToken()\n .then((token) => {\n return {\n gatewayToken: token\n };\n });\n }\n else if (typeof window !== \"undefined\" && window?.glue42electron) {\n if (typeof window.glue42electron.gwToken === \"string\") {\n authPromise = Promise.resolve({\n gatewayToken: window.glue42electron.gwToken\n });\n }\n }\n else {\n authPromise = Promise.reject(\"You need to provide auth information\");\n }\n }\n return authPromise\n .then((authConfig) => {\n initTimer.mark(\"auth-promise-resolved\");\n let authRequest;\n if (Object.prototype.toString.call(authConfig) === \"[object Object]\") {\n authRequest = authConfig;\n }\n else {\n throw new Error(\"Invalid auth object - \" + JSON.stringify(authConfig));\n }\n return _connection.login(authRequest);\n })\n .then(() => {\n registerLib(\"connection\", _connection, initTimer);\n return internalConfig;\n })\n .catch((e) => {\n if (_connection) {\n _connection.logout();\n }\n throw e;\n });\n }\n function setupLogger() {\n const initTimer = timer(\"logger\");\n _logger = new Logger(`${internalConfig.connection.identity?.application}`, undefined, internalConfig.customLogger);\n _logger.consoleLevel(internalConfig.logger.console);\n _logger.publishLevel(internalConfig.logger.publish);\n if (_logger.canPublish(\"debug\")) {\n _logger.debug(\"initializing glue...\");\n }\n registerLib(\"logger\", _logger, initTimer);\n return Promise.resolve(undefined);\n }\n function setupMetrics() {\n const initTimer = timer(\"metrics\");\n const config = internalConfig.metrics;\n const metricsPublishingEnabledFunc = iodesktop?.getMetricsPublishingEnabled;\n const identity = internalConfig.connection.identity;\n const canUpdateMetric = metricsPublishingEnabledFunc ? metricsPublishingEnabledFunc : () => true;\n const disableAutoAppSystem = (typeof config !== \"boolean\" && config.disableAutoAppSystem) ?? false;\n _metrics = metrics({\n connection: config ? _connection : undefined,\n logger: _logger.subLogger(\"metrics\"),\n canUpdateMetric,\n system: \"Glue42\",\n service: identity?.service ?? iodesktop?.applicationName ?? internalConfig.application,\n instance: identity?.instance ?? identity?.windowId ?? nanoid(10),\n disableAutoAppSystem,\n pagePerformanceMetrics: typeof config !== \"boolean\" ? config?.pagePerformanceMetrics : undefined\n });\n registerLib(\"metrics\", _metrics, initTimer);\n return Promise.resolve();\n }\n function setupInterop() {\n const initTimer = timer(\"interop\");\n const agmConfig = {\n connection: _connection,\n logger: _logger.subLogger(\"interop\"),\n };\n _interop = new Interop(agmConfig);\n Logger.Interop = _interop;\n registerLib([\"interop\", \"agm\"], _interop, initTimer);\n return Promise.resolve();\n }\n function setupContexts() {\n const hasActivities = (internalConfig.activities && _connection.protocolVersion === 3);\n const needsContexts = internalConfig.contexts || hasActivities;\n if (needsContexts) {\n const initTimer = timer(\"contexts\");\n _contexts = new ContextsModule({\n connection: _connection,\n logger: _logger.subLogger(\"contexts\"),\n trackAllContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.trackAllContexts : false,\n reAnnounceKnownContexts: typeof internalConfig.contexts === \"object\" ? internalConfig.contexts.reAnnounceKnownContexts : false\n });\n registerLib(\"contexts\", _contexts, initTimer);\n return _contexts;\n }\n else {\n const replayer = _connection.replayer;\n if (replayer) {\n replayer.drain(ContextMessageReplaySpec.name);\n }\n }\n }\n async function setupBus() {\n if (!internalConfig.bus) {\n return Promise.resolve();\n }\n const initTimer = timer(\"bus\");\n _bus = new MessageBus(_connection, _logger.subLogger(\"bus\"));\n registerLib(\"bus\", _bus, initTimer);\n return Promise.resolve();\n }\n function setupExternalLibs(externalLibs) {\n try {\n externalLibs.forEach((lib) => {\n setupExternalLib(lib.name, lib.create);\n });\n return Promise.resolve();\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n function setupExternalLib(name, createCallback) {\n const initTimer = timer(name);\n const lib = createCallback(libs);\n if (lib) {\n registerLib(name, lib, initTimer);\n }\n }\n function waitForLibs() {\n const libsReadyPromises = Object.keys(libs).map((key) => {\n const lib = libs[key];\n return lib.ready ?\n lib.ready() : Promise.resolve();\n });\n return Promise.all(libsReadyPromises);\n }\n function constructGlueObject() {\n const feedbackFunc = (feedbackInfo) => {\n if (!_interop) {\n return;\n }\n _interop.invoke(\"T42.ACS.Feedback\", feedbackInfo, \"best\");\n };\n const info = {\n coreVersion: version,\n version: internalConfig.version\n };\n glueInitTimer.stop();\n const glue = {\n feedback: feedbackFunc,\n info,\n logger: _logger,\n interop: _interop,\n agm: _interop,\n connection: _connection,\n metrics: _metrics,\n contexts: _contexts,\n bus: _bus,\n version: internalConfig.version,\n userConfig,\n done: () => {\n _logger?.info(\"done called by user...\");\n return _connection.logout();\n }\n };\n glue.performance = {\n get glueVer() {\n return internalConfig.version;\n },\n get glueConfig() {\n return JSON.stringify(userConfig);\n },\n get browser() {\n return window.performance.timing.toJSON();\n },\n get memory() {\n return window.performance.memory;\n },\n get initTimes() {\n const all = getAllTimers();\n return Object.keys(all).map((key) => {\n const t = all[key];\n return {\n name: key,\n duration: t.endTime - t.startTime,\n marks: t.marks,\n startTime: t.startTime,\n endTime: t.endTime\n };\n });\n }\n };\n Object.keys(libs).forEach((key) => {\n const lib = libs[key];\n glue[key] = lib;\n });\n glue.config = {};\n Object.keys(internalConfig).forEach((k) => {\n glue.config[k] = internalConfig[k];\n });\n if (ext && ext.extOptions) {\n Object.keys(ext.extOptions).forEach((k) => {\n glue.config[k] = ext?.extOptions[k];\n });\n }\n if (ext?.enrichGlue) {\n ext.enrichGlue(glue);\n }\n if (iodesktop && iodesktop.updatePerfData) {\n iodesktop.updatePerfData(glue.performance);\n }\n if (glue.agm) {\n const deprecatedDecorator = (fn, wrong, proper) => {\n return function () {\n glue.logger.warn(`glue.js - 'glue.agm.${wrong}' method is deprecated, use 'glue.interop.${proper}' instead.`);\n return fn.apply(glue.agm, arguments);\n };\n };\n const agmAny = glue.agm;\n agmAny.method_added = deprecatedDecorator(glue.agm.methodAdded, \"method_added\", \"methodAdded\");\n agmAny.method_removed = deprecatedDecorator(glue.agm.methodRemoved, \"method_removed\", \"methodRemoved\");\n agmAny.server_added = deprecatedDecorator(glue.agm.serverAdded, \"server_added\", \"serverAdded\");\n agmAny.server_method_aded = deprecatedDecorator(glue.agm.serverMethodAdded, \"server_method_aded\", \"serverMethodAdded\");\n agmAny.server_method_removed = deprecatedDecorator(glue.agm.serverMethodRemoved, \"server_method_removed\", \"serverMethodRemoved\");\n }\n return glue;\n }\n async function registerInstanceIfNeeded() {\n const RegisterInstanceMethodName = \"T42.ACS.RegisterInstance\";\n if (Utils.isNode() && typeof process.env._GD_STARTING_CONTEXT_ === \"undefined\" && typeof userConfig?.application !== \"undefined\") {\n const isMethodAvailable = _interop.methods({ name: RegisterInstanceMethodName }).length > 0;\n if (isMethodAvailable) {\n try {\n await _interop.invoke(RegisterInstanceMethodName, { appName: userConfig?.application, pid: process.pid });\n }\n catch (error) {\n const typedError = error;\n _logger.error(`Cannot register as an instance: ${JSON.stringify(typedError.message)}`);\n }\n }\n }\n }\n return preloadPromise\n .then(setupLogger)\n .then(setupConnection)\n .then(() => Promise.all([setupMetrics(), setupInterop(), setupContexts(), setupBus()]))\n .then(() => _interop.readyPromise)\n .then(() => registerInstanceIfNeeded())\n .then(() => {\n return setupExternalLibs(internalConfig.libs || []);\n })\n .then(waitForLibs)\n .then(constructGlueObject)\n .catch((err) => {\n return Promise.reject({\n err,\n libs\n });\n });\n};\nif (typeof window !== \"undefined\") {\n window.IOConnectCore = IOConnectCoreFactory;\n}\nIOConnectCoreFactory.version = version;\nIOConnectCoreFactory.default = IOConnectCoreFactory;\n\nexport { IOConnectCoreFactory as default };\n//# sourceMappingURL=core.es.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map",null,null,null,"let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=application.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=system.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwimlaneItemType = exports.LayoutType = void 0;\nvar LayoutType;\n(function (LayoutType) {\n LayoutType[\"Global\"] = \"Global\";\n LayoutType[\"Activity\"] = \"Activity\";\n LayoutType[\"ApplicationDefault\"] = \"ApplicationDefault\";\n LayoutType[\"Swimlane\"] = \"Swimlane\";\n LayoutType[\"Workspaces\"] = \"Workspace\";\n})(LayoutType || (exports.LayoutType = LayoutType = {}));\nvar SwimlaneItemType;\n(function (SwimlaneItemType) {\n SwimlaneItemType[\"Tab\"] = \"tab\";\n SwimlaneItemType[\"Window\"] = \"window\";\n SwimlaneItemType[\"Canvas\"] = \"canvas\";\n})(SwimlaneItemType || (exports.SwimlaneItemType = SwimlaneItemType = {}));\n//# sourceMappingURL=layout.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swTheme.js.map","\"use strict\";\n/**\n * This file was automatically generated by json-schema-to-typescript.\n * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n * and run json-schema-to-typescript to regenerate this file.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=swConfiguration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// export { SchemaValidator } from \"./validator\";\n// export { FileProvider } from \"./fileProvider\";\n// export { SchemaProvider } from \"./provider\";\n__exportStar(require(\"./application\"), exports);\n__exportStar(require(\"./system\"), exports);\n__exportStar(require(\"./layout\"), exports);\n__exportStar(require(\"./swTheme\"), exports);\n__exportStar(require(\"./swConfiguration\"), exports);\n//# sourceMappingURL=main.js.map",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"const connectBrowserAppProps = [\"name\", \"title\", \"version\", \"customProperties\", \"icon\", \"caption\", \"type\"];\nconst fdc3v2AppProps = [\"appId\", \"name\", \"type\", \"details\", \"version\", \"title\", \"tooltip\", \"lang\", \"description\", \"categories\", \"icons\", \"screenshots\", \"contactEmail\", \"moreInfo\", \"publisher\", \"customConfig\", \"hostManifests\", \"interop\", \"localizedVersions\"];\n\n/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nDecoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nDecoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nDecoder.union;\r\n/** See `Decoder.intersection` */\r\nDecoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nDecoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nDecoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nDecoder.succeed;\r\n/** See `Decoder.fail` */\r\nDecoder.fail;\r\n/** See `Decoder.lazy` */\r\nDecoder.lazy;\n\nconst nonEmptyStringDecoder = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nconst nonNegativeNumberDecoder = number().where((num) => num >= 0, \"Expected a non-negative number\");\n\nconst intentDefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n displayName: optional(string()),\n contexts: optional(array(string())),\n customConfig: optional(object())\n});\nconst v2TypeDecoder = oneOf(constant(\"web\"), constant(\"native\"), constant(\"citrix\"), constant(\"onlineNative\"), constant(\"other\"));\nconst v2DetailsDecoder = object({\n url: nonEmptyStringDecoder\n});\nconst v2IconDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder)\n});\nconst v2ScreenshotDecoder = object({\n src: nonEmptyStringDecoder,\n size: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder),\n label: optional(nonEmptyStringDecoder)\n});\nconst v2ListensForIntentDecoder = object({\n contexts: array(nonEmptyStringDecoder),\n displayName: optional(nonEmptyStringDecoder),\n resultType: optional(nonEmptyStringDecoder),\n customConfig: optional(anyJson())\n});\nconst v2IntentsDecoder = object({\n listensFor: optional(dict(v2ListensForIntentDecoder)),\n raises: optional(dict(array(nonEmptyStringDecoder)))\n});\nconst v2UserChannelDecoder = object({\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2AppChannelDecoder = object({\n name: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n broadcasts: optional(array(nonEmptyStringDecoder)),\n listensFor: optional(array(nonEmptyStringDecoder))\n});\nconst v2InteropDecoder = object({\n intents: optional(v2IntentsDecoder),\n userChannels: optional(v2UserChannelDecoder),\n appChannels: optional(array(v2AppChannelDecoder))\n});\nconst glue42ApplicationDetailsDecoder = object({\n url: optional(nonEmptyStringDecoder),\n top: optional(number()),\n left: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\nconst glue42HostManifestsBrowserDecoder = object({\n name: optional(nonEmptyStringDecoder),\n type: optional(nonEmptyStringDecoder.where((s) => s === \"window\", \"Expected a value of window\")),\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n customProperties: optional(anyJson()),\n icon: optional(string()),\n caption: optional(string()),\n details: optional(glue42ApplicationDetailsDecoder),\n intents: optional(array(intentDefinitionDecoder)),\n hidden: optional(boolean())\n});\nconst v1DefinitionDecoder = object({\n name: nonEmptyStringDecoder,\n appId: nonEmptyStringDecoder,\n title: optional(nonEmptyStringDecoder),\n version: optional(nonEmptyStringDecoder),\n manifest: nonEmptyStringDecoder,\n manifestType: nonEmptyStringDecoder,\n tooltip: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n images: optional(array(object({ url: optional(nonEmptyStringDecoder) }))),\n icons: optional(array(object({ icon: optional(nonEmptyStringDecoder) }))),\n customConfig: anyJson(),\n intents: optional(array(intentDefinitionDecoder))\n});\nconst v2LocalizedDefinitionDecoder = object({\n appId: optional(nonEmptyStringDecoder),\n name: optional(nonEmptyStringDecoder),\n details: optional(v2DetailsDecoder),\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder)\n});\nconst v2DefinitionDecoder = object({\n appId: nonEmptyStringDecoder,\n name: nonEmptyStringDecoder,\n type: v2TypeDecoder,\n details: v2DetailsDecoder,\n version: optional(nonEmptyStringDecoder),\n title: optional(nonEmptyStringDecoder),\n tooltip: optional(nonEmptyStringDecoder),\n lang: optional(nonEmptyStringDecoder),\n description: optional(nonEmptyStringDecoder),\n categories: optional(array(nonEmptyStringDecoder)),\n icons: optional(array(v2IconDecoder)),\n screenshots: optional(array(v2ScreenshotDecoder)),\n contactEmail: optional(nonEmptyStringDecoder),\n supportEmail: optional(nonEmptyStringDecoder),\n moreInfo: optional(nonEmptyStringDecoder),\n publisher: optional(nonEmptyStringDecoder),\n customConfig: optional(array(anyJson())),\n hostManifests: optional(anyJson()),\n interop: optional(v2InteropDecoder),\n localizedVersions: optional(dict(v2LocalizedDefinitionDecoder))\n});\nconst allDefinitionsDecoder = oneOf(v1DefinitionDecoder, v2DefinitionDecoder);\n\nconst parseDecoderErrorToStringMessage = (error) => {\n return `${error.kind} at ${error.at}: ${JSON.stringify(error.input)}. Reason - ${error.message}`;\n};\n\nclass FDC3Service {\n fdc3ToDesktopDefinitionType = {\n web: \"window\",\n native: \"exe\",\n citrix: \"citrix\",\n onlineNative: \"clickonce\",\n other: \"window\"\n };\n toApi() {\n return {\n isFdc3Definition: this.isFdc3Definition.bind(this),\n parseToBrowserBaseAppData: this.parseToBrowserBaseAppData.bind(this),\n parseToDesktopAppConfig: this.parseToDesktopAppConfig.bind(this)\n };\n }\n isFdc3Definition(definition) {\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n return { isFdc3: false, reason: parseDecoderErrorToStringMessage(decodeRes.error) };\n }\n if (definition.appId && definition.details) {\n return { isFdc3: true, version: \"2.0\" };\n }\n if (definition.manifest) {\n return { isFdc3: true, version: \"1.2\" };\n }\n return { isFdc3: false, reason: \"The passed definition is not FDC3\" };\n }\n parseToBrowserBaseAppData(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n const userProperties = this.getUserPropertiesFromDefinition(definition, version);\n const createOptions = { url: this.getUrl(definition, version) };\n const baseApplicationData = {\n name: definition.appId,\n type: \"window\",\n createOptions,\n userProperties: {\n ...userProperties,\n intents: version === \"1.2\"\n ? userProperties.intents\n : this.getIntentsFromV2AppDefinition(definition),\n details: createOptions\n },\n title: definition.title,\n version: definition.version,\n icon: this.getIconFromDefinition(definition, version),\n caption: definition.description,\n fdc3: version === \"2.0\" ? { ...definition, definitionVersion: \"2.0\" } : undefined,\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return baseApplicationData;\n }\n const ioDefinitionDecodeRes = glue42HostManifestsBrowserDecoder.run(ioConnectDefinition);\n if (!ioDefinitionDecodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(ioDefinitionDecodeRes.error)}`);\n }\n if (!Object.keys(ioDefinitionDecodeRes.result).length) {\n return baseApplicationData;\n }\n return this.mergeBaseAppDataWithGlueManifest(baseApplicationData, ioDefinitionDecodeRes.result);\n }\n parseToDesktopAppConfig(definition) {\n const { isFdc3, version } = this.isFdc3Definition(definition);\n if (!isFdc3) {\n throw new Error(\"The passed definition is not FDC3\");\n }\n const decodeRes = allDefinitionsDecoder.run(definition);\n if (!decodeRes.ok) {\n throw new Error(`Invalid FDC3 ${version} definition. Error: ${parseDecoderErrorToStringMessage(decodeRes.error)}`);\n }\n if (version === \"1.2\") {\n const fdc3v1Definition = definition;\n return {\n name: fdc3v1Definition.appId,\n type: \"window\",\n details: {\n url: this.getUrl(definition, version)\n },\n version: fdc3v1Definition.version,\n title: fdc3v1Definition.title,\n tooltip: fdc3v1Definition.tooltip,\n caption: fdc3v1Definition.description,\n icon: fdc3v1Definition.icons?.[0].icon,\n intents: fdc3v1Definition.intents,\n customProperties: {\n manifestType: fdc3v1Definition.manifestType,\n images: fdc3v1Definition.images,\n contactEmail: fdc3v1Definition.contactEmail,\n supportEmail: fdc3v1Definition.supportEmail,\n publisher: fdc3v1Definition.publisher,\n icons: fdc3v1Definition.icons,\n customConfig: fdc3v1Definition.customConfig\n }\n };\n }\n const fdc3v2Definition = definition;\n const desktopDefinition = {\n name: fdc3v2Definition.appId,\n type: this.fdc3ToDesktopDefinitionType[fdc3v2Definition.type],\n details: fdc3v2Definition.details,\n version: fdc3v2Definition.version,\n title: fdc3v2Definition.title,\n tooltip: fdc3v2Definition.tooltip,\n caption: fdc3v2Definition.description,\n icon: this.getIconFromDefinition(fdc3v2Definition, \"2.0\"),\n intents: this.getIntentsFromV2AppDefinition(fdc3v2Definition),\n fdc3: { ...fdc3v2Definition, definitionVersion: \"2.0\" }\n };\n const ioConnectDefinition = definition.hostManifests?.ioConnect || definition.hostManifests?.[\"Glue42\"];\n if (!ioConnectDefinition) {\n return desktopDefinition;\n }\n if (typeof ioConnectDefinition !== \"object\" || Array.isArray(ioConnectDefinition)) {\n throw new Error(`Invalid '${definition.hostManifests.ioConnect ? \"hostManifests.ioConnect\" : \"hostManifests['Glue42']\"}' key`);\n }\n return this.mergeDesktopConfigWithGlueManifest(desktopDefinition, ioConnectDefinition);\n }\n getUserPropertiesFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key)));\n }\n return Object.fromEntries(Object.entries(definition).filter(([key]) => !connectBrowserAppProps.includes(key) && !fdc3v2AppProps.includes(key)));\n }\n getUrl(definition, version) {\n let url;\n if (version === \"1.2\") {\n const parsedManifest = JSON.parse(definition.manifest);\n url = parsedManifest.details?.url || parsedManifest.url;\n }\n else {\n url = definition.details?.url;\n }\n if (!url || typeof url !== \"string\") {\n throw new Error(`Invalid FDC3 ${version} definition. Provide valid 'url' under '${version === \"1.2\" ? \"manifest\" : \"details\"}' key`);\n }\n return url;\n }\n getIntentsFromV2AppDefinition(definition) {\n const fdc3Intents = definition.interop?.intents?.listensFor;\n if (!fdc3Intents) {\n return;\n }\n const intents = Object.entries(fdc3Intents).map((fdc3Intent) => {\n const [intentName, intentData] = fdc3Intent;\n return {\n name: intentName,\n ...intentData\n };\n });\n return intents;\n }\n getIconFromDefinition(definition, version) {\n if (version === \"1.2\") {\n return definition.icons?.find((iconDef) => iconDef.icon)?.icon || undefined;\n }\n return definition.icons?.find((iconDef) => iconDef.src)?.src || undefined;\n }\n mergeBaseAppDataWithGlueManifest(baseAppData, hostManifestDefinition) {\n let baseApplicationDefinition = baseAppData;\n if (hostManifestDefinition.details) {\n const details = { ...baseAppData.createOptions, ...hostManifestDefinition.details };\n baseApplicationDefinition.createOptions = details;\n baseApplicationDefinition.userProperties.details = details;\n }\n if (Array.isArray(hostManifestDefinition.intents)) {\n baseApplicationDefinition.userProperties.intents = (baseApplicationDefinition.userProperties.intents || []).concat(hostManifestDefinition.intents);\n }\n baseApplicationDefinition = { ...baseApplicationDefinition, ...hostManifestDefinition };\n delete baseApplicationDefinition.details;\n delete baseApplicationDefinition.intents;\n return baseApplicationDefinition;\n }\n mergeDesktopConfigWithGlueManifest(config, desktopDefinition) {\n const appConfig = Object.assign({}, config, desktopDefinition, { details: { ...config.details, ...desktopDefinition.details } });\n if (Array.isArray(desktopDefinition.intents)) {\n appConfig.intents = (config.intents || []).concat(desktopDefinition.intents);\n }\n return appConfig;\n }\n}\n\nconst decoders$1 = {\n common: {\n nonEmptyStringDecoder,\n nonNegativeNumberDecoder\n },\n fdc3: {\n allDefinitionsDecoder,\n v1DefinitionDecoder,\n v2DefinitionDecoder\n }\n};\n\nvar INTENTS_ERRORS;\n(function (INTENTS_ERRORS) {\n INTENTS_ERRORS[\"USER_CANCELLED\"] = \"User Closed Intents Resolver UI without choosing a handler\";\n INTENTS_ERRORS[\"CALLER_NOT_DEFINED\"] = \"Caller Id is not defined\";\n INTENTS_ERRORS[\"TIMEOUT_HIT\"] = \"Timeout hit\";\n INTENTS_ERRORS[\"INTENT_NOT_FOUND\"] = \"Cannot find Intent\";\n INTENTS_ERRORS[\"HANDLER_NOT_FOUND\"] = \"Cannot find Intent Handler\";\n INTENTS_ERRORS[\"TARGET_INSTANCE_UNAVAILABLE\"] = \"Cannot start Target Instance\";\n INTENTS_ERRORS[\"INTENT_DELIVERY_FAILED\"] = \"Target Instance did not add a listener\";\n INTENTS_ERRORS[\"RESOLVER_UNAVAILABLE\"] = \"Intents Resolver UI unavailable\";\n INTENTS_ERRORS[\"RESOLVER_TIMEOUT\"] = \"User did not choose a handler\";\n INTENTS_ERRORS[\"INVALID_RESOLVER_RESPONSE\"] = \"Intents Resolver UI returned invalid response\";\n INTENTS_ERRORS[\"INTENT_HANDLER_REJECTION\"] = \"Intent Handler function processing the raised intent threw an error or rejected the promise it returned\";\n})(INTENTS_ERRORS || (INTENTS_ERRORS = {}));\n\nclass IoC {\n _fdc3;\n _decoders = decoders$1;\n _errors = {\n intents: INTENTS_ERRORS\n };\n get fdc3() {\n if (!this._fdc3) {\n this._fdc3 = new FDC3Service().toApi();\n }\n return this._fdc3;\n }\n get decoders() {\n return this._decoders;\n }\n get errors() {\n return this._errors;\n }\n}\n\nconst ioc = new IoC();\nconst fdc3 = ioc.fdc3;\nconst decoders = ioc.decoders;\nconst errors = ioc.errors;\n\nexport { decoders, errors, fdc3 };\n//# sourceMappingURL=utils.es.js.map\n",null,null,null,null,null,null,null,"export class PromiseWrapper {\n static delay(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n }\n static async delayForever() {\n const biggestPossibleDelay = 2147483647;\n while (true) {\n await this.delay(biggestPossibleDelay);\n }\n }\n get ended() {\n return this.rejected || this.resolved;\n }\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (t) => {\n this.resolved = true;\n resolve(t);\n };\n this.reject = (err) => {\n this.rejected = true;\n reject(err);\n };\n });\n }\n}\nexport function callbackifyPromise(action, successCallback, errorCallback, logger, token) {\n const fail = (error) => {\n if (logger) {\n logger.error(`[${token}]`, error);\n }\n let msg = error;\n if (error instanceof Error) {\n msg = error.message;\n }\n if (typeof errorCallback === \"function\") {\n errorCallback(msg);\n return;\n }\n return PromiseWrapper.delay(0)\n .then(() => {\n throw error;\n });\n };\n return PromiseWrapper.delay(0)\n .then(action)\n .then((result) => {\n if (logger) {\n logger.info(`[${token}] successful`);\n }\n if (typeof successCallback === \"function\") {\n successCallback(result);\n }\n return result;\n })\n .catch((error) => {\n return fail(error);\n });\n}\n//# sourceMappingURL=promise.js.map",null,null,null,null,null,null,null,null,null],"names":["MetricTypes","getMetricTypeByValue","metric","type","getTypeByValue","value","constructor","Date","serializeMetric","serializedMetrics","values","Object","keys","reduce","memo","key","innerType","composite","defineNestedComposite","description","context","name","normalizeMetricName","path","join","length","getMetricValueByType","now","publishNestedComposite","getTime","Boolean","toString","flatten","arr","flat","toFlatten","concat","Array","isArray","composeMsgForRootStateMetric","system","merged","root","getAggregateState","highestState","sort","a","b","state","aggregateDesc","msg","forEach","m","idx","slice","aggregateDescription","Helpers","definition","parent","transport","Error","BaseMetric","repo","this","id","push","createMetric","update","newValue","updateMetric","NumberMetric","super","incrementBy","num","increment","decrement","decrementBy","ObjectMetric","mergeValues","k","StringMetric","TimestampMetric","protocol","_transport","_name","_description","_repo","_parent","_path","_buildPath","shadowedSystem","_state","separator","_subSystems","_metrics","_getOrCreateMetric","metricObject","expectedType","metricDef","matching","filter","shadowedMetric","existing","catch","me","subSystems","metrics","subSystem","nameSystem","descriptionSystem","match","s","_system","getState","setState","stateDescription","updateSystem","stringMetric","timestampMetric","objectMetric","numberMetric","aggState","shadowedSubSystem","result","createSystem","Repository","options","init","addSystemMetrics","clickStream","undefined","rootSystem","useClickStream","navigator","userAgent","document","documentClickHandler","e","target","className","getAttribute","timestamp","tagName","toLowerCase","href","title","page","window","location","addEventListener","attachEvent","urlMetric","appNameMetric","startUrl","glue42gd","appName","NullProtocol","Promise","resolve","PerfTracker","api","lastCount","initialPublishTimeout","publishInterval","scheduleCollection","setTimeout","collect","setInterval","collectMemory","collectEntries","memory","performance","JSON","stringify","totalJSHeapSize","usedJSHeapSize","allEntries","getEntries","jsonfiedEntries","map","i","toJSON","connection","config","joinPromise","session","replayRepo","replaySystem","ss","async","createMetricsMsg","Description","Value","sendFireAndForget","err","logger","warn","metricClone","cloneMetric","updateMetricCore","canUpdate","publishMetricsMsg","canUpdateMetric","resolveReadyPromise","domain","onJoined","reconnect","defineRootMetricsMsg","service","instance","shadowedUpdateMetric","stateObj","rootMetric","peer_id","peerId","gw3","disableAutoAppSystem","reportingSystem","def","featureMetric","featureMetricFunc","action","payload","addFAVSupport","perfConfig","pagePerformanceMetrics","enabled","initPerf","commonjsGlobal","globalThis","global","self","getDefaultExportFromCjs","x","__esModule","prototype","hasOwnProperty","call","createRegistry","errorHandling","_userErrorHandler","callbacks","_handleError","exceptionArtifact","errParam","stack","console","error","add","callback","replayArgumentsArr","callbacksForKey","replayArgument","_a","includes","apply","allForKey","acc","element","index","execute","argumentsArr","_i","arguments","results","clear","clearKey","createRegistry$1","default","CallbackRegistryFactory","InProcTransport","gw","registry","client","settings","facade","connect","_client","message","messageHandler","then","isObjectBasedTransport","sendObject","send","reject","_msg","onMessage","onConnectedChanged","close","open","SharedWorkerTransport","worker","workerFile","SharedWorker","port","onmessage","data","postMessage","Utils$1","Utils","isNode","_isNode","process","static","PromiseWrapper$1","delay","time","promise","rejected","resolved","ended","t","timers","timer","timerName","marks","startTime","endTime","period","mark","currentTime","diff","timerObj","stop","WebSocketConstructor","require","WebSocket","WS","ws","startupTimer","_running","_registry","wsRequests","waitForSocketConnection","info","pw","PromiseWrapper","failed","readyState","openSocket","retryInterval","retriesLeft","reconnectInterval","reconnectAttempts","notifyForSocketState","debug","initiateSocket","retries","wasOpen","onerror","reason","seen","WeakSet","replacer","has","notifyStatusChanged","onclose","code","onopen","identity","application","wsRequest","status","MessageReplayerImpl","specs","specsNames","messages","isDone","subs","subsRefCount","spec","types","refCount","sub","on","processMessage","indexOf","drain","off","nanoid","size","Math","random","PromisePlus","executor","timeoutMilliseconds","timeoutMessage","timeout","clearTimeout","WebPlatformTransport","isPreferredActivated","_communicationId","publicWindowId","selfAssignedWindowId","iAmConnected","parentReady","parentPingResolve","parentPingInterval","connectionResolve","extConnectionResolve","extConnectionReject","connectionReject","myClientId","children","extContentAvailable","extContentConnecting","extContentConnected","parentWindowId","parentInExtMode","webNamespace","parentType","parentPingTimeout","connectionRequestTimeout","defaultTargetString","connectionAccepted","handle","handleConnectionAccepted","bind","connectionRejected","handleConnectionRejected","connectionRequest","handleConnectionRequest","parentPing","handleParentPing","platformPing","handlePlatformPing","platformReady","handlePlatformReady","clientUnload","handleClientUnload","manualUnload","handleManualUnload","extConnectionResponse","handleExtConnectionResponse","extSetupRequest","handleExtSetupRequest","gatewayDisconnect","handleGatewayDisconnect","gatewayInternalConnect","handleGatewayInternalConnect","glue42ext","setUpMessageListener","setUpUnload","setupPlatformUnloadListener","manualSetReadyState","transportWindowId","communicationId","glue42ExtOut","glue42core","clientId","ownWindowId","windowId","initiateInternalConnection","event","success","initiateRemoteConnection","bridgeInstanceId","getMyWindowId","request","clientType","isParentCheckSuccess","parentCheck","allowedOrigins","origin","checkMessageTypeValid","messageType","clearInterval","source","handleAcceptanceOfMyRequest","handleAcceptanceOfGrandChildRequest","processExtContentConnection","applicationName","extData","glue42ExtInc","child","find","c","grandChildId","connected","errorMsg","rejectConnectionRequest","extMode","typeToValidate","rejection","requestConnectionPermissionFromExt","waitForContentScript","approved","content","findParent","connectionNotPossibleMsg","myInsideParents","getPossibleParentsInWindow","myOutsideParents","getPossibleParentsOutsideWindow","top","opener","uniqueParents","Set","confirmParent","from","currentWindow","current","targets","substring","AsyncSequelizer","minSequenceInterval","queue","isExecutingQueue","enqueue","executeQueue","operation","shift","actionResult","intervalBreak","res","domainSession","successMessages","errorMessages","_latestOptions","isJoined","tryReconnecting","_connectionOn","disconnected","requestsMap","requestId","trace","loggedIn","handleSuccessMessage","handleErrorMessage","sm","destination","wasReconnect","handleJoined","request_id","entry","getNextRequestId","queuedCalls","tag","unsubscribe","qm","skipPeerId","successMsg","_tag","leave","onLeft","Connection","protocolVersion","token","resolvedIdentity","availableDomains","gatewayToken","replayer","messageHandlers","ids","_connected","isTrace","_defaultTransport","_defaultAuth","_targetTransport","_targetAuth","_swapTransport","_switchInProgress","_transportSubscriptions","datePrefix","datePrefixLen","dateMinLen","datePrefixFirstChar","_sequelizer","_isLoggedIn","shouldTryLogin","pingTimer","sessions","globalDomain","initialLogin","initialLoginAttempts","loginConfig","loginRetryInProgress","inproc","subLogger","sharedWorker","webPlatform","canPublish","unsubConnectionChanged","handleConnectionChanged","unsubOnMessage","handleTransportMessage","ping","switchTransport","switchTargetTransport","getNewSecondaryTransport","getNewSecondaryAuth","verifyPromise","verifyConnection","isSwitchSuccess","onLibReAnnounced","setLibReAnnounced","lib","createObjectMessage","strMessage","createStringMessage","isConnected","currentServer","login","authRequest","transportSwap","loginCore","prepareDefaultSwap","logout","logoutCore","authToken","setLoggedIn","distributeMessage","handlers","handlerId","handler","loggerError","log","replaySpecs","attemptLoginWithRetry","msgObj","processStringMessage","processObjectMessage","msgType","unsub","ready","invocations","left","waitForInvocations","transportConfig","url","assign","auth","parse","startsWith","milliseconds","parseInt","isNaN","ex","oldToJson","username","password","authentication","setupAuthConfig","helloMsg","sessionId","sendOptions","maxRetries","welcomeMsg","tryAuthenticate","resolved_identity","available_domains","access_token","flowCallback","Buffer","getNewGWToken","method","flowName","provider","secret","providerContext","promises","all","getGWToken","order","Logger$1","Logger","subLoggers","_consoleLevel","_publishLevel","loggerFullName","includeTimeAndLevel","logFn","customLogFn","existingSub","publishLevel","level","consoleLevel","publishMessage","compareWith","loggerName","split","interop","Interop","methods","InteropMethodName","args","invoke","prefix","date","getHours","getMinutes","getSeconds","getMilliseconds","toPrint","GW_MESSAGE_CREATE_CONTEXT","GW_MESSAGE_ACTIVITY_CREATED","GW_MESSAGE_ACTIVITY_DESTROYED","GW_MESSAGE_CONTEXT_CREATED","GW_MESSAGE_CONTEXT_ADDED","GW_MESSAGE_SUBSCRIBE_CONTEXT","GW_MESSAGE_SUBSCRIBED_CONTEXT","GW_MESSAGE_UNSUBSCRIBE_CONTEXT","GW_MESSAGE_DESTROY_CONTEXT","GW_MESSAGE_CONTEXT_DESTROYED","GW_MESSAGE_UPDATE_CONTEXT","GW_MESSAGE_CONTEXT_UPDATED","GW_MESSAGE_JOINED_ACTIVITY","ContextMessageReplaySpec","version","GW3ContextData","contextId","isAnnounced","joinedActivity","updateCallbacks","activityId","sentExplicitSubscription","hasReceivedSnapshot","hasCallbacks","lodash_clonedeep","exports","module","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","Function","freeExports","nodeType","freeModule","moduleExports","addMapEntry","pair","set","addSetEntry","arrayReduce","array","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","func","transform","arg","setToArray","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","Symbol","Uint8Array","getPrototype","getPrototypeOf","objectCreate","create","propertyIsEnumerable","splice","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","Map","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","valueOf","Hash","entries","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isObjectLike","isArrayLike","isArrayLikeObject","isArguments","n","baseTimes","String","skipIndexes","isIndex","assignValue","object","objValue","eq","assocIndexOf","baseClone","isDeep","isFull","customizer","isObject","isArr","input","initCloneArray","copyArray","getTag","isFunc","buffer","copy","cloneBuffer","isPrototype","proto","initCloneObject","copyObject","getSymbols","copySymbols","baseAssign","cloneFunc","Ctor","cloneArrayBuffer","dataView","byteOffset","byteLength","cloneDataView","typedArray","cloneTypedArray","cloneMap","regexp","lastIndex","cloneRegExp","cloneSet","symbol","initCloneByTag","stacked","get","props","keysFunc","symbolsFunc","offset","arrayPush","baseGetAllKeys","getAllKeys","arrayEach","subValue","baseIsNative","isFunction","test","arrayBuffer","getMapData","getValue","pop","hash","string","cache","pairs","LARGE_ARRAY_SIZE","other","ArrayBuffer","ctorString","isLength","baseKeys","cloneDeep","applyContextDelta","delta","reset","deepClone","commands","command","deletePath","setValueToPath","added","updated","removed","mergeObjectsProperties","obj","what","withWhat","right","deepEqual","y","p","pathArr","isSubset","superObj","subObj","every","ele","GW3Bridge$1","_logger","_connection","_trackAllContexts","_reAnnounceKnownContexts","_gw3Session","_contextNameToData","_gw3Subscriptions","_nextCallbackSubscriptionNumber","_creationPromises","_contextNameToId","_contextIdToName","_protocolVersion","_contextsTempCache","_contextsSubscriptionsCache","_systemContextsSubKey","contextsDomainInfo","d","uri","setPathSupported","trackAllContexts","reAnnounceKnownContexts","resetState","reInitiateState","subscribeToContextCreatedMessages","subscribeToContextUpdatedMessages","subscribeToContextDestroyedMessages","handleContextCreatedMessage","handleContextUpdatedMessage","handleContextDestroyedMessage","dispose","contextName","createContext","lifetime","createContextMsg","context_id","contextData","currentContext","calculatedDelta","calculateContextDeltaV2","calculateContextDeltaV1","gwResponse","handleUpdated","updaterId","setPath","setPaths","pathValues","pathValue","subscribe","_d","_r","un","subscriptionKey","thisCallbackSubscriptionNumber","subscription","subKey","hadCallbacks","clone","sendSubscribe","sendUnsubscribe","destroy","extraData","oldContext","invokeUpdateCallbacks","createdMessageTypes","createdMessageType","contextCreatedMsg","activity_id","updatedMessageTypes","updatedMessageType","contextUpdatedMsg","justSeen","context_snapshot","updater_id","updateCallbackIndex","updateCallback","destroyedMessageTypes","destroyedMessageType","destroyedMsg","prev","to","cacheSoFar","ctxName","flushQueue","lastKnownData","ContextsModule","initTime","initStartTime","initEndTime","_bridge","GW3Bridge","checkName","checkData","checkPath","paths","promisify","successCallback","errorCallback","rejectAfter","ms","clearTimeoutIfThere","InvokeStatus","Client","configuration","callProtocolSubscribe","targetServers","stream","successProxy","errorProxy","methodResponseTimeout","waitTimeoutMs","methodDef","method_response_timeout","wait_for_method_timeout","delayTillNow","currentServers","getServerMethodsByFilterAndTarget","retry","streamInfo","servers","methodFilter","filterCopy","getServers","serverMethodMap","server","getMethods","methodsForInstance","getMethodsForInstance","methodAdded","onMethodAdded","methodRemoved","onMethodRemoved","serverAdded","onServerAdded","serverRemoved","onServerRemoved","serverMethodAdded","onServerMethodAdded","serverMethodRemoved","onServerMethodRemoved","argumentObj","additionalOptions","methodDefinition","methodResponseTimeoutMs","serversMethodMap","tryToAwaitForMethods","errorObj","supportsStreaming","objectTypes","flags","metadata","called_with","executed_by","returned","additionalOptionsCopy","invokePromises","serversMethodPair","invId","invokePromise","race","invocationId","invocationMessages","getInvocationResultObj","getInvokePromise","invocationResults","calledWith","all_return_values","invokeMessage","Success","allValues","currentValue","all_errors","allErrors","currError","invResult","interval","filterByTarget","targetArray","matches","myMatches","serverMethodPair","instanceMatch","localMachine","isLocal","instanceFilter","instanceDefinition","containsProps","methodMatch","repoMethod","prop","isMatch","filterValue","repoMethodValue","filterValueEl","matchingServers","resultMethodsObject","methodKey","identifier","matchingMethods","ServerSubscription","branchKey","closeSingleSubscription","pushDataToSingle","Request","requestContext","accept","acceptRequestOnBranch","acceptOnBranch","branch","rejectRequest","ServerStreaming$1","onSubRequest","rc","rm","handleSubRequest","onSubAdded","handleSubAdded","onSubRemoved","handleSubRemoved","streamCallbacks","subscriptionRequestHandler","subscriptionAddedHandler","subscriptionRemovedHandler","ServerBranch","subscriptions","getSubscriptionList","closeAllSubscriptions","pushData","ServerStream","_protocol","_repoMethod","_server","branches","bList","getBranchList","def2","accepts","displayName","returns","unregister","updateRepoMethod","Server","serverRepository","streaming","currentlyUnregistering","onInvoked","onMethodInvoked","createStream","streamDef","existingStream","streamMethodDefinition","getList","some","serverMethod","protocolState","streamUserObject","repoId","remove","register","wrappedCallbackFunction","resultCallback","userCallback","registerCore","registerAsync","wrappedCallback","resultCalled","methodResult","userCallbackAsync","forStream","unregisterWithPredicate","methodToBeRemoved","removeMethodsOrStreams","filterPredicate","methodsOrStreamsToRemove","methodsToRemove","methodUnregPromises","addAsCurrentlyUnregistering","methodName","theFunction","unregisterInProgress","methodToExecute","invocationArgs","unStrException","_value","methodInvocationResult","InstanceWrapper","wrapped","API","getStreams","refreshWrappedObject","refresh","unwrap","user","pid","floor","machine","environment","region","hideMethodSystemFlags","ClientRepository","myServer","methodsCount","wrapper","unwrappedInstance","addServer","serverId","serverEntry","removeServerById","methodId","removeServerMethod","addServerMethod","createMethodIdentifier","that","gatewayId","display_name","object_types","input_signature","result_signature","getServersByMethod","clientMethodDefinition","extractMethodsFromServers","hideServerMethodSystemFlags","unsubscribeFunc","serversWithMethodsToReplay","returnUnsubWithDelayedReplay","methodsToReplay","unsubCalled","getServerById","methodInfo","allServers","collectionToReplay","item","clientMethods","ServerRepository","nextId","TypeError","getById","SUBSCRIPTION_REQUEST","SUBSCRIPTION_ADDED","SUBSCRIPTION_REMOVED","ServerStreaming","repository","ERR_URI_SUBSCRIPTION_FAILED","nextStreamId","handleAddInterest","handleRemoveInterest","streamingMethod","subscriptionsMap","branchKeyToStreamIdMap","streamId","getStreamId","subscription_id","subscribeMsg","stream_id","sendSubscriptionFailed","br","dropSubscriptionMessage","closeMultipleSubscriptions","subscriptionsToClose","drop","allSubscriptions","onSubscriptionLifetimeEvent","method_id","eventName","handlerFunc","getNextStreamId","caller","caller_id","arguments_kv","subscriptionId","errorMessage","reason_uri","needleBranch","ServerProtocol","clientRepository","handleInvokeMessage","isStreaming","registerMsg","restrictions","invocation_id","callerId","UserSubscription","subscriptionData","requestArguments","params","trackedServers","serverInstance","onData","dataCallback","queued","dataItem","onClosed","closedCallback","onFailed","onConnected","setNewSubscription","newSub","TimedCache","timeoutIds","timeoutId","elementIdx","findIndex","ELEMENT_TTL_MS","flush","elements","STATUS_AWAITING_ACCEPT","STATUS_SUBSCRIBED","ERR_MSG_SUB_FAILED","ON_CLOSE_MSG_CLIENT_INIT","ClientStreaming","subscriptionsList","timedCache","subscriptionIdToLocalKeyMap","nextSubLocalKey","handleSubscribed","handleEventData","handleSubscriptionCancelled","subLocalKey","getNextSubscriptionLocalKey","pendingSub","registerSubscription","server_id","handleErrorSubscribing","drainSubscriptions","drainSubscriptionsCache","subsInfo","localKey","closers","closeSubscription","callOnClosedHandlers","errorResponse","callArgs","acceptingServer","isFirstResponse","trackedServersFound","isPrivateData","oob","sendingServerId","receivedStreamData","private","onDataHandlers","queuedData","expectedNewLength","closersCount","closingServerId","closingServer","ClientProtocol","handlePeerAdded","handlePeerRemoved","handleMethodsAddedMessage","handleMethodsRemovedMessage","handleResultMessage","handleInvocationError","newPeerId","new_peer_id","remoteId","meta","local","Number","serverInfo","removedPeerId","removed_id","methodIdList","gW3ProtocolFactory","libConfig","readyPromise","reconnectionPromises","existingSubscriptions","registeredMethods","handleReconnect","protocolPromise","waitForMethod","MessageBus","watchOnEvent","publish","topic","routingKey","removeEmptyValues","routing_key","target_identity","response","keysMatch","cleaned","obj1","obj2","keysObj1","allMatch","IOConnectCoreFactory","userConfig","ext","iodesktop","preloadPromise","gdPreloadPromise","glueInitTimer","internalConfig","nodeStartingContext","startingContextString","env","_GD_STARTING_CONTEXT_","getApplication","glue42electron","applicationConfig","gwConfig","gateway","instanceId","gwURL","uniqueAppName","appInstanceId","getConnection","windowAsAny","containerApplication","htmlContainer","containerName","bus","gwToken","defaultLevel","gdConsoleLevel","consoleLogLevel","getLogger","contexts","libs","customLogger","prepareConfig","_interop","_contexts","_bus","_allowTrace","registerLib","inner","done","traceMessage","setupMetrics","initTimer","metricsPublishingEnabledFunc","getMetricsPublishingEnabled","setupInterop","agmConfig","setupContexts","hasActivities","activities","setupBus","setupExternalLibs","externalLibs","createCallback","setupExternalLib","authPromise","authConfig","RegisterInstanceMethodName","typedError","registerInstanceIfNeeded","libsReadyPromises","coreVersion","glue","feedback","feedbackInfo","agm","glueVer","glueConfig","browser","timing","initTimes","duration","extOptions","enrichGlue","updatePerfData","deprecatedDecorator","fn","wrong","proper","agmAny","method_added","method_removed","server_added","server_method_aded","server_method_removed","IOConnectCore","ActivityEntity","_id","_update","_updateCore","_beforeDelete","isNumber","isString","isUndefined","isUndefinedOrNull","isNullOrWhiteSpace","str","isBoolean","ifNotUndefined","doWithIt","ActivityType","ownerWindow","helperWindows","_ownerWindow","_helperWindows","hw","covertToWindowDef","initiate","_manager","windowType","_b","WindowType","appByWindowTypeGetter","_appByWindowTypeGetter","windows","getWindows","activity","isIndependent","createWindow","EntityEvent","entitiy","entity","EntityEventContext","eventType","ActivityStatusChangeEventContext","newStatus","oldStatus","EntityEventType","StatusChange","ActivityContextChangedEventContext","ActivityContextChange","Added","Removed","Updated","Closed","ActivityWindowEvent","ActivityWindowJoinedActivity","ActivityWindowLeftActivity","ActivityState","Created","Started","Destroyed","ActivityAGM","_activity","_ensureHasAgm","AGM","util.isUndefinedOrNull","w","methodNames","methodsForWindow","currentWindowMethod","activityServers","util.isString","potentialTargets","util.isArray","firstElem","_isInstance","_isActivityWindow","win","parameters","AttachedActivityDescriptor","manager","ownerActivityId","_ownerActivityId","ownerId","windowIds","frameColor","detach","descriptor","detachActivities","nextTick","cb","nodeify","util.isFunction","resp","Activity","actType","_actType","_status","_context","_ownerId","_agm","getActivityType","owner","addWindow","addWindowToActivity","createStackedWindows","windowTypes","leaveWindowFromActivity","getWindowsByType","setContext","setActivityContext","updateContext","updateActivityContext","onStatusChange","subscribeActivityEvents","ns","os","onWindowEvent","subscribeWindowEvents","onContextChanged","subscribeActivityContextChanged","act","stopActivity","attach","attachActivities","onActivityAttached","subscribeActivitiesAttached","newActId","oldActId","onDetached","subscribeActivitiesDetached","newAct","originalActivity","_updateDescriptors","allStates","_attached","attached","setFrameColor","color","callbacksToWait","underlyingWindow","getFrameColor","LogLevel","Trace","Debug","Info","Warn","GetNamed","Get","GetTypeName","GlueLogger","_glueLogger","Level","_getMessage","ActivityWindow","windowGetter","hcWindowId","_type","_activityId","_instance","_isIndependent","_windowGetter","_hcWindowId","getBounds","getWindowBounds","getWindowType","util.isUndefined","getActivityById","isOwner","setVisible","isVisible","setWindowVisibility","activate","focus","activateWindow","setBounds","bounds","setWindowBounds","closeWindow","onActivityJoined","_subscribeForActivityWindowEvent","onActivityRemoved","ActivityStatus","getMessage","gwMmessageError","gwMessageAddActivityTypes","gwMessageActivityCreated","gwMessageActivityDestroyed","gwMessageActivityInitiated","gwMessageJoinedActivity","gwMessageActivityJoined","gwMessageActivityLeft","gwMessageOwnerChanged","gwMessageAddPeerFactories","gwMessagePeerFactoriesAdded","gwMessagePeerFactoriesRemoved","gwMessagePeerCreated","activityTypeGwMessageEntityToActivityType","nameToWindowType","windowName","owner_type","helper_types","peerFactoryGwMessageEntityToWindowType","peer_type","_","activityGwMessageToActivity","owner_id","activity_type","activityToActivityStatusChangeEvent","_activityChangeCallbacks","_activityTypeStatusChangeCallbacks","_activityWindowChangeCallbacks","_windowTypeStatusChangeCallbacks","_peerIdAndFactoryIdToPeerType","_peerFactoriesRegisteredByUs","_contextSubscriptions","_activityTypesInitiatedFromMe","_config","_windows","_sessionJoinedPromise","_sessionJoinedPromiseResolve","_activityJoinedPromise","_activityJoinedPromiseResolve","activityInfo","addRefreshHandler","setGWToken","addWillNavigateHandler","bridgeType","forwardActivityTypeMessagesToStatusEventHandlers","handleActivityCreatedMessage","handleActivityDestroyedMessage","forwardActivityMessagesToStatusEventHandlers","forwardActivityCreatedAndJoinedActivityToActivityWindowEventHandlers","forwardPeerFactoryMessagesToStatusEventHandlers","forwardPeerFactoryMessagesToPeerFactoryRequests","handlePeerFactoriesAdded","handlePeerFactoriesRemoved","forwardActivityWindowMessagesToEventHandlers","disposeRequestHandling","my","exit","mode","activity_types","typesToTrack","initReady","onActivityTypeStatusChange","registerActivityType","activityTypeName","toActivityPeerConfig","windowDefinition","activityType","invokeCallbacks","unregisterActivityType","onWindowTypeStatusChange","registerWindowFactory","factory","factories","unregisterWindowFactory","factory_ids","onActivityStatusChange","initiateActivity","initiateMsg","initial_context","isOverrideTypeDefinition","types_override","helpers","wd","sendCreateAndMapResultingMessagesToPromise","initMsg","fullReplace","removedKeys","announceWindow","activityWindowId","registerWindow","independent","shouldSendReady","getAgmInstance","generateWindowGetter","onActivityWindowChange","layout","width","height","cellSize","joinPeer","joinActivity","peer_name","created_id","destroy_peer_id","getAnnouncementInfo","announcementInfo","activityWindowType","activityWindowIndependent","activityWindowName","search","URLSearchParams","searchParams","maybeName","target_id","leaveActivity","getActivityTypes","getWindowTypes","getActivities","getActivityWindows","windowDefinitions","visible","cloneActivity","cloneOptions","into","merge","newActivityInfo","onActivitiesAttached","onActivitiesDetached","onActivityAttachedDescriptorsRefreshed","getAttachedDescriptors","getRandomRequestId","forwardAddedAndRemovedMessagesToEventHandler","addedMessageType","removedMessageType","mapper","getGetEntityEvent","isAdded","forwardMessageToEventHandler","getEntityEvent","ent","h","initiatedMessageType","initiatedMessageFilter","createdMessageFilter","cancelledMessageType","cancelledMessageFilter","createdMessageToPromiseResolution","listenForRecreates","reqId","resolveCreatedPromise","rejectCreatedPromise","createdPromise","initiatedSubscription","createdSubscription","cancelledSubscription","errorSubscription","initiatedMessageAck","dropSubscriptions","dropSubscription","msg4","recreated","msg1","msg2","msg3","toReturn","peerFactoryIdAndOwnerIdToWindowType","factoryId","peerType","subscribeToContext","unsubscribeContext","activityCreatedMessage","participants","createdMessage","peer_factory","gateway_token","joinedMessage","joinedId","joined_id","joinedType","joined_type","joinedName","joined_name","left_id","list","ActivityMy","_myAttached","_myDetached","_myAttachedTo","_myDetachedFrom","_myActivityFrameColorChanged","_myActivityJoinedCallbacks","_myActivityRemovedCallbacks","_myContextUpdateCallbacks","_m","am","_subscribeMyContextChanged","_subscribeMyWindowEvent","_subscribeActivitiesAttached","_subscribeActivitiesDetached","onWindowFrameColorChanged","_subscribeWindowFrameColorChanged","_w","announcedWindows","myWin","onActivityLeft","onActivityDetached","onAttachedToActivity","onDetachedFromActivity","onFrameColorChanged","myActivity","_notifyMyContextChanged","_notifyMyWindowEvent","callbackStore","_notifyAttached","_notifyDetached","_notifyAttachedTo","_notifyDetachedFrom","detached","oldAct","ReadyMarker","signalsToWait","_signals","_callbacks","setCallback","isSet","isError","_error","signal","getError","EntityObservableCollection","processNew","_items","_listeners","_processNew","addOne","items","internalEntity","_updateInternalCollections","_notifyListeners","getByName","getOrWait","entityAddedHandler","listener","entityAsAny","isActivityDestroy","isWindowClose","oldEntity","ActivityManager","usingHc","_announcedWindows","v","bridge","autoAnnounce","_attachedCallbacks","_detachedCallbacks","_frameColorChangesCallbacks","_windowHandlers","_activityTypes","_grabEntity","_windowTypes","_activities","_dataReadyMarker","_descriptorsMarker","_readyMarker","dataErr","errCatch","refreshDescriptors","_handleActivitiesAttached","_handleActivitiesDetached","_handleActivityDescriptorsRefreshed","_handleWindowFrameColorChanged","_subscribeForData","aw","_getInitialData","ownerWindowType","helperWindowTypes","ownerDefinition","helperDefinitions","relativeTo","relativeDirection","windowStyleAttributes","actId","subscribeActivityTypeEvents","at","factoryMethod","util.isObject","getName","predicate","util.some","windowEventHandler","unsubscribeWindowEvents","subscribeWindowTypeEvents","wt","wrappingHandler","found","windowTypeOrConfiguration","relativeToWindow","invalidKeys","filteredWindowTypeOrConfiguration","wid","relativeWindowTypes","stackedWindow","tasks","removedKey","descriptors","stateWrapped","u","subscribeActivityFrameColorChanged","ac","descriptorAsObjectFromAPI","oldActivityId","newActivityId","ActivityManagementAPI","_my","activityTypes","_getActivityTypesWrapper","_getWindowTypesWrapper","registerFactory","unregisterFactory","announce","instances","onAttached","onActivityFrameColorChanged","ActivityAPI","_mgr","aware","inActivity","getAvailableFrameColors","ActivityModule","checkIsUsingGW3Implementation","_api","logLevel","_isUsingHCImplementation","gdMajorVersion","_isUsingGW3Implementation","activityManager","disableAutoAnnounce","My","_readyPromise","isUsingHCImplementation","isUsingGW3Implementation","GetFunctionalEntitlementMethodName","CanIMethodName","OnEventMethodName","GetApplicationsMethodName","objectValues","objectClone","validate","throwErrors","INTEROP_METHOD_RESPONSE_TIMEOUT_MS","INTEROP_METHOD_WAIT_TIMEOUT_MS","getGDMajorVersion","glueDesktop","parsed","major","callbackifyPromise","fail","getMonitor","displays","workingAreaWidth","workingAreaHeight","monitor","totalOverlap","calculateTotalOverlap","getDisplayCenterOfScreen","currentDisplay","primaryDisplay","physicalWidth","scaleFactor","physicalHeight","physicalDisplayLeft","workArea","physicalDisplayTop","physicalDisplayWidth","physicalDisplayHeight","physicalHOffset","max","physicalVOffset","centeredPhysicalLeft","centeredPhysicalTop","isRunningInIoCdContext","generateId","isPromise","isAsyncFunction","isNullOrUndefined","r1","r2","r1x","r1y","r1xMax","r1yMax","r2x","r2y","r2xMax","r2yMax","min","ApplicationImpl","_appManager","_configuration","onInstanceStarted","onInstanceStopped","onAppRemoved","app","onAppChanged","onAppAvailable","_props","IsReady","onAppUnavailable","Title","Version","autoStart","AutoStart","isShell","IsShell","caption","Caption","hidden","IsHidden","container","ApplicationName","ActivityWindowType","windowSettings","Arguments","allowMultiple","AllowMultiple","available","icon","Icon","iconURL","IconUrl","sortOrder","SortOrder","userProperties","UserProperties","keywords","Keywords","isActivity","Type","Mode","styleAttributes","WindowStyleAttributes","searchFor","modeIndex","startModeIndex","stopModeIndex","style","substr","getConfiguration","AgmNames.GetApplicationsMethodName","v2","apps","applications","updateFromProps","Name","start","waitForAGMInstance","awaitInterop","_c","waitForAGMReady","startTimeout","waitForApplicationInstance","errMsg","waitFunc","onAgmReady","onInstanceAgmServerReady","acsResult","Context","Options","waitForInterop","Id","handleInstanceStarted","ActivityId","IsActivityOwner","AgmServers","onAvailable","onUnavailable","onChanged","onRemoved","InstanceImpl","_appName","startFailed","_unsubscribeInstanceStopped","_unsubscribeInstanceAgmServerReady","activityInstance","isActivityOwner","_isActivityOwner","activityInstances","activityOwnerInstance","inst","_startUpContext","_title","isActivityInstance","_isActivityInstance","_inActivity","isSingleWindowApp","_agmInstance","interopInstance","onInteropReady","onStopped","getWindow","timeoutInSeconds","onWindowAdded","updateAgmInstanceFromProps","agmInstances","idToResolve","handleInstanceStopped","getContext","startedBy","AppManagerImpl","_gdMajorVersion","_apps","_instances","getConfigurations","getMyInstance","getMyApplication","handleSnapshotAppsAdded","newApps","currentApps","handleAppRemoved","handleAppAdded","handleSnapshotInstanceStarted","newInstances","currentInstances","_getAppId","_updateAppFromProps","handleAppUpdated","handleAppReady","_getAppOrThrow","_getInstanceId","_getInstanceAppName","_updateInstanceFromProps","_getInstanceOrThrow","_matchInstance","handleInstanceAgmServerReady","handleInstanceStartFailed","handleInstanceUpdated","onInstanceStartFailed","onInstanceUpdated","onAppAdded","_getInstanceByIdAndName","EntitlementsImpl","_isMethodRegistered","handleBranchModified","handleBranchesModified","getRegion","_agmInvoke","Region","getBranches","Branches","getCurrentBranch","Branch","setRegion","ResultMessage","setCurrentBranch","currentUser","getFunctionalEntitlement","funct","AgmNames.GetFunctionalEntitlementMethodName","Entitlement","getFunctionalEntitlementBranch","canI","AgmNames.CanIMethodName","Result","canIBranch","onBranchesChanged","onBranchChanged","onShuttingDown","registerMethod","restart","transformFunction","prevent","r","InMemoryStoreCommandMethodName","InMemoryStore","import","createAppDef","details","AppManagerFactory","START_ONLY","SKIP_ICONS","appManager","entitlements","skipIcon","snapshot","skipIcons","initiated","resolveFunc","rejectFunc","resultPromise","AgmNames.OnEventMethodName","streamData","events","onApplicationAddedEventArgs","isSnapshot","onApplicationStartedEventArgs","myInstance","hasMyAppInSnapShot","hasMyInstanceInSnapShot","subscriptionFactory","myApplication","inMemory","T42JumpListAction","jumpListManager","_groupActionCallbacks","_registered","_executor","registerCallbackMethod","setEnabled","updateJumpList","createCategory","actions","validateActions","category","toUpdateActions","removeCategory","manageActionCallback","createActions","categoryTitle","removeActions","getActions","catgoryTitle","currentCategory","getJumpListSettings","categories","actionCallback","getActionCallback","callbackId","singleInstanceTitle","multiInstanceTitle","getJumpList","updateAction","groupCallbacksKey","categoryActionCallbacks","accCal","delete","callbackAction","cal","windowStore","waitForTimeoutInMilliseconds","_pendingWindows","_pendingWindowsStates","CallbackFactory","getIfReady","shouldMarkReadyToShow","markReadyToShow","setUrlChangedState","targetWindowState","urlChanged","setCompositionChangedState","compositionChanged","waitFor","unReady","unRemoved","cleanup","onReadyWindow","onAdded","JumpListActions","_categoryTitle","JumpListCategories","getCategories","cat","JumpList","_categories","isEnabled","windowFactory","appManagerGetter","displayAPIGetter","channelsAPIGetter","getChannels","channels","_mode","_bounds","_url","_frameColor","_focus","_neighbours","neighbours","_groupId","groupId","_isGroupHeaderVisible","isGroupHeaderVisible","_isTabHeaderVisible","isTabHeaderVisible","_isGroupHibernated","isGroupHibernated","_isGroupVisible","isGroupVisible","_isTabSelected","isTabSelected","_settings","_applicationName","_group","_isVisible","_isSticky","isSticky","_isCollapsed","isCollapsed","_windowState","_tabGroupId","tabGroupId","_tabIndex","tabIndex","_frameId","frameId","_isLocked","isLocked","_allowWorkspaceDrop","allowWorkspaceDrop","_isPinned","isPinned","_frameButtons","frameButtons","_zoomFactor","zoomFactor","_placementSettings","placementSettings","_jumpList","moveResize","utils","resultWindow","toBeVisible","onGroupChanged","onEventCore","replayArguments","getNeighboursByDirection","direction","winId","getApplicationName","_APPLICATION_NAME","_t42","getWindowInfo","hostInstance","agmInstance","b1","b2","minHeight","maxHeight","minWidth","maxWidth","isFocused","opened","group","topNeighbours","leftNeighbours","rightNeighbours","bottomNeighbours","screen","monitors","jumpList","maximize","restore","minimize","maximizeRestore","collapse","expand","toggleCollapse","setTitle","newTitle","setStyle","styleAsAny","util.isNumber","setOnTop","onTop","resetButtons","buttons","getButtons","setSizeConstraints","constraints","getSizeConstraints","navigate","newUrl","optionsOrCallback","util.isNullOrWhiteSpace","addFrameButton","buttonInfo","buttonId","imageBase64","removeFrameButton","show","hide","center","display","validateCenterArguments","cbOrOptions","snap","autoAlign","dragMove","dragMoveSettings","showLoader","loader","hideLoader","lock","unlock","getIcon","setIcon","base64Image","setTabTooltip","tooltip","getTabTooltip","attachTab","tab","opt","sourceWindow","attachOptions","selected","detachTab","argsForSend","hideTabHeader","setTabHeaderVisible","toBeTabHeaderVisible","showPopup","createFlydown","setModalState","isModal","setZoomFactor","zoomIn","zoomOut","showDevTools","capture","captureOptions","flash","suppliedOptions","flashOptions","shouldFlash","flashTab","setSticky","setAllowWorkspaceDrop","pin","unpin","print","printOptions","printToPDF","printToPDFOptions","place","clearPlacement","clearPlacementSettings","ungroup","ungroupOptions","unGroupChanged","newGroup","oldGroup","ignoreCache","goBack","goForward","download","opts","configure","configureWindow","getWindowConfiguration","getDockingPlacement","dock","executeCode","getChannel","getWindowsWithChannels","channel","startDrag","option","showDialog","dialogOptions","timerDuration","showTimer","onClose","onUrlChanged","onTitleChanged","onFrameButtonAdded","onFrameButtonRemoved","onFrameButtonClicked","onCollapsed","onExpanded","onMinimized","onMaximized","onNormal","onVisibilityChanged","onContextUpdated","onLockingChanged","onBoundsChanged","onFocusChanged","onStickyChanged","onWindowAttached","onWindowDetached","onTabSelectionChanged","onTabHeaderVisibilityChanged","onClosing","onRefreshing","onZoomFactorChanged","onPlacementSettingsChanged","onNeighboursChanged","onDockingChanged","onNavigating","onChannelRestrictionsChanged","tabs","allWindows","w1","w2","MIN_SAFE_INTEGER","getAllTabs","getURL","getTitle","getDisplay","getByWindowId","resizeTo","moveTo","getParentWindow","myParentId","parentInstanceId","joinChannel","leaveChannel","Events","handleUpdate","handleWindowClose","handleWindowChangeState","finished","handleTitleChanged","finally","handleVisibilityChanged","handleUrlChanged","handleWindowSettingsChanged","handleContextUpdated","handleFrameIsLockedChanged","handleBoundsChanged","handleFocusChanged","handleFrameButtonAdded","frameButton","buttonObj","btn","handleFrameButtonRemoved","frameButtonId","button","handleFrameButtonClicked","handleFrameColorChanged","handleFrameAttached","handleFrameSelectionChanged","newWindow","prevWindow","selectedWindow","previousWindow","handleCompositionChanged","neighbors","handleAllowWorkspaceDropChanged","handleIsPinnedChanged","handleGroupHeaderVisibilityChanged","handleTabHeaderVisibilityChanged","handleGroupChanged","handleAttached","newTabGroupId","newFrameId","tabHeaderVisible","winsToBeNotified","handleWindowAttached","handleDetached","handleWindowDetached","handleZoomFactorChanged","handleIsStickyChanged","handlePlacementSettingsChanged","displayAPI","handleDockingChanged","docked","position","claimScreenArea","handleChannelRestrictionsChanged","GroupCreationArgs","getWindowsByTabGroupId","isEmpty","GroupMethodName","WndMethodName","_finished","windowAvailableOnURLChanged","unsubCallbacks","agmTarget","setConfiguration","handleEvent","finishedResolve","closed","urlLoadOptions","invocationOptions","stylePromises","wait","tabTooltip","tabToolTip","toolTip","tabTitle","allowClose","allowCollapse","allowLockUnlock","allowMaximize","allowMinimize","buttonsConfig","windowToPin","pinnedWindow","versionNum","rej","resolveImmediately","areBoundsEqual","unsubscribeBoundsChanged","resolveTimeout","targetWindow","targetWindowId","snappingEdge","sourceWindowId","eventKeys","contextWithoutUndefinedValues","swapUndefinedToNull","dataURL","toShow","showGroupPopup","reformatedOptions","showPopupCore","executeGroup","optionsCopy","horizontalOffset","verticalOffset","fullOptions","reformatFlydownOptions","zoneIds","zones","z","flydownSize","cancel","targetId","clearFlydownArea","autoArrange","displayId","handleFlydownBoundsRequested","callbackData","zoneId","flydownId","flydownWindowBounds","flydownWindowId","responses","defaultResponse","handleOnEventRequested","prevented","preventArgs","pArgs","captureGroup","groupWindowIds","filePath","enableDownloadBar","silent","fullPath","fileSize","executeCore","gdWindow","addCloseHandler","nonWindowHandlers","onGroupClosing","nonWindowHandlersCore","clearCallbacks","isGroup","noOperationHandler","assignGeneralIfUnassigned","zone","valueFromOptions","flydownBounds","targetLocation","flydownActiveArea","activeArea","areaIds","executeWithoutToken","uns","executed","executeWithToken","requested","areHeightsEqual","areWidthsEqual","areLeftsEqual","areTopsEqual","popupBounds","popupId","GDEnvironment","wndId","_windowId","_appManagerGetter","_displayAPIGetter","_channelsAPIGetter","respondToEvent","streamResolve","streamReject","withConfig","updateWindow","copyOptions","windowState","tabAttached","tabDetached","onEvent","myGroup","onCompositionChanged","onGroupHeaderVisibilityChanged","onGroupVisibilityChanged","onGroupStateChanged","onWindowGotFocus","onWindowLostFocus","onWindowsAutoArrangeChanged","windowInfo","readyResolve","extendedStreamEvent","getExtendedStreamEvent","existingWindow","mapToWindowConstructorOptions","mapToGroupCreationArgs","createWindowFromSnapshot","windowInfoCreatedEvent","createWindowFromStream","windowObjectAndEvents","theWindow","theWindowEvents","windowInfoBoundsChangedEvent","windowInfoUrlChangedEvent","windowInfoTitleChanged","windowInfoIsStickyChangedChanged","windowInfoCompositionChanged","groupHeaderVisible","windowInfoFocusChanged","focusChanged","oldTabGroupId","newWindowId","prevWindowId","windowObjAndEvents","createWindowCore","isRemote","isFrameless","isHidden","isActiveTab","jumpListOptions","streamEvent","charAt","toUpperCase","groupFactory","callbackRegistry","_windowsId","_isHibernatedFlag","groupObject","_mapToWindowObjects","winObjects","windowObject","_mapToWindowObject","isHeaderVisible","isHibernated","showHeader","hideHeader","reload","onHeaderVisibilityChanged","onWindowRemoved","internal","removeWindow","handleGroupVisibilityChanged","visibile","handleGroupHibernateChanged","isHibernatedFlag","groupAPI","groupInternal","groupsFactory","_groups","heardForWindowsCounter","findGroupByWindow","groupObj","waitForGroup","groupWrapper","onGroupAdded","createdGroupWrapper","createOrGet","deleteIfEmpty","findGroupWrapperByWindow","validateGroupIdArg","currentGroup","fromGroup","toGroup","moveWindow","groupEvents","groups","groupIds","idOrGroup","getMyGroup","onGroupRemoved","hibernate","resume","onHibernated","onResumed","groupsAPI","groupsEvents","onWindowMoved","WindowsFactory","channelsGetter","isReady","GD","webGroupsManager","envDetector","myWindow","windowAdded","windowRemoved","optionsAsAny","windowsForListing","findById","onTabAttached","unsubFunc","unsubscribed","onTabDetached","onArrangementChanged","store","layouts","removeWhere","condition","removeAll","where","first","ContextProvider","activitiesGetter","registerRequestMethods","onSaveRequested","activityIsOwner","ignoreContexts","cbArgs","usersCbs","requestResult","autoSaveWindowContext","windowContext","activityContext","transformACSLayout","something","convertedValue","LayoutImpl","components","defineProperty","LayoutType","SwimlaneItemType","swTheme","swConfiguration","__createBinding","o","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","require$$0","require$$1","require$$2","require$$3","require$$4","LayoutsCommandMethod","LayoutsAPIImpl","isRegisterMethodForLayoutModified","activityGetter","setDefaultGlobal","invokeMethodCore","clearDefaultGlobal","getDefaultGlobal","isSlimMode","l","gotSnapshot","save","verifyNotSlimMode","layoutObject","ignoreInstances","setAsCurrent","invokeMethodAndTrack","activityIdToJoin","closeRunningInstance","closeRunningInstances","closeMe","restoreOptions","activityToJoin","ignoreActivityWindowTypes","reuseExistingWindows","reuseWindows","excludeFromClosing","layoutId","layoutType","getObjectValues","Layouts","rename","newName","oldName","updateMetadata","getCurrentLayout","getRestoredLayoutsInfo","restoredLayouts","onDefaultGlobalChanged","onRestored","onRenamed","onLayoutModified","registerMethodForLayoutModified","updateAppContextInCurrent","updateDefaultContext","getAll","forceRefresh","skipStreamEvent","agmResult","streamEventReceived","handleResult","isCommandMethodPresent","ACSStream","StreamName","resolveReady","rejectReady","resolveGotSnapshot","rejectGotSnapshot","noRetry","checkForLayoutEventMethod","IsSnapshot","addLayouts","OnLayoutAdded","removeLayouts","OnLayoutRemoved","changeLayouts","OnLayoutChanged","renameLayouts","OnLayoutRenamed","restoredLayout","OnLayoutRestored","selectedDefaultLayout","OnLayoutSelectedDefault","OnLayoutDeselectedDefault","Token","layoutsData","createAndNotifyLayout","layoutData","existingLayout","compareLayouts","removedLayouts","removedLayout","changedLayouts","changedLayout","renamedLayouts","renamedLayout","layout1","layout2","selectedDefaultLayouts","deselected","DisplayManager","callGD","DisplayCommand","GetAll","decorateDisplay","getPrimary","isPrimary","Capture","captureAll","CaptureAll","getMousePosition","GetMousePosition","original","decoratedDisplay","workAreaAsAny","GetByWindowId","onDisplayChanged","SingleChannelID","isJoinedToAnyChannel","isOnChannel","equals","MultiChannelId","ChannelDelimiter","newChannel","ch","myInstanceId","T42_ANNOUNCE_METHOD_NAME","interopLib","loggerAPI","joinNoSelectorSwitch","leaveNoSelectorSwitch","isSupported","channelsToJoin","channelsToLeave","swId","handleRestrictionsChanged","sendLeaveChannel","sendSwitchChannelUI","getRestrictionsByWindow","addOrRemoveChannel","label","getChannelInitInfo","operationMode","validateMode","initialChannel","CONTEXT_PREFIX","LATEST_FDC3_TYPE","BaseSharedContextSubscriber","subscribeFor","isChannel","createContextName","__","___","channelContextName","getContextData","getContextWithFdc3Data","updateChannel","updateData","fdc3Type","getFDC3Type","clearContextData","channelName","fdc3PropsArr","channelContext","latest_fdc3_type","rest","fdc3Context","fdc3","MultiSharedContextSubscriber","currentlySubscribedChannels","unsubscribeMap","switchChannel","newChannels","subscribeToChannel","unsubscribeFromChannel","usub","SharedContextSubscriber","ChannelsImpl","getWindowsAPI","getAppManagerAPI","subsKey","changedKey","channelsChangedKey","isInitialJoin","pendingReplays","pendingRestrictionCallbacks","getMyChannels","currentChannelID","shared","initial","subscribeForChannelRestrictionsChange","getID","contextType","getWrappedSubscribeCallbackWithFdc3Type","getWrappedSubscribeCallback","lastUpdate","validatePublishOptions","publishWithOptions","getRestrictionsByChannel","write","channelsToPublish","restrictedChannels","cn","restrictedChannelsErr","validatePathArgs","channelNames","validateFdc3Options","getContextWithFdc3Type","getMy","validateWindowIdArg","joinCore","leaveWhenMulti","leaveWhenSingle","leaveCore","myChannels","onChannelsChanged","changed","verifyChannelExists","getWindowsOnChannel","validateChannelArg","validateWindowsWithChannelsFilter","getChannelsInfo","windowsAPI","er","restrict","restriction","validateRestrictionConfig","setRestrictions","getRestrictions","restrictAll","setRestrictionsForAllChannels","clearChannelData","changeSelector","newId","raiseChannelsChangedEvents","doesChannelExist","channelExistsPromise","intervalId","channelID","leaveCoreMulti","channelRestrictions","read","onRestrictionsChanged","currentChannelName","onRestrictionsChangedSub","currentChannel","validatePublishOptionsObject","publishFdc3Data","parsedType","fdc3DataToPublish","restrictionByChannel","channelData","getDataWithFdc3Encoding","didReplay","replayed","callbackWithTypesChecks","searchedType","parseDataAndInvokeSubscribeCallback","latestFdc3TypeEncoded","fdc3Data","encodedType","latestTypePropName","latestFDC3Type","channelId","isRestrictions","CommandMethod","HotkeysImpl","firstHotkey","hotkeys","hotkey","hkToLower","formatHotkey","registerInvokeAGMMethod","unregisterAll","isRegistered","getLibConfig","defaultMode","trueMode","getModeAsString","activitiesDefaultMode","layoutsDefaultMode","layoutsTrueMode","exposeAPI","exposeGlue","Glue42Notification","body","badge","dir","image","lang","renotify","requireInteraction","removeEventListener","dispatchEvent","PanelAPI","onStreamEvent","toggle","panelVisible","toAPI","Notifications","NotificationsSubscribeStream","NotificationsCounterStream","RaiseNotificationMethodName","NotificationsExecuteMethod","NotificationFilterMethodName","methodsRegistered","NOTIFICATIONS_CONFIGURE_METHOD_NAME","methodNameRoot","notifications","subscribedForNotifications","subscribedCounterStream","subscriptionsCountForNotifications","subscriptionsCountForCounter","_panel","onStreamEventCore","_panelAPI","subscribeInternalEvents","maxActions","panel","raise","notification","createNotification","g42notification","invocationResult","handleNotificationErrorEvent","setFilter","getFilter","enable","enableToasts","toastExpiry","sourceFilter","allowed","blocked","toasts","_e","_f","stackBy","placement","_g","_h","closeNotificationOnClick","statesVersion2","attribute","stringValue","onRaised","onStateChanged","onConfigurationChanged","closeStreamSubscriptionIfNoNeeded","onCounterChanged","subscribeForCounterStream","closeStreamCounterSubscriptionIfNoNeeded","onDataChanged","clearAll","clearOld","clearMany","validateNotificationsArr","click","snooze","snoozeMany","validateState","setStates","importNotifications","notificationsToImport","notificationOptions","notificationSettings","imported","bunchOfPromises","handleNotificationEvent","severity","glueRoutingDetailMethodName","sourceId","publishExtraEvents","clickInterop","handleActions","handleOptions","attributes","dataAsString","panelExpiry","validActions","g42notificationId","g42action","g42interopMethod","g42interopTarget","g42interopArguments","glueAction","displayPath","validStates","sendDeltaOnly","subscriptionForNotifications","handleData","subscriptionForCounter","count","handleOnClosed","handleOnShow","handleItemsData","deltas","handleDeltas","allApplications","dataAttribute","getNotification","gnsNotificationArgs","getGnsNotificationArgs","notificationId","handleNotificationEventCore","handleNotificationActionEvent","notificationActionPayload","handleNotificationClickEvent","onaction","onclick","sourceNotificationId","getBackwardGnsNotificationArgs","ThemesImpl","isSubscribed","getMethodName","getCurrent","select","theme","setMethodName","sharedContextName","getThemesMethodName","setThemesMethodName","connectBrowserAppProps","fdc3v2AppProps","ok","map2","f","ar","mapError","__assign","isEqual","isJsonArray","json","isJsonObject","expectedGot","expected","got","typeString","printPath","prependAt","newAt","__rest","Decoder","decode","_this","run","kind","runPromise","runWithException","withException","andThen","succeed","number","boolean","constant","decoders","decoder","err$$1","decodeValue_1","tuple","nth","union","ad","bd","oneOf","intersection","ds","anyJson","unknownJson","dict","optional","errors","errorsList","withDefault","defaultValue","valueAt","jsonAtPath","fixedValue","lazy","mkDecoder","nonEmptyStringDecoder","nonNegativeNumberDecoder","intentDefinitionDecoder","customConfig","v2TypeDecoder","v2DetailsDecoder","v2IconDecoder","src","v2ScreenshotDecoder","v2ListensForIntentDecoder","resultType","v2IntentsDecoder","listensFor","raises","v2UserChannelDecoder","broadcasts","v2AppChannelDecoder","v2InteropDecoder","intents","userChannels","appChannels","glue42ApplicationDetailsDecoder","glue42HostManifestsBrowserDecoder","customProperties","v1DefinitionDecoder","appId","manifest","manifestType","contactEmail","supportEmail","publisher","images","icons","v2LocalizedDefinitionDecoder","screenshots","moreInfo","hostManifests","v2DefinitionDecoder","localizedVersions","allDefinitionsDecoder","parseDecoderErrorToStringMessage","FDC3Service","fdc3ToDesktopDefinitionType","web","native","citrix","onlineNative","toApi","isFdc3Definition","parseToBrowserBaseAppData","parseToDesktopAppConfig","decodeRes","isFdc3","getUserPropertiesFromDefinition","createOptions","getUrl","baseApplicationData","getIntentsFromV2AppDefinition","getIconFromDefinition","definitionVersion","ioConnectDefinition","ioConnect","ioDefinitionDecodeRes","mergeBaseAppDataWithGlueManifest","fdc3v1Definition","fdc3v2Definition","desktopDefinition","mergeDesktopConfigWithGlueManifest","fromEntries","parsedManifest","fdc3Intents","fdc3Intent","intentName","intentData","iconDef","baseAppData","hostManifestDefinition","baseApplicationDefinition","appConfig","decoders$1","common","INTENTS_ERRORS","ioc","_fdc3","_decoders","_errors","GLUE42_FDC3_INTENTS_METHOD_PREFIX","INTENT_HANDLER_DEFAULT_PROPS","ERRORS","PromiseWrap","promiseActive","validateHandlerFilter","handlerFilter","openResolver","intent","contextTypes","applicationNames","excludeList","ctx","excludeListValidation","isExcludeListValid","validateResolverResponse","responseObj","isValid","userSettings","preserveChoice","compulsoryKeysExist","validateIntentHandlerAsResponse","validateIntentRequest","validateIntentRequestContext","validateIntentRequestTarget","validateIntentRequestTimeout","waitUserResponseIndefinitely","validateWaitUserResponseIndefinitely","clearSavedHandler","validateIntentRequestHandler","Intents","prefsController","myIntents","intentsResolverResponsePromises","useIntentsResolverUI","unregisterIntentPromises","addedHandlerInfoPerApp","checkIfIntentsResolverIsEnabled","intentFilter","ctToLower","ct","resultTypeToLower","intentRequest","removeRememberedHandler","resolverInstance","resultFromRememberedHandler","checkHandleRaiseWithRememberedHandler","coreRaiseIntentFn","coreRaiseIntent","TIMEOUT_HIT","handleRaiseOnError","withIntentsInfo","appsWithIntents","intentDef","applicationTitle","applicationDescription","applicationIcon","serverWindowIds","serverWindowId","T42WndGetInfo","windowsInfos","windowsIdToTitle","constructIntentHandler","addIntentListener","registerPromise","intentFlag","buildInteropMethodName","unsubscribeIntent","filterHandlers","filteredHandlers","filterHandlersBy","checkIfResolverShouldBeOpenedForFilterHandlers","startResolverApp","getIntents","instanceTitle","validateIntentHandler","intentsWithInfo","extractIntentsWithInfoByHandler","clearSavedHandlers","onHandlerAdded","unAppAdded","appDef","constructIntentHandlerFromApp","unServerMethodAdded","intentsInfo","onHandlerRemoved","unAppRemoved","addedHandlerInfo","filteredIntentsWithHandlers","excludeIntentHandlers","exclusion","INTENT_NOT_FOUND","checkIfResolverShouldBeOpenedForRaise","raiseIntent","resolverHandler","raiseIntentToTargetHandler","registeredIntent","firstFoundAppHandler","findHandlerByFilter","firstFoundInstanceHandler","instanceIdPromise","invokeStartApp","reasonMsg","TARGET_INSTANCE_UNAVAILABLE","invokeOptions","INTENT_HANDLER_REJECTION","intentsResolverAppName","responseMethodName","registerIntentResolverMethod","startContext","buildStartContext","startOptions","buildStartOptions","subscribeOnInstanceStopped","createResponsePromise","handleInstanceResponse","initialCaller","windowsInfo","subMessage","stopResolverInstance","saveUserChoice","resolverResponseHandler","validResponse","cleanUpIntentResolverPromise","myAppName","myAppTitle","baseStartContext","resolverApi","getResolverStartupTopBound","minWorkareaHeight","startedByIntentAPI","intentPromise","gdWin","enableIntentsResolverUI","intentsResolverResponseTimeout","checkOpen","checkIfIntentsResolverShouldBeOpened","checkIfIntentHasMoreThanOneHandler","removeSingletons","searchedAppName","isSingleton","currentHandlers","clearUnregistrationPromise","promiseToRemove","unregisterPromise","validIntentsWithInfo","currentHandler","intentWithInfo","prefs","intentPrefs","updatedPrefs","checkForRememberedHandler","prefsForIntent","rememberedHandler","prevPrefs","prevIntentsPrefs","prefsToUpdate","appWithIntents","appIntent","appDefIntent","Prefs","interopMethodRegistered","T42GetPrefsMethodName","verifyDataObject","T42SetPrefsMethodName","setFor","verifyApp","updateFor","clearFor","verifyCallback","unsubscribeFn","registerInteropIfNeeded","T42UpdatePrefsMethodName","Cookies","cookies","cookie","verifyCookieObject","secure","httpOnly","expirationDate","EventsDispatcher","glue42EventName","notifyStarted","handleNotifyStarted","requestGlue","handleRequestGlue","wireCustomEventListener","announceStarted","detail","glue42","glue42Event","foundHandler","CustomEvent","delayForever","Interception","InterceptorMethodName","InterceptorHandlerMethodName","interceptions","validateInterceptions","registerMethodIfNotRegistered","interception","handleInterception","operationArgs","phase","createProxyObject","apiToIntercept","OperationsPerDomain","Proxy","propertyKey","receiver","property","Reflect","shouldIntercept","isAwaitable","interceptMethod","originalMethod","beforeInterceptionResult","operationResult","afterInterceptionResult","whenRegisteredPromise","raisedInterception","interceptor","validateTypeString","isValidType","callInfo","initialized","addCall","g","firstRun","factoryCore","_displays","_channels","_prefs","_interceptors","_browserEventsDispatcher","getLibLogger","newLogger","loggerConfig","core","windowsLogger","debugLog","activityLogger","layoutsConfig","lay","acsStream","LayoutsFactory","channelsReadyPromise","sharedContexts","hotkeysAPI","displaysLogger","intentsAPI","proxyIntentsAPI","notificationsAPI","themesAPI","themes","currentLog","glueFactoryLog","glueApi","CoreFactory","libraries","calls","whatToExpose","CreateGlue","shouldSetToWindow","autoInjected","IODesktop","Glue","IOBrowser","GlueCore"],"mappings":"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","x_google_ignoreList":[0,22,26,72]}