{"version":3,"file":"mcp-proxy.mjs","names":["_a","_b","inspect","_a","mixin","code","ansiStyles","key","argv","args","value","val","env","defaults","aliases","guessType","require","argv","shim","y18n","y18n","_y18n","shim","getCallerFile","stack","escalade","y18n","cmd","global","argv","result","shim","usage","validation","module","command","argv","c","shim","fail","command","ui","usage","maxWidth","_a","_b","_c","usage","command","shim","argv","desc","templates.completionZshTemplate","templates.completionShTemplate","shim","argv","_a","usage","key","distance","shim","global","argv","_a","type","key","value","_b","_c","k","Usage","Validation","Command","Completion","completion","validation","esmPlatformShim","resolve","yargs","finalCommand: string","finalArgs: string[]","server","tunnel: Awaited> | undefined"],"sources":["../../node_modules/.pnpm/eventsource-parser@3.0.2/node_modules/eventsource-parser/dist/index.js","../../node_modules/.pnpm/eventsource@4.1.0/node_modules/eventsource/dist/index.js","../../node_modules/.pnpm/cliui@9.0.1/node_modules/cliui/build/lib/index.js","../../node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js","../../node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js","../../node_modules/.pnpm/get-east-asian-width@1.3.0/node_modules/get-east-asian-width/lookup.js","../../node_modules/.pnpm/get-east-asian-width@1.3.0/node_modules/get-east-asian-width/index.js","../../node_modules/.pnpm/emoji-regex@10.4.0/node_modules/emoji-regex/index.js","../../node_modules/.pnpm/string-width@7.2.0/node_modules/string-width/index.js","../../node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js","../../node_modules/.pnpm/wrap-ansi@9.0.0/node_modules/wrap-ansi/index.js","../../node_modules/.pnpm/cliui@9.0.1/node_modules/cliui/index.mjs","../../node_modules/.pnpm/escalade@3.2.0/node_modules/escalade/sync/index.mjs","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/string-utils.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/tokenize-arg-string.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/yargs-parser-types.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/yargs-parser.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/index.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/process-argv.js","../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/platform-shims/node.js","../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/index.js","../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/index.mjs","../../node_modules/.pnpm/get-caller-file@2.0.5/node_modules/get-caller-file/index.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/lib/platform-shims/esm.mjs","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/typings/common-types.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/is-promise.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/yerror.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/parse-command.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/argsert.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/middleware.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/maybe-async-result.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/command.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/obj-filter.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/set-blocking.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/usage.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/completion-templates.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/completion.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/levenshtein.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/validation.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/apply-extends.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/yargs-factory.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/index.mjs","../../src/JSONFilterTransform.ts","../../src/StdioClientTransport.ts","../../src/bin/mcp-proxy.ts"],"sourcesContent":["class ParseError extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n}\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n if (typeof callbacks == \"function\")\n throw new TypeError(\n \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks;\n let incompleteLine = \"\", isFirstChunk = !0, id, data = \"\", eventType = \"\";\n function feed(newChunk) {\n const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, \"\") : newChunk, [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`);\n for (const line of complete)\n parseLine(line);\n incompleteLine = incomplete, isFirstChunk = !1;\n }\n function parseLine(line) {\n if (line === \"\") {\n dispatchEvent();\n return;\n }\n if (line.startsWith(\":\")) {\n onComment && onComment(line.slice(line.startsWith(\": \") ? 2 : 1));\n return;\n }\n const fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex !== -1) {\n const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === \" \" ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n return;\n }\n processField(line, \"\", line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value;\n break;\n case \"data\":\n data = `${data}${value}\n`;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n data.length > 0 && onEvent({\n id,\n event: eventType || void 0,\n // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n // then remove the last character from the data buffer.\n data: data.endsWith(`\n`) ? data.slice(0, -1) : data\n }), id = void 0, data = \"\", eventType = \"\";\n }\n function reset(options = {}) {\n incompleteLine && options.consume && parseLine(incompleteLine), isFirstChunk = !0, id = void 0, data = \"\", eventType = \"\", incompleteLine = \"\";\n }\n return { feed, reset };\n}\nfunction splitLines(chunk) {\n const lines = [];\n let incompleteLine = \"\", searchIndex = 0;\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = Math.min(crIndex, lfIndex) : crIndex !== -1 ? lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) {\n incompleteLine = chunk.slice(searchIndex);\n break;\n } else {\n const line = chunk.slice(searchIndex, lineEnd);\n lines.push(line), searchIndex = lineEnd + 1, chunk[searchIndex - 1] === \"\\r\" && chunk[searchIndex] === `\n` && searchIndex++;\n }\n }\n return [lines, incompleteLine];\n}\nexport {\n ParseError,\n createParser\n};\n//# sourceMappingURL=index.js.map\n","import { createParser } from \"eventsource-parser\";\nclass ErrorEvent extends Event {\n /**\n * Constructs a new `ErrorEvent` instance. This is typically not called directly,\n * but rather emitted by the `EventSource` object when an error occurs.\n *\n * @param type - The type of the event (should be \"error\")\n * @param errorEventInitDict - Optional properties to include in the error event\n */\n constructor(type, errorEventInitDict) {\n var _a, _b;\n super(type), this.code = (_a = errorEventInitDict == null ? void 0 : errorEventInitDict.code) != null ? _a : void 0, this.message = (_b = errorEventInitDict == null ? void 0 : errorEventInitDict.message) != null ? _b : void 0;\n }\n /**\n * Node.js \"hides\" the `message` and `code` properties of the `ErrorEvent` instance,\n * when it is `console.log`'ed. This makes it harder to debug errors. To ease debugging,\n * we explicitly include the properties in the `inspect` method.\n *\n * This is automatically called by Node.js when you `console.log` an instance of this class.\n *\n * @param _depth - The current depth\n * @param options - The options passed to `util.inspect`\n * @param inspect - The inspect function to use (prevents having to import it from `util`)\n * @returns A string representation of the error\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")](_depth, options, inspect) {\n return inspect(inspectableError(this), options);\n }\n /**\n * Deno \"hides\" the `message` and `code` properties of the `ErrorEvent` instance,\n * when it is `console.log`'ed. This makes it harder to debug errors. To ease debugging,\n * we explicitly include the properties in the `inspect` method.\n *\n * This is automatically called by Deno when you `console.log` an instance of this class.\n *\n * @param inspect - The inspect function to use (prevents having to import it from `util`)\n * @param options - The options passed to `Deno.inspect`\n * @returns A string representation of the error\n */\n [Symbol.for(\"Deno.customInspect\")](inspect, options) {\n return inspect(inspectableError(this), options);\n }\n}\nfunction syntaxError(message) {\n const DomException = globalThis.DOMException;\n return typeof DomException == \"function\" ? new DomException(message, \"SyntaxError\") : new SyntaxError(message);\n}\nfunction flattenError(err) {\n return err instanceof Error ? \"errors\" in err && Array.isArray(err.errors) ? err.errors.map(flattenError).join(\", \") : \"cause\" in err && err.cause instanceof Error ? `${err}: ${flattenError(err.cause)}` : err.message : `${err}`;\n}\nfunction inspectableError(err) {\n return {\n type: err.type,\n message: err.message,\n code: err.code,\n defaultPrevented: err.defaultPrevented,\n cancelable: err.cancelable,\n timeStamp: err.timeStamp\n };\n}\nvar __typeError = (msg) => {\n throw TypeError(msg);\n}, __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg), __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj)), __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value), __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value), __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method), _readyState, _url, _redirectUrl, _withCredentials, _fetch, _reconnectInterval, _reconnectTimer, _lastEventId, _controller, _parser, _onError, _onMessage, _onOpen, _EventSource_instances, connect_fn, _onFetchResponse, _onFetchError, getRequestOptions_fn, _onEvent, _onRetryChange, failConnection_fn, scheduleReconnect_fn, _reconnect;\nclass EventSource extends EventTarget {\n constructor(url, eventSourceInitDict) {\n var _a, _b;\n super(), __privateAdd(this, _EventSource_instances), this.CONNECTING = 0, this.OPEN = 1, this.CLOSED = 2, __privateAdd(this, _readyState), __privateAdd(this, _url), __privateAdd(this, _redirectUrl), __privateAdd(this, _withCredentials), __privateAdd(this, _fetch), __privateAdd(this, _reconnectInterval), __privateAdd(this, _reconnectTimer), __privateAdd(this, _lastEventId, null), __privateAdd(this, _controller), __privateAdd(this, _parser), __privateAdd(this, _onError, null), __privateAdd(this, _onMessage, null), __privateAdd(this, _onOpen, null), __privateAdd(this, _onFetchResponse, async (response) => {\n var _a2;\n __privateGet(this, _parser).reset();\n const { body, redirected, status, headers } = response;\n if (status === 204) {\n __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, \"Server sent HTTP 204, not reconnecting\", 204), this.close();\n return;\n }\n if (redirected ? __privateSet(this, _redirectUrl, new URL(response.url)) : __privateSet(this, _redirectUrl, void 0), status !== 200) {\n __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, `Non-200 status code (${status})`, status);\n return;\n }\n if (!(headers.get(\"content-type\") || \"\").startsWith(\"text/event-stream\")) {\n __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, 'Invalid content type, expected \"text/event-stream\"', status);\n return;\n }\n if (__privateGet(this, _readyState) === this.CLOSED)\n return;\n __privateSet(this, _readyState, this.OPEN);\n const openEvent = new Event(\"open\");\n if ((_a2 = __privateGet(this, _onOpen)) == null || _a2.call(this, openEvent), this.dispatchEvent(openEvent), typeof body != \"object\" || !body || !(\"getReader\" in body)) {\n __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, \"Invalid response body, expected a web ReadableStream\", status), this.close();\n return;\n }\n const decoder = new TextDecoder(), reader = body.getReader();\n let open = !0;\n do {\n const { done, value } = await reader.read();\n value && __privateGet(this, _parser).feed(decoder.decode(value, { stream: !done })), done && (open = !1, __privateGet(this, _parser).reset(), __privateMethod(this, _EventSource_instances, scheduleReconnect_fn).call(this));\n } while (open);\n }), __privateAdd(this, _onFetchError, (err) => {\n __privateSet(this, _controller, void 0), !(err.name === \"AbortError\" || err.type === \"aborted\") && __privateMethod(this, _EventSource_instances, scheduleReconnect_fn).call(this, flattenError(err));\n }), __privateAdd(this, _onEvent, (event) => {\n typeof event.id == \"string\" && __privateSet(this, _lastEventId, event.id);\n const messageEvent = new MessageEvent(event.event || \"message\", {\n data: event.data,\n origin: __privateGet(this, _redirectUrl) ? __privateGet(this, _redirectUrl).origin : __privateGet(this, _url).origin,\n lastEventId: event.id || \"\"\n });\n __privateGet(this, _onMessage) && (!event.event || event.event === \"message\") && __privateGet(this, _onMessage).call(this, messageEvent), this.dispatchEvent(messageEvent);\n }), __privateAdd(this, _onRetryChange, (value) => {\n __privateSet(this, _reconnectInterval, value);\n }), __privateAdd(this, _reconnect, () => {\n __privateSet(this, _reconnectTimer, void 0), __privateGet(this, _readyState) === this.CONNECTING && __privateMethod(this, _EventSource_instances, connect_fn).call(this);\n });\n try {\n if (url instanceof URL)\n __privateSet(this, _url, url);\n else if (typeof url == \"string\")\n __privateSet(this, _url, new URL(url, getBaseURL()));\n else\n throw new Error(\"Invalid URL\");\n } catch {\n throw syntaxError(\"An invalid or illegal string was specified\");\n }\n __privateSet(this, _parser, createParser({\n onEvent: __privateGet(this, _onEvent),\n onRetry: __privateGet(this, _onRetryChange)\n })), __privateSet(this, _readyState, this.CONNECTING), __privateSet(this, _reconnectInterval, 3e3), __privateSet(this, _fetch, (_a = eventSourceInitDict == null ? void 0 : eventSourceInitDict.fetch) != null ? _a : globalThis.fetch), __privateSet(this, _withCredentials, (_b = eventSourceInitDict == null ? void 0 : eventSourceInitDict.withCredentials) != null ? _b : !1), __privateMethod(this, _EventSource_instances, connect_fn).call(this);\n }\n /**\n * Returns the state of this EventSource object's connection. It can have the values described below.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)\n *\n * Note: typed as `number` instead of `0 | 1 | 2` for compatibility with the `EventSource` interface,\n * defined in the TypeScript `dom` library.\n *\n * @public\n */\n get readyState() {\n return __privateGet(this, _readyState);\n }\n /**\n * Returns the URL providing the event stream.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)\n *\n * @public\n */\n get url() {\n return __privateGet(this, _url).href;\n }\n /**\n * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to \"include\", and false otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)\n */\n get withCredentials() {\n return __privateGet(this, _withCredentials);\n }\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */\n get onerror() {\n return __privateGet(this, _onError);\n }\n set onerror(value) {\n __privateSet(this, _onError, value);\n }\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */\n get onmessage() {\n return __privateGet(this, _onMessage);\n }\n set onmessage(value) {\n __privateSet(this, _onMessage, value);\n }\n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */\n get onopen() {\n return __privateGet(this, _onOpen);\n }\n set onopen(value) {\n __privateSet(this, _onOpen, value);\n }\n addEventListener(type, listener, options) {\n const listen = listener;\n super.addEventListener(type, listen, options);\n }\n removeEventListener(type, listener, options) {\n const listen = listener;\n super.removeEventListener(type, listen, options);\n }\n /**\n * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)\n *\n * @public\n */\n close() {\n __privateGet(this, _reconnectTimer) && clearTimeout(__privateGet(this, _reconnectTimer)), __privateGet(this, _readyState) !== this.CLOSED && (__privateGet(this, _controller) && __privateGet(this, _controller).abort(), __privateSet(this, _readyState, this.CLOSED), __privateSet(this, _controller, void 0));\n }\n}\n_readyState = /* @__PURE__ */ new WeakMap(), _url = /* @__PURE__ */ new WeakMap(), _redirectUrl = /* @__PURE__ */ new WeakMap(), _withCredentials = /* @__PURE__ */ new WeakMap(), _fetch = /* @__PURE__ */ new WeakMap(), _reconnectInterval = /* @__PURE__ */ new WeakMap(), _reconnectTimer = /* @__PURE__ */ new WeakMap(), _lastEventId = /* @__PURE__ */ new WeakMap(), _controller = /* @__PURE__ */ new WeakMap(), _parser = /* @__PURE__ */ new WeakMap(), _onError = /* @__PURE__ */ new WeakMap(), _onMessage = /* @__PURE__ */ new WeakMap(), _onOpen = /* @__PURE__ */ new WeakMap(), _EventSource_instances = /* @__PURE__ */ new WeakSet(), /**\n* Connect to the given URL and start receiving events\n*\n* @internal\n*/\nconnect_fn = function() {\n __privateSet(this, _readyState, this.CONNECTING), __privateSet(this, _controller, new AbortController()), __privateGet(this, _fetch)(__privateGet(this, _url), __privateMethod(this, _EventSource_instances, getRequestOptions_fn).call(this)).then(__privateGet(this, _onFetchResponse)).catch(__privateGet(this, _onFetchError));\n}, _onFetchResponse = /* @__PURE__ */ new WeakMap(), _onFetchError = /* @__PURE__ */ new WeakMap(), /**\n* Get request options for the `fetch()` request\n*\n* @returns The request options\n* @internal\n*/\ngetRequestOptions_fn = function() {\n var _a;\n const init = {\n // [spec] Let `corsAttributeState` be `Anonymous`…\n // [spec] …will have their mode set to \"cors\"…\n mode: \"cors\",\n redirect: \"follow\",\n headers: { Accept: \"text/event-stream\", ...__privateGet(this, _lastEventId) ? { \"Last-Event-ID\": __privateGet(this, _lastEventId) } : void 0 },\n cache: \"no-store\",\n signal: (_a = __privateGet(this, _controller)) == null ? void 0 : _a.signal\n };\n return \"window\" in globalThis && (init.credentials = this.withCredentials ? \"include\" : \"same-origin\"), init;\n}, _onEvent = /* @__PURE__ */ new WeakMap(), _onRetryChange = /* @__PURE__ */ new WeakMap(), /**\n* Handles the process referred to in the EventSource specification as \"failing a connection\".\n*\n* @param error - The error causing the connection to fail\n* @param code - The HTTP status code, if available\n* @internal\n*/\nfailConnection_fn = function(message, code) {\n var _a;\n __privateGet(this, _readyState) !== this.CLOSED && __privateSet(this, _readyState, this.CLOSED);\n const errorEvent = new ErrorEvent(\"error\", { code, message });\n (_a = __privateGet(this, _onError)) == null || _a.call(this, errorEvent), this.dispatchEvent(errorEvent);\n}, /**\n* Schedules a reconnection attempt against the EventSource endpoint.\n*\n* @param message - The error causing the connection to fail\n* @param code - The HTTP status code, if available\n* @internal\n*/\nscheduleReconnect_fn = function(message, code) {\n var _a;\n if (__privateGet(this, _readyState) === this.CLOSED)\n return;\n __privateSet(this, _readyState, this.CONNECTING);\n const errorEvent = new ErrorEvent(\"error\", { code, message });\n (_a = __privateGet(this, _onError)) == null || _a.call(this, errorEvent), this.dispatchEvent(errorEvent), __privateSet(this, _reconnectTimer, setTimeout(__privateGet(this, _reconnect), __privateGet(this, _reconnectInterval)));\n}, _reconnect = /* @__PURE__ */ new WeakMap(), /**\n* ReadyState representing an EventSource currently trying to connect\n*\n* @public\n*/\nEventSource.CONNECTING = 0, /**\n* ReadyState representing an EventSource connection that is open (eg connected)\n*\n* @public\n*/\nEventSource.OPEN = 1, /**\n* ReadyState representing an EventSource connection that is closed (eg disconnected)\n*\n* @public\n*/\nEventSource.CLOSED = 2;\nObject.defineProperty(EventSource, Symbol.for(\"eventsource.supports-fetch-override\"), {\n value: !0,\n writable: !1,\n configurable: !1,\n enumerable: !1\n});\nfunction getBaseURL() {\n const doc = \"document\" in globalThis ? globalThis.document : void 0;\n return doc && typeof doc == \"object\" && \"baseURI\" in doc && typeof doc.baseURI == \"string\" ? doc.baseURI : void 0;\n}\nexport {\n ErrorEvent,\n EventSource\n};\n//# sourceMappingURL=index.js.map\n","'use strict';\nconst align = {\n right: alignRight,\n center: alignCenter\n};\nconst top = 0;\nconst right = 1;\nconst bottom = 2;\nconst left = 3;\nexport class UI {\n constructor(opts) {\n var _a;\n this.width = opts.width;\n this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;\n this.rows = [];\n }\n span(...args) {\n const cols = this.div(...args);\n cols.span = true;\n }\n resetOutput() {\n this.rows = [];\n }\n div(...args) {\n if (args.length === 0) {\n this.div('');\n }\n if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {\n return this.applyLayoutDSL(args[0]);\n }\n const cols = args.map(arg => {\n if (typeof arg === 'string') {\n return this.colFromString(arg);\n }\n return arg;\n });\n this.rows.push(cols);\n return cols;\n }\n shouldApplyLayoutDSL(...args) {\n return args.length === 1 && typeof args[0] === 'string' &&\n /[\\t\\n]/.test(args[0]);\n }\n applyLayoutDSL(str) {\n const rows = str.split('\\n').map(row => row.split('\\t'));\n let leftColumnWidth = 0;\n // simple heuristic for layout, make sure the\n // second column lines up along the left-hand.\n // don't allow the first column to take up more\n // than 50% of the screen.\n rows.forEach(columns => {\n if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {\n leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));\n }\n });\n // generate a table:\n // replacing ' ' with padding calculations.\n // using the algorithmically generated width.\n rows.forEach(columns => {\n this.div(...columns.map((r, i) => {\n return {\n text: r.trim(),\n padding: this.measurePadding(r),\n width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined\n };\n }));\n });\n return this.rows[this.rows.length - 1];\n }\n colFromString(text) {\n return {\n text,\n padding: this.measurePadding(text)\n };\n }\n measurePadding(str) {\n // measure padding without ansi escape codes\n const noAnsi = mixin.stripAnsi(str);\n return [0, noAnsi.match(/\\s*$/)[0].length, 0, noAnsi.match(/^\\s*/)[0].length];\n }\n toString() {\n const lines = [];\n this.rows.forEach(row => {\n this.rowToString(row, lines);\n });\n // don't display any lines with the\n // hidden flag set.\n return lines\n .filter(line => !line.hidden)\n .map(line => line.text)\n .join('\\n');\n }\n rowToString(row, lines) {\n this.rasterize(row).forEach((rrow, r) => {\n let str = '';\n rrow.forEach((col, c) => {\n const { width } = row[c]; // the width with padding.\n const wrapWidth = this.negatePadding(row[c]); // the width without padding.\n let ts = col; // temporary string used during alignment/padding.\n if (wrapWidth > mixin.stringWidth(col)) {\n ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));\n }\n // align the string within its column.\n if (row[c].align && row[c].align !== 'left' && this.wrap) {\n const fn = align[row[c].align];\n ts = fn(ts, wrapWidth);\n if (mixin.stringWidth(ts) < wrapWidth) {\n ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1);\n }\n }\n // apply border and padding to string.\n const padding = row[c].padding || [0, 0, 0, 0];\n if (padding[left]) {\n str += ' '.repeat(padding[left]);\n }\n str += addBorder(row[c], ts, '| ');\n str += ts;\n str += addBorder(row[c], ts, ' |');\n if (padding[right]) {\n str += ' '.repeat(padding[right]);\n }\n // if prior row is span, try to render the\n // current row on the prior line.\n if (r === 0 && lines.length > 0) {\n str = this.renderInline(str, lines[lines.length - 1]);\n }\n });\n // remove trailing whitespace.\n lines.push({\n text: str.replace(/ +$/, ''),\n span: row.span\n });\n });\n return lines;\n }\n // if the full 'source' can render in\n // the target line, do so.\n renderInline(source, previousLine) {\n const match = source.match(/^ */);\n const leadingWhitespace = match ? match[0].length : 0;\n const target = previousLine.text;\n const targetTextWidth = mixin.stringWidth(target.trimRight());\n if (!previousLine.span) {\n return source;\n }\n // if we're not applying wrapping logic,\n // just always append to the span.\n if (!this.wrap) {\n previousLine.hidden = true;\n return target + source;\n }\n if (leadingWhitespace < targetTextWidth) {\n return source;\n }\n previousLine.hidden = true;\n return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft();\n }\n rasterize(row) {\n const rrows = [];\n const widths = this.columnWidths(row);\n let wrapped;\n // word wrap all columns, and create\n // a data-structure that is easy to rasterize.\n row.forEach((col, c) => {\n // leave room for left and right padding.\n col.width = widths[c];\n if (this.wrap) {\n wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\\n');\n }\n else {\n wrapped = col.text.split('\\n');\n }\n if (col.border) {\n wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');\n wrapped.push(\"'\" + '-'.repeat(this.negatePadding(col) + 2) + \"'\");\n }\n // add top and bottom padding.\n if (col.padding) {\n wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));\n wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));\n }\n wrapped.forEach((str, r) => {\n if (!rrows[r]) {\n rrows.push([]);\n }\n const rrow = rrows[r];\n for (let i = 0; i < c; i++) {\n if (rrow[i] === undefined) {\n rrow.push('');\n }\n }\n rrow.push(str);\n });\n });\n return rrows;\n }\n negatePadding(col) {\n let wrapWidth = col.width || 0;\n if (col.padding) {\n wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);\n }\n if (col.border) {\n wrapWidth -= 4;\n }\n return wrapWidth;\n }\n columnWidths(row) {\n if (!this.wrap) {\n return row.map(col => {\n return col.width || mixin.stringWidth(col.text);\n });\n }\n let unset = row.length;\n let remainingWidth = this.width;\n // column widths can be set in config.\n const widths = row.map(col => {\n if (col.width) {\n unset--;\n remainingWidth -= col.width;\n return col.width;\n }\n return undefined;\n });\n // any unset widths should be calculated.\n const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;\n return widths.map((w, i) => {\n if (w === undefined) {\n return Math.max(unsetWidth, _minWidth(row[i]));\n }\n return w;\n });\n }\n}\nfunction addBorder(col, ts, style) {\n if (col.border) {\n if (/[.']-+[.']/.test(ts)) {\n return '';\n }\n if (ts.trim().length !== 0) {\n return style;\n }\n return ' ';\n }\n return '';\n}\n// calculates the minimum width of\n// a column, based on padding preferences.\nfunction _minWidth(col) {\n const padding = col.padding || [];\n const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);\n if (col.border) {\n return minWidth + 4;\n }\n return minWidth;\n}\nfunction getWindowWidth() {\n /* c8 ignore next 5: depends on terminal */\n if (typeof process === 'object' && process.stdout && process.stdout.columns) {\n return process.stdout.columns;\n }\n return 80;\n}\nfunction alignRight(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n if (strWidth < width) {\n return ' '.repeat(width - strWidth) + str;\n }\n return str;\n}\nfunction alignCenter(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n /* c8 ignore next 3 */\n if (strWidth >= width) {\n return str;\n }\n return ' '.repeat((width - strWidth) >> 1) + str;\n}\nlet mixin;\nexport function cliui(opts, _mixin) {\n mixin = _mixin;\n return new UI({\n width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),\n wrap: opts === null || opts === void 0 ? void 0 : opts.wrap\n });\n}\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2630 && x <= 0x2637\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x >= 0x268A && x <= 0x268F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E5\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x === 0x16FF0\n\t\t|| x === 0x16FF1\n\t\t|| x >= 0x17000 && x <= 0x187F7\n\t\t|| x >= 0x18800 && x <= 0x18CD5\n\t\t|| x >= 0x18CFF && x <= 0x18D08\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x >= 0x1D300 && x <= 0x1D356\n\t\t|| x >= 0x1D360 && x <= 0x1D376\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D7\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA89\n\t\t|| x >= 0x1FA8F && x <= 0x1FAC6\n\t\t|| x >= 0x1FACE && x <= 0x1FADC\n\t\t|| x >= 0x1FADF && x <= 0x1FAE9\n\t\t|| x >= 0x1FAF0 && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n","import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// For Prettier. This doesn't count \"ambiguous\" characters or check for valid input.\n// https://github.com/sindresorhus/get-east-asian-width/pull/6\nexport const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));\n","module.exports = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = url => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows.at(-1)));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\n\t\t\tconst ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join('');\n\t\t\tisInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows.at(-1).length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode.\n//\n// 'hard' will never allow a string to take up more than columns characters.\n//\n// 'soft' allows long words to expand past the column length.\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows.at(-1).trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows.at(-1));\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst preString = rows.join('\\n');\n\tconst pre = [...preString];\n\n\t// We need to keep a separate index as `String#slice()` works on Unicode code units, while `pre` is an array of codepoints.\n\tlet preStringIndex = 0;\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?.*)${ANSI_ESCAPE_BELL})`).exec(preString.slice(preStringIndex)) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\n\t\tpreStringIndex += character.length;\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(string, columns, options) {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replaceAll('\\r\\n', '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n}\n","// Bootstrap cliui with CommonJS dependencies:\nimport { cliui } from './build/lib/index.js'\nimport stringWidth from 'string-width'\nimport stripAnsi from 'strip-ansi'\nimport wrapAnsi from 'wrap-ansi'\n\nexport default function ui (opts) {\n return cliui(opts, {\n stringWidth,\n stripAnsi,\n wrap: wrapAnsi\n })\n}\n\nexport {ui as 'module.exports'};\n","import { dirname, resolve } from 'path';\nimport { readdirSync, statSync } from 'fs';\n\nexport default function (start, callback) {\n\tlet dir = resolve('.', start);\n\tlet tmp, stats = statSync(dir);\n\n\tif (!stats.isDirectory()) {\n\t\tdir = dirname(dir);\n\t}\n\n\twhile (true) {\n\t\ttmp = callback(dir, readdirSync(dir));\n\t\tif (tmp) return resolve(dir, tmp);\n\t\tdir = dirname(tmp = dir);\n\t\tif (tmp === dir) break;\n\t}\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number')\n return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n/* eslint-disable prefer-arrow-callback */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n }\n else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2], true);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n }\n else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0])\n ? val.substring(1, val.length - 1)\n : val;\n}\n","/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\n/* eslint-disable n/no-unpublished-import */\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\nimport { createRequire } from 'node:module';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 20;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst require = createRequire ? createRequire(import.meta.url) : undefined;\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n// special syntax to allow unqualified default export from CommonJS\nexport { yargsParser as 'module.exports' };\n","function getProcessArgvBinIndex() {\n if (isBundledElectronApp())\n return 0;\n return 1;\n}\nfunction isBundledElectronApp() {\n return isElectronApp() && !process.defaultApp;\n}\nfunction isElectronApp() {\n return !!process.versions.electron;\n}\nexport function hideBin(argv) {\n return argv.slice(getProcessArgvBinIndex() + 1);\n}\nexport function getProcessArgvBin() {\n return process.argv[getProcessArgvBinIndex()];\n}\n","import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n fs: {\n readFileSync,\n writeFile\n },\n format,\n resolve,\n exists: (file) => {\n try {\n return statSync(file).isFile();\n }\n catch (err) {\n return false;\n }\n }\n};\n","let shim;\nclass Y18N {\n constructor(opts) {\n // configurable options.\n opts = opts || {};\n this.directory = opts.directory || './locales';\n this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n this.locale = opts.locale || 'en';\n this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n // internal stuff.\n this.cache = Object.create(null);\n this.writeQueue = [];\n }\n __(...args) {\n if (typeof arguments[0] !== 'string') {\n return this._taggedLiteral(arguments[0], ...arguments);\n }\n const str = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n cb = cb || function () { }; // noop.\n if (!this.cache[this.locale])\n this._readLocaleFile();\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][str] && this.updateFiles) {\n this.cache[this.locale][str] = str;\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n }\n __n() {\n const args = Array.prototype.slice.call(arguments);\n const singular = args.shift();\n const plural = args.shift();\n const quantity = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n if (!this.cache[this.locale])\n this._readLocaleFile();\n let str = quantity === 1 ? singular : plural;\n if (this.cache[this.locale][singular]) {\n const entry = this.cache[this.locale][singular];\n str = entry[quantity === 1 ? 'one' : 'other'];\n }\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][singular] && this.updateFiles) {\n this.cache[this.locale][singular] = {\n one: singular,\n other: plural\n };\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n // if a %d placeholder is provided, add quantity\n // to the arguments expanded by util.format.\n const values = [str];\n if (~str.indexOf('%d'))\n values.push(quantity);\n return shim.format.apply(shim.format, values.concat(args));\n }\n setLocale(locale) {\n this.locale = locale;\n }\n getLocale() {\n return this.locale;\n }\n updateLocale(obj) {\n if (!this.cache[this.locale])\n this._readLocaleFile();\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.cache[this.locale][key] = obj[key];\n }\n }\n }\n _taggedLiteral(parts, ...args) {\n let str = '';\n parts.forEach(function (part, i) {\n const arg = args[i + 1];\n str += part;\n if (typeof arg !== 'undefined') {\n str += '%s';\n }\n });\n return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n }\n _enqueueWrite(work) {\n this.writeQueue.push(work);\n if (this.writeQueue.length === 1)\n this._processWriteQueue();\n }\n _processWriteQueue() {\n const _this = this;\n const work = this.writeQueue[0];\n // destructure the enqueued work.\n const directory = work.directory;\n const locale = work.locale;\n const cb = work.cb;\n const languageFile = this._resolveLocaleFile(directory, locale);\n const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n _this.writeQueue.shift();\n if (_this.writeQueue.length > 0)\n _this._processWriteQueue();\n cb(err);\n });\n }\n _readLocaleFile() {\n let localeLookup = {};\n const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n try {\n // When using a bundler such as webpack, readFileSync may not be defined:\n if (shim.fs.readFileSync) {\n localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n }\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n err.message = 'syntax error in ' + languageFile;\n }\n if (err.code === 'ENOENT')\n localeLookup = {};\n else\n throw err;\n }\n this.cache[this.locale] = localeLookup;\n }\n _resolveLocaleFile(directory, locale) {\n let file = shim.resolve(directory, './', locale + '.json');\n if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n // attempt fallback to language only\n const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n if (this._fileExistsSync(languageFile))\n file = languageFile;\n }\n return file;\n }\n _fileExistsSync(file) {\n return shim.exists(file);\n }\n}\nexport function y18n(opts, _shim) {\n shim = _shim;\n const y18n = new Y18N(opts);\n return {\n __: y18n.__.bind(y18n),\n __n: y18n.__n.bind(y18n),\n setLocale: y18n.setLocale.bind(y18n),\n getLocale: y18n.getLocale.bind(y18n),\n updateLocale: y18n.updateLocale.bind(y18n),\n locale: y18n.locale\n };\n}\n","import shim from './build/lib/platform-shims/node.js'\nimport { y18n as _y18n } from './build/lib/index.js'\n\nconst y18n = (opts) => {\n return _y18n(opts, shim)\n}\n\nexport default y18n\n","\"use strict\";\n// Call this function in a another function to find out the file from\n// which that function was called from. (Inspects the v8 stack trace)\n//\n// Inspired by http://stackoverflow.com/questions/13227489\nmodule.exports = function getCallerFile(position) {\n if (position === void 0) { position = 2; }\n if (position >= Error.stackTraceLimit) {\n throw new TypeError('getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' + position + '` and Error.stackTraceLimit was: `' + Error.stackTraceLimit + '`');\n }\n var oldPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = function (_, stack) { return stack; };\n var stack = new Error().stack;\n Error.prepareStackTrace = oldPrepareStackTrace;\n if (stack !== null && typeof stack === 'object') {\n // stack[0] holds this file\n // stack[1] holds where this function was called\n // stack[2] holds the file we're interested in\n return stack[position] ? stack[position].getFileName() : undefined;\n }\n};\n//# sourceMappingURL=index.js.map","'use strict'\n\nimport { notStrictEqual, strictEqual } from 'assert'\nimport cliui from 'cliui'\nimport escalade from 'escalade/sync'\nimport { inspect } from 'util'\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser'\nimport { basename, dirname, extname, relative, resolve, join } from 'path'\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js'\nimport stringWidth from 'string-width';\nimport y18n from 'y18n'\nimport { createRequire } from 'node:module';\nimport getCallerFile from 'get-caller-file';\nimport { readFileSync, readdirSync } from 'node:fs'\n\nconst __dirname = fileURLToPath(import.meta.url);\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\nconst require = createRequire(import.meta.url);\n\nexport default {\n assert: {\n notStrictEqual,\n strictEqual\n },\n cliui,\n findUp: escalade,\n getEnv: (key) => {\n return process.env[key]\n },\n inspect,\n getProcessArgvBin,\n mainFilename: mainFilename || process.cwd(),\n Parser,\n path: {\n basename,\n dirname,\n extname,\n relative,\n resolve,\n join\n },\n process: {\n argv: () => process.argv,\n cwd: process.cwd,\n emitWarning: (warning, type) => process.emitWarning(warning, type),\n execPath: () => process.execPath,\n exit: (code) => {\n // eslint-disable-next-line n/no-process-exit\n process.exit(code);\n },\n nextTick: process.nextTick,\n stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n },\n readFileSync,\n readdirSync,\n require,\n getCallerFile: () => {\n const callerFile = getCallerFile(3);\n return callerFile.match(/^file:\\/\\//) ? fileURLToPath(callerFile) : callerFile;\n },\n stringWidth,\n y18n: y18n({\n directory: resolve(__dirname, '../../../locales'),\n updateFiles: false\n })\n}\n","export function assertNotStrictEqual(actual, expected, shim, message) {\n shim.assert.notStrictEqual(actual, expected, message);\n}\nexport function assertSingleKey(actual, shim) {\n shim.assert.strictEqual(typeof actual, 'string');\n}\nexport function objectKeys(object) {\n return Object.keys(object);\n}\n","export function isPromise(maybePromise) {\n return (!!maybePromise &&\n !!maybePromise.then &&\n typeof maybePromise.then === 'function');\n}\n","export class YError extends Error {\n constructor(msg) {\n super(msg || 'yargs error');\n this.name = 'YError';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, YError);\n }\n }\n}\n","export function parseCommand(cmd) {\n const extraSpacesStrippedCommand = cmd.replace(/\\s{2,}/g, ' ');\n const splitCommand = extraSpacesStrippedCommand.split(/\\s+(?![^[]*]|[^<]*>)/);\n const bregex = /\\.*[\\][<>]/g;\n const firstCommand = splitCommand.shift();\n if (!firstCommand)\n throw new Error(`No command found in: ${cmd}`);\n const parsedCommand = {\n cmd: firstCommand.replace(bregex, ''),\n demanded: [],\n optional: [],\n };\n splitCommand.forEach((cmd, i) => {\n let variadic = false;\n cmd = cmd.replace(/\\s/g, '');\n if (/\\.+[\\]>]/.test(cmd) && i === splitCommand.length - 1)\n variadic = true;\n if (/^\\[/.test(cmd)) {\n parsedCommand.optional.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n else {\n parsedCommand.demanded.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n });\n return parsedCommand;\n}\n","import { YError } from './yerror.js';\nimport { parseCommand } from './parse-command.js';\nconst positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'];\nexport function argsert(arg1, arg2, arg3) {\n function parseArgs() {\n return typeof arg1 === 'object'\n ? [{ demanded: [], optional: [] }, arg1, arg2]\n : [\n parseCommand(`cmd ${arg1}`),\n arg2,\n arg3,\n ];\n }\n try {\n let position = 0;\n const [parsed, callerArguments, _length] = parseArgs();\n const args = [].slice.call(callerArguments);\n while (args.length && args[args.length - 1] === undefined)\n args.pop();\n const length = _length || args.length;\n if (length < parsed.demanded.length) {\n throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`);\n }\n const totalCommands = parsed.demanded.length + parsed.optional.length;\n if (length > totalCommands) {\n throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);\n }\n parsed.demanded.forEach(demanded => {\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, demanded.cmd, position);\n position += 1;\n });\n parsed.optional.forEach(optional => {\n if (args.length === 0)\n return;\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, optional.cmd, position);\n position += 1;\n });\n }\n catch (err) {\n console.warn(err.stack);\n }\n}\nfunction guessType(arg) {\n if (Array.isArray(arg)) {\n return 'array';\n }\n else if (arg === null) {\n return 'null';\n }\n return typeof arg;\n}\nfunction argumentTypeError(observedType, allowedTypes, position) {\n throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`);\n}\n","import { argsert } from './argsert.js';\nimport { isPromise } from './utils/is-promise.js';\nexport class GlobalMiddleware {\n constructor(yargs) {\n this.globalMiddleware = [];\n this.frozens = [];\n this.yargs = yargs;\n }\n addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) {\n argsert(' [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length);\n if (Array.isArray(callback)) {\n for (let i = 0; i < callback.length; i++) {\n if (typeof callback[i] !== 'function') {\n throw Error('middleware must be a function');\n }\n const m = callback[i];\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n }\n Array.prototype.push.apply(this.globalMiddleware, callback);\n }\n else if (typeof callback === 'function') {\n const m = callback;\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n m.mutates = mutates;\n this.globalMiddleware.push(callback);\n }\n return this.yargs;\n }\n addCoerceMiddleware(callback, option) {\n const aliases = this.yargs.getAliases();\n this.globalMiddleware = this.globalMiddleware.filter(m => {\n const toCheck = [...(aliases[option] || []), option];\n if (!m.option)\n return true;\n else\n return !toCheck.includes(m.option);\n });\n callback.option = option;\n return this.addMiddleware(callback, true, true, true);\n }\n getMiddleware() {\n return this.globalMiddleware;\n }\n freeze() {\n this.frozens.push([...this.globalMiddleware]);\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n if (frozen !== undefined)\n this.globalMiddleware = frozen;\n }\n reset() {\n this.globalMiddleware = this.globalMiddleware.filter(m => m.global);\n }\n}\nexport function commandMiddlewareFactory(commandMiddleware) {\n if (!commandMiddleware)\n return [];\n return commandMiddleware.map(middleware => {\n middleware.applyBeforeValidation = false;\n return middleware;\n });\n}\nexport function applyMiddleware(argv, yargs, middlewares, beforeValidation) {\n return middlewares.reduce((acc, middleware) => {\n if (middleware.applyBeforeValidation !== beforeValidation) {\n return acc;\n }\n if (middleware.mutates) {\n if (middleware.applied)\n return acc;\n middleware.applied = true;\n }\n if (isPromise(acc)) {\n return acc\n .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)]))\n .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj));\n }\n else {\n const result = middleware(acc, yargs);\n return isPromise(result)\n ? result.then(middlewareObj => Object.assign(acc, middlewareObj))\n : Object.assign(acc, result);\n }\n }, argv);\n}\n","import { isPromise } from './is-promise.js';\nexport function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => {\n throw err;\n}) {\n try {\n const result = isFunction(getResult) ? getResult() : getResult;\n return isPromise(result)\n ? result.then((result) => resultHandler(result))\n : resultHandler(result);\n }\n catch (err) {\n return errorHandler(err);\n }\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n","import { assertNotStrictEqual, } from './typings/common-types.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { applyMiddleware, commandMiddlewareFactory, } from './middleware.js';\nimport { parseCommand } from './parse-command.js';\nimport { isYargsInstance, } from './yargs-factory.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nconst DEFAULT_MARKER = /(^\\*)|(^\\$0)/;\nexport class CommandInstance {\n constructor(usage, validation, globalMiddleware, shim) {\n this.requireCache = new Set();\n this.handlers = {};\n this.aliasMap = {};\n this.frozens = [];\n this.shim = shim;\n this.usage = usage;\n this.globalMiddleware = globalMiddleware;\n this.validation = validation;\n }\n addDirectory(dir, req, callerFile, opts) {\n opts = opts || {};\n this.requireCache.add(callerFile);\n const fullDirPath = this.shim.path.resolve(this.shim.path.dirname(callerFile), dir);\n const files = this.shim.readdirSync(fullDirPath, {\n recursive: opts.recurse ? true : false,\n });\n if (!Array.isArray(opts.extensions))\n opts.extensions = ['js'];\n const visit = typeof opts.visit === 'function' ? opts.visit : (o) => o;\n for (const fileb of files) {\n const file = fileb.toString();\n if (opts.exclude) {\n let exclude = false;\n if (typeof opts.exclude === 'function') {\n exclude = opts.exclude(file);\n }\n else {\n exclude = opts.exclude.test(file);\n }\n if (exclude)\n continue;\n }\n if (opts.include) {\n let include = false;\n if (typeof opts.include === 'function') {\n include = opts.include(file);\n }\n else {\n include = opts.include.test(file);\n }\n if (!include)\n continue;\n }\n let supportedExtension = false;\n for (const ext of opts.extensions) {\n if (file.endsWith(ext))\n supportedExtension = true;\n }\n if (supportedExtension) {\n const joined = this.shim.path.join(fullDirPath, file);\n const module = req(joined);\n const extendableModule = Object.create(null, Object.getOwnPropertyDescriptors({ ...module }));\n const visited = visit(extendableModule, joined, file);\n if (visited) {\n if (this.requireCache.has(joined))\n continue;\n else\n this.requireCache.add(joined);\n if (!extendableModule.command) {\n extendableModule.command = this.shim.path.basename(joined, this.shim.path.extname(joined));\n }\n this.addHandler(extendableModule);\n }\n }\n }\n }\n addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) {\n let aliases = [];\n const middlewares = commandMiddlewareFactory(commandMiddleware);\n handler = handler || (() => { });\n if (Array.isArray(cmd)) {\n if (isCommandAndAliases(cmd)) {\n [cmd, ...aliases] = cmd;\n }\n else {\n for (const command of cmd) {\n this.addHandler(command);\n }\n }\n }\n else if (isCommandHandlerDefinition(cmd)) {\n let command = Array.isArray(cmd.command) || typeof cmd.command === 'string'\n ? cmd.command\n : null;\n if (command === null) {\n throw new Error(`No command name given for module: ${this.shim.inspect(cmd)}`);\n }\n if (cmd.aliases)\n command = [].concat(command).concat(cmd.aliases);\n this.addHandler(command, this.extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated);\n return;\n }\n else if (isCommandBuilderDefinition(builder)) {\n this.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated);\n return;\n }\n if (typeof cmd === 'string') {\n const parsedCommand = parseCommand(cmd);\n aliases = aliases.map(alias => parseCommand(alias).cmd);\n let isDefault = false;\n const parsedAliases = [parsedCommand.cmd].concat(aliases).filter(c => {\n if (DEFAULT_MARKER.test(c)) {\n isDefault = true;\n return false;\n }\n return true;\n });\n if (parsedAliases.length === 0 && isDefault)\n parsedAliases.push('$0');\n if (isDefault) {\n parsedCommand.cmd = parsedAliases[0];\n aliases = parsedAliases.slice(1);\n cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd);\n }\n aliases.forEach(alias => {\n this.aliasMap[alias] = parsedCommand.cmd;\n });\n if (description !== false) {\n this.usage.command(cmd, description, isDefault, aliases, deprecated);\n }\n this.handlers[parsedCommand.cmd] = {\n original: cmd,\n description,\n handler,\n builder: builder || {},\n middlewares,\n deprecated,\n demanded: parsedCommand.demanded,\n optional: parsedCommand.optional,\n };\n if (isDefault)\n this.defaultCommand = this.handlers[parsedCommand.cmd];\n }\n }\n getCommandHandlers() {\n return this.handlers;\n }\n getCommands() {\n return Object.keys(this.handlers).concat(Object.keys(this.aliasMap));\n }\n hasDefaultCommand() {\n return !!this.defaultCommand;\n }\n runCommand(command, yargs, parsed, commandIndex, helpOnly, helpOrVersionSet) {\n const commandHandler = this.handlers[command] ||\n this.handlers[this.aliasMap[command]] ||\n this.defaultCommand;\n const currentContext = yargs.getInternalMethods().getContext();\n const parentCommands = currentContext.commands.slice();\n const isDefaultCommand = !command;\n if (command) {\n currentContext.commands.push(command);\n currentContext.fullCommands.push(commandHandler.original);\n }\n const builderResult = this.applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, parsed.aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet);\n return isPromise(builderResult)\n ? builderResult.then(result => this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, result.innerArgv, currentContext, helpOnly, result.aliases, yargs))\n : this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, builderResult.innerArgv, currentContext, helpOnly, builderResult.aliases, yargs);\n }\n applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet) {\n const builder = commandHandler.builder;\n let innerYargs = yargs;\n if (isCommandBuilderCallback(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet);\n if (isPromise(builderOutput)) {\n return builderOutput.then(output => {\n innerYargs = isYargsInstance(output) ? output : yargs;\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n });\n }\n }\n else if (isCommandBuilderOptionDefinitions(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n innerYargs = yargs.getInternalMethods().reset(aliases);\n Object.keys(commandHandler.builder).forEach(key => {\n innerYargs.option(key, builder[key]);\n });\n }\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n }\n parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly) {\n if (isDefaultCommand)\n innerYargs.getInternalMethods().getUsageInstance().unfreeze(true);\n if (this.shouldUpdateUsage(innerYargs)) {\n innerYargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(this.usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);\n }\n const innerArgv = innerYargs\n .getInternalMethods()\n .runYargsParserAndExecuteCommands(null, undefined, true, commandIndex, helpOnly);\n return isPromise(innerArgv)\n ? innerArgv.then(argv => ({\n aliases: innerYargs.parsed.aliases,\n innerArgv: argv,\n }))\n : {\n aliases: innerYargs.parsed.aliases,\n innerArgv: innerArgv,\n };\n }\n shouldUpdateUsage(yargs) {\n return (!yargs.getInternalMethods().getUsageInstance().getUsageDisabled() &&\n yargs.getInternalMethods().getUsageInstance().getUsage().length === 0);\n }\n usageFromParentCommandsCommandHandler(parentCommands, commandHandler) {\n const c = DEFAULT_MARKER.test(commandHandler.original)\n ? commandHandler.original.replace(DEFAULT_MARKER, '').trim()\n : commandHandler.original;\n const pc = parentCommands.filter(c => {\n return !DEFAULT_MARKER.test(c);\n });\n pc.push(c);\n return `$0 ${pc.join(' ')}`;\n }\n handleValidationAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, aliases, yargs, middlewares, positionalMap) {\n if (!yargs.getInternalMethods().getHasOutput()) {\n const validation = yargs\n .getInternalMethods()\n .runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n validation(result);\n return result;\n });\n }\n if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) {\n yargs.getInternalMethods().setHasOutput();\n const populateDoubleDash = !!yargs.getOptions().configuration['populate--'];\n yargs\n .getInternalMethods()\n .postProcess(innerArgv, populateDoubleDash, false, false);\n innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n const handlerResult = commandHandler.handler(result);\n return isPromise(handlerResult)\n ? handlerResult.then(() => result)\n : result;\n });\n if (!isDefaultCommand) {\n yargs.getInternalMethods().getUsageInstance().cacheHelpMessage();\n }\n if (isPromise(innerArgv) &&\n !yargs.getInternalMethods().hasParseCallback()) {\n innerArgv.catch(error => {\n try {\n yargs.getInternalMethods().getUsageInstance().fail(null, error);\n }\n catch (_err) {\n }\n });\n }\n }\n if (!isDefaultCommand) {\n currentContext.commands.pop();\n currentContext.fullCommands.pop();\n }\n return innerArgv;\n }\n applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) {\n let positionalMap = {};\n if (helpOnly)\n return innerArgv;\n if (!yargs.getInternalMethods().getHasOutput()) {\n positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs);\n }\n const middlewares = this.globalMiddleware\n .getMiddleware()\n .slice(0)\n .concat(commandHandler.middlewares);\n const maybePromiseArgv = applyMiddleware(innerArgv, yargs, middlewares, true);\n return isPromise(maybePromiseArgv)\n ? maybePromiseArgv.then(resolvedInnerArgv => this.handleValidationAndGetResult(isDefaultCommand, commandHandler, resolvedInnerArgv, currentContext, aliases, yargs, middlewares, positionalMap))\n : this.handleValidationAndGetResult(isDefaultCommand, commandHandler, maybePromiseArgv, currentContext, aliases, yargs, middlewares, positionalMap);\n }\n populatePositionals(commandHandler, argv, context, yargs) {\n argv._ = argv._.slice(context.commands.length);\n const demanded = commandHandler.demanded.slice(0);\n const optional = commandHandler.optional.slice(0);\n const positionalMap = {};\n this.validation.positionalCount(demanded.length, argv._.length);\n while (demanded.length) {\n const demand = demanded.shift();\n this.populatePositional(demand, argv, positionalMap);\n }\n while (optional.length) {\n const maybe = optional.shift();\n this.populatePositional(maybe, argv, positionalMap);\n }\n argv._ = context.commands.concat(argv._.map(a => '' + a));\n this.postProcessPositionals(argv, positionalMap, this.cmdToParseOptions(commandHandler.original), yargs);\n return positionalMap;\n }\n populatePositional(positional, argv, positionalMap) {\n const cmd = positional.cmd[0];\n if (positional.variadic) {\n positionalMap[cmd] = argv._.splice(0).map(String);\n }\n else {\n if (argv._.length)\n positionalMap[cmd] = [String(argv._.shift())];\n }\n }\n cmdToParseOptions(cmdString) {\n const parseOptions = {\n array: [],\n default: {},\n alias: {},\n demand: {},\n };\n const parsed = parseCommand(cmdString);\n parsed.demanded.forEach(d => {\n const [cmd, ...aliases] = d.cmd;\n if (d.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n parseOptions.demand[cmd] = true;\n });\n parsed.optional.forEach(o => {\n const [cmd, ...aliases] = o.cmd;\n if (o.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n });\n return parseOptions;\n }\n postProcessPositionals(argv, positionalMap, parseOptions, yargs) {\n const options = Object.assign({}, yargs.getOptions());\n options.default = Object.assign(parseOptions.default, options.default);\n for (const key of Object.keys(parseOptions.alias)) {\n options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]);\n }\n options.array = options.array.concat(parseOptions.array);\n options.config = {};\n const unparsed = [];\n Object.keys(positionalMap).forEach(key => {\n positionalMap[key].map(value => {\n if (options.configuration['unknown-options-as-args'])\n options.key[key] = true;\n unparsed.push(`--${key}`);\n unparsed.push(value);\n });\n });\n if (!unparsed.length)\n return;\n const config = Object.assign({}, options.configuration, {\n 'populate--': false,\n });\n const parsed = this.shim.Parser.detailed(unparsed, Object.assign({}, options, {\n configuration: config,\n }));\n if (parsed.error) {\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .fail(parsed.error.message, parsed.error);\n }\n else {\n const positionalKeys = Object.keys(positionalMap);\n Object.keys(positionalMap).forEach(key => {\n positionalKeys.push(...parsed.aliases[key]);\n });\n Object.keys(parsed.argv).forEach(key => {\n if (positionalKeys.includes(key)) {\n if (!positionalMap[key])\n positionalMap[key] = parsed.argv[key];\n if (!this.isInConfigs(yargs, key) &&\n !this.isDefaulted(yargs, key) &&\n Object.prototype.hasOwnProperty.call(argv, key) &&\n Object.prototype.hasOwnProperty.call(parsed.argv, key) &&\n (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) {\n argv[key] = [].concat(argv[key], parsed.argv[key]);\n }\n else {\n argv[key] = parsed.argv[key];\n }\n }\n });\n }\n }\n isDefaulted(yargs, key) {\n const { default: defaults } = yargs.getOptions();\n return (Object.prototype.hasOwnProperty.call(defaults, key) ||\n Object.prototype.hasOwnProperty.call(defaults, this.shim.Parser.camelCase(key)));\n }\n isInConfigs(yargs, key) {\n const { configObjects } = yargs.getOptions();\n return (configObjects.some(c => Object.prototype.hasOwnProperty.call(c, key)) ||\n configObjects.some(c => Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key))));\n }\n runDefaultBuilderOn(yargs) {\n if (!this.defaultCommand)\n return;\n if (this.shouldUpdateUsage(yargs)) {\n const commandString = DEFAULT_MARKER.test(this.defaultCommand.original)\n ? this.defaultCommand.original\n : this.defaultCommand.original.replace(/^[^[\\]<>]*/, '$0 ');\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(commandString, this.defaultCommand.description);\n }\n const builder = this.defaultCommand.builder;\n if (isCommandBuilderCallback(builder)) {\n return builder(yargs, true);\n }\n else if (!isCommandBuilderDefinition(builder)) {\n Object.keys(builder).forEach(key => {\n yargs.option(key, builder[key]);\n });\n }\n return undefined;\n }\n extractDesc({ describe, description, desc }) {\n for (const test of [describe, description, desc]) {\n if (typeof test === 'string' || test === false)\n return test;\n assertNotStrictEqual(test, true, this.shim);\n }\n return false;\n }\n freeze() {\n this.frozens.push({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n });\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n assertNotStrictEqual(frozen, undefined, this.shim);\n ({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n } = frozen);\n }\n reset() {\n this.handlers = {};\n this.aliasMap = {};\n this.defaultCommand = undefined;\n this.requireCache = new Set();\n return this;\n }\n}\nexport function command(usage, validation, globalMiddleware, shim) {\n return new CommandInstance(usage, validation, globalMiddleware, shim);\n}\nexport function isCommandBuilderDefinition(builder) {\n return (typeof builder === 'object' &&\n !!builder.builder &&\n typeof builder.handler === 'function');\n}\nfunction isCommandAndAliases(cmd) {\n return cmd.every(c => typeof c === 'string');\n}\nexport function isCommandBuilderCallback(builder) {\n return typeof builder === 'function';\n}\nfunction isCommandBuilderOptionDefinitions(builder) {\n return typeof builder === 'object';\n}\nexport function isCommandHandlerDefinition(cmd) {\n return typeof cmd === 'object' && !Array.isArray(cmd);\n}\n","import { objectKeys } from '../typings/common-types.js';\nexport function objFilter(original = {}, filter = () => true) {\n const obj = {};\n objectKeys(original).forEach(key => {\n if (filter(key, original[key])) {\n obj[key] = original[key];\n }\n });\n return obj;\n}\n","export default function setBlocking(blocking) {\n if (typeof process === 'undefined')\n return;\n [process.stdout, process.stderr].forEach(_stream => {\n const stream = _stream;\n if (stream._handle &&\n stream.isTTY &&\n typeof stream._handle.setBlocking === 'function') {\n stream._handle.setBlocking(blocking);\n }\n });\n}\n","import { objFilter } from './utils/obj-filter.js';\nimport { YError } from './yerror.js';\nimport setBlocking from './utils/set-blocking.js';\nfunction isBoolean(fail) {\n return typeof fail === 'boolean';\n}\nexport function usage(yargs, shim) {\n const __ = shim.y18n.__;\n const self = {};\n const fails = [];\n self.failFn = function failFn(f) {\n fails.push(f);\n };\n let failMessage = null;\n let globalFailMessage = null;\n let showHelpOnFail = true;\n self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) {\n const [enabled, message] = typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2];\n if (yargs.getInternalMethods().isGlobalContext()) {\n globalFailMessage = message;\n }\n failMessage = message;\n showHelpOnFail = enabled;\n return self;\n };\n let failureOutput = false;\n self.fail = function fail(msg, err) {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (fails.length) {\n for (let i = fails.length - 1; i >= 0; --i) {\n const fail = fails[i];\n if (isBoolean(fail)) {\n if (err)\n throw err;\n else if (msg)\n throw Error(msg);\n }\n else {\n fail(msg, err, self);\n }\n }\n }\n else {\n if (yargs.getExitProcess())\n setBlocking(true);\n if (!failureOutput) {\n failureOutput = true;\n if (showHelpOnFail) {\n yargs.showHelp('error');\n logger.error();\n }\n if (msg || err)\n logger.error(msg || err);\n const globalOrCommandFailMessage = failMessage || globalFailMessage;\n if (globalOrCommandFailMessage) {\n if (msg || err)\n logger.error('');\n logger.error(globalOrCommandFailMessage);\n }\n }\n err = err || new YError(msg);\n if (yargs.getExitProcess()) {\n return yargs.exit(1);\n }\n else if (yargs.getInternalMethods().hasParseCallback()) {\n return yargs.exit(1, err);\n }\n else {\n throw err;\n }\n }\n };\n let usages = [];\n let usageDisabled = false;\n self.usage = (msg, description) => {\n if (msg === null) {\n usageDisabled = true;\n usages = [];\n return self;\n }\n usageDisabled = false;\n usages.push([msg, description || '']);\n return self;\n };\n self.getUsage = () => {\n return usages;\n };\n self.getUsageDisabled = () => {\n return usageDisabled;\n };\n self.getPositionalGroupName = () => {\n return __('Positionals:');\n };\n let examples = [];\n self.example = (cmd, description) => {\n examples.push([cmd, description || '']);\n };\n let commands = [];\n self.command = function command(cmd, description, isDefault, aliases, deprecated = false) {\n if (isDefault) {\n commands = commands.map(cmdArray => {\n cmdArray[2] = false;\n return cmdArray;\n });\n }\n commands.push([cmd, description || '', isDefault, aliases, deprecated]);\n };\n self.getCommands = () => commands;\n let descriptions = {};\n self.describe = function describe(keyOrKeys, desc) {\n if (Array.isArray(keyOrKeys)) {\n keyOrKeys.forEach(k => {\n self.describe(k, desc);\n });\n }\n else if (typeof keyOrKeys === 'object') {\n Object.keys(keyOrKeys).forEach(k => {\n self.describe(k, keyOrKeys[k]);\n });\n }\n else {\n descriptions[keyOrKeys] = desc;\n }\n };\n self.getDescriptions = () => descriptions;\n let epilogs = [];\n self.epilog = msg => {\n epilogs.push(msg);\n };\n let wrapSet = false;\n let wrap;\n self.wrap = cols => {\n wrapSet = true;\n wrap = cols;\n };\n self.getWrap = () => {\n if (shim.getEnv('YARGS_DISABLE_WRAP')) {\n return null;\n }\n if (!wrapSet) {\n wrap = windowWidth();\n wrapSet = true;\n }\n return wrap;\n };\n const deferY18nLookupPrefix = '__yargsString__:';\n self.deferY18nLookup = str => deferY18nLookupPrefix + str;\n self.help = function help() {\n if (cachedHelpMessage)\n return cachedHelpMessage;\n normalizeAliases();\n const base$0 = yargs.customScriptName\n ? yargs.$0\n : shim.path.basename(yargs.$0);\n const demandedOptions = yargs.getDemandedOptions();\n const demandedCommands = yargs.getDemandedCommands();\n const deprecatedOptions = yargs.getDeprecatedOptions();\n const groups = yargs.getGroups();\n const options = yargs.getOptions();\n let keys = [];\n keys = keys.concat(Object.keys(descriptions));\n keys = keys.concat(Object.keys(demandedOptions));\n keys = keys.concat(Object.keys(demandedCommands));\n keys = keys.concat(Object.keys(options.default));\n keys = keys.filter(filterHiddenOptions);\n keys = Object.keys(keys.reduce((acc, key) => {\n if (key !== '_')\n acc[key] = true;\n return acc;\n }, {}));\n const theWrap = self.getWrap();\n const ui = shim.cliui({\n width: theWrap,\n wrap: !!theWrap,\n });\n if (!usageDisabled) {\n if (usages.length) {\n usages.forEach(usage => {\n ui.div({ text: `${usage[0].replace(/\\$0/g, base$0)}` });\n if (usage[1]) {\n ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] });\n }\n });\n ui.div();\n }\n else if (commands.length) {\n let u = null;\n if (demandedCommands._) {\n u = `${base$0} <${__('command')}>\\n`;\n }\n else {\n u = `${base$0} [${__('command')}]\\n`;\n }\n ui.div(`${u}`);\n }\n }\n if (commands.length > 1 || (commands.length === 1 && !commands[0][2])) {\n ui.div(__('Commands:'));\n const context = yargs.getInternalMethods().getContext();\n const parentCommands = context.commands.length\n ? `${context.commands.join(' ')} `\n : '';\n if (yargs.getInternalMethods().getParserConfiguration()['sort-commands'] ===\n true) {\n commands = commands.sort((a, b) => a[0].localeCompare(b[0]));\n }\n const prefix = base$0 ? `${base$0} ` : '';\n commands.forEach(command => {\n const commandString = `${prefix}${parentCommands}${command[0].replace(/^\\$0 ?/, '')}`;\n ui.span({\n text: commandString,\n padding: [0, 2, 0, 2],\n width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4,\n }, { text: command[1] });\n const hints = [];\n if (command[2])\n hints.push(`[${__('default')}]`);\n if (command[3] && command[3].length) {\n hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`);\n }\n if (command[4]) {\n if (typeof command[4] === 'string') {\n hints.push(`[${__('deprecated: %s', command[4])}]`);\n }\n else {\n hints.push(`[${__('deprecated')}]`);\n }\n }\n if (hints.length) {\n ui.div({\n text: hints.join(' '),\n padding: [0, 0, 0, 2],\n align: 'right',\n });\n }\n else {\n ui.div();\n }\n });\n ui.div();\n }\n const aliasKeys = (Object.keys(options.alias) || []).concat(Object.keys(yargs.parsed.newAliases) || []);\n keys = keys.filter(key => !yargs.parsed.newAliases[key] &&\n aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1));\n const defaultGroup = __('Options:');\n if (!groups[defaultGroup])\n groups[defaultGroup] = [];\n addUngroupedKeys(keys, options.alias, groups, defaultGroup);\n const isLongSwitch = (sw) => /^--/.test(getText(sw));\n const displayedGroups = Object.keys(groups)\n .filter(groupName => groups[groupName].length > 0)\n .map(groupName => {\n const normalizedKeys = groups[groupName]\n .filter(filterHiddenOptions)\n .map(key => {\n if (aliasKeys.includes(key))\n return key;\n for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {\n if ((options.alias[aliasKey] || []).includes(key))\n return aliasKey;\n }\n return key;\n });\n return { groupName, normalizedKeys };\n })\n .filter(({ normalizedKeys }) => normalizedKeys.length > 0)\n .map(({ groupName, normalizedKeys }) => {\n const switches = normalizedKeys.reduce((acc, key) => {\n acc[key] = [key]\n .concat(options.alias[key] || [])\n .map(sw => {\n if (groupName === self.getPositionalGroupName())\n return sw;\n else {\n return ((/^[0-9]$/.test(sw)\n ? options.boolean.includes(key)\n ? '-'\n : '--'\n : sw.length > 1\n ? '--'\n : '-') + sw);\n }\n })\n .sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2)\n ? 0\n : isLongSwitch(sw1)\n ? 1\n : -1)\n .join(', ');\n return acc;\n }, {});\n return { groupName, normalizedKeys, switches };\n });\n const shortSwitchesUsed = displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .some(({ normalizedKeys, switches }) => !normalizedKeys.every(key => isLongSwitch(switches[key])));\n if (shortSwitchesUsed) {\n displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .forEach(({ normalizedKeys, switches }) => {\n normalizedKeys.forEach(key => {\n if (isLongSwitch(switches[key])) {\n switches[key] = addIndentation(switches[key], '-x, '.length);\n }\n });\n });\n }\n displayedGroups.forEach(({ groupName, normalizedKeys, switches }) => {\n ui.div(groupName);\n normalizedKeys.forEach(key => {\n const kswitch = switches[key];\n let desc = descriptions[key] || '';\n let type = null;\n if (desc.includes(deferY18nLookupPrefix))\n desc = __(desc.substring(deferY18nLookupPrefix.length));\n if (options.boolean.includes(key))\n type = `[${__('boolean')}]`;\n if (options.count.includes(key))\n type = `[${__('count')}]`;\n if (options.string.includes(key))\n type = `[${__('string')}]`;\n if (options.normalize.includes(key))\n type = `[${__('string')}]`;\n if (options.array.includes(key))\n type = `[${__('array')}]`;\n if (options.number.includes(key))\n type = `[${__('number')}]`;\n const deprecatedExtra = (deprecated) => typeof deprecated === 'string'\n ? `[${__('deprecated: %s', deprecated)}]`\n : `[${__('deprecated')}]`;\n const extra = [\n key in deprecatedOptions\n ? deprecatedExtra(deprecatedOptions[key])\n : null,\n type,\n key in demandedOptions ? `[${__('required')}]` : null,\n options.choices && options.choices[key]\n ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]`\n : null,\n defaultString(options.default[key], options.defaultDescription[key]),\n ]\n .filter(Boolean)\n .join(' ');\n ui.span({\n text: getText(kswitch),\n padding: [0, 2, 0, 2 + getIndentation(kswitch)],\n width: maxWidth(switches, theWrap) + 4,\n }, desc);\n const shouldHideOptionExtras = yargs.getInternalMethods().getUsageConfiguration()['hide-types'] ===\n true;\n if (extra && !shouldHideOptionExtras)\n ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' });\n else\n ui.div();\n });\n ui.div();\n });\n if (examples.length) {\n ui.div(__('Examples:'));\n examples.forEach(example => {\n example[0] = example[0].replace(/\\$0/g, base$0);\n });\n examples.forEach(example => {\n if (example[1] === '') {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n });\n }\n else {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n width: maxWidth(examples, theWrap) + 4,\n }, {\n text: example[1],\n });\n }\n });\n ui.div();\n }\n if (epilogs.length > 0) {\n const e = epilogs\n .map(epilog => epilog.replace(/\\$0/g, base$0))\n .join('\\n');\n ui.div(`${e}\\n`);\n }\n return ui.toString().replace(/\\s*$/, '');\n };\n function maxWidth(table, theWrap, modifier) {\n let width = 0;\n if (!Array.isArray(table)) {\n table = Object.values(table).map(v => [v]);\n }\n table.forEach(v => {\n width = Math.max(shim.stringWidth(modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])) + getIndentation(v[0]), width);\n });\n if (theWrap)\n width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10));\n return width;\n }\n function normalizeAliases() {\n const demandedOptions = yargs.getDemandedOptions();\n const options = yargs.getOptions();\n (Object.keys(options.alias) || []).forEach(key => {\n options.alias[key].forEach(alias => {\n if (descriptions[alias])\n self.describe(key, descriptions[alias]);\n if (alias in demandedOptions)\n yargs.demandOption(key, demandedOptions[alias]);\n if (options.boolean.includes(alias))\n yargs.boolean(key);\n if (options.count.includes(alias))\n yargs.count(key);\n if (options.string.includes(alias))\n yargs.string(key);\n if (options.normalize.includes(alias))\n yargs.normalize(key);\n if (options.array.includes(alias))\n yargs.array(key);\n if (options.number.includes(alias))\n yargs.number(key);\n });\n });\n }\n let cachedHelpMessage;\n self.cacheHelpMessage = function () {\n cachedHelpMessage = this.help();\n };\n self.clearCachedHelpMessage = function () {\n cachedHelpMessage = undefined;\n };\n self.hasCachedHelpMessage = function () {\n return !!cachedHelpMessage;\n };\n function addUngroupedKeys(keys, aliases, groups, defaultGroup) {\n let groupedKeys = [];\n let toCheck = null;\n Object.keys(groups).forEach(group => {\n groupedKeys = groupedKeys.concat(groups[group]);\n });\n keys.forEach(key => {\n toCheck = [key].concat(aliases[key]);\n if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {\n groups[defaultGroup].push(key);\n }\n });\n return groupedKeys;\n }\n function filterHiddenOptions(key) {\n return (yargs.getOptions().hiddenOptions.indexOf(key) < 0 ||\n yargs.parsed.argv[yargs.getOptions().showHiddenOpt]);\n }\n self.showHelp = (level) => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(self.help());\n };\n self.functionDescription = fn => {\n const description = fn.name\n ? shim.Parser.decamelize(fn.name, '-')\n : __('generated-value');\n return ['(', description, ')'].join('');\n };\n self.stringifiedValues = function stringifiedValues(values, separator) {\n let string = '';\n const sep = separator || ', ';\n const array = [].concat(values);\n if (!values || !array.length)\n return string;\n array.forEach(value => {\n if (string.length)\n string += sep;\n string += JSON.stringify(value);\n });\n return string;\n };\n function defaultString(value, defaultDescription) {\n let string = `[${__('default:')} `;\n if (value === undefined && !defaultDescription)\n return null;\n if (defaultDescription) {\n string += defaultDescription;\n }\n else {\n switch (typeof value) {\n case 'string':\n string += `\"${value}\"`;\n break;\n case 'object':\n string += JSON.stringify(value);\n break;\n default:\n string += value;\n }\n }\n return `${string}]`;\n }\n function windowWidth() {\n const maxWidth = 80;\n if (shim.process.stdColumns) {\n return Math.min(maxWidth, shim.process.stdColumns);\n }\n else {\n return maxWidth;\n }\n }\n let version = null;\n self.version = ver => {\n version = ver;\n };\n self.showVersion = level => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(version);\n };\n self.reset = function reset(localLookup) {\n failMessage = null;\n failureOutput = false;\n usages = [];\n usageDisabled = false;\n epilogs = [];\n examples = [];\n commands = [];\n descriptions = objFilter(descriptions, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n });\n };\n self.unfreeze = function unfreeze(defaultCommand = false) {\n const frozen = frozens.pop();\n if (!frozen)\n return;\n if (defaultCommand) {\n descriptions = { ...frozen.descriptions, ...descriptions };\n commands = [...frozen.commands, ...commands];\n usages = [...frozen.usages, ...usages];\n examples = [...frozen.examples, ...examples];\n epilogs = [...frozen.epilogs, ...epilogs];\n }\n else {\n ({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n } = frozen);\n }\n };\n return self;\n}\nfunction isIndentedText(text) {\n return typeof text === 'object';\n}\nfunction addIndentation(text, indent) {\n return isIndentedText(text)\n ? { text: text.text, indentation: text.indentation + indent }\n : { text, indentation: indent };\n}\nfunction getIndentation(text) {\n return isIndentedText(text) ? text.indentation : 0;\n}\nfunction getText(text) {\n return isIndentedText(text) ? text.text : text;\n}\n","export const completionShTemplate = `###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local cur_word args type_list\n\n cur_word=\"\\${COMP_WORDS[COMP_CWORD]}\"\n args=(\"\\${COMP_WORDS[@]}\")\n\n # ask yargs to generate completions.\n # see https://stackoverflow.com/a/40944195/7080036 for the spaces-handling awk\n mapfile -t type_list < <({{app_path}} --get-yargs-completions \"\\${args[@]}\")\n mapfile -t COMPREPLY < <(compgen -W \"$( printf '%q ' \"\\${type_list[@]}\" )\" -- \"\\${cur_word}\" |\n awk '/ / { print \"\\\\\"\"$0\"\\\\\"\" } /^[^ ]+$/ { print $0 }')\n\n # if no match was found, fall back to filename completion\n if [ \\${#COMPREPLY[@]} -eq 0 ]; then\n COMPREPLY=()\n fi\n\n return 0\n}\ncomplete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n`;\nexport const completionZshTemplate = `#compdef {{app_name}}\n###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local reply\n local si=$IFS\n IFS=$'\\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"\\${words[@]}\"))\n IFS=$si\n if [[ \\${#reply} -gt 0 ]]; then\n _describe 'values' reply\n else\n _default\n fi\n}\nif [[ \"'\\${zsh_eval_context[-1]}\" == \"loadautofunc\" ]]; then\n _{{app_name}}_yargs_completions \"$@\"\nelse\n compdef _{{app_name}}_yargs_completions {{app_name}}\nfi\n###-end-{{app_name}}-completions-###\n`;\n","import { isCommandBuilderCallback } from './command.js';\nimport { assertNotStrictEqual } from './typings/common-types.js';\nimport * as templates from './completion-templates.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { parseCommand } from './parse-command.js';\nexport class Completion {\n constructor(yargs, usage, command, shim) {\n var _a, _b, _c;\n this.yargs = yargs;\n this.usage = usage;\n this.command = command;\n this.shim = shim;\n this.completionKey = 'get-yargs-completions';\n this.aliases = null;\n this.customCompletionFunction = null;\n this.indexAfterLastReset = 0;\n this.zshShell =\n (_c = (((_a = this.shim.getEnv('SHELL')) === null || _a === void 0 ? void 0 : _a.includes('zsh')) ||\n ((_b = this.shim.getEnv('ZSH_NAME')) === null || _b === void 0 ? void 0 : _b.includes('zsh')))) !== null && _c !== void 0 ? _c : false;\n }\n defaultCompletion(args, argv, current, done) {\n const handlers = this.command.getCommandHandlers();\n for (let i = 0, ii = args.length; i < ii; ++i) {\n if (handlers[args[i]] && handlers[args[i]].builder) {\n const builder = handlers[args[i]].builder;\n if (isCommandBuilderCallback(builder)) {\n this.indexAfterLastReset = i + 1;\n const y = this.yargs.getInternalMethods().reset();\n builder(y, true);\n return y.argv;\n }\n }\n }\n const completions = [];\n this.commandCompletions(completions, args, current);\n this.optionCompletions(completions, args, argv, current);\n this.choicesFromOptionsCompletions(completions, args, argv, current);\n this.choicesFromPositionalsCompletions(completions, args, argv, current);\n done(null, completions);\n }\n commandCompletions(completions, args, current) {\n const parentCommands = this.yargs\n .getInternalMethods()\n .getContext().commands;\n if (!current.match(/^-/) &&\n parentCommands[parentCommands.length - 1] !== current &&\n !this.previousArgHasChoices(args)) {\n this.usage.getCommands().forEach(usageCommand => {\n const commandName = parseCommand(usageCommand[0]).cmd;\n if (args.indexOf(commandName) === -1) {\n if (!this.zshShell) {\n completions.push(commandName);\n }\n else {\n const desc = usageCommand[1] || '';\n completions.push(commandName.replace(/:/g, '\\\\:') + ':' + desc);\n }\n }\n });\n }\n }\n optionCompletions(completions, args, argv, current) {\n if ((current.match(/^-/) || (current === '' && completions.length === 0)) &&\n !this.previousArgHasChoices(args)) {\n const options = this.yargs.getOptions();\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n Object.keys(options.key).forEach(key => {\n const negable = !!options.configuration['boolean-negation'] &&\n options.boolean.includes(key);\n const isPositionalKey = positionalKeys.includes(key);\n if (!isPositionalKey &&\n !options.hiddenOptions.includes(key) &&\n !this.argsContainKey(args, key, negable)) {\n this.completeOptionKey(key, completions, current, negable && !!options.default[key]);\n }\n });\n }\n }\n choicesFromOptionsCompletions(completions, args, argv, current) {\n if (this.previousArgHasChoices(args)) {\n const choices = this.getPreviousArgChoices(args);\n if (choices && choices.length > 0) {\n completions.push(...choices.map(c => c.replace(/:/g, '\\\\:')));\n }\n }\n }\n choicesFromPositionalsCompletions(completions, args, argv, current) {\n if (current === '' &&\n completions.length > 0 &&\n this.previousArgHasChoices(args)) {\n return;\n }\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n const offset = Math.max(this.indexAfterLastReset, this.yargs.getInternalMethods().getContext().commands.length +\n 1);\n const positionalKey = positionalKeys[argv._.length - offset - 1];\n if (!positionalKey) {\n return;\n }\n const choices = this.yargs.getOptions().choices[positionalKey] || [];\n for (const choice of choices) {\n if (choice.startsWith(current)) {\n completions.push(choice.replace(/:/g, '\\\\:'));\n }\n }\n }\n getPreviousArgChoices(args) {\n if (args.length < 1)\n return;\n let previousArg = args[args.length - 1];\n let filter = '';\n if (!previousArg.startsWith('-') && args.length > 1) {\n filter = previousArg;\n previousArg = args[args.length - 2];\n }\n if (!previousArg.startsWith('-'))\n return;\n const previousArgKey = previousArg.replace(/^-+/, '');\n const options = this.yargs.getOptions();\n const possibleAliases = [\n previousArgKey,\n ...(this.yargs.getAliases()[previousArgKey] || []),\n ];\n let choices;\n for (const possibleAlias of possibleAliases) {\n if (Object.prototype.hasOwnProperty.call(options.key, possibleAlias) &&\n Array.isArray(options.choices[possibleAlias])) {\n choices = options.choices[possibleAlias];\n break;\n }\n }\n if (choices) {\n return choices.filter(choice => !filter || choice.startsWith(filter));\n }\n }\n previousArgHasChoices(args) {\n const choices = this.getPreviousArgChoices(args);\n return choices !== undefined && choices.length > 0;\n }\n argsContainKey(args, key, negable) {\n const argsContains = (s) => args.indexOf((/^[^0-9]$/.test(s) ? '-' : '--') + s) !== -1;\n if (argsContains(key))\n return true;\n if (negable && argsContains(`no-${key}`))\n return true;\n if (this.aliases) {\n for (const alias of this.aliases[key]) {\n if (argsContains(alias))\n return true;\n }\n }\n return false;\n }\n completeOptionKey(key, completions, current, negable) {\n var _a, _b, _c, _d;\n let keyWithDesc = key;\n if (this.zshShell) {\n const descs = this.usage.getDescriptions();\n const aliasKey = (_b = (_a = this === null || this === void 0 ? void 0 : this.aliases) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.find(alias => {\n const desc = descs[alias];\n return typeof desc === 'string' && desc.length > 0;\n });\n const descFromAlias = aliasKey ? descs[aliasKey] : undefined;\n const desc = (_d = (_c = descs[key]) !== null && _c !== void 0 ? _c : descFromAlias) !== null && _d !== void 0 ? _d : '';\n keyWithDesc = `${key.replace(/:/g, '\\\\:')}:${desc\n .replace('__yargsString__:', '')\n .replace(/(\\r\\n|\\n|\\r)/gm, ' ')}`;\n }\n const startsByTwoDashes = (s) => /^--/.test(s);\n const isShortOption = (s) => /^[^0-9]$/.test(s);\n const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--';\n completions.push(dashes + keyWithDesc);\n if (negable) {\n completions.push(dashes + 'no-' + keyWithDesc);\n }\n }\n customCompletion(args, argv, current, done) {\n assertNotStrictEqual(this.customCompletionFunction, null, this.shim);\n if (isSyncCompletionFunction(this.customCompletionFunction)) {\n const result = this.customCompletionFunction(current, argv);\n if (isPromise(result)) {\n return result\n .then(list => {\n this.shim.process.nextTick(() => {\n done(null, list);\n });\n })\n .catch(err => {\n this.shim.process.nextTick(() => {\n done(err, undefined);\n });\n });\n }\n return done(null, result);\n }\n else if (isFallbackCompletionFunction(this.customCompletionFunction)) {\n return this.customCompletionFunction(current, argv, (onCompleted = done) => this.defaultCompletion(args, argv, current, onCompleted), completions => {\n done(null, completions);\n });\n }\n else {\n return this.customCompletionFunction(current, argv, completions => {\n done(null, completions);\n });\n }\n }\n getCompletion(args, done) {\n const current = args.length ? args[args.length - 1] : '';\n const argv = this.yargs.parse(args, true);\n const completionFunction = this.customCompletionFunction\n ? (argv) => this.customCompletion(args, argv, current, done)\n : (argv) => this.defaultCompletion(args, argv, current, done);\n return isPromise(argv)\n ? argv.then(completionFunction)\n : completionFunction(argv);\n }\n generateCompletionScript($0, cmd) {\n let script = this.zshShell\n ? templates.completionZshTemplate\n : templates.completionShTemplate;\n const name = this.shim.path.basename($0);\n if ($0.match(/\\.js$/))\n $0 = `./${$0}`;\n script = script.replace(/{{app_name}}/g, name);\n script = script.replace(/{{completion_command}}/g, cmd);\n return script.replace(/{{app_path}}/g, $0);\n }\n registerFunction(fn) {\n this.customCompletionFunction = fn;\n }\n setParsed(parsed) {\n this.aliases = parsed.aliases;\n }\n}\nexport function completion(yargs, usage, command, shim) {\n return new Completion(yargs, usage, command, shim);\n}\nfunction isSyncCompletionFunction(completionFunction) {\n return completionFunction.length < 3;\n}\nfunction isFallbackCompletionFunction(completionFunction) {\n return completionFunction.length > 3;\n}\n","export function levenshtein(a, b) {\n if (a.length === 0)\n return b.length;\n if (b.length === 0)\n return a.length;\n const matrix = [];\n let i;\n for (i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n let j;\n for (j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (i = 1; i <= b.length; i++) {\n for (j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n else {\n if (i > 1 &&\n j > 1 &&\n b.charAt(i - 2) === a.charAt(j - 1) &&\n b.charAt(i - 1) === a.charAt(j - 2)) {\n matrix[i][j] = matrix[i - 2][j - 2] + 1;\n }\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));\n }\n }\n }\n }\n return matrix[b.length][a.length];\n}\n","import { argsert } from './argsert.js';\nimport { assertNotStrictEqual, } from './typings/common-types.js';\nimport { levenshtein as distance } from './utils/levenshtein.js';\nimport { objFilter } from './utils/obj-filter.js';\nconst specialKeys = ['$0', '--', '_'];\nexport function validation(yargs, usage, shim) {\n const __ = shim.y18n.__;\n const __n = shim.y18n.__n;\n const self = {};\n self.nonOptionCount = function nonOptionCount(argv) {\n const demandedCommands = yargs.getDemandedCommands();\n const positionalCount = argv._.length + (argv['--'] ? argv['--'].length : 0);\n const _s = positionalCount - yargs.getInternalMethods().getContext().commands.length;\n if (demandedCommands._ &&\n (_s < demandedCommands._.min || _s > demandedCommands._.max)) {\n if (_s < demandedCommands._.min) {\n if (demandedCommands._.minMsg !== undefined) {\n usage.fail(demandedCommands._.minMsg\n ? demandedCommands._.minMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.min.toString())\n : null);\n }\n else {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', _s, _s.toString(), demandedCommands._.min.toString()));\n }\n }\n else if (_s > demandedCommands._.max) {\n if (demandedCommands._.maxMsg !== undefined) {\n usage.fail(demandedCommands._.maxMsg\n ? demandedCommands._.maxMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.max.toString())\n : null);\n }\n else {\n usage.fail(__n('Too many non-option arguments: got %s, maximum of %s', 'Too many non-option arguments: got %s, maximum of %s', _s, _s.toString(), demandedCommands._.max.toString()));\n }\n }\n }\n };\n self.positionalCount = function positionalCount(required, observed) {\n if (observed < required) {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', observed, observed + '', required + ''));\n }\n };\n self.requiredArguments = function requiredArguments(argv, demandedOptions) {\n let missing = null;\n for (const key of Object.keys(demandedOptions)) {\n if (!Object.prototype.hasOwnProperty.call(argv, key) ||\n typeof argv[key] === 'undefined') {\n missing = missing || {};\n missing[key] = demandedOptions[key];\n }\n }\n if (missing) {\n const customMsgs = [];\n for (const key of Object.keys(missing)) {\n const msg = missing[key];\n if (msg && customMsgs.indexOf(msg) < 0) {\n customMsgs.push(msg);\n }\n }\n const customMsg = customMsgs.length ? `\\n${customMsgs.join('\\n')}` : '';\n usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg));\n }\n };\n self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) {\n var _a;\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n Object.keys(argv).forEach(key => {\n if (!specialKeys.includes(key) &&\n !Object.prototype.hasOwnProperty.call(positionalMap, key) &&\n !Object.prototype.hasOwnProperty.call(yargs.getInternalMethods().getParseContext(), key) &&\n !self.isValidAndSomeAliasIsNotNew(key, aliases)) {\n unknown.push(key);\n }\n });\n if (checkPositionals &&\n (currentContext.commands.length > 0 ||\n commandKeys.length > 0 ||\n isDefaultCommand)) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (checkPositionals) {\n const demandedCommands = yargs.getDemandedCommands();\n const maxNonOptDemanded = ((_a = demandedCommands._) === null || _a === void 0 ? void 0 : _a.max) || 0;\n const expected = currentContext.commands.length + maxNonOptDemanded;\n if (expected < argv._.length) {\n argv._.slice(expected).forEach(key => {\n key = String(key);\n if (!currentContext.commands.includes(key) &&\n !unknown.includes(key)) {\n unknown.push(key);\n }\n });\n }\n }\n if (unknown.length) {\n usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.map(s => (s.trim() ? s : `\"${s}\"`)).join(', ')));\n }\n };\n self.unknownCommands = function unknownCommands(argv) {\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n if (currentContext.commands.length > 0 || commandKeys.length > 0) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (unknown.length > 0) {\n usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', ')));\n return true;\n }\n else {\n return false;\n }\n };\n self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) {\n if (!Object.prototype.hasOwnProperty.call(aliases, key)) {\n return false;\n }\n const newAliases = yargs.parsed.newAliases;\n return [key, ...aliases[key]].some(a => !Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]);\n };\n self.limitedChoices = function limitedChoices(argv) {\n const options = yargs.getOptions();\n const invalid = {};\n if (!Object.keys(options.choices).length)\n return;\n Object.keys(argv).forEach(key => {\n if (specialKeys.indexOf(key) === -1 &&\n Object.prototype.hasOwnProperty.call(options.choices, key)) {\n [].concat(argv[key]).forEach(value => {\n if (options.choices[key].indexOf(value) === -1 &&\n value !== undefined) {\n invalid[key] = (invalid[key] || []).concat(value);\n }\n });\n }\n });\n const invalidKeys = Object.keys(invalid);\n if (!invalidKeys.length)\n return;\n let msg = __('Invalid values:');\n invalidKeys.forEach(key => {\n msg += `\\n ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`;\n });\n usage.fail(msg);\n };\n let implied = {};\n self.implies = function implies(key, value) {\n argsert(' [array|number|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.implies(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!implied[key]) {\n implied[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.implies(key, i));\n }\n else {\n assertNotStrictEqual(value, undefined, shim);\n implied[key].push(value);\n }\n }\n };\n self.getImplied = function getImplied() {\n return implied;\n };\n function keyExists(argv, val) {\n const num = Number(val);\n val = isNaN(num) ? val : num;\n if (typeof val === 'number') {\n val = argv._.length >= val;\n }\n else if (val.match(/^--no-.+/)) {\n val = val.match(/^--no-(.+)/)[1];\n val = !Object.prototype.hasOwnProperty.call(argv, val);\n }\n else {\n val = Object.prototype.hasOwnProperty.call(argv, val);\n }\n return val;\n }\n self.implications = function implications(argv) {\n const implyFail = [];\n Object.keys(implied).forEach(key => {\n const origKey = key;\n (implied[key] || []).forEach(value => {\n let key = origKey;\n const origValue = value;\n key = keyExists(argv, key);\n value = keyExists(argv, value);\n if (key && !value) {\n implyFail.push(` ${origKey} -> ${origValue}`);\n }\n });\n });\n if (implyFail.length) {\n let msg = `${__('Implications failed:')}\\n`;\n implyFail.forEach(value => {\n msg += value;\n });\n usage.fail(msg);\n }\n };\n let conflicting = {};\n self.conflicts = function conflicts(key, value) {\n argsert(' [array|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.conflicts(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!conflicting[key]) {\n conflicting[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.conflicts(key, i));\n }\n else {\n conflicting[key].push(value);\n }\n }\n };\n self.getConflicting = () => conflicting;\n self.conflicting = function conflictingFn(argv) {\n Object.keys(argv).forEach(key => {\n if (conflicting[key]) {\n conflicting[key].forEach(value => {\n if (value && argv[key] !== undefined && argv[value] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n }\n });\n if (yargs.getInternalMethods().getParserConfiguration()['strip-dashed']) {\n Object.keys(conflicting).forEach(key => {\n conflicting[key].forEach(value => {\n if (value &&\n argv[shim.Parser.camelCase(key)] !== undefined &&\n argv[shim.Parser.camelCase(value)] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n });\n }\n };\n self.recommendCommands = function recommendCommands(cmd, potentialCommands) {\n const threshold = 3;\n potentialCommands = potentialCommands.sort((a, b) => b.length - a.length);\n let recommended = null;\n let bestDistance = Infinity;\n for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {\n const d = distance(cmd, candidate);\n if (d <= threshold && d < bestDistance) {\n bestDistance = d;\n recommended = candidate;\n }\n }\n if (recommended)\n usage.fail(__('Did you mean %s?', recommended));\n };\n self.reset = function reset(localLookup) {\n implied = objFilter(implied, k => !localLookup[k]);\n conflicting = objFilter(conflicting, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n implied,\n conflicting,\n });\n };\n self.unfreeze = function unfreeze() {\n const frozen = frozens.pop();\n assertNotStrictEqual(frozen, undefined, shim);\n ({ implied, conflicting } = frozen);\n };\n return self;\n}\n","import { YError } from '../yerror.js';\nlet previouslyVisitedConfigs = [];\nlet shim;\nexport function applyExtends(config, cwd, mergeExtends, _shim) {\n shim = _shim;\n let defaultConfig = {};\n if (Object.prototype.hasOwnProperty.call(config, 'extends')) {\n if (typeof config.extends !== 'string')\n return defaultConfig;\n const isPath = /\\.json|\\..*rc$/.test(config.extends);\n let pathToDefault = null;\n if (!isPath) {\n try {\n pathToDefault = import.meta.resolve(config.extends);\n }\n catch (_err) {\n return config;\n }\n }\n else {\n pathToDefault = getPathToDefaultConfig(cwd, config.extends);\n }\n checkForCircularExtends(pathToDefault);\n previouslyVisitedConfigs.push(pathToDefault);\n defaultConfig = isPath\n ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8'))\n : _shim.require(config.extends);\n delete config.extends;\n defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim);\n }\n previouslyVisitedConfigs = [];\n return mergeExtends\n ? mergeDeep(defaultConfig, config)\n : Object.assign({}, defaultConfig, config);\n}\nfunction checkForCircularExtends(cfgPath) {\n if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {\n throw new YError(`Circular extended configurations: '${cfgPath}'.`);\n }\n}\nfunction getPathToDefaultConfig(cwd, pathToExtend) {\n return shim.path.resolve(cwd, pathToExtend);\n}\nfunction mergeDeep(config1, config2) {\n const target = {};\n function isObject(obj) {\n return obj && typeof obj === 'object' && !Array.isArray(obj);\n }\n Object.assign(target, config1);\n for (const key of Object.keys(config2)) {\n if (isObject(config2[key]) && isObject(target[key])) {\n target[key] = mergeDeep(config1[key], config2[key]);\n }\n else {\n target[key] = config2[key];\n }\n }\n return target;\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _YargsInstance_command, _YargsInstance_cwd, _YargsInstance_context, _YargsInstance_completion, _YargsInstance_completionCommand, _YargsInstance_defaultShowHiddenOpt, _YargsInstance_exitError, _YargsInstance_detectLocale, _YargsInstance_emittedWarnings, _YargsInstance_exitProcess, _YargsInstance_frozens, _YargsInstance_globalMiddleware, _YargsInstance_groups, _YargsInstance_hasOutput, _YargsInstance_helpOpt, _YargsInstance_isGlobalContext, _YargsInstance_logger, _YargsInstance_output, _YargsInstance_options, _YargsInstance_parentRequire, _YargsInstance_parserConfig, _YargsInstance_parseFn, _YargsInstance_parseContext, _YargsInstance_pkgs, _YargsInstance_preservedGroups, _YargsInstance_processArgs, _YargsInstance_recommendCommands, _YargsInstance_shim, _YargsInstance_strict, _YargsInstance_strictCommands, _YargsInstance_strictOptions, _YargsInstance_usage, _YargsInstance_usageConfig, _YargsInstance_versionOpt, _YargsInstance_validation;\nimport { command as Command, } from './command.js';\nimport { assertNotStrictEqual, assertSingleKey, objectKeys, } from './typings/common-types.js';\nimport { YError } from './yerror.js';\nimport { usage as Usage } from './usage.js';\nimport { argsert } from './argsert.js';\nimport { completion as Completion, } from './completion.js';\nimport { validation as Validation, } from './validation.js';\nimport { objFilter } from './utils/obj-filter.js';\nimport { applyExtends } from './utils/apply-extends.js';\nimport { applyMiddleware, GlobalMiddleware, } from './middleware.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nimport setBlocking from './utils/set-blocking.js';\nexport function YargsFactory(_shim) {\n return (processArgs = [], cwd = _shim.process.cwd(), parentRequire) => {\n const yargs = new YargsInstance(processArgs, cwd, parentRequire, _shim);\n Object.defineProperty(yargs, 'argv', {\n get: () => {\n return yargs.parse();\n },\n enumerable: true,\n });\n yargs.help();\n yargs.version();\n return yargs;\n };\n}\nconst kCopyDoubleDash = Symbol('copyDoubleDash');\nconst kCreateLogger = Symbol('copyDoubleDash');\nconst kDeleteFromParserHintObject = Symbol('deleteFromParserHintObject');\nconst kEmitWarning = Symbol('emitWarning');\nconst kFreeze = Symbol('freeze');\nconst kGetDollarZero = Symbol('getDollarZero');\nconst kGetParserConfiguration = Symbol('getParserConfiguration');\nconst kGetUsageConfiguration = Symbol('getUsageConfiguration');\nconst kGuessLocale = Symbol('guessLocale');\nconst kGuessVersion = Symbol('guessVersion');\nconst kParsePositionalNumbers = Symbol('parsePositionalNumbers');\nconst kPkgUp = Symbol('pkgUp');\nconst kPopulateParserHintArray = Symbol('populateParserHintArray');\nconst kPopulateParserHintSingleValueDictionary = Symbol('populateParserHintSingleValueDictionary');\nconst kPopulateParserHintArrayDictionary = Symbol('populateParserHintArrayDictionary');\nconst kPopulateParserHintDictionary = Symbol('populateParserHintDictionary');\nconst kSanitizeKey = Symbol('sanitizeKey');\nconst kSetKey = Symbol('setKey');\nconst kUnfreeze = Symbol('unfreeze');\nconst kValidateAsync = Symbol('validateAsync');\nconst kGetCommandInstance = Symbol('getCommandInstance');\nconst kGetContext = Symbol('getContext');\nconst kGetHasOutput = Symbol('getHasOutput');\nconst kGetLoggerInstance = Symbol('getLoggerInstance');\nconst kGetParseContext = Symbol('getParseContext');\nconst kGetUsageInstance = Symbol('getUsageInstance');\nconst kGetValidationInstance = Symbol('getValidationInstance');\nconst kHasParseCallback = Symbol('hasParseCallback');\nconst kIsGlobalContext = Symbol('isGlobalContext');\nconst kPostProcess = Symbol('postProcess');\nconst kRebase = Symbol('rebase');\nconst kReset = Symbol('reset');\nconst kRunYargsParserAndExecuteCommands = Symbol('runYargsParserAndExecuteCommands');\nconst kRunValidation = Symbol('runValidation');\nconst kSetHasOutput = Symbol('setHasOutput');\nconst kTrackManuallySetKeys = Symbol('kTrackManuallySetKeys');\nconst DEFAULT_LOCALE = 'en_US';\nexport class YargsInstance {\n constructor(processArgs = [], cwd, parentRequire, shim) {\n this.customScriptName = false;\n this.parsed = false;\n _YargsInstance_command.set(this, void 0);\n _YargsInstance_cwd.set(this, void 0);\n _YargsInstance_context.set(this, { commands: [], fullCommands: [] });\n _YargsInstance_completion.set(this, null);\n _YargsInstance_completionCommand.set(this, null);\n _YargsInstance_defaultShowHiddenOpt.set(this, 'show-hidden');\n _YargsInstance_exitError.set(this, null);\n _YargsInstance_detectLocale.set(this, true);\n _YargsInstance_emittedWarnings.set(this, {});\n _YargsInstance_exitProcess.set(this, true);\n _YargsInstance_frozens.set(this, []);\n _YargsInstance_globalMiddleware.set(this, void 0);\n _YargsInstance_groups.set(this, {});\n _YargsInstance_hasOutput.set(this, false);\n _YargsInstance_helpOpt.set(this, null);\n _YargsInstance_isGlobalContext.set(this, true);\n _YargsInstance_logger.set(this, void 0);\n _YargsInstance_output.set(this, '');\n _YargsInstance_options.set(this, void 0);\n _YargsInstance_parentRequire.set(this, void 0);\n _YargsInstance_parserConfig.set(this, {});\n _YargsInstance_parseFn.set(this, null);\n _YargsInstance_parseContext.set(this, null);\n _YargsInstance_pkgs.set(this, {});\n _YargsInstance_preservedGroups.set(this, {});\n _YargsInstance_processArgs.set(this, void 0);\n _YargsInstance_recommendCommands.set(this, false);\n _YargsInstance_shim.set(this, void 0);\n _YargsInstance_strict.set(this, false);\n _YargsInstance_strictCommands.set(this, false);\n _YargsInstance_strictOptions.set(this, false);\n _YargsInstance_usage.set(this, void 0);\n _YargsInstance_usageConfig.set(this, {});\n _YargsInstance_versionOpt.set(this, null);\n _YargsInstance_validation.set(this, void 0);\n __classPrivateFieldSet(this, _YargsInstance_shim, shim, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_processArgs, processArgs, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_cwd, cwd, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_parentRequire, parentRequire, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_globalMiddleware, new GlobalMiddleware(this), \"f\");\n this.$0 = this[kGetDollarZero]();\n this[kReset]();\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_logger, this[kCreateLogger](), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(DEFAULT_LOCALE);\n }\n addHelpOpt(opt, msg) {\n const defaultHelpOpt = 'help';\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, null, \"f\");\n }\n if (opt === false && msg === undefined)\n return this;\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, typeof opt === 'string' ? opt : defaultHelpOpt, \"f\");\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"), msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show help'));\n return this;\n }\n help(opt, msg) {\n return this.addHelpOpt(opt, msg);\n }\n addShowHiddenOpt(opt, msg) {\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (opt === false && msg === undefined)\n return this;\n const showHiddenOpt = typeof opt === 'string' ? opt : __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n this.boolean(showHiddenOpt);\n this.describe(showHiddenOpt, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show hidden options'));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = showHiddenOpt;\n return this;\n }\n showHidden(opt, msg) {\n return this.addShowHiddenOpt(opt, msg);\n }\n alias(key, value) {\n argsert(' [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.alias.bind(this), 'alias', key, value);\n return this;\n }\n array(keys) {\n argsert('', [keys], arguments.length);\n this[kPopulateParserHintArray]('array', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n boolean(keys) {\n argsert('', [keys], arguments.length);\n this[kPopulateParserHintArray]('boolean', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n check(f, global) {\n argsert(' [boolean]', [f, global], arguments.length);\n this.middleware((argv, _yargs) => {\n return maybeAsyncResult(() => {\n return f(argv, _yargs.getOptions());\n }, (result) => {\n if (!result) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__('Argument check failed: %s', f.toString()));\n }\n else if (typeof result === 'string' || result instanceof Error) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(result.toString(), result);\n }\n return argv;\n }, (err) => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message ? err.message : err.toString(), err);\n return argv;\n });\n }, false, global);\n return this;\n }\n choices(key, value) {\n argsert(' [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.choices.bind(this), 'choices', key, value);\n return this;\n }\n coerce(keys, value) {\n argsert(' [function]', [keys, value], arguments.length);\n if (Array.isArray(keys)) {\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n for (const key of keys) {\n this.coerce(key, value);\n }\n return this;\n }\n else if (typeof keys === 'object') {\n for (const key of Object.keys(keys)) {\n this.coerce(key, keys[key]);\n }\n return this;\n }\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n const coerceKey = keys;\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[coerceKey] = true;\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addCoerceMiddleware((argv, yargs) => {\n var _a;\n const coerceKeyAliases = (_a = yargs.getAliases()[coerceKey]) !== null && _a !== void 0 ? _a : [];\n const argvKeys = [coerceKey, ...coerceKeyAliases].filter(key => Object.prototype.hasOwnProperty.call(argv, key));\n if (argvKeys.length === 0) {\n return argv;\n }\n return maybeAsyncResult(() => {\n return value(argv[argvKeys[0]]);\n }, (result) => {\n argvKeys.forEach(key => {\n argv[key] = result;\n });\n return argv;\n }, (err) => {\n throw new YError(err.message);\n });\n }, coerceKey);\n return this;\n }\n conflicts(key1, key2) {\n argsert(' [string|array]', [key1, key2], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicts(key1, key2);\n return this;\n }\n config(key = 'config', msg, parseFn) {\n argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length);\n if (typeof key === 'object' && !Array.isArray(key)) {\n key = applyExtends(key, __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(key);\n return this;\n }\n if (typeof msg === 'function') {\n parseFn = msg;\n msg = undefined;\n }\n this.describe(key, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Path to JSON config file'));\n (Array.isArray(key) ? key : [key]).forEach(k => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").config[k] = parseFn || true;\n });\n return this;\n }\n completion(cmd, desc, fn) {\n argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length);\n if (typeof desc === 'function') {\n fn = desc;\n desc = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion', \"f\");\n if (!desc && desc !== false) {\n desc = 'generate completion script';\n }\n this.command(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"), desc);\n if (fn)\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").registerFunction(fn);\n return this;\n }\n command(cmd, description, builder, handler, middlewares, deprecated) {\n argsert(' [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addHandler(cmd, description, builder, handler, middlewares, deprecated);\n return this;\n }\n commands(cmd, description, builder, handler, middlewares, deprecated) {\n return this.command(cmd, description, builder, handler, middlewares, deprecated);\n }\n commandDir(dir, opts) {\n argsert(' [object]', [dir, opts], arguments.length);\n const req = __classPrivateFieldGet(this, _YargsInstance_parentRequire, \"f\") || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").require;\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addDirectory(dir, req, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getCallerFile(), opts);\n return this;\n }\n count(keys) {\n argsert('', [keys], arguments.length);\n this[kPopulateParserHintArray]('count', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n default(key, value, defaultDescription) {\n argsert(' [*] [string]', [key, value, defaultDescription], arguments.length);\n if (defaultDescription) {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = defaultDescription;\n }\n if (typeof value === 'function') {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key])\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] =\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").functionDescription(value);\n value = value.call();\n }\n this[kPopulateParserHintSingleValueDictionary](this.default.bind(this), 'default', key, value);\n return this;\n }\n defaults(key, value, defaultDescription) {\n return this.default(key, value, defaultDescription);\n }\n demandCommand(min = 1, max, minMsg, maxMsg) {\n argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length);\n if (typeof max !== 'number') {\n minMsg = max;\n max = Infinity;\n }\n this.global('_', false);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands._ = {\n min,\n max,\n minMsg,\n maxMsg,\n };\n return this;\n }\n demand(keys, max, msg) {\n if (Array.isArray(max)) {\n max.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n max = Infinity;\n }\n else if (typeof max !== 'number') {\n msg = max;\n max = Infinity;\n }\n if (typeof keys === 'number') {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandCommand(keys, max, msg, msg);\n }\n else if (Array.isArray(keys)) {\n keys.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n }\n else {\n if (typeof msg === 'string') {\n this.demandOption(keys, msg);\n }\n else if (msg === true || typeof msg === 'undefined') {\n this.demandOption(keys);\n }\n }\n return this;\n }\n demandOption(keys, msg) {\n argsert(' [string]', [keys, msg], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.demandOption.bind(this), 'demandedOptions', keys, msg);\n return this;\n }\n deprecateOption(option, message) {\n argsert(' [string|boolean]', [option, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions[option] = message;\n return this;\n }\n describe(keys, description) {\n argsert(' [string]', [keys, description], arguments.length);\n this[kSetKey](keys, true);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").describe(keys, description);\n return this;\n }\n detectLocale(detect) {\n argsert('', [detect], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, detect, \"f\");\n return this;\n }\n env(prefix) {\n argsert('[string|boolean]', [prefix], arguments.length);\n if (prefix === false)\n delete __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n else\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix = prefix || '';\n return this;\n }\n epilogue(msg) {\n argsert('', [msg], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").epilog(msg);\n return this;\n }\n epilog(msg) {\n return this.epilogue(msg);\n }\n example(cmd, description) {\n argsert(' [string]', [cmd, description], arguments.length);\n if (Array.isArray(cmd)) {\n cmd.forEach(exampleParams => this.example(...exampleParams));\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").example(cmd, description);\n }\n return this;\n }\n exit(code, err) {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, err, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.exit(code);\n }\n exitProcess(enabled = true) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, enabled, \"f\");\n return this;\n }\n fail(f) {\n argsert('', [f], arguments.length);\n if (typeof f === 'boolean' && f !== false) {\n throw new YError(\"Invalid first argument. Expected function or boolean 'false'\");\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").failFn(f);\n return this;\n }\n getAliases() {\n return this.parsed ? this.parsed.aliases : {};\n }\n async getCompletion(args, done) {\n argsert(' [function]', [args, done], arguments.length);\n if (!done) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, (err, completions) => {\n if (err)\n reject(err);\n else\n resolve(completions);\n });\n });\n }\n else {\n return __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, done);\n }\n }\n getDemandedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedOptions;\n }\n getDemandedCommands() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands;\n }\n getDeprecatedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions;\n }\n getDetectLocale() {\n return __classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\");\n }\n getExitProcess() {\n return __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\");\n }\n getGroups() {\n return Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"), __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"));\n }\n getHelp() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n return parse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n return builderResponse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n return Promise.resolve(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help());\n }\n getOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\");\n }\n getStrict() {\n return __classPrivateFieldGet(this, _YargsInstance_strict, \"f\");\n }\n getStrictCommands() {\n return __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\");\n }\n getStrictOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\");\n }\n global(globals, global) {\n argsert(' [boolean]', [globals, global], arguments.length);\n globals = [].concat(globals);\n if (global !== false) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.filter(l => globals.indexOf(l) === -1);\n }\n else {\n globals.forEach(g => {\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.includes(g))\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.push(g);\n });\n }\n return this;\n }\n group(opts, groupName) {\n argsert(' ', [opts, groupName], arguments.length);\n const existing = __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName] || __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName];\n if (__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName]) {\n delete __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName];\n }\n const seen = {};\n __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName] = (existing || []).concat(opts).filter(key => {\n if (seen[key])\n return false;\n return (seen[key] = true);\n });\n return this;\n }\n hide(key) {\n argsert('', [key], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").hiddenOptions.push(key);\n return this;\n }\n implies(key, value) {\n argsert(' [number|string|array]', [key, value], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implies(key, value);\n return this;\n }\n locale(locale) {\n argsert('[string]', [locale], arguments.length);\n if (locale === undefined) {\n this[kGuessLocale]();\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.getLocale();\n }\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(locale);\n return this;\n }\n middleware(callback, applyBeforeValidation, global) {\n return __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addMiddleware(callback, !!applyBeforeValidation, global);\n }\n nargs(key, value) {\n argsert(' [number]', [key, value], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.nargs.bind(this), 'narg', key, value);\n return this;\n }\n normalize(keys) {\n argsert('', [keys], arguments.length);\n this[kPopulateParserHintArray]('normalize', keys);\n return this;\n }\n number(keys) {\n argsert('', [keys], arguments.length);\n this[kPopulateParserHintArray]('number', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n option(key, opt) {\n argsert(' [object]', [key, opt], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n this.options(k, key[k]);\n });\n }\n else {\n if (typeof opt !== 'object') {\n opt = {};\n }\n this[kTrackManuallySetKeys](key);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && (key === 'version' || (opt === null || opt === void 0 ? void 0 : opt.alias) === 'version')) {\n this[kEmitWarning]([\n '\"version\" is a reserved word.',\n 'Please do one of the following:',\n '- Disable version with `yargs.version(false)` if using \"version\" as an option',\n '- Use the built-in `yargs.version` method instead (if applicable)',\n '- Use a different option key',\n 'https://yargs.js.org/docs/#api-reference-version',\n ].join('\\n'), undefined, 'versionWarning');\n }\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[key] = true;\n if (opt.alias)\n this.alias(key, opt.alias);\n const deprecate = opt.deprecate || opt.deprecated;\n if (deprecate) {\n this.deprecateOption(key, deprecate);\n }\n const demand = opt.demand || opt.required || opt.require;\n if (demand) {\n this.demand(key, demand);\n }\n if (opt.demandOption) {\n this.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined);\n }\n if (opt.conflicts) {\n this.conflicts(key, opt.conflicts);\n }\n if ('default' in opt) {\n this.default(key, opt.default);\n }\n if (opt.implies !== undefined) {\n this.implies(key, opt.implies);\n }\n if (opt.nargs !== undefined) {\n this.nargs(key, opt.nargs);\n }\n if (opt.config) {\n this.config(key, opt.configParser);\n }\n if (opt.normalize) {\n this.normalize(key);\n }\n if (opt.choices) {\n this.choices(key, opt.choices);\n }\n if (opt.coerce) {\n this.coerce(key, opt.coerce);\n }\n if (opt.group) {\n this.group(key, opt.group);\n }\n if (opt.boolean || opt.type === 'boolean') {\n this.boolean(key);\n if (opt.alias)\n this.boolean(opt.alias);\n }\n if (opt.array || opt.type === 'array') {\n this.array(key);\n if (opt.alias)\n this.array(opt.alias);\n }\n if (opt.number || opt.type === 'number') {\n this.number(key);\n if (opt.alias)\n this.number(opt.alias);\n }\n if (opt.string || opt.type === 'string') {\n this.string(key);\n if (opt.alias)\n this.string(opt.alias);\n }\n if (opt.count || opt.type === 'count') {\n this.count(key);\n }\n if (typeof opt.global === 'boolean') {\n this.global(key, opt.global);\n }\n if (opt.defaultDescription) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = opt.defaultDescription;\n }\n if (opt.skipValidation) {\n this.skipValidation(key);\n }\n const desc = opt.describe || opt.description || opt.desc;\n const descriptions = __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions();\n if (!Object.prototype.hasOwnProperty.call(descriptions, key) ||\n typeof desc === 'string') {\n this.describe(key, desc);\n }\n if (opt.hidden) {\n this.hide(key);\n }\n if (opt.requiresArg) {\n this.requiresArg(key);\n }\n }\n return this;\n }\n options(key, opt) {\n return this.option(key, opt);\n }\n parse(args, shortCircuit, _parseFn) {\n argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length);\n this[kFreeze]();\n if (typeof args === 'undefined') {\n args = __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n }\n if (typeof shortCircuit === 'object') {\n __classPrivateFieldSet(this, _YargsInstance_parseContext, shortCircuit, \"f\");\n shortCircuit = _parseFn;\n }\n if (typeof shortCircuit === 'function') {\n __classPrivateFieldSet(this, _YargsInstance_parseFn, shortCircuit, \"f\");\n shortCircuit = false;\n }\n if (!shortCircuit)\n __classPrivateFieldSet(this, _YargsInstance_processArgs, args, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, false, \"f\");\n const parsed = this[kRunYargsParserAndExecuteCommands](args, !!shortCircuit);\n const tmpParsed = this.parsed;\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").setParsed(this.parsed);\n if (isPromise(parsed)) {\n return parsed\n .then(argv => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n return argv;\n })\n .catch(err => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")(err, this.parsed.argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n }\n throw err;\n })\n .finally(() => {\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n });\n }\n else {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), parsed, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n }\n return parsed;\n }\n parseAsync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n return !isPromise(maybePromise)\n ? Promise.resolve(maybePromise)\n : maybePromise;\n }\n parseSync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n if (isPromise(maybePromise)) {\n throw new YError('.parseSync() must not be used with asynchronous builders, handlers, or middleware');\n }\n return maybePromise;\n }\n parserConfiguration(config) {\n argsert('', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_parserConfig, config, \"f\");\n return this;\n }\n pkgConf(key, rootPath) {\n argsert(' [string]', [key, rootPath], arguments.length);\n let conf = null;\n const obj = this[kPkgUp](rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"));\n if (obj[key] && typeof obj[key] === 'object') {\n conf = applyExtends(obj[key], rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(conf);\n }\n return this;\n }\n positional(key, opts) {\n argsert(' ', [key, opts], arguments.length);\n const supportedOpts = [\n 'default',\n 'defaultDescription',\n 'implies',\n 'normalize',\n 'choices',\n 'conflicts',\n 'coerce',\n 'type',\n 'describe',\n 'desc',\n 'description',\n 'alias',\n ];\n opts = objFilter(opts, (k, v) => {\n if (k === 'type' && !['string', 'number', 'boolean'].includes(v))\n return false;\n return supportedOpts.includes(k);\n });\n const fullCommand = __classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands[__classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands.length - 1];\n const parseOptions = fullCommand\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").cmdToParseOptions(fullCommand)\n : {\n array: [],\n alias: {},\n default: {},\n demand: {},\n };\n objectKeys(parseOptions).forEach(pk => {\n const parseOption = parseOptions[pk];\n if (Array.isArray(parseOption)) {\n if (parseOption.indexOf(key) !== -1)\n opts[pk] = true;\n }\n else {\n if (parseOption[key] && !(pk in opts))\n opts[pk] = parseOption[key];\n }\n });\n this.group(key, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getPositionalGroupName());\n return this.option(key, opts);\n }\n recommendCommands(recommend = true) {\n argsert('[boolean]', [recommend], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_recommendCommands, recommend, \"f\");\n return this;\n }\n required(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n require(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n requiresArg(keys) {\n argsert(' [number]', [keys], arguments.length);\n if (typeof keys === 'string' && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").narg[keys]) {\n return this;\n }\n else {\n this[kPopulateParserHintSingleValueDictionary](this.requiresArg.bind(this), 'narg', keys, NaN);\n }\n return this;\n }\n showCompletionScript($0, cmd) {\n argsert('[string] [string]', [$0, cmd], arguments.length);\n $0 = $0 || this.$0;\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").generateCompletionScript($0, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion'));\n return this;\n }\n showHelp(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n parse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n builderResponse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n return this;\n }\n scriptName(scriptName) {\n this.customScriptName = true;\n this.$0 = scriptName;\n return this;\n }\n showHelpOnFail(enabled, message) {\n argsert('[boolean|string] [string]', [enabled, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelpOnFail(enabled, message);\n return this;\n }\n showVersion(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion(level);\n return this;\n }\n skipValidation(keys) {\n argsert('', [keys], arguments.length);\n this[kPopulateParserHintArray]('skipValidation', keys);\n return this;\n }\n strict(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strict, enabled !== false, \"f\");\n return this;\n }\n strictCommands(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictCommands, enabled !== false, \"f\");\n return this;\n }\n strictOptions(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictOptions, enabled !== false, \"f\");\n return this;\n }\n string(keys) {\n argsert('', [keys], arguments.length);\n this[kPopulateParserHintArray]('string', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n terminalWidth() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.stdColumns;\n }\n updateLocale(obj) {\n return this.updateStrings(obj);\n }\n updateStrings(obj) {\n argsert('', [obj], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.updateLocale(obj);\n return this;\n }\n usage(msg, description, builder, handler) {\n argsert(' [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length);\n if (description !== undefined) {\n assertNotStrictEqual(msg, null, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if ((msg || '').match(/^\\$0( |$)/)) {\n return this.command(msg, description, builder, handler);\n }\n else {\n throw new YError('.usage() description must start with $0 if being used as alias for .command()');\n }\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").usage(msg);\n return this;\n }\n }\n usageConfiguration(config) {\n argsert('', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_usageConfig, config, \"f\");\n return this;\n }\n version(opt, msg, ver) {\n const defaultVersionOpt = 'version';\n argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(undefined);\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, null, \"f\");\n }\n if (arguments.length === 0) {\n ver = this[kGuessVersion]();\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 1) {\n if (opt === false) {\n return this;\n }\n ver = opt;\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 2) {\n ver = msg;\n msg = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, typeof opt === 'string' ? opt : defaultVersionOpt, \"f\");\n msg = msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show version number');\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(ver || undefined);\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"), msg);\n return this;\n }\n wrap(cols) {\n argsert('', [cols], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").wrap(cols);\n return this;\n }\n [(_YargsInstance_command = new WeakMap(), _YargsInstance_cwd = new WeakMap(), _YargsInstance_context = new WeakMap(), _YargsInstance_completion = new WeakMap(), _YargsInstance_completionCommand = new WeakMap(), _YargsInstance_defaultShowHiddenOpt = new WeakMap(), _YargsInstance_exitError = new WeakMap(), _YargsInstance_detectLocale = new WeakMap(), _YargsInstance_emittedWarnings = new WeakMap(), _YargsInstance_exitProcess = new WeakMap(), _YargsInstance_frozens = new WeakMap(), _YargsInstance_globalMiddleware = new WeakMap(), _YargsInstance_groups = new WeakMap(), _YargsInstance_hasOutput = new WeakMap(), _YargsInstance_helpOpt = new WeakMap(), _YargsInstance_isGlobalContext = new WeakMap(), _YargsInstance_logger = new WeakMap(), _YargsInstance_output = new WeakMap(), _YargsInstance_options = new WeakMap(), _YargsInstance_parentRequire = new WeakMap(), _YargsInstance_parserConfig = new WeakMap(), _YargsInstance_parseFn = new WeakMap(), _YargsInstance_parseContext = new WeakMap(), _YargsInstance_pkgs = new WeakMap(), _YargsInstance_preservedGroups = new WeakMap(), _YargsInstance_processArgs = new WeakMap(), _YargsInstance_recommendCommands = new WeakMap(), _YargsInstance_shim = new WeakMap(), _YargsInstance_strict = new WeakMap(), _YargsInstance_strictCommands = new WeakMap(), _YargsInstance_strictOptions = new WeakMap(), _YargsInstance_usage = new WeakMap(), _YargsInstance_usageConfig = new WeakMap(), _YargsInstance_versionOpt = new WeakMap(), _YargsInstance_validation = new WeakMap(), kCopyDoubleDash)](argv) {\n if (!argv._ || !argv['--'])\n return argv;\n argv._.push.apply(argv._, argv['--']);\n try {\n delete argv['--'];\n }\n catch (_err) { }\n return argv;\n }\n [kCreateLogger]() {\n return {\n log: (...args) => {\n if (!this[kHasParseCallback]())\n console.log(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n error: (...args) => {\n if (!this[kHasParseCallback]())\n console.error(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n };\n }\n [kDeleteFromParserHintObject](optionKey) {\n objectKeys(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")).forEach((hintKey) => {\n if (((key) => key === 'configObjects')(hintKey))\n return;\n const hint = __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[hintKey];\n if (Array.isArray(hint)) {\n if (hint.includes(optionKey))\n hint.splice(hint.indexOf(optionKey), 1);\n }\n else if (typeof hint === 'object') {\n delete hint[optionKey];\n }\n });\n delete __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions()[optionKey];\n }\n [kEmitWarning](warning, type, deduplicationId) {\n if (!__classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId]) {\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.emitWarning(warning, type);\n __classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId] = true;\n }\n }\n [kFreeze]() {\n __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").push({\n options: __classPrivateFieldGet(this, _YargsInstance_options, \"f\"),\n configObjects: __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects.slice(0),\n exitProcess: __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"),\n groups: __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"),\n strict: __classPrivateFieldGet(this, _YargsInstance_strict, \"f\"),\n strictCommands: __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\"),\n strictOptions: __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\"),\n completionCommand: __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"),\n output: __classPrivateFieldGet(this, _YargsInstance_output, \"f\"),\n exitError: __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"),\n hasOutput: __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\"),\n parsed: this.parsed,\n parseFn: __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"),\n parseContext: __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"),\n });\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").freeze();\n }\n [kGetDollarZero]() {\n let $0 = '';\n let default$0;\n if (/\\b(node|iojs|electron)(\\.exe)?$/.test(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv()[0])) {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(1, 2);\n }\n else {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(0, 1);\n }\n $0 = default$0\n .map(x => {\n const b = this[kRebase](__classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), x);\n return x.match(/^(\\/|([a-zA-Z]:)?\\\\)/) && b.length < x.length ? b : x;\n })\n .join(' ')\n .trim();\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_') &&\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getProcessArgvBin() === __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_')) {\n $0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")\n .getEnv('_')\n .replace(`${__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.execPath())}/`, '');\n }\n return $0;\n }\n [kGetParserConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_parserConfig, \"f\");\n }\n [kGetUsageConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_usageConfig, \"f\");\n }\n [kGuessLocale]() {\n if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\"))\n return;\n const locale = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_ALL') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_MESSAGES') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANG') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANGUAGE') ||\n 'en_US';\n this.locale(locale.replace(/[.:].*/, ''));\n }\n [kGuessVersion]() {\n const obj = this[kPkgUp]();\n return obj.version || 'unknown';\n }\n [kParsePositionalNumbers](argv) {\n const args = argv['--'] ? argv['--'] : argv._;\n for (let i = 0, arg; (arg = args[i]) !== undefined; i++) {\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.looksLikeNumber(arg) &&\n Number.isSafeInteger(Math.floor(parseFloat(`${arg}`)))) {\n args[i] = Number(arg);\n }\n }\n return argv;\n }\n [kPkgUp](rootPath) {\n const npath = rootPath || '*';\n if (__classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath])\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n let obj = {};\n try {\n let startDir = rootPath || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").mainFilename;\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.extname(startDir)) {\n startDir = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(startDir);\n }\n const pkgJsonPath = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").findUp(startDir, (dir, names) => {\n if (names.includes('package.json')) {\n return 'package.json';\n }\n else {\n return undefined;\n }\n });\n assertNotStrictEqual(pkgJsonPath, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n obj = JSON.parse(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").readFileSync(pkgJsonPath, 'utf8'));\n }\n catch (_noop) { }\n __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath] = obj || {};\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n }\n [kPopulateParserHintArray](type, keys) {\n keys = [].concat(keys);\n keys.forEach(key => {\n key = this[kSanitizeKey](key);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type].push(key);\n });\n }\n [kPopulateParserHintSingleValueDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = value;\n });\n }\n [kPopulateParserHintArrayDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] || []).concat(value);\n });\n }\n [kPopulateParserHintDictionary](builder, type, key, value, singleKeyHandler) {\n if (Array.isArray(key)) {\n key.forEach(k => {\n builder(k, value);\n });\n }\n else if (((key) => typeof key === 'object')(key)) {\n for (const k of objectKeys(key)) {\n builder(k, key[k]);\n }\n }\n else {\n singleKeyHandler(type, this[kSanitizeKey](key), value);\n }\n }\n [kSanitizeKey](key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n }\n [kSetKey](key, set) {\n this[kPopulateParserHintSingleValueDictionary](this[kSetKey].bind(this), 'key', key, set);\n return this;\n }\n [kUnfreeze]() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").pop();\n assertNotStrictEqual(frozen, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n let configObjects;\n (_a = this, _b = this, _c = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, {\n options: ({ set value(_o) { __classPrivateFieldSet(_a, _YargsInstance_options, _o, \"f\"); } }).value,\n configObjects,\n exitProcess: ({ set value(_o) { __classPrivateFieldSet(_b, _YargsInstance_exitProcess, _o, \"f\"); } }).value,\n groups: ({ set value(_o) { __classPrivateFieldSet(_c, _YargsInstance_groups, _o, \"f\"); } }).value,\n output: ({ set value(_o) { __classPrivateFieldSet(_d, _YargsInstance_output, _o, \"f\"); } }).value,\n exitError: ({ set value(_o) { __classPrivateFieldSet(_e, _YargsInstance_exitError, _o, \"f\"); } }).value,\n hasOutput: ({ set value(_o) { __classPrivateFieldSet(_f, _YargsInstance_hasOutput, _o, \"f\"); } }).value,\n parsed: this.parsed,\n strict: ({ set value(_o) { __classPrivateFieldSet(_g, _YargsInstance_strict, _o, \"f\"); } }).value,\n strictCommands: ({ set value(_o) { __classPrivateFieldSet(_h, _YargsInstance_strictCommands, _o, \"f\"); } }).value,\n strictOptions: ({ set value(_o) { __classPrivateFieldSet(_j, _YargsInstance_strictOptions, _o, \"f\"); } }).value,\n completionCommand: ({ set value(_o) { __classPrivateFieldSet(_k, _YargsInstance_completionCommand, _o, \"f\"); } }).value,\n parseFn: ({ set value(_o) { __classPrivateFieldSet(_l, _YargsInstance_parseFn, _o, \"f\"); } }).value,\n parseContext: ({ set value(_o) { __classPrivateFieldSet(_m, _YargsInstance_parseContext, _o, \"f\"); } }).value,\n } = frozen);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = configObjects;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").unfreeze();\n }\n [kValidateAsync](validation, argv) {\n return maybeAsyncResult(argv, result => {\n validation(result);\n return result;\n });\n }\n getInternalMethods() {\n return {\n getCommandInstance: this[kGetCommandInstance].bind(this),\n getContext: this[kGetContext].bind(this),\n getHasOutput: this[kGetHasOutput].bind(this),\n getLoggerInstance: this[kGetLoggerInstance].bind(this),\n getParseContext: this[kGetParseContext].bind(this),\n getParserConfiguration: this[kGetParserConfiguration].bind(this),\n getUsageConfiguration: this[kGetUsageConfiguration].bind(this),\n getUsageInstance: this[kGetUsageInstance].bind(this),\n getValidationInstance: this[kGetValidationInstance].bind(this),\n hasParseCallback: this[kHasParseCallback].bind(this),\n isGlobalContext: this[kIsGlobalContext].bind(this),\n postProcess: this[kPostProcess].bind(this),\n reset: this[kReset].bind(this),\n runValidation: this[kRunValidation].bind(this),\n runYargsParserAndExecuteCommands: this[kRunYargsParserAndExecuteCommands].bind(this),\n setHasOutput: this[kSetHasOutput].bind(this),\n };\n }\n [kGetCommandInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_command, \"f\");\n }\n [kGetContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_context, \"f\");\n }\n [kGetHasOutput]() {\n return __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\");\n }\n [kGetLoggerInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_logger, \"f\");\n }\n [kGetParseContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\") || {};\n }\n [kGetUsageInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\");\n }\n [kGetValidationInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_validation, \"f\");\n }\n [kHasParseCallback]() {\n return !!__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\");\n }\n [kIsGlobalContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_isGlobalContext, \"f\");\n }\n [kPostProcess](argv, populateDoubleDash, calledFromCommand, runGlobalMiddleware) {\n if (calledFromCommand)\n return argv;\n if (isPromise(argv))\n return argv;\n if (!populateDoubleDash) {\n argv = this[kCopyDoubleDash](argv);\n }\n const parsePositionalNumbers = this[kGetParserConfiguration]()['parse-positional-numbers'] ||\n this[kGetParserConfiguration]()['parse-positional-numbers'] === undefined;\n if (parsePositionalNumbers) {\n argv = this[kParsePositionalNumbers](argv);\n }\n if (runGlobalMiddleware) {\n argv = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n }\n return argv;\n }\n [kReset](aliases = {}) {\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\") || {}, \"f\");\n const tmpOptions = {};\n tmpOptions.local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local || [];\n tmpOptions.configObjects = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || [];\n const localLookup = {};\n tmpOptions.local.forEach(l => {\n localLookup[l] = true;\n (aliases[l] || []).forEach(a => {\n localLookup[a] = true;\n });\n });\n Object.assign(__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"), Object.keys(__classPrivateFieldGet(this, _YargsInstance_groups, \"f\")).reduce((acc, groupName) => {\n const keys = __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName].filter(key => !(key in localLookup));\n if (keys.length > 0) {\n acc[groupName] = keys;\n }\n return acc;\n }, {}));\n __classPrivateFieldSet(this, _YargsInstance_groups, {}, \"f\");\n const arrayOptions = [\n 'array',\n 'boolean',\n 'string',\n 'skipValidation',\n 'count',\n 'normalize',\n 'number',\n 'hiddenOptions',\n ];\n const objectOptions = [\n 'narg',\n 'key',\n 'alias',\n 'default',\n 'defaultDescription',\n 'config',\n 'choices',\n 'demandedOptions',\n 'demandedCommands',\n 'deprecatedOptions',\n ];\n arrayOptions.forEach(k => {\n tmpOptions[k] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k] || []).filter((k) => !localLookup[k]);\n });\n objectOptions.forEach((k) => {\n tmpOptions[k] = objFilter(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k], k => !localLookup[k]);\n });\n tmpOptions.envPrefix = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n __classPrivateFieldSet(this, _YargsInstance_options, tmpOptions, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").reset(localLookup)\n : Usage(this, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").reset(localLookup)\n : Validation(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").reset()\n : Command(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_completion, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_completion, Completion(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").reset();\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, '', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, false, \"f\");\n this.parsed = false;\n return this;\n }\n [kRebase](base, dir) {\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.relative(base, dir);\n }\n [kRunYargsParserAndExecuteCommands](args, shortCircuit, calledFromCommand, commandIndex = 0, helpOnly = false) {\n var _a, _b, _c, _d;\n let skipValidation = !!calledFromCommand || helpOnly;\n args = args || __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").__ = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__;\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration = this[kGetParserConfiguration]();\n const populateDoubleDash = !!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration['populate--'];\n const config = Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration, {\n 'populate--': true,\n });\n const parsed = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.detailed(args, Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), {\n configuration: { 'parse-positional-numbers': false, ...config },\n }));\n const argv = Object.assign(parsed.argv, __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"));\n let argvPromise = undefined;\n const aliases = parsed.aliases;\n let helpOptSet = false;\n let versionOptSet = false;\n Object.keys(argv).forEach(key => {\n if (key === __classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\") && argv[key]) {\n helpOptSet = true;\n }\n else if (key === __classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && argv[key]) {\n versionOptSet = true;\n }\n });\n argv.$0 = this.$0;\n this.parsed = parsed;\n if (commandIndex === 0) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").clearCachedHelpMessage();\n }\n try {\n this[kGuessLocale]();\n if (shortCircuit) {\n return this[kPostProcess](argv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n const helpCmds = [__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")]\n .concat(aliases[__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")] || [])\n .filter(k => k.length > 1);\n if (helpCmds.includes('' + argv._[argv._.length - 1])) {\n argv._.pop();\n helpOptSet = true;\n }\n }\n __classPrivateFieldSet(this, _YargsInstance_isGlobalContext, false, \"f\");\n const handlerKeys = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").getCommands();\n const requestCompletions = ((_a = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _a === void 0 ? void 0 : _a.completionKey)\n ? [\n (_b = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _b === void 0 ? void 0 : _b.completionKey,\n ...((_d = this.getAliases()[(_c = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _c === void 0 ? void 0 : _c.completionKey]) !== null && _d !== void 0 ? _d : []),\n ].some((key) => Object.prototype.hasOwnProperty.call(argv, key))\n : false;\n const skipRecommendation = helpOptSet || requestCompletions || helpOnly;\n if (argv._.length) {\n if (handlerKeys.length) {\n let firstUnknownCommand;\n for (let i = commandIndex || 0, cmd; argv._[i] !== undefined; i++) {\n cmd = String(argv._[i]);\n if (handlerKeys.includes(cmd) && cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(cmd, this, parsed, i + 1, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n else if (!firstUnknownCommand &&\n cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n firstUnknownCommand = cmd;\n break;\n }\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() &&\n __classPrivateFieldGet(this, _YargsInstance_recommendCommands, \"f\") &&\n firstUnknownCommand &&\n !skipRecommendation) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").recommendCommands(firstUnknownCommand, handlerKeys);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") &&\n argv._.includes(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) &&\n !requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n this.showCompletionScript();\n this.exit(0);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() && !skipRecommendation) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(null, this, parsed, 0, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n args = [].concat(args);\n const completionArgs = args.slice(args.indexOf(`--${__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").completionKey}`) + 1);\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(completionArgs, (err, completions) => {\n if (err)\n throw new YError(err.message);\n (completions || []).forEach(completion => {\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(completion);\n });\n this.exit(0);\n });\n return this[kPostProcess](argv, !populateDoubleDash, !!calledFromCommand, false);\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\")) {\n if (helpOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n this.showHelp(message => {\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(message);\n this.exit(0);\n });\n }\n else if (versionOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion('log');\n this.exit(0);\n }\n }\n if (!skipValidation && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.length > 0) {\n skipValidation = Object.keys(argv).some(key => __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.indexOf(key) >= 0 && argv[key] === true);\n }\n if (!skipValidation) {\n if (parsed.error)\n throw new YError(parsed.error.message);\n if (!requestCompletions) {\n const validation = this[kRunValidation](aliases, {}, parsed.error);\n if (!calledFromCommand) {\n argvPromise = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), true);\n }\n argvPromise = this[kValidateAsync](validation, argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv);\n if (isPromise(argvPromise) && !calledFromCommand) {\n argvPromise = argvPromise.then(() => {\n return applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n });\n }\n }\n }\n }\n catch (err) {\n if (err instanceof YError)\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message, err);\n else\n throw err;\n }\n return this[kPostProcess](argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv, populateDoubleDash, !!calledFromCommand, true);\n }\n [kRunValidation](aliases, positionalMap, parseErrors, isDefaultCommand) {\n const demandedOptions = { ...this.getDemandedOptions() };\n return (argv) => {\n if (parseErrors)\n throw new YError(parseErrors.message);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").nonOptionCount(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").requiredArguments(argv, demandedOptions);\n let failedStrictCommands = false;\n if (__classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\")) {\n failedStrictCommands = __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownCommands(argv);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_strict, \"f\") && !failedStrictCommands) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, positionalMap, !!isDefaultCommand);\n }\n else if (__classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, {}, false, false);\n }\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").limitedChoices(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implications(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicting(argv);\n };\n }\n [kSetHasOutput]() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n }\n [kTrackManuallySetKeys](keys) {\n if (typeof keys === 'string') {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[keys] = true;\n }\n else {\n for (const k of keys) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[k] = true;\n }\n }\n }\n}\nexport function isYargsInstance(y) {\n return !!y && typeof y.getInternalMethods === 'function';\n}\n","'use strict';\n\n// Bootstraps yargs for ESM:\nimport esmPlatformShim from './lib/platform-shims/esm.mjs';\nimport {YargsFactory} from './build/lib/yargs-factory.js';\n\nconst Yargs = YargsFactory(esmPlatformShim);\nexport default Yargs;\n\nexport {Yargs as 'module.exports'};\n","import { Transform } from \"node:stream\";\n\n/**\n * Extracts JSON-RPC messages from a stream that may contain non-JSON output.\n *\n * Lines that start with '{' are passed through as-is. Lines that contain '{'\n * but have a non-JSON prefix (e.g. Python warnings prepended to a JSON message)\n * have the prefix stripped and the JSON portion extracted. Lines with no '{'\n * are dropped entirely.\n */\nexport class JSONFilterTransform extends Transform {\n private buffer = \"\";\n\n constructor() {\n super({ objectMode: false });\n }\n\n _flush(callback: (error: Error | null, chunk: Buffer | null) => void) {\n // Handle any remaining data in buffer\n const json = extractJson(this.buffer);\n if (json !== null) {\n callback(null, Buffer.from(json));\n } else {\n callback(null, null);\n }\n }\n\n _transform(\n chunk: Buffer,\n _encoding: string,\n callback: (error: Error | null, chunk: Buffer | null) => void,\n ) {\n this.buffer += chunk.toString();\n const lines = this.buffer.split(\"\\n\");\n\n // Keep the last incomplete line in the buffer\n this.buffer = lines.pop() || \"\";\n\n const jsonLines = [];\n const nonJsonLines = [];\n\n for (const line of lines) {\n const json = extractJson(line);\n if (json !== null) {\n jsonLines.push(json);\n } else if (line.trim().length > 0) {\n nonJsonLines.push(line);\n }\n }\n\n if (nonJsonLines.length > 0) {\n console.warn(\"[mcp-proxy] ignoring non-JSON output\", nonJsonLines);\n }\n\n if (jsonLines.length > 0) {\n // Send filtered lines with newlines\n const output = jsonLines.join(\"\\n\") + \"\\n\";\n\n callback(null, Buffer.from(output));\n } else {\n callback(null, null);\n }\n }\n}\n\n/**\n * Extracts the JSON portion from a line that may have a non-JSON prefix.\n * Returns null if the line contains no '{'.\n */\nfunction extractJson(line: string): null | string {\n const trimmed = line.trim();\n if (trimmed.length === 0) {\n return null;\n }\n\n const braceIndex = trimmed.indexOf(\"{\");\n if (braceIndex === -1) {\n return null;\n }\n\n if (braceIndex === 0) {\n return trimmed;\n }\n\n // There's a non-JSON prefix — strip it and return from the first '{'\n const jsonPart = trimmed.slice(braceIndex);\n console.warn(\n \"[mcp-proxy] stripped non-JSON prefix from output:\",\n trimmed.slice(0, braceIndex),\n );\n return jsonPart;\n}\n","/**\n * Forked from https://github.com/modelcontextprotocol/typescript-sdk/blob/a1608a6513d18eb965266286904760f830de96fe/src/client/stdio.ts\n */\n\nimport {\n ReadBuffer,\n serializeMessage,\n} from \"@modelcontextprotocol/sdk/shared/stdio.js\";\nimport { Transport } from \"@modelcontextprotocol/sdk/shared/transport.js\";\nimport { JSONRPCMessage } from \"@modelcontextprotocol/sdk/types.js\";\nimport { ChildProcess, IOType, spawn } from \"node:child_process\";\nimport { PassThrough, Stream } from \"node:stream\";\n\nimport { JSONFilterTransform } from \"./JSONFilterTransform.js\";\n\nexport type StdioServerParameters = {\n /**\n * Command line arguments to pass to the executable.\n */\n args?: string[];\n\n /**\n * The executable to run to start the server.\n */\n command: string;\n\n /**\n * The working directory to use when spawning the process.\n *\n * If not specified, the current working directory will be inherited.\n */\n cwd?: string;\n\n /**\n * The environment to use when spawning the process.\n *\n * If not specified, the result of getDefaultEnvironment() will be used.\n */\n env: Record;\n\n /**\n * A function to call when an event occurs.\n */\n onEvent?: (event: TransportEvent) => void;\n\n /**\n * When true, spawn the child process using the user's shell.\n */\n shell?: boolean;\n\n /**\n * How to handle stderr of the child process. This matches the semantics of Node's `child_process.spawn`.\n *\n * The default is \"inherit\", meaning messages to stderr will be printed to the parent process's stderr.\n */\n stderr?: IOType | number | Stream;\n};\n\ntype TransportEvent =\n | {\n chunk: string;\n type: \"data\";\n }\n | {\n error: Error;\n type: \"error\";\n }\n | {\n message: JSONRPCMessage;\n type: \"message\";\n }\n | {\n type: \"close\";\n };\n\n/**\n * Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.\n *\n * This transport is only available in Node.js environments.\n */\nexport class StdioClientTransport implements Transport {\n onclose?: () => void;\n\n onerror?: (error: Error) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n /**\n * The child process pid spawned by this transport.\n *\n * This is only available after the transport has been started.\n */\n get pid(): null | number {\n return this._process?.pid ?? null;\n }\n /**\n * The stderr stream of the child process, if `StdioServerParameters.stderr` was set to \"pipe\" or \"overlapped\".\n *\n * If stderr piping was requested, a PassThrough stream is returned _immediately_, allowing callers to\n * attach listeners before the start method is invoked. This prevents loss of any early\n * error output emitted by the child process.\n */\n get stderr(): null | Stream {\n if (this._stderrStream) {\n return this._stderrStream;\n }\n\n return this._process?.stderr ?? null;\n }\n private _abortController: AbortController = new AbortController();\n private _process?: ChildProcess;\n private _readBuffer: ReadBuffer = new ReadBuffer();\n private _serverParams: StdioServerParameters;\n private _stderrStream: null | PassThrough = null;\n\n private onEvent?: (event: TransportEvent) => void;\n\n constructor(server: StdioServerParameters) {\n this._serverParams = server;\n if (server.stderr === \"pipe\" || server.stderr === \"overlapped\") {\n this._stderrStream = new PassThrough();\n }\n this.onEvent = server.onEvent;\n }\n\n async close(): Promise {\n this.onEvent?.({\n type: \"close\",\n });\n\n this._abortController.abort();\n this._process = undefined;\n this._readBuffer.clear();\n }\n\n send(message: JSONRPCMessage): Promise {\n return new Promise((resolve) => {\n if (!this._process?.stdin) {\n throw new Error(\"Not connected\");\n }\n\n const json = serializeMessage(message);\n if (this._process.stdin.write(json)) {\n resolve();\n } else {\n this._process.stdin.once(\"drain\", resolve);\n }\n });\n }\n\n /**\n * Starts the server process and prepares to communicate with it.\n */\n async start(): Promise {\n if (this._process) {\n throw new Error(\n \"StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.\",\n );\n }\n\n return new Promise((resolve, reject) => {\n this._process = spawn(\n this._serverParams.command,\n this._serverParams.args ?? [],\n {\n cwd: this._serverParams.cwd,\n env: this._serverParams.env,\n shell: this._serverParams.shell ?? false,\n signal: this._abortController.signal,\n stdio: [\"pipe\", \"pipe\", this._serverParams.stderr ?? \"inherit\"],\n },\n );\n\n this._process.on(\"error\", (error) => {\n if (error.name === \"AbortError\") {\n // Expected when close() is called.\n this.onclose?.();\n return;\n }\n\n reject(error);\n this.onerror?.(error);\n });\n\n this._process.on(\"spawn\", () => {\n resolve();\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n this._process.on(\"close\", (_code) => {\n this.onEvent?.({\n type: \"close\",\n });\n\n this._process = undefined;\n this.onclose?.();\n });\n\n this._process.stdin?.on(\"error\", (error) => {\n this.onEvent?.({\n error,\n type: \"error\",\n });\n\n this.onerror?.(error);\n });\n\n const jsonFilterTransform = new JSONFilterTransform();\n\n this._process.stdout?.pipe(jsonFilterTransform);\n\n jsonFilterTransform.on(\"data\", (chunk) => {\n this.onEvent?.({\n chunk: chunk.toString(),\n type: \"data\",\n });\n\n this._readBuffer.append(chunk);\n this.processReadBuffer();\n });\n\n jsonFilterTransform.on(\"error\", (error) => {\n this.onEvent?.({\n error,\n type: \"error\",\n });\n\n this.onerror?.(error);\n });\n\n if (this._stderrStream && this._process.stderr) {\n this._process.stderr.pipe(this._stderrStream);\n }\n });\n }\n\n private processReadBuffer() {\n while (true) {\n try {\n const message = this._readBuffer.readMessage();\n\n if (message === null) {\n break;\n }\n\n this.onEvent?.({\n message,\n type: \"message\",\n });\n\n this.onmessage?.(message);\n } catch (error) {\n this.onEvent?.({\n error: error as Error,\n type: \"error\",\n });\n\n this.onerror?.(error as Error);\n }\n }\n }\n}\n","#!/usr/bin/env node\n\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { ServerCapabilities } from \"@modelcontextprotocol/sdk/types.js\";\nimport { EventSource } from \"eventsource\";\nimport { createRequire } from \"node:module\";\nimport { setTimeout } from \"node:timers\";\nimport util from \"node:util\";\nimport { pipenet } from \"pipenet\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\n\nconst require = createRequire(import.meta.url);\nconst packageJson = require(\"../../package.json\") as { version: string };\n\nimport { InMemoryEventStore } from \"../InMemoryEventStore.js\";\nimport { proxyServer } from \"../proxyServer.js\";\nimport { SSEServer, startHTTPServer } from \"../startHTTPServer.js\";\nimport { StdioClientTransport } from \"../StdioClientTransport.js\";\n\nutil.inspect.defaultOptions.depth = 8;\n\nif (!(\"EventSource\" in global)) {\n // @ts-expect-error - figure out how to use --experimental-eventsource with vitest\n global.EventSource = EventSource;\n}\n\nconst argv = await yargs(hideBin(process.argv))\n .scriptName(\"mcp-proxy\")\n .version(packageJson.version)\n .command(\"$0 [command] [args...]\", \"Proxy an MCP stdio server over HTTP\")\n .positional(\"command\", {\n describe: \"The command to run\",\n type: \"string\",\n })\n .positional(\"args\", {\n array: true,\n describe: \"The arguments to pass to the command\",\n type: \"string\",\n })\n .usage(\"$0 [options] -- [args...]\\n $0 [args...]\")\n .env(\"MCP_PROXY\")\n .parserConfiguration({\n \"populate--\": true,\n })\n .options({\n apiKey: {\n describe: \"API key for authenticating requests (uses X-API-Key header)\",\n type: \"string\",\n },\n connectionTimeout: {\n default: 60000,\n describe:\n \"The timeout (in milliseconds) for initial connection to the MCP server (default: 60 seconds)\",\n type: \"number\",\n },\n debug: {\n default: false,\n describe: \"Enable debug logging\",\n type: \"boolean\",\n },\n endpoint: {\n describe: \"The endpoint to listen on\",\n type: \"string\",\n },\n gracefulShutdownTimeout: {\n default: 5000,\n describe: \"The timeout (in milliseconds) for graceful shutdown\",\n type: \"number\",\n },\n host: {\n default: \"::\",\n describe: \"The host to listen on\",\n type: \"string\",\n },\n port: {\n default: 8080,\n describe: \"The port to listen on\",\n type: \"number\",\n },\n requestTimeout: {\n default: 300000,\n describe:\n \"The timeout (in milliseconds) for requests to the MCP server (default: 5 minutes)\",\n type: \"number\",\n },\n server: {\n choices: [\"sse\", \"stream\"],\n describe:\n \"The server type to use (sse or stream). By default, both are enabled\",\n type: \"string\",\n },\n shell: {\n default: false,\n describe: \"Spawn the server via the user's shell\",\n type: \"boolean\",\n },\n sseEndpoint: {\n default: \"/sse\",\n describe: \"The SSE endpoint to listen on\",\n type: \"string\",\n },\n sslCa: {\n describe: \"Filename to override the trusted CA certificates\",\n type: \"string\",\n },\n sslCert: {\n describe: \"Cert chains filename in PEM format\",\n type: \"string\",\n },\n sslKey: {\n describe: \"Private keys filename in PEM format\",\n type: \"string\",\n },\n stateless: {\n default: false,\n describe:\n \"Enable stateless mode for HTTP streamable transport (no session management)\",\n type: \"boolean\",\n },\n streamEndpoint: {\n default: \"/mcp\",\n describe: \"The stream endpoint to listen on\",\n type: \"string\",\n },\n tunnel: {\n default: false,\n describe: \"Expose the proxy via a public tunnel using tunnel.gla.ma\",\n type: \"boolean\",\n },\n tunnelSubdomain: {\n describe: \"Request a specific subdomain for the tunnel (availability not guaranteed)\",\n type: \"string\",\n },\n })\n .help()\n .parseAsync();\n\n// If -- separator was used, everything after -- is the command and its args\nconst dashDashArgs = argv[\"--\"] as string[] | undefined;\n\nlet finalCommand: string;\nlet finalArgs: string[];\n\nif (dashDashArgs && dashDashArgs.length > 0) {\n // -- was used: first item after -- is command, rest are args\n [finalCommand, ...finalArgs] = dashDashArgs;\n} else if (argv.command) {\n // No -- used: use positional command and args\n finalCommand = argv.command as string;\n finalArgs = (argv.args as string[]) || [];\n} else {\n console.error(\"Error: No command specified.\");\n console.error(\"Usage: mcp-proxy [options] -- [args...]\");\n console.error(\" or: mcp-proxy [args...]\");\n console.error(\"\");\n console.error(\"Examples:\");\n console.error(\" mcp-proxy --port 8080 -- node server.js --port 3000\");\n console.error(\" mcp-proxy node server.js\");\n process.exit(1);\n}\n\nconst connect = async (client: Client, connectionTimeout: number) => {\n const transport = new StdioClientTransport({\n args: finalArgs,\n command: finalCommand,\n env: process.env as Record,\n onEvent: (event) => {\n if (argv.debug) {\n console.debug(\"transport event\", event);\n }\n },\n shell: argv.shell,\n // We want to passthrough stderr from the MCP server to enable better debugging\n stderr: \"inherit\",\n });\n\n await client.connect(transport, { timeout: connectionTimeout });\n};\n\nconst proxy = async () => {\n const client = new Client(\n {\n name: \"mcp-proxy\",\n version: \"1.0.0\",\n },\n {\n capabilities: {},\n },\n );\n\n await connect(client, argv.connectionTimeout);\n\n const serverVersion = client.getServerVersion() as {\n name: string;\n version: string;\n };\n\n const serverCapabilities = client.getServerCapabilities() as ServerCapabilities;\n\n console.info(\"starting server on port %d\", argv.port);\n\n const createServer = async () => {\n const server = new Server(serverVersion, {\n capabilities: serverCapabilities,\n });\n\n proxyServer({\n client,\n requestTimeout: argv.requestTimeout,\n server,\n serverCapabilities,\n });\n\n return server;\n };\n\n const server = await startHTTPServer({\n apiKey: argv.apiKey,\n createServer,\n eventStore: new InMemoryEventStore(),\n host: argv.host,\n port: argv.port,\n sseEndpoint:\n argv.server && argv.server !== \"sse\"\n ? null\n : (argv.sseEndpoint ?? argv.endpoint),\n sslCa: argv.sslCa,\n sslCert: argv.sslCert,\n sslKey: argv.sslKey,\n stateless: argv.stateless,\n streamEndpoint:\n argv.server && argv.server !== \"stream\"\n ? null\n : (argv.streamEndpoint ?? argv.endpoint),\n });\n\n let tunnel: Awaited> | undefined;\n\n if (argv.tunnel) {\n console.info(\"establishing tunnel via tunnel.gla.ma\");\n tunnel = await pipenet({\n host: \"https://tunnel.gla.ma\",\n port: argv.port,\n subdomain: argv.tunnelSubdomain,\n });\n console.info(\"tunnel established at %s\", tunnel.url);\n }\n\n return {\n close: async () => {\n await server.close();\n if (tunnel) {\n await tunnel.close();\n }\n },\n };\n};\n\nconst createGracefulShutdown = ({\n server,\n timeout,\n}: {\n server: SSEServer;\n timeout: number;\n}) => {\n const gracefulShutdown = () => {\n console.info(\"received shutdown signal; shutting down\");\n\n server.close();\n\n setTimeout(() => {\n // Exit with non-zero code to indicate failure to shutdown gracefully\n process.exit(1);\n }, timeout).unref();\n };\n\n process.once(\"SIGTERM\", gracefulShutdown);\n process.once(\"SIGINT\", gracefulShutdown);\n\n return () => {\n server.close();\n };\n};\n\nconst main = async () => {\n try {\n const server = await proxy();\n\n createGracefulShutdown({\n server,\n timeout: argv.gracefulShutdownTimeout,\n });\n } catch (error) {\n console.error(\"could not start the proxy\", error);\n\n // We give an extra second for logs to flush\n setTimeout(() => {\n process.exit(1);\n }, 1000);\n }\n};\n\nawait main();\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAM,aAAN,cAAyB,MAAM;CAC7B,YAAY,SAAS,SAAS;AAC5B,QAAM,QAAQ,EAAE,KAAK,OAAO,cAAc,KAAK,OAAO,QAAQ,MAAM,KAAK,QAAQ,QAAQ,OAAO,KAAK,QAAQ,QAAQ,OAAO,KAAK,OAAO,QAAQ;;;AAGpJ,SAAS,KAAK,MAAM;AAEpB,SAAS,aAAa,WAAW;AAC/B,KAAI,OAAO,aAAa,WACtB,OAAM,IAAI,UACR,uFACD;CACH,MAAM,EAAE,UAAU,MAAM,UAAU,MAAM,UAAU,MAAM,cAAc;CACtE,IAAI,iBAAiB,IAAI,eAAe,CAAC,GAAG,IAAI,OAAO,IAAI,YAAY;CACvE,SAAS,KAAK,UAAU;EACtB,MAAM,QAAQ,eAAe,SAAS,QAAQ,iBAAiB,GAAG,GAAG,UAAU,CAAC,UAAU,cAAc,WAAW,GAAG,iBAAiB,QAAQ;AAC/I,OAAK,MAAM,QAAQ,SACjB,WAAU,KAAK;AACjB,mBAAiB,YAAY,eAAe,CAAC;;CAE/C,SAAS,UAAU,MAAM;AACvB,MAAI,SAAS,IAAI;AACf,kBAAe;AACf;;AAEF,MAAI,KAAK,WAAW,IAAI,EAAE;AACxB,gBAAa,UAAU,KAAK,MAAM,KAAK,WAAW,KAAK,GAAG,IAAI,EAAE,CAAC;AACjE;;EAEF,MAAM,sBAAsB,KAAK,QAAQ,IAAI;AAC7C,MAAI,wBAAwB,IAAI;GAC9B,MAAM,QAAQ,KAAK,MAAM,GAAG,oBAAoB,EAAE,SAAS,KAAK,sBAAsB,OAAO,MAAM,IAAI;AACvG,gBAAa,OADqG,KAAK,MAAM,sBAAsB,OAAO,EAC/H,KAAK;AAChC;;AAEF,eAAa,MAAM,IAAI,KAAK;;CAE9B,SAAS,aAAa,OAAO,OAAO,MAAM;AACxC,UAAQ,OAAR;GACE,KAAK;AACH,gBAAY;AACZ;GACF,KAAK;AACH,WAAO,GAAG,OAAO,MAAM;;AAEvB;GACF,KAAK;AACH,SAAK,MAAM,SAAS,KAAK,GAAG,KAAK,IAAI;AACrC;GACF,KAAK;AACH,YAAQ,KAAK,MAAM,GAAG,QAAQ,SAAS,OAAO,GAAG,CAAC,GAAG,QACnD,IAAI,WAAW,6BAA6B,MAAM,IAAI;KACpD,MAAM;KACN;KACA;KACD,CAAC,CACH;AACD;GACF;AACE,YACE,IAAI,WACF,kBAAkB,MAAM,SAAS,KAAK,GAAG,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,MAAM,IAC5E;KAAE,MAAM;KAAiB;KAAO;KAAO;KAAM,CAC9C,CACF;AACD;;;CAGN,SAAS,gBAAgB;AACvB,OAAK,SAAS,KAAK,QAAQ;GACzB;GACA,OAAO,aAAa,KAAK;GAGzB,MAAM,KAAK,SAAS;EACxB,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG;GACpB,CAAC,EAAE,KAAK,KAAK,GAAG,OAAO,IAAI,YAAY;;CAE1C,SAAS,MAAM,UAAU,EAAE,EAAE;AAC3B,oBAAkB,QAAQ,WAAW,UAAU,eAAe,EAAE,eAAe,CAAC,GAAG,KAAK,KAAK,GAAG,OAAO,IAAI,YAAY,IAAI,iBAAiB;;AAE9I,QAAO;EAAE;EAAM;EAAO;;AAExB,SAAS,WAAW,OAAO;CACzB,MAAM,QAAQ,EAAE;CAChB,IAAI,iBAAiB,IAAI,cAAc;AACvC,QAAO,cAAc,MAAM,SAAU;EACnC,MAAM,UAAU,MAAM,QAAQ,MAAM,YAAY,EAAE,UAAU,MAAM,QAAQ;GAC3E,YAAY;EACX,IAAI,UAAU;AACd,MAAI,YAAY,MAAM,YAAY,KAAK,UAAU,KAAK,IAAI,SAAS,QAAQ,GAAG,YAAY,KAAK,UAAU,UAAU,YAAY,OAAO,UAAU,UAAU,YAAY,IAAI;AACxK,oBAAiB,MAAM,MAAM,YAAY;AACzC;SACK;GACL,MAAM,OAAO,MAAM,MAAM,aAAa,QAAQ;AAC9C,SAAM,KAAK,KAAK,EAAE,cAAc,UAAU,GAAG,MAAM,cAAc,OAAO,QAAQ,MAAM,iBAAiB;KACxG;;;AAGH,QAAO,CAAC,OAAO,eAAe;;;;;AClGhC,IAAM,aAAN,cAAyB,MAAM;;;;;;;;CAQ7B,YAAY,MAAM,oBAAoB;EACpC,IAAIA,MAAIC;AACR,QAAM,KAAK,EAAE,KAAK,QAAQ,OAAK,sBAAsB,OAAO,KAAK,IAAI,mBAAmB,SAAS,OAAOD,OAAK,KAAK,GAAG,KAAK,WAAW,OAAK,sBAAsB,OAAO,KAAK,IAAI,mBAAmB,YAAY,OAAOC,OAAK,KAAK;;;;;;;;;;;;;;CAclO,CAAC,OAAO,IAAI,6BAA6B,EAAE,QAAQ,SAAS,WAAS;AACnE,SAAOC,UAAQ,iBAAiB,KAAK,EAAE,QAAQ;;;;;;;;;;;;;CAajD,CAAC,OAAO,IAAI,qBAAqB,EAAE,WAAS,SAAS;AACnD,SAAOA,UAAQ,iBAAiB,KAAK,EAAE,QAAQ;;;AAGnD,SAAS,YAAY,SAAS;CAC5B,MAAM,eAAe,WAAW;AAChC,QAAO,OAAO,gBAAgB,aAAa,IAAI,aAAa,SAAS,cAAc,GAAG,IAAI,YAAY,QAAQ;;AAEhH,SAAS,aAAa,KAAK;AACzB,QAAO,eAAe,QAAQ,YAAY,OAAO,MAAM,QAAQ,IAAI,OAAO,GAAG,IAAI,OAAO,IAAI,aAAa,CAAC,KAAK,KAAK,GAAG,WAAW,OAAO,IAAI,iBAAiB,QAAQ,GAAG,IAAI,IAAI,aAAa,IAAI,MAAM,KAAK,IAAI,UAAU,GAAG;;AAEhO,SAAS,iBAAiB,KAAK;AAC7B,QAAO;EACL,MAAM,IAAI;EACV,SAAS,IAAI;EACb,MAAM,IAAI;EACV,kBAAkB,IAAI;EACtB,YAAY,IAAI;EAChB,WAAW,IAAI;EAChB;;AAEH,IAAI,eAAe,QAAQ;AACzB,OAAM,UAAU,IAAI;GACnB,iBAAiB,KAAK,QAAQ,QAAQ,OAAO,IAAI,IAAI,IAAI,YAAY,YAAY,IAAI,EAAE,gBAAgB,KAAK,QAAQ,YAAY,cAAc,KAAK,QAAQ,0BAA0B,EAAE,SAAS,OAAO,KAAK,IAAI,GAAG,OAAO,IAAI,IAAI,GAAG,gBAAgB,KAAK,QAAQ,UAAU,OAAO,IAAI,IAAI,GAAG,YAAY,oDAAoD,GAAG,kBAAkB,UAAU,OAAO,IAAI,IAAI,GAAG,OAAO,IAAI,KAAK,MAAM,EAAE,gBAAgB,KAAK,QAAQ,OAAO,YAAY,cAAc,KAAK,QAAQ,yBAAyB,EAAE,OAAO,IAAI,KAAK,MAAM,EAAE,QAAQ,mBAAmB,KAAK,QAAQ,YAAY,cAAc,KAAK,QAAQ,wBAAwB,EAAE,SAAS,aAAa,MAAM,cAAc,kBAAkB,QAAQ,oBAAoB,iBAAiB,cAAc,aAAa,SAAS,UAAU,YAAY,SAAS,wBAAwB,YAAY,kBAAkB,eAAe,sBAAsB,UAAU,gBAAgB,mBAAmB,sBAAsB;AAC39B,IAAM,cAAN,cAA0B,YAAY;CACpC,YAAY,KAAK,qBAAqB;EACpC,IAAIF,MAAIC;AACR,SAAO,EAAE,aAAa,MAAM,uBAAuB,EAAE,KAAK,aAAa,GAAG,KAAK,OAAO,GAAG,KAAK,SAAS,GAAG,aAAa,MAAM,YAAY,EAAE,aAAa,MAAM,KAAK,EAAE,aAAa,MAAM,aAAa,EAAE,aAAa,MAAM,iBAAiB,EAAE,aAAa,MAAM,OAAO,EAAE,aAAa,MAAM,mBAAmB,EAAE,aAAa,MAAM,gBAAgB,EAAE,aAAa,MAAM,cAAc,KAAK,EAAE,aAAa,MAAM,YAAY,EAAE,aAAa,MAAM,QAAQ,EAAE,aAAa,MAAM,UAAU,KAAK,EAAE,aAAa,MAAM,YAAY,KAAK,EAAE,aAAa,MAAM,SAAS,KAAK,EAAE,aAAa,MAAM,kBAAkB,OAAO,aAAa;GAChmB,IAAI;AACJ,gBAAa,MAAM,QAAQ,CAAC,OAAO;GACnC,MAAM,EAAE,MAAM,YAAY,QAAQ,YAAY;AAC9C,OAAI,WAAW,KAAK;AAClB,oBAAgB,MAAM,wBAAwB,kBAAkB,CAAC,KAAK,MAAM,0CAA0C,IAAI,EAAE,KAAK,OAAO;AACxI;;AAEF,OAAI,aAAa,aAAa,MAAM,cAAc,IAAI,IAAI,SAAS,IAAI,CAAC,GAAG,aAAa,MAAM,cAAc,KAAK,EAAE,EAAE,WAAW,KAAK;AACnI,oBAAgB,MAAM,wBAAwB,kBAAkB,CAAC,KAAK,MAAM,wBAAwB,OAAO,IAAI,OAAO;AACtH;;AAEF,OAAI,EAAE,QAAQ,IAAI,eAAe,IAAI,IAAI,WAAW,oBAAoB,EAAE;AACxE,oBAAgB,MAAM,wBAAwB,kBAAkB,CAAC,KAAK,MAAM,wDAAsD,OAAO;AACzI;;AAEF,OAAI,aAAa,MAAM,YAAY,KAAK,KAAK,OAC3C;AACF,gBAAa,MAAM,aAAa,KAAK,KAAK;GAC1C,MAAM,YAAY,IAAI,MAAM,OAAO;AACnC,QAAK,MAAM,aAAa,MAAM,QAAQ,KAAK,QAAQ,IAAI,KAAK,MAAM,UAAU,EAAE,KAAK,cAAc,UAAU,EAAE,OAAO,QAAQ,YAAY,CAAC,QAAQ,EAAE,eAAe,OAAO;AACvK,oBAAgB,MAAM,wBAAwB,kBAAkB,CAAC,KAAK,MAAM,wDAAwD,OAAO,EAAE,KAAK,OAAO;AACzJ;;GAEF,MAAM,UAAU,IAAI,aAAa,EAAE,SAAS,KAAK,WAAW;GAC5D,IAAI,OAAO,CAAC;AACZ,MAAG;IACD,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAC3C,aAAS,aAAa,MAAM,QAAQ,CAAC,KAAK,QAAQ,OAAO,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,OAAO,CAAC,GAAG,aAAa,MAAM,QAAQ,CAAC,OAAO,EAAE,gBAAgB,MAAM,wBAAwB,qBAAqB,CAAC,KAAK,KAAK;YACrN;IACT,EAAE,aAAa,MAAM,gBAAgB,QAAQ;AAC7C,gBAAa,MAAM,aAAa,KAAK,EAAE,EAAE,EAAE,IAAI,SAAS,gBAAgB,IAAI,SAAS,cAAc,gBAAgB,MAAM,wBAAwB,qBAAqB,CAAC,KAAK,MAAM,aAAa,IAAI,CAAC;IACpM,EAAE,aAAa,MAAM,WAAW,UAAU;AAC1C,UAAO,MAAM,MAAM,YAAY,aAAa,MAAM,cAAc,MAAM,GAAG;GACzE,MAAM,eAAe,IAAI,aAAa,MAAM,SAAS,WAAW;IAC9D,MAAM,MAAM;IACZ,QAAQ,aAAa,MAAM,aAAa,GAAG,aAAa,MAAM,aAAa,CAAC,SAAS,aAAa,MAAM,KAAK,CAAC;IAC9G,aAAa,MAAM,MAAM;IAC1B,CAAC;AACF,gBAAa,MAAM,WAAW,KAAK,CAAC,MAAM,SAAS,MAAM,UAAU,cAAc,aAAa,MAAM,WAAW,CAAC,KAAK,MAAM,aAAa,EAAE,KAAK,cAAc,aAAa;IAC1K,EAAE,aAAa,MAAM,iBAAiB,UAAU;AAChD,gBAAa,MAAM,oBAAoB,MAAM;IAC7C,EAAE,aAAa,MAAM,kBAAkB;AACvC,gBAAa,MAAM,iBAAiB,KAAK,EAAE,EAAE,aAAa,MAAM,YAAY,KAAK,KAAK,cAAc,gBAAgB,MAAM,wBAAwB,WAAW,CAAC,KAAK,KAAK;IACxK;AACF,MAAI;AACF,OAAI,eAAe,IACjB,cAAa,MAAM,MAAM,IAAI;YACtB,OAAO,OAAO,SACrB,cAAa,MAAM,MAAM,IAAI,IAAI,KAAK,YAAY,CAAC,CAAC;OAEpD,OAAM,IAAI,MAAM,cAAc;UAC1B;AACN,SAAM,YAAY,6CAA6C;;AAEjE,eAAa,MAAM,SAAS,aAAa;GACvC,SAAS,aAAa,MAAM,SAAS;GACrC,SAAS,aAAa,MAAM,eAAe;GAC5C,CAAC,CAAC,EAAE,aAAa,MAAM,aAAa,KAAK,WAAW,EAAE,aAAa,MAAM,oBAAoB,IAAI,EAAE,aAAa,MAAM,SAAS,OAAK,uBAAuB,OAAO,KAAK,IAAI,oBAAoB,UAAU,OAAOD,OAAK,WAAW,MAAM,EAAE,aAAa,MAAM,mBAAmB,OAAK,uBAAuB,OAAO,KAAK,IAAI,oBAAoB,oBAAoB,OAAOC,OAAK,CAAC,EAAE,EAAE,gBAAgB,MAAM,wBAAwB,WAAW,CAAC,KAAK,KAAK;;;;;;;;;;;;CAY1b,IAAI,aAAa;AACf,SAAO,aAAa,MAAM,YAAY;;;;;;;;;CASxC,IAAI,MAAM;AACR,SAAO,aAAa,MAAM,KAAK,CAAC;;;;;;;CAOlC,IAAI,kBAAkB;AACpB,SAAO,aAAa,MAAM,iBAAiB;;;CAG7C,IAAI,UAAU;AACZ,SAAO,aAAa,MAAM,SAAS;;CAErC,IAAI,QAAQ,OAAO;AACjB,eAAa,MAAM,UAAU,MAAM;;;CAGrC,IAAI,YAAY;AACd,SAAO,aAAa,MAAM,WAAW;;CAEvC,IAAI,UAAU,OAAO;AACnB,eAAa,MAAM,YAAY,MAAM;;;CAGvC,IAAI,SAAS;AACX,SAAO,aAAa,MAAM,QAAQ;;CAEpC,IAAI,OAAO,OAAO;AAChB,eAAa,MAAM,SAAS,MAAM;;CAEpC,iBAAiB,MAAM,UAAU,SAAS;EACxC,MAAM,SAAS;AACf,QAAM,iBAAiB,MAAM,QAAQ,QAAQ;;CAE/C,oBAAoB,MAAM,UAAU,SAAS;EAC3C,MAAM,SAAS;AACf,QAAM,oBAAoB,MAAM,QAAQ,QAAQ;;;;;;;;;CASlD,QAAQ;AACN,eAAa,MAAM,gBAAgB,IAAI,aAAa,aAAa,MAAM,gBAAgB,CAAC,EAAE,aAAa,MAAM,YAAY,KAAK,KAAK,WAAW,aAAa,MAAM,YAAY,IAAI,aAAa,MAAM,YAAY,CAAC,OAAO,EAAE,aAAa,MAAM,aAAa,KAAK,OAAO,EAAE,aAAa,MAAM,aAAa,KAAK,EAAE;;;AAGnT,8BAA8B,IAAI,SAAS,EAAE,uBAAuB,IAAI,SAAS,EAAE,+BAA+B,IAAI,SAAS,EAAE,mCAAmC,IAAI,SAAS,EAAE,yBAAyB,IAAI,SAAS,EAAE,qCAAqC,IAAI,SAAS,EAAE,kCAAkC,IAAI,SAAS,EAAE,+BAA+B,IAAI,SAAS,EAAE,8BAA8B,IAAI,SAAS,EAAE,0BAA0B,IAAI,SAAS,EAAE,2BAA2B,IAAI,SAAS,EAAE,6BAA6B,IAAI,SAAS,EAAE,0BAA0B,IAAI,SAAS,EAAE,yCAAyC,IAAI,SAAS,EAKznB,aAAa,WAAW;AACtB,cAAa,MAAM,aAAa,KAAK,WAAW,EAAE,aAAa,MAAM,aAAa,IAAI,iBAAiB,CAAC,EAAE,aAAa,MAAM,OAAO,CAAC,aAAa,MAAM,KAAK,EAAE,gBAAgB,MAAM,wBAAwB,qBAAqB,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,aAAa,MAAM,iBAAiB,CAAC,CAAC,MAAM,aAAa,MAAM,cAAc,CAAC;GACjU,mCAAmC,IAAI,SAAS,EAAE,gCAAgC,IAAI,SAAS,EAMlG,uBAAuB,WAAW;CAChC,IAAID;CACJ,MAAM,OAAO;EAGX,MAAM;EACN,UAAU;EACV,SAAS;GAAE,QAAQ;GAAqB,GAAG,aAAa,MAAM,aAAa,GAAG,EAAE,iBAAiB,aAAa,MAAM,aAAa,EAAE,GAAG,KAAK;GAAG;EAC9I,OAAO;EACP,SAAS,OAAK,aAAa,MAAM,YAAY,KAAK,OAAO,KAAK,IAAIA,KAAG;EACtE;AACD,QAAO,YAAY,eAAe,KAAK,cAAc,KAAK,kBAAkB,YAAY,gBAAgB;GACvG,2BAA2B,IAAI,SAAS,EAAE,iCAAiC,IAAI,SAAS,EAO3F,oBAAoB,SAAS,SAAS,MAAM;CAC1C,IAAIA;AACJ,cAAa,MAAM,YAAY,KAAK,KAAK,UAAU,aAAa,MAAM,aAAa,KAAK,OAAO;CAC/F,MAAM,aAAa,IAAI,WAAW,SAAS;EAAE;EAAM;EAAS,CAAC;AAC7D,EAAC,OAAK,aAAa,MAAM,SAAS,KAAK,QAAQA,KAAG,KAAK,MAAM,WAAW,EAAE,KAAK,cAAc,WAAW;GAQ1G,uBAAuB,SAAS,SAAS,MAAM;CAC7C,IAAIA;AACJ,KAAI,aAAa,MAAM,YAAY,KAAK,KAAK,OAC3C;AACF,cAAa,MAAM,aAAa,KAAK,WAAW;CAChD,MAAM,aAAa,IAAI,WAAW,SAAS;EAAE;EAAM;EAAS,CAAC;AAC7D,EAAC,OAAK,aAAa,MAAM,SAAS,KAAK,QAAQA,KAAG,KAAK,MAAM,WAAW,EAAE,KAAK,cAAc,WAAW,EAAE,aAAa,MAAM,iBAAiB,WAAW,aAAa,MAAM,WAAW,EAAE,aAAa,MAAM,mBAAmB,CAAC,CAAC;GAChO,6BAA6B,IAAI,SAAS,EAK7C,YAAY,aAAa,GAKzB,YAAY,OAAO,GAKnB,YAAY,SAAS;AACrB,OAAO,eAAe,aAAa,OAAO,IAAI,sCAAsC,EAAE;CACpF,OAAO,CAAC;CACR,UAAU,CAAC;CACX,cAAc,CAAC;CACf,YAAY,CAAC;CACd,CAAC;AACF,SAAS,aAAa;CACpB,MAAM,MAAM,cAAc,aAAa,WAAW,WAAW,KAAK;AAClE,QAAO,OAAO,OAAO,OAAO,YAAY,aAAa,OAAO,OAAO,IAAI,WAAW,WAAW,IAAI,UAAU,KAAK;;;;;AC/QlH,MAAM,QAAQ;CACV,OAAO;CACP,QAAQ;CACX;AACD,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,MAAM,SAAS;AACf,MAAM,OAAO;AACb,IAAa,KAAb,MAAgB;CACZ,YAAY,MAAM;EACd,IAAIG;AACJ,OAAK,QAAQ,KAAK;AAClB,OAAK,QAAQ,OAAK,KAAK,UAAU,QAAQA,SAAO,KAAK,IAAIA,OAAK;AAC9D,OAAK,OAAO,EAAE;;CAElB,KAAK,GAAG,MAAM;EACV,MAAM,OAAO,KAAK,IAAI,GAAG,KAAK;AAC9B,OAAK,OAAO;;CAEhB,cAAc;AACV,OAAK,OAAO,EAAE;;CAElB,IAAI,GAAG,MAAM;AACT,MAAI,KAAK,WAAW,EAChB,MAAK,IAAI,GAAG;AAEhB,MAAI,KAAK,QAAQ,KAAK,qBAAqB,GAAG,KAAK,IAAI,OAAO,KAAK,OAAO,SACtE,QAAO,KAAK,eAAe,KAAK,GAAG;EAEvC,MAAM,OAAO,KAAK,KAAI,QAAO;AACzB,OAAI,OAAO,QAAQ,SACf,QAAO,KAAK,cAAc,IAAI;AAElC,UAAO;IACT;AACF,OAAK,KAAK,KAAK,KAAK;AACpB,SAAO;;CAEX,qBAAqB,GAAG,MAAM;AAC1B,SAAO,KAAK,WAAW,KAAK,OAAO,KAAK,OAAO,YAC3C,SAAS,KAAK,KAAK,GAAG;;CAE9B,eAAe,KAAK;EAChB,MAAM,OAAO,IAAI,MAAM,KAAK,CAAC,KAAI,QAAO,IAAI,MAAM,IAAK,CAAC;EACxD,IAAI,kBAAkB;AAKtB,OAAK,SAAQ,YAAW;AACpB,OAAI,QAAQ,SAAS,KAAKC,QAAM,YAAY,QAAQ,GAAG,GAAG,gBACtD,mBAAkB,KAAK,IAAI,KAAK,MAAM,KAAK,QAAQ,GAAI,EAAEA,QAAM,YAAY,QAAQ,GAAG,CAAC;IAE7F;AAIF,OAAK,SAAQ,YAAW;AACpB,QAAK,IAAI,GAAG,QAAQ,KAAK,GAAG,MAAM;AAC9B,WAAO;KACH,MAAM,EAAE,MAAM;KACd,SAAS,KAAK,eAAe,EAAE;KAC/B,OAAQ,MAAM,KAAK,QAAQ,SAAS,IAAK,kBAAkB;KAC9D;KACH,CAAC;IACL;AACF,SAAO,KAAK,KAAK,KAAK,KAAK,SAAS;;CAExC,cAAc,MAAM;AAChB,SAAO;GACH;GACA,SAAS,KAAK,eAAe,KAAK;GACrC;;CAEL,eAAe,KAAK;EAEhB,MAAM,SAASA,QAAM,UAAU,IAAI;AACnC,SAAO;GAAC;GAAG,OAAO,MAAM,OAAO,CAAC,GAAG;GAAQ;GAAG,OAAO,MAAM,OAAO,CAAC,GAAG;GAAO;;CAEjF,WAAW;EACP,MAAM,QAAQ,EAAE;AAChB,OAAK,KAAK,SAAQ,QAAO;AACrB,QAAK,YAAY,KAAK,MAAM;IAC9B;AAGF,SAAO,MACF,QAAO,SAAQ,CAAC,KAAK,OAAO,CAC5B,KAAI,SAAQ,KAAK,KAAK,CACtB,KAAK,KAAK;;CAEnB,YAAY,KAAK,OAAO;AACpB,OAAK,UAAU,IAAI,CAAC,SAAS,MAAM,MAAM;GACrC,IAAI,MAAM;AACV,QAAK,SAAS,KAAK,MAAM;IACrB,MAAM,EAAE,UAAU,IAAI;IACtB,MAAM,YAAY,KAAK,cAAc,IAAI,GAAG;IAC5C,IAAI,KAAK;AACT,QAAI,YAAYA,QAAM,YAAY,IAAI,CAClC,OAAM,IAAI,OAAO,YAAYA,QAAM,YAAY,IAAI,CAAC;AAGxD,QAAI,IAAI,GAAG,SAAS,IAAI,GAAG,UAAU,UAAU,KAAK,MAAM;KACtD,MAAM,KAAK,MAAM,IAAI,GAAG;AACxB,UAAK,GAAG,IAAI,UAAU;AACtB,SAAIA,QAAM,YAAY,GAAG,GAAG,UACxB,OAAM,IAAI,QAAQ,SAAS,KAAKA,QAAM,YAAY,GAAG,GAAG,EAAE;;IAIlE,MAAM,UAAU,IAAI,GAAG,WAAW;KAAC;KAAG;KAAG;KAAG;KAAE;AAC9C,QAAI,QAAQ,MACR,QAAO,IAAI,OAAO,QAAQ,MAAM;AAEpC,WAAO,UAAU,IAAI,IAAI,IAAI,KAAK;AAClC,WAAO;AACP,WAAO,UAAU,IAAI,IAAI,IAAI,KAAK;AAClC,QAAI,QAAQ,OACR,QAAO,IAAI,OAAO,QAAQ,OAAO;AAIrC,QAAI,MAAM,KAAK,MAAM,SAAS,EAC1B,OAAM,KAAK,aAAa,KAAK,MAAM,MAAM,SAAS,GAAG;KAE3D;AAEF,SAAM,KAAK;IACP,MAAM,IAAI,QAAQ,OAAO,GAAG;IAC5B,MAAM,IAAI;IACb,CAAC;IACJ;AACF,SAAO;;CAIX,aAAa,QAAQ,cAAc;EAC/B,MAAM,QAAQ,OAAO,MAAM,MAAM;EACjC,MAAM,oBAAoB,QAAQ,MAAM,GAAG,SAAS;EACpD,MAAM,SAAS,aAAa;EAC5B,MAAM,kBAAkBA,QAAM,YAAY,OAAO,WAAW,CAAC;AAC7D,MAAI,CAAC,aAAa,KACd,QAAO;AAIX,MAAI,CAAC,KAAK,MAAM;AACZ,gBAAa,SAAS;AACtB,UAAO,SAAS;;AAEpB,MAAI,oBAAoB,gBACpB,QAAO;AAEX,eAAa,SAAS;AACtB,SAAO,OAAO,WAAW,GAAG,IAAI,OAAO,oBAAoB,gBAAgB,GAAG,OAAO,UAAU;;CAEnG,UAAU,KAAK;EACX,MAAM,QAAQ,EAAE;EAChB,MAAM,SAAS,KAAK,aAAa,IAAI;EACrC,IAAI;AAGJ,MAAI,SAAS,KAAK,MAAM;AAEpB,OAAI,QAAQ,OAAO;AACnB,OAAI,KAAK,KACL,WAAUA,QAAM,KAAK,IAAI,MAAM,KAAK,cAAc,IAAI,EAAE,EAAE,MAAM,MAAM,CAAC,CAAC,MAAM,KAAK;OAGnF,WAAU,IAAI,KAAK,MAAM,KAAK;AAElC,OAAI,IAAI,QAAQ;AACZ,YAAQ,QAAQ,MAAM,IAAI,OAAO,KAAK,cAAc,IAAI,GAAG,EAAE,GAAG,IAAI;AACpE,YAAQ,KAAK,MAAM,IAAI,OAAO,KAAK,cAAc,IAAI,GAAG,EAAE,GAAG,IAAI;;AAGrE,OAAI,IAAI,SAAS;AACb,YAAQ,QAAQ,GAAG,IAAI,MAAM,IAAI,QAAQ,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC;AAC7D,YAAQ,KAAK,GAAG,IAAI,MAAM,IAAI,QAAQ,WAAW,EAAE,CAAC,KAAK,GAAG,CAAC;;AAEjE,WAAQ,SAAS,KAAK,MAAM;AACxB,QAAI,CAAC,MAAM,GACP,OAAM,KAAK,EAAE,CAAC;IAElB,MAAM,OAAO,MAAM;AACnB,SAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IACnB,KAAI,KAAK,OAAO,OACZ,MAAK,KAAK,GAAG;AAGrB,SAAK,KAAK,IAAI;KAChB;IACJ;AACF,SAAO;;CAEX,cAAc,KAAK;EACf,IAAI,YAAY,IAAI,SAAS;AAC7B,MAAI,IAAI,QACJ,eAAc,IAAI,QAAQ,SAAS,MAAM,IAAI,QAAQ,UAAU;AAEnE,MAAI,IAAI,OACJ,cAAa;AAEjB,SAAO;;CAEX,aAAa,KAAK;AACd,MAAI,CAAC,KAAK,KACN,QAAO,IAAI,KAAI,QAAO;AAClB,UAAO,IAAI,SAASA,QAAM,YAAY,IAAI,KAAK;IACjD;EAEN,IAAI,QAAQ,IAAI;EAChB,IAAI,iBAAiB,KAAK;EAE1B,MAAM,SAAS,IAAI,KAAI,QAAO;AAC1B,OAAI,IAAI,OAAO;AACX;AACA,sBAAkB,IAAI;AACtB,WAAO,IAAI;;IAGjB;EAEF,MAAM,aAAa,QAAQ,KAAK,MAAM,iBAAiB,MAAM,GAAG;AAChE,SAAO,OAAO,KAAK,GAAG,MAAM;AACxB,OAAI,MAAM,OACN,QAAO,KAAK,IAAI,YAAY,UAAU,IAAI,GAAG,CAAC;AAElD,UAAO;IACT;;;AAGV,SAAS,UAAU,KAAK,IAAI,OAAO;AAC/B,KAAI,IAAI,QAAQ;AACZ,MAAI,aAAa,KAAK,GAAG,CACrB,QAAO;AAEX,MAAI,GAAG,MAAM,CAAC,WAAW,EACrB,QAAO;AAEX,SAAO;;AAEX,QAAO;;AAIX,SAAS,UAAU,KAAK;CACpB,MAAM,UAAU,IAAI,WAAW,EAAE;CACjC,MAAM,WAAW,KAAK,QAAQ,SAAS,MAAM,QAAQ,UAAU;AAC/D,KAAI,IAAI,OACJ,QAAO,WAAW;AAEtB,QAAO;;AAEX,SAAS,iBAAiB;;AAEtB,KAAI,OAAO,YAAY,YAAY,QAAQ,UAAU,QAAQ,OAAO,QAChE,QAAO,QAAQ,OAAO;AAE1B,QAAO;;AAEX,SAAS,WAAW,KAAK,OAAO;AAC5B,OAAM,IAAI,MAAM;CAChB,MAAM,WAAWA,QAAM,YAAY,IAAI;AACvC,KAAI,WAAW,MACX,QAAO,IAAI,OAAO,QAAQ,SAAS,GAAG;AAE1C,QAAO;;AAEX,SAAS,YAAY,KAAK,OAAO;AAC7B,OAAM,IAAI,MAAM;CAChB,MAAM,WAAWA,QAAM,YAAY,IAAI;;AAEvC,KAAI,YAAY,MACZ,QAAO;AAEX,QAAO,IAAI,OAAQ,QAAQ,YAAa,EAAE,GAAG;;AAEjD,IAAIA;AACJ,SAAgB,MAAM,MAAM,QAAQ;AAChC,WAAQ;AACR,QAAO,IAAI,GAAG;EACV,QAAQ,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,UAAU,gBAAgB;EACnF,MAAM,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK;EAC1D,CAAC;;;;;AC7RN,SAAwB,UAAU,EAAC,YAAY,UAAS,EAAE,EAAE;CAG3D,MAAM,UAAU,CACf,2JACA,2DACA,CAAC,KAAK,IAAI;AAEX,QAAO,IAAI,OAAO,SAAS,YAAY,SAAY,IAAI;;;;;ACNxD,MAAM,QAAQ,WAAW;AAEzB,SAAwB,UAAU,QAAQ;AACzC,KAAI,OAAO,WAAW,SACrB,OAAM,IAAI,UAAU,gCAAgC,OAAO,OAAO,IAAI;AAMvE,QAAO,OAAO,QAAQ,OAAO,GAAG;;;;;ACVjC,SAAS,YAAY,GAAG;AACvB,QAAO,MAAM,OACT,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,KAAK,OAAQ,KAAK,OAClB,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAQ,KAAK,OAClB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,MAAM,OACN,MAAM,OACN,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,KAAK,OAAS,KAAK,OACnB,MAAM,QACN,KAAK,QAAS,KAAK,QACnB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,WACrB,KAAK,WAAY,KAAK;;AAG3B,SAAS,YAAY,GAAG;AACvB,QAAO,MAAM,SACT,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK;;AAGzB,SAAS,OAAO,GAAG;AAClB,QAAO,KAAK,QAAU,KAAK,QACvB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAW,KAAK,SACrB,MAAM,SACN,MAAM,SACN,KAAK,SAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,MAAM,UACN,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK,UACrB,KAAK,UAAW,KAAK;;;;;ACxW1B,SAAS,SAAS,WAAW;AAC5B,KAAI,CAAC,OAAO,cAAc,UAAU,CACnC,OAAM,IAAI,UAAU,gCAAgC,OAAO,UAAU,KAAK;;AAU5E,SAAgB,eAAe,WAAW,EAAC,kBAAkB,UAAS,EAAE,EAAE;AACzE,UAAS,UAAU;AAEnB,KACC,YAAY,UAAU,IACnB,OAAO,UAAU,IAChB,mBAAmB,YAAY,UAAU,CAE7C,QAAO;AAGR,QAAO;;;;;;ACzBR,QAAO,gBAAgB;AAEtB,SAAO;;;;;;;ACER,MAAM,YAAY,IAAI,KAAK,WAAW;AAEtC,MAAM,iCAAiC;AAEvC,SAAwB,YAAY,QAAQ,UAAU,EAAE,EAAE;AACzD,KAAI,OAAO,WAAW,YAAY,OAAO,WAAW,EACnD,QAAO;CAGR,MAAM,EACL,oBAAoB,MACpB,uBAAuB,UACpB;AAEJ,KAAI,CAAC,qBACJ,UAAS,UAAU,OAAO;AAG3B,KAAI,OAAO,WAAW,EACrB,QAAO;CAGR,IAAI,QAAQ;CACZ,MAAM,wBAAwB,EAAC,iBAAiB,CAAC,mBAAkB;AAEnE,MAAK,MAAM,EAAC,SAAS,eAAc,UAAU,QAAQ,OAAO,EAAE;EAC7D,MAAM,YAAY,UAAU,YAAY,EAAE;AAG1C,MAAI,aAAa,MAAS,aAAa,OAAQ,aAAa,IAC3D;AAID,MACE,aAAa,QAAW,aAAa,QACnC,cAAc,MAEjB;AAID,MACE,aAAa,OAAU,aAAa,OACjC,aAAa,QAAW,aAAa,QACrC,aAAa,QAAW,aAAa,QACrC,aAAa,QAAW,aAAa,QACrC,aAAa,SAAW,aAAa,MAEzC;AAID,MAAI,aAAa,SAAW,aAAa,MACxC;AAID,MAAI,aAAa,SAAW,aAAa,MACxC;AAID,MAAI,+BAA+B,KAAK,UAAU,CACjD;AAID,uCAAgB,CAAC,KAAK,UAAU,EAAE;AACjC,YAAS;AACT;;AAGD,WAAS,eAAe,WAAW,sBAAsB;;AAG1D,QAAO;;;;;AChFR,MAAM,yBAAyB;AAE/B,MAAM,cAAc,SAAS,OAAM,SAAQ,UAAU,OAAO,OAAO;AAEnE,MAAM,eAAe,SAAS,OAAM,SAAQ,UAAU,KAAK,OAAO,KAAK,KAAK;AAE5E,MAAM,eAAe,SAAS,OAAO,KAAK,OAAO,SAAS,UAAU,KAAK,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,KAAK;AAE1G,MAAM,SAAS;CACd,UAAU;EACT,OAAO,CAAC,GAAG,EAAE;EAEb,MAAM,CAAC,GAAG,GAAG;EACb,KAAK,CAAC,GAAG,GAAG;EACZ,QAAQ,CAAC,GAAG,GAAG;EACf,WAAW,CAAC,GAAG,GAAG;EAClB,UAAU,CAAC,IAAI,GAAG;EAClB,SAAS,CAAC,GAAG,GAAG;EAChB,QAAQ,CAAC,GAAG,GAAG;EACf,eAAe,CAAC,GAAG,GAAG;EACtB;CACD,OAAO;EACN,OAAO,CAAC,IAAI,GAAG;EACf,KAAK,CAAC,IAAI,GAAG;EACb,OAAO,CAAC,IAAI,GAAG;EACf,QAAQ,CAAC,IAAI,GAAG;EAChB,MAAM,CAAC,IAAI,GAAG;EACd,SAAS,CAAC,IAAI,GAAG;EACjB,MAAM,CAAC,IAAI,GAAG;EACd,OAAO,CAAC,IAAI,GAAG;EAGf,aAAa,CAAC,IAAI,GAAG;EACrB,MAAM,CAAC,IAAI,GAAG;EACd,MAAM,CAAC,IAAI,GAAG;EACd,WAAW,CAAC,IAAI,GAAG;EACnB,aAAa,CAAC,IAAI,GAAG;EACrB,cAAc,CAAC,IAAI,GAAG;EACtB,YAAY,CAAC,IAAI,GAAG;EACpB,eAAe,CAAC,IAAI,GAAG;EACvB,YAAY,CAAC,IAAI,GAAG;EACpB,aAAa,CAAC,IAAI,GAAG;EACrB;CACD,SAAS;EACR,SAAS,CAAC,IAAI,GAAG;EACjB,OAAO,CAAC,IAAI,GAAG;EACf,SAAS,CAAC,IAAI,GAAG;EACjB,UAAU,CAAC,IAAI,GAAG;EAClB,QAAQ,CAAC,IAAI,GAAG;EAChB,WAAW,CAAC,IAAI,GAAG;EACnB,QAAQ,CAAC,IAAI,GAAG;EAChB,SAAS,CAAC,IAAI,GAAG;EAGjB,eAAe,CAAC,KAAK,GAAG;EACxB,QAAQ,CAAC,KAAK,GAAG;EACjB,QAAQ,CAAC,KAAK,GAAG;EACjB,aAAa,CAAC,KAAK,GAAG;EACtB,eAAe,CAAC,KAAK,GAAG;EACxB,gBAAgB,CAAC,KAAK,GAAG;EACzB,cAAc,CAAC,KAAK,GAAG;EACvB,iBAAiB,CAAC,KAAK,GAAG;EAC1B,cAAc,CAAC,KAAK,GAAG;EACvB,eAAe,CAAC,KAAK,GAAG;EACxB;CACD;AAED,MAAa,gBAAgB,OAAO,KAAK,OAAO,SAAS;AACzD,MAAa,uBAAuB,OAAO,KAAK,OAAO,MAAM;AAC7D,MAAa,uBAAuB,OAAO,KAAK,OAAO,QAAQ;AAC/D,MAAa,aAAa,CAAC,GAAG,sBAAsB,GAAG,qBAAqB;AAE5E,SAAS,iBAAiB;CACzB,MAAM,wBAAQ,IAAI,KAAK;AAEvB,MAAK,MAAM,CAAC,WAAW,UAAU,OAAO,QAAQ,OAAO,EAAE;AACxD,OAAK,MAAM,CAAC,WAAW,UAAU,OAAO,QAAQ,MAAM,EAAE;AACvD,UAAO,aAAa;IACnB,MAAM,UAAU,MAAM,GAAG;IACzB,OAAO,UAAU,MAAM,GAAG;IAC1B;AAED,SAAM,aAAa,OAAO;AAE1B,SAAM,IAAI,MAAM,IAAI,MAAM,GAAG;;AAG9B,SAAO,eAAe,QAAQ,WAAW;GACxC,OAAO;GACP,YAAY;GACZ,CAAC;;AAGH,QAAO,eAAe,QAAQ,SAAS;EACtC,OAAO;EACP,YAAY;EACZ,CAAC;AAEF,QAAO,MAAM,QAAQ;AACrB,QAAO,QAAQ,QAAQ;AAEvB,QAAO,MAAM,OAAO,YAAY;AAChC,QAAO,MAAM,UAAU,aAAa;AACpC,QAAO,MAAM,UAAU,aAAa;AACpC,QAAO,QAAQ,OAAO,WAAW,uBAAuB;AACxD,QAAO,QAAQ,UAAU,YAAY,uBAAuB;AAC5D,QAAO,QAAQ,UAAU,YAAY,uBAAuB;AAG5D,QAAO,iBAAiB,QAAQ;EAC/B,cAAc;GACb,QAAQ,KAAK,OAAO,SAAS;AAG5B,QAAI,QAAQ,SAAS,UAAU,MAAM;AACpC,SAAI,MAAM,EACT,QAAO;AAGR,SAAI,MAAM,IACT,QAAO;AAGR,YAAO,KAAK,OAAQ,MAAM,KAAK,MAAO,GAAG,GAAG;;AAG7C,WAAO,KACH,KAAK,KAAK,MAAM,MAAM,MAAM,EAAE,GAC9B,IAAI,KAAK,MAAM,QAAQ,MAAM,EAAE,GAChC,KAAK,MAAM,OAAO,MAAM,EAAE;;GAE9B,YAAY;GACZ;EACD,UAAU;GACT,QAAO,QAAO;IACb,MAAM,UAAU,yBAAyB,KAAK,IAAI,SAAS,GAAG,CAAC;AAC/D,QAAI,CAAC,QACJ,QAAO;KAAC;KAAG;KAAG;KAAE;IAGjB,IAAI,CAAC,eAAe;AAEpB,QAAI,YAAY,WAAW,EAC1B,eAAc,CAAC,GAAG,YAAY,CAAC,KAAI,cAAa,YAAY,UAAU,CAAC,KAAK,GAAG;IAGhF,MAAM,UAAU,OAAO,SAAS,aAAa,GAAG;AAEhD,WAAO;KAEL,WAAW,KAAM;KACjB,WAAW,IAAK;KACjB,UAAU;KAEV;;GAEF,YAAY;GACZ;EACD,cAAc;GACb,QAAO,QAAO,OAAO,aAAa,GAAG,OAAO,SAAS,IAAI,CAAC;GAC1D,YAAY;GACZ;EACD,eAAe;GACd,QAAO,SAAQ;AACd,QAAI,OAAO,EACV,QAAO,KAAK;AAGb,QAAI,OAAO,GACV,QAAO,MAAM,OAAO;IAGrB,IAAI;IACJ,IAAI;IACJ,IAAI;AAEJ,QAAI,QAAQ,KAAK;AAChB,aAAS,OAAO,OAAO,KAAM,KAAK;AAClC,aAAQ;AACR,YAAO;WACD;AACN,aAAQ;KAER,MAAM,YAAY,OAAO;AAEzB,WAAM,KAAK,MAAM,OAAO,GAAG,GAAG;AAC9B,aAAQ,KAAK,MAAM,YAAY,EAAE,GAAG;AACpC,YAAQ,YAAY,IAAK;;IAG1B,MAAM,QAAQ,KAAK,IAAI,KAAK,OAAO,KAAK,GAAG;AAE3C,QAAI,UAAU,EACb,QAAO;IAIR,IAAI,SAAS,MAAO,KAAK,MAAM,KAAK,IAAI,IAAM,KAAK,MAAM,MAAM,IAAI,IAAK,KAAK,MAAM,IAAI;AAEvF,QAAI,UAAU,EACb,WAAU;AAGX,WAAO;;GAER,YAAY;GACZ;EACD,WAAW;GACV,QAAQ,KAAK,OAAO,SAAS,OAAO,cAAc,OAAO,aAAa,KAAK,OAAO,KAAK,CAAC;GACxF,YAAY;GACZ;EACD,WAAW;GACV,QAAO,QAAO,OAAO,cAAc,OAAO,aAAa,IAAI,CAAC;GAC5D,YAAY;GACZ;EACD,CAAC;AAEF,QAAO;;AAGR,MAAM,aAAa,gBAAgB;AAEnC,0BAAe;;;;AC1Nf,MAAM,UAAU,IAAI,IAAI,CACvB,QACA,IACA,CAAC;AAEF,MAAM,WAAW;AACjB,MAAM,mBAAmB;AACzB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,sBAAsB;AAC5B,MAAM,mBAAmB,GAAG,SAAS;AAErC,MAAM,gBAAe,SAAQ,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC,QAAQ,WAAW,OAAO;AAClF,MAAM,qBAAoB,QAAO,GAAG,QAAQ,QAAQ,CAAC,MAAM,CAAC,QAAQ,mBAAmB,MAAM;AAI7F,MAAM,eAAc,WAAU,OAAO,MAAM,IAAI,CAAC,KAAI,cAAa,YAAY,UAAU,CAAC;AAIxF,MAAM,YAAY,MAAM,MAAM,YAAY;CACzC,MAAM,aAAa,CAAC,GAAG,KAAK;CAE5B,IAAI,iBAAiB;CACrB,IAAI,qBAAqB;CACzB,IAAI,UAAU,YAAY,UAAU,KAAK,GAAG,GAAG,CAAC,CAAC;AAEjD,MAAK,MAAM,CAAC,OAAO,cAAc,WAAW,SAAS,EAAE;EACtD,MAAM,kBAAkB,YAAY,UAAU;AAE9C,MAAI,UAAU,mBAAmB,QAChC,MAAK,KAAK,SAAS,MAAM;OACnB;AACN,QAAK,KAAK,UAAU;AACpB,aAAU;;AAGX,MAAI,QAAQ,IAAI,UAAU,EAAE;AAC3B,oBAAiB;AAGjB,wBADgC,WAAW,MAAM,QAAQ,GAAG,QAAQ,IAAI,iBAAiB,OAAO,CAAC,KAAK,GAAG,KACxD;;AAGlD,MAAI,gBAAgB;AACnB,OAAI,oBACH;QAAI,cAAc,kBAAkB;AACnC,sBAAiB;AACjB,0BAAqB;;cAEZ,cAAc,oBACxB,kBAAiB;AAGlB;;AAGD,aAAW;AAEX,MAAI,YAAY,WAAW,QAAQ,WAAW,SAAS,GAAG;AACzD,QAAK,KAAK,GAAG;AACb,aAAU;;;AAMZ,KAAI,CAAC,WAAW,KAAK,GAAG,GAAG,CAAC,SAAS,KAAK,KAAK,SAAS,EACvD,MAAK,KAAK,SAAS,MAAM,KAAK,KAAK;;AAKrC,MAAM,gCAA+B,WAAU;CAC9C,MAAM,QAAQ,OAAO,MAAM,IAAI;CAC/B,IAAI,OAAO,MAAM;AAEjB,QAAO,OAAO,GAAG;AAChB,MAAI,YAAY,MAAM,OAAO,GAAG,GAAG,EAClC;AAGD;;AAGD,KAAI,SAAS,MAAM,OAClB,QAAO;AAGR,QAAO,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,MAAM,MAAM,KAAK,CAAC,KAAK,GAAG;;AAQnE,MAAM,QAAQ,QAAQ,SAAS,UAAU,EAAE,KAAK;AAC/C,KAAI,QAAQ,SAAS,SAAS,OAAO,MAAM,KAAK,GAC/C,QAAO;CAGR,IAAI,cAAc;CAClB,IAAI;CACJ,IAAI;CAEJ,MAAM,UAAU,YAAY,OAAO;CACnC,IAAI,OAAO,CAAC,GAAG;AAEf,MAAK,MAAM,CAAC,OAAO,SAAS,OAAO,MAAM,IAAI,CAAC,SAAS,EAAE;AACxD,MAAI,QAAQ,SAAS,MACpB,MAAK,KAAK,SAAS,KAAK,KAAK,GAAG,GAAG,CAAC,WAAW;EAGhD,IAAI,YAAY,YAAY,KAAK,GAAG,GAAG,CAAC;AAExC,MAAI,UAAU,GAAG;AAChB,OAAI,aAAa,YAAY,QAAQ,aAAa,SAAS,QAAQ,SAAS,QAAQ;AAEnF,SAAK,KAAK,GAAG;AACb,gBAAY;;AAGb,OAAI,YAAY,KAAK,QAAQ,SAAS,OAAO;AAC5C,SAAK,KAAK,SAAS,MAAM;AACzB;;;AAKF,MAAI,QAAQ,QAAQ,QAAQ,SAAS,SAAS;GAC7C,MAAM,mBAAoB,UAAU;GACpC,MAAM,yBAAyB,IAAI,KAAK,OAAO,QAAQ,SAAS,mBAAmB,KAAK,QAAQ;AAEhG,OAD+B,KAAK,OAAO,QAAQ,SAAS,KAAK,QAAQ,GAC5C,uBAC5B,MAAK,KAAK,GAAG;AAGd,YAAS,MAAM,MAAM,QAAQ;AAC7B;;AAGD,MAAI,YAAY,QAAQ,SAAS,WAAW,YAAY,KAAK,QAAQ,SAAS,GAAG;AAChF,OAAI,QAAQ,aAAa,SAAS,YAAY,SAAS;AACtD,aAAS,MAAM,MAAM,QAAQ;AAC7B;;AAGD,QAAK,KAAK,GAAG;;AAGd,MAAI,YAAY,QAAQ,SAAS,WAAW,QAAQ,aAAa,OAAO;AACvE,YAAS,MAAM,MAAM,QAAQ;AAC7B;;AAGD,OAAK,KAAK,SAAS,MAAM;;AAG1B,KAAI,QAAQ,SAAS,MACpB,QAAO,KAAK,KAAI,QAAO,6BAA6B,IAAI,CAAC;CAG1D,MAAM,YAAY,KAAK,KAAK,KAAK;CACjC,MAAM,MAAM,CAAC,GAAG,UAAU;CAG1B,IAAI,iBAAiB;AAErB,MAAK,MAAM,CAAC,OAAO,cAAc,IAAI,SAAS,EAAE;AAC/C,iBAAe;AAEf,MAAI,QAAQ,IAAI,UAAU,EAAE;GAC3B,MAAM,EAAC,4BAAU,IAAI,OAAO,QAAQ,SAAS,mBAAmB,iBAAiB,YAAY,iBAAiB,GAAG,EAAC,KAAK,UAAU,MAAM,eAAe,CAAC,IAAI,EAAC,QAAQ,EAAE,EAAC;AACvK,OAAI,OAAO,SAAS,QAAW;IAC9B,MAAMC,SAAO,OAAO,WAAW,OAAO,KAAK;AAC3C,iBAAaA,WAAS,WAAW,SAAYA;cACnC,OAAO,QAAQ,OACzB,aAAY,OAAO,IAAI,WAAW,IAAI,SAAY,OAAO;;EAI3D,MAAM,OAAOC,oBAAW,MAAM,IAAI,OAAO,WAAW,CAAC;AAErD,MAAI,IAAI,QAAQ,OAAO,MAAM;AAC5B,OAAI,UACH,gBAAe,kBAAkB,GAAG;AAGrC,OAAI,cAAc,KACjB,gBAAe,aAAa,KAAK;aAExB,cAAc,MAAM;AAC9B,OAAI,cAAc,KACjB,gBAAe,aAAa,WAAW;AAGxC,OAAI,UACH,gBAAe,kBAAkB,UAAU;;AAI7C,oBAAkB,UAAU;;AAG7B,QAAO;;AAIR,SAAwB,SAAS,QAAQ,SAAS,SAAS;AAC1D,QAAO,OAAO,OAAO,CACnB,WAAW,CACX,WAAW,QAAQ,KAAK,CACxB,MAAM,KAAK,CACX,KAAI,SAAQ,KAAK,MAAM,SAAS,QAAQ,CAAC,CACzC,KAAK,KAAK;;;;;ACtNb,SAAwB,GAAI,MAAM;AAChC,QAAO,MAAM,MAAM;EACjB;EACA;EACA,MAAM;EACP,CAAC;;;;;ACRJ,sBAAyB,OAAO,UAAU;CACzC,IAAI,MAAM,QAAQ,KAAK,MAAM;CAC7B,IAAI;AAEJ,KAAI,CAFa,SAAS,IAAI,CAEnB,aAAa,CACvB,OAAM,QAAQ,IAAI;AAGnB,QAAO,MAAM;AACZ,QAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AACrC,MAAI,IAAK,QAAO,QAAQ,KAAK,IAAI;AACjC,QAAM,QAAQ,MAAM,IAAI;AACxB,MAAI,QAAQ,IAAK;;;;;;;;;;;ACVnB,SAAgB,UAAU,KAAK;AAI3B,KAAI,EADgB,QAAQ,IAAI,aAAa,IAAI,QAAQ,IAAI,aAAa,EAEtE,OAAM,IAAI,aAAa;AAE3B,KAAI,IAAI,QAAQ,IAAI,KAAK,MAAM,IAAI,QAAQ,IAAI,KAAK,GAChD,QAAO;MAEN;EACD,IAAI,YAAY;EAChB,IAAI,eAAe;EACnB,MAAM,iBAAiB,IAAI,MAAM,MAAM;AACvC,OAAK,IAAI,IAAI,iBAAiB,eAAe,GAAG,SAAS,GAAG,IAAI,IAAI,QAAQ,KAAK;GAC7E,IAAI,MAAM,IAAI,OAAO,EAAE;AACvB,OAAI,cAAc;AACd,mBAAe;AACf,UAAM,IAAI,aAAa;;AAE3B,OAAI,MAAM,MAAM,QAAQ,OAAO,QAAQ,KACnC,gBAAe;YAEV,QAAQ,OAAO,QAAQ,IAC5B,cAAa;;AAGrB,SAAO;;;AAGf,SAAgB,WAAW,KAAK,YAAY;CACxC,MAAM,YAAY,IAAI,aAAa;AACnC,cAAa,cAAc;CAC3B,IAAI,eAAe;AACnB,MAAK,IAAI,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;EACjC,MAAM,WAAW,UAAU,OAAO,EAAE;EACpC,MAAM,YAAY,IAAI,OAAO,EAAE;AAC/B,MAAI,aAAa,aAAa,IAAI,EAC9B,iBAAgB,GAAG,aAAa,UAAU,OAAO,EAAE;MAGnD,iBAAgB;;AAGxB,QAAO;;AAEX,SAAgB,gBAAgB,GAAG;AAC/B,KAAI,MAAM,QAAQ,MAAM,OACpB,QAAO;AAEX,KAAI,OAAO,MAAM,SACb,QAAO;AAEX,KAAI,iBAAiB,KAAK,EAAE,CACxB,QAAO;AAEX,KAAI,SAAS,KAAK,EAAE,CAChB,QAAO;AACX,QAAO,4CAA4C,KAAK,EAAE;;;;;;;;;;ACzD9D,SAAgB,kBAAkB,WAAW;AACzC,KAAI,MAAM,QAAQ,UAAU,CACxB,QAAO,UAAU,KAAI,MAAK,OAAO,MAAM,WAAW,IAAI,KAAK,EAAE;AAEjE,aAAY,UAAU,MAAM;CAC5B,IAAI,IAAI;CACR,IAAI,QAAQ;CACZ,IAAI,IAAI;CACR,IAAI,UAAU;CACd,MAAM,OAAO,EAAE;AACf,MAAK,IAAI,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC1C,UAAQ;AACR,MAAI,UAAU,OAAO,GAAG;AAExB,MAAI,MAAM,OAAO,CAAC,SAAS;AACvB,OAAI,EAAE,UAAU,KACZ;AAEJ;;AAIJ,MAAI,MAAM,QACN,WAAU;YAEJ,MAAM,OAAO,MAAM,SAAQ,CAAC,QAClC,WAAU;AAEd,MAAI,CAAC,KAAK,GACN,MAAK,KAAK;AACd,OAAK,MAAM;;AAEf,QAAO;;;;;;;;;;ACjCX,IAAW;CACV,SAAU,2BAAyB;AAChC,2BAAwB,aAAa;AACrC,2BAAwB,YAAY;AACpC,2BAAwB,YAAY;AACpC,2BAAwB,WAAW;GACpC,4BAA4B,0BAA0B,EAAE,EAAE;;;;;;;;;ACF7D,IAAI;AACJ,IAAa,cAAb,MAAyB;CACrB,YAAY,QAAQ;AAChB,UAAQ;;CAEZ,MAAM,WAAW,SAAS;EACtB,MAAM,OAAO,OAAO,OAAO;GACvB,OAAO;GACP,OAAO;GACP,SAAS;GACT,QAAQ;GACR,eAAe;GACf,eAAe;GACf,QAAQ;GACR,OAAO;GACP,SAAS;GACT,WAAW;GACX,MAAM;GACN,WAAW;GACX,QAAQ;GACR,QAAQ;GACR,IAAI;GACJ,KAAK;GACR,EAAE,QAAQ;EAGX,MAAM,OAAO,kBAAkB,UAAU;EAGzC,MAAM,gBAAgB,OAAO,cAAc;EAE3C,MAAM,UAAU,eAAe,OAAO,OAAO,OAAO,OAAO,KAAK,EAAE,KAAK,MAAM,CAAC;EAC9E,MAAM,gBAAgB,OAAO,OAAO;GAChC,oBAAoB;GACpB,wBAAwB;GACxB,kBAAkB;GAClB,gBAAgB;GAChB,6BAA6B;GAC7B,4BAA4B;GAC5B,iBAAiB;GACjB,sBAAsB;GACtB,sBAAsB;GACtB,mBAAmB;GACnB,iBAAiB;GACjB,4BAA4B;GAC5B,cAAc;GACd,uBAAuB;GACvB,uBAAuB;GACvB,iBAAiB;GACjB,gBAAgB;GAChB,2BAA2B;GAC9B,EAAE,KAAK,cAAc;EACtB,MAAM,WAAW,OAAO,OAAO,OAAO,OAAO,KAAK,EAAE,KAAK,QAAQ;EACjE,MAAM,gBAAgB,KAAK,iBAAiB,EAAE;EAC9C,MAAM,YAAY,KAAK;EACvB,MAAM,iBAAiB,cAAc;EACrC,MAAM,eAAe,iBAAiB,OAAO;EAC7C,MAAM,aAAa,OAAO,OAAO,KAAK;EACtC,MAAM,YAAY,OAAO,OAAO,KAAK;EAErC,MAAM,KAAK,KAAK,MAAM,MAAM;EAC5B,MAAM,QAAQ;GACV,SAAS,OAAO,OAAO,KAAK;GAC5B,QAAQ,OAAO,OAAO,KAAK;GAC3B,OAAO,OAAO,OAAO,KAAK;GAC1B,SAAS,OAAO,OAAO,KAAK;GAC5B,SAAS,OAAO,OAAO,KAAK;GAC5B,QAAQ,OAAO,OAAO,KAAK;GAC3B,WAAW,OAAO,OAAO,KAAK;GAC9B,SAAS,OAAO,OAAO,KAAK;GAC5B,OAAO,OAAO,OAAO,KAAK;GAC1B,WAAW,OAAO,OAAO,KAAK;GAC9B,MAAM,EAAE;GACX;EACD,MAAM,WAAW;EACjB,MAAM,iCAAiB,IAAI,OAAO,QAAQ,cAAc,qBAAqB,OAAO;AACpF,IAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,SAAU,KAAK;GAC/D,MAAM,MAAM,OAAO,QAAQ,WAAW,IAAI,MAAM;GAEhD,MAAM,aAAa,OAAO,KAAK,IAAI,CAAC,IAAI,SAAU,OAAK;AAMnD,WALsB;KAClB,SAAS;KACT,QAAQ;KACR,QAAQ;KACX,CACoBC;KACvB,CAAC,OAAO,QAAQ,CAAC,KAAK;AAExB,OAAI,WACA,OAAM,YAAY,OAAO;AAE7B,SAAM,OAAO,OAAO;AACpB,SAAM,KAAK,KAAK,IAAI;IACtB;AACF,IAAE,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,SAAU,KAAK;AACjE,SAAM,MAAM,OAAO;AACnB,SAAM,KAAK,KAAK,IAAI;IACtB;AACF,IAAE,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,SAAU,KAAK;AAChE,SAAM,QAAQ,OAAO;AACrB,SAAM,KAAK,KAAK,IAAI;IACtB;AACF,IAAE,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,SAAU,KAAK;AAChE,SAAM,QAAQ,OAAO;AACrB,SAAM,KAAK,KAAK,IAAI;IACtB;AACF,IAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,SAAU,KAAK;AAC/D,SAAM,OAAO,OAAO;AACpB,SAAM,KAAK,KAAK,IAAI;IACtB;AACF,IAAE,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC,CAAC,OAAO,QAAQ,CAAC,QAAQ,SAAU,KAAK;AACnE,SAAM,UAAU,OAAO;AACvB,SAAM,KAAK,KAAK,IAAI;IACtB;AACF,MAAI,OAAO,KAAK,SAAS,SACrB,QAAO,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK,WAAW;AAChD,OAAI,OAAO,UAAU,UAAU;AAC3B,UAAM,MAAM,OAAO;AACnB,UAAM,KAAK,KAAK,IAAI;;IAE1B;AAEN,MAAI,OAAO,KAAK,WAAW,SACvB,QAAO,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW;AAClD,OAAI,OAAO,UAAU,YAAY;AAC7B,UAAM,UAAU,OAAO;AACvB,UAAM,KAAK,KAAK,IAAI;;IAE1B;AAEN,MAAI,OAAO,KAAK,WAAW,aACvB;OAAI,MAAM,QAAQ,KAAK,OAAO,IAAI,OAAO,KAAK,WAAW,SAErD,GAAE,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,QAAQ,CAAC,QAAQ,SAAU,KAAK;AAC1D,UAAM,QAAQ,OAAO;KACvB;YAEG,OAAO,KAAK,WAAW,SAC5B,QAAO,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,KAAK,WAAW;AAClD,QAAI,OAAO,UAAU,aAAa,OAAO,UAAU,WAC/C,OAAM,QAAQ,OAAO;KAE3B;;AAKV,gBAAc,KAAK,KAAK,SAAS,KAAK,SAAS,MAAM,OAAO;AAE5D,SAAO,KAAK,SAAS,CAAC,QAAQ,SAAU,KAAK;AACzC,IAAC,MAAM,QAAQ,QAAQ,EAAE,EAAE,QAAQ,SAAU,OAAO;AAChD,aAAS,SAAS,SAAS;KAC7B;IACJ;EACF,IAAI,QAAQ;AACZ,sBAAoB;EACpB,IAAI,WAAW,EAAE;EACjB,MAAMC,SAAO,OAAO,OAAO,OAAO,OAAO,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;EAI1D,MAAM,aAAa,EAAE;AACrB,OAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;GAClC,MAAM,MAAM,KAAK;GACjB,MAAM,eAAe,IAAI,QAAQ,UAAU,MAAM;GACjD,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;AAEJ,OAAI,QAAQ,QAAQ,KAAK,KAAK,IAAI,IAAI,qBAAqB,IAAI,CAC3D,gBAAe,IAAI;YAGd,aAAa,MAAM,aAAa,EAAE;AAEvC,mBAAe,IAAI;AACnB;cAGK,IAAI,MAAM,SAAS,IAAK,CAAC,cAAc,0BAA0B,IAAI,MAAM,QAAQ,EAAG;AAI3F,QAAI,IAAI,MAAM,yBAAyB;AAEvC,QAAI,MAAM,QAAQ,MAAM,QAAQ,EAAE,IAAI,EAAE,UAAU,EAC9C,KAAI,gBAAgB,EAAE,IAAI,MAAM,OAAO,CACnC,KAAI,SAAS,GAAG,EAAE,IAAI,MAAM,EAAE,GAAG;aAE5B,gBAAgB,EAAE,IAAI,MAAM,MAAM,KAAK,MAE5C,KAAI,SAAS,GAAG,EAAE,IAAI,MAAM,EAAE,GAAG;QAGjC,QAAO,EAAE,IAAI,EAAE,IAAI,KAAK;cAI3B,IAAI,MAAM,eAAe,IAAI,cAAc,qBAAqB;AACrE,QAAI,IAAI,MAAM,eAAe;AAC7B,QAAI,MAAM,QAAQ,MAAM,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG;AACjD,WAAM,EAAE;AACR,YAAO,KAAK,gBAAgB,KAAK,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,MAAM;;cAIhE,IAAI,MAAM,QAAQ,IAAK,CAAC,cAAc,0BAA0B,IAAI,MAAM,UAAU,EAAG;AAC5F,QAAI,IAAI,MAAM,WAAW;AACzB,QAAI,MAAM,QAAQ,MAAM,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG;AACjD,WAAM,EAAE;AACR,SAAI,gBAAgB,KAAK,MAAM,OAAO,CAElC,KAAI,SAAS,GAAG,KAAK,KAAK;cAErB,gBAAgB,KAAK,MAAM,MAAM,KAAK,MAG3C,KAAI,SAAS,GAAG,KAAK,KAAK;UAEzB;AACD,aAAO,KAAK,IAAI;AAChB,UAAI,SAAS,WAAc,CAAC,KAAK,MAAM,KAAK,IACxC,KAAK,MAAM,SAAS,KACpB,CAAC,gBAAgB,KAAK,MAAM,MAAM,IAClC,CAAC,gBAAgB,KAAK,MAAM,OAAO,EAAE;AACrC,cAAO,KAAK,KAAK;AACjB;iBAEK,iBAAiB,KAAK,KAAK,EAAE;AAClC,cAAO,KAAK,KAAK;AACjB;YAGA,QAAO,KAAK,aAAa,IAAI,CAAC;;;cAMrC,IAAI,MAAM,WAAW,EAAE;AAC5B,QAAI,IAAI,MAAM,uBAAuB;AACrC,QAAI,MAAM,QAAQ,MAAM,QAAQ,EAAE,IAAI,EAAE,UAAU,EAC9C,QAAO,EAAE,IAAI,EAAE,GAAG;cAIjB,IAAI,MAAM,UAAU,IAAI,CAAC,IAAI,MAAM,SAAS,EAAE;AACnD,WAAO,KAAK,IAAI;AAChB,QAAI,IAAI,MAAM,YAAY;AAC1B,QAAI,MAAM,QAAQ,MAAM,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG;AACjD,WAAM,EAAE;AACR,SAAI,SAAS,UAAa,CAAC,KAAK,MAAM,KAAK,IACvC,CAAC,gBAAgB,KAAK,MAAM,MAAM,IAClC,CAAC,gBAAgB,KAAK,MAAM,OAAO,EAAE;AACrC,aAAO,KAAK,KAAK;AACjB;WAGA,QAAO,KAAK,aAAa,IAAI,CAAC;;cAIjC,IAAI,MAAM,UAAU,IAAI,CAAC,IAAI,MAAM,SAAS,EAAE;AACnD,cAAU,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG;AACpC,aAAS;AACT,SAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,YAAO,IAAI,MAAM,IAAI,EAAE;AACvB,SAAI,QAAQ,IAAI,MAAM,QAAQ,IAAI,OAAO,KAAK;AAC1C,cAAQ,IAAI,MAAM,IAAI,EAAE;AACxB,YAAM,QAAQ;AACd,UAAI,gBAAgB,KAAK,MAAM,OAAO,CAElC,KAAI,SAAS,GAAG,KAAK,MAAM,MAAM;eAE5B,gBAAgB,KAAK,MAAM,MAAM,KAAK,MAE3C,KAAI,SAAS,GAAG,KAAK,MAAM,MAAM;UAGjC,QAAO,KAAK,MAAM;AAEtB,eAAS;AACT;;AAEJ,SAAI,SAAS,KAAK;AACd,aAAO,QAAQ,IAAI,KAAK;AACxB;;AAGJ,SAAI,WAAW,KAAK,QAAQ,GAAG,IAC3B,2BAA2B,KAAK,KAAK,IACrC,gBAAgB,MAAM,MAAM,MAAM,KAAK,OAAO;AAC9C,aAAO,QAAQ,IAAI,KAAK;AACxB,eAAS;AACT;;AAEJ,SAAI,QAAQ,IAAI,MAAM,QAAQ,IAAI,GAAG,MAAM,KAAK,EAAE;AAC9C,aAAO,QAAQ,IAAI,KAAK;AACxB,eAAS;AACT;WAGA,QAAO,QAAQ,IAAI,aAAa,QAAQ,GAAG,CAAC;;AAGpD,UAAM,IAAI,MAAM,GAAG,CAAC;AACpB,QAAI,CAAC,UAAU,QAAQ,IACnB,KAAI,gBAAgB,KAAK,MAAM,OAAO,CAElC,KAAI,SAAS,GAAG,KAAK,KAAK;aAErB,gBAAgB,KAAK,MAAM,MAAM,KAAK,MAG3C,KAAI,SAAS,GAAG,KAAK,KAAK;SAEzB;AACD,YAAO,KAAK,IAAI;AAChB,SAAI,SAAS,WAAc,CAAC,cAAc,KAAK,KAAK,IAChD,KAAK,MAAM,SAAS,KACpB,CAAC,gBAAgB,KAAK,MAAM,MAAM,IAClC,CAAC,gBAAgB,KAAK,MAAM,OAAO,EAAE;AACrC,aAAO,KAAK,KAAK;AACjB;gBAEK,iBAAiB,KAAK,KAAK,EAAE;AAClC,aAAO,KAAK,KAAK;AACjB;WAGA,QAAO,KAAK,aAAa,IAAI,CAAC;;cAKrC,IAAI,MAAM,WAAW,IAC1B,IAAI,MAAM,SAAS,IACnB,gBAAgB,IAAI,MAAM,EAAE,EAAE,MAAM,MAAM,EAAE;AAE5C,UAAM,IAAI,MAAM,EAAE;AAClB,WAAO,KAAK,aAAa,IAAI,CAAC;cAEzB,QAAQ,MAAM;AACnB,eAAW,KAAK,MAAM,IAAI,EAAE;AAC5B;cAEK,cAAc,uBAAuB;AAC1C,eAAW,KAAK,MAAM,EAAE;AACxB;SAGA,gBAAe,IAAI;;AAS3B,eAAaA,QAAM,KAAK;AACxB,eAAaA,QAAM,MAAM;AACzB,YAAUA,OAAK;AACf,oBAAkB;AAClB,0BAAwBA,QAAM,MAAM,SAAS,UAAU,KAAK;AAC5D,iBAAeA,OAAK;AACpB,MAAI,cAAc,uBACd,oBAAmBA,OAAK;AAE5B,SAAO,KAAK,MAAM,OAAO,CAAC,QAAQ,SAAU,KAAK;AAC7C,OAAI,CAAC,OAAOA,QAAM,IAAI,MAAM,IAAI,CAAC,CAC7B,QAAO,KAAK,EAAE;IACpB;AAEF,MAAI,kBAAkB,SAAS,OAC3B,QAAK,gBAAgB,EAAE;AAC3B,WAAS,QAAQ,SAAU,KAAK;AAC5B,UAAK,cAAc,KAAK,IAAI;IAC9B;AACF,MAAI,cAAc,2BAA2B,cAAc,gBACvD,QAAO,KAAKA,OAAK,CAAC,QAAO,QAAO,QAAQ,QAAQ,IAAI,SAAS,IAAI,CAAC,CAAC,SAAQ,QAAO;AAC9E,UAAOA,OAAK;IACd;AAEN,MAAI,cAAc,iBAEd,GAAE,CAAC,OAAO,GAAG,OAAO,KAAK,QAAQ,CAAC,KAAI,MAAK,QAAQ,GAAG,CAAC,CAAC,SAAQ,UAAS;AACrE,OAAI,cAAc,2BAA2B,MAAM,SAAS,IAAI,CAC5D,QAAOA,OAAK,MAAM,MAAM,IAAI,CAAC,KAAI,SAAQ,UAAU,KAAK,CAAC,CAAC,KAAK,IAAI;AAEvE,UAAOA,OAAK;IACd;EAGN,SAAS,eAAe,KAAK;GACzB,MAAM,qBAAqB,kBAAkB,KAAK,IAAI;AACtD,OAAI,OAAO,uBAAuB,YAAY,OAAO,uBAAuB,SACxE,QAAK,EAAE,KAAK,mBAAmB;;EAKvC,SAAS,SAAS,GAAG,KAAK,QAAM,mBAAmB;GAC/C,IAAI;GACJ,IAAI,QAAQ,gBAAgB,KAAK,MAAM,MAAM;AAG7C,WAAQ,OAAO,UAAU,YAAY,MAAM,MAAM,GAAG,IAAI;AACxD,OAAI,UAAU,GAAG;AACb,QAAI,CAAC,YAAY,kBAAkB,CAC/B,SAAQ,MAAM,GAAG,+BAA+B,IAAI,CAAC;AAEzD,WAAO,KAAK,aAAa,IAAI,CAAC;AAC9B,WAAO;;GAEX,IAAI,YAAY,YAAY,kBAAkB,GAAG,IAAI;AACrD,OAAI,cAAc,uBAAuB;AAErC,QAAIC,OAAK,UAAU,IAAI,KAAK,YAAY,MACpC,SAAQ,MAAM,GAAG,sCAAsC,IAAI,CAAC;AAEhE,gBAAY;UAEX;AAGD,SAAK,KAAK,IAAI,GAAG,KAAKA,OAAK,QAAQ,KAC/B,KAAI,CAACA,OAAK,IAAI,MAAM,WAAW,IAAIA,OAAK,IAAI,MAAM,SAAS,IAAI,qBAAqBA,OAAK,IAAI,CACzF;QAEA;AAER,QAAI,YAAY,MACZ,SAAQ,MAAM,GAAG,sCAAsC,IAAI,CAAC;;GAEpE,IAAI,WAAW,KAAK,IAAI,WAAW,MAAM;AACzC,OAAI,CAAC,YAAY,kBAAkB,IAAI,WAAW,GAAG;AACjD,WAAO,KAAK,kBAAkB;AAC9B;;AAEJ,QAAK,KAAK,IAAI,GAAG,KAAM,WAAW,IAAI,GAAI,KACtC,QAAO,KAAKA,OAAK,IAAI;AAEzB,UAAQ,IAAI;;EAKhB,SAAS,SAAS,GAAG,KAAK,QAAM,mBAAmB;GAC/C,IAAI,YAAY,EAAE;GAClB,IAAI,OAAO,qBAAqBA,OAAK,IAAI;GAEzC,MAAM,aAAa,gBAAgB,KAAK,MAAM,MAAM;AACpD,OAAI,gBAAgB,KAAK,MAAM,MAAM,IAAI,CAAE,iBAAiB,KAAK,KAAK,CAClE,WAAU,KAAK,KAAK;YAEf,YAAY,KAAK,IACrB,YAAY,kBAAkB,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,qBAAqB,KAAK,EAGzG;QAAI,SAAS,SAAS,QAAW;KAC7B,MAAM,SAAS,SAAS;AACxB,iBAAY,MAAM,QAAQ,OAAO,GAAG,SAAS,CAAC,OAAO;;UAGxD;AAED,QAAI,CAAC,YAAY,kBAAkB,CAC/B,WAAU,KAAK,aAAa,KAAK,mBAAmB,KAAK,CAAC;AAE9D,SAAK,IAAI,KAAK,IAAI,GAAG,KAAKA,OAAK,QAAQ,MAAM;AACzC,SAAK,CAAC,cAAc,oBAAoB,UAAU,SAAS,KACtD,cAAc,OAAO,eAAe,YAAY,UAAU,UAAU,WACrE;AACJ,YAAOA,OAAK;AACZ,SAAI,KAAK,KAAK,KAAK,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,qBAAqB,KAAK,CACtE;AACJ,SAAI;AACJ,eAAU,KAAK,aAAa,KAAK,MAAM,cAAc,CAAC;;;AAM9D,OAAI,OAAO,eAAe,aAAc,cAAc,UAAU,SAAS,cACpE,MAAM,WAAW,IAAI,UAAU,WAAW,GAC3C,SAAQ,MAAM,GAAG,sCAAsC,IAAI,CAAC;AAEhE,UAAO,KAAK,UAAU;AACtB,UAAO;;EAEX,SAAS,OAAO,KAAK,KAAK,oBAAoB,eAAe;AACzD,OAAI,IAAI,KAAK,IAAI,IAAI,cAAc,wBAI/B,aAAY,KAHE,IAAI,MAAM,IAAI,CAAC,IAAI,SAAU,MAAM;AAC7C,WAAO,UAAU,KAAK;KACxB,CAAC,KAAK,IAAI,CACW;GAE3B,MAAM,QAAQ,aAAa,KAAK,KAAK,kBAAkB;GACvD,MAAM,WAAW,IAAI,MAAM,IAAI;AAC/B,UAAOD,QAAM,UAAU,MAAM;AAE7B,OAAI,MAAM,QAAQ,KACd,OAAM,QAAQ,KAAK,QAAQ,SAAU,GAAG;AAEpC,WAAOA,QADe,EAAE,MAAM,IAAI,EACN,MAAM;KACpC;AAGN,OAAI,SAAS,SAAS,KAAK,cAAc,gBAErC,EAAC,MAAM,QAAQ,SAAS,OAAO,EAAE,EAAE,QAAQ,SAAU,GAAG;IACpD,IAAI,gBAAgB,EAAE,MAAM,IAAI;IAEhC,MAAM,IAAI,EAAE,CAAC,OAAO,SAAS;AAC7B,MAAE,OAAO;AACT,oBAAgB,cAAc,OAAO,EAAE;AAGvC,QAAI,EAAE,MAAM,QAAQ,QAAQ,EAAE,EAAE,SAAS,cAAc,KAAK,IAAI,CAAC,CAC7D,QAAOA,QAAM,eAAe,MAAM;KAExC;AAGN,OAAI,gBAAgB,KAAK,MAAM,UAAU,IAAI,CAAC,gBAAgB,KAAK,MAAM,OAAO,CAE5E,CADa,CAAC,IAAI,CAAC,OAAO,MAAM,QAAQ,QAAQ,EAAE,CAAC,CAC9C,QAAQ,SAAU,OAAK;AACxB,WAAO,eAAe,YAAYD,OAAK;KACnC,YAAY;KACZ,MAAM;AACF,aAAO;;KAEX,IAAI,SAAO;AACP,YAAM,OAAOG,YAAU,WAAW,MAAM,UAAUA,QAAM,GAAGA;;KAElE,CAAC;KACJ;;EAGV,SAAS,YAAY,KAAK,OAAO;AAC7B,OAAI,EAAE,MAAM,QAAQ,QAAQ,MAAM,QAAQ,KAAK,SAAS;AACpD,UAAM,QAAQ,OAAO,CAAC,MAAM;AAC5B,eAAW,SAAS;;AAExB,OAAI,EAAE,MAAM,QAAQ,UAAU,MAAM,QAAQ,OAAO,QAC/C,aAAY,OAAO,IAAI;;EAG/B,SAAS,aAAa,KAAK,KAAK,mBAAmB;AAE/C,OAAI,kBACA,OAAM,YAAY,IAAI;AAG1B,OAAI,gBAAgB,KAAK,MAAM,MAAM,IAAI,gBAAgB,KAAK,MAAM,OAAO,EACvE;QAAI,OAAO,QAAQ,SACf,OAAM,QAAQ;;GAEtB,IAAI,QAAQ,MAAM,QAAQ,IAAI,GACxB,IAAI,IAAI,SAAU,GAAG;AAAE,WAAO,kBAAkB,KAAK,EAAE;KAAI,GAC3D,kBAAkB,KAAK,IAAI;AAEjC,OAAI,gBAAgB,KAAK,MAAM,OAAO,KAAK,YAAY,MAAM,IAAI,OAAO,UAAU,WAC9E,SAAQ,WAAW;AAGvB,OAAI,gBAAgB,KAAK,MAAM,UAAU,IAAI,gBAAgB,KAAK,MAAM,OAAO,CAC3E,KAAI,MAAM,QAAQ,IAAI,CAClB,SAAQ,IAAI,KAAK,UAAQ;AAAE,WAAO,MAAM,UAAUC,MAAI;KAAI;OAE1D,SAAQ,MAAM,UAAU,IAAI;AAEpC,UAAO;;EAEX,SAAS,kBAAkB,KAAK,OAAO;AACnC,OAAI,CAAC,cAAc,+BAA+B,QAAQ,IACtD,QAAO;AACX,OAAI,CAAC,gBAAgB,KAAK,MAAM,QAAQ,IAAI,CAAC,gBAAgB,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,QAAQ,MAAM,EAEnG;QAD2B,gBAAgB,MAAM,IAAI,cAAc,oBAAqB,OAAO,cAAc,KAAK,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,IACrH,CAAC,YAAY,MAAM,IAAI,gBAAgB,KAAK,MAAM,QAAQ,CACjF,SAAQ,OAAO,MAAM;;AAG7B,UAAO;;EAIX,SAAS,UAAU,QAAM;GACrB,MAAM,eAAe,OAAO,OAAO,KAAK;AAGxC,2BAAwB,cAAc,MAAM,SAAS,SAAS;AAC9D,UAAO,KAAK,MAAM,QAAQ,CAAC,QAAQ,SAAU,WAAW;IACpD,MAAM,aAAaH,OAAK,cAAc,aAAa;AACnD,QAAI,WACA,KAAI;KACA,IAAI,SAAS;KACb,MAAM,qBAAqB,MAAM,QAAQ,MAAM,KAAK,EAAE,WAAW;KACjE,MAAM,gBAAgB,MAAM,QAAQ;AACpC,SAAI,OAAO,kBAAkB,YAAY;AACrC,UAAI;AACA,gBAAS,cAAc,mBAAmB;eAEvC,GAAG;AACN,gBAAS;;AAEb,UAAI,kBAAkB,OAAO;AACzB,eAAQ;AACR;;WAIJ,UAAS,MAAM,QAAQ,mBAAmB;AAE9C,qBAAgB,OAAO;aAEpB,IAAI;AAGP,SAAI,GAAG,SAAS,mBACZ,SAAQ;cACHA,OAAK,WACV,SAAQ,MAAM,GAAG,gCAAgC,WAAW,CAAC;;KAG3E;;EAIN,SAAS,gBAAgB,QAAQ,MAAM;AACnC,UAAO,KAAK,OAAO,CAAC,QAAQ,SAAU,KAAK;IACvC,MAAM,QAAQ,OAAO;IACrB,MAAM,UAAU,OAAO,OAAO,MAAM,MAAM;AAI1C,QAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM,IAAI,cAAc,gBAEtF,iBAAgB,OAAO,QAAQ;aAK3B,CAAC,OAAOA,QAAM,QAAQ,MAAM,IAAI,CAAC,IAAK,gBAAgB,SAAS,MAAM,OAAO,IAAI,cAAc,kBAC9F,QAAO,SAAS,MAAM;KAGhC;;EAGN,SAAS,mBAAmB;AACxB,OAAI,OAAO,kBAAkB,YACzB,eAAc,QAAQ,SAAU,cAAc;AAC1C,oBAAgB,aAAa;KAC/B;;EAGV,SAAS,aAAa,QAAM,YAAY;AACpC,OAAI,OAAO,cAAc,YACrB;GACJ,MAAM,SAAS,OAAO,cAAc,WAAW,YAAY;GAC3D,MAAMI,QAAM,MAAM,KAAK;AACvB,UAAO,KAAKA,MAAI,CAAC,QAAQ,SAAU,QAAQ;AACvC,QAAI,WAAW,MAAM,OAAO,YAAY,QAAQ,EAAE,KAAK,GAAG;KAEtD,MAAM,OAAO,OAAO,MAAM,KAAK,CAAC,IAAI,SAAU,KAAK,GAAG;AAClD,UAAI,MAAM,EACN,OAAM,IAAI,UAAU,OAAO,OAAO;AAEtC,aAAO,UAAU,IAAI;OACvB;AACF,UAAM,cAAc,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAM,CAAC,eAAe,CAAC,OAAOJ,QAAM,KAAK,CACrF,QAAO,KAAK,KAAK,IAAI,EAAEI,MAAI,QAAQ;;KAG7C;;EAEN,SAAS,eAAe,QAAM;GAC1B,IAAI;GACJ,MAAM,0BAAU,IAAI,KAAK;AACzB,UAAO,KAAKJ,OAAK,CAAC,QAAQ,SAAU,KAAK;AACrC,QAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AACnB,cAAS,gBAAgB,KAAK,MAAM,UAAU;AAC9C,SAAI,OAAO,WAAW,WAClB,KAAI;MACA,MAAM,QAAQ,kBAAkB,KAAK,OAAOA,OAAK,KAAK,CAAC;AACvD,MAAC,EAAE,CAAC,OAAO,MAAM,QAAQ,QAAQ,EAAE,EAAE,IAAI,CAAE,SAAQ,QAAO;AACtD,eAAQ,IAAI,IAAI;AAChB,cAAK,OAAO;QACd;cAEC,KAAK;AACR,cAAQ;;;KAItB;;EAEN,SAAS,mBAAmB,QAAM;AAC9B,SAAM,KAAK,SAAS,QAAQ;AAExB,QAAI,CAAC,IAAI,QAAQ,IAAI,CACjB;AACJ,QAAI,OAAOA,OAAK,SAAS,YACrB,QAAK,OAAO;KAClB;AACF,UAAOA;;EAEX,SAAS,wBAAwB,KAAK,WAAS,YAAU,SAAS,OAAO;AACrE,UAAO,KAAKK,WAAS,CAAC,QAAQ,SAAU,KAAK;AACzC,QAAI,CAAC,OAAO,KAAK,IAAI,MAAM,IAAI,CAAC,EAAE;AAC9B,YAAO,KAAK,IAAI,MAAM,IAAI,EAAEA,WAAS,KAAK;AAC1C,SAAI,OACA,WAAU,OAAO;AACrB,MAACC,UAAQ,QAAQ,EAAE,EAAE,QAAQ,SAAU,GAAG;AACtC,UAAI,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,CACzB;AACJ,aAAO,KAAK,EAAE,MAAM,IAAI,EAAED,WAAS,KAAK;OAC1C;;KAER;;EAEN,SAAS,OAAO,KAAK,MAAM;GACvB,IAAI,IAAI;AACR,OAAI,CAAC,cAAc,gBACf,QAAO,CAAC,KAAK,KAAK,IAAI,CAAC;AAC3B,QAAK,MAAM,GAAG,GAAG,CAAC,QAAQ,SAAU,OAAK;AACrC,QAAK,EAAEN,UAAQ,EAAE;KACnB;GACF,MAAM,MAAM,KAAK,KAAK,SAAS;AAC/B,OAAI,OAAO,MAAM,SACb,QAAO;OAEP,QAAO,OAAO;;EAEtB,SAAS,OAAO,KAAK,MAAM,OAAO;GAC9B,IAAI,IAAI;AACR,OAAI,CAAC,cAAc,gBACf,QAAO,CAAC,KAAK,KAAK,IAAI,CAAC;AAC3B,QAAK,MAAM,GAAG,GAAG,CAAC,QAAQ,SAAU,OAAK;AAGrC,YAAM,YAAYA,MAAI;AACtB,QAAI,OAAO,MAAM,YAAY,EAAEA,WAAS,OACpC,GAAEA,SAAO,EAAE;AAEf,QAAI,OAAO,EAAEA,WAAS,YAAY,MAAM,QAAQ,EAAEA,OAAK,EAAE;AAErD,SAAI,MAAM,QAAQ,EAAEA,OAAK,CACrB,GAAEA,OAAK,KAAK,EAAE,CAAC;SAGf,GAAEA,SAAO,CAAC,EAAEA,QAAM,EAAE,CAAC;AAGzB,SAAI,EAAEA,OAAK,EAAEA,OAAK,SAAS;UAG3B,KAAI,EAAEA;KAEZ;GAGF,MAAM,MAAM,YAAY,KAAK,KAAK,SAAS,GAAG;GAC9C,MAAM,cAAc,gBAAgB,KAAK,KAAK,IAAI,EAAE,MAAM,OAAO;GACjE,MAAM,eAAe,MAAM,QAAQ,MAAM;GACzC,IAAI,YAAY,cAAc;AAE9B,OAAI,CAAC,aAAa,gBAAgB,KAAK,MAAM,MAAM,EAAE;AACjD,gBAAY;AACZ,QAAK,CAAC,YAAY,EAAE,KAAK,IAAI,MAAM,MAAM,SAAS,KAAO,MAAM,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,WAAW,MAAM,MAAM,KAC5G,GAAE,OAAO;;AAGjB,OAAI,UAAU,WAAW,CACrB,GAAE,OAAO,UAAU,EAAE,KAAK;YAErB,MAAM,QAAQ,EAAE,KAAK,CAC1B,KAAI,aAAa,eAAe,aAC5B,GAAE,OAAO,cAAc,8BAA8B,EAAE,KAAK,OAAO,MAAM,IAAI,MAAM,QAAQ,EAAE,KAAK,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YAErI,CAAC,aAAa,QAAQ,YAAY,KAAK,QAAQ,aAAa,CACjE,GAAE,OAAO;OAGT,GAAE,OAAO,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC;YAG9B,EAAE,SAAS,UAAa,YAC7B,GAAE,OAAO,eAAe,QAAQ,CAAC,MAAM;YAElC,aAAa,EAAE,EAAE,SAAS,UAC/B,gBAAgB,KAAK,MAAM,OAAO,IAClC,gBAAgB,KAAK,MAAM,MAAM,EACjC,GAAE,OAAO,CAAC,EAAE,MAAM,MAAM;OAGxB,GAAE,OAAO;;EAIjB,SAAS,cAAc,GAAGE,QAAM;AAC5B,UAAK,QAAQ,SAAU,KAAK;AACxB,WAAO,KAAK,OAAO,EAAE,CAAC,CAAC,QAAQ,SAAU,KAAK;AAI1C,SAAI,MAAM,QAAQ,KACd;AACJ,WAAM,QAAQ,OAAO,EAAE,CAAC,OAAO,QAAQ,QAAQ,EAAE,CAAC;AAElD,WAAM,QAAQ,KAAK,OAAO,IAAI,CAAC,QAAQ,SAAU,GAAG;AAChD,UAAI,IAAI,KAAK,EAAE,IAAI,cAAc,yBAAyB;OACtD,MAAM,IAAI,UAAU,EAAE;AACtB,WAAI,MAAM,OAAO,MAAM,QAAQ,KAAK,QAAQ,EAAE,KAAK,IAAI;AACnD,cAAM,QAAQ,KAAK,KAAK,EAAE;AAC1B,mBAAW,KAAK;;;OAG1B;AAEF,WAAM,QAAQ,KAAK,OAAO,IAAI,CAAC,QAAQ,SAAU,GAAG;AAChD,UAAI,EAAE,SAAS,KAAK,QAAQ,KAAK,EAAE,IAAI,cAAc,yBAAyB;OAC1E,MAAM,IAAI,WAAW,GAAG,IAAI;AAC5B,WAAI,MAAM,OAAO,MAAM,QAAQ,KAAK,QAAQ,EAAE,KAAK,IAAI;AACnD,cAAM,QAAQ,KAAK,KAAK,EAAE;AAC1B,mBAAW,KAAK;;;OAG1B;AACF,WAAM,QAAQ,KAAK,QAAQ,SAAU,GAAG;AACpC,YAAM,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,MAAM,QAAQ,KAAK,OAAO,SAAU,GAAG;AACnE,cAAO,MAAM;QACf,CAAC;OACL;MACJ;KACJ;;EAEN,SAAS,gBAAgB,KAAK,MAAM;GAChC,MAAM,UAAU,EAAE,CAAC,OAAO,MAAM,QAAQ,QAAQ,EAAE,EAAE,IAAI;GACxD,MAAM,OAAO,OAAO,KAAK,KAAK;GAC9B,MAAM,WAAW,QAAQ,MAAK,UAAO,KAAK,SAASF,MAAI,CAAC;AACxD,UAAO,WAAW,KAAK,YAAY;;EAEvC,SAAS,WAAW,KAAK;GACrB,MAAM,YAAY,OAAO,KAAK,MAAM;AAEpC,UADgB,EAAE,CAAC,OAAO,UAAU,KAAI,MAAK,MAAM,GAAG,CAAC,CACxC,KAAK,SAAU,MAAM;AAChC,WAAO,MAAM,QAAQ,KAAK,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK;KACzD;;EAEN,SAAS,iBAAiB,KAAK,GAAG,UAAU;AAExC,UADgB,EAAE,CAAC,OAAO,GAAG,SAAS,CACvB,KAAK,SAAU,SAAS;IACnC,MAAM,QAAQ,IAAI,MAAM,QAAQ;AAChC,WAAO,SAAS,WAAW,MAAM,GAAG;KACtC;;EAGN,SAAS,iBAAiB,KAAK;AAE3B,OAAI,IAAI,MAAM,SAAS,IAAI,CAAC,IAAI,MAAM,UAAU,CAC5C,QAAO;GAEX,IAAI,cAAc;GAClB,IAAI;GACJ,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC,MAAM,GAAG;AACtC,QAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,WAAO,IAAI,MAAM,IAAI,EAAE;AACvB,QAAI,CAAC,WAAW,QAAQ,GAAG,EAAE;AACzB,mBAAc;AACd;;AAEJ,QAAK,QAAQ,IAAI,MAAM,QAAQ,IAAI,OAAO,OACtC,SAAS,OACR,WAAW,KAAK,QAAQ,GAAG,IAAI,2BAA2B,KAAK,KAAK,IACpE,QAAQ,IAAI,MAAM,QAAQ,IAAI,GAAG,MAAM,KAAK,CAC7C;;AAGR,UAAO;;EAEX,SAAS,qBAAqB,KAAK;AAC/B,UAAO,cAAc,8BAA8B,gBAAgB,IAAI;;EAE3E,SAAS,gBAAgB,KAAK;AAC1B,SAAM,IAAI,QAAQ,UAAU,KAAK;AAEjC,OAAI,IAAI,MAAM,SAAS,CACnB,QAAO;AAGX,OAAI,iBAAiB,IAAI,CACrB,QAAO;AAaX,UAAO,CAAC,iBAAiB,KAVF,wBAUuB,gBAR3B,gBAEQ,iBAEA,mBAEW,oBAE0G;;EAIpJ,SAAS,aAAa,KAAK;AACvB,OAAI,CAAC,gBAAgB,KAAK,MAAM,MAAM,IAClC,CAAC,gBAAgB,KAAK,MAAM,OAAO,IACnC,GAAG,SAAS,SACZ,QAAO,SAAS;OAGhB,QAAO,eAAeQ,YAAU,IAAI,CAAC;;EAI7C,SAAS,eAAe,MAAM;AAO1B,UANY;KACP,wBAAwB,UAAU;KAClC,wBAAwB,SAAS;KACjC,wBAAwB,SAAS;KACjC,wBAAwB,QAAQ,EAAE;IACtC,CACU;;EAGf,SAASA,YAAU,KAAK;GACpB,IAAI,OAAO,wBAAwB;AACnC,OAAI,gBAAgB,KAAK,MAAM,QAAQ,CACnC,QAAO,wBAAwB;YAC1B,gBAAgB,KAAK,MAAM,QAAQ,CACxC,QAAO,wBAAwB;YAC1B,gBAAgB,KAAK,MAAM,MAAM,CACtC,QAAO,wBAAwB;YAC1B,gBAAgB,KAAK,MAAM,OAAO,CACvC,QAAO,wBAAwB;AACnC,UAAO;;EAEX,SAAS,YAAY,KAAK;AACtB,UAAO,QAAQ;;EAGnB,SAAS,qBAAqB;AAE1B,UAAO,KAAK,MAAM,OAAO,CAAC,MAAK,QAAO;AAClC,QAAI,gBAAgB,KAAK,MAAM,OAAO,EAAE;AACpC,aAAQ,MAAM,GAAG,8DAA8D,IAAI,CAAC;AACpF,YAAO;eAEF,gBAAgB,KAAK,MAAM,MAAM,EAAE;AACxC,aAAQ,MAAM,GAAG,6DAA6D,IAAI,CAAC;AACnF,YAAO;;AAEX,WAAO;KACT;;AAEN,SAAO;GACH,SAAS,OAAO,OAAO,EAAE,EAAE,MAAM,QAAQ;GACzC,MAAM,OAAO,OAAO,YAAYP,OAAK;GACtB;GACf,WAAW,OAAO,OAAO,EAAE,EAAE,UAAU;GAChC;GACP,YAAY,OAAO,OAAO,EAAE,EAAE,WAAW;GAC5C;;;AAKT,SAAS,eAAe,SAAS;CAC7B,MAAM,cAAc,EAAE;CACtB,MAAM,WAAW,OAAO,OAAO,KAAK;CACpC,IAAI,SAAS;AAGb,QAAO,KAAK,QAAQ,CAAC,QAAQ,SAAU,KAAK;AACxC,cAAY,KAAK,EAAE,CAAC,OAAO,QAAQ,MAAM,IAAI,CAAC;GAChD;AAGF,QAAO,QAAQ;AACX,WAAS;AACT,OAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,IACpC,MAAK,IAAI,KAAK,IAAI,GAAG,KAAK,YAAY,QAAQ,KAI1C,KAHkB,YAAY,GAAG,OAAO,SAAU,GAAG;AACjD,UAAO,YAAY,IAAI,QAAQ,EAAE,KAAK;IACxC,CACY,QAAQ;AAClB,eAAY,KAAK,YAAY,GAAG,OAAO,YAAY,IAAI;AACvD,eAAY,OAAO,IAAI,EAAE;AACzB,YAAS;AACT;;;AAOhB,aAAY,QAAQ,SAAU,YAAY;AACtC,eAAa,WAAW,OAAO,SAAU,GAAG,GAAG,MAAM;AACjD,UAAO,KAAK,QAAQ,EAAE,KAAK;IAC7B;EACF,MAAM,YAAY,WAAW,KAAK;AAClC,MAAI,cAAc,UAAa,OAAO,cAAc,SAChD,UAAS,aAAa;GAE5B;AACF,QAAO;;AAKX,SAAS,UAAU,MAAM;AACrB,QAAO,SAAS,SAAY,OAAO,IAAI;;AAI3C,SAAS,YAAY,KAAK;AACtB,KAAI,QAAQ,YACR,QAAO;AACX,QAAO;;AAEX,SAAS,YAAY,KAAK;AACtB,QAAQ,OAAO,QAAQ,aAClB,IAAI,OAAO,OAAO,IAAI,OAAO,SAC9B,IAAI,IAAI,SAAS,OAAO,IAAI,KAC1B,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,GAChC;;;;;;;;;;;;AC7gCV,IAAI,IAAI,IAAI;AAUZ,MAAM,iBAAkB,WAAW,QAAQ,OAAO,QAAQ,IAAI,yBACxD,OAAO,QAAQ,IAAI,uBAAuB,GAC1C;AACN,MAAM,eAAe,MAAM,KAAK,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,cAAc,QAAQ,OAAO,KAAK,IAAI,KAAK,IAAI,GAAG,UAAU,QAAQ,OAAO,KAAK,IAAI,MAAM,KAAK,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,aAAa,QAAQ,OAAO,KAAK,IAAI,KAAK,IAAI,GAAG,MAAM,EAAE;AAC5S,IAAI,aAEA;KADc,OAAO,YAAY,MAAM,WAAW,CAAC,GAAG,GAC1C,eACR,OAAM,MAAM,sDAAsD,eAAe,oGAAoG;;AAI7L,MAAM,MAAM,UAAU,QAAQ,MAAM,EAAE;AACtC,MAAMQ,YAAU,gBAAgB,cAAc,OAAO,KAAK,IAAI,GAAG;AACjE,MAAM,SAAS,IAAI,YAAY;CAC3B,KAAK,QAAQ;CACb,WAAW;AACP,SAAO;;CAEX;CACA;CACA;CACA,UAAU,SAAS;AACf,MAAI,OAAOA,cAAY,YACnB,QAAOA,UAAQ,KAAK;WAEf,KAAK,MAAM,UAAU,CAE1B,QAAO,KAAK,MAAM,aAAa,MAAM,OAAO,CAAC;MAG7C,OAAM,MAAM,+CAA+C;;CAGtE,CAAC;AACF,MAAM,cAAc,SAAS,OAAO,MAAM,MAAM;AAE5C,QADe,OAAO,MAAM,KAAK,OAAO,EAAE,KAAK,CACjC;;AAElB,YAAY,WAAW,SAAU,MAAM,MAAM;AACzC,QAAO,OAAO,MAAM,KAAK,OAAO,EAAE,KAAK;;AAE3C,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,kBAAe;;;;AC7Df,SAAS,yBAAyB;AAC9B,KAAI,sBAAsB,CACtB,QAAO;AACX,QAAO;;AAEX,SAAS,uBAAuB;AAC5B,QAAO,eAAe,IAAI,CAAC,QAAQ;;AAEvC,SAAS,gBAAgB;AACrB,QAAO,CAAC,CAAC,QAAQ,SAAS;;AAE9B,SAAgB,QAAQ,QAAM;AAC1B,QAAOC,OAAK,MAAM,wBAAwB,GAAG,EAAE;;AAEnD,SAAgB,oBAAoB;AAChC,QAAO,QAAQ,KAAK,wBAAwB;;;;;ACZhD,mBAAe;CACX,IAAI;EACA;EACA;EACH;CACD;CACA;CACA,SAAS,SAAS;AACd,MAAI;AACA,UAAO,SAAS,KAAK,CAAC,QAAQ;WAE3B,KAAK;AACR,UAAO;;;CAGlB;;;;AClBD,IAAIC;AACJ,IAAM,OAAN,MAAW;CACP,YAAY,MAAM;AAEd,SAAO,QAAQ,EAAE;AACjB,OAAK,YAAY,KAAK,aAAa;AACnC,OAAK,cAAc,OAAO,KAAK,gBAAgB,YAAY,KAAK,cAAc;AAC9E,OAAK,SAAS,KAAK,UAAU;AAC7B,OAAK,qBAAqB,OAAO,KAAK,uBAAuB,YAAY,KAAK,qBAAqB;AAEnG,OAAK,QAAQ,OAAO,OAAO,KAAK;AAChC,OAAK,aAAa,EAAE;;CAExB,GAAG,GAAG,MAAM;AACR,MAAI,OAAO,UAAU,OAAO,SACxB,QAAO,KAAK,eAAe,UAAU,IAAI,GAAG,UAAU;EAE1D,MAAM,MAAM,KAAK,OAAO;EACxB,IAAI,KAAK,WAAY;AACrB,MAAI,OAAO,KAAK,KAAK,SAAS,OAAO,WACjC,MAAK,KAAK,KAAK;AACnB,OAAK,MAAM,WAAY;AACvB,MAAI,CAAC,KAAK,MAAM,KAAK,QACjB,MAAK,iBAAiB;AAE1B,MAAI,CAAC,KAAK,MAAM,KAAK,QAAQ,QAAQ,KAAK,aAAa;AACnD,QAAK,MAAM,KAAK,QAAQ,OAAO;AAI/B,QAAK,cAAc;IACf,WAAW,KAAK;IAChB,QAAQ,KAAK;IACb;IACH,CAAC;QAGF,KAAI;AAER,SAAOA,OAAK,OAAO,MAAMA,OAAK,QAAQ,CAAC,KAAK,MAAM,KAAK,QAAQ,QAAQ,IAAI,CAAC,OAAO,KAAK,CAAC;;CAE7F,MAAM;EACF,MAAM,OAAO,MAAM,UAAU,MAAM,KAAK,UAAU;EAClD,MAAM,WAAW,KAAK,OAAO;EAC7B,MAAM,SAAS,KAAK,OAAO;EAC3B,MAAM,WAAW,KAAK,OAAO;EAC7B,IAAI,KAAK,WAAY;AACrB,MAAI,OAAO,KAAK,KAAK,SAAS,OAAO,WACjC,MAAK,KAAK,KAAK;AACnB,MAAI,CAAC,KAAK,MAAM,KAAK,QACjB,MAAK,iBAAiB;EAC1B,IAAI,MAAM,aAAa,IAAI,WAAW;AACtC,MAAI,KAAK,MAAM,KAAK,QAAQ,UAExB,OADc,KAAK,MAAM,KAAK,QAAQ,UAC1B,aAAa,IAAI,QAAQ;AAGzC,MAAI,CAAC,KAAK,MAAM,KAAK,QAAQ,aAAa,KAAK,aAAa;AACxD,QAAK,MAAM,KAAK,QAAQ,YAAY;IAChC,KAAK;IACL,OAAO;IACV;AAID,QAAK,cAAc;IACf,WAAW,KAAK;IAChB,QAAQ,KAAK;IACb;IACH,CAAC;QAGF,KAAI;EAIR,MAAM,SAAS,CAAC,IAAI;AACpB,MAAI,CAAC,IAAI,QAAQ,KAAK,CAClB,QAAO,KAAK,SAAS;AACzB,SAAOA,OAAK,OAAO,MAAMA,OAAK,QAAQ,OAAO,OAAO,KAAK,CAAC;;CAE9D,UAAU,QAAQ;AACd,OAAK,SAAS;;CAElB,YAAY;AACR,SAAO,KAAK;;CAEhB,aAAa,KAAK;AACd,MAAI,CAAC,KAAK,MAAM,KAAK,QACjB,MAAK,iBAAiB;AAC1B,OAAK,MAAM,OAAO,IACd,KAAI,OAAO,UAAU,eAAe,KAAK,KAAK,IAAI,CAC9C,MAAK,MAAM,KAAK,QAAQ,OAAO,IAAI;;CAI/C,eAAe,OAAO,GAAG,MAAM;EAC3B,IAAI,MAAM;AACV,QAAM,QAAQ,SAAU,MAAM,GAAG;GAC7B,MAAM,MAAM,KAAK,IAAI;AACrB,UAAO;AACP,OAAI,OAAO,QAAQ,YACf,QAAO;IAEb;AACF,SAAO,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;;CAEpE,cAAc,MAAM;AAChB,OAAK,WAAW,KAAK,KAAK;AAC1B,MAAI,KAAK,WAAW,WAAW,EAC3B,MAAK,oBAAoB;;CAEjC,qBAAqB;EACjB,MAAM,QAAQ;EACd,MAAM,OAAO,KAAK,WAAW;EAE7B,MAAM,YAAY,KAAK;EACvB,MAAM,SAAS,KAAK;EACpB,MAAM,KAAK,KAAK;EAChB,MAAM,eAAe,KAAK,mBAAmB,WAAW,OAAO;EAC/D,MAAM,mBAAmB,KAAK,UAAU,KAAK,MAAM,SAAS,MAAM,EAAE;AACpE,SAAK,GAAG,UAAU,cAAc,kBAAkB,SAAS,SAAU,KAAK;AACtE,SAAM,WAAW,OAAO;AACxB,OAAI,MAAM,WAAW,SAAS,EAC1B,OAAM,oBAAoB;AAC9B,MAAG,IAAI;IACT;;CAEN,kBAAkB;EACd,IAAI,eAAe,EAAE;EACrB,MAAM,eAAe,KAAK,mBAAmB,KAAK,WAAW,KAAK,OAAO;AACzE,MAAI;AAEA,OAAIA,OAAK,GAAG,aACR,gBAAe,KAAK,MAAMA,OAAK,GAAG,aAAa,cAAc,QAAQ,CAAC;WAGvE,KAAK;AACR,OAAI,eAAe,YACf,KAAI,UAAU,qBAAqB;AAEvC,OAAI,IAAI,SAAS,SACb,gBAAe,EAAE;OAEjB,OAAM;;AAEd,OAAK,MAAM,KAAK,UAAU;;CAE9B,mBAAmB,WAAW,QAAQ;EAClC,IAAI,OAAOA,OAAK,QAAQ,WAAW,MAAM,SAAS,QAAQ;AAC1D,MAAI,KAAK,sBAAsB,CAAC,KAAK,gBAAgB,KAAK,IAAI,CAAC,OAAO,YAAY,IAAI,EAAE;GAEpF,MAAM,eAAeA,OAAK,QAAQ,WAAW,MAAM,OAAO,MAAM,IAAI,CAAC,KAAK,QAAQ;AAClF,OAAI,KAAK,gBAAgB,aAAa,CAClC,QAAO;;AAEf,SAAO;;CAEX,gBAAgB,MAAM;AAClB,SAAOA,OAAK,OAAO,KAAK;;;AAGhC,SAAgB,KAAK,MAAM,OAAO;AAC9B,UAAO;CACP,MAAMC,SAAO,IAAI,KAAK,KAAK;AAC3B,QAAO;EACH,IAAIA,OAAK,GAAG,KAAKA,OAAK;EACtB,KAAKA,OAAK,IAAI,KAAKA,OAAK;EACxB,WAAWA,OAAK,UAAU,KAAKA,OAAK;EACpC,WAAWA,OAAK,UAAU,KAAKA,OAAK;EACpC,cAAcA,OAAK,aAAa,KAAKA,OAAK;EAC1C,QAAQA,OAAK;EAChB;;;;;ACzKL,MAAMC,UAAQ,SAAS;AACrB,QAAOC,KAAM,MAAMC,aAAK;;AAG1B,mBAAeF;;;;;ACFf,QAAO,UAAU,SAASG,gBAAc,UAAU;AAC9C,MAAI,aAAa,KAAK,EAAK,YAAW;AACtC,MAAI,YAAY,MAAM,gBAClB,OAAM,IAAI,UAAU,qGAAqG,WAAW,uCAAuC,MAAM,kBAAkB,IAAI;EAE3M,IAAI,uBAAuB,MAAM;AACjC,QAAM,oBAAoB,SAAU,GAAG,SAAO;AAAE,UAAOC;;EACvD,IAAI,yBAAQ,IAAI,OAAO,EAAC;AACxB,QAAM,oBAAoB;AAC1B,MAAI,UAAU,QAAQ,OAAO,UAAU,SAInC,QAAO,MAAM,YAAY,MAAM,UAAU,aAAa,GAAG;;;;;;;ACFjE,MAAM,YAAY,cAAc,OAAO,KAAK,IAAI;AAChD,MAAM,eAAe,UAAU,UAAU,GAAG,UAAU,YAAY,eAAe,CAAC;AAClF,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAE9C,kBAAe;CACb,QAAQ;EACN;EACA;EACD;CACD;CACA,QAAQC;CACR,SAAS,QAAQ;AACf,SAAO,QAAQ,IAAI;;CAErB;CACA;CACA,cAAc,gBAAgB,QAAQ,KAAK;CAC3C;CACA,MAAM;EACJ;EACA;EACA;EACA;EACA;EACA;EACD;CACD,SAAS;EACP,YAAY,QAAQ;EACpB,KAAK,QAAQ;EACb,cAAc,SAAS,SAAS,QAAQ,YAAY,SAAS,KAAK;EAClE,gBAAgB,QAAQ;EACxB,OAAO,SAAS;AAEd,WAAQ,KAAK,KAAK;;EAEpB,UAAU,QAAQ;EAClB,YAAY,OAAO,QAAQ,OAAO,YAAY,cAAc,QAAQ,OAAO,UAAU;EACtF;CACD;CACA;CACA;CACA,qBAAqB;EACnB,MAAM,iDAA2B,EAAE;AACnC,SAAO,WAAW,MAAM,aAAa,GAAG,cAAc,WAAW,GAAG;;CAEtE;CACA,MAAMC,aAAK;EACT,WAAW,QAAQ,WAAW,mBAAmB;EACjD,aAAa;EACd,CAAC;CACH;;;;AClED,SAAgB,qBAAqB,QAAQ,UAAU,QAAM,SAAS;AAClE,QAAK,OAAO,eAAe,QAAQ,UAAU,QAAQ;;AAEzD,SAAgB,gBAAgB,QAAQ,QAAM;AAC1C,QAAK,OAAO,YAAY,OAAO,QAAQ,SAAS;;AAEpD,SAAgB,WAAW,QAAQ;AAC/B,QAAO,OAAO,KAAK,OAAO;;;;;ACP9B,SAAgB,UAAU,cAAc;AACpC,QAAQ,CAAC,CAAC,gBACN,CAAC,CAAC,aAAa,QACf,OAAO,aAAa,SAAS;;;;;ACHrC,IAAa,SAAb,MAAa,eAAe,MAAM;CAC9B,YAAY,KAAK;AACb,QAAM,OAAO,cAAc;AAC3B,OAAK,OAAO;AACZ,MAAI,MAAM,kBACN,OAAM,kBAAkB,MAAM,OAAO;;;;;;ACLjD,SAAgB,aAAa,KAAK;CAE9B,MAAM,eAD6B,IAAI,QAAQ,WAAW,IAAI,CACd,MAAM,uBAAuB;CAC7E,MAAM,SAAS;CACf,MAAM,eAAe,aAAa,OAAO;AACzC,KAAI,CAAC,aACD,OAAM,IAAI,MAAM,wBAAwB,MAAM;CAClD,MAAM,gBAAgB;EAClB,KAAK,aAAa,QAAQ,QAAQ,GAAG;EACrC,UAAU,EAAE;EACZ,UAAU,EAAE;EACf;AACD,cAAa,SAAS,OAAK,MAAM;EAC7B,IAAI,WAAW;AACf,UAAMC,MAAI,QAAQ,OAAO,GAAG;AAC5B,MAAI,WAAW,KAAKA,MAAI,IAAI,MAAM,aAAa,SAAS,EACpD,YAAW;AACf,MAAI,MAAM,KAAKA,MAAI,CACf,eAAc,SAAS,KAAK;GACxB,KAAKA,MAAI,QAAQ,QAAQ,GAAG,CAAC,MAAM,IAAI;GACvC;GACH,CAAC;MAGF,eAAc,SAAS,KAAK;GACxB,KAAKA,MAAI,QAAQ,QAAQ,GAAG,CAAC,MAAM,IAAI;GACvC;GACH,CAAC;GAER;AACF,QAAO;;;;;AC5BX,MAAM,eAAe;CAAC;CAAS;CAAU;CAAS;CAAU;CAAS;CAAQ;AAC7E,SAAgB,QAAQ,MAAM,MAAM,MAAM;CACtC,SAAS,YAAY;AACjB,SAAO,OAAO,SAAS,WACjB;GAAC;IAAE,UAAU,EAAE;IAAE,UAAU,EAAE;IAAE;GAAE;GAAM;GAAK,GAC5C;GACE,aAAa,OAAO,OAAO;GAC3B;GACA;GACH;;AAET,KAAI;EACA,IAAI,WAAW;EACf,MAAM,CAAC,QAAQ,iBAAiB,WAAW,WAAW;EACtD,MAAM,OAAO,EAAE,CAAC,MAAM,KAAK,gBAAgB;AAC3C,SAAO,KAAK,UAAU,KAAK,KAAK,SAAS,OAAO,OAC5C,MAAK,KAAK;EACd,MAAM,SAAS,WAAW,KAAK;AAC/B,MAAI,SAAS,OAAO,SAAS,OACzB,OAAM,IAAI,OAAO,2CAA2C,OAAO,SAAS,OAAO,gBAAgB,KAAK,OAAO,GAAG;EAEtH,MAAM,gBAAgB,OAAO,SAAS,SAAS,OAAO,SAAS;AAC/D,MAAI,SAAS,cACT,OAAM,IAAI,OAAO,6CAA6C,cAAc,gBAAgB,OAAO,GAAG;AAE1G,SAAO,SAAS,SAAQ,aAAY;GAEhC,MAAM,eAAe,UADT,KAAK,OAAO,CACW;AAEnC,OADsB,SAAS,IAAI,QAAO,SAAQ,SAAS,gBAAgB,SAAS,IAAI,CACtE,WAAW,EACzB,mBAAkB,cAAc,SAAS,KAAK,SAAS;AAC3D,eAAY;IACd;AACF,SAAO,SAAS,SAAQ,aAAY;AAChC,OAAI,KAAK,WAAW,EAChB;GAEJ,MAAM,eAAe,UADT,KAAK,OAAO,CACW;AAEnC,OADsB,SAAS,IAAI,QAAO,SAAQ,SAAS,gBAAgB,SAAS,IAAI,CACtE,WAAW,EACzB,mBAAkB,cAAc,SAAS,KAAK,SAAS;AAC3D,eAAY;IACd;UAEC,KAAK;AACR,UAAQ,KAAK,IAAI,MAAM;;;AAG/B,SAAS,UAAU,KAAK;AACpB,KAAI,MAAM,QAAQ,IAAI,CAClB,QAAO;UAEF,QAAQ,KACb,QAAO;AAEX,QAAO,OAAO;;AAElB,SAAS,kBAAkB,cAAc,cAAc,UAAU;AAC7D,OAAM,IAAI,OAAO,WAAW,aAAa,aAAa,UAAU,sBAAsB,aAAa,KAAK,OAAO,CAAC,gBAAgB,aAAa,GAAG;;;;;AC1DpJ,IAAa,mBAAb,MAA8B;CAC1B,YAAY,OAAO;AACf,OAAK,mBAAmB,EAAE;AAC1B,OAAK,UAAU,EAAE;AACjB,OAAK,QAAQ;;CAEjB,cAAc,UAAU,uBAAuB,WAAS,MAAM,UAAU,OAAO;AAC3E,UAAQ,kDAAkD;GAAC;GAAU;GAAuBC;GAAO,EAAE,UAAU,OAAO;AACtH,MAAI,MAAM,QAAQ,SAAS,EAAE;AACzB,QAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,QAAI,OAAO,SAAS,OAAO,WACvB,OAAM,MAAM,gCAAgC;IAEhD,MAAM,IAAI,SAAS;AACnB,MAAE,wBAAwB;AAC1B,MAAE,SAASA;;AAEf,SAAM,UAAU,KAAK,MAAM,KAAK,kBAAkB,SAAS;aAEtD,OAAO,aAAa,YAAY;GACrC,MAAM,IAAI;AACV,KAAE,wBAAwB;AAC1B,KAAE,SAASA;AACX,KAAE,UAAU;AACZ,QAAK,iBAAiB,KAAK,SAAS;;AAExC,SAAO,KAAK;;CAEhB,oBAAoB,UAAU,QAAQ;EAClC,MAAM,UAAU,KAAK,MAAM,YAAY;AACvC,OAAK,mBAAmB,KAAK,iBAAiB,QAAO,MAAK;GACtD,MAAM,UAAU,CAAC,GAAI,QAAQ,WAAW,EAAE,EAAG,OAAO;AACpD,OAAI,CAAC,EAAE,OACH,QAAO;OAEP,QAAO,CAAC,QAAQ,SAAS,EAAE,OAAO;IACxC;AACF,WAAS,SAAS;AAClB,SAAO,KAAK,cAAc,UAAU,MAAM,MAAM,KAAK;;CAEzD,gBAAgB;AACZ,SAAO,KAAK;;CAEhB,SAAS;AACL,OAAK,QAAQ,KAAK,CAAC,GAAG,KAAK,iBAAiB,CAAC;;CAEjD,WAAW;EACP,MAAM,SAAS,KAAK,QAAQ,KAAK;AACjC,MAAI,WAAW,OACX,MAAK,mBAAmB;;CAEhC,QAAQ;AACJ,OAAK,mBAAmB,KAAK,iBAAiB,QAAO,MAAK,EAAE,OAAO;;;AAG3E,SAAgB,yBAAyB,mBAAmB;AACxD,KAAI,CAAC,kBACD,QAAO,EAAE;AACb,QAAO,kBAAkB,KAAI,eAAc;AACvC,aAAW,wBAAwB;AACnC,SAAO;GACT;;AAEN,SAAgB,gBAAgB,QAAM,OAAO,aAAa,kBAAkB;AACxE,QAAO,YAAY,QAAQ,KAAK,eAAe;AAC3C,MAAI,WAAW,0BAA0B,iBACrC,QAAO;AAEX,MAAI,WAAW,SAAS;AACpB,OAAI,WAAW,QACX,QAAO;AACX,cAAW,UAAU;;AAEzB,MAAI,UAAU,IAAI,CACd,QAAO,IACF,MAAK,eAAc,QAAQ,IAAI,CAAC,YAAY,WAAW,YAAY,MAAM,CAAC,CAAC,CAAC,CAC5E,MAAM,CAAC,YAAY,mBAAmB,OAAO,OAAO,YAAY,cAAc,CAAC;OAEnF;GACD,MAAM,SAAS,WAAW,KAAK,MAAM;AACrC,UAAO,UAAU,OAAO,GAClB,OAAO,MAAK,kBAAiB,OAAO,OAAO,KAAK,cAAc,CAAC,GAC/D,OAAO,OAAO,KAAK,OAAO;;IAErCC,OAAK;;;;;ACrFZ,SAAgB,iBAAiB,WAAW,eAAe,gBAAgB,QAAQ;AAC/E,OAAM;GACP;AACC,KAAI;EACA,MAAM,SAAS,WAAW,UAAU,GAAG,WAAW,GAAG;AACrD,SAAO,UAAU,OAAO,GAClB,OAAO,MAAM,aAAW,cAAcC,SAAO,CAAC,GAC9C,cAAc,OAAO;UAExB,KAAK;AACR,SAAO,aAAa,IAAI;;;AAGhC,SAAS,WAAW,KAAK;AACrB,QAAO,OAAO,QAAQ;;;;;ACT1B,MAAM,iBAAiB;AACvB,IAAa,kBAAb,MAA6B;CACzB,YAAY,SAAO,cAAY,kBAAkB,QAAM;AACnD,OAAK,+BAAe,IAAI,KAAK;AAC7B,OAAK,WAAW,EAAE;AAClB,OAAK,WAAW,EAAE;AAClB,OAAK,UAAU,EAAE;AACjB,OAAK,OAAOC;AACZ,OAAK,QAAQC;AACb,OAAK,mBAAmB;AACxB,OAAK,aAAaC;;CAEtB,aAAa,KAAK,KAAK,YAAY,MAAM;AACrC,SAAO,QAAQ,EAAE;AACjB,OAAK,aAAa,IAAI,WAAW;EACjC,MAAM,cAAc,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,QAAQ,WAAW,EAAE,IAAI;EACnF,MAAM,QAAQ,KAAK,KAAK,YAAY,aAAa,EAC7C,WAAW,KAAK,UAAU,OAAO,OACpC,CAAC;AACF,MAAI,CAAC,MAAM,QAAQ,KAAK,WAAW,CAC/B,MAAK,aAAa,CAAC,KAAK;EAC5B,MAAM,QAAQ,OAAO,KAAK,UAAU,aAAa,KAAK,SAAS,MAAM;AACrE,OAAK,MAAM,SAAS,OAAO;GACvB,MAAM,OAAO,MAAM,UAAU;AAC7B,OAAI,KAAK,SAAS;IACd,IAAI,UAAU;AACd,QAAI,OAAO,KAAK,YAAY,WACxB,WAAU,KAAK,QAAQ,KAAK;QAG5B,WAAU,KAAK,QAAQ,KAAK,KAAK;AAErC,QAAI,QACA;;AAER,OAAI,KAAK,SAAS;IACd,IAAI,UAAU;AACd,QAAI,OAAO,KAAK,YAAY,WACxB,WAAU,KAAK,QAAQ,KAAK;QAG5B,WAAU,KAAK,QAAQ,KAAK,KAAK;AAErC,QAAI,CAAC,QACD;;GAER,IAAI,qBAAqB;AACzB,QAAK,MAAM,OAAO,KAAK,WACnB,KAAI,KAAK,SAAS,IAAI,CAClB,sBAAqB;AAE7B,OAAI,oBAAoB;IACpB,MAAM,SAAS,KAAK,KAAK,KAAK,KAAK,aAAa,KAAK;IACrD,MAAMC,WAAS,IAAI,OAAO;IAC1B,MAAM,mBAAmB,OAAO,OAAO,MAAM,OAAO,0BAA0B,EAAE,GAAGA,UAAQ,CAAC,CAAC;AAE7F,QADgB,MAAM,kBAAkB,QAAQ,KAAK,EACxC;AACT,SAAI,KAAK,aAAa,IAAI,OAAO,CAC7B;SAEA,MAAK,aAAa,IAAI,OAAO;AACjC,SAAI,CAAC,iBAAiB,QAClB,kBAAiB,UAAU,KAAK,KAAK,KAAK,SAAS,QAAQ,KAAK,KAAK,KAAK,QAAQ,OAAO,CAAC;AAE9F,UAAK,WAAW,iBAAiB;;;;;CAKjD,WAAW,KAAK,aAAa,SAAS,SAAS,mBAAmB,YAAY;EAC1E,IAAI,UAAU,EAAE;EAChB,MAAM,cAAc,yBAAyB,kBAAkB;AAC/D,YAAU,kBAAkB;AAC5B,MAAI,MAAM,QAAQ,IAAI,CAClB,KAAI,oBAAoB,IAAI,CACxB,EAAC,QAAQ,WAAW;MAGpB,MAAK,MAAMC,aAAW,IAClB,MAAK,WAAWA,UAAQ;WAI3B,2BAA2B,IAAI,EAAE;GACtC,IAAIA,YAAU,MAAM,QAAQ,IAAI,QAAQ,IAAI,OAAO,IAAI,YAAY,WAC7D,IAAI,UACJ;AACN,OAAIA,cAAY,KACZ,OAAM,IAAI,MAAM,qCAAqC,KAAK,KAAK,QAAQ,IAAI,GAAG;AAElF,OAAI,IAAI,QACJ,aAAU,EAAE,CAAC,OAAOA,UAAQ,CAAC,OAAO,IAAI,QAAQ;AACpD,QAAK,WAAWA,WAAS,KAAK,YAAY,IAAI,EAAE,IAAI,SAAS,IAAI,SAAS,IAAI,aAAa,IAAI,WAAW;AAC1G;aAEK,2BAA2B,QAAQ,EAAE;AAC1C,QAAK,WAAW,CAAC,IAAI,CAAC,OAAO,QAAQ,EAAE,aAAa,QAAQ,SAAS,QAAQ,SAAS,QAAQ,aAAa,QAAQ,WAAW;AAC9H;;AAEJ,MAAI,OAAO,QAAQ,UAAU;GACzB,MAAM,gBAAgB,aAAa,IAAI;AACvC,aAAU,QAAQ,KAAI,UAAS,aAAa,MAAM,CAAC,IAAI;GACvD,IAAI,YAAY;GAChB,MAAM,gBAAgB,CAAC,cAAc,IAAI,CAAC,OAAO,QAAQ,CAAC,QAAO,MAAK;AAClE,QAAI,eAAe,KAAK,EAAE,EAAE;AACxB,iBAAY;AACZ,YAAO;;AAEX,WAAO;KACT;AACF,OAAI,cAAc,WAAW,KAAK,UAC9B,eAAc,KAAK,KAAK;AAC5B,OAAI,WAAW;AACX,kBAAc,MAAM,cAAc;AAClC,cAAU,cAAc,MAAM,EAAE;AAChC,UAAM,IAAI,QAAQ,gBAAgB,cAAc,IAAI;;AAExD,WAAQ,SAAQ,UAAS;AACrB,SAAK,SAAS,SAAS,cAAc;KACvC;AACF,OAAI,gBAAgB,MAChB,MAAK,MAAM,QAAQ,KAAK,aAAa,WAAW,SAAS,WAAW;AAExE,QAAK,SAAS,cAAc,OAAO;IAC/B,UAAU;IACV;IACA;IACA,SAAS,WAAW,EAAE;IACtB;IACA;IACA,UAAU,cAAc;IACxB,UAAU,cAAc;IAC3B;AACD,OAAI,UACA,MAAK,iBAAiB,KAAK,SAAS,cAAc;;;CAG9D,qBAAqB;AACjB,SAAO,KAAK;;CAEhB,cAAc;AACV,SAAO,OAAO,KAAK,KAAK,SAAS,CAAC,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;;CAExE,oBAAoB;AAChB,SAAO,CAAC,CAAC,KAAK;;CAElB,WAAW,WAAS,OAAO,QAAQ,cAAc,UAAU,kBAAkB;EACzE,MAAM,iBAAiB,KAAK,SAASA,cACjC,KAAK,SAAS,KAAK,SAASA,eAC5B,KAAK;EACT,MAAM,iBAAiB,MAAM,oBAAoB,CAAC,YAAY;EAC9D,MAAM,iBAAiB,eAAe,SAAS,OAAO;EACtD,MAAM,mBAAmB,CAACA;AAC1B,MAAIA,WAAS;AACT,kBAAe,SAAS,KAAKA,UAAQ;AACrC,kBAAe,aAAa,KAAK,eAAe,SAAS;;EAE7D,MAAM,gBAAgB,KAAK,gCAAgC,kBAAkB,gBAAgB,OAAO,OAAO,SAAS,gBAAgB,cAAc,UAAU,iBAAiB;AAC7K,SAAO,UAAU,cAAc,GACzB,cAAc,MAAK,WAAU,KAAK,4BAA4B,kBAAkB,gBAAgB,OAAO,WAAW,gBAAgB,UAAU,OAAO,SAAS,MAAM,CAAC,GACnK,KAAK,4BAA4B,kBAAkB,gBAAgB,cAAc,WAAW,gBAAgB,UAAU,cAAc,SAAS,MAAM;;CAE7J,gCAAgC,kBAAkB,gBAAgB,OAAO,SAAS,gBAAgB,cAAc,UAAU,kBAAkB;EACxI,MAAM,UAAU,eAAe;EAC/B,IAAI,aAAa;AACjB,MAAI,yBAAyB,QAAQ,EAAE;AACnC,SAAM,oBAAoB,CAAC,kBAAkB,CAAC,QAAQ;GACtD,MAAM,gBAAgB,QAAQ,MAAM,oBAAoB,CAAC,MAAM,QAAQ,EAAE,iBAAiB;AAC1F,OAAI,UAAU,cAAc,CACxB,QAAO,cAAc,MAAK,WAAU;AAChC,iBAAa,gBAAgB,OAAO,GAAG,SAAS;AAChD,WAAO,KAAK,oBAAoB,kBAAkB,gBAAgB,YAAY,gBAAgB,cAAc,SAAS;KACvH;aAGD,kCAAkC,QAAQ,EAAE;AACjD,SAAM,oBAAoB,CAAC,kBAAkB,CAAC,QAAQ;AACtD,gBAAa,MAAM,oBAAoB,CAAC,MAAM,QAAQ;AACtD,UAAO,KAAK,eAAe,QAAQ,CAAC,SAAQ,QAAO;AAC/C,eAAW,OAAO,KAAK,QAAQ,KAAK;KACtC;;AAEN,SAAO,KAAK,oBAAoB,kBAAkB,gBAAgB,YAAY,gBAAgB,cAAc,SAAS;;CAEzH,oBAAoB,kBAAkB,gBAAgB,YAAY,gBAAgB,cAAc,UAAU;AACtG,MAAI,iBACA,YAAW,oBAAoB,CAAC,kBAAkB,CAAC,SAAS,KAAK;AACrE,MAAI,KAAK,kBAAkB,WAAW,CAClC,YACK,oBAAoB,CACpB,kBAAkB,CAClB,MAAM,KAAK,sCAAsC,gBAAgB,eAAe,EAAE,eAAe,YAAY;EAEtH,MAAM,YAAY,WACb,oBAAoB,CACpB,iCAAiC,MAAM,QAAW,MAAM,cAAc,SAAS;AACpF,SAAO,UAAU,UAAU,GACrB,UAAU,MAAK,YAAS;GACtB,SAAS,WAAW,OAAO;GAC3B,WAAWC;GACd,EAAE,GACD;GACE,SAAS,WAAW,OAAO;GAChB;GACd;;CAET,kBAAkB,OAAO;AACrB,SAAQ,CAAC,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,kBAAkB,IACrE,MAAM,oBAAoB,CAAC,kBAAkB,CAAC,UAAU,CAAC,WAAW;;CAE5E,sCAAsC,gBAAgB,gBAAgB;EAClE,MAAM,IAAI,eAAe,KAAK,eAAe,SAAS,GAChD,eAAe,SAAS,QAAQ,gBAAgB,GAAG,CAAC,MAAM,GAC1D,eAAe;EACrB,MAAM,KAAK,eAAe,QAAO,QAAK;AAClC,UAAO,CAAC,eAAe,KAAKC,IAAE;IAChC;AACF,KAAG,KAAK,EAAE;AACV,SAAO,MAAM,GAAG,KAAK,IAAI;;CAE7B,6BAA6B,kBAAkB,gBAAgB,WAAW,gBAAgB,SAAS,OAAO,aAAa,eAAe;AAClI,MAAI,CAAC,MAAM,oBAAoB,CAAC,cAAc,EAAE;GAC5C,MAAMJ,eAAa,MACd,oBAAoB,CACpB,cAAc,SAAS,eAAe,MAAM,OAAO,OAAO,iBAAiB;AAChF,eAAY,iBAAiB,YAAW,WAAU;AAC9C,iBAAW,OAAO;AAClB,WAAO;KACT;;AAEN,MAAI,eAAe,WAAW,CAAC,MAAM,oBAAoB,CAAC,cAAc,EAAE;AACtE,SAAM,oBAAoB,CAAC,cAAc;GACzC,MAAM,qBAAqB,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc;AAC9D,SACK,oBAAoB,CACpB,YAAY,WAAW,oBAAoB,OAAO,MAAM;AAC7D,eAAY,gBAAgB,WAAW,OAAO,aAAa,MAAM;AACjE,eAAY,iBAAiB,YAAW,WAAU;IAC9C,MAAM,gBAAgB,eAAe,QAAQ,OAAO;AACpD,WAAO,UAAU,cAAc,GACzB,cAAc,WAAW,OAAO,GAChC;KACR;AACF,OAAI,CAAC,iBACD,OAAM,oBAAoB,CAAC,kBAAkB,CAAC,kBAAkB;AAEpE,OAAI,UAAU,UAAU,IACpB,CAAC,MAAM,oBAAoB,CAAC,kBAAkB,CAC9C,WAAU,OAAM,UAAS;AACrB,QAAI;AACA,WAAM,oBAAoB,CAAC,kBAAkB,CAAC,KAAK,MAAM,MAAM;aAE5D,MAAM;KAEf;;AAGV,MAAI,CAAC,kBAAkB;AACnB,kBAAe,SAAS,KAAK;AAC7B,kBAAe,aAAa,KAAK;;AAErC,SAAO;;CAEX,4BAA4B,kBAAkB,gBAAgB,WAAW,gBAAgB,UAAU,SAAS,OAAO;EAC/G,IAAI,gBAAgB,EAAE;AACtB,MAAI,SACA,QAAO;AACX,MAAI,CAAC,MAAM,oBAAoB,CAAC,cAAc,CAC1C,iBAAgB,KAAK,oBAAoB,gBAAgB,WAAW,gBAAgB,MAAM;EAE9F,MAAM,cAAc,KAAK,iBACpB,eAAe,CACf,MAAM,EAAE,CACR,OAAO,eAAe,YAAY;EACvC,MAAM,mBAAmB,gBAAgB,WAAW,OAAO,aAAa,KAAK;AAC7E,SAAO,UAAU,iBAAiB,GAC5B,iBAAiB,MAAK,sBAAqB,KAAK,6BAA6B,kBAAkB,gBAAgB,mBAAmB,gBAAgB,SAAS,OAAO,aAAa,cAAc,CAAC,GAC9L,KAAK,6BAA6B,kBAAkB,gBAAgB,kBAAkB,gBAAgB,SAAS,OAAO,aAAa,cAAc;;CAE3J,oBAAoB,gBAAgB,QAAM,SAAS,OAAO;AACtD,SAAK,IAAIG,OAAK,EAAE,MAAM,QAAQ,SAAS,OAAO;EAC9C,MAAM,WAAW,eAAe,SAAS,MAAM,EAAE;EACjD,MAAM,WAAW,eAAe,SAAS,MAAM,EAAE;EACjD,MAAM,gBAAgB,EAAE;AACxB,OAAK,WAAW,gBAAgB,SAAS,QAAQA,OAAK,EAAE,OAAO;AAC/D,SAAO,SAAS,QAAQ;GACpB,MAAM,SAAS,SAAS,OAAO;AAC/B,QAAK,mBAAmB,QAAQA,QAAM,cAAc;;AAExD,SAAO,SAAS,QAAQ;GACpB,MAAM,QAAQ,SAAS,OAAO;AAC9B,QAAK,mBAAmB,OAAOA,QAAM,cAAc;;AAEvD,SAAK,IAAI,QAAQ,SAAS,OAAOA,OAAK,EAAE,KAAI,MAAK,KAAK,EAAE,CAAC;AACzD,OAAK,uBAAuBA,QAAM,eAAe,KAAK,kBAAkB,eAAe,SAAS,EAAE,MAAM;AACxG,SAAO;;CAEX,mBAAmB,YAAY,QAAM,eAAe;EAChD,MAAM,MAAM,WAAW,IAAI;AAC3B,MAAI,WAAW,SACX,eAAc,OAAOA,OAAK,EAAE,OAAO,EAAE,CAAC,IAAI,OAAO;WAG7CA,OAAK,EAAE,OACP,eAAc,OAAO,CAAC,OAAOA,OAAK,EAAE,OAAO,CAAC,CAAC;;CAGzD,kBAAkB,WAAW;EACzB,MAAM,eAAe;GACjB,OAAO,EAAE;GACT,SAAS,EAAE;GACX,OAAO,EAAE;GACT,QAAQ,EAAE;GACb;EACD,MAAM,SAAS,aAAa,UAAU;AACtC,SAAO,SAAS,SAAQ,MAAK;GACzB,MAAM,CAAC,KAAK,GAAG,WAAW,EAAE;AAC5B,OAAI,EAAE,UAAU;AACZ,iBAAa,MAAM,KAAK,IAAI;AAC5B,iBAAa,QAAQ,OAAO,EAAE;;AAElC,gBAAa,MAAM,OAAO;AAC1B,gBAAa,OAAO,OAAO;IAC7B;AACF,SAAO,SAAS,SAAQ,MAAK;GACzB,MAAM,CAAC,KAAK,GAAG,WAAW,EAAE;AAC5B,OAAI,EAAE,UAAU;AACZ,iBAAa,MAAM,KAAK,IAAI;AAC5B,iBAAa,QAAQ,OAAO,EAAE;;AAElC,gBAAa,MAAM,OAAO;IAC5B;AACF,SAAO;;CAEX,uBAAuB,QAAM,eAAe,cAAc,OAAO;EAC7D,MAAM,UAAU,OAAO,OAAO,EAAE,EAAE,MAAM,YAAY,CAAC;AACrD,UAAQ,UAAU,OAAO,OAAO,aAAa,SAAS,QAAQ,QAAQ;AACtE,OAAK,MAAM,OAAO,OAAO,KAAK,aAAa,MAAM,CAC7C,SAAQ,MAAM,QAAQ,QAAQ,MAAM,QAAQ,EAAE,EAAE,OAAO,aAAa,MAAM,KAAK;AAEnF,UAAQ,QAAQ,QAAQ,MAAM,OAAO,aAAa,MAAM;AACxD,UAAQ,SAAS,EAAE;EACnB,MAAM,WAAW,EAAE;AACnB,SAAO,KAAK,cAAc,CAAC,SAAQ,QAAO;AACtC,iBAAc,KAAK,KAAI,UAAS;AAC5B,QAAI,QAAQ,cAAc,2BACtB,SAAQ,IAAI,OAAO;AACvB,aAAS,KAAK,KAAK,MAAM;AACzB,aAAS,KAAK,MAAM;KACtB;IACJ;AACF,MAAI,CAAC,SAAS,OACV;EACJ,MAAM,SAAS,OAAO,OAAO,EAAE,EAAE,QAAQ,eAAe,EACpD,cAAc,OACjB,CAAC;EACF,MAAM,SAAS,KAAK,KAAK,OAAO,SAAS,UAAU,OAAO,OAAO,EAAE,EAAE,SAAS,EAC1E,eAAe,QAClB,CAAC,CAAC;AACH,MAAI,OAAO,MACP,OACK,oBAAoB,CACpB,kBAAkB,CAClB,KAAK,OAAO,MAAM,SAAS,OAAO,MAAM;OAE5C;GACD,MAAM,iBAAiB,OAAO,KAAK,cAAc;AACjD,UAAO,KAAK,cAAc,CAAC,SAAQ,QAAO;AACtC,mBAAe,KAAK,GAAG,OAAO,QAAQ,KAAK;KAC7C;AACF,UAAO,KAAK,OAAO,KAAK,CAAC,SAAQ,QAAO;AACpC,QAAI,eAAe,SAAS,IAAI,EAAE;AAC9B,SAAI,CAAC,cAAc,KACf,eAAc,OAAO,OAAO,KAAK;AACrC,SAAI,CAAC,KAAK,YAAY,OAAO,IAAI,IAC7B,CAAC,KAAK,YAAY,OAAO,IAAI,IAC7B,OAAO,UAAU,eAAe,KAAKA,QAAM,IAAI,IAC/C,OAAO,UAAU,eAAe,KAAK,OAAO,MAAM,IAAI,KACrD,MAAM,QAAQA,OAAK,KAAK,IAAI,MAAM,QAAQ,OAAO,KAAK,KAAK,EAC5D,QAAK,OAAO,EAAE,CAAC,OAAOA,OAAK,MAAM,OAAO,KAAK,KAAK;SAGlD,QAAK,OAAO,OAAO,KAAK;;KAGlC;;;CAGV,YAAY,OAAO,KAAK;EACpB,MAAM,EAAE,SAAS,aAAa,MAAM,YAAY;AAChD,SAAQ,OAAO,UAAU,eAAe,KAAK,UAAU,IAAI,IACvD,OAAO,UAAU,eAAe,KAAK,UAAU,KAAK,KAAK,OAAO,UAAU,IAAI,CAAC;;CAEvF,YAAY,OAAO,KAAK;EACpB,MAAM,EAAE,kBAAkB,MAAM,YAAY;AAC5C,SAAQ,cAAc,MAAK,MAAK,OAAO,UAAU,eAAe,KAAK,GAAG,IAAI,CAAC,IACzE,cAAc,MAAK,MAAK,OAAO,UAAU,eAAe,KAAK,GAAG,KAAK,KAAK,OAAO,UAAU,IAAI,CAAC,CAAC;;CAEzG,oBAAoB,OAAO;AACvB,MAAI,CAAC,KAAK,eACN;AACJ,MAAI,KAAK,kBAAkB,MAAM,EAAE;GAC/B,MAAM,gBAAgB,eAAe,KAAK,KAAK,eAAe,SAAS,GACjE,KAAK,eAAe,WACpB,KAAK,eAAe,SAAS,QAAQ,cAAc,MAAM;AAC/D,SACK,oBAAoB,CACpB,kBAAkB,CAClB,MAAM,eAAe,KAAK,eAAe,YAAY;;EAE9D,MAAM,UAAU,KAAK,eAAe;AACpC,MAAI,yBAAyB,QAAQ,CACjC,QAAO,QAAQ,OAAO,KAAK;WAEtB,CAAC,2BAA2B,QAAQ,CACzC,QAAO,KAAK,QAAQ,CAAC,SAAQ,QAAO;AAChC,SAAM,OAAO,KAAK,QAAQ,KAAK;IACjC;;CAIV,YAAY,EAAE,UAAU,aAAa,QAAQ;AACzC,OAAK,MAAM,QAAQ;GAAC;GAAU;GAAa;GAAK,EAAE;AAC9C,OAAI,OAAO,SAAS,YAAY,SAAS,MACrC,QAAO;AACX,wBAAqB,MAAM,MAAM,KAAK,KAAK;;AAE/C,SAAO;;CAEX,SAAS;AACL,OAAK,QAAQ,KAAK;GACd,UAAU,KAAK;GACf,UAAU,KAAK;GACf,gBAAgB,KAAK;GACxB,CAAC;;CAEN,WAAW;EACP,MAAM,SAAS,KAAK,QAAQ,KAAK;AACjC,uBAAqB,QAAQ,QAAW,KAAK,KAAK;AAClD,GAAC,CACG,UAAU,KAAK,UACf,UAAU,KAAK,UACf,gBAAgB,KAAK,kBACrB;;CAER,QAAQ;AACJ,OAAK,WAAW,EAAE;AAClB,OAAK,WAAW,EAAE;AAClB,OAAK,iBAAiB;AACtB,OAAK,+BAAe,IAAI,KAAK;AAC7B,SAAO;;;AAGf,SAAgB,QAAQ,SAAO,cAAY,kBAAkB,QAAM;AAC/D,QAAO,IAAI,gBAAgBJ,SAAOC,cAAY,kBAAkBF,OAAK;;AAEzE,SAAgB,2BAA2B,SAAS;AAChD,QAAQ,OAAO,YAAY,YACvB,CAAC,CAAC,QAAQ,WACV,OAAO,QAAQ,YAAY;;AAEnC,SAAS,oBAAoB,KAAK;AAC9B,QAAO,IAAI,OAAM,MAAK,OAAO,MAAM,SAAS;;AAEhD,SAAgB,yBAAyB,SAAS;AAC9C,QAAO,OAAO,YAAY;;AAE9B,SAAS,kCAAkC,SAAS;AAChD,QAAO,OAAO,YAAY;;AAE9B,SAAgB,2BAA2B,KAAK;AAC5C,QAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI;;;;;AC5dzD,SAAgB,UAAU,WAAW,EAAE,EAAE,eAAe,MAAM;CAC1D,MAAM,MAAM,EAAE;AACd,YAAW,SAAS,CAAC,SAAQ,QAAO;AAChC,MAAI,OAAO,KAAK,SAAS,KAAK,CAC1B,KAAI,OAAO,SAAS;GAE1B;AACF,QAAO;;;;;ACRX,SAAwB,YAAY,UAAU;AAC1C,KAAI,OAAO,YAAY,YACnB;AACJ,EAAC,QAAQ,QAAQ,QAAQ,OAAO,CAAC,SAAQ,YAAW;EAChD,MAAM,SAAS;AACf,MAAI,OAAO,WACP,OAAO,SACP,OAAO,OAAO,QAAQ,gBAAgB,WACtC,QAAO,QAAQ,YAAY,SAAS;GAE1C;;;;;ACPN,SAAS,UAAU,MAAM;AACrB,QAAO,OAAO,SAAS;;AAE3B,SAAgB,MAAM,OAAO,QAAM;CAC/B,MAAM,KAAKO,OAAK,KAAK;CACrB,MAAM,OAAO,EAAE;CACf,MAAM,QAAQ,EAAE;AAChB,MAAK,SAAS,SAAS,OAAO,GAAG;AAC7B,QAAM,KAAK,EAAE;;CAEjB,IAAI,cAAc;CAClB,IAAI,oBAAoB;CACxB,IAAI,iBAAiB;AACrB,MAAK,iBAAiB,SAAS,iBAAiB,OAAO,MAAM,MAAM;EAC/D,MAAM,CAAC,SAAS,WAAW,OAAO,SAAS,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,KAAK;AACjF,MAAI,MAAM,oBAAoB,CAAC,iBAAiB,CAC5C,qBAAoB;AAExB,gBAAc;AACd,mBAAiB;AACjB,SAAO;;CAEX,IAAI,gBAAgB;AACpB,MAAK,OAAO,SAAS,KAAK,KAAK,KAAK;EAChC,MAAM,SAAS,MAAM,oBAAoB,CAAC,mBAAmB;AAC7D,MAAI,MAAM,OACN,MAAK,IAAI,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,EAAE,GAAG;GACxC,MAAMC,SAAO,MAAM;AACnB,OAAI,UAAUA,OAAK,EACf;QAAI,IACA,OAAM;aACD,IACL,OAAM,MAAM,IAAI;SAGpB,QAAK,KAAK,KAAK,KAAK;;OAI3B;AACD,OAAI,MAAM,gBAAgB,CACtB,aAAY,KAAK;AACrB,OAAI,CAAC,eAAe;AAChB,oBAAgB;AAChB,QAAI,gBAAgB;AAChB,WAAM,SAAS,QAAQ;AACvB,YAAO,OAAO;;AAElB,QAAI,OAAO,IACP,QAAO,MAAM,OAAO,IAAI;IAC5B,MAAM,6BAA6B,eAAe;AAClD,QAAI,4BAA4B;AAC5B,SAAI,OAAO,IACP,QAAO,MAAM,GAAG;AACpB,YAAO,MAAM,2BAA2B;;;AAGhD,SAAM,OAAO,IAAI,OAAO,IAAI;AAC5B,OAAI,MAAM,gBAAgB,CACtB,QAAO,MAAM,KAAK,EAAE;YAEf,MAAM,oBAAoB,CAAC,kBAAkB,CAClD,QAAO,MAAM,KAAK,GAAG,IAAI;OAGzB,OAAM;;;CAIlB,IAAI,SAAS,EAAE;CACf,IAAI,gBAAgB;AACpB,MAAK,SAAS,KAAK,gBAAgB;AAC/B,MAAI,QAAQ,MAAM;AACd,mBAAgB;AAChB,YAAS,EAAE;AACX,UAAO;;AAEX,kBAAgB;AAChB,SAAO,KAAK,CAAC,KAAK,eAAe,GAAG,CAAC;AACrC,SAAO;;AAEX,MAAK,iBAAiB;AAClB,SAAO;;AAEX,MAAK,yBAAyB;AAC1B,SAAO;;AAEX,MAAK,+BAA+B;AAChC,SAAO,GAAG,eAAe;;CAE7B,IAAI,WAAW,EAAE;AACjB,MAAK,WAAW,KAAK,gBAAgB;AACjC,WAAS,KAAK,CAAC,KAAK,eAAe,GAAG,CAAC;;CAE3C,IAAI,WAAW,EAAE;AACjB,MAAK,UAAU,SAASC,UAAQ,KAAK,aAAa,WAAW,SAAS,aAAa,OAAO;AACtF,MAAI,UACA,YAAW,SAAS,KAAI,aAAY;AAChC,YAAS,KAAK;AACd,UAAO;IACT;AAEN,WAAS,KAAK;GAAC;GAAK,eAAe;GAAI;GAAW;GAAS;GAAW,CAAC;;AAE3E,MAAK,oBAAoB;CACzB,IAAI,eAAe,EAAE;AACrB,MAAK,WAAW,SAAS,SAAS,WAAW,MAAM;AAC/C,MAAI,MAAM,QAAQ,UAAU,CACxB,WAAU,SAAQ,MAAK;AACnB,QAAK,SAAS,GAAG,KAAK;IACxB;WAEG,OAAO,cAAc,SAC1B,QAAO,KAAK,UAAU,CAAC,SAAQ,MAAK;AAChC,QAAK,SAAS,GAAG,UAAU,GAAG;IAChC;MAGF,cAAa,aAAa;;AAGlC,MAAK,wBAAwB;CAC7B,IAAI,UAAU,EAAE;AAChB,MAAK,UAAS,QAAO;AACjB,UAAQ,KAAK,IAAI;;CAErB,IAAI,UAAU;CACd,IAAI;AACJ,MAAK,QAAO,SAAQ;AAChB,YAAU;AACV,SAAO;;AAEX,MAAK,gBAAgB;AACjB,MAAIF,OAAK,OAAO,qBAAqB,CACjC,QAAO;AAEX,MAAI,CAAC,SAAS;AACV,UAAO,aAAa;AACpB,aAAU;;AAEd,SAAO;;CAEX,MAAM,wBAAwB;AAC9B,MAAK,mBAAkB,QAAO,wBAAwB;AACtD,MAAK,OAAO,SAAS,OAAO;AACxB,MAAI,kBACA,QAAO;AACX,oBAAkB;EAClB,MAAM,SAAS,MAAM,mBACf,MAAM,KACNA,OAAK,KAAK,SAAS,MAAM,GAAG;EAClC,MAAM,kBAAkB,MAAM,oBAAoB;EAClD,MAAM,mBAAmB,MAAM,qBAAqB;EACpD,MAAM,oBAAoB,MAAM,sBAAsB;EACtD,MAAM,SAAS,MAAM,WAAW;EAChC,MAAM,UAAU,MAAM,YAAY;EAClC,IAAI,OAAO,EAAE;AACb,SAAO,KAAK,OAAO,OAAO,KAAK,aAAa,CAAC;AAC7C,SAAO,KAAK,OAAO,OAAO,KAAK,gBAAgB,CAAC;AAChD,SAAO,KAAK,OAAO,OAAO,KAAK,iBAAiB,CAAC;AACjD,SAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,QAAQ,CAAC;AAChD,SAAO,KAAK,OAAO,oBAAoB;AACvC,SAAO,OAAO,KAAK,KAAK,QAAQ,KAAK,QAAQ;AACzC,OAAI,QAAQ,IACR,KAAI,OAAO;AACf,UAAO;KACR,EAAE,CAAC,CAAC;EACP,MAAM,UAAU,KAAK,SAAS;EAC9B,MAAMG,OAAKH,OAAK,MAAM;GAClB,OAAO;GACP,MAAM,CAAC,CAAC;GACX,CAAC;AACF,MAAI,CAAC,eACD;OAAI,OAAO,QAAQ;AACf,WAAO,SAAQ,YAAS;AACpB,UAAG,IAAI,EAAE,MAAM,GAAGI,QAAM,GAAG,QAAQ,QAAQ,OAAO,IAAI,CAAC;AACvD,SAAIA,QAAM,GACN,MAAG,IAAI;MAAE,MAAM,GAAGA,QAAM;MAAM,SAAS;OAAC;OAAG;OAAG;OAAG;OAAE;MAAE,CAAC;MAE5D;AACF,SAAG,KAAK;cAEH,SAAS,QAAQ;IACtB,IAAI,IAAI;AACR,QAAI,iBAAiB,EACjB,KAAI,GAAG,OAAO,IAAI,GAAG,UAAU,CAAC;QAGhC,KAAI,GAAG,OAAO,IAAI,GAAG,UAAU,CAAC;AAEpC,SAAG,IAAI,GAAG,IAAI;;;AAGtB,MAAI,SAAS,SAAS,KAAM,SAAS,WAAW,KAAK,CAAC,SAAS,GAAG,IAAK;AACnE,QAAG,IAAI,GAAG,YAAY,CAAC;GACvB,MAAM,UAAU,MAAM,oBAAoB,CAAC,YAAY;GACvD,MAAM,iBAAiB,QAAQ,SAAS,SAClC,GAAG,QAAQ,SAAS,KAAK,IAAI,CAAC,KAC9B;AACN,OAAI,MAAM,oBAAoB,CAAC,wBAAwB,CAAC,qBACpD,KACA,YAAW,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,CAAC;GAEhE,MAAM,SAAS,SAAS,GAAG,OAAO,KAAK;AACvC,YAAS,SAAQ,cAAW;IACxB,MAAM,gBAAgB,GAAG,SAAS,iBAAiBF,UAAQ,GAAG,QAAQ,UAAU,GAAG;AACnF,SAAG,KAAK;KACJ,MAAM;KACN,SAAS;MAAC;MAAG;MAAG;MAAG;MAAE;KACrB,OAAO,SAAS,UAAU,SAAS,GAAG,SAAS,iBAAiB,GAAG;KACtE,EAAE,EAAE,MAAMA,UAAQ,IAAI,CAAC;IACxB,MAAM,QAAQ,EAAE;AAChB,QAAIA,UAAQ,GACR,OAAM,KAAK,IAAI,GAAG,UAAU,CAAC,GAAG;AACpC,QAAIA,UAAQ,MAAMA,UAAQ,GAAG,OACzB,OAAM,KAAK,IAAI,GAAG,WAAW,CAAC,GAAGA,UAAQ,GAAG,KAAK,KAAK,CAAC,GAAG;AAE9D,QAAIA,UAAQ,GACR,KAAI,OAAOA,UAAQ,OAAO,SACtB,OAAM,KAAK,IAAI,GAAG,kBAAkBA,UAAQ,GAAG,CAAC,GAAG;QAGnD,OAAM,KAAK,IAAI,GAAG,aAAa,CAAC,GAAG;AAG3C,QAAI,MAAM,OACN,MAAG,IAAI;KACH,MAAM,MAAM,KAAK,IAAI;KACrB,SAAS;MAAC;MAAG;MAAG;MAAG;MAAE;KACrB,OAAO;KACV,CAAC;QAGF,MAAG,KAAK;KAEd;AACF,QAAG,KAAK;;EAEZ,MAAM,aAAa,OAAO,KAAK,QAAQ,MAAM,IAAI,EAAE,EAAE,OAAO,OAAO,KAAK,MAAM,OAAO,WAAW,IAAI,EAAE,CAAC;AACvG,SAAO,KAAK,QAAO,QAAO,CAAC,MAAM,OAAO,WAAW,QAC/C,UAAU,OAAM,WAAU,QAAQ,MAAM,UAAU,EAAE,EAAE,QAAQ,IAAI,KAAK,GAAG,CAAC;EAC/E,MAAM,eAAe,GAAG,WAAW;AACnC,MAAI,CAAC,OAAO,cACR,QAAO,gBAAgB,EAAE;AAC7B,mBAAiB,MAAM,QAAQ,OAAO,QAAQ,aAAa;EAC3D,MAAM,gBAAgB,OAAO,MAAM,KAAK,QAAQ,GAAG,CAAC;EACpD,MAAM,kBAAkB,OAAO,KAAK,OAAO,CACtC,QAAO,cAAa,OAAO,WAAW,SAAS,EAAE,CACjD,KAAI,cAAa;AAYlB,UAAO;IAAE;IAAW,gBAXG,OAAO,WACzB,OAAO,oBAAoB,CAC3B,KAAI,QAAO;AACZ,SAAI,UAAU,SAAS,IAAI,CACvB,QAAO;AACX,UAAK,IAAI,IAAI,GAAG,WAAW,WAAW,UAAU,QAAQ,QAAW,IAC/D,MAAK,QAAQ,MAAM,aAAa,EAAE,EAAE,SAAS,IAAI,CAC7C,QAAO;AAEf,YAAO;MACT;IACkC;IACtC,CACG,QAAQ,EAAE,qBAAqB,eAAe,SAAS,EAAE,CACzD,KAAK,EAAE,WAAW,qBAAqB;AAyBxC,UAAO;IAAE;IAAW;IAAgB,UAxBnB,eAAe,QAAQ,KAAK,QAAQ;AACjD,SAAI,OAAO,CAAC,IAAI,CACX,OAAO,QAAQ,MAAM,QAAQ,EAAE,CAAC,CAChC,KAAI,OAAM;AACX,UAAI,cAAc,KAAK,wBAAwB,CAC3C,QAAO;UAEP,SAAS,UAAU,KAAK,GAAG,GACrB,QAAQ,QAAQ,SAAS,IAAI,GACzB,MACA,OACJ,GAAG,SAAS,IACR,OACA,OAAO;OAEvB,CACG,MAAM,KAAK,QAAQ,aAAa,IAAI,KAAK,aAAa,IAAI,GACzD,IACA,aAAa,IAAI,GACb,IACA,GAAG,CACR,KAAK,KAAK;AACf,YAAO;OACR,EAAE,CAAC;IACwC;IAChD;AAIF,MAH0B,gBACrB,QAAQ,EAAE,gBAAgB,cAAc,KAAK,wBAAwB,CAAC,CACtE,MAAM,EAAE,gBAAgB,eAAe,CAAC,eAAe,OAAM,QAAO,aAAa,SAAS,KAAK,CAAC,CAAC,CAElG,iBACK,QAAQ,EAAE,gBAAgB,cAAc,KAAK,wBAAwB,CAAC,CACtE,SAAS,EAAE,gBAAgB,eAAe;AAC3C,kBAAe,SAAQ,QAAO;AAC1B,QAAI,aAAa,SAAS,KAAK,CAC3B,UAAS,OAAO,eAAe,SAAS,MAAM,EAAc;KAElE;IACJ;AAEN,kBAAgB,SAAS,EAAE,WAAW,gBAAgB,eAAe;AACjE,QAAG,IAAI,UAAU;AACjB,kBAAe,SAAQ,QAAO;IAC1B,MAAM,UAAU,SAAS;IACzB,IAAI,OAAO,aAAa,QAAQ;IAChC,IAAI,OAAO;AACX,QAAI,KAAK,SAAS,sBAAsB,CACpC,QAAO,GAAG,KAAK,UAAU,GAA6B,CAAC;AAC3D,QAAI,QAAQ,QAAQ,SAAS,IAAI,CAC7B,QAAO,IAAI,GAAG,UAAU,CAAC;AAC7B,QAAI,QAAQ,MAAM,SAAS,IAAI,CAC3B,QAAO,IAAI,GAAG,QAAQ,CAAC;AAC3B,QAAI,QAAQ,OAAO,SAAS,IAAI,CAC5B,QAAO,IAAI,GAAG,SAAS,CAAC;AAC5B,QAAI,QAAQ,UAAU,SAAS,IAAI,CAC/B,QAAO,IAAI,GAAG,SAAS,CAAC;AAC5B,QAAI,QAAQ,MAAM,SAAS,IAAI,CAC3B,QAAO,IAAI,GAAG,QAAQ,CAAC;AAC3B,QAAI,QAAQ,OAAO,SAAS,IAAI,CAC5B,QAAO,IAAI,GAAG,SAAS,CAAC;IAC5B,MAAM,mBAAmB,eAAe,OAAO,eAAe,WACxD,IAAI,GAAG,kBAAkB,WAAW,CAAC,KACrC,IAAI,GAAG,aAAa,CAAC;IAC3B,MAAM,QAAQ;KACV,OAAO,oBACD,gBAAgB,kBAAkB,KAAK,GACvC;KACN;KACA,OAAO,kBAAkB,IAAI,GAAG,WAAW,CAAC,KAAK;KACjD,QAAQ,WAAW,QAAQ,QAAQ,OAC7B,IAAI,GAAG,WAAW,CAAC,GAAG,KAAK,kBAAkB,QAAQ,QAAQ,KAAK,CAAC,KACnE;KACN,cAAc,QAAQ,QAAQ,MAAM,QAAQ,mBAAmB,KAAK;KACvE,CACI,OAAO,QAAQ,CACf,KAAK,IAAI;AACd,SAAG,KAAK;KACJ,MAAM,QAAQ,QAAQ;KACtB,SAAS;MAAC;MAAG;MAAG;MAAG,IAAI,eAAe,QAAQ;MAAC;KAC/C,OAAO,SAAS,UAAU,QAAQ,GAAG;KACxC,EAAE,KAAK;IACR,MAAM,yBAAyB,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,kBAC9E;AACJ,QAAI,SAAS,CAAC,uBACV,MAAG,IAAI;KAAE,MAAM;KAAO,SAAS;MAAC;MAAG;MAAG;MAAG;MAAE;KAAE,OAAO;KAAS,CAAC;QAE9D,MAAG,KAAK;KACd;AACF,QAAG,KAAK;IACV;AACF,MAAI,SAAS,QAAQ;AACjB,QAAG,IAAI,GAAG,YAAY,CAAC;AACvB,YAAS,SAAQ,YAAW;AACxB,YAAQ,KAAK,QAAQ,GAAG,QAAQ,QAAQ,OAAO;KACjD;AACF,YAAS,SAAQ,YAAW;AACxB,QAAI,QAAQ,OAAO,GACf,MAAG,IAAI;KACH,MAAM,QAAQ;KACd,SAAS;MAAC;MAAG;MAAG;MAAG;MAAE;KACxB,CAAC;QAGF,MAAG,IAAI;KACH,MAAM,QAAQ;KACd,SAAS;MAAC;MAAG;MAAG;MAAG;MAAE;KACrB,OAAO,SAAS,UAAU,QAAQ,GAAG;KACxC,EAAE,EACC,MAAM,QAAQ,IACjB,CAAC;KAER;AACF,QAAG,KAAK;;AAEZ,MAAI,QAAQ,SAAS,GAAG;GACpB,MAAM,IAAI,QACL,KAAI,WAAU,OAAO,QAAQ,QAAQ,OAAO,CAAC,CAC7C,KAAK,KAAK;AACf,QAAG,IAAI,GAAG,EAAE,IAAI;;AAEpB,SAAOC,KAAG,UAAU,CAAC,QAAQ,QAAQ,GAAG;;CAE5C,SAAS,SAAS,OAAO,SAAS,UAAU;EACxC,IAAI,QAAQ;AACZ,MAAI,CAAC,MAAM,QAAQ,MAAM,CACrB,SAAQ,OAAO,OAAO,MAAM,CAAC,KAAI,MAAK,CAAC,EAAE,CAAC;AAE9C,QAAM,SAAQ,MAAK;AACf,WAAQ,KAAK,IAAIH,OAAK,YAAY,WAAW,GAAG,SAAS,GAAG,QAAQ,EAAE,GAAG,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,eAAe,EAAE,GAAG,EAAE,MAAM;IAC7H;AACF,MAAI,QACA,SAAQ,KAAK,IAAI,OAAO,UAAU,UAAU,IAAK,UAAU,EAAE,GAAG,CAAC;AACrE,SAAO;;CAEX,SAAS,mBAAmB;EACxB,MAAM,kBAAkB,MAAM,oBAAoB;EAClD,MAAM,UAAU,MAAM,YAAY;AAClC,GAAC,OAAO,KAAK,QAAQ,MAAM,IAAI,EAAE,EAAE,SAAQ,QAAO;AAC9C,WAAQ,MAAM,KAAK,SAAQ,UAAS;AAChC,QAAI,aAAa,OACb,MAAK,SAAS,KAAK,aAAa,OAAO;AAC3C,QAAI,SAAS,gBACT,OAAM,aAAa,KAAK,gBAAgB,OAAO;AACnD,QAAI,QAAQ,QAAQ,SAAS,MAAM,CAC/B,OAAM,QAAQ,IAAI;AACtB,QAAI,QAAQ,MAAM,SAAS,MAAM,CAC7B,OAAM,MAAM,IAAI;AACpB,QAAI,QAAQ,OAAO,SAAS,MAAM,CAC9B,OAAM,OAAO,IAAI;AACrB,QAAI,QAAQ,UAAU,SAAS,MAAM,CACjC,OAAM,UAAU,IAAI;AACxB,QAAI,QAAQ,MAAM,SAAS,MAAM,CAC7B,OAAM,MAAM,IAAI;AACpB,QAAI,QAAQ,OAAO,SAAS,MAAM,CAC9B,OAAM,OAAO,IAAI;KACvB;IACJ;;CAEN,IAAI;AACJ,MAAK,mBAAmB,WAAY;AAChC,sBAAoB,KAAK,MAAM;;AAEnC,MAAK,yBAAyB,WAAY;AACtC,sBAAoB;;AAExB,MAAK,uBAAuB,WAAY;AACpC,SAAO,CAAC,CAAC;;CAEb,SAAS,iBAAiB,MAAM,SAAS,QAAQ,cAAc;EAC3D,IAAI,cAAc,EAAE;EACpB,IAAI,UAAU;AACd,SAAO,KAAK,OAAO,CAAC,SAAQ,UAAS;AACjC,iBAAc,YAAY,OAAO,OAAO,OAAO;IACjD;AACF,OAAK,SAAQ,QAAO;AAChB,aAAU,CAAC,IAAI,CAAC,OAAO,QAAQ,KAAK;AACpC,OAAI,CAAC,QAAQ,MAAK,MAAK,YAAY,QAAQ,EAAE,KAAK,GAAG,CACjD,QAAO,cAAc,KAAK,IAAI;IAEpC;AACF,SAAO;;CAEX,SAAS,oBAAoB,KAAK;AAC9B,SAAQ,MAAM,YAAY,CAAC,cAAc,QAAQ,IAAI,GAAG,KACpD,MAAM,OAAO,KAAK,MAAM,YAAY,CAAC;;AAE7C,MAAK,YAAY,UAAU;EACvB,MAAM,SAAS,MAAM,oBAAoB,CAAC,mBAAmB;AAC7D,MAAI,CAAC,MACD,SAAQ;AAEZ,GADa,OAAO,UAAU,aAAa,QAAQ,OAAO,QACrD,KAAK,MAAM,CAAC;;AAErB,MAAK,uBAAsB,OAAM;AAI7B,SAAO;GAAC;GAHY,GAAG,OACjBA,OAAK,OAAO,WAAW,GAAG,MAAM,IAAI,GACpC,GAAG,kBAAkB;GACD;GAAI,CAAC,KAAK,GAAG;;AAE3C,MAAK,oBAAoB,SAAS,kBAAkB,QAAQ,WAAW;EACnE,IAAI,SAAS;EACb,MAAM,MAAM,aAAa;EACzB,MAAM,QAAQ,EAAE,CAAC,OAAO,OAAO;AAC/B,MAAI,CAAC,UAAU,CAAC,MAAM,OAClB,QAAO;AACX,QAAM,SAAQ,UAAS;AACnB,OAAI,OAAO,OACP,WAAU;AACd,aAAU,KAAK,UAAU,MAAM;IACjC;AACF,SAAO;;CAEX,SAAS,cAAc,OAAO,oBAAoB;EAC9C,IAAI,SAAS,IAAI,GAAG,WAAW,CAAC;AAChC,MAAI,UAAU,UAAa,CAAC,mBACxB,QAAO;AACX,MAAI,mBACA,WAAU;MAGV,SAAQ,OAAO,OAAf;GACI,KAAK;AACD,cAAU,IAAI,MAAM;AACpB;GACJ,KAAK;AACD,cAAU,KAAK,UAAU,MAAM;AAC/B;GACJ,QACI,WAAU;;AAGtB,SAAO,GAAG,OAAO;;CAErB,SAAS,cAAc;EACnB,MAAMK,aAAW;AACjB,MAAIL,OAAK,QAAQ,WACb,QAAO,KAAK,IAAIK,YAAUL,OAAK,QAAQ,WAAW;MAGlD,QAAOK;;CAGf,IAAI,UAAU;AACd,MAAK,WAAU,QAAO;AAClB,YAAU;;AAEd,MAAK,eAAc,UAAS;EACxB,MAAM,SAAS,MAAM,oBAAoB,CAAC,mBAAmB;AAC7D,MAAI,CAAC,MACD,SAAQ;AAEZ,GADa,OAAO,UAAU,aAAa,QAAQ,OAAO,QACrD,QAAQ;;AAEjB,MAAK,QAAQ,SAAS,MAAM,aAAa;AACrC,gBAAc;AACd,kBAAgB;AAChB,WAAS,EAAE;AACX,kBAAgB;AAChB,YAAU,EAAE;AACZ,aAAW,EAAE;AACb,aAAW,EAAE;AACb,iBAAe,UAAU,eAAc,MAAK,CAAC,YAAY,GAAG;AAC5D,SAAO;;CAEX,MAAM,UAAU,EAAE;AAClB,MAAK,SAAS,SAAS,SAAS;AAC5B,UAAQ,KAAK;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC;;AAEN,MAAK,WAAW,SAAS,SAAS,iBAAiB,OAAO;EACtD,MAAM,SAAS,QAAQ,KAAK;AAC5B,MAAI,CAAC,OACD;AACJ,MAAI,gBAAgB;AAChB,kBAAe;IAAE,GAAG,OAAO;IAAc,GAAG;IAAc;AAC1D,cAAW,CAAC,GAAG,OAAO,UAAU,GAAG,SAAS;AAC5C,YAAS,CAAC,GAAG,OAAO,QAAQ,GAAG,OAAO;AACtC,cAAW,CAAC,GAAG,OAAO,UAAU,GAAG,SAAS;AAC5C,aAAU,CAAC,GAAG,OAAO,SAAS,GAAG,QAAQ;QAGzC,EAAC,CACG,aACA,eACA,QACA,eACA,SACA,UACA,UACA,gBACA;;AAGZ,QAAO;;AAEX,SAAS,eAAe,MAAM;AAC1B,QAAO,OAAO,SAAS;;AAE3B,SAAS,eAAe,MAAM,QAAQ;AAClC,QAAO,eAAe,KAAK,GACrB;EAAE,MAAM,KAAK;EAAM,aAAa,KAAK,cAAc;EAAQ,GAC3D;EAAE;EAAM,aAAa;EAAQ;;AAEvC,SAAS,eAAe,MAAM;AAC1B,QAAO,eAAe,KAAK,GAAG,KAAK,cAAc;;AAErD,SAAS,QAAQ,MAAM;AACnB,QAAO,eAAe,KAAK,GAAG,KAAK,OAAO;;;;;ACtkB9C,MAAa,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BpC,MAAa,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBrC,IAAa,aAAb,MAAwB;CACpB,YAAY,OAAO,SAAO,WAAS,QAAM;EACrC,IAAIC,MAAIC,MAAIC;AACZ,OAAK,QAAQ;AACb,OAAK,QAAQC;AACb,OAAK,UAAUC;AACf,OAAK,OAAOC;AACZ,OAAK,gBAAgB;AACrB,OAAK,UAAU;AACf,OAAK,2BAA2B;AAChC,OAAK,sBAAsB;AAC3B,OAAK,YACA,SAAQ,OAAK,KAAK,KAAK,OAAO,QAAQ,MAAM,QAAQL,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,SAAS,MAAM,OAC1F,OAAK,KAAK,KAAK,OAAO,WAAW,MAAM,QAAQC,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,SAAS,MAAM,OAAQ,QAAQC,SAAO,KAAK,IAAIA,OAAK;;CAE7I,kBAAkB,MAAM,QAAM,SAAS,MAAM;EACzC,MAAM,WAAW,KAAK,QAAQ,oBAAoB;AAClD,OAAK,IAAI,IAAI,GAAG,KAAK,KAAK,QAAQ,IAAI,IAAI,EAAE,EACxC,KAAI,SAAS,KAAK,OAAO,SAAS,KAAK,IAAI,SAAS;GAChD,MAAM,UAAU,SAAS,KAAK,IAAI;AAClC,OAAI,yBAAyB,QAAQ,EAAE;AACnC,SAAK,sBAAsB,IAAI;IAC/B,MAAM,IAAI,KAAK,MAAM,oBAAoB,CAAC,OAAO;AACjD,YAAQ,GAAG,KAAK;AAChB,WAAO,EAAE;;;EAIrB,MAAM,cAAc,EAAE;AACtB,OAAK,mBAAmB,aAAa,MAAM,QAAQ;AACnD,OAAK,kBAAkB,aAAa,MAAMI,QAAM,QAAQ;AACxD,OAAK,8BAA8B,aAAa,MAAMA,QAAM,QAAQ;AACpE,OAAK,kCAAkC,aAAa,MAAMA,QAAM,QAAQ;AACxE,OAAK,MAAM,YAAY;;CAE3B,mBAAmB,aAAa,MAAM,SAAS;EAC3C,MAAM,iBAAiB,KAAK,MACvB,oBAAoB,CACpB,YAAY,CAAC;AAClB,MAAI,CAAC,QAAQ,MAAM,KAAK,IACpB,eAAe,eAAe,SAAS,OAAO,WAC9C,CAAC,KAAK,sBAAsB,KAAK,CACjC,MAAK,MAAM,aAAa,CAAC,SAAQ,iBAAgB;GAC7C,MAAM,cAAc,aAAa,aAAa,GAAG,CAAC;AAClD,OAAI,KAAK,QAAQ,YAAY,KAAK,GAC9B,KAAI,CAAC,KAAK,SACN,aAAY,KAAK,YAAY;QAE5B;IACD,MAAM,OAAO,aAAa,MAAM;AAChC,gBAAY,KAAK,YAAY,QAAQ,MAAM,MAAM,GAAG,MAAM,KAAK;;IAGzE;;CAGV,kBAAkB,aAAa,MAAM,QAAM,SAAS;AAChD,OAAK,QAAQ,MAAM,KAAK,IAAK,YAAY,MAAM,YAAY,WAAW,MAClE,CAAC,KAAK,sBAAsB,KAAK,EAAE;GACnC,MAAM,UAAU,KAAK,MAAM,YAAY;GACvC,MAAM,iBAAiB,KAAK,MAAM,WAAW,CAAC,KAAK,MAAM,wBAAwB,KAAK,EAAE;AACxF,UAAO,KAAK,QAAQ,IAAI,CAAC,SAAQ,QAAO;IACpC,MAAM,UAAU,CAAC,CAAC,QAAQ,cAAc,uBACpC,QAAQ,QAAQ,SAAS,IAAI;AAEjC,QAAI,CADoB,eAAe,SAAS,IAAI,IAEhD,CAAC,QAAQ,cAAc,SAAS,IAAI,IACpC,CAAC,KAAK,eAAe,MAAM,KAAK,QAAQ,CACxC,MAAK,kBAAkB,KAAK,aAAa,SAAS,WAAW,CAAC,CAAC,QAAQ,QAAQ,KAAK;KAE1F;;;CAGV,8BAA8B,aAAa,MAAM,QAAM,SAAS;AAC5D,MAAI,KAAK,sBAAsB,KAAK,EAAE;GAClC,MAAM,UAAU,KAAK,sBAAsB,KAAK;AAChD,OAAI,WAAW,QAAQ,SAAS,EAC5B,aAAY,KAAK,GAAG,QAAQ,KAAI,MAAK,EAAE,QAAQ,MAAM,MAAM,CAAC,CAAC;;;CAIzE,kCAAkC,aAAa,MAAM,QAAM,SAAS;AAChE,MAAI,YAAY,MACZ,YAAY,SAAS,KACrB,KAAK,sBAAsB,KAAK,CAChC;EAEJ,MAAM,iBAAiB,KAAK,MAAM,WAAW,CAAC,KAAK,MAAM,wBAAwB,KAAK,EAAE;EACxF,MAAM,SAAS,KAAK,IAAI,KAAK,qBAAqB,KAAK,MAAM,oBAAoB,CAAC,YAAY,CAAC,SAAS,SACpG,EAAE;EACN,MAAM,gBAAgB,eAAeA,OAAK,EAAE,SAAS,SAAS;AAC9D,MAAI,CAAC,cACD;EAEJ,MAAM,UAAU,KAAK,MAAM,YAAY,CAAC,QAAQ,kBAAkB,EAAE;AACpE,OAAK,MAAM,UAAU,QACjB,KAAI,OAAO,WAAW,QAAQ,CAC1B,aAAY,KAAK,OAAO,QAAQ,MAAM,MAAM,CAAC;;CAIzD,sBAAsB,MAAM;AACxB,MAAI,KAAK,SAAS,EACd;EACJ,IAAI,cAAc,KAAK,KAAK,SAAS;EACrC,IAAI,SAAS;AACb,MAAI,CAAC,YAAY,WAAW,IAAI,IAAI,KAAK,SAAS,GAAG;AACjD,YAAS;AACT,iBAAc,KAAK,KAAK,SAAS;;AAErC,MAAI,CAAC,YAAY,WAAW,IAAI,CAC5B;EACJ,MAAM,iBAAiB,YAAY,QAAQ,OAAO,GAAG;EACrD,MAAM,UAAU,KAAK,MAAM,YAAY;EACvC,MAAM,kBAAkB,CACpB,gBACA,GAAI,KAAK,MAAM,YAAY,CAAC,mBAAmB,EAAE,CACpD;EACD,IAAI;AACJ,OAAK,MAAM,iBAAiB,gBACxB,KAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,KAAK,cAAc,IAChE,MAAM,QAAQ,QAAQ,QAAQ,eAAe,EAAE;AAC/C,aAAU,QAAQ,QAAQ;AAC1B;;AAGR,MAAI,QACA,QAAO,QAAQ,QAAO,WAAU,CAAC,UAAU,OAAO,WAAW,OAAO,CAAC;;CAG7E,sBAAsB,MAAM;EACxB,MAAM,UAAU,KAAK,sBAAsB,KAAK;AAChD,SAAO,YAAY,UAAa,QAAQ,SAAS;;CAErD,eAAe,MAAM,KAAK,SAAS;EAC/B,MAAM,gBAAgB,MAAM,KAAK,SAAS,WAAW,KAAK,EAAE,GAAG,MAAM,QAAQ,EAAE,KAAK;AACpF,MAAI,aAAa,IAAI,CACjB,QAAO;AACX,MAAI,WAAW,aAAa,MAAM,MAAM,CACpC,QAAO;AACX,MAAI,KAAK,SACL;QAAK,MAAM,SAAS,KAAK,QAAQ,KAC7B,KAAI,aAAa,MAAM,CACnB,QAAO;;AAGnB,SAAO;;CAEX,kBAAkB,KAAK,aAAa,SAAS,SAAS;EAClD,IAAIN,MAAIC,MAAIC,MAAI;EAChB,IAAI,cAAc;AAClB,MAAI,KAAK,UAAU;GACf,MAAM,QAAQ,KAAK,MAAM,iBAAiB;GAC1C,MAAM,YAAY,QAAM,OAAK,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,aAAa,QAAQF,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,UAAU,QAAQC,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,MAAK,UAAS;IACvL,MAAMM,SAAO,MAAM;AACnB,WAAO,OAAOA,WAAS,YAAYA,OAAK,SAAS;KACnD;GACF,MAAM,gBAAgB,WAAW,MAAM,YAAY;GACnD,MAAM,QAAQ,MAAM,OAAK,MAAM,UAAU,QAAQL,SAAO,KAAK,IAAIA,OAAK,mBAAmB,QAAQ,OAAO,KAAK,IAAI,KAAK;AACtH,iBAAc,GAAG,IAAI,QAAQ,MAAM,MAAM,CAAC,GAAG,KACxC,QAAQ,oBAAoB,GAAG,CAC/B,QAAQ,kBAAkB,IAAI;;EAEvC,MAAM,qBAAqB,MAAM,MAAM,KAAK,EAAE;EAC9C,MAAM,iBAAiB,MAAM,WAAW,KAAK,EAAE;EAC/C,MAAM,SAAS,CAAC,kBAAkB,QAAQ,IAAI,cAAc,IAAI,GAAG,MAAM;AACzE,cAAY,KAAK,SAAS,YAAY;AACtC,MAAI,QACA,aAAY,KAAK,SAAS,QAAQ,YAAY;;CAGtD,iBAAiB,MAAM,QAAM,SAAS,MAAM;AACxC,uBAAqB,KAAK,0BAA0B,MAAM,KAAK,KAAK;AACpE,MAAI,yBAAyB,KAAK,yBAAyB,EAAE;GACzD,MAAM,SAAS,KAAK,yBAAyB,SAASI,OAAK;AAC3D,OAAI,UAAU,OAAO,CACjB,QAAO,OACF,MAAK,SAAQ;AACd,SAAK,KAAK,QAAQ,eAAe;AAC7B,UAAK,MAAM,KAAK;MAClB;KACJ,CACG,OAAM,QAAO;AACd,SAAK,KAAK,QAAQ,eAAe;AAC7B,UAAK,KAAK,OAAU;MACtB;KACJ;AAEN,UAAO,KAAK,MAAM,OAAO;aAEpB,6BAA6B,KAAK,yBAAyB,CAChE,QAAO,KAAK,yBAAyB,SAASA,SAAO,cAAc,SAAS,KAAK,kBAAkB,MAAMA,QAAM,SAAS,YAAY,GAAE,gBAAe;AACjJ,QAAK,MAAM,YAAY;IACzB;MAGF,QAAO,KAAK,yBAAyB,SAASA,SAAM,gBAAe;AAC/D,QAAK,MAAM,YAAY;IACzB;;CAGV,cAAc,MAAM,MAAM;EACtB,MAAM,UAAU,KAAK,SAAS,KAAK,KAAK,SAAS,KAAK;EACtD,MAAMA,SAAO,KAAK,MAAM,MAAM,MAAM,KAAK;EACzC,MAAM,qBAAqB,KAAK,4BACzB,WAAS,KAAK,iBAAiB,MAAMA,QAAM,SAAS,KAAK,IACzD,WAAS,KAAK,kBAAkB,MAAMA,QAAM,SAAS,KAAK;AACjE,SAAO,UAAUA,OAAK,GAChBA,OAAK,KAAK,mBAAmB,GAC7B,mBAAmBA,OAAK;;CAElC,yBAAyB,IAAI,KAAK;EAC9B,IAAI,SAAS,KAAK,WACZE,wBACAC;EACN,MAAM,OAAO,KAAK,KAAK,KAAK,SAAS,GAAG;AACxC,MAAI,GAAG,MAAM,QAAQ,CACjB,MAAK,KAAK;AACd,WAAS,OAAO,QAAQ,iBAAiB,KAAK;AAC9C,WAAS,OAAO,QAAQ,2BAA2B,IAAI;AACvD,SAAO,OAAO,QAAQ,iBAAiB,GAAG;;CAE9C,iBAAiB,IAAI;AACjB,OAAK,2BAA2B;;CAEpC,UAAU,QAAQ;AACd,OAAK,UAAU,OAAO;;;AAG9B,SAAgB,WAAW,OAAO,SAAO,WAAS,QAAM;AACpD,QAAO,IAAI,WAAW,OAAON,SAAOC,WAASC,OAAK;;AAEtD,SAAS,yBAAyB,oBAAoB;AAClD,QAAO,mBAAmB,SAAS;;AAEvC,SAAS,6BAA6B,oBAAoB;AACtD,QAAO,mBAAmB,SAAS;;;;;ACjPvC,SAAgB,YAAY,GAAG,GAAG;AAC9B,KAAI,EAAE,WAAW,EACb,QAAO,EAAE;AACb,KAAI,EAAE,WAAW,EACb,QAAO,EAAE;CACb,MAAM,SAAS,EAAE;CACjB,IAAI;AACJ,MAAK,IAAI,GAAG,KAAK,EAAE,QAAQ,IACvB,QAAO,KAAK,CAAC,EAAE;CAEnB,IAAI;AACJ,MAAK,IAAI,GAAG,KAAK,EAAE,QAAQ,IACvB,QAAO,GAAG,KAAK;AAEnB,MAAK,IAAI,GAAG,KAAK,EAAE,QAAQ,IACvB,MAAK,IAAI,GAAG,KAAK,EAAE,QAAQ,IACvB,KAAI,EAAE,OAAO,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CACnC,QAAO,GAAG,KAAK,OAAO,IAAI,GAAG,IAAI;UAG7B,IAAI,KACJ,IAAI,KACJ,EAAE,OAAO,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,IACnC,EAAE,OAAO,IAAI,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE,CACnC,QAAO,GAAG,KAAK,OAAO,IAAI,GAAG,IAAI,KAAK;KAGtC,QAAO,GAAG,KAAK,KAAK,IAAI,OAAO,IAAI,GAAG,IAAI,KAAK,GAAG,KAAK,IAAI,OAAO,GAAG,IAAI,KAAK,GAAG,OAAO,IAAI,GAAG,KAAK,EAAE,CAAC;AAKvH,QAAO,OAAO,EAAE,QAAQ,EAAE;;;;;AC5B9B,MAAM,cAAc;CAAC;CAAM;CAAM;CAAI;AACrC,SAAgB,WAAW,OAAO,SAAO,QAAM;CAC3C,MAAM,KAAKK,OAAK,KAAK;CACrB,MAAM,MAAMA,OAAK,KAAK;CACtB,MAAM,OAAO,EAAE;AACf,MAAK,iBAAiB,SAAS,eAAe,QAAM;EAChD,MAAM,mBAAmB,MAAM,qBAAqB;EAEpD,MAAM,KADkBC,OAAK,EAAE,UAAUA,OAAK,QAAQA,OAAK,MAAM,SAAS,KAC7C,MAAM,oBAAoB,CAAC,YAAY,CAAC,SAAS;AAC9E,MAAI,iBAAiB,MAChB,KAAK,iBAAiB,EAAE,OAAO,KAAK,iBAAiB,EAAE,MACxD;OAAI,KAAK,iBAAiB,EAAE,IACxB,KAAI,iBAAiB,EAAE,WAAW,OAC9B,SAAM,KAAK,iBAAiB,EAAE,SACxB,iBAAiB,EAAE,OAChB,QAAQ,QAAQ,GAAG,UAAU,CAAC,CAC9B,QAAQ,OAAO,iBAAiB,EAAE,IAAI,UAAU,CAAC,GACpD,KAAK;OAGX,SAAM,KAAK,IAAI,6DAA6D,6DAA6D,IAAI,GAAG,UAAU,EAAE,iBAAiB,EAAE,IAAI,UAAU,CAAC,CAAC;YAG9L,KAAK,iBAAiB,EAAE,IAC7B,KAAI,iBAAiB,EAAE,WAAW,OAC9B,SAAM,KAAK,iBAAiB,EAAE,SACxB,iBAAiB,EAAE,OAChB,QAAQ,QAAQ,GAAG,UAAU,CAAC,CAC9B,QAAQ,OAAO,iBAAiB,EAAE,IAAI,UAAU,CAAC,GACpD,KAAK;OAGX,SAAM,KAAK,IAAI,wDAAwD,wDAAwD,IAAI,GAAG,UAAU,EAAE,iBAAiB,EAAE,IAAI,UAAU,CAAC,CAAC;;;AAKrM,MAAK,kBAAkB,SAAS,gBAAgB,UAAU,UAAU;AAChE,MAAI,WAAW,SACX,SAAM,KAAK,IAAI,6DAA6D,6DAA6D,UAAU,WAAW,IAAI,WAAW,GAAG,CAAC;;AAGzL,MAAK,oBAAoB,SAAS,kBAAkB,QAAM,iBAAiB;EACvE,IAAI,UAAU;AACd,OAAK,MAAM,OAAO,OAAO,KAAK,gBAAgB,CAC1C,KAAI,CAAC,OAAO,UAAU,eAAe,KAAKA,QAAM,IAAI,IAChD,OAAOA,OAAK,SAAS,aAAa;AAClC,aAAU,WAAW,EAAE;AACvB,WAAQ,OAAO,gBAAgB;;AAGvC,MAAI,SAAS;GACT,MAAM,aAAa,EAAE;AACrB,QAAK,MAAM,OAAO,OAAO,KAAK,QAAQ,EAAE;IACpC,MAAM,MAAM,QAAQ;AACpB,QAAI,OAAO,WAAW,QAAQ,IAAI,GAAG,EACjC,YAAW,KAAK,IAAI;;GAG5B,MAAM,YAAY,WAAW,SAAS,KAAK,WAAW,KAAK,KAAK,KAAK;AACrE,WAAM,KAAK,IAAI,iCAAiC,kCAAkC,OAAO,KAAK,QAAQ,CAAC,QAAQ,OAAO,KAAK,QAAQ,CAAC,KAAK,KAAK,GAAG,UAAU,CAAC;;;AAGpK,MAAK,mBAAmB,SAAS,iBAAiB,QAAM,SAAS,eAAe,kBAAkB,mBAAmB,MAAM;EACvH,IAAIC;EACJ,MAAM,cAAc,MACf,oBAAoB,CACpB,oBAAoB,CACpB,aAAa;EAClB,MAAM,UAAU,EAAE;EAClB,MAAM,iBAAiB,MAAM,oBAAoB,CAAC,YAAY;AAC9D,SAAO,KAAKD,OAAK,CAAC,SAAQ,QAAO;AAC7B,OAAI,CAAC,YAAY,SAAS,IAAI,IAC1B,CAAC,OAAO,UAAU,eAAe,KAAK,eAAe,IAAI,IACzD,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,IACxF,CAAC,KAAK,4BAA4B,KAAK,QAAQ,CAC/C,SAAQ,KAAK,IAAI;IAEvB;AACF,MAAI,qBACC,eAAe,SAAS,SAAS,KAC9B,YAAY,SAAS,KACrB,kBACJ,QAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC,SAAQ,QAAO;AACxD,OAAI,CAAC,YAAY,SAAS,KAAK,IAAI,CAC/B,SAAQ,KAAK,KAAK,IAAI;IAE5B;AAEN,MAAI,kBAAkB;GAElB,MAAM,sBAAsB,OADH,MAAM,qBAAqB,CACF,OAAO,QAAQC,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,QAAQ;GACrG,MAAM,WAAW,eAAe,SAAS,SAAS;AAClD,OAAI,WAAWD,OAAK,EAAE,OAClB,QAAK,EAAE,MAAM,SAAS,CAAC,SAAQ,QAAO;AAClC,UAAM,OAAO,IAAI;AACjB,QAAI,CAAC,eAAe,SAAS,SAAS,IAAI,IACtC,CAAC,QAAQ,SAAS,IAAI,CACtB,SAAQ,KAAK,IAAI;KAEvB;;AAGV,MAAI,QAAQ,OACR,SAAM,KAAK,IAAI,wBAAwB,yBAAyB,QAAQ,QAAQ,QAAQ,KAAI,MAAM,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,GAAI,CAAC,KAAK,KAAK,CAAC,CAAC;;AAGhJ,MAAK,kBAAkB,SAAS,gBAAgB,QAAM;EAClD,MAAM,cAAc,MACf,oBAAoB,CACpB,oBAAoB,CACpB,aAAa;EAClB,MAAM,UAAU,EAAE;EAClB,MAAM,iBAAiB,MAAM,oBAAoB,CAAC,YAAY;AAC9D,MAAI,eAAe,SAAS,SAAS,KAAK,YAAY,SAAS,EAC3D,QAAK,EAAE,MAAM,eAAe,SAAS,OAAO,CAAC,SAAQ,QAAO;AACxD,OAAI,CAAC,YAAY,SAAS,KAAK,IAAI,CAC/B,SAAQ,KAAK,KAAK,IAAI;IAE5B;AAEN,MAAI,QAAQ,SAAS,GAAG;AACpB,WAAM,KAAK,IAAI,uBAAuB,wBAAwB,QAAQ,QAAQ,QAAQ,KAAK,KAAK,CAAC,CAAC;AAClG,UAAO;QAGP,QAAO;;AAGf,MAAK,8BAA8B,SAAS,4BAA4B,KAAK,SAAS;AAClF,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,SAAS,IAAI,CACnD,QAAO;EAEX,MAAM,aAAa,MAAM,OAAO;AAChC,SAAO,CAAC,KAAK,GAAG,QAAQ,KAAK,CAAC,MAAK,MAAK,CAAC,OAAO,UAAU,eAAe,KAAK,YAAY,EAAE,IAAI,CAAC,WAAW,KAAK;;AAErH,MAAK,iBAAiB,SAAS,eAAe,QAAM;EAChD,MAAM,UAAU,MAAM,YAAY;EAClC,MAAM,UAAU,EAAE;AAClB,MAAI,CAAC,OAAO,KAAK,QAAQ,QAAQ,CAAC,OAC9B;AACJ,SAAO,KAAKA,OAAK,CAAC,SAAQ,QAAO;AAC7B,OAAI,YAAY,QAAQ,IAAI,KAAK,MAC7B,OAAO,UAAU,eAAe,KAAK,QAAQ,SAAS,IAAI,CAC1D,GAAE,CAAC,OAAOA,OAAK,KAAK,CAAC,SAAQ,UAAS;AAClC,QAAI,QAAQ,QAAQ,KAAK,QAAQ,MAAM,KAAK,MACxC,UAAU,OACV,SAAQ,QAAQ,QAAQ,QAAQ,EAAE,EAAE,OAAO,MAAM;KAEvD;IAER;EACF,MAAM,cAAc,OAAO,KAAK,QAAQ;AACxC,MAAI,CAAC,YAAY,OACb;EACJ,IAAI,MAAM,GAAG,kBAAkB;AAC/B,cAAY,SAAQ,QAAO;AACvB,UAAO,OAAO,GAAG,wCAAwC,KAAKE,QAAM,kBAAkB,QAAQ,KAAK,EAAEA,QAAM,kBAAkB,QAAQ,QAAQ,KAAK,CAAC;IACrJ;AACF,UAAM,KAAK,IAAI;;CAEnB,IAAI,UAAU,EAAE;AAChB,MAAK,UAAU,SAAS,QAAQ,KAAK,OAAO;AACxC,UAAQ,yCAAyC,CAAC,KAAK,MAAM,EAAE,UAAU,OAAO;AAChF,MAAI,OAAO,QAAQ,SACf,QAAO,KAAK,IAAI,CAAC,SAAQ,MAAK;AAC1B,QAAK,QAAQ,GAAG,IAAI,GAAG;IACzB;OAED;AACD,SAAM,OAAO,IAAI;AACjB,OAAI,CAAC,QAAQ,KACT,SAAQ,OAAO,EAAE;AAErB,OAAI,MAAM,QAAQ,MAAM,CACpB,OAAM,SAAQ,MAAK,KAAK,QAAQ,KAAK,EAAE,CAAC;QAEvC;AACD,yBAAqB,OAAO,QAAWH,OAAK;AAC5C,YAAQ,KAAK,KAAK,MAAM;;;;AAIpC,MAAK,aAAa,SAAS,aAAa;AACpC,SAAO;;CAEX,SAAS,UAAU,QAAM,KAAK;EAC1B,MAAM,MAAM,OAAO,IAAI;AACvB,QAAM,MAAM,IAAI,GAAG,MAAM;AACzB,MAAI,OAAO,QAAQ,SACf,OAAMC,OAAK,EAAE,UAAU;WAElB,IAAI,MAAM,WAAW,EAAE;AAC5B,SAAM,IAAI,MAAM,aAAa,CAAC;AAC9B,SAAM,CAAC,OAAO,UAAU,eAAe,KAAKA,QAAM,IAAI;QAGtD,OAAM,OAAO,UAAU,eAAe,KAAKA,QAAM,IAAI;AAEzD,SAAO;;AAEX,MAAK,eAAe,SAAS,aAAa,QAAM;EAC5C,MAAM,YAAY,EAAE;AACpB,SAAO,KAAK,QAAQ,CAAC,SAAQ,QAAO;GAChC,MAAM,UAAU;AAChB,IAAC,QAAQ,QAAQ,EAAE,EAAE,SAAQ,UAAS;IAClC,IAAIG,QAAM;IACV,MAAM,YAAY;AAClB,YAAM,UAAUH,QAAMG,MAAI;AAC1B,YAAQ,UAAUH,QAAM,MAAM;AAC9B,QAAIG,SAAO,CAAC,MACR,WAAU,KAAK,IAAI,QAAQ,MAAM,YAAY;KAEnD;IACJ;AACF,MAAI,UAAU,QAAQ;GAClB,IAAI,MAAM,GAAG,GAAG,uBAAuB,CAAC;AACxC,aAAU,SAAQ,UAAS;AACvB,WAAO;KACT;AACF,WAAM,KAAK,IAAI;;;CAGvB,IAAI,cAAc,EAAE;AACpB,MAAK,YAAY,SAAS,UAAU,KAAK,OAAO;AAC5C,UAAQ,kCAAkC,CAAC,KAAK,MAAM,EAAE,UAAU,OAAO;AACzE,MAAI,OAAO,QAAQ,SACf,QAAO,KAAK,IAAI,CAAC,SAAQ,MAAK;AAC1B,QAAK,UAAU,GAAG,IAAI,GAAG;IAC3B;OAED;AACD,SAAM,OAAO,IAAI;AACjB,OAAI,CAAC,YAAY,KACb,aAAY,OAAO,EAAE;AAEzB,OAAI,MAAM,QAAQ,MAAM,CACpB,OAAM,SAAQ,MAAK,KAAK,UAAU,KAAK,EAAE,CAAC;OAG1C,aAAY,KAAK,KAAK,MAAM;;;AAIxC,MAAK,uBAAuB;AAC5B,MAAK,cAAc,SAAS,cAAc,QAAM;AAC5C,SAAO,KAAKH,OAAK,CAAC,SAAQ,QAAO;AAC7B,OAAI,YAAY,KACZ,aAAY,KAAK,SAAQ,UAAS;AAC9B,QAAI,SAASA,OAAK,SAAS,UAAaA,OAAK,WAAW,OACpD,SAAM,KAAK,GAAG,8CAA8C,KAAK,MAAM,CAAC;KAE9E;IAER;AACF,MAAI,MAAM,oBAAoB,CAAC,wBAAwB,CAAC,gBACpD,QAAO,KAAK,YAAY,CAAC,SAAQ,QAAO;AACpC,eAAY,KAAK,SAAQ,UAAS;AAC9B,QAAI,SACAA,OAAKD,OAAK,OAAO,UAAU,IAAI,MAAM,UACrCC,OAAKD,OAAK,OAAO,UAAU,MAAM,MAAM,OACvC,SAAM,KAAK,GAAG,8CAA8C,KAAK,MAAM,CAAC;KAE9E;IACJ;;AAGV,MAAK,oBAAoB,SAAS,kBAAkB,KAAK,mBAAmB;EACxE,MAAM,YAAY;AAClB,sBAAoB,kBAAkB,MAAM,GAAG,MAAM,EAAE,SAAS,EAAE,OAAO;EACzE,IAAI,cAAc;EAClB,IAAI,eAAe;AACnB,OAAK,IAAI,IAAI,GAAG,YAAY,YAAY,kBAAkB,QAAQ,QAAW,KAAK;GAC9E,MAAM,IAAIK,YAAS,KAAK,UAAU;AAClC,OAAI,KAAK,aAAa,IAAI,cAAc;AACpC,mBAAe;AACf,kBAAc;;;AAGtB,MAAI,YACA,SAAM,KAAK,GAAG,oBAAoB,YAAY,CAAC;;AAEvD,MAAK,QAAQ,SAAS,MAAM,aAAa;AACrC,YAAU,UAAU,UAAS,MAAK,CAAC,YAAY,GAAG;AAClD,gBAAc,UAAU,cAAa,MAAK,CAAC,YAAY,GAAG;AAC1D,SAAO;;CAEX,MAAM,UAAU,EAAE;AAClB,MAAK,SAAS,SAAS,SAAS;AAC5B,UAAQ,KAAK;GACT;GACA;GACH,CAAC;;AAEN,MAAK,WAAW,SAAS,WAAW;EAChC,MAAM,SAAS,QAAQ,KAAK;AAC5B,uBAAqB,QAAQ,QAAWL,OAAK;AAC7C,GAAC,CAAE,SAAS,eAAgB;;AAEhC,QAAO;;;;;AC9SX,IAAI,2BAA2B,EAAE;AACjC,IAAI;AACJ,SAAgB,aAAa,QAAQ,KAAK,cAAc,OAAO;AAC3D,QAAO;CACP,IAAI,gBAAgB,EAAE;AACtB,KAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,UAAU,EAAE;AACzD,MAAI,OAAO,OAAO,YAAY,SAC1B,QAAO;EACX,MAAM,SAAS,iBAAiB,KAAK,OAAO,QAAQ;EACpD,IAAI,gBAAgB;AACpB,MAAI,CAAC,OACD,KAAI;AACA,mBAAgB,OAAO,KAAK,QAAQ,OAAO,QAAQ;WAEhD,MAAM;AACT,UAAO;;MAIX,iBAAgB,uBAAuB,KAAK,OAAO,QAAQ;AAE/D,0BAAwB,cAAc;AACtC,2BAAyB,KAAK,cAAc;AAC5C,kBAAgB,SACV,KAAK,MAAM,KAAK,aAAa,eAAe,OAAO,CAAC,GACpD,MAAM,QAAQ,OAAO,QAAQ;AACnC,SAAO,OAAO;AACd,kBAAgB,aAAa,eAAe,KAAK,KAAK,QAAQ,cAAc,EAAE,cAAc,KAAK;;AAErG,4BAA2B,EAAE;AAC7B,QAAO,eACD,UAAU,eAAe,OAAO,GAChC,OAAO,OAAO,EAAE,EAAE,eAAe,OAAO;;AAElD,SAAS,wBAAwB,SAAS;AACtC,KAAI,yBAAyB,QAAQ,QAAQ,GAAG,GAC5C,OAAM,IAAI,OAAO,sCAAsC,QAAQ,IAAI;;AAG3E,SAAS,uBAAuB,KAAK,cAAc;AAC/C,QAAO,KAAK,KAAK,QAAQ,KAAK,aAAa;;AAE/C,SAAS,UAAU,SAAS,SAAS;CACjC,MAAM,SAAS,EAAE;CACjB,SAAS,SAAS,KAAK;AACnB,SAAO,OAAO,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI;;AAEhE,QAAO,OAAO,QAAQ,QAAQ;AAC9B,MAAK,MAAM,OAAO,OAAO,KAAK,QAAQ,CAClC,KAAI,SAAS,QAAQ,KAAK,IAAI,SAAS,OAAO,KAAK,CAC/C,QAAO,OAAO,UAAU,QAAQ,MAAM,QAAQ,KAAK;KAGnD,QAAO,OAAO,QAAQ;AAG9B,QAAO;;;;;ACzDX,IAAI,4CAAuC,0BAA2B,SAAU,UAAU,OAAO,OAAO,MAAM,GAAG;AAC7G,KAAI,SAAS,IAAK,OAAM,IAAI,UAAU,iCAAiC;AACvE,KAAI,SAAS,OAAO,CAAC,EAAG,OAAM,IAAI,UAAU,gDAAgD;AAC5F,KAAI,OAAO,UAAU,aAAa,aAAa,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAE,OAAM,IAAI,UAAU,0EAA0E;AACjL,QAAQ,SAAS,MAAM,EAAE,KAAK,UAAU,MAAM,GAAG,IAAI,EAAE,QAAQ,QAAQ,MAAM,IAAI,UAAU,MAAM,EAAG;;AAExG,IAAI,4CAAuC,0BAA2B,SAAU,UAAU,OAAO,MAAM,GAAG;AACtG,KAAI,SAAS,OAAO,CAAC,EAAG,OAAM,IAAI,UAAU,gDAAgD;AAC5F,KAAI,OAAO,UAAU,aAAa,aAAa,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAE,OAAM,IAAI,UAAU,2EAA2E;AAClL,QAAO,SAAS,MAAM,IAAI,SAAS,MAAM,EAAE,KAAK,SAAS,GAAG,IAAI,EAAE,QAAQ,MAAM,IAAI,SAAS;;AAEjG,IAAI,wBAAwB,oBAAoB,wBAAwB,2BAA2B,kCAAkC,qCAAqC,0BAA0B,6BAA6B,gCAAgC,4BAA4B,wBAAwB,iCAAiC,uBAAuB,0BAA0B,wBAAwB,gCAAgC,uBAAuB,uBAAuB,wBAAwB,8BAA8B,6BAA6B,wBAAwB,6BAA6B,qBAAqB,gCAAgC,4BAA4B,kCAAkC,qBAAqB,uBAAuB,+BAA+B,8BAA8B,sBAAsB,4BAA4B,2BAA2B;AAc95B,SAAgB,aAAa,OAAO;AAChC,SAAQ,cAAc,EAAE,EAAE,MAAM,MAAM,QAAQ,KAAK,EAAE,kBAAkB;EACnE,MAAM,QAAQ,IAAI,cAAc,aAAa,KAAK,eAAe,MAAM;AACvE,SAAO,eAAe,OAAO,QAAQ;GACjC,WAAW;AACP,WAAO,MAAM,OAAO;;GAExB,YAAY;GACf,CAAC;AACF,QAAM,MAAM;AACZ,QAAM,SAAS;AACf,SAAO;;;AAGf,MAAM,kBAAkB,OAAO,iBAAiB;AAChD,MAAM,gBAAgB,OAAO,iBAAiB;AAC9C,MAAM,8BAA8B,OAAO,6BAA6B;AACxE,MAAM,eAAe,OAAO,cAAc;AAC1C,MAAM,UAAU,OAAO,SAAS;AAChC,MAAM,iBAAiB,OAAO,gBAAgB;AAC9C,MAAM,0BAA0B,OAAO,yBAAyB;AAChE,MAAM,yBAAyB,OAAO,wBAAwB;AAC9D,MAAM,eAAe,OAAO,cAAc;AAC1C,MAAM,gBAAgB,OAAO,eAAe;AAC5C,MAAM,0BAA0B,OAAO,yBAAyB;AAChE,MAAM,SAAS,OAAO,QAAQ;AAC9B,MAAM,2BAA2B,OAAO,0BAA0B;AAClE,MAAM,2CAA2C,OAAO,0CAA0C;AAClG,MAAM,qCAAqC,OAAO,oCAAoC;AACtF,MAAM,gCAAgC,OAAO,+BAA+B;AAC5E,MAAM,eAAe,OAAO,cAAc;AAC1C,MAAM,UAAU,OAAO,SAAS;AAChC,MAAM,YAAY,OAAO,WAAW;AACpC,MAAM,iBAAiB,OAAO,gBAAgB;AAC9C,MAAM,sBAAsB,OAAO,qBAAqB;AACxD,MAAM,cAAc,OAAO,aAAa;AACxC,MAAM,gBAAgB,OAAO,eAAe;AAC5C,MAAM,qBAAqB,OAAO,oBAAoB;AACtD,MAAM,mBAAmB,OAAO,kBAAkB;AAClD,MAAM,oBAAoB,OAAO,mBAAmB;AACpD,MAAM,yBAAyB,OAAO,wBAAwB;AAC9D,MAAM,oBAAoB,OAAO,mBAAmB;AACpD,MAAM,mBAAmB,OAAO,kBAAkB;AAClD,MAAM,eAAe,OAAO,cAAc;AAC1C,MAAM,UAAU,OAAO,SAAS;AAChC,MAAM,SAAS,OAAO,QAAQ;AAC9B,MAAM,oCAAoC,OAAO,mCAAmC;AACpF,MAAM,iBAAiB,OAAO,gBAAgB;AAC9C,MAAM,gBAAgB,OAAO,eAAe;AAC5C,MAAM,wBAAwB,OAAO,wBAAwB;AAC7D,MAAM,iBAAiB;AACvB,IAAa,gBAAb,MAA2B;CACvB,YAAY,cAAc,EAAE,EAAE,KAAK,eAAe,QAAM;AACpD,OAAK,mBAAmB;AACxB,OAAK,SAAS;AACd,yBAAuB,IAAI,MAAM,KAAK,EAAE;AACxC,qBAAmB,IAAI,MAAM,KAAK,EAAE;AACpC,yBAAuB,IAAI,MAAM;GAAE,UAAU,EAAE;GAAE,cAAc,EAAE;GAAE,CAAC;AACpE,4BAA0B,IAAI,MAAM,KAAK;AACzC,mCAAiC,IAAI,MAAM,KAAK;AAChD,sCAAoC,IAAI,MAAM,cAAc;AAC5D,2BAAyB,IAAI,MAAM,KAAK;AACxC,8BAA4B,IAAI,MAAM,KAAK;AAC3C,iCAA+B,IAAI,MAAM,EAAE,CAAC;AAC5C,6BAA2B,IAAI,MAAM,KAAK;AAC1C,yBAAuB,IAAI,MAAM,EAAE,CAAC;AACpC,kCAAgC,IAAI,MAAM,KAAK,EAAE;AACjD,wBAAsB,IAAI,MAAM,EAAE,CAAC;AACnC,2BAAyB,IAAI,MAAM,MAAM;AACzC,yBAAuB,IAAI,MAAM,KAAK;AACtC,iCAA+B,IAAI,MAAM,KAAK;AAC9C,wBAAsB,IAAI,MAAM,KAAK,EAAE;AACvC,wBAAsB,IAAI,MAAM,GAAG;AACnC,yBAAuB,IAAI,MAAM,KAAK,EAAE;AACxC,+BAA6B,IAAI,MAAM,KAAK,EAAE;AAC9C,8BAA4B,IAAI,MAAM,EAAE,CAAC;AACzC,yBAAuB,IAAI,MAAM,KAAK;AACtC,8BAA4B,IAAI,MAAM,KAAK;AAC3C,sBAAoB,IAAI,MAAM,EAAE,CAAC;AACjC,iCAA+B,IAAI,MAAM,EAAE,CAAC;AAC5C,6BAA2B,IAAI,MAAM,KAAK,EAAE;AAC5C,mCAAiC,IAAI,MAAM,MAAM;AACjD,sBAAoB,IAAI,MAAM,KAAK,EAAE;AACrC,wBAAsB,IAAI,MAAM,MAAM;AACtC,gCAA8B,IAAI,MAAM,MAAM;AAC9C,+BAA6B,IAAI,MAAM,MAAM;AAC7C,uBAAqB,IAAI,MAAM,KAAK,EAAE;AACtC,6BAA2B,IAAI,MAAM,EAAE,CAAC;AACxC,4BAA0B,IAAI,MAAM,KAAK;AACzC,4BAA0B,IAAI,MAAM,KAAK,EAAE;AAC3C,yBAAuB,MAAM,qBAAqBM,QAAM,IAAI;AAC5D,yBAAuB,MAAM,4BAA4B,aAAa,IAAI;AAC1E,yBAAuB,MAAM,oBAAoB,KAAK,IAAI;AAC1D,yBAAuB,MAAM,8BAA8B,eAAe,IAAI;AAC9E,yBAAuB,MAAM,iCAAiC,IAAI,iBAAiB,KAAK,EAAE,IAAI;AAC9F,OAAK,KAAK,KAAK,iBAAiB;AAChC,OAAK,SAAS;AACd,yBAAuB,MAAM,wBAAwB,uBAAuB,MAAM,wBAAwB,IAAI,EAAE,IAAI;AACpH,yBAAuB,MAAM,sBAAsB,uBAAuB,MAAM,sBAAsB,IAAI,EAAE,IAAI;AAChH,yBAAuB,MAAM,2BAA2B,uBAAuB,MAAM,2BAA2B,IAAI,EAAE,IAAI;AAC1H,yBAAuB,MAAM,wBAAwB,uBAAuB,MAAM,wBAAwB,IAAI,EAAE,IAAI;AACpH,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,gBAAgB,uBAAuB,MAAM,qCAAqC,IAAI;AAChJ,yBAAuB,MAAM,uBAAuB,KAAK,gBAAgB,EAAE,IAAI;AAC/E,yBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,UAAU,eAAe;;CAEzF,WAAW,KAAK,KAAK;EACjB,MAAM,iBAAiB;AACvB,UAAQ,6BAA6B,CAAC,KAAK,IAAI,EAAE,UAAU,OAAO;AAClE,MAAI,uBAAuB,MAAM,wBAAwB,IAAI,EAAE;AAC3D,QAAK,6BAA6B,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;AAC5F,0BAAuB,MAAM,wBAAwB,MAAM,IAAI;;AAEnE,MAAI,QAAQ,SAAS,QAAQ,OACzB,QAAO;AACX,yBAAuB,MAAM,wBAAwB,OAAO,QAAQ,WAAW,MAAM,gBAAgB,IAAI;AACzG,OAAK,QAAQ,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;AACvE,OAAK,SAAS,uBAAuB,MAAM,wBAAwB,IAAI,EAAE,OAAO,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,gBAAgB,YAAY,CAAC;AACrK,SAAO;;CAEX,KAAK,KAAK,KAAK;AACX,SAAO,KAAK,WAAW,KAAK,IAAI;;CAEpC,iBAAiB,KAAK,KAAK;AACvB,UAAQ,6BAA6B,CAAC,KAAK,IAAI,EAAE,UAAU,OAAO;AAClE,MAAI,QAAQ,SAAS,QAAQ,OACzB,QAAO;EACX,MAAM,gBAAgB,OAAO,QAAQ,WAAW,MAAM,uBAAuB,MAAM,qCAAqC,IAAI;AAC5H,OAAK,QAAQ,cAAc;AAC3B,OAAK,SAAS,eAAe,OAAO,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,gBAAgB,sBAAsB,CAAC;AACnI,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,gBAAgB;AAC1E,SAAO;;CAEX,WAAW,KAAK,KAAK;AACjB,SAAO,KAAK,iBAAiB,KAAK,IAAI;;CAE1C,MAAM,KAAK,OAAO;AACd,UAAQ,wCAAwC,CAAC,KAAK,MAAM,EAAE,UAAU,OAAO;AAC/E,OAAK,oCAAoC,KAAK,MAAM,KAAK,KAAK,EAAE,SAAS,KAAK,MAAM;AACpF,SAAO;;CAEX,MAAM,MAAM;AACR,UAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,OAAO;AACnD,OAAK,0BAA0B,SAAS,KAAK;AAC7C,OAAK,uBAAuB,KAAK;AACjC,SAAO;;CAEX,QAAQ,MAAM;AACV,UAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,OAAO;AACnD,OAAK,0BAA0B,WAAW,KAAK;AAC/C,OAAK,uBAAuB,KAAK;AACjC,SAAO;;CAEX,MAAM,GAAG,UAAQ;AACb,UAAQ,wBAAwB,CAAC,GAAGC,SAAO,EAAE,UAAU,OAAO;AAC9D,OAAK,YAAY,QAAM,WAAW;AAC9B,UAAO,uBAAuB;AAC1B,WAAO,EAAEC,QAAM,OAAO,YAAY,CAAC;OACnC,WAAW;AACX,QAAI,CAAC,OACD,wBAAuB,MAAM,sBAAsB,IAAI,CAAC,KAAK,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,GAAG,6BAA6B,EAAE,UAAU,CAAC,CAAC;aAElK,OAAO,WAAW,YAAY,kBAAkB,MACrD,wBAAuB,MAAM,sBAAsB,IAAI,CAAC,KAAK,OAAO,UAAU,EAAE,OAAO;AAE3F,WAAOA;OACP,QAAQ;AACR,2BAAuB,MAAM,sBAAsB,IAAI,CAAC,KAAK,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,EAAE,IAAI;AAC7G,WAAOA;KACT;KACH,OAAOD,SAAO;AACjB,SAAO;;CAEX,QAAQ,KAAK,OAAO;AAChB,UAAQ,wCAAwC,CAAC,KAAK,MAAM,EAAE,UAAU,OAAO;AAC/E,OAAK,oCAAoC,KAAK,QAAQ,KAAK,KAAK,EAAE,WAAW,KAAK,MAAM;AACxF,SAAO;;CAEX,OAAO,MAAM,OAAO;AAChB,UAAQ,oCAAoC,CAAC,MAAM,MAAM,EAAE,UAAU,OAAO;AAC5E,MAAI,MAAM,QAAQ,KAAK,EAAE;AACrB,OAAI,CAAC,MACD,OAAM,IAAI,OAAO,mCAAmC;AAExD,QAAK,MAAM,OAAO,KACd,MAAK,OAAO,KAAK,MAAM;AAE3B,UAAO;aAEF,OAAO,SAAS,UAAU;AAC/B,QAAK,MAAM,OAAO,OAAO,KAAK,KAAK,CAC/B,MAAK,OAAO,KAAK,KAAK,KAAK;AAE/B,UAAO;;AAEX,MAAI,CAAC,MACD,OAAM,IAAI,OAAO,mCAAmC;EAExD,MAAM,YAAY;AAClB,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,IAAI,aAAa;AAC3E,yBAAuB,MAAM,iCAAiC,IAAI,CAAC,qBAAqB,QAAM,UAAU;GACpG,IAAIE;GAEJ,MAAM,WAAW,CAAC,WAAW,IADH,OAAK,MAAM,YAAY,CAAC,gBAAgB,QAAQA,SAAO,KAAK,IAAIA,OAAK,EAAE,CAChD,CAAC,QAAO,QAAO,OAAO,UAAU,eAAe,KAAKD,QAAM,IAAI,CAAC;AAChH,OAAI,SAAS,WAAW,EACpB,QAAOA;AAEX,UAAO,uBAAuB;AAC1B,WAAO,MAAMA,OAAK,SAAS,IAAI;OAC/B,WAAW;AACX,aAAS,SAAQ,QAAO;AACpB,YAAK,OAAO;MACd;AACF,WAAOA;OACP,QAAQ;AACR,UAAM,IAAI,OAAO,IAAI,QAAQ;KAC/B;KACH,UAAU;AACb,SAAO;;CAEX,UAAU,MAAM,MAAM;AAClB,UAAQ,kCAAkC,CAAC,MAAM,KAAK,EAAE,UAAU,OAAO;AACzE,yBAAuB,MAAM,2BAA2B,IAAI,CAAC,UAAU,MAAM,KAAK;AAClF,SAAO;;CAEX,OAAO,MAAM,UAAU,KAAK,SAAS;AACjC,UAAQ,gDAAgD;GAAC;GAAK;GAAK;GAAQ,EAAE,UAAU,OAAO;AAC9F,MAAI,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,EAAE;AAChD,SAAM,aAAa,KAAK,uBAAuB,MAAM,oBAAoB,IAAI,EAAE,KAAK,0BAA0B,CAAC,wBAAwB,OAAO,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACrM,0BAAuB,MAAM,wBAAwB,IAAI,CAAC,iBAAiB,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,IAAI;AACrK,UAAO;;AAEX,MAAI,OAAO,QAAQ,YAAY;AAC3B,aAAU;AACV,SAAM;;AAEV,OAAK,SAAS,KAAK,OAAO,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,gBAAgB,2BAA2B,CAAC;AAC9H,GAAC,MAAM,QAAQ,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,SAAQ,MAAK;AAC5C,0BAAuB,MAAM,wBAAwB,IAAI,CAAC,OAAO,KAAK,WAAW;IACnF;AACF,SAAO;;CAEX,WAAW,KAAK,MAAM,IAAI;AACtB,UAAQ,iDAAiD;GAAC;GAAK;GAAM;GAAG,EAAE,UAAU,OAAO;AAC3F,MAAI,OAAO,SAAS,YAAY;AAC5B,QAAK;AACL,UAAO;;AAEX,yBAAuB,MAAM,kCAAkC,OAAO,uBAAuB,MAAM,kCAAkC,IAAI,IAAI,cAAc,IAAI;AAC/J,MAAI,CAAC,QAAQ,SAAS,MAClB,QAAO;AAEX,OAAK,QAAQ,uBAAuB,MAAM,kCAAkC,IAAI,EAAE,KAAK;AACvF,MAAI,GACA,wBAAuB,MAAM,2BAA2B,IAAI,CAAC,iBAAiB,GAAG;AACrF,SAAO;;CAEX,QAAQ,KAAK,aAAa,SAAS,SAAS,aAAa,YAAY;AACjE,UAAQ,gGAAgG;GAAC;GAAK;GAAa;GAAS;GAAS;GAAa;GAAW,EAAE,UAAU,OAAO;AACxL,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,WAAW,KAAK,aAAa,SAAS,SAAS,aAAa,WAAW;AACjI,SAAO;;CAEX,SAAS,KAAK,aAAa,SAAS,SAAS,aAAa,YAAY;AAClE,SAAO,KAAK,QAAQ,KAAK,aAAa,SAAS,SAAS,aAAa,WAAW;;CAEpF,WAAW,KAAK,MAAM;AAClB,UAAQ,qBAAqB,CAAC,KAAK,KAAK,EAAE,UAAU,OAAO;EAC3D,MAAM,MAAM,uBAAuB,MAAM,8BAA8B,IAAI,IAAI,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACtI,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,aAAa,KAAK,KAAK,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,eAAe,EAAE,KAAK;AAC9J,SAAO;;CAEX,MAAM,MAAM;AACR,UAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,OAAO;AACnD,OAAK,0BAA0B,SAAS,KAAK;AAC7C,OAAK,uBAAuB,KAAK;AACjC,SAAO;;CAEX,QAAQ,KAAK,OAAO,oBAAoB;AACpC,UAAQ,sCAAsC;GAAC;GAAK;GAAO;GAAmB,EAAE,UAAU,OAAO;AACjG,MAAI,oBAAoB;AACpB,mBAAgB,KAAK,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AAC5E,0BAAuB,MAAM,wBAAwB,IAAI,CAAC,mBAAmB,OAAO;;AAExF,MAAI,OAAO,UAAU,YAAY;AAC7B,mBAAgB,KAAK,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AAC5E,OAAI,CAAC,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,mBAAmB,KAC9E,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,mBAAmB,OACzE,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,oBAAoB,MAAM;AAC1F,WAAQ,MAAM,MAAM;;AAExB,OAAK,0CAA0C,KAAK,QAAQ,KAAK,KAAK,EAAE,WAAW,KAAK,MAAM;AAC9F,SAAO;;CAEX,SAAS,KAAK,OAAO,oBAAoB;AACrC,SAAO,KAAK,QAAQ,KAAK,OAAO,mBAAmB;;CAEvD,cAAc,MAAM,GAAG,KAAK,QAAQ,QAAQ;AACxC,UAAQ,4EAA4E;GAAC;GAAK;GAAK;GAAQ;GAAO,EAAE,UAAU,OAAO;AACjI,MAAI,OAAO,QAAQ,UAAU;AACzB,YAAS;AACT,SAAM;;AAEV,OAAK,OAAO,KAAK,MAAM;AACvB,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,iBAAiB,IAAI;GAC3E;GACA;GACA;GACA;GACH;AACD,SAAO;;CAEX,OAAO,MAAM,KAAK,KAAK;AACnB,MAAI,MAAM,QAAQ,IAAI,EAAE;AACpB,OAAI,SAAQ,QAAO;AACf,yBAAqB,KAAK,MAAM,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACvF,SAAK,aAAa,KAAK,IAAI;KAC7B;AACF,SAAM;aAED,OAAO,QAAQ,UAAU;AAC9B,SAAM;AACN,SAAM;;AAEV,MAAI,OAAO,SAAS,UAAU;AAC1B,wBAAqB,KAAK,MAAM,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACvF,QAAK,cAAc,MAAM,KAAK,KAAK,IAAI;aAElC,MAAM,QAAQ,KAAK,CACxB,MAAK,SAAQ,QAAO;AAChB,wBAAqB,KAAK,MAAM,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACvF,QAAK,aAAa,KAAK,IAAI;IAC7B;WAGE,OAAO,QAAQ,SACf,MAAK,aAAa,MAAM,IAAI;WAEvB,QAAQ,QAAQ,OAAO,QAAQ,YACpC,MAAK,aAAa,KAAK;AAG/B,SAAO;;CAEX,aAAa,MAAM,KAAK;AACpB,UAAQ,kCAAkC,CAAC,MAAM,IAAI,EAAE,UAAU,OAAO;AACxE,OAAK,0CAA0C,KAAK,aAAa,KAAK,KAAK,EAAE,mBAAmB,MAAM,IAAI;AAC1G,SAAO;;CAEX,gBAAgB,QAAQ,SAAS;AAC7B,UAAQ,6BAA6B,CAAC,QAAQ,QAAQ,EAAE,UAAU,OAAO;AACzE,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,kBAAkB,UAAU;AACtF,SAAO;;CAEX,SAAS,MAAM,aAAa;AACxB,UAAQ,kCAAkC,CAAC,MAAM,YAAY,EAAE,UAAU,OAAO;AAChF,OAAK,SAAS,MAAM,KAAK;AACzB,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,SAAS,MAAM,YAAY;AACnF,SAAO;;CAEX,aAAa,QAAQ;AACjB,UAAQ,aAAa,CAAC,OAAO,EAAE,UAAU,OAAO;AAChD,yBAAuB,MAAM,6BAA6B,QAAQ,IAAI;AACtE,SAAO;;CAEX,IAAI,QAAQ;AACR,UAAQ,oBAAoB,CAAC,OAAO,EAAE,UAAU,OAAO;AACvD,MAAI,WAAW,MACX,QAAO,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;MAEjE,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,YAAY,UAAU;AACpF,SAAO;;CAEX,SAAS,KAAK;AACV,UAAQ,YAAY,CAAC,IAAI,EAAE,UAAU,OAAO;AAC5C,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,OAAO,IAAI;AACnE,SAAO;;CAEX,OAAO,KAAK;AACR,SAAO,KAAK,SAAS,IAAI;;CAE7B,QAAQ,KAAK,aAAa;AACtB,UAAQ,2BAA2B,CAAC,KAAK,YAAY,EAAE,UAAU,OAAO;AACxE,MAAI,MAAM,QAAQ,IAAI,CAClB,KAAI,SAAQ,kBAAiB,KAAK,QAAQ,GAAG,cAAc,CAAC;MAG5D,wBAAuB,MAAM,sBAAsB,IAAI,CAAC,QAAQ,KAAK,YAAY;AAErF,SAAO;;CAEX,KAAK,MAAM,KAAK;AACZ,yBAAuB,MAAM,0BAA0B,MAAM,IAAI;AACjE,yBAAuB,MAAM,0BAA0B,KAAK,IAAI;AAChE,MAAI,uBAAuB,MAAM,4BAA4B,IAAI,CAC7D,wBAAuB,MAAM,qBAAqB,IAAI,CAAC,QAAQ,KAAK,KAAK;;CAEjF,YAAY,UAAU,MAAM;AACxB,UAAQ,aAAa,CAAC,QAAQ,EAAE,UAAU,OAAO;AACjD,yBAAuB,MAAM,4BAA4B,SAAS,IAAI;AACtE,SAAO;;CAEX,KAAK,GAAG;AACJ,UAAQ,sBAAsB,CAAC,EAAE,EAAE,UAAU,OAAO;AACpD,MAAI,OAAO,MAAM,aAAa,MAAM,MAChC,OAAM,IAAI,OAAO,+DAA+D;AAEpF,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,OAAO,EAAE;AACjE,SAAO;;CAEX,aAAa;AACT,SAAO,KAAK,SAAS,KAAK,OAAO,UAAU,EAAE;;CAEjD,MAAM,cAAc,MAAM,MAAM;AAC5B,UAAQ,sBAAsB,CAAC,MAAM,KAAK,EAAE,UAAU,OAAO;AAC7D,MAAI,CAAC,KACD,QAAO,IAAI,SAAS,WAAS,WAAW;AACpC,0BAAuB,MAAM,2BAA2B,IAAI,CAAC,cAAc,OAAO,KAAK,gBAAgB;AACnG,QAAI,IACA,QAAO,IAAI;QAEX,WAAQ,YAAY;KAC1B;IACJ;MAGF,QAAO,uBAAuB,MAAM,2BAA2B,IAAI,CAAC,cAAc,MAAM,KAAK;;CAGrG,qBAAqB;AACjB,UAAQ,EAAE,EAAE,EAAE;AACd,SAAO,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;;CAErE,sBAAsB;AAClB,UAAQ,EAAE,EAAE,EAAE;AACd,SAAO,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;;CAErE,uBAAuB;AACnB,UAAQ,EAAE,EAAE,EAAE;AACd,SAAO,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;;CAErE,kBAAkB;AACd,SAAO,uBAAuB,MAAM,6BAA6B,IAAI;;CAEzE,iBAAiB;AACb,SAAO,uBAAuB,MAAM,4BAA4B,IAAI;;CAExE,YAAY;AACR,SAAO,OAAO,OAAO,EAAE,EAAE,uBAAuB,MAAM,uBAAuB,IAAI,EAAE,uBAAuB,MAAM,gCAAgC,IAAI,CAAC;;CAEzJ,UAAU;AACN,yBAAuB,MAAM,0BAA0B,MAAM,IAAI;AACjE,MAAI,CAAC,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,sBAAsB,EAAE;AACjF,OAAI,CAAC,KAAK,QAAQ;IACd,MAAM,QAAQ,KAAK,mCAAmC,uBAAuB,MAAM,4BAA4B,IAAI,EAAE,QAAW,QAAW,GAAG,KAAK;AACnJ,QAAI,UAAU,MAAM,CAChB,QAAO,MAAM,WAAW;AACpB,YAAO,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,MAAM;MACvE;;GAGV,MAAM,kBAAkB,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,oBAAoB,KAAK;AAC3G,OAAI,UAAU,gBAAgB,CAC1B,QAAO,gBAAgB,WAAW;AAC9B,WAAO,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,MAAM;KACvE;;AAGV,SAAO,QAAQ,QAAQ,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,MAAM,CAAC;;CAE1F,aAAa;AACT,SAAO,uBAAuB,MAAM,wBAAwB,IAAI;;CAEpE,YAAY;AACR,SAAO,uBAAuB,MAAM,uBAAuB,IAAI;;CAEnE,oBAAoB;AAChB,SAAO,uBAAuB,MAAM,+BAA+B,IAAI;;CAE3E,mBAAmB;AACf,SAAO,uBAAuB,MAAM,8BAA8B,IAAI;;CAE1E,OAAO,SAAS,UAAQ;AACpB,UAAQ,4BAA4B,CAAC,SAASD,SAAO,EAAE,UAAU,OAAO;AACxE,YAAU,EAAE,CAAC,OAAO,QAAQ;AAC5B,MAAIA,aAAW,MACX,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,QAAQ,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,MAAM,QAAO,MAAK,QAAQ,QAAQ,EAAE,KAAK,GAAG;MAGxK,SAAQ,SAAQ,MAAK;AACjB,OAAI,CAAC,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,MAAM,SAAS,EAAE,CAC5E,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,MAAM,KAAK,EAAE;IAC7E;AAEN,SAAO;;CAEX,MAAM,MAAM,WAAW;AACnB,UAAQ,2BAA2B,CAAC,MAAM,UAAU,EAAE,UAAU,OAAO;EACvE,MAAM,WAAW,uBAAuB,MAAM,gCAAgC,IAAI,CAAC,cAAc,uBAAuB,MAAM,uBAAuB,IAAI,CAAC;AAC1J,MAAI,uBAAuB,MAAM,gCAAgC,IAAI,CAAC,WAClE,QAAO,uBAAuB,MAAM,gCAAgC,IAAI,CAAC;EAE7E,MAAM,OAAO,EAAE;AACf,yBAAuB,MAAM,uBAAuB,IAAI,CAAC,cAAc,YAAY,EAAE,EAAE,OAAO,KAAK,CAAC,QAAO,QAAO;AAC9G,OAAI,KAAK,KACL,QAAO;AACX,UAAQ,KAAK,OAAO;IACtB;AACF,SAAO;;CAEX,KAAK,KAAK;AACN,UAAQ,YAAY,CAAC,IAAI,EAAE,UAAU,OAAO;AAC5C,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,cAAc,KAAK,IAAI;AACjF,SAAO;;CAEX,QAAQ,KAAK,OAAO;AAChB,UAAQ,yCAAyC,CAAC,KAAK,MAAM,EAAE,UAAU,OAAO;AAChF,yBAAuB,MAAM,2BAA2B,IAAI,CAAC,QAAQ,KAAK,MAAM;AAChF,SAAO;;CAEX,OAAO,QAAQ;AACX,UAAQ,YAAY,CAAC,OAAO,EAAE,UAAU,OAAO;AAC/C,MAAI,WAAW,QAAW;AACtB,QAAK,eAAe;AACpB,UAAO,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,WAAW;;AAElF,yBAAuB,MAAM,6BAA6B,OAAO,IAAI;AACrE,yBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,UAAU,OAAO;AAC7E,SAAO;;CAEX,WAAW,UAAU,uBAAuB,UAAQ;AAChD,SAAO,uBAAuB,MAAM,iCAAiC,IAAI,CAAC,cAAc,UAAU,CAAC,CAAC,uBAAuBA,SAAO;;CAEtI,MAAM,KAAK,OAAO;AACd,UAAQ,kCAAkC,CAAC,KAAK,MAAM,EAAE,UAAU,OAAO;AACzE,OAAK,0CAA0C,KAAK,MAAM,KAAK,KAAK,EAAE,QAAQ,KAAK,MAAM;AACzF,SAAO;;CAEX,UAAU,MAAM;AACZ,UAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,OAAO;AACnD,OAAK,0BAA0B,aAAa,KAAK;AACjD,SAAO;;CAEX,OAAO,MAAM;AACT,UAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,OAAO;AACnD,OAAK,0BAA0B,UAAU,KAAK;AAC9C,OAAK,uBAAuB,KAAK;AACjC,SAAO;;CAEX,OAAO,KAAK,KAAK;AACb,UAAQ,4BAA4B,CAAC,KAAK,IAAI,EAAE,UAAU,OAAO;AACjE,MAAI,OAAO,QAAQ,SACf,QAAO,KAAK,IAAI,CAAC,SAAQ,MAAK;AAC1B,QAAK,QAAQ,GAAG,IAAI,GAAG;IACzB;OAED;AACD,OAAI,OAAO,QAAQ,SACf,OAAM,EAAE;AAEZ,QAAK,uBAAuB,IAAI;AAChC,OAAI,uBAAuB,MAAM,2BAA2B,IAAI,KAAK,QAAQ,cAAc,QAAQ,QAAQ,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI,WAAW,WAChJ,MAAK,cAAc;IACf;IACA;IACA;IACA;IACA;IACA;IACH,CAAC,KAAK,KAAK,EAAE,QAAW,iBAAiB;AAE9C,0BAAuB,MAAM,wBAAwB,IAAI,CAAC,IAAI,OAAO;AACrE,OAAI,IAAI,MACJ,MAAK,MAAM,KAAK,IAAI,MAAM;GAC9B,MAAM,YAAY,IAAI,aAAa,IAAI;AACvC,OAAI,UACA,MAAK,gBAAgB,KAAK,UAAU;GAExC,MAAM,SAAS,IAAI,UAAU,IAAI,YAAY,IAAI;AACjD,OAAI,OACA,MAAK,OAAO,KAAK,OAAO;AAE5B,OAAI,IAAI,aACJ,MAAK,aAAa,KAAK,OAAO,IAAI,iBAAiB,WAAW,IAAI,eAAe,OAAU;AAE/F,OAAI,IAAI,UACJ,MAAK,UAAU,KAAK,IAAI,UAAU;AAEtC,OAAI,aAAa,IACb,MAAK,QAAQ,KAAK,IAAI,QAAQ;AAElC,OAAI,IAAI,YAAY,OAChB,MAAK,QAAQ,KAAK,IAAI,QAAQ;AAElC,OAAI,IAAI,UAAU,OACd,MAAK,MAAM,KAAK,IAAI,MAAM;AAE9B,OAAI,IAAI,OACJ,MAAK,OAAO,KAAK,IAAI,aAAa;AAEtC,OAAI,IAAI,UACJ,MAAK,UAAU,IAAI;AAEvB,OAAI,IAAI,QACJ,MAAK,QAAQ,KAAK,IAAI,QAAQ;AAElC,OAAI,IAAI,OACJ,MAAK,OAAO,KAAK,IAAI,OAAO;AAEhC,OAAI,IAAI,MACJ,MAAK,MAAM,KAAK,IAAI,MAAM;AAE9B,OAAI,IAAI,WAAW,IAAI,SAAS,WAAW;AACvC,SAAK,QAAQ,IAAI;AACjB,QAAI,IAAI,MACJ,MAAK,QAAQ,IAAI,MAAM;;AAE/B,OAAI,IAAI,SAAS,IAAI,SAAS,SAAS;AACnC,SAAK,MAAM,IAAI;AACf,QAAI,IAAI,MACJ,MAAK,MAAM,IAAI,MAAM;;AAE7B,OAAI,IAAI,UAAU,IAAI,SAAS,UAAU;AACrC,SAAK,OAAO,IAAI;AAChB,QAAI,IAAI,MACJ,MAAK,OAAO,IAAI,MAAM;;AAE9B,OAAI,IAAI,UAAU,IAAI,SAAS,UAAU;AACrC,SAAK,OAAO,IAAI;AAChB,QAAI,IAAI,MACJ,MAAK,OAAO,IAAI,MAAM;;AAE9B,OAAI,IAAI,SAAS,IAAI,SAAS,QAC1B,MAAK,MAAM,IAAI;AAEnB,OAAI,OAAO,IAAI,WAAW,UACtB,MAAK,OAAO,KAAK,IAAI,OAAO;AAEhC,OAAI,IAAI,mBACJ,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,mBAAmB,OAAO,IAAI;AAE5F,OAAI,IAAI,eACJ,MAAK,eAAe,IAAI;GAE5B,MAAM,OAAO,IAAI,YAAY,IAAI,eAAe,IAAI;GACpD,MAAM,eAAe,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,iBAAiB;AAC9F,OAAI,CAAC,OAAO,UAAU,eAAe,KAAK,cAAc,IAAI,IACxD,OAAO,SAAS,SAChB,MAAK,SAAS,KAAK,KAAK;AAE5B,OAAI,IAAI,OACJ,MAAK,KAAK,IAAI;AAElB,OAAI,IAAI,YACJ,MAAK,YAAY,IAAI;;AAG7B,SAAO;;CAEX,QAAQ,KAAK,KAAK;AACd,SAAO,KAAK,OAAO,KAAK,IAAI;;CAEhC,MAAM,MAAM,cAAc,UAAU;AAChC,UAAQ,uDAAuD;GAAC;GAAM;GAAc;GAAS,EAAE,UAAU,OAAO;AAChH,OAAK,UAAU;AACf,MAAI,OAAO,SAAS,YAChB,QAAO,uBAAuB,MAAM,4BAA4B,IAAI;AAExE,MAAI,OAAO,iBAAiB,UAAU;AAClC,0BAAuB,MAAM,6BAA6B,cAAc,IAAI;AAC5E,kBAAe;;AAEnB,MAAI,OAAO,iBAAiB,YAAY;AACpC,0BAAuB,MAAM,wBAAwB,cAAc,IAAI;AACvE,kBAAe;;AAEnB,MAAI,CAAC,aACD,wBAAuB,MAAM,4BAA4B,MAAM,IAAI;AACvE,MAAI,uBAAuB,MAAM,wBAAwB,IAAI,CACzD,wBAAuB,MAAM,4BAA4B,OAAO,IAAI;EACxE,MAAM,SAAS,KAAK,mCAAmC,MAAM,CAAC,CAAC,aAAa;EAC5E,MAAM,YAAY,KAAK;AACvB,yBAAuB,MAAM,2BAA2B,IAAI,CAAC,UAAU,KAAK,OAAO;AACnF,MAAI,UAAU,OAAO,CACjB,QAAO,OACF,MAAK,WAAQ;AACd,OAAI,uBAAuB,MAAM,wBAAwB,IAAI,CACzD,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAK,MAAM,uBAAuB,MAAM,0BAA0B,IAAI,EAAEC,QAAM,uBAAuB,MAAM,uBAAuB,IAAI,CAAC;AACrM,UAAOA;IACT,CACG,OAAM,QAAO;AACd,OAAI,uBAAuB,MAAM,wBAAwB,IAAI,CACzD,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAK,KAAK,OAAO,MAAM,uBAAuB,MAAM,uBAAuB,IAAI,CAAC;AAE9I,SAAM;IACR,CACG,cAAc;AACf,QAAK,YAAY;AACjB,QAAK,SAAS;IAChB;OAED;AACD,OAAI,uBAAuB,MAAM,wBAAwB,IAAI,CACzD,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAK,MAAM,uBAAuB,MAAM,0BAA0B,IAAI,EAAE,QAAQ,uBAAuB,MAAM,uBAAuB,IAAI,CAAC;AACvM,QAAK,YAAY;AACjB,QAAK,SAAS;;AAElB,SAAO;;CAEX,WAAW,MAAM,cAAc,UAAU;EACrC,MAAM,eAAe,KAAK,MAAM,MAAM,cAAc,SAAS;AAC7D,SAAO,CAAC,UAAU,aAAa,GACzB,QAAQ,QAAQ,aAAa,GAC7B;;CAEV,UAAU,MAAM,cAAc,UAAU;EACpC,MAAM,eAAe,KAAK,MAAM,MAAM,cAAc,SAAS;AAC7D,MAAI,UAAU,aAAa,CACvB,OAAM,IAAI,OAAO,oFAAoF;AAEzG,SAAO;;CAEX,oBAAoB,QAAQ;AACxB,UAAQ,YAAY,CAAC,OAAO,EAAE,UAAU,OAAO;AAC/C,yBAAuB,MAAM,6BAA6B,QAAQ,IAAI;AACtE,SAAO;;CAEX,QAAQ,KAAK,UAAU;AACnB,UAAQ,qBAAqB,CAAC,KAAK,SAAS,EAAE,UAAU,OAAO;EAC/D,IAAI,OAAO;EACX,MAAM,MAAM,KAAK,QAAQ,YAAY,uBAAuB,MAAM,oBAAoB,IAAI,CAAC;AAC3F,MAAI,IAAI,QAAQ,OAAO,IAAI,SAAS,UAAU;AAC1C,UAAO,aAAa,IAAI,MAAM,YAAY,uBAAuB,MAAM,oBAAoB,IAAI,EAAE,KAAK,0BAA0B,CAAC,wBAAwB,OAAO,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACvN,0BAAuB,MAAM,wBAAwB,IAAI,CAAC,iBAAiB,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,iBAAiB,EAAE,EAAE,OAAO,KAAK;;AAE1K,SAAO;;CAEX,WAAW,KAAK,MAAM;AAClB,UAAQ,qBAAqB,CAAC,KAAK,KAAK,EAAE,UAAU,OAAO;EAC3D,MAAM,gBAAgB;GAClB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;AACD,SAAO,UAAU,OAAO,GAAG,MAAM;AAC7B,OAAI,MAAM,UAAU,CAAC;IAAC;IAAU;IAAU;IAAU,CAAC,SAAS,EAAE,CAC5D,QAAO;AACX,UAAO,cAAc,SAAS,EAAE;IAClC;EACF,MAAM,cAAc,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,aAAa,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,aAAa,SAAS;EAC3K,MAAM,eAAe,cACf,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,kBAAkB,YAAY,GACxF;GACE,OAAO,EAAE;GACT,OAAO,EAAE;GACT,SAAS,EAAE;GACX,QAAQ,EAAE;GACb;AACL,aAAW,aAAa,CAAC,SAAQ,OAAM;GACnC,MAAM,cAAc,aAAa;AACjC,OAAI,MAAM,QAAQ,YAAY,EAC1B;QAAI,YAAY,QAAQ,IAAI,KAAK,GAC7B,MAAK,MAAM;cAGX,YAAY,QAAQ,EAAE,MAAM,MAC5B,MAAK,MAAM,YAAY;IAEjC;AACF,OAAK,MAAM,KAAK,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,wBAAwB,CAAC;AACjG,SAAO,KAAK,OAAO,KAAK,KAAK;;CAEjC,kBAAkB,YAAY,MAAM;AAChC,UAAQ,aAAa,CAAC,UAAU,EAAE,UAAU,OAAO;AACnD,yBAAuB,MAAM,kCAAkC,WAAW,IAAI;AAC9E,SAAO;;CAEX,SAAS,MAAM,KAAK,KAAK;AACrB,SAAO,KAAK,OAAO,MAAM,KAAK,IAAI;;CAEtC,QAAQ,MAAM,KAAK,KAAK;AACpB,SAAO,KAAK,OAAO,MAAM,KAAK,IAAI;;CAEtC,YAAY,MAAM;AACd,UAAQ,kCAAkC,CAAC,KAAK,EAAE,UAAU,OAAO;AACnE,MAAI,OAAO,SAAS,YAAY,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAK,MAC3F,QAAO;MAGP,MAAK,0CAA0C,KAAK,YAAY,KAAK,KAAK,EAAE,QAAQ,MAAM,IAAI;AAElG,SAAO;;CAEX,qBAAqB,IAAI,KAAK;AAC1B,UAAQ,qBAAqB,CAAC,IAAI,IAAI,EAAE,UAAU,OAAO;AACzD,OAAK,MAAM,KAAK;AAChB,yBAAuB,MAAM,uBAAuB,IAAI,CAAC,IAAI,uBAAuB,MAAM,2BAA2B,IAAI,CAAC,yBAAyB,IAAI,OAAO,uBAAuB,MAAM,kCAAkC,IAAI,IAAI,aAAa,CAAC;AACnP,SAAO;;CAEX,SAAS,OAAO;AACZ,UAAQ,qBAAqB,CAAC,MAAM,EAAE,UAAU,OAAO;AACvD,yBAAuB,MAAM,0BAA0B,MAAM,IAAI;AACjE,MAAI,CAAC,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,sBAAsB,EAAE;AACjF,OAAI,CAAC,KAAK,QAAQ;IACd,MAAM,QAAQ,KAAK,mCAAmC,uBAAuB,MAAM,4BAA4B,IAAI,EAAE,QAAW,QAAW,GAAG,KAAK;AACnJ,QAAI,UAAU,MAAM,EAAE;AAClB,WAAM,WAAW;AACb,6BAAuB,MAAM,sBAAsB,IAAI,CAAC,SAAS,MAAM;OACzE;AACF,YAAO;;;GAGf,MAAM,kBAAkB,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,oBAAoB,KAAK;AAC3G,OAAI,UAAU,gBAAgB,EAAE;AAC5B,oBAAgB,WAAW;AACvB,4BAAuB,MAAM,sBAAsB,IAAI,CAAC,SAAS,MAAM;MACzE;AACF,WAAO;;;AAGf,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,SAAS,MAAM;AACvE,SAAO;;CAEX,WAAW,YAAY;AACnB,OAAK,mBAAmB;AACxB,OAAK,KAAK;AACV,SAAO;;CAEX,eAAe,SAAS,SAAS;AAC7B,UAAQ,6BAA6B,CAAC,SAAS,QAAQ,EAAE,UAAU,OAAO;AAC1E,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,eAAe,SAAS,QAAQ;AACxF,SAAO;;CAEX,YAAY,OAAO;AACf,UAAQ,qBAAqB,CAAC,MAAM,EAAE,UAAU,OAAO;AACvD,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,YAAY,MAAM;AAC1E,SAAO;;CAEX,eAAe,MAAM;AACjB,UAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,OAAO;AACnD,OAAK,0BAA0B,kBAAkB,KAAK;AACtD,SAAO;;CAEX,OAAO,SAAS;AACZ,UAAQ,aAAa,CAAC,QAAQ,EAAE,UAAU,OAAO;AACjD,yBAAuB,MAAM,uBAAuB,YAAY,OAAO,IAAI;AAC3E,SAAO;;CAEX,eAAe,SAAS;AACpB,UAAQ,aAAa,CAAC,QAAQ,EAAE,UAAU,OAAO;AACjD,yBAAuB,MAAM,+BAA+B,YAAY,OAAO,IAAI;AACnF,SAAO;;CAEX,cAAc,SAAS;AACnB,UAAQ,aAAa,CAAC,QAAQ,EAAE,UAAU,OAAO;AACjD,yBAAuB,MAAM,8BAA8B,YAAY,OAAO,IAAI;AAClF,SAAO;;CAEX,OAAO,MAAM;AACT,UAAQ,kBAAkB,CAAC,KAAK,EAAE,UAAU,OAAO;AACnD,OAAK,0BAA0B,UAAU,KAAK;AAC9C,OAAK,uBAAuB,KAAK;AACjC,SAAO;;CAEX,gBAAgB;AACZ,UAAQ,EAAE,EAAE,EAAE;AACd,SAAO,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,QAAQ;;CAE1E,aAAa,KAAK;AACd,SAAO,KAAK,cAAc,IAAI;;CAElC,cAAc,KAAK;AACf,UAAQ,YAAY,CAAC,IAAI,EAAE,UAAU,OAAO;AAC5C,yBAAuB,MAAM,6BAA6B,OAAO,IAAI;AACrE,yBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,aAAa,IAAI;AAC7E,SAAO;;CAEX,MAAM,KAAK,aAAa,SAAS,SAAS;AACtC,UAAQ,yEAAyE;GAAC;GAAK;GAAa;GAAS;GAAQ,EAAE,UAAU,OAAO;AACxI,MAAI,gBAAgB,QAAW;AAC3B,wBAAqB,KAAK,MAAM,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACvF,QAAK,OAAO,IAAI,MAAM,YAAY,CAC9B,QAAO,KAAK,QAAQ,KAAK,aAAa,SAAS,QAAQ;OAGvD,OAAM,IAAI,OAAO,gFAAgF;SAGpG;AACD,0BAAuB,MAAM,sBAAsB,IAAI,CAAC,MAAM,IAAI;AAClE,UAAO;;;CAGf,mBAAmB,QAAQ;AACvB,UAAQ,YAAY,CAAC,OAAO,EAAE,UAAU,OAAO;AAC/C,yBAAuB,MAAM,4BAA4B,QAAQ,IAAI;AACrE,SAAO;;CAEX,QAAQ,KAAK,KAAK,KAAK;EACnB,MAAM,oBAAoB;AAC1B,UAAQ,sCAAsC;GAAC;GAAK;GAAK;GAAI,EAAE,UAAU,OAAO;AAChF,MAAI,uBAAuB,MAAM,2BAA2B,IAAI,EAAE;AAC9D,QAAK,6BAA6B,uBAAuB,MAAM,2BAA2B,IAAI,CAAC;AAC/F,0BAAuB,MAAM,sBAAsB,IAAI,CAAC,QAAQ,OAAU;AAC1E,0BAAuB,MAAM,2BAA2B,MAAM,IAAI;;AAEtE,MAAI,UAAU,WAAW,GAAG;AACxB,SAAM,KAAK,gBAAgB;AAC3B,SAAM;aAED,UAAU,WAAW,GAAG;AAC7B,OAAI,QAAQ,MACR,QAAO;AAEX,SAAM;AACN,SAAM;aAED,UAAU,WAAW,GAAG;AAC7B,SAAM;AACN,SAAM;;AAEV,yBAAuB,MAAM,2BAA2B,OAAO,QAAQ,WAAW,MAAM,mBAAmB,IAAI;AAC/G,QAAM,OAAO,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,gBAAgB,sBAAsB;AAC3G,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,QAAQ,OAAO,OAAU;AACjF,OAAK,QAAQ,uBAAuB,MAAM,2BAA2B,IAAI,CAAC;AAC1E,OAAK,SAAS,uBAAuB,MAAM,2BAA2B,IAAI,EAAE,IAAI;AAChF,SAAO;;CAEX,KAAK,MAAM;AACP,UAAQ,2BAA2B,CAAC,KAAK,EAAE,UAAU,OAAO;AAC5D,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,KAAK,KAAK;AAClE,SAAO;;CAEX,EAAE,yCAAyB,IAAI,SAAS,EAAE,qCAAqB,IAAI,SAAS,EAAE,yCAAyB,IAAI,SAAS,EAAE,4CAA4B,IAAI,SAAS,EAAE,mDAAmC,IAAI,SAAS,EAAE,sDAAsC,IAAI,SAAS,EAAE,2CAA2B,IAAI,SAAS,EAAE,8CAA8B,IAAI,SAAS,EAAE,iDAAiC,IAAI,SAAS,EAAE,6CAA6B,IAAI,SAAS,EAAE,yCAAyB,IAAI,SAAS,EAAE,kDAAkC,IAAI,SAAS,EAAE,wCAAwB,IAAI,SAAS,EAAE,2CAA2B,IAAI,SAAS,EAAE,yCAAyB,IAAI,SAAS,EAAE,iDAAiC,IAAI,SAAS,EAAE,wCAAwB,IAAI,SAAS,EAAE,wCAAwB,IAAI,SAAS,EAAE,yCAAyB,IAAI,SAAS,EAAE,+CAA+B,IAAI,SAAS,EAAE,8CAA8B,IAAI,SAAS,EAAE,yCAAyB,IAAI,SAAS,EAAE,8CAA8B,IAAI,SAAS,EAAE,sCAAsB,IAAI,SAAS,EAAE,iDAAiC,IAAI,SAAS,EAAE,6CAA6B,IAAI,SAAS,EAAE,mDAAmC,IAAI,SAAS,EAAE,sCAAsB,IAAI,SAAS,EAAE,wCAAwB,IAAI,SAAS,EAAE,gDAAgC,IAAI,SAAS,EAAE,+CAA+B,IAAI,SAAS,EAAE,uCAAuB,IAAI,SAAS,EAAE,6CAA6B,IAAI,SAAS,EAAE,4CAA4B,IAAI,SAAS,EAAE,4CAA4B,IAAI,SAAS,EAAE,kBAAkB,QAAM;AAC3/C,MAAI,CAACA,OAAK,KAAK,CAACA,OAAK,MACjB,QAAOA;AACX,SAAK,EAAE,KAAK,MAAMA,OAAK,GAAGA,OAAK,MAAM;AACrC,MAAI;AACA,UAAOA,OAAK;WAET,MAAM;AACb,SAAOA;;CAEX,CAAC,iBAAiB;AACd,SAAO;GACH,MAAM,GAAG,SAAS;AACd,QAAI,CAAC,KAAK,oBAAoB,CAC1B,SAAQ,IAAI,GAAG,KAAK;AACxB,2BAAuB,MAAM,0BAA0B,MAAM,IAAI;AACjE,QAAI,uBAAuB,MAAM,uBAAuB,IAAI,CAAC,OACzD,wBAAuB,MAAM,uBAAuB,uBAAuB,MAAM,uBAAuB,IAAI,GAAG,MAAM,IAAI;AAC7H,2BAAuB,MAAM,uBAAuB,uBAAuB,MAAM,uBAAuB,IAAI,GAAG,KAAK,KAAK,IAAI,EAAE,IAAI;;GAEvI,QAAQ,GAAG,SAAS;AAChB,QAAI,CAAC,KAAK,oBAAoB,CAC1B,SAAQ,MAAM,GAAG,KAAK;AAC1B,2BAAuB,MAAM,0BAA0B,MAAM,IAAI;AACjE,QAAI,uBAAuB,MAAM,uBAAuB,IAAI,CAAC,OACzD,wBAAuB,MAAM,uBAAuB,uBAAuB,MAAM,uBAAuB,IAAI,GAAG,MAAM,IAAI;AAC7H,2BAAuB,MAAM,uBAAuB,uBAAuB,MAAM,uBAAuB,IAAI,GAAG,KAAK,KAAK,IAAI,EAAE,IAAI;;GAE1I;;CAEL,CAAC,6BAA6B,WAAW;AACrC,aAAW,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,CAAC,SAAS,YAAY;AACvF,SAAM,QAAQ,QAAQ,iBAAiB,QAAQ,CAC3C;GACJ,MAAM,OAAO,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;AACvE,OAAI,MAAM,QAAQ,KAAK,EACnB;QAAI,KAAK,SAAS,UAAU,CACxB,MAAK,OAAO,KAAK,QAAQ,UAAU,EAAE,EAAE;cAEtC,OAAO,SAAS,SACrB,QAAO,KAAK;IAElB;AACF,SAAO,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,iBAAiB,CAAC;;CAErF,CAAC,cAAc,SAAS,MAAM,iBAAiB;AAC3C,MAAI,CAAC,uBAAuB,MAAM,gCAAgC,IAAI,CAAC,kBAAkB;AACrF,0BAAuB,MAAM,qBAAqB,IAAI,CAAC,QAAQ,YAAY,SAAS,KAAK;AACzF,0BAAuB,MAAM,gCAAgC,IAAI,CAAC,mBAAmB;;;CAG7F,CAAC,WAAW;AACR,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAK;GAC3D,SAAS,uBAAuB,MAAM,wBAAwB,IAAI;GAClE,eAAe,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,cAAc,MAAM,EAAE;GAC/F,aAAa,uBAAuB,MAAM,4BAA4B,IAAI;GAC1E,QAAQ,uBAAuB,MAAM,uBAAuB,IAAI;GAChE,QAAQ,uBAAuB,MAAM,uBAAuB,IAAI;GAChE,gBAAgB,uBAAuB,MAAM,+BAA+B,IAAI;GAChF,eAAe,uBAAuB,MAAM,8BAA8B,IAAI;GAC9E,mBAAmB,uBAAuB,MAAM,kCAAkC,IAAI;GACtF,QAAQ,uBAAuB,MAAM,uBAAuB,IAAI;GAChE,WAAW,uBAAuB,MAAM,0BAA0B,IAAI;GACtE,WAAW,uBAAuB,MAAM,0BAA0B,IAAI;GACtE,QAAQ,KAAK;GACb,SAAS,uBAAuB,MAAM,wBAAwB,IAAI;GAClE,cAAc,uBAAuB,MAAM,6BAA6B,IAAI;GAC/E,CAAC;AACF,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,QAAQ;AAChE,yBAAuB,MAAM,2BAA2B,IAAI,CAAC,QAAQ;AACrE,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,QAAQ;AAClE,yBAAuB,MAAM,iCAAiC,IAAI,CAAC,QAAQ;;CAE/E,CAAC,kBAAkB;EACf,IAAI,KAAK;EACT,IAAI;AACJ,MAAI,kCAAkC,KAAK,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,QAAQ,MAAM,CAAC,GAAG,CAChH,aAAY,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,GAAG,EAAE;MAG7F,aAAY,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,GAAG,EAAE;AAEjG,OAAK,UACA,KAAI,MAAK;GACV,MAAM,IAAI,KAAK,SAAS,uBAAuB,MAAM,oBAAoB,IAAI,EAAE,EAAE;AACjF,UAAO,EAAE,MAAM,uBAAuB,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI;IACtE,CACG,KAAK,IAAI,CACT,MAAM;AACX,MAAI,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,IAAI,IAClE,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,mBAAmB,KAAK,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,IAAI,CACjJ,MAAK,uBAAuB,MAAM,qBAAqB,IAAI,CACtD,OAAO,IAAI,CACX,QAAQ,GAAG,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,QAAQ,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,QAAQ,UAAU,CAAC,CAAC,IAAI,GAAG;AAE1K,SAAO;;CAEX,CAAC,2BAA2B;AACxB,SAAO,uBAAuB,MAAM,6BAA6B,IAAI;;CAEzE,CAAC,0BAA0B;AACvB,SAAO,uBAAuB,MAAM,4BAA4B,IAAI;;CAExE,CAAC,gBAAgB;AACb,MAAI,CAAC,uBAAuB,MAAM,6BAA6B,IAAI,CAC/D;EACJ,MAAM,SAAS,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,SAAS,IAClF,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,cAAc,IAC5E,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,OAAO,IACrE,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,WAAW,IACzE;AACJ,OAAK,OAAO,OAAO,QAAQ,UAAU,GAAG,CAAC;;CAE7C,CAAC,iBAAiB;AAEd,SADY,KAAK,SAAS,CACf,WAAW;;CAE1B,CAAC,yBAAyB,QAAM;EAC5B,MAAM,OAAOA,OAAK,QAAQA,OAAK,QAAQA,OAAK;AAC5C,OAAK,IAAI,IAAI,GAAG,MAAM,MAAM,KAAK,QAAQ,QAAW,IAChD,KAAI,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,gBAAgB,IAAI,IAClF,OAAO,cAAc,KAAK,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CACtD,MAAK,KAAK,OAAO,IAAI;AAG7B,SAAOA;;CAEX,CAAC,QAAQ,UAAU;EACf,MAAM,QAAQ,YAAY;AAC1B,MAAI,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OACvD,QAAO,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;EAClE,IAAI,MAAM,EAAE;AACZ,MAAI;GACA,IAAI,WAAW,YAAY,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AAClF,OAAI,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,QAAQ,SAAS,CAC7E,YAAW,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,QAAQ,SAAS;GAE5F,MAAM,cAAc,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,WAAW,KAAK,UAAU;AACxG,QAAI,MAAM,SAAS,eAAe,CAC9B,QAAO;QAGP;KAEN;AACF,wBAAqB,aAAa,QAAW,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;AACpG,SAAM,KAAK,MAAM,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,aAAa,aAAa,OAAO,CAAC;WAEvG,OAAO;AACd,yBAAuB,MAAM,qBAAqB,IAAI,CAAC,SAAS,OAAO,EAAE;AACzE,SAAO,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;;CAElE,CAAC,0BAA0B,MAAM,MAAM;AACnC,SAAO,EAAE,CAAC,OAAO,KAAK;AACtB,OAAK,SAAQ,QAAO;AAChB,SAAM,KAAK,cAAc,IAAI;AAC7B,0BAAuB,MAAM,wBAAwB,IAAI,CAAC,MAAM,KAAK,IAAI;IAC3E;;CAEN,CAAC,0CAA0C,SAAS,MAAM,KAAK,OAAO;AAClE,OAAK,+BAA+B,SAAS,MAAM,KAAK,QAAQ,QAAM,OAAK,YAAU;AACjF,0BAAuB,MAAM,wBAAwB,IAAI,CAACE,QAAMC,SAAOC;IACzE;;CAEN,CAAC,oCAAoC,SAAS,MAAM,KAAK,OAAO;AAC5D,OAAK,+BAA+B,SAAS,MAAM,KAAK,QAAQ,QAAM,OAAK,YAAU;AACjF,0BAAuB,MAAM,wBAAwB,IAAI,CAACF,QAAMC,UAAQ,uBAAuB,MAAM,wBAAwB,IAAI,CAACD,QAAMC,UAAQ,EAAE,EAAE,OAAOC,QAAM;IACnK;;CAEN,CAAC,+BAA+B,SAAS,MAAM,KAAK,OAAO,kBAAkB;AACzE,MAAI,MAAM,QAAQ,IAAI,CAClB,KAAI,SAAQ,MAAK;AACb,WAAQ,GAAG,MAAM;IACnB;aAEK,UAAQ,OAAOD,UAAQ,UAAU,IAAI,CAC5C,MAAK,MAAM,KAAK,WAAW,IAAI,CAC3B,SAAQ,GAAG,IAAI,GAAG;MAItB,kBAAiB,MAAM,KAAK,cAAc,IAAI,EAAE,MAAM;;CAG9D,CAAC,cAAc,KAAK;AAChB,MAAI,QAAQ,YACR,QAAO;AACX,SAAO;;CAEX,CAAC,SAAS,KAAK,KAAK;AAChB,OAAK,0CAA0C,KAAK,SAAS,KAAK,KAAK,EAAE,OAAO,KAAK,IAAI;AACzF,SAAO;;CAEX,CAAC,aAAa;EACV,IAAIF,MAAII,MAAIC,MAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;EAChD,MAAM,SAAS,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAK;AAC9E,uBAAqB,QAAQ,QAAW,uBAAuB,MAAM,qBAAqB,IAAI,CAAC;EAC/F,IAAI;AACJ,EAAC,OAAK,MAAM,OAAK,MAAM,OAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,CACjI,SAAU,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuBL,MAAI,wBAAwB,IAAI,IAAI;KAAK,CAAE,OAC9F,eACA,aAAc,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuBI,MAAI,4BAA4B,IAAI,IAAI;KAAK,CAAE,OACtG,QAAS,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuBC,MAAI,uBAAuB,IAAI,IAAI;KAAK,CAAE,OAC5F,QAAS,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,uBAAuB,IAAI,IAAI;KAAK,CAAE,OAC5F,WAAY,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,0BAA0B,IAAI,IAAI;KAAK,CAAE,OAClG,WAAY,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,0BAA0B,IAAI,IAAI;KAAK,CAAE,OAClG,QAAQ,KAAK,QACb,QAAS,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,uBAAuB,IAAI,IAAI;KAAK,CAAE,OAC5F,gBAAiB,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,+BAA+B,IAAI,IAAI;KAAK,CAAE,OAC5G,eAAgB,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,8BAA8B,IAAI,IAAI;KAAK,CAAE,OAC1G,mBAAoB,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,kCAAkC,IAAI,IAAI;KAAK,CAAE,OAClH,SAAU,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,wBAAwB,IAAI,IAAI;KAAK,CAAE,OAC9F,cAAe,EAAE,IAAI,MAAM,IAAI;AAAE,0BAAuB,IAAI,6BAA6B,IAAI,IAAI;KAAK,CAAE,SACxG;AACJ,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,gBAAgB;AAC1E,yBAAuB,MAAM,sBAAsB,IAAI,CAAC,UAAU;AAClE,yBAAuB,MAAM,2BAA2B,IAAI,CAAC,UAAU;AACvE,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,UAAU;AACpE,yBAAuB,MAAM,iCAAiC,IAAI,CAAC,UAAU;;CAEjF,CAAC,gBAAgB,cAAY,QAAM;AAC/B,SAAO,iBAAiBN,SAAM,WAAU;AACpC,gBAAW,OAAO;AAClB,UAAO;IACT;;CAEN,qBAAqB;AACjB,SAAO;GACH,oBAAoB,KAAK,qBAAqB,KAAK,KAAK;GACxD,YAAY,KAAK,aAAa,KAAK,KAAK;GACxC,cAAc,KAAK,eAAe,KAAK,KAAK;GAC5C,mBAAmB,KAAK,oBAAoB,KAAK,KAAK;GACtD,iBAAiB,KAAK,kBAAkB,KAAK,KAAK;GAClD,wBAAwB,KAAK,yBAAyB,KAAK,KAAK;GAChE,uBAAuB,KAAK,wBAAwB,KAAK,KAAK;GAC9D,kBAAkB,KAAK,mBAAmB,KAAK,KAAK;GACpD,uBAAuB,KAAK,wBAAwB,KAAK,KAAK;GAC9D,kBAAkB,KAAK,mBAAmB,KAAK,KAAK;GACpD,iBAAiB,KAAK,kBAAkB,KAAK,KAAK;GAClD,aAAa,KAAK,cAAc,KAAK,KAAK;GAC1C,OAAO,KAAK,QAAQ,KAAK,KAAK;GAC9B,eAAe,KAAK,gBAAgB,KAAK,KAAK;GAC9C,kCAAkC,KAAK,mCAAmC,KAAK,KAAK;GACpF,cAAc,KAAK,eAAe,KAAK,KAAK;GAC/C;;CAEL,CAAC,uBAAuB;AACpB,SAAO,uBAAuB,MAAM,wBAAwB,IAAI;;CAEpE,CAAC,eAAe;AACZ,SAAO,uBAAuB,MAAM,wBAAwB,IAAI;;CAEpE,CAAC,iBAAiB;AACd,SAAO,uBAAuB,MAAM,0BAA0B,IAAI;;CAEtE,CAAC,sBAAsB;AACnB,SAAO,uBAAuB,MAAM,uBAAuB,IAAI;;CAEnE,CAAC,oBAAoB;AACjB,SAAO,uBAAuB,MAAM,6BAA6B,IAAI,IAAI,EAAE;;CAE/E,CAAC,qBAAqB;AAClB,SAAO,uBAAuB,MAAM,sBAAsB,IAAI;;CAElE,CAAC,0BAA0B;AACvB,SAAO,uBAAuB,MAAM,2BAA2B,IAAI;;CAEvE,CAAC,qBAAqB;AAClB,SAAO,CAAC,CAAC,uBAAuB,MAAM,wBAAwB,IAAI;;CAEtE,CAAC,oBAAoB;AACjB,SAAO,uBAAuB,MAAM,gCAAgC,IAAI;;CAE5E,CAAC,cAAc,QAAM,oBAAoB,mBAAmB,qBAAqB;AAC7E,MAAI,kBACA,QAAOA;AACX,MAAI,UAAUA,OAAK,CACf,QAAOA;AACX,MAAI,CAAC,mBACD,UAAO,KAAK,iBAAiBA,OAAK;AAItC,MAF+B,KAAK,0BAA0B,CAAC,+BAC3D,KAAK,0BAA0B,CAAC,gCAAgC,OAEhE,UAAO,KAAK,yBAAyBA,OAAK;AAE9C,MAAI,oBACA,UAAO,gBAAgBA,QAAM,MAAM,uBAAuB,MAAM,iCAAiC,IAAI,CAAC,eAAe,EAAE,MAAM;AAEjI,SAAOA;;CAEX,CAAC,QAAQ,UAAU,EAAE,EAAE;AACnB,yBAAuB,MAAM,wBAAwB,uBAAuB,MAAM,wBAAwB,IAAI,IAAI,EAAE,EAAE,IAAI;EAC1H,MAAM,aAAa,EAAE;AACrB,aAAW,QAAQ,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,SAAS,EAAE;AACxF,aAAW,gBAAgB,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,iBAAiB,EAAE;EACxG,MAAM,cAAc,EAAE;AACtB,aAAW,MAAM,SAAQ,MAAK;AAC1B,eAAY,KAAK;AACjB,IAAC,QAAQ,MAAM,EAAE,EAAE,SAAQ,MAAK;AAC5B,gBAAY,KAAK;KACnB;IACJ;AACF,SAAO,OAAO,uBAAuB,MAAM,gCAAgC,IAAI,EAAE,OAAO,KAAK,uBAAuB,MAAM,uBAAuB,IAAI,CAAC,CAAC,QAAQ,KAAK,cAAc;GAC9K,MAAM,OAAO,uBAAuB,MAAM,uBAAuB,IAAI,CAAC,WAAW,QAAO,QAAO,EAAE,OAAO,aAAa;AACrH,OAAI,KAAK,SAAS,EACd,KAAI,aAAa;AAErB,UAAO;KACR,EAAE,CAAC,CAAC;AACP,yBAAuB,MAAM,uBAAuB,EAAE,EAAE,IAAI;EAC5D,MAAM,eAAe;GACjB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;EACD,MAAM,gBAAgB;GAClB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;AACD,eAAa,SAAQ,MAAK;AACtB,cAAW,MAAM,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,QAAM,CAAC,YAAYO,KAAG;IACrH;AACF,gBAAc,SAAS,MAAM;AACzB,cAAW,KAAK,UAAU,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAI,QAAK,CAAC,YAAYA,KAAG;IAC/G;AACF,aAAW,YAAY,uBAAuB,MAAM,wBAAwB,IAAI,CAAC;AACjF,yBAAuB,MAAM,wBAAwB,YAAY,IAAI;AACrE,yBAAuB,MAAM,sBAAsB,uBAAuB,MAAM,sBAAsB,IAAI,GACpG,uBAAuB,MAAM,sBAAsB,IAAI,CAAC,MAAM,YAAY,GAC1EC,MAAM,MAAM,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,EAAE,IAAI;AAC/E,yBAAuB,MAAM,2BAA2B,uBAAuB,MAAM,2BAA2B,IAAI,GAC9G,uBAAuB,MAAM,2BAA2B,IAAI,CAAC,MAAM,YAAY,GAC/EC,WAAW,MAAM,uBAAuB,MAAM,sBAAsB,IAAI,EAAE,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,EAAE,IAAI;AAC7I,yBAAuB,MAAM,wBAAwB,uBAAuB,MAAM,wBAAwB,IAAI,GACxG,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,OAAO,GACjEC,QAAQ,uBAAuB,MAAM,sBAAsB,IAAI,EAAE,uBAAuB,MAAM,2BAA2B,IAAI,EAAE,uBAAuB,MAAM,iCAAiC,IAAI,EAAE,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,EAAE,IAAI;AACtQ,MAAI,CAAC,uBAAuB,MAAM,2BAA2B,IAAI,CAC7D,wBAAuB,MAAM,2BAA2BC,WAAW,MAAM,uBAAuB,MAAM,sBAAsB,IAAI,EAAE,uBAAuB,MAAM,wBAAwB,IAAI,EAAE,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,EAAE,IAAI;AAC9P,yBAAuB,MAAM,iCAAiC,IAAI,CAAC,OAAO;AAC1E,yBAAuB,MAAM,kCAAkC,MAAM,IAAI;AACzE,yBAAuB,MAAM,uBAAuB,IAAI,IAAI;AAC5D,yBAAuB,MAAM,0BAA0B,MAAM,IAAI;AACjE,yBAAuB,MAAM,0BAA0B,OAAO,IAAI;AAClE,OAAK,SAAS;AACd,SAAO;;CAEX,CAAC,SAAS,MAAM,KAAK;AACjB,SAAO,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK,SAAS,MAAM,IAAI;;CAE1F,CAAC,mCAAmC,MAAM,cAAc,mBAAmB,eAAe,GAAG,WAAW,OAAO;EAC3G,IAAIV,MAAII,MAAIC,MAAI;EAChB,IAAI,iBAAiB,CAAC,CAAC,qBAAqB;AAC5C,SAAO,QAAQ,uBAAuB,MAAM,4BAA4B,IAAI;AAC5E,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,KAAK,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,KAAK;AAC3H,yBAAuB,MAAM,wBAAwB,IAAI,CAAC,gBAAgB,KAAK,0BAA0B;EACzG,MAAM,qBAAqB,CAAC,CAAC,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,cAAc;EACrG,MAAM,SAAS,OAAO,OAAO,EAAE,EAAE,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,eAAe,EACtG,cAAc,MACjB,CAAC;EACF,MAAM,SAAS,uBAAuB,MAAM,qBAAqB,IAAI,CAAC,OAAO,SAAS,MAAM,OAAO,OAAO,EAAE,EAAE,uBAAuB,MAAM,wBAAwB,IAAI,EAAE,EACrK,eAAe;GAAE,4BAA4B;GAAO,GAAG;GAAQ,EAClE,CAAC,CAAC;EACH,MAAMN,SAAO,OAAO,OAAO,OAAO,MAAM,uBAAuB,MAAM,6BAA6B,IAAI,CAAC;EACvG,IAAI,cAAc;EAClB,MAAM,UAAU,OAAO;EACvB,IAAI,aAAa;EACjB,IAAI,gBAAgB;AACpB,SAAO,KAAKA,OAAK,CAAC,SAAQ,QAAO;AAC7B,OAAI,QAAQ,uBAAuB,MAAM,wBAAwB,IAAI,IAAIA,OAAK,KAC1E,cAAa;YAER,QAAQ,uBAAuB,MAAM,2BAA2B,IAAI,IAAIA,OAAK,KAClF,iBAAgB;IAEtB;AACF,SAAK,KAAK,KAAK;AACf,OAAK,SAAS;AACd,MAAI,iBAAiB,EACjB,wBAAuB,MAAM,sBAAsB,IAAI,CAAC,wBAAwB;AAEpF,MAAI;AACA,QAAK,eAAe;AACpB,OAAI,aACA,QAAO,KAAK,cAAcA,QAAM,oBAAoB,CAAC,CAAC,mBAAmB,MAAM;AAEnF,OAAI,uBAAuB,MAAM,wBAAwB,IAAI,EAIzD;QAHiB,CAAC,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,CACvE,OAAO,QAAQ,uBAAuB,MAAM,wBAAwB,IAAI,KAAK,EAAE,CAAC,CAChF,QAAO,MAAK,EAAE,SAAS,EAAE,CACjB,SAAS,KAAKA,OAAK,EAAEA,OAAK,EAAE,SAAS,GAAG,EAAE;AACnD,YAAK,EAAE,KAAK;AACZ,kBAAa;;;AAGrB,0BAAuB,MAAM,gCAAgC,OAAO,IAAI;GACxE,MAAM,cAAc,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,aAAa;GAC3F,MAAM,uBAAuB,OAAK,uBAAuB,MAAM,2BAA2B,IAAI,MAAM,QAAQC,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,iBAClI,EACG,OAAK,uBAAuB,MAAM,2BAA2B,IAAI,MAAM,QAAQI,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,eAC5G,IAAK,KAAK,KAAK,YAAY,EAAE,OAAK,uBAAuB,MAAM,2BAA2B,IAAI,MAAM,QAAQC,SAAO,KAAK,IAAI,KAAK,IAAIA,KAAG,oBAAoB,QAAQ,OAAO,KAAK,IAAI,KAAK,EAAE,CAC9L,CAAC,MAAM,QAAQ,OAAO,UAAU,eAAe,KAAKN,QAAM,IAAI,CAAC,GAC9D;GACN,MAAM,qBAAqB,cAAc,sBAAsB;AAC/D,OAAIA,OAAK,EAAE,QAAQ;AACf,QAAI,YAAY,QAAQ;KACpB,IAAI;AACJ,UAAK,IAAI,IAAI,gBAAgB,GAAG,KAAKA,OAAK,EAAE,OAAO,QAAW,KAAK;AAC/D,YAAM,OAAOA,OAAK,EAAE,GAAG;AACvB,UAAI,YAAY,SAAS,IAAI,IAAI,QAAQ,uBAAuB,MAAM,kCAAkC,IAAI,EAAE;OAC1G,MAAM,YAAY,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,WAAW,KAAK,MAAM,QAAQ,IAAI,GAAG,UAAU,cAAc,iBAAiB,SAAS;AACnK,cAAO,KAAK,cAAc,WAAW,oBAAoB,CAAC,CAAC,mBAAmB,MAAM;iBAE/E,CAAC,uBACN,QAAQ,uBAAuB,MAAM,kCAAkC,IAAI,EAAE;AAC7E,6BAAsB;AACtB;;;AAGR,SAAI,CAAC,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,mBAAmB,IAC9E,uBAAuB,MAAM,kCAAkC,IAAI,IACnE,uBACA,CAAC,mBACD,wBAAuB,MAAM,2BAA2B,IAAI,CAAC,kBAAkB,qBAAqB,YAAY;;AAGxH,QAAI,uBAAuB,MAAM,kCAAkC,IAAI,IACnEA,OAAK,EAAE,SAAS,uBAAuB,MAAM,kCAAkC,IAAI,CAAC,IACpF,CAAC,oBAAoB;AACrB,SAAI,uBAAuB,MAAM,4BAA4B,IAAI,CAC7D,aAAY,KAAK;AACrB,UAAK,sBAAsB;AAC3B,UAAK,KAAK,EAAE;;;AAGpB,OAAI,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,mBAAmB,IAAI,CAAC,oBAAoB;IACtG,MAAM,YAAY,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,WAAW,MAAM,MAAM,QAAQ,GAAG,UAAU,cAAc,iBAAiB,SAAS;AAChK,WAAO,KAAK,cAAc,WAAW,oBAAoB,CAAC,CAAC,mBAAmB,MAAM;;AAExF,OAAI,oBAAoB;AACpB,QAAI,uBAAuB,MAAM,4BAA4B,IAAI,CAC7D,aAAY,KAAK;AACrB,WAAO,EAAE,CAAC,OAAO,KAAK;IACtB,MAAM,iBAAiB,KAAK,MAAM,KAAK,QAAQ,KAAK,uBAAuB,MAAM,2BAA2B,IAAI,CAAC,gBAAgB,GAAG,EAAE;AACtI,2BAAuB,MAAM,2BAA2B,IAAI,CAAC,cAAc,iBAAiB,KAAK,gBAAgB;AAC7G,SAAI,IACA,OAAM,IAAI,OAAO,IAAI,QAAQ;AACjC,MAAC,eAAe,EAAE,EAAE,SAAQ,iBAAc;AACtC,6BAAuB,MAAM,uBAAuB,IAAI,CAAC,IAAIY,aAAW;OAC1E;AACF,UAAK,KAAK,EAAE;MACd;AACF,WAAO,KAAK,cAAcZ,QAAM,CAAC,oBAAoB,CAAC,CAAC,mBAAmB,MAAM;;AAEpF,OAAI,CAAC,uBAAuB,MAAM,0BAA0B,IAAI,EAC5D;QAAI,YAAY;AACZ,SAAI,uBAAuB,MAAM,4BAA4B,IAAI,CAC7D,aAAY,KAAK;AACrB,sBAAiB;AACjB,UAAK,UAAS,YAAW;AACrB,6BAAuB,MAAM,uBAAuB,IAAI,CAAC,IAAI,QAAQ;AACrE,WAAK,KAAK,EAAE;OACd;eAEG,eAAe;AACpB,SAAI,uBAAuB,MAAM,4BAA4B,IAAI,CAC7D,aAAY,KAAK;AACrB,sBAAiB;AACjB,4BAAuB,MAAM,sBAAsB,IAAI,CAAC,YAAY,MAAM;AAC1E,UAAK,KAAK,EAAE;;;AAGpB,OAAI,CAAC,kBAAkB,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,eAAe,SAAS,EACrG,kBAAiB,OAAO,KAAKA,OAAK,CAAC,MAAK,QAAO,uBAAuB,MAAM,wBAAwB,IAAI,CAAC,eAAe,QAAQ,IAAI,IAAI,KAAKA,OAAK,SAAS,KAAK;AAEpK,OAAI,CAAC,gBAAgB;AACjB,QAAI,OAAO,MACP,OAAM,IAAI,OAAO,OAAO,MAAM,QAAQ;AAC1C,QAAI,CAAC,oBAAoB;KACrB,MAAMa,eAAa,KAAK,gBAAgB,SAAS,EAAE,EAAE,OAAO,MAAM;AAClE,SAAI,CAAC,kBACD,eAAc,gBAAgBb,QAAM,MAAM,uBAAuB,MAAM,iCAAiC,IAAI,CAAC,eAAe,EAAE,KAAK;AAEvI,mBAAc,KAAK,gBAAgBa,cAAY,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,cAAcb,OAAK;AACnH,SAAI,UAAU,YAAY,IAAI,CAAC,kBAC3B,eAAc,YAAY,WAAW;AACjC,aAAO,gBAAgBA,QAAM,MAAM,uBAAuB,MAAM,iCAAiC,IAAI,CAAC,eAAe,EAAE,MAAM;OAC/H;;;WAKX,KAAK;AACR,OAAI,eAAe,OACf,wBAAuB,MAAM,sBAAsB,IAAI,CAAC,KAAK,IAAI,SAAS,IAAI;OAE9E,OAAM;;AAEd,SAAO,KAAK,cAAc,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,cAAcA,QAAM,oBAAoB,CAAC,CAAC,mBAAmB,KAAK;;CAEjJ,CAAC,gBAAgB,SAAS,eAAe,aAAa,kBAAkB;EACpE,MAAM,kBAAkB,EAAE,GAAG,KAAK,oBAAoB,EAAE;AACxD,UAAQ,WAAS;AACb,OAAI,YACA,OAAM,IAAI,OAAO,YAAY,QAAQ;AACzC,0BAAuB,MAAM,2BAA2B,IAAI,CAAC,eAAeA,OAAK;AACjF,0BAAuB,MAAM,2BAA2B,IAAI,CAAC,kBAAkBA,QAAM,gBAAgB;GACrG,IAAI,uBAAuB;AAC3B,OAAI,uBAAuB,MAAM,+BAA+B,IAAI,CAChE,wBAAuB,uBAAuB,MAAM,2BAA2B,IAAI,CAAC,gBAAgBA,OAAK;AAE7G,OAAI,uBAAuB,MAAM,uBAAuB,IAAI,IAAI,CAAC,qBAC7D,wBAAuB,MAAM,2BAA2B,IAAI,CAAC,iBAAiBA,QAAM,SAAS,eAAe,CAAC,CAAC,iBAAiB;YAE1H,uBAAuB,MAAM,8BAA8B,IAAI,CACpE,wBAAuB,MAAM,2BAA2B,IAAI,CAAC,iBAAiBA,QAAM,SAAS,EAAE,EAAE,OAAO,MAAM;AAElH,0BAAuB,MAAM,2BAA2B,IAAI,CAAC,eAAeA,OAAK;AACjF,0BAAuB,MAAM,2BAA2B,IAAI,CAAC,aAAaA,OAAK;AAC/E,0BAAuB,MAAM,2BAA2B,IAAI,CAAC,YAAYA,OAAK;;;CAGtF,CAAC,iBAAiB;AACd,yBAAuB,MAAM,0BAA0B,MAAM,IAAI;;CAErE,CAAC,uBAAuB,MAAM;AAC1B,MAAI,OAAO,SAAS,SAChB,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,IAAI,QAAQ;MAGtE,MAAK,MAAM,KAAK,KACZ,wBAAuB,MAAM,wBAAwB,IAAI,CAAC,IAAI,KAAK;;;AAKnF,SAAgB,gBAAgB,GAAG;AAC/B,QAAO,CAAC,CAAC,KAAK,OAAO,EAAE,uBAAuB;;;;;ACr+ClD,MAAM,QAAQ,aAAac,YAAgB;AAC3C,oBAAe;;;;;;;;;;;;ACGf,IAAa,sBAAb,cAAyC,UAAU;CACjD,AAAQ,SAAS;CAEjB,cAAc;AACZ,QAAM,EAAE,YAAY,OAAO,CAAC;;CAG9B,OAAO,UAA+D;EAEpE,MAAM,OAAO,YAAY,KAAK,OAAO;AACrC,MAAI,SAAS,KACX,UAAS,MAAM,OAAO,KAAK,KAAK,CAAC;MAEjC,UAAS,MAAM,KAAK;;CAIxB,WACE,OACA,WACA,UACA;AACA,OAAK,UAAU,MAAM,UAAU;EAC/B,MAAM,QAAQ,KAAK,OAAO,MAAM,KAAK;AAGrC,OAAK,SAAS,MAAM,KAAK,IAAI;EAE7B,MAAM,YAAY,EAAE;EACpB,MAAM,eAAe,EAAE;AAEvB,OAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,OAAO,YAAY,KAAK;AAC9B,OAAI,SAAS,KACX,WAAU,KAAK,KAAK;YACX,KAAK,MAAM,CAAC,SAAS,EAC9B,cAAa,KAAK,KAAK;;AAI3B,MAAI,aAAa,SAAS,EACxB,SAAQ,KAAK,wCAAwC,aAAa;AAGpE,MAAI,UAAU,SAAS,GAAG;GAExB,MAAM,SAAS,UAAU,KAAK,KAAK,GAAG;AAEtC,YAAS,MAAM,OAAO,KAAK,OAAO,CAAC;QAEnC,UAAS,MAAM,KAAK;;;;;;;AAS1B,SAAS,YAAY,MAA6B;CAChD,MAAM,UAAU,KAAK,MAAM;AAC3B,KAAI,QAAQ,WAAW,EACrB,QAAO;CAGT,MAAM,aAAa,QAAQ,QAAQ,IAAI;AACvC,KAAI,eAAe,GACjB,QAAO;AAGT,KAAI,eAAe,EACjB,QAAO;CAIT,MAAM,WAAW,QAAQ,MAAM,WAAW;AAC1C,SAAQ,KACN,qDACA,QAAQ,MAAM,GAAG,WAAW,CAC7B;AACD,QAAO;;;;;;;;;;;;;ACVT,IAAa,uBAAb,MAAuD;CACrD;CAEA;CACA;;;;;;CAMA,IAAI,MAAqB;AACvB,SAAO,KAAK,UAAU,OAAO;;;;;;;;;CAS/B,IAAI,SAAwB;AAC1B,MAAI,KAAK,cACP,QAAO,KAAK;AAGd,SAAO,KAAK,UAAU,UAAU;;CAElC,AAAQ,mBAAoC,IAAI,iBAAiB;CACjE,AAAQ;CACR,AAAQ,cAA0B,IAAI,YAAY;CAClD,AAAQ;CACR,AAAQ,gBAAoC;CAE5C,AAAQ;CAER,YAAY,QAA+B;AACzC,OAAK,gBAAgB;AACrB,MAAI,OAAO,WAAW,UAAU,OAAO,WAAW,aAChD,MAAK,gBAAgB,IAAI,aAAa;AAExC,OAAK,UAAU,OAAO;;CAGxB,MAAM,QAAuB;AAC3B,OAAK,UAAU,EACb,MAAM,SACP,CAAC;AAEF,OAAK,iBAAiB,OAAO;AAC7B,OAAK,WAAW;AAChB,OAAK,YAAY,OAAO;;CAG1B,KAAK,SAAwC;AAC3C,SAAO,IAAI,SAAS,cAAY;AAC9B,OAAI,CAAC,KAAK,UAAU,MAClB,OAAM,IAAI,MAAM,gBAAgB;GAGlC,MAAM,OAAO,iBAAiB,QAAQ;AACtC,OAAI,KAAK,SAAS,MAAM,MAAM,KAAK,CACjC,YAAS;OAET,MAAK,SAAS,MAAM,KAAK,SAASC,UAAQ;IAE5C;;;;;CAMJ,MAAM,QAAuB;AAC3B,MAAI,KAAK,SACP,OAAM,IAAI,MACR,gHACD;AAGH,SAAO,IAAI,SAAS,WAAS,WAAW;AACtC,QAAK,WAAW,MACd,KAAK,cAAc,SACnB,KAAK,cAAc,QAAQ,EAAE,EAC7B;IACE,KAAK,KAAK,cAAc;IACxB,KAAK,KAAK,cAAc;IACxB,OAAO,KAAK,cAAc,SAAS;IACnC,QAAQ,KAAK,iBAAiB;IAC9B,OAAO;KAAC;KAAQ;KAAQ,KAAK,cAAc,UAAU;KAAU;IAChE,CACF;AAED,QAAK,SAAS,GAAG,UAAU,UAAU;AACnC,QAAI,MAAM,SAAS,cAAc;AAE/B,UAAK,WAAW;AAChB;;AAGF,WAAO,MAAM;AACb,SAAK,UAAU,MAAM;KACrB;AAEF,QAAK,SAAS,GAAG,eAAe;AAC9B,eAAS;KACT;AAGF,QAAK,SAAS,GAAG,UAAU,UAAU;AACnC,SAAK,UAAU,EACb,MAAM,SACP,CAAC;AAEF,SAAK,WAAW;AAChB,SAAK,WAAW;KAChB;AAEF,QAAK,SAAS,OAAO,GAAG,UAAU,UAAU;AAC1C,SAAK,UAAU;KACb;KACA,MAAM;KACP,CAAC;AAEF,SAAK,UAAU,MAAM;KACrB;GAEF,MAAM,sBAAsB,IAAI,qBAAqB;AAErD,QAAK,SAAS,QAAQ,KAAK,oBAAoB;AAE/C,uBAAoB,GAAG,SAAS,UAAU;AACxC,SAAK,UAAU;KACb,OAAO,MAAM,UAAU;KACvB,MAAM;KACP,CAAC;AAEF,SAAK,YAAY,OAAO,MAAM;AAC9B,SAAK,mBAAmB;KACxB;AAEF,uBAAoB,GAAG,UAAU,UAAU;AACzC,SAAK,UAAU;KACb;KACA,MAAM;KACP,CAAC;AAEF,SAAK,UAAU,MAAM;KACrB;AAEF,OAAI,KAAK,iBAAiB,KAAK,SAAS,OACtC,MAAK,SAAS,OAAO,KAAK,KAAK,cAAc;IAE/C;;CAGJ,AAAQ,oBAAoB;AAC1B,SAAO,KACL,KAAI;GACF,MAAM,UAAU,KAAK,YAAY,aAAa;AAE9C,OAAI,YAAY,KACd;AAGF,QAAK,UAAU;IACb;IACA,MAAM;IACP,CAAC;AAEF,QAAK,YAAY,QAAQ;WAClB,OAAO;AACd,QAAK,UAAU;IACN;IACP,MAAM;IACP,CAAC;AAEF,QAAK,UAAU,MAAe;;;;;;;ACjPtC,MAAM,cADU,cAAc,OAAO,KAAK,IAAI,CAClB,qBAAqB;AAOjD,KAAK,QAAQ,eAAe,QAAQ;AAEpC,IAAI,EAAE,iBAAiB,QAErB,QAAO,cAAc;AAGvB,MAAM,OAAO,MAAMC,cAAM,QAAQ,QAAQ,KAAK,CAAC,CAC5C,WAAW,YAAY,CACvB,QAAQ,YAAY,QAAQ,CAC5B,QAAQ,0BAA0B,sCAAsC,CACxE,WAAW,WAAW;CACrB,UAAU;CACV,MAAM;CACP,CAAC,CACD,WAAW,QAAQ;CAClB,OAAO;CACP,UAAU;CACV,MAAM;CACP,CAAC,CACD,MAAM,qEAAqE,CAC3E,IAAI,YAAY,CAChB,oBAAoB,EACnB,cAAc,MACf,CAAC,CACD,QAAQ;CACP,QAAQ;EACN,UAAU;EACV,MAAM;EACP;CACD,mBAAmB;EACjB,SAAS;EACT,UACE;EACF,MAAM;EACP;CACD,OAAO;EACL,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,UAAU;EACR,UAAU;EACV,MAAM;EACP;CACD,yBAAyB;EACvB,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,MAAM;EACJ,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,MAAM;EACJ,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,gBAAgB;EACd,SAAS;EACT,UACE;EACF,MAAM;EACP;CACD,QAAQ;EACN,SAAS,CAAC,OAAO,SAAS;EAC1B,UACE;EACF,MAAM;EACP;CACD,OAAO;EACL,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,aAAa;EACX,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,OAAO;EACL,UAAU;EACV,MAAM;EACP;CACD,SAAS;EACP,UAAU;EACV,MAAM;EACP;CACD,QAAQ;EACN,UAAU;EACV,MAAM;EACP;CACD,WAAW;EACT,SAAS;EACT,UACE;EACF,MAAM;EACP;CACD,gBAAgB;EACd,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,QAAQ;EACN,SAAS;EACT,UAAU;EACV,MAAM;EACP;CACD,iBAAiB;EACf,UAAU;EACV,MAAM;EACP;CACF,CAAC,CACD,MAAM,CACN,YAAY;AAGf,MAAM,eAAe,KAAK;AAE1B,IAAIC;AACJ,IAAIC;AAEJ,IAAI,gBAAgB,aAAa,SAAS,EAExC,EAAC,iBAAiB,aAAa;SACtB,KAAK,SAAS;AAEvB,gBAAe,KAAK;AACpB,aAAa,KAAK,QAAqB,EAAE;OACpC;AACL,SAAQ,MAAM,+BAA+B;AAC7C,SAAQ,MAAM,oDAAoD;AAClE,SAAQ,MAAM,uCAAuC;AACrD,SAAQ,MAAM,GAAG;AACjB,SAAQ,MAAM,YAAY;AAC1B,SAAQ,MAAM,wDAAwD;AACtE,SAAQ,MAAM,6BAA6B;AAC3C,SAAQ,KAAK,EAAE;;AAGjB,MAAM,UAAU,OAAO,QAAgB,sBAA8B;CACnE,MAAM,YAAY,IAAI,qBAAqB;EACzC,MAAM;EACN,SAAS;EACT,KAAK,QAAQ;EACb,UAAU,UAAU;AAClB,OAAI,KAAK,MACP,SAAQ,MAAM,mBAAmB,MAAM;;EAG3C,OAAO,KAAK;EAEZ,QAAQ;EACT,CAAC;AAEF,OAAM,OAAO,QAAQ,WAAW,EAAE,SAAS,mBAAmB,CAAC;;AAGjE,MAAM,QAAQ,YAAY;CACxB,MAAM,SAAS,IAAI,OACjB;EACE,MAAM;EACN,SAAS;EACV,EACD,EACE,cAAc,EAAE,EACjB,CACF;AAED,OAAM,QAAQ,QAAQ,KAAK,kBAAkB;CAE7C,MAAM,gBAAgB,OAAO,kBAAkB;CAK/C,MAAM,qBAAqB,OAAO,uBAAuB;AAEzD,SAAQ,KAAK,8BAA8B,KAAK,KAAK;CAErD,MAAM,eAAe,YAAY;EAC/B,MAAMC,WAAS,IAAI,OAAO,eAAe,EACvC,cAAc,oBACf,CAAC;AAEF,cAAY;GACV;GACA,gBAAgB,KAAK;GACrB;GACA;GACD,CAAC;AAEF,SAAOA;;CAGT,MAAM,SAAS,MAAM,gBAAgB;EACnC,QAAQ,KAAK;EACb;EACA,YAAY,IAAI,oBAAoB;EACpC,MAAM,KAAK;EACX,MAAM,KAAK;EACX,aACE,KAAK,UAAU,KAAK,WAAW,QAC3B,OACC,KAAK,eAAe,KAAK;EAChC,OAAO,KAAK;EACZ,SAAS,KAAK;EACd,QAAQ,KAAK;EACb,WAAW,KAAK;EAChB,gBACE,KAAK,UAAU,KAAK,WAAW,WAC3B,OACC,KAAK,kBAAkB,KAAK;EACpC,CAAC;CAEF,IAAIC;AAEJ,KAAI,KAAK,QAAQ;AACf,UAAQ,KAAK,wCAAwC;AACrD,WAAS,MAAM,QAAQ;GACrB,MAAM;GACN,MAAM,KAAK;GACX,WAAW,KAAK;GACjB,CAAC;AACF,UAAQ,KAAK,4BAA4B,OAAO,IAAI;;AAGtD,QAAO,EACL,OAAO,YAAY;AACjB,QAAM,OAAO,OAAO;AACpB,MAAI,OACF,OAAM,OAAO,OAAO;IAGzB;;AAGH,MAAM,0BAA0B,EAC9B,QACA,cAII;CACJ,MAAM,yBAAyB;AAC7B,UAAQ,KAAK,0CAA0C;AAEvD,SAAO,OAAO;AAEd,qBAAiB;AAEf,WAAQ,KAAK,EAAE;KACd,QAAQ,CAAC,OAAO;;AAGrB,SAAQ,KAAK,WAAW,iBAAiB;AACzC,SAAQ,KAAK,UAAU,iBAAiB;AAExC,cAAa;AACX,SAAO,OAAO;;;AAIlB,MAAM,OAAO,YAAY;AACvB,KAAI;AAGF,yBAAuB;GACrB,QAHa,MAAM,OAAO;GAI1B,SAAS,KAAK;GACf,CAAC;UACK,OAAO;AACd,UAAQ,MAAM,6BAA6B,MAAM;AAGjD,qBAAiB;AACf,WAAQ,KAAK,EAAE;KACd,IAAK;;;AAIZ,MAAM,MAAM"}