@interopio/workspaces-api 3.2.1 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/workspaces.es.js +4295 -4648
- package/dist/workspaces.es.js.map +1 -1
- package/dist/workspaces.umd.js +5206 -5559
- package/dist/workspaces.umd.js.map +1 -1
- package/dist/workspaces.umd.min.js +1 -1
- package/package.json +36 -50
- package/workspaces.d.ts +8 -0
- package/rollup.config.js +0 -54
- package/src/builders/baseBuilder.ts +0 -50
- package/src/builders/parentBuilder.ts +0 -62
- package/src/builders/workspaceBuilder.ts +0 -102
- package/src/communication/bridge.ts +0 -263
- package/src/communication/constants.ts +0 -202
- package/src/communication/interop-transport.ts +0 -175
- package/src/controllers/base.ts +0 -487
- package/src/controllers/main.ts +0 -541
- package/src/controllers/shortcuts.ts +0 -28
- package/src/index.ts +0 -23
- package/src/main.ts +0 -415
- package/src/models/base/base.ts +0 -397
- package/src/models/column.ts +0 -187
- package/src/models/frame.ts +0 -368
- package/src/models/group.ts +0 -237
- package/src/models/row.ts +0 -188
- package/src/models/window.ts +0 -309
- package/src/models/workspace.ts +0 -717
- package/src/shared/decoders.ts +0 -939
- package/src/shared/ioc.ts +0 -227
- package/src/shared/privateDataManager.ts +0 -93
- package/src/shared/promisePlus.ts +0 -34
- package/src/shared/promiseWrapper.ts +0 -11
- package/src/types/builders.ts +0 -10
- package/src/types/controller.ts +0 -79
- package/src/types/glue.ts +0 -37
- package/src/types/ioc.ts +0 -33
- package/src/types/privateData.ts +0 -92
- package/src/types/protocol.ts +0 -453
- package/src/types/subscription.ts +0 -31
- package/temp.d.ts +0 -49
- package/tsconfig.json +0 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.umd.js","sources":["../node_modules/callback-registry/lib/index.js","../node_modules/decoder-validate/dist/index.es5.js","../src/shared/decoders.ts","../src/communication/constants.ts","../src/shared/promiseWrapper.ts","../src/communication/bridge.ts","../src/shared/promisePlus.ts","../src/communication/interop-transport.ts","../src/builders/parentBuilder.ts","../src/builders/baseBuilder.ts","../src/builders/workspaceBuilder.ts","../src/models/row.ts","../src/models/column.ts","../src/models/group.ts","../src/models/workspace.ts","../src/models/window.ts","../src/models/frame.ts","../src/shared/privateDataManager.ts","../src/models/base/base.ts","../src/controllers/base.ts","../src/controllers/main.ts","../src/controllers/shortcuts.ts","../src/shared/ioc.ts","../src/main.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map","/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Typeguard for `Ok`.\r\n */\r\nvar isOk = function (r) { return r.ok === true; };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Typeguard for `Err`.\r\n */\r\nvar isErr = function (r) { return r.ok === false; };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Given an array of `Result`s, return the successful values.\r\n */\r\nvar successes = function (results) {\r\n return results.reduce(function (acc, r) { return (r.ok === true ? acc.concat(r.result) : acc); }, []);\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n\r\nvar result = Object.freeze({\r\n\tok: ok,\r\n\tisOk: isOk,\r\n\terr: err,\r\n\tisErr: isErr,\r\n\tasPromise: asPromise,\r\n\twithDefault: withDefault,\r\n\twithException: withException,\r\n\tsuccesses: successes,\r\n\tmap: map,\r\n\tmap2: map2,\r\n\tmapError: mapError,\r\n\tandThen: andThen\r\n});\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/**\r\n * Type guard for `DecoderError`. One use case of the type guard is in the\r\n * `catch` of a promise. Typescript types the error argument of `catch` as\r\n * `any`, so when dealing with a decoder as a promise you may need to\r\n * distinguish between a `DecoderError` and an error string.\r\n */\r\nvar isDecoderError = function (a) {\r\n return a.kind === 'DecoderError' && typeof a.at === 'string' && typeof a.message === 'string';\r\n};\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nvar unknownJson = Decoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nvar tuple = Decoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nvar intersection = Decoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nvar withDefault$1 = Decoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nvar valueAt = Decoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nvar succeed = Decoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nvar lazy = Decoder.lazy;\r\n\r\nexport { result as Result, Decoder, isDecoderError, string, number, boolean, anyJson, unknownJson, constant, object, array, tuple, dict, optional, oneOf, union, intersection, withDefault$1 as withDefault, valueAt, succeed, fail, lazy };\r\n//# sourceMappingURL=index.es5.js.map\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { Decoder, object, boolean, string, optional, array, oneOf, constant, lazy, number, anyJson, intersection } from \"decoder-validate\";\nimport {\n IsWindowInSwimlaneResult,\n WorkspaceSnapshotResult,\n ChildSnapshotResult,\n WorkspaceConfigResult,\n FrameSummaryResult,\n WorkspaceCreateConfigProtocol,\n GetFrameSummaryConfig,\n WorkspaceSummaryResult,\n LayoutSummariesResult,\n LayoutSummary,\n OpenWorkspaceConfig,\n FrameSummariesResult,\n WorkspaceSummariesResult,\n ExportedLayoutsResult,\n DeleteLayoutConfig,\n SimpleItemConfig,\n ResizeItemConfig,\n MoveFrameConfig,\n FrameSnapshotResult,\n BaseChildSnapshotConfig,\n ParentSnapshotConfig,\n SwimlaneWindowSnapshotConfig,\n SimpleWindowOperationSuccessResult,\n SetItemTitleConfig,\n MoveWindowConfig,\n AddWindowConfig,\n AddContainerConfig,\n AddItemResult,\n BundleWorkspaceConfig,\n WorkspaceStreamData,\n FrameStreamData,\n ContainerStreamData,\n ContainerSummaryResult,\n WindowStreamData,\n PingResult,\n FrameStateConfig,\n FrameStateResult,\n LockWorkspaceConfig,\n LockWindowConfig,\n LockContainerConfig,\n SubParentSnapshotResult,\n WindowSnapshotResult,\n LockRowConfig,\n LockColumnConfig,\n LockGroupConfig,\n FrameBoundsResult,\n GetWorkspaceIconResult,\n PinWorkspaceConfig,\n SetWorkspaceIconConfig,\n FrameInitializationConfigProtocol,\n WorkspaceSelector,\n ShortcutClickedData,\n ShortcutConfig,\n FrameSnapshotConfig,\n FrameBounds,\n SetMaximizationBoundaryConfig,\n LoadingAnimationConfig,\n GetPlatformFrameIdResult,\n ItemBundleConfig,\n OperationCheckConfig,\n OperationCheckResult\n} from \"../types/protocol\";\nimport { WorkspaceEventType, WorkspaceEventAction } from \"../types/subscription\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\n\nexport const nonEmptyStringDecoder: Decoder<string> = string().where((s) => s.length > 0, \"Expected a non-empty string\");\nexport const nonNegativeNumberDecoder: Decoder<number> = number().where((num) => num >= 0, \"Expected a non-negative number\");\nexport const positiveNumberDecoder: Decoder<number> = number().where((num) => num > 0, \"Expected a positive number\");\n\n\nexport const isWindowInSwimlaneResultDecoder: Decoder<IsWindowInSwimlaneResult> = object({\n inWorkspace: boolean()\n});\n\nexport const allParentDecoder: Decoder<\"workspace\" | \"row\" | \"column\" | \"group\"> = oneOf<\"workspace\" | \"row\" | \"column\" | \"group\">(\n constant(\"workspace\"),\n constant(\"row\"),\n constant(\"column\"),\n constant(\"group\")\n);\n\nexport const subParentDecoder: Decoder<\"row\" | \"column\" | \"group\"> = oneOf<\"row\" | \"column\" | \"group\">(\n constant(\"row\"),\n constant(\"column\"),\n constant(\"group\")\n);\n\nexport const frameStateDecoder: Decoder<\"maximized\" | \"minimized\" | \"normal\"> = oneOf<\"maximized\" | \"minimized\" | \"normal\">(\n constant(\"maximized\"),\n constant(\"minimized\"),\n constant(\"normal\")\n);\n\nexport const loadingAnimationTypeDecoder: Decoder<\"workspace\"> = oneOf<\"workspace\">(\n constant(\"workspace\")\n);\n\nexport const checkThrowCallback = (callback: unknown, allowUndefined?: boolean): void => {\n const argumentType = typeof callback;\n\n if (allowUndefined && argumentType !== \"function\" && argumentType !== \"undefined\") {\n throw new Error(`Provided argument must be either undefined or of type function, provided: ${argumentType}`);\n }\n\n if (!allowUndefined && argumentType !== \"function\") {\n throw new Error(`Provided argument must be of type function, provided: ${argumentType}`);\n }\n};\n\nexport const workspaceBuilderCreateConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceCreateConfig> = optional(object({\n saveLayout: optional(boolean())\n}));\n\nexport const deleteLayoutConfigDecoder: Decoder<DeleteLayoutConfig> = object({\n name: nonEmptyStringDecoder\n});\n\nexport const windowDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowDefinitionConfig> = object({\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number()),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean())\n});\n\nexport const groupDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.GroupDefinitionConfig> = object({\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number()),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n allowDrop: optional(boolean()),\n allowDropHeader: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropBottom: optional(boolean()),\n showMaximizeButton: optional(boolean()),\n showEjectButton: optional(boolean()),\n showAddWindowButton: optional(boolean())\n});\n\nexport const rowDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.RowDefinitionConfig> = object({\n minHeight: optional(number()),\n maxHeight: optional(number()),\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n isPinned: optional(boolean()),\n maximizationBoundary: optional(boolean())\n});\n\nexport const columnDefinitionConfigDecoder: Decoder<IOConnectWorkspaces.ColumnDefinitionConfig> = object({\n minWidth: optional(number()),\n maxWidth: optional(number()),\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n isPinned: optional(boolean()),\n maximizationBoundary: optional(boolean())\n});\n\nexport const swimlaneWindowDefinitionDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowDefinition> = object({\n type: optional(constant(\"window\")),\n appName: optional(nonEmptyStringDecoder),\n windowId: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n config: optional(windowDefinitionConfigDecoder)\n});\n\nexport const strictSwimlaneWindowDefinitionDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowDefinition> = object({\n type: constant(\"window\"),\n appName: optional(nonEmptyStringDecoder),\n windowId: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n config: optional(windowDefinitionConfigDecoder)\n});\n\nexport const parentDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = optional(object({\n type: optional(subParentDecoder),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n swimlaneWindowDefinitionDecoder,\n parentDefinitionDecoder\n )\n ))\n ),\n config: optional(anyJson())\n}));\n\n\nexport const strictColumnDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = object({\n type: constant(\"column\"),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n strictSwimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n )\n ))\n ),\n config: optional(columnDefinitionConfigDecoder)\n});\n\nexport const strictRowDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = object({\n type: constant(\"row\"),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n strictSwimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n )\n ))\n ),\n config: optional(rowDefinitionConfigDecoder)\n});\n\nexport const strictGroupDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = object({\n type: constant(\"group\"),\n children: optional(\n lazy(() => array(\n oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n strictSwimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n )\n ))\n ),\n config: optional(groupDefinitionConfigDecoder)\n});\n\nexport const strictParentDefinitionDecoder: Decoder<IOConnectWorkspaces.BoxDefinition> = oneOf(strictGroupDefinitionDecoder, strictColumnDefinitionDecoder, strictRowDefinitionDecoder);\n\nexport const stateDecoder: Decoder<\"maximized\" | \"normal\"> = oneOf<\"maximized\" | \"normal\">(\n (string().where((s) => s.toLowerCase() === \"maximized\", \"Expected a case insensitive variation of 'maximized'\") as Decoder<\"maximized\">),\n (string().where((s) => s.toLowerCase() === \"normal\", \"Expected a case insensitive variation of 'normal'\") as Decoder<\"normal\">)\n);\n\nexport const newFrameConfigDecoder: Decoder<IOConnectWorkspaces.NewFrameConfig> = object({\n bounds: optional(object({\n left: optional(number()),\n top: optional(number()),\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n })),\n frameId: optional(nonEmptyStringDecoder)\n});\n\nexport const loadingStrategyDecoder: Decoder<IOConnectWorkspaces.LoadingStrategy> = oneOf<\"direct\" | \"delayed\" | \"lazy\">(\n constant(\"direct\"),\n constant(\"delayed\"),\n constant(\"lazy\")\n);\n\nexport const restoreWorkspaceConfigDecoder: Decoder<IOConnectWorkspaces.RestoreWorkspaceConfig> = optional(object({\n app: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n loadingStrategy: optional(loadingStrategyDecoder),\n title: optional(nonEmptyStringDecoder),\n reuseWorkspaceId: optional(nonEmptyStringDecoder),\n frameId: optional(nonEmptyStringDecoder),\n applicationName: optional(nonEmptyStringDecoder),\n lockdown: optional(boolean()),\n activateFrame: optional(boolean()),\n newFrame: optional(oneOf<IOConnectWorkspaces.NewFrameConfig | boolean>(\n newFrameConfigDecoder,\n boolean()\n )),\n noTabHeader: optional(boolean()),\n inMemoryLayout: optional(boolean()),\n icon: optional(nonEmptyStringDecoder),\n isPinned: optional(boolean()),\n isSelected: optional(boolean()),\n positionIndex: optional(nonNegativeNumberDecoder),\n allowSystemHibernation: optional(boolean())\n}));\n\nexport const openWorkspaceConfigDecoder: Decoder<OpenWorkspaceConfig> = object({\n name: nonEmptyStringDecoder,\n restoreOptions: optional(restoreWorkspaceConfigDecoder)\n});\n\nexport const workspaceDefinitionDecoder: Decoder<IOConnectWorkspaces.WorkspaceDefinition> = object({\n children: optional(array(oneOf<IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition>(\n swimlaneWindowDefinitionDecoder,\n strictParentDefinitionDecoder\n ))),\n context: optional(anyJson()),\n config: optional(object({\n title: optional(nonEmptyStringDecoder),\n position: optional(nonNegativeNumberDecoder),\n isFocused: optional(boolean()),\n noTabHeader: optional(boolean()),\n reuseWorkspaceId: optional(nonEmptyStringDecoder),\n loadingStrategy: optional(loadingStrategyDecoder),\n allowDrop: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropBottom: optional(boolean()),\n allowSystemHibernation: optional(boolean()),\n allowExtract: optional(boolean()),\n allowWindowReorder: optional(boolean()),\n showSaveButton: optional(boolean()),\n allowWorkspaceTabReorder: optional(boolean()),\n allowWorkspaceTabExtract: optional(boolean()),\n showCloseButton: optional(boolean()),\n allowSplitters: optional(boolean()),\n showWindowCloseButtons: optional(boolean()),\n showEjectButtons: optional(boolean()),\n showAddWindowButtons: optional(boolean()),\n icon: optional(nonEmptyStringDecoder),\n isPinned: optional(boolean()),\n isSelected: optional(boolean()),\n positionIndex: optional(nonNegativeNumberDecoder)\n })),\n frame: optional(object({\n reuseFrameId: optional(nonEmptyStringDecoder),\n applicationName: optional(nonEmptyStringDecoder),\n newFrame: optional(oneOf<boolean | IOConnectWorkspaces.NewFrameConfig>(\n boolean(),\n newFrameConfigDecoder\n ))\n }))\n});\n\nexport const workspaceSelectorDecoder: Decoder<WorkspaceSelector> = object({\n workspaceId: nonEmptyStringDecoder\n});\n\nexport const restoreWorkspaceDefinitionDecoder: Decoder<IOConnectWorkspaces.RestoreWorkspaceDefinition> = object({\n name: nonEmptyStringDecoder,\n restoreOptions: optional(restoreWorkspaceConfigDecoder)\n});\n\nexport const emptyFrameDefinitionDecoder: Decoder<IOConnectWorkspaces.EmptyFrameDefinition> = optional(object({\n applicationName: optional(string()),\n frameConfig: optional(newFrameConfigDecoder),\n context: optional(object()),\n layoutComponentId: optional(nonEmptyStringDecoder)\n}));\n\nexport const frameInitConfigDecoder: Decoder<IOConnectWorkspaces.FrameInitializationConfig> = object({\n workspaces: array(oneOf<IOConnectWorkspaces.WorkspaceDefinition | IOConnectWorkspaces.RestoreWorkspaceDefinition>(\n optional(workspaceDefinitionDecoder),\n optional(restoreWorkspaceDefinitionDecoder)\n ))\n});\n\nexport const frameInitProtocolConfigDecoder: Decoder<FrameInitializationConfigProtocol> = object({\n frameId: nonEmptyStringDecoder,\n workspaces: array(oneOf<IOConnectWorkspaces.WorkspaceDefinition | IOConnectWorkspaces.RestoreWorkspaceDefinition>(\n workspaceDefinitionDecoder,\n restoreWorkspaceDefinitionDecoder\n ))\n});\n\nexport const builderConfigDecoder: Decoder<IOConnectWorkspaces.BuilderConfig> = object({\n type: allParentDecoder,\n definition: optional(oneOf<IOConnectWorkspaces.WorkspaceDefinition | IOConnectWorkspaces.BoxDefinition>(\n workspaceDefinitionDecoder,\n parentDefinitionDecoder\n ))\n});\n\nexport const workspaceCreateConfigDecoder: Decoder<WorkspaceCreateConfigProtocol> = intersection(\n workspaceDefinitionDecoder,\n object({\n saveConfig: optional(object({\n saveLayout: optional(boolean())\n }))\n })\n);\n\nexport const getFrameSummaryConfigDecoder: Decoder<GetFrameSummaryConfig> = object({\n itemId: nonEmptyStringDecoder\n});\n\nexport const frameInitializationContextDecoder: Decoder<IOConnectWorkspaces.FrameInitializationContext> = object({\n context: optional(object())\n});\n\nexport const frameSummaryDecoder: Decoder<FrameSummaryResult> = object({\n id: nonEmptyStringDecoder,\n isFocused: optional(boolean()),\n isInitialized: optional(boolean()),\n initializationContext: optional(frameInitializationContextDecoder)\n});\n\nexport const containerSummaryDecoder: Decoder<IOConnectWorkspaces.BoxSummary> = object({\n type: subParentDecoder,\n id: nonEmptyStringDecoder,\n frameId: nonEmptyStringDecoder,\n workspaceId: nonEmptyStringDecoder,\n positionIndex: number()\n});\n\nexport const eventTypeDecoder: Decoder<WorkspaceEventType> = oneOf<\"frame\" | \"workspace\" | \"container\" | \"window\">(\n constant(\"frame\"),\n constant(\"workspace\"),\n constant(\"container\"),\n constant(\"window\")\n);\n\nexport const streamRequestArgumentsDecoder: Decoder<{ type: WorkspaceEventType; branch: string }> = object({\n type: eventTypeDecoder,\n branch: nonEmptyStringDecoder\n});\n\nexport const workspaceEventActionDecoder: Decoder<WorkspaceEventAction> = oneOf<\"opened\" | \"closing\" | \"closed\" | \"focus\" | \"added\" | \"loaded\" | \"removed\" | \"childrenUpdate\" | \"containerChange\" | \"maximized\" | \"restored\" | \"minimized\" | \"normal\" | \"selected\" | \"lock-configuration-changed\" | \"hibernated\" | \"resumed\">(\n constant(\"opened\"),\n constant(\"closing\"),\n constant(\"closed\"),\n constant(\"focus\"),\n constant(\"added\"),\n constant(\"loaded\"),\n constant(\"removed\"),\n constant(\"childrenUpdate\"),\n constant(\"containerChange\"),\n constant(\"maximized\"),\n constant(\"restored\"),\n constant(\"minimized\"),\n constant(\"normal\"),\n constant(\"selected\"),\n constant(\"lock-configuration-changed\"),\n constant(\"hibernated\"),\n constant(\"resumed\")\n);\n\nexport const workspaceConfigResultDecoder: Decoder<WorkspaceConfigResult> = object({\n frameId: nonEmptyStringDecoder,\n title: nonEmptyStringDecoder,\n positionIndex: nonNegativeNumberDecoder,\n name: nonEmptyStringDecoder,\n layoutName: optional(nonEmptyStringDecoder),\n isHibernated: optional(boolean()),\n isSelected: optional(boolean()),\n allowDrop: optional(boolean()),\n allowSystemHibernation: optional(boolean()),\n allowExtract: optional(boolean()),\n allowWindowReorder: optional(boolean()),\n allowSplitters: optional(boolean()),\n showCloseButton: optional(boolean()),\n showSaveButton: optional(boolean()),\n allowWorkspaceTabReorder: optional(boolean()),\n allowWorkspaceTabExtract: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropBottom: optional(boolean()),\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number()),\n showAddWindowButtons: optional(boolean()),\n showEjectButtons: optional(boolean()),\n showWindowCloseButtons: optional(boolean()),\n widthInPx: optional(number()),\n heightInPx: optional(number()),\n isPinned: optional(boolean()),\n});\n\n// todo: remove number positionIndex when fixed\nexport const baseChildSnapshotConfigDecoder: Decoder<BaseChildSnapshotConfig> = object({\n frameId: nonEmptyStringDecoder,\n workspaceId: nonEmptyStringDecoder,\n positionIndex: number(),\n minWidth: optional(number()),\n maxWidth: optional(number()),\n minHeight: optional(number()),\n maxHeight: optional(number())\n});\n\nexport const parentSnapshotConfigDecoder: Decoder<ParentSnapshotConfig> = anyJson();\n\nexport const swimlaneWindowSnapshotConfigDecoder: Decoder<SwimlaneWindowSnapshotConfig> = intersection(\n baseChildSnapshotConfigDecoder,\n object({\n windowId: optional(nonEmptyStringDecoder),\n isMaximized: optional(boolean()),\n isFocused: boolean(),\n isSelected: optional(boolean()),\n title: optional(string()),\n appName: optional(nonEmptyStringDecoder),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean()),\n minWidth: optional(number()),\n minHeight: optional(number()),\n maxWidth: optional(number()),\n maxHeight: optional(number()),\n widthInPx: optional(number()),\n heightInPx: optional(number()),\n context: optional(anyJson())\n })\n) as any;\n\nexport const customWorkspaceSubParentSnapshotDecoder: Decoder<SubParentSnapshotResult> = object({\n id: optional(nonEmptyStringDecoder),\n config: parentSnapshotConfigDecoder,\n children: optional(lazy(() => array(customWorkspaceChildSnapshotDecoder))),\n type: oneOf<\"row\" | \"column\" | \"group\">(\n constant(\"row\"),\n constant(\"column\"),\n constant(\"group\")\n )\n});\n\nexport const customWorkspaceWindowSnapshotDecoder: Decoder<WindowSnapshotResult> = object({\n id: optional(nonEmptyStringDecoder),\n config: swimlaneWindowSnapshotConfigDecoder,\n type: constant(\"window\")\n});\n\nexport const customWorkspaceChildSnapshotDecoder: Decoder<ChildSnapshotResult> = oneOf<WindowSnapshotResult | SubParentSnapshotResult>(\n customWorkspaceWindowSnapshotDecoder,\n customWorkspaceSubParentSnapshotDecoder);\n\nexport const childSnapshotResultDecoder: Decoder<ChildSnapshotResult> = customWorkspaceChildSnapshotDecoder;\n\nexport const workspaceSnapshotResultDecoder: Decoder<WorkspaceSnapshotResult> = object({\n id: nonEmptyStringDecoder,\n config: workspaceConfigResultDecoder,\n children: array(childSnapshotResultDecoder),\n frameSummary: frameSummaryDecoder,\n context: optional(anyJson())\n});\n\nexport const windowLayoutItemDecoder: Decoder<IOConnectWorkspaces.WindowLayoutItem> = object({\n type: constant(\"window\"),\n config: object({\n appName: nonEmptyStringDecoder,\n windowId: optional(nonEmptyStringDecoder),\n context: optional(anyJson()),\n url: optional(nonEmptyStringDecoder),\n title: optional(string()),\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean()),\n minWidth: optional(number()),\n minHeight: optional(number()),\n maxWidth: optional(number()),\n maxHeight: optional(number()),\n isMaximized: optional(boolean())\n })\n});\n\nexport const groupLayoutItemDecoder: Decoder<IOConnectWorkspaces.GroupLayoutItem> = object({\n type: constant(\"group\"),\n config: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.WindowLayoutItem>(\n windowLayoutItemDecoder\n ))\n});\n\nexport const columnLayoutItemDecoder: Decoder<IOConnectWorkspaces.ColumnLayoutItem> = object({\n type: constant(\"column\"),\n config: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.RowLayoutItem | IOConnectWorkspaces.ColumnLayoutItem | IOConnectWorkspaces.GroupLayoutItem | IOConnectWorkspaces.WindowLayoutItem>(\n groupLayoutItemDecoder,\n windowLayoutItemDecoder,\n lazy(() => columnLayoutItemDecoder),\n lazy(() => rowLayoutItemDecoder)\n ))\n});\n\nexport const rowLayoutItemDecoder: Decoder<IOConnectWorkspaces.RowLayoutItem> = object({\n type: constant(\"row\"),\n config: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.RowLayoutItem | IOConnectWorkspaces.ColumnLayoutItem | IOConnectWorkspaces.GroupLayoutItem | IOConnectWorkspaces.WindowLayoutItem>(\n columnLayoutItemDecoder,\n groupLayoutItemDecoder,\n windowLayoutItemDecoder,\n lazy(() => rowLayoutItemDecoder)\n ))\n});\n\nexport const workspaceLayoutDecoder: Decoder<IOConnectWorkspaces.WorkspaceLayout> = object({\n name: nonEmptyStringDecoder,\n type: constant(\"Workspace\"),\n metadata: optional(anyJson()),\n components: array(object({\n type: constant(\"Workspace\"),\n application: optional(string()),\n state: object({\n config: anyJson(),\n context: anyJson(),\n children: array(oneOf<IOConnectWorkspaces.RowLayoutItem | IOConnectWorkspaces.ColumnLayoutItem | IOConnectWorkspaces.GroupLayoutItem | IOConnectWorkspaces.WindowLayoutItem>(\n rowLayoutItemDecoder,\n columnLayoutItemDecoder,\n groupLayoutItemDecoder,\n windowLayoutItemDecoder\n ))\n })\n }))\n});\n\nexport const workspacesImportLayoutDecoder: Decoder<{ layout: IOConnectWorkspaces.WorkspaceLayout; mode: \"replace\" | \"merge\" }> = object({\n layout: workspaceLayoutDecoder,\n mode: oneOf<\"replace\" | \"merge\">(\n constant(\"replace\"),\n constant(\"merge\")\n )\n});\n\nexport const workspacesImportLayoutsDecoder: Decoder<{ layouts: IOConnectWorkspaces.WorkspaceLayout[]; mode: \"replace\" | \"merge\" }> = object({\n layouts: array(workspaceLayoutDecoder),\n mode: oneOf<\"replace\" | \"merge\">(\n constant(\"replace\"),\n constant(\"merge\")\n )\n});\n\nexport const exportedLayoutsResultDecoder: Decoder<ExportedLayoutsResult> = object({\n layouts: array(workspaceLayoutDecoder)\n});\n\nexport const frameSummaryResultDecoder: Decoder<FrameSummaryResult> = object({\n id: nonEmptyStringDecoder,\n isFocused: optional(boolean()),\n isInitialized: optional(boolean()),\n initializationContext: optional(frameInitializationContextDecoder)\n});\n\nexport const frameSummariesResultDecoder: Decoder<FrameSummariesResult> = object({\n summaries: array(frameSummaryResultDecoder)\n});\n\nexport const workspaceSummaryResultDecoder: Decoder<WorkspaceSummaryResult> = object({\n id: nonEmptyStringDecoder,\n config: workspaceConfigResultDecoder\n});\n\nexport const workspaceSummariesResultDecoder: Decoder<WorkspaceSummariesResult> = object({\n summaries: array(workspaceSummaryResultDecoder)\n});\n\nexport const frameSnapshotResultDecoder: Decoder<FrameSnapshotResult> = object({\n id: nonEmptyStringDecoder,\n config: anyJson(),\n workspaces: array(workspaceSnapshotResultDecoder)\n});\n\nexport const layoutSummaryDecoder: Decoder<LayoutSummary> = object({\n name: nonEmptyStringDecoder,\n applicationName: optional(string())\n});\n\nexport const layoutSummariesDecoder: Decoder<LayoutSummariesResult> = object({\n summaries: array(layoutSummaryDecoder)\n});\n\nexport const simpleWindowOperationSuccessResultDecoder: Decoder<SimpleWindowOperationSuccessResult> = object({\n windowId: nonEmptyStringDecoder\n});\n\nexport const voidResultDecoder: Decoder<{}> = anyJson();\n\nexport const frameStateResultDecoder: Decoder<FrameStateResult> = object({\n state: frameStateDecoder\n});\n\nexport const frameBoundsDecoder: Decoder<FrameBounds> = object({\n top: number(),\n left: number(),\n width: nonNegativeNumberDecoder,\n height: nonNegativeNumberDecoder\n});\n\nexport const frameBoundsResultDecoder: Decoder<FrameBoundsResult> = object({\n bounds: frameBoundsDecoder\n});\n\nexport const getWorkspaceIconResultDecoder: Decoder<GetWorkspaceIconResult> = object({\n icon: optional(nonEmptyStringDecoder)\n});\n\nexport const getPlatformFrameIdResultDecoder: Decoder<GetPlatformFrameIdResult> = object({\n id: optional(nonEmptyStringDecoder)\n});\n\nexport const operationCheckResultDecoder: Decoder<OperationCheckResult> = object({\n isSupported: boolean()\n});\n\nexport const resizeConfigDecoder: Decoder<IOConnectWorkspaces.ResizeConfig> = object({\n width: optional(positiveNumberDecoder),\n height: optional(positiveNumberDecoder),\n relative: optional(boolean())\n});\n\nexport const moveConfigDecoder: Decoder<IOConnectWorkspaces.MoveConfig> = object({\n top: optional(number()),\n left: optional(number()),\n relative: optional(boolean())\n});\n\nexport const simpleItemConfigDecoder: Decoder<SimpleItemConfig> = object({\n itemId: nonEmptyStringDecoder\n});\n\nexport const frameSnapshotConfigDecoder: Decoder<FrameSnapshotConfig> = object({\n itemId: nonEmptyStringDecoder,\n excludeIds: optional(boolean())\n});\n\nexport const frameStateConfigDecoder: Decoder<FrameStateConfig> = object({\n frameId: nonEmptyStringDecoder,\n requestedState: frameStateDecoder\n});\n\nexport const setItemTitleConfigDecoder: Decoder<SetItemTitleConfig> = object({\n itemId: nonEmptyStringDecoder,\n title: nonEmptyStringDecoder\n});\n\nexport const moveWindowConfigDecoder: Decoder<MoveWindowConfig> = object({\n itemId: nonEmptyStringDecoder,\n containerId: nonEmptyStringDecoder\n});\n\nexport const resizeItemConfigDecoder: Decoder<ResizeItemConfig> = intersection(\n simpleItemConfigDecoder,\n resizeConfigDecoder\n);\n\nexport const setMaximizationBoundaryConfigDecoder: Decoder<SetMaximizationBoundaryConfig> = object({\n itemId: nonEmptyStringDecoder,\n enabled: boolean()\n});\n\nexport const moveFrameConfigDecoder: Decoder<MoveFrameConfig> = intersection(\n simpleItemConfigDecoder,\n moveConfigDecoder\n);\n\nexport const simpleParentDecoder: Decoder<{ id: string; type: \"row\" | \"column\" | \"group\" }> = object({\n id: nonEmptyStringDecoder,\n type: subParentDecoder\n});\n\nexport const addWindowConfigDecoder: Decoder<AddWindowConfig> = object({\n definition: swimlaneWindowDefinitionDecoder,\n parentId: nonEmptyStringDecoder,\n parentType: allParentDecoder\n});\n\nexport const addContainerConfigDecoder: Decoder<AddContainerConfig> = object({\n definition: strictParentDefinitionDecoder,\n parentId: nonEmptyStringDecoder,\n parentType: allParentDecoder\n});\n\nexport const addItemResultDecoder: Decoder<AddItemResult> = object({\n itemId: nonEmptyStringDecoder,\n windowId: optional(nonEmptyStringDecoder)\n});\n\nexport const pingResultDecoder: Decoder<PingResult> = object({\n live: boolean()\n});\n\nexport const bundleWorkspaceConfigDecoder: Decoder<BundleWorkspaceConfig> = object({\n type: oneOf<\"row\" | \"column\">(\n constant(\"row\"),\n constant(\"column\")\n ),\n workspaceId: nonEmptyStringDecoder\n});\n\nexport const bundleItemConfigDecoder: Decoder<ItemBundleConfig> = object({\n type: oneOf<\"row\" | \"column\">(\n constant(\"row\"),\n constant(\"column\")\n ),\n itemId: nonEmptyStringDecoder\n});\n\nexport const containerSummaryResultDecoder: Decoder<ContainerSummaryResult> = object({\n itemId: nonEmptyStringDecoder,\n config: parentSnapshotConfigDecoder\n});\n\nexport const frameStreamDataDecoder: Decoder<FrameStreamData> = object({\n frameSummary: frameSummaryDecoder,\n frameBounds: optional(frameBoundsDecoder)\n});\n\nexport const workspaceStreamDataDecoder: Decoder<WorkspaceStreamData> = object({\n workspaceSummary: workspaceSummaryResultDecoder,\n frameSummary: frameSummaryDecoder,\n workspaceSnapshot: optional(workspaceSnapshotResultDecoder),\n frameBounds: optional(frameBoundsDecoder)\n});\n\nexport const containerStreamDataDecoder: Decoder<ContainerStreamData> = object({\n containerSummary: containerSummaryResultDecoder\n});\n\nexport const windowStreamDataDecoder: Decoder<WindowStreamData> = object({\n windowSummary: object({\n itemId: nonEmptyStringDecoder,\n parentId: nonEmptyStringDecoder,\n config: swimlaneWindowSnapshotConfigDecoder\n })\n});\n\nexport const workspaceLayoutSaveConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceLayoutSaveConfig> = object({\n name: nonEmptyStringDecoder,\n workspaceId: nonEmptyStringDecoder,\n saveContext: optional(boolean()),\n metadata: optional(object())\n});\n\nexport const workspaceLockConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceLockConfig> = object({\n allowDrop: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropBottom: optional(boolean()),\n allowSystemHibernation: optional(boolean()),\n allowExtract: optional(boolean()),\n allowWindowReorder: optional(boolean()),\n allowSplitters: optional(boolean()),\n showCloseButton: optional(boolean()),\n showSaveButton: optional(boolean()),\n allowWorkspaceTabReorder: optional(boolean()),\n allowWorkspaceTabExtract: optional(boolean()),\n showWindowCloseButtons: optional(boolean()),\n showAddWindowButtons: optional(boolean()),\n showEjectButtons: optional(boolean()),\n});\n\nexport const lockWorkspaceDecoder: Decoder<LockWorkspaceConfig> = object({\n workspaceId: nonEmptyStringDecoder,\n config: optional(workspaceLockConfigDecoder)\n});\n\nexport const windowLockConfigDecoder: Decoder<IOConnectWorkspaces.WorkspaceWindowLockConfig> = object({\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n showCloseButton: optional(boolean())\n});\n\nexport const elementResizeConfigDecoder: Decoder<IOConnectWorkspaces.ElementResizeConfig> = object({\n width: optional(nonNegativeNumberDecoder),\n height: optional(nonNegativeNumberDecoder)\n});\n\nexport const lockWindowDecoder: Decoder<LockWindowConfig> = object({\n windowPlacementId: nonEmptyStringDecoder,\n config: optional(windowLockConfigDecoder)\n});\n\nexport const rowLockConfigDecoder: Decoder<IOConnectWorkspaces.RowLockConfig> = object({\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n});\n\nexport const columnLockConfigDecoder: Decoder<IOConnectWorkspaces.ColumnLockConfig> = object({\n allowDrop: optional(boolean()),\n allowSplitters: optional(boolean()),\n});\n\nexport const groupLockConfigDecoder: Decoder<IOConnectWorkspaces.GroupLockConfig> = object({\n allowExtract: optional(boolean()),\n allowReorder: optional(boolean()),\n allowDrop: optional(boolean()),\n allowDropLeft: optional(boolean()),\n allowDropRight: optional(boolean()),\n allowDropTop: optional(boolean()),\n allowDropBottom: optional(boolean()),\n allowDropHeader: optional(boolean()),\n showMaximizeButton: optional(boolean()),\n showEjectButton: optional(boolean()),\n showAddWindowButton: optional(boolean()),\n});\n\nexport const lockRowDecoder: Decoder<LockRowConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: constant(\"row\"),\n config: optional(rowLockConfigDecoder)\n});\n\nexport const lockColumnDecoder: Decoder<LockColumnConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: constant(\"column\"),\n config: optional(columnLockConfigDecoder)\n});\n\nexport const lockGroupDecoder: Decoder<LockGroupConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: constant(\"group\"),\n config: optional(groupLockConfigDecoder)\n});\n\nexport const lockContainerDecoder: Decoder<LockContainerConfig> = oneOf<LockGroupConfig | LockColumnConfig | LockRowConfig>(lockRowDecoder, lockColumnDecoder, lockGroupDecoder);\n\nexport const pinWorkspaceDecoder: Decoder<PinWorkspaceConfig> = object({\n workspaceId: nonEmptyStringDecoder,\n icon: optional(nonEmptyStringDecoder)\n});\n\nexport const setWorkspaceIconDecoder: Decoder<SetWorkspaceIconConfig> = object({\n workspaceId: nonEmptyStringDecoder,\n icon: optional(nonEmptyStringDecoder) // to enable the user to remove the icon from the workspace altogether\n});\n\nexport const workspacePinOptionsDecoder: Decoder<IOConnectWorkspaces.WorkspacePinOptions> = optional(object({\n icon: optional(nonEmptyStringDecoder)\n}));\n\nexport const shortcutConfigDecoder: Decoder<ShortcutConfig> = object({\n shortcut: nonEmptyStringDecoder,\n frameId: nonEmptyStringDecoder\n});\n\nexport const shortcutClickedDataDecoder: Decoder<ShortcutClickedData> = object({\n shortcut: nonEmptyStringDecoder,\n frameId: nonEmptyStringDecoder\n});\n\nexport const setMaximizationBoundaryAPIConfigDecoder: Decoder<IOConnectWorkspaces.SetMaximizationBoundaryConfig> = object({\n enabled: boolean()\n});\n\nexport const loadingAnimationConfigDecoder: Decoder<LoadingAnimationConfig> = object({\n itemId: nonEmptyStringDecoder,\n type: loadingAnimationTypeDecoder\n});\n\nexport const operationCheckConfigDecoder: Decoder<OperationCheckConfig> = object({\n operation: nonEmptyStringDecoder\n});\n","import {\n isWindowInSwimlaneResultDecoder,\n frameSummaryDecoder,\n workspaceSnapshotResultDecoder,\n frameSummariesResultDecoder,\n workspaceCreateConfigDecoder,\n getFrameSummaryConfigDecoder,\n layoutSummariesDecoder,\n openWorkspaceConfigDecoder,\n workspaceSummariesResultDecoder,\n voidResultDecoder,\n exportedLayoutsResultDecoder,\n workspaceLayoutDecoder,\n deleteLayoutConfigDecoder,\n simpleItemConfigDecoder,\n resizeItemConfigDecoder,\n moveFrameConfigDecoder,\n frameSnapshotResultDecoder,\n simpleWindowOperationSuccessResultDecoder,\n setItemTitleConfigDecoder,\n moveWindowConfigDecoder,\n addWindowConfigDecoder,\n addContainerConfigDecoder,\n addItemResultDecoder,\n bundleWorkspaceConfigDecoder,\n workspaceStreamDataDecoder,\n frameStreamDataDecoder,\n containerStreamDataDecoder,\n windowStreamDataDecoder,\n workspaceLayoutSaveConfigDecoder,\n pingResultDecoder,\n frameStateConfigDecoder,\n frameStateResultDecoder,\n workspacesImportLayoutDecoder,\n workspaceSelectorDecoder,\n lockWorkspaceDecoder,\n lockWindowDecoder,\n lockContainerDecoder,\n frameBoundsResultDecoder,\n getWorkspaceIconResultDecoder,\n pinWorkspaceDecoder,\n setWorkspaceIconDecoder,\n frameSummaryResultDecoder,\n emptyFrameDefinitionDecoder,\n frameInitProtocolConfigDecoder,\n shortcutClickedDataDecoder,\n shortcutConfigDecoder,\n frameSnapshotConfigDecoder,\n setMaximizationBoundaryConfigDecoder,\n loadingAnimationConfigDecoder,\n getPlatformFrameIdResultDecoder,\n workspacesImportLayoutsDecoder,\n bundleItemConfigDecoder,\n operationCheckConfigDecoder,\n operationCheckResultDecoder\n} from \"../shared/decoders\";\nimport { ControlOperation, StreamOperation } from \"../types/protocol\";\nimport { WorkspaceEventType } from \"../types/subscription\";\n\ntype OperationsTypes = \"isWindowInWorkspace\" |\n \"createWorkspace\" |\n \"getAllFramesSummaries\" |\n \"getFrameSummary\" |\n \"getAllWorkspacesSummaries\" |\n \"getWorkspaceSnapshot\" |\n \"getAllLayoutsSummaries\" |\n \"openWorkspace\" |\n \"deleteLayout\" |\n \"saveLayout\" |\n \"importLayout\" |\n \"importLayouts\" |\n \"exportAllLayouts\" |\n \"restoreItem\" |\n \"maximizeItem\" |\n \"focusItem\" |\n \"closeItem\" |\n \"resizeItem\" |\n \"setMaximizationBoundary\" |\n \"moveFrame\" |\n \"getFrameSnapshot\" |\n \"forceLoadWindow\" |\n \"ejectWindow\" |\n \"setItemTitle\" |\n \"moveWindowTo\" |\n \"addWindow\" |\n \"addContainer\" |\n \"bundleWorkspace\" |\n \"bundleItem\" |\n \"ping\" |\n \"changeFrameState\" |\n \"getFrameState\" |\n \"getFrameBounds\" |\n \"hibernateWorkspace\" |\n \"resumeWorkspace\" |\n \"lockWorkspace\" |\n \"lockWindow\" |\n \"lockContainer\" |\n \"pinWorkspace\" |\n \"unpinWorkspace\" |\n \"getWorkspaceIcon\" |\n \"setWorkspaceIcon\" |\n \"createFrame\" |\n \"registerShortcut\" |\n \"unregisterShortcut\" |\n \"initFrame\" |\n \"showLoadingAnimation\" |\n \"hideLoadingAnimation\" |\n \"getPlatformFrameId\" |\n \"operationCheck\";\ntype OutgoingMethodTypes = \"control\" | \"frameStream\" | \"workspaceStream\" | \"containerStream\" | \"windowStream\";\nexport type IncomingMethodTypes = \"control\";\n\nexport const webPlatformMethodName = \"T42.Web.Platform.Control\";\nexport const webPlatformWspStreamName = \"T42.Web.Platform.WSP.Stream\";\n\nexport const OUTGOING_METHODS: { [key in OutgoingMethodTypes]: { name: string; isStream: boolean } } = {\n control: { name: \"T42.Workspaces.Control\", isStream: false },\n frameStream: { name: \"T42.Workspaces.Stream.Frame\", isStream: true },\n workspaceStream: { name: \"T42.Workspaces.Stream.Workspace\", isStream: true },\n containerStream: { name: \"T42.Workspaces.Stream.Container\", isStream: true },\n windowStream: { name: \"T42.Workspaces.Stream.Window\", isStream: true }\n};\n\nexport const INCOMING_METHODS: { [key in IncomingMethodTypes]: { name: string; isStream: boolean } } = {\n control: { name: \"T42.Workspaces.Client.Control\", isStream: false },\n};\n\nexport const STREAMS: { [key in WorkspaceEventType]: StreamOperation } = {\n frame: { name: \"T42.Workspaces.Stream.Frame\", payloadDecoder: frameStreamDataDecoder },\n workspace: { name: \"T42.Workspaces.Stream.Workspace\", payloadDecoder: workspaceStreamDataDecoder },\n container: { name: \"T42.Workspaces.Stream.Container\", payloadDecoder: containerStreamDataDecoder },\n window: { name: \"T42.Workspaces.Stream.Window\", payloadDecoder: windowStreamDataDecoder }\n};\n\ninterface ShortcutClicked {\n operation: \"shortcutClicked\",\n data: {\n shortcut: string;\n frameId: string;\n }\n}\n\nexport type ClientOperations = ShortcutClicked;\n\nexport type OnOperationsTypes = \"shortcutClicked\";\n\nexport const CLIENT_OPERATIONS: { [key in OnOperationsTypes]: ControlOperation } = {\n shortcutClicked: { name: \"shortcutClicked\", argsDecoder: shortcutClickedDataDecoder, resultDecoder: voidResultDecoder },\n};\n\nexport const OPERATIONS: { [key in OperationsTypes]: ControlOperation } = {\n ping: { name: \"ping\", resultDecoder: pingResultDecoder },\n isWindowInWorkspace: { name: \"isWindowInWorkspace\", argsDecoder: simpleItemConfigDecoder, resultDecoder: isWindowInSwimlaneResultDecoder },\n createWorkspace: { name: \"createWorkspace\", resultDecoder: workspaceSnapshotResultDecoder, argsDecoder: workspaceCreateConfigDecoder },\n createFrame: { name: \"createFrame\", resultDecoder: frameSummaryResultDecoder, argsDecoder: emptyFrameDefinitionDecoder },\n initFrame: { name: \"initFrame\", resultDecoder: voidResultDecoder, argsDecoder: frameInitProtocolConfigDecoder },\n getAllFramesSummaries: { name: \"getAllFramesSummaries\", resultDecoder: frameSummariesResultDecoder },\n getFrameSummary: { name: \"getFrameSummary\", resultDecoder: frameSummaryDecoder, argsDecoder: getFrameSummaryConfigDecoder },\n getAllWorkspacesSummaries: { name: \"getAllWorkspacesSummaries\", resultDecoder: workspaceSummariesResultDecoder },\n getWorkspaceSnapshot: { name: \"getWorkspaceSnapshot\", resultDecoder: workspaceSnapshotResultDecoder, argsDecoder: simpleItemConfigDecoder },\n getAllLayoutsSummaries: { name: \"getAllLayoutsSummaries\", resultDecoder: layoutSummariesDecoder },\n openWorkspace: { name: \"openWorkspace\", argsDecoder: openWorkspaceConfigDecoder, resultDecoder: workspaceSnapshotResultDecoder },\n deleteLayout: { name: \"deleteLayout\", resultDecoder: voidResultDecoder, argsDecoder: deleteLayoutConfigDecoder },\n saveLayout: { name: \"saveLayout\", resultDecoder: workspaceLayoutDecoder, argsDecoder: workspaceLayoutSaveConfigDecoder },\n importLayout: { name: \"importLayout\", resultDecoder: voidResultDecoder, argsDecoder: workspacesImportLayoutDecoder },\n importLayouts: { name: \"importLayouts\", resultDecoder: voidResultDecoder, argsDecoder: workspacesImportLayoutsDecoder },\n exportAllLayouts: { name: \"exportAllLayouts\", resultDecoder: exportedLayoutsResultDecoder },\n restoreItem: { name: \"restoreItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n maximizeItem: { name: \"maximizeItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n focusItem: { name: \"focusItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n closeItem: { name: \"closeItem\", argsDecoder: simpleItemConfigDecoder, resultDecoder: voidResultDecoder },\n resizeItem: { name: \"resizeItem\", argsDecoder: resizeItemConfigDecoder, resultDecoder: voidResultDecoder },\n setMaximizationBoundary: { name: \"setMaximizationBoundary\", argsDecoder: setMaximizationBoundaryConfigDecoder, resultDecoder: voidResultDecoder },\n changeFrameState: { name: \"changeFrameState\", argsDecoder: frameStateConfigDecoder, resultDecoder: voidResultDecoder },\n getFrameState: { name: \"getFrameState\", argsDecoder: simpleItemConfigDecoder, resultDecoder: frameStateResultDecoder },\n getFrameBounds: { name: \"getFrameBounds\", argsDecoder: simpleItemConfigDecoder, resultDecoder: frameBoundsResultDecoder },\n moveFrame: { name: \"moveFrame\", argsDecoder: moveFrameConfigDecoder, resultDecoder: voidResultDecoder },\n getFrameSnapshot: { name: \"getFrameSnapshot\", argsDecoder: frameSnapshotConfigDecoder, resultDecoder: frameSnapshotResultDecoder },\n forceLoadWindow: { name: \"forceLoadWindow\", argsDecoder: simpleItemConfigDecoder, resultDecoder: simpleWindowOperationSuccessResultDecoder },\n ejectWindow: { name: \"ejectWindow\", argsDecoder: simpleItemConfigDecoder, resultDecoder: simpleWindowOperationSuccessResultDecoder },\n setItemTitle: { name: \"setItemTitle\", argsDecoder: setItemTitleConfigDecoder, resultDecoder: voidResultDecoder },\n moveWindowTo: { name: \"moveWindowTo\", argsDecoder: moveWindowConfigDecoder, resultDecoder: voidResultDecoder },\n addWindow: { name: \"addWindow\", argsDecoder: addWindowConfigDecoder, resultDecoder: addItemResultDecoder },\n addContainer: { name: \"addContainer\", argsDecoder: addContainerConfigDecoder, resultDecoder: addItemResultDecoder },\n bundleWorkspace: { name: \"bundleWorkspace\", argsDecoder: bundleWorkspaceConfigDecoder, resultDecoder: voidResultDecoder },\n bundleItem: { name: \"bundleItem\", argsDecoder: bundleItemConfigDecoder, resultDecoder: voidResultDecoder },\n hibernateWorkspace: { name: \"hibernateWorkspace\", argsDecoder: workspaceSelectorDecoder, resultDecoder: voidResultDecoder },\n resumeWorkspace: { name: \"resumeWorkspace\", argsDecoder: workspaceSelectorDecoder, resultDecoder: voidResultDecoder },\n lockWorkspace: { name: \"lockWorkspace\", argsDecoder: lockWorkspaceDecoder, resultDecoder: voidResultDecoder },\n lockWindow: { name: \"lockWindow\", argsDecoder: lockWindowDecoder, resultDecoder: voidResultDecoder },\n lockContainer: { name: \"lockContainer\", argsDecoder: lockContainerDecoder, resultDecoder: voidResultDecoder },\n pinWorkspace: { name: \"pinWorkspace\", argsDecoder: pinWorkspaceDecoder, resultDecoder: voidResultDecoder },\n unpinWorkspace: { name: \"unpinWorkspace\", argsDecoder: workspaceSelectorDecoder, resultDecoder: voidResultDecoder },\n getWorkspaceIcon: { name: \"getWorkspaceIcon\", argsDecoder: workspaceSelectorDecoder, resultDecoder: getWorkspaceIconResultDecoder },\n setWorkspaceIcon: { name: \"setWorkspaceIcon\", argsDecoder: setWorkspaceIconDecoder, resultDecoder: voidResultDecoder },\n registerShortcut: { name: \"registerShortcut\", argsDecoder: shortcutConfigDecoder, resultDecoder: voidResultDecoder },\n unregisterShortcut: { name: \"unregisterShortcut\", argsDecoder: shortcutConfigDecoder, resultDecoder: voidResultDecoder },\n showLoadingAnimation: { name: \"showLoadingAnimation\", argsDecoder: loadingAnimationConfigDecoder, resultDecoder: voidResultDecoder },\n hideLoadingAnimation: { name: \"hideLoadingAnimation\", argsDecoder: loadingAnimationConfigDecoder, resultDecoder: voidResultDecoder },\n getPlatformFrameId: { name: \"getPlatformFrameId\", resultDecoder: getPlatformFrameIdResultDecoder },\n operationCheck: { name: \"operationCheck\", argsDecoder: operationCheckConfigDecoder, resultDecoder: operationCheckResultDecoder },\n};\n","export class PromiseWrapper<T> {\r\n public resolve: (value: T | PromiseLike<T>) => void;\r\n public reject: (err: string) => void;\r\n public readonly promise: Promise<T>;\r\n constructor() {\r\n this.promise = new Promise<T>((res, rej) => {\r\n this.resolve = res;\r\n this.reject = rej;\r\n });\r\n }\r\n}","import { CallbackRegistry, UnsubscribeFunction } from \"callback-registry\";\nimport { SubscriptionConfig, ActiveSubscription, WorkspaceEventType, WorkspaceEventAction, WorkspacePayload, WorkspaceEventScope, PendingSubscription } from \"../types/subscription\";\nimport { ClientOperations, CLIENT_OPERATIONS, STREAMS } from \"./constants\";\nimport { OPERATIONS } from \"./constants\";\nimport { eventTypeDecoder, streamRequestArgumentsDecoder, workspaceEventActionDecoder } from \"../shared/decoders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { InteropTransport } from \"./interop-transport\";\nimport { PromiseWrapper } from \"../shared/promiseWrapper\";\nimport { Instance } from \"../types/glue\";\n\nexport class Bridge {\n\n private readonly activeSubscriptions: ActiveSubscription[] = [];\n private readonly pendingSubScriptions: PendingSubscription[] = [];\n\n constructor(\n private readonly transport: InteropTransport,\n private readonly registry: CallbackRegistry\n ) { }\n\n public async createCoreEventSubscription(): Promise<void> {\n await this.transport.coreSubscriptionReady(this.handleCoreEvent.bind(this));\n }\n\n public handleCoreSubscription(config: SubscriptionConfig): UnsubscribeFunction {\n const registryKey = `${config.eventType}-${config.action}`;\n const scope = config.scope;\n const scopeId = config.scopeId;\n\n return this.registry.add(registryKey, (args) => {\n const scopeConfig = {\n type: scope,\n id: scopeId\n };\n\n const receivedIds = {\n frame: args.frameSummary?.id || args.windowSummary?.config.frameId,\n workspace: args.workspaceSummary?.id || args.windowSummary?.config.workspaceId,\n container: args.containerSummary?.itemId,\n window: args.windowSummary?.itemId\n };\n\n const shouldInvokeCallback = this.checkScopeMatch(scopeConfig, receivedIds);\n\n if (!shouldInvokeCallback) {\n return;\n }\n\n config.callback(args);\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public async send<T>(operationName: string, operationArgs?: any): Promise<T> {\n\n const operationDefinition = Object.values(OPERATIONS).find((operation) => operation.name === operationName);\n\n if (!operationDefinition) {\n throw new Error(`Cannot find definition for operation name: ${operationName}`);\n }\n\n if (operationDefinition.argsDecoder) {\n try {\n operationDefinition.argsDecoder.runWithException(operationArgs);\n } catch (error) {\n throw new Error(`Unexpected internal outgoing validation error: ${error.message}, for input: ${JSON.stringify(error.input)}, for operation ${operationName}`);\n }\n }\n\n try {\n const operationResult = await this.transport.transmitControl(operationDefinition.name, operationArgs);\n\n operationDefinition.resultDecoder.runWithException(operationResult);\n\n return operationResult;\n } catch (error) {\n if (error.kind) {\n throw new Error(`Unexpected internal incoming validation error: ${error.message}, for input: ${JSON.stringify(error.input)}, for operation ${operationName}`);\n }\n throw new Error(error.message);\n }\n }\n\n public async subscribe(config: SubscriptionConfig): Promise<IOConnectWorkspaces.Unsubscribe> {\n const pendingSub = this.getPendingSubscription(config);\n if (pendingSub) {\n await pendingSub.promise;\n }\n\n let activeSub = this.getActiveSubscription(config);\n const registryKey = this.getRegistryKey(config);\n\n if (!activeSub) {\n const pendingPromise = new PromiseWrapper<void>();\n const pendingSubscription = {\n streamType: config.eventType,\n level: config.scope,\n levelId: config.scopeId,\n promise: pendingPromise.promise\n };\n this.pendingSubScriptions.push(pendingSubscription);\n try {\n const stream = STREAMS[config.eventType];\n const gdSub = await this.transport.subscribe(stream.name, this.getBranchKey(config), config.eventType);\n\n gdSub.onData((streamData) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const data = streamData.data as { action: string; payload: any };\n\n // important to decode without exception, because we do not want to throw an exception here\n const requestedArgumentsResult = streamRequestArgumentsDecoder.run(streamData.requestArguments);\n const actionResult = workspaceEventActionDecoder.run(data.action);\n\n if (!requestedArgumentsResult.ok || !actionResult.ok) {\n return;\n }\n\n const streamType = requestedArgumentsResult.result.type;\n const branch = requestedArgumentsResult.result.branch;\n\n const keyToExecute = `${streamType}-${branch}-${actionResult.result}`;\n const validatedPayload = STREAMS[streamType].payloadDecoder.run(data.payload);\n if (!validatedPayload.ok) {\n return;\n }\n\n this.registry.execute(keyToExecute, validatedPayload.result);\n });\n\n activeSub = {\n streamType: config.eventType,\n level: config.scope,\n levelId: config.scopeId,\n callbacksCount: 0,\n gdSub\n };\n\n this.activeSubscriptions.push(activeSub);\n\n pendingPromise.resolve();\n } catch (error) {\n pendingPromise.reject(error);\n\n throw error;\n } finally {\n this.removePendingSubscription(pendingSubscription);\n }\n\n }\n\n const unsubscribe = this.registry.add(registryKey, config.callback);\n\n ++activeSub.callbacksCount;\n\n return (): void => {\n unsubscribe();\n --activeSub.callbacksCount;\n\n if (activeSub.callbacksCount === 0) {\n activeSub.gdSub.close();\n this.activeSubscriptions.splice(this.activeSubscriptions.indexOf(activeSub), 1);\n }\n };\n }\n\n public onOperation(callback: (operation: ClientOperations, caller: Instance) => void) {\n\n const wrappedCallback = (payload: ClientOperations, caller: Instance) => {\n const operationName = payload.operation;\n const operationArgs = payload.data;\n const operationDefinition = Object.values(CLIENT_OPERATIONS).find((operation) => operation.name === operationName);\n\n if (!operationDefinition) {\n throw new Error(`Cannot find definition for operation name: ${operationName}`);\n }\n\n if (operationDefinition.argsDecoder) {\n try {\n operationDefinition.argsDecoder.runWithException(operationArgs);\n } catch (error) {\n throw new Error(`Unexpected internal outgoing validation error: ${error.message}, for input: ${JSON.stringify(error.input)}, for operation ${operationName}`);\n }\n }\n\n callback(payload, caller);\n };\n\n return this.transport.onInternalMethodInvoked(\"control\", wrappedCallback);\n }\n\n private checkScopeMatch(scope: { type: WorkspaceEventScope; id?: string }, receivedIds: { frame: string; workspace: string; container: string; window: string }): boolean {\n\n if (scope.type === \"global\") {\n return true;\n }\n\n if (scope.type === \"frame\" && scope.id === receivedIds.frame) {\n return true;\n }\n\n if (scope.type === \"workspace\" && scope.id === receivedIds.workspace) {\n return true;\n }\n\n if (scope.type === \"container\" && scope.id === receivedIds.container) {\n return true;\n }\n\n if (scope.type === \"window\" && scope.id === receivedIds.window) {\n return true;\n }\n\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private handleCoreEvent(args: any): void {\n const data = args.data;\n try {\n const verifiedAction: WorkspaceEventAction = workspaceEventActionDecoder.runWithException(data.action);\n const verifiedType: WorkspaceEventType = eventTypeDecoder.runWithException(data.type);\n const verifiedPayload: WorkspacePayload = STREAMS[verifiedType].payloadDecoder.runWithException(data.payload);\n\n const registryKey = `${verifiedType}-${verifiedAction}`;\n\n this.registry.execute(registryKey, verifiedPayload);\n } catch (error) {\n console.warn(`Cannot handle event with data ${JSON.stringify(data)}, because of validation error: ${error.message}`);\n }\n }\n\n private getBranchKey(config: SubscriptionConfig): string {\n return config.scope === \"global\" ? config.scope : `${config.scope}_${config.scopeId}`;\n }\n\n private getRegistryKey(config: SubscriptionConfig): string {\n return `${config.eventType}-${this.getBranchKey(config)}-${config.action}`;\n }\n\n private getActiveSubscription(config: SubscriptionConfig): ActiveSubscription {\n return this.activeSubscriptions\n .find((activeSub) => activeSub.streamType === config.eventType &&\n activeSub.level === config.scope &&\n activeSub.levelId === config.scopeId\n );\n }\n\n private getPendingSubscription(config: SubscriptionConfig): PendingSubscription {\n return this.pendingSubScriptions\n .find((activeSub) => activeSub.streamType === config.eventType &&\n activeSub.level === config.scope &&\n activeSub.levelId === config.scopeId\n );\n }\n\n private removePendingSubscription(pendingSubscription: PendingSubscription): void {\n const index = this.pendingSubScriptions.indexOf(pendingSubscription);\n\n if (index >= 0) {\n this.pendingSubScriptions.splice(index, 1);\n }\n }\n}\n","export const promisePlus = <T>(promise: () => Promise<T>, timeoutMilliseconds: number, timeoutMessage?: string): Promise<T> => {\n return new Promise<T>((resolve, reject) => {\n\n let promiseActive = true;\n\n const timeout = setTimeout(() => {\n if (!promiseActive) {\n return;\n }\n promiseActive = false;\n const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;\n\n reject(message);\n }, timeoutMilliseconds);\n\n promise()\n .then((result) => {\n if (!promiseActive) {\n return;\n }\n promiseActive = false;\n clearTimeout(timeout);\n resolve(result);\n })\n .catch((error) => {\n if (!promiseActive) {\n return;\n }\n promiseActive = false;\n clearTimeout(timeout);\n reject(error);\n });\n });\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ClientOperations, IncomingMethodTypes, INCOMING_METHODS, OUTGOING_METHODS, webPlatformMethodName, webPlatformWspStreamName } from \"./constants\";\nimport { promisePlus } from \"../shared/promisePlus\";\nimport { WorkspaceEventType } from \"../types/subscription\";\nimport { InteropAPI, Subscription, InvocationResult, Instance } from \"../types/glue\";\nimport { CallbackRegistry } from \"callback-registry\";\n\nexport class InteropTransport {\n\n private readonly defaultTransportTimeout: number = 30000;\n private coreEventMethodInitiated = false;\n private corePlatformSubPromise: Promise<Subscription>;\n\n constructor(private readonly agm: InteropAPI,\n private readonly registry: CallbackRegistry) { }\n\n public async initiate(actualWindowId: string): Promise<void> {\n\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (desktopGlobal) {\n await Promise.all(\n Object.values(OUTGOING_METHODS).map((method) => {\n return this.verifyMethodLive(method.name);\n })\n );\n\n await Promise.all(\n Object.keys(INCOMING_METHODS).map((method: IncomingMethodTypes) => {\n return this.registerMethod(method);\n })\n );\n\n return;\n }\n\n const browserGlobal = (window as any).glue42core || (window as any).iobrowser;\n\n const systemId = browserGlobal.communicationId;\n\n await Promise.all([\n this.verifyMethodLive(webPlatformMethodName, systemId),\n this.verifyMethodLive(webPlatformWspStreamName, systemId)\n ]);\n\n await this.transmitControl(\"frameHello\", { windowId: actualWindowId });\n }\n\n public coreSubscriptionReady(eventCallback: (args?: any) => void): Promise<Subscription> {\n if (!this.coreEventMethodInitiated) {\n this.subscribePlatform(eventCallback);\n }\n return this.corePlatformSubPromise;\n }\n\n public subscribePlatform(eventCallback: (args?: any) => void): void {\n this.coreEventMethodInitiated = true;\n\n const browserGlobal = (window as any).glue42core || (window as any).iobrowser;\n\n const systemId = browserGlobal.communicationId;\n\n this.corePlatformSubPromise = this.agm.subscribe(webPlatformWspStreamName, systemId ? { target: { instance: systemId } } : undefined);\n\n this.corePlatformSubPromise\n .then((sub) => {\n sub.onData((data) => eventCallback(data.data));\n });\n }\n\n public async subscribe(streamName: string, streamBranch: string, streamType: WorkspaceEventType): Promise<Subscription> {\n\n const subscriptionArgs = {\n branch: streamBranch,\n type: streamType\n };\n\n let subscription: Subscription;\n\n try {\n subscription = await this.agm.subscribe(streamName, { arguments: subscriptionArgs });\n } catch (error) {\n const message = `Internal subscription error! Error details: stream - ${streamName}, branch: ${streamBranch}. Internal message: ${error.message}`;\n throw new Error(message);\n }\n\n return subscription;\n }\n\n public async transmitControl(operation: string, operationArguments: any): Promise<any> {\n\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n const browserGlobal = (window as any).glue42core || (window as any).iobrowser;\n \n const invocationArguments = desktopGlobal ? { operation, operationArguments } : { operation, domain: \"workspaces\", data: operationArguments };\n const methodName = desktopGlobal ? OUTGOING_METHODS.control.name : webPlatformMethodName;\n\n const platformTarget = desktopGlobal ? undefined : browserGlobal.communicationId;\n\n let invocationResult: InvocationResult<any>;\n const baseErrorMessage = `Internal Workspaces Communication Error. Attempted operation: ${JSON.stringify(invocationArguments)}. `;\n\n // using the 0 index of the errors and values collections, because we expect only one server and\n // this is to safeguard in case in future we decide to deprecate the default returned/message properties in favor of using only collections\n try {\n invocationResult = await this.agm.invoke(methodName, invocationArguments, platformTarget ? { instance: platformTarget } : \"best\", { methodResponseTimeoutMs: this.defaultTransportTimeout });\n\n if (!invocationResult) {\n throw new Error(\"Received unsupported result from GD - empty result\");\n }\n\n if (!Array.isArray(invocationResult.all_return_values) || invocationResult.all_return_values.length === 0) {\n throw new Error(\"Received unsupported result from GD - empty values collection\");\n }\n\n } catch (error) {\n if (error && error.all_errors && error.all_errors.length) {\n // IMPORTANT: Do NOT change the `Inner message:` string, because it is used by other programs to extract the inner message of a communication error\n const invocationErrorMessage = error.all_errors[0].message;\n throw new Error(`${baseErrorMessage} -> Inner message: ${invocationErrorMessage}`);\n\n }\n // IMPORTANT: Do NOT change the `Inner message:` string, because it is used by other programs to extract the inner message of a communication error\n throw new Error(`${baseErrorMessage} -> Inner message: ${error.message}`);\n }\n\n return invocationResult.all_return_values[0].returned;\n }\n\n public onInternalMethodInvoked(key: IncomingMethodTypes, callback: (operation: ClientOperations, caller: Instance) => void) {\n return this.registry.add(key, callback);\n }\n\n private verifyMethodLive(name: string, systemId?: string): Promise<void> {\n return promisePlus(() => {\n return new Promise((resolve) => {\n const hasMethod = this.agm.methods().some((method) => {\n const nameMatch = method.name === name;\n \n const serverMatch = systemId ?\n method.getServers().some((server) => server.instance === systemId) :\n true;\n \n return nameMatch && serverMatch;\n });\n\n if (hasMethod) {\n resolve();\n return;\n }\n\n const unSub = this.agm.serverMethodAdded((data) => {\n const method = data.method;\n const server = data.server;\n \n const serverMatch = systemId ?\n server.instance === systemId :\n true;\n \n if (method.name === name && serverMatch) {\n unSub();\n resolve();\n }\n });\n });\n }, 15000, \"Timeout waiting for the Workspaces communication channels\");\n }\n\n private registerMethod(key: IncomingMethodTypes) {\n const method = INCOMING_METHODS[key];\n return this.agm.register(method.name, (args, caller) => {\n this.registry.execute(key, args, caller);\n });\n }\n}\n","import { BaseBuilder } from \"./baseBuilder\";\nimport { ChildBuilder } from \"../types/builders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\n\ninterface PrivateData {\n definition: IOConnectWorkspaces.BoxDefinition;\n base: BaseBuilder;\n children: ChildBuilder[];\n}\n\nconst privateData = new WeakMap<ParentBuilder, PrivateData>();\n\nexport class ParentBuilder implements ParentBuilder {\n\n constructor(\n definition: IOConnectWorkspaces.BoxDefinition,\n base: BaseBuilder\n ) {\n const children = base.wrapChildren(definition.children);\n\n delete definition.children;\n\n privateData.set(this, { base, children, definition });\n }\n\n public get type(): \"column\" | \"row\" | \"group\" {\n return privateData.get(this).definition.type;\n }\n\n public addColumn(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n return base.add(\"column\", privateData.get(this).children, definition);\n }\n\n public addRow(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n return base.add(\"row\", privateData.get(this).children, definition);\n }\n\n public addGroup(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n return base.add(\"group\", privateData.get(this).children, definition);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): ParentBuilder {\n const base = privateData.get(this).base;\n\n base.addWindow(privateData.get(this).children, definition);\n\n return this;\n }\n\n public serialize(): IOConnectWorkspaces.BoxDefinition {\n const definition = privateData.get(this).definition;\n definition.children = privateData.get(this).base.serializeChildren(privateData.get(this).children);\n return definition;\n }\n\n}\n","import { ParentBuilder } from \"./parentBuilder\";\nimport { ChildDefinition, ChildBuilder } from \"../types/builders\";\nimport { parentDefinitionDecoder, swimlaneWindowDefinitionDecoder } from \"../shared/decoders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspaceBuilder } from \"./workspaceBuilder\";\n\nexport class BaseBuilder {\n\n constructor(\n private readonly getBuilder: (config: IOConnectWorkspaces.BuilderConfig) => ParentBuilder | WorkspaceBuilder,\n ) { }\n\n public wrapChildren(children: ChildDefinition[]): ChildBuilder[] {\n return children.map((child) => {\n if (child.type === \"window\") {\n return child;\n }\n\n return this.getBuilder({ type: child.type, definition: child }) as ParentBuilder;\n });\n }\n\n public add(type: \"row\" | \"column\" | \"group\", children: ChildBuilder[], definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const validatedDefinition = parentDefinitionDecoder.runWithException(definition);\n\n const childBuilder = this.getBuilder({ type, definition: validatedDefinition }) as ParentBuilder;\n\n children.push(childBuilder);\n\n return childBuilder;\n }\n\n public addWindow(children: ChildBuilder[], definition: IOConnectWorkspaces.WorkspaceWindowDefinition): void {\n const validatedDefinition = swimlaneWindowDefinitionDecoder.runWithException(definition);\n\n validatedDefinition.type = \"window\";\n\n children.push(validatedDefinition);\n }\n\n public serializeChildren(children: ChildBuilder[]): ChildDefinition[] {\n return children.map((child) => {\n if (child instanceof ParentBuilder) {\n return child.serialize();\n } else {\n return child as IOConnectWorkspaces.WorkspaceWindowDefinition;\n }\n });\n }\n}\n","import { BaseBuilder } from \"./baseBuilder\";\nimport { ChildBuilder } from \"../types/builders\";\nimport { ParentBuilder } from \"./parentBuilder\";\nimport { workspaceBuilderCreateConfigDecoder, nonNegativeNumberDecoder } from \"../shared/decoders\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspacesController } from \"../types/controller\";\n\ninterface PrivateData {\n definition: IOConnectWorkspaces.WorkspaceDefinition;\n children: ChildBuilder[];\n base: BaseBuilder;\n controller: WorkspacesController;\n}\n\nconst privateData = new WeakMap<WorkspaceBuilder, PrivateData>();\n\nexport class WorkspaceBuilder implements WorkspaceBuilder {\n\n constructor(\n definition: IOConnectWorkspaces.WorkspaceDefinition,\n base: BaseBuilder,\n controller: WorkspacesController\n ) {\n const children = base.wrapChildren(definition.children);\n\n delete definition.children;\n\n privateData.set(this, { base, children, definition, controller });\n }\n\n public addColumn(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const children = privateData.get(this).children;\n\n const areAllColumns = children.every((child) => child instanceof ParentBuilder && child.type === \"column\");\n\n if (!areAllColumns) {\n throw new Error(\"Cannot add a column to this workspace, because there are already children of another type\");\n }\n\n const base = privateData.get(this).base;\n\n return base.add(\"column\", children, definition);\n }\n\n public addRow(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const children = privateData.get(this).children;\n\n const areAllRows = children.every((child) => child instanceof ParentBuilder && child.type === \"row\");\n\n if (!areAllRows) {\n throw new Error(\"Cannot add a row to this workspace, because there are already children of another type\");\n }\n\n const base = privateData.get(this).base;\n\n return base.add(\"row\", children, definition);\n }\n\n public addGroup(definition?: IOConnectWorkspaces.BoxDefinition): ParentBuilder {\n const children = privateData.get(this).children;\n\n if (children.length !== 0) {\n throw new Error(\"Cannot add a group to this workspace, because there are already defined children.\");\n }\n\n const base = privateData.get(this).base;\n\n return base.add(\"group\", children, definition);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): WorkspaceBuilder {\n const children = privateData.get(this).children;\n\n if (children.length !== 0) {\n throw new Error(\"Cannot add a window to this workspace, because there are already defined children.\");\n }\n\n const base = privateData.get(this).base;\n\n base.addWindow(children, definition);\n\n return this;\n }\n\n public getChildAt(index: number): ChildBuilder {\n nonNegativeNumberDecoder.runWithException(index);\n const data = privateData.get(this).children;\n\n return data[index];\n }\n\n public async create(config?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<IOConnectWorkspaces.Workspace> {\n const saveConfig = workspaceBuilderCreateConfigDecoder.runWithException(config);\n\n const definition = privateData.get(this).definition;\n definition.children = privateData.get(this).base.serializeChildren(privateData.get(this).children);\n\n const controller = privateData.get(this).controller;\n\n return controller.createWorkspace(definition, saveConfig);\n }\n}\n","import { Base } from \"./base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { checkThrowCallback, nonNegativeNumberDecoder, rowLockConfigDecoder, setMaximizationBoundaryAPIConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\n\ninterface PrivateData {\n base: Base;\n}\n\nconst privateData = new WeakMap<Row, PrivateData>();\n\nconst getBase = (model: Row): Base => {\n return privateData.get(model).base;\n};\n\nexport class Row implements IOConnectWorkspaces.Row {\n\n constructor(base: Base) {\n privateData.set(this, { base });\n }\n\n public get type(): \"row\" {\n return \"row\";\n }\n\n public get id(): string {\n return getBase(this).getId(this);\n }\n\n public get frameId(): string {\n return getBase(this).getFrameId(this);\n }\n\n public get workspaceId(): string {\n return getBase(this).getWorkspaceId(this);\n }\n\n public get positionIndex(): number {\n return getBase(this).getPositionIndex(this);\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getBase(this).getAllChildren(this);\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.WorkspaceBox {\n return getBase(this).getMyParent(this);\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getBase(this).getMyFrame(this);\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getBase(this).getMyWorkspace(this);\n }\n\n public get allowDrop(): boolean {\n return getBase(this).getAllowDrop(this);\n }\n\n public get allowSplitters(): boolean {\n return getBase(this).getAllowSplitters(this);\n }\n\n public get minWidth(): number {\n return getBase(this).getMinWidth(this);\n }\n\n public get minHeight(): number {\n return getBase(this).getMinHeight(this);\n }\n\n public get maxWidth(): number {\n return getBase(this).getMaxWidth(this);\n }\n\n public get maxHeight(): number {\n return getBase(this).getMaxHeight(this);\n }\n\n public get width(): number {\n return getBase(this).getWidthInPx(this);\n }\n\n public get height(): number {\n return getBase(this).getHeightInPx(this);\n }\n\n public get isPinned(): boolean {\n return getBase(this).getIsPinned(this);\n }\n\n public get isMaximized(): boolean {\n return getBase(this).getIsMaximized(this);\n }\n\n public get maximizationBoundary(): boolean {\n return getBase(this).getMaximizationBoundary(this);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getBase(this).addWindow(this, definition, \"row\");\n }\n\n public async addGroup(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Group> {\n if (definition?.type && definition.type !== \"group\") {\n throw new Error(`Expected a group definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Group>(this, \"group\", \"row\", definition);\n }\n\n public async addColumn(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Column> {\n if (definition?.type && definition.type !== \"column\") {\n throw new Error(`Expected a column definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Column>(this, \"column\", \"row\", definition);\n }\n\n public async addRow(): Promise<Row> {\n throw new Error(\"Adding rows as row children is not supported\");\n }\n\n public removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n return getBase(this).removeChild(this, predicate);\n }\n\n public maximize(): Promise<void> {\n return getBase(this).maximize(this);\n }\n\n public restore(): Promise<void> {\n return getBase(this).restore(this);\n }\n\n public close(): Promise<void> {\n return getBase(this).close(this);\n }\n\n public lock(config?: IOConnectWorkspaces.RowLockConfig | ((config: IOConnectWorkspaces.RowLockConfig) => IOConnectWorkspaces.RowLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n };\n\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n\n const verifiedConfig = lockConfigResult === undefined ? undefined : rowLockConfigDecoder.runWithException(lockConfigResult);\n\n return getBase(this).lockContainer(this, verifiedConfig);\n }\n\n public async setHeight(height: number): Promise<void> {\n nonNegativeNumberDecoder.runWithException(height);\n return getBase(this).setHeight(this, height);\n }\n\n\n public async onLockConfigurationChanged(callback: (config: IOConnectWorkspaces.RowLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"container\",\n scope: \"container\"\n };\n const unsubscribe = await getBase(this).processLocalSubscription(this, config);\n return unsubscribe;\n }\n public async setMaximizationBoundary(config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n const validatedConfig = setMaximizationBoundaryAPIConfigDecoder.runWithException(config);\n return getBase(this).setMaximizationBoundary(this, validatedConfig);\n }\n\n}\n","import { Base } from \"./base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { checkThrowCallback, columnLockConfigDecoder, nonNegativeNumberDecoder, setMaximizationBoundaryAPIConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\n\ninterface PrivateData {\n base: Base;\n}\n\nconst privateData = new WeakMap<Column, PrivateData>();\n\nconst getBase = (model: Column): Base => {\n return privateData.get(model).base;\n};\n\nexport class Column implements IOConnectWorkspaces.Column {\n\n constructor(base: Base) {\n privateData.set(this, { base });\n }\n\n public get type(): \"column\" {\n return \"column\";\n }\n\n public get id(): string {\n return getBase(this).getId(this);\n }\n\n public get frameId(): string {\n return getBase(this).getFrameId(this);\n }\n\n public get workspaceId(): string {\n return getBase(this).getWorkspaceId(this);\n }\n\n public get positionIndex(): number {\n return getBase(this).getPositionIndex(this);\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getBase(this).getAllChildren(this);\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.WorkspaceBox {\n return getBase(this).getMyParent(this);\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getBase(this).getMyFrame(this);\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getBase(this).getMyWorkspace(this);\n }\n\n public get allowDrop(): boolean {\n return getBase(this).getAllowDrop(this);\n }\n\n public get allowSplitters(): boolean {\n return getBase(this).getAllowSplitters(this);\n }\n\n public get minWidth(): number {\n return getBase(this).getMinWidth(this);\n }\n\n public get minHeight(): number {\n return getBase(this).getMinHeight(this);\n }\n\n public get maxWidth(): number {\n return getBase(this).getMaxWidth(this);\n }\n\n public get maxHeight(): number {\n return getBase(this).getMaxHeight(this);\n }\n\n public get width(): number {\n return getBase(this).getWidthInPx(this);\n }\n\n public get height(): number {\n return getBase(this).getHeightInPx(this);\n }\n\n public get isPinned(): boolean {\n return getBase(this).getIsPinned(this);\n }\n\n public get isMaximized(): boolean {\n return getBase(this).getIsMaximized(this);\n }\n\n public get maximizationBoundary(): boolean {\n return getBase(this).getMaximizationBoundary(this);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getBase(this).addWindow(this, definition, \"column\");\n }\n\n public async addGroup(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Group> {\n if (definition?.type && definition.type !== \"group\") {\n throw new Error(`Expected a group definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Group>(this, \"group\", \"column\", definition);\n }\n\n public async addColumn(): Promise<Column> {\n throw new Error(\"Adding columns as column children is not supported\");\n }\n\n public async addRow(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Row> {\n if (definition?.type && definition.type !== \"row\") {\n throw new Error(`Expected a row definition, but received ${definition.type}`);\n }\n return getBase(this).addParent<IOConnectWorkspaces.Row>(this, \"row\", \"column\", definition);\n }\n\n public removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n return getBase(this).removeChild(this, predicate);\n }\n\n public maximize(): Promise<void> {\n return getBase(this).maximize(this);\n }\n\n public restore(): Promise<void> {\n return getBase(this).restore(this);\n }\n\n public close(): Promise<void> {\n return getBase(this).close(this);\n }\n\n public lock(config?: IOConnectWorkspaces.ColumnLockConfig | ((config: IOConnectWorkspaces.ColumnLockConfig) => IOConnectWorkspaces.ColumnLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n };\n\n lockConfigResult = config(currentLockConfig);\n\n } else {\n lockConfigResult = config;\n }\n const verifiedConfig = lockConfigResult === undefined ? undefined : columnLockConfigDecoder.runWithException(lockConfigResult);\n return getBase(this).lockContainer(this, verifiedConfig);\n }\n\n public async setWidth(width: number): Promise<void> {\n nonNegativeNumberDecoder.runWithException(width);\n return getBase(this).setWidth(this, width);\n }\n\n\n public async onLockConfigurationChanged(callback: (config: IOConnectWorkspaces.ColumnLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowSplitters: this.allowSplitters\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"container\",\n scope: \"container\"\n };\n const unsubscribe = await getBase(this).processLocalSubscription(this, config);\n return unsubscribe;\n }\n public async setMaximizationBoundary(config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n const validatedConfig = setMaximizationBoundaryAPIConfigDecoder.runWithException(config);\n return getBase(this).setMaximizationBoundary(this, validatedConfig);\n\n }\n}\n","import { Base } from \"./base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { checkThrowCallback, elementResizeConfigDecoder, groupLockConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\n\ninterface PrivateData {\n base: Base;\n}\n\nconst privateData = new WeakMap<Group, PrivateData>();\n\nconst getBase = (model: Group): Base => {\n return privateData.get(model).base;\n};\n\nexport class Group implements IOConnectWorkspaces.Group {\n\n constructor(base: Base) {\n privateData.set(this, { base });\n }\n\n public get type(): \"group\" {\n return \"group\";\n }\n\n public get id(): string {\n return getBase(this).getId(this);\n }\n\n public get frameId(): string {\n return getBase(this).getFrameId(this);\n }\n\n public get workspaceId(): string {\n return getBase(this).getWorkspaceId(this);\n }\n\n public get positionIndex(): number {\n return getBase(this).getPositionIndex(this);\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getBase(this).getAllChildren(this);\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.WorkspaceBox {\n return getBase(this).getMyParent(this);\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getBase(this).getMyFrame(this);\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getBase(this).getMyWorkspace(this);\n }\n\n public get allowExtract(): boolean {\n return getBase(this).getAllowExtract(this);\n }\n\n public get allowReorder(): boolean {\n return getBase(this).getAllowReorder(this);\n }\n\n public get allowDropLeft(): boolean {\n return getBase(this).getAllowDropLeft(this);\n }\n\n public get allowDropRight(): boolean {\n return getBase(this).getAllowDropRight(this);\n }\n\n public get allowDropTop(): boolean {\n return getBase(this).getAllowDropTop(this);\n }\n\n public get allowDropBottom(): boolean {\n return getBase(this).getAllowDropBottom(this);\n }\n\n public get allowDropHeader(): boolean {\n return getBase(this).getAllowDropHeader(this);\n }\n\n public get allowDrop(): boolean {\n return getBase(this).getAllowDrop(this);\n }\n\n public get showMaximizeButton(): boolean {\n return getBase(this).getShowMaximizeButton(this);\n }\n\n public get showEjectButton(): boolean {\n return getBase(this).getShowEjectButton(this);\n }\n\n public get showAddWindowButton(): boolean {\n return getBase(this).getShowAddWindowButton(this);\n }\n\n public get minWidth(): number {\n return getBase(this).getMinWidth(this);\n }\n\n public get minHeight(): number {\n return getBase(this).getMinHeight(this);\n }\n\n public get maxWidth(): number {\n return getBase(this).getMaxWidth(this);\n }\n\n public get maxHeight(): number {\n return getBase(this).getMaxHeight(this);\n }\n\n public get width(): number {\n return getBase(this).getWidthInPx(this);\n }\n\n public get height(): number {\n return getBase(this).getHeightInPx(this);\n }\n\n public get isMaximized(): boolean {\n return getBase(this).getIsMaximized(this);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getBase(this).addWindow(this, definition, \"group\");\n }\n\n public async addGroup(): Promise<Group> {\n throw new Error(\"Adding groups as group child is not supported\");\n }\n\n public async addColumn(): Promise<IOConnectWorkspaces.Column> {\n throw new Error(\"Adding columns as group child is not supported\");\n }\n\n public async addRow(): Promise<IOConnectWorkspaces.Row> {\n throw new Error(\"Adding rows as group child is not supported\");\n }\n\n public removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n return getBase(this).removeChild(this, predicate);\n }\n\n public maximize(): Promise<void> {\n return getBase(this).maximize(this);\n }\n\n public restore(): Promise<void> {\n return getBase(this).restore(this);\n }\n\n public close(): Promise<void> {\n return getBase(this).close(this);\n }\n\n public lock(config?: IOConnectWorkspaces.GroupLockConfig | ((config: IOConnectWorkspaces.GroupLockConfig) => IOConnectWorkspaces.GroupLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowDropHeader: this.allowDropHeader,\n allowDropLeft: this.allowDropLeft,\n allowDropRight: this.allowDropRight,\n allowDropTop: this.allowDropTop,\n allowDropBottom: this.allowDropBottom,\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showAddWindowButton: this.showAddWindowButton,\n showEjectButton: this.showEjectButton,\n showMaximizeButton: this.showMaximizeButton\n };\n\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n const verifiedConfig = lockConfigResult === undefined ? undefined : groupLockConfigDecoder.runWithException(lockConfigResult);\n return getBase(this).lockContainer(this, verifiedConfig);\n }\n\n public async setSize(config: IOConnectWorkspaces.ElementResizeConfig): Promise<void> {\n const verifiedConfig = elementResizeConfigDecoder.runWithException(config);\n\n if (!verifiedConfig.width && !verifiedConfig.height) {\n throw new Error(\"Expected either width or height to be passed.\");\n }\n\n\n return getBase(this).setSize(this, config.width, config.height);\n }\n\n public async bundleToRow(): Promise<void> {\n await getBase(this).bundleTo(this, \"row\");\n await this.workspace.refreshReference();\n }\n\n public async bundleToColumn(): Promise<void> {\n await getBase(this).bundleTo(this, \"column\");\n await this.workspace.refreshReference();\n }\n\n public async onLockConfigurationChanged(callback: (config: IOConnectWorkspaces.GroupLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowDropHeader: this.allowDropHeader,\n allowDropLeft: this.allowDropLeft,\n allowDropTop: this.allowDropTop,\n allowDropRight: this.allowDropRight,\n allowDropBottom: this.allowDropBottom,\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showAddWindowButton: this.showAddWindowButton,\n showEjectButton: this.showEjectButton,\n showMaximizeButton: this.showMaximizeButton\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"container\",\n scope: \"container\"\n };\n const unsubscribe = await getBase(this).processLocalSubscription(this, config);\n return unsubscribe;\n }\n\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { WorkspaceSnapshotResult, WindowStreamData, WorkspaceStreamData } from \"../types/protocol\";\nimport { checkThrowCallback, nonEmptyStringDecoder, workspaceLockConfigDecoder, workspacePinOptionsDecoder } from \"../shared/decoders\";\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\nimport { FrameCreateConfig } from \"../types/ioc\";\nimport { Frame } from \"./frame\";\nimport { SubscriptionConfig } from \"../types/subscription\";\nimport { WorkspacePrivateData } from \"../types/privateData\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { Workspace as WorkspaceTemp, WorkspaceLockConfig } from \"../../temp\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Workspace, PrivateData>();\n\nconst getData = (model: Workspace): WorkspacePrivateData => {\n return data.get(model).manager.getWorkspaceData(model);\n};\n\nconst getDataManager = (model: Workspace): PrivateDataManager => {\n return data.get(model).manager;\n};\n\ntype SaveLayoutConfig = Omit<Omit<IOConnectWorkspaces.WorkspaceLayoutSaveConfig, \"name\">, \"workspaceId\">;\n\nexport class Workspace implements WorkspaceTemp {\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public get id(): string {\n return getData(this).id;\n }\n\n public get frameId(): string {\n return getData(this).config.frameId;\n }\n\n public get positionIndex(): number {\n return getData(this).config.positionIndex;\n }\n\n public get title(): string {\n return getData(this).config.title;\n }\n\n public get layoutName(): string {\n return getData(this).config.layoutName;\n }\n\n public get isHibernated(): boolean | undefined {\n return getData(this).config.isHibernated;\n }\n\n public get isSelected(): boolean {\n return getData(this).config.isSelected;\n }\n\n public get children(): IOConnectWorkspaces.WorkspaceElement[] {\n return getData(this).children;\n }\n\n public get frame(): Frame {\n return getData(this).frame;\n }\n\n public get allowSplitters(): boolean {\n return getData(this).config.allowSplitters;\n }\n\n public get allowSystemHibernation(): boolean {\n return getData(this).config.allowSystemHibernation;\n }\n\n public get allowDrop(): boolean {\n return getData(this).config.allowDrop;\n }\n\n public get allowDropLeft(): boolean {\n return getData(this).config.allowDropLeft;\n }\n\n public get allowDropTop(): boolean {\n return getData(this).config.allowDropTop;\n }\n\n public get allowDropRight(): boolean {\n return getData(this).config.allowDropRight;\n }\n\n public get allowDropBottom(): boolean {\n return getData(this).config.allowDropBottom;\n }\n\n public get allowExtract(): boolean {\n return getData(this).config.allowExtract;\n }\n\n public get allowWindowReorder(): boolean {\n return getData(this).config.allowWindowReorder;\n }\n\n public get showCloseButton(): boolean {\n return getData(this).config.showCloseButton;\n }\n\n public get showSaveButton(): boolean {\n return getData(this).config.showSaveButton;\n }\n\n public get allowWorkspaceTabReorder(): boolean {\n return getData(this).config.allowWorkspaceTabReorder;\n }\n\n public get allowWorkspaceTabExtract(): boolean {\n return getData(this).config.allowWorkspaceTabExtract;\n }\n\n public get minWidth(): number {\n return getData(this).config.minWidth;\n }\n\n public get minHeight(): number {\n return getData(this).config.minHeight;\n }\n\n public get maxWidth(): number {\n return getData(this).config.maxWidth;\n }\n\n public get maxHeight(): number {\n return getData(this).config.maxHeight;\n }\n\n public get width(): number {\n return getData(this).config.widthInPx;\n }\n\n public get height(): number {\n return getData(this).config.heightInPx;\n }\n\n public get showWindowCloseButtons(): boolean {\n return getData(this).config.showWindowCloseButtons;\n }\n\n public get showEjectButtons(): boolean {\n return getData(this).config.showEjectButtons;\n }\n\n public get showAddWindowButtons(): boolean {\n return getData(this).config.showAddWindowButtons;\n }\n\n public get isPinned(): boolean {\n return getData(this).config.isPinned;\n }\n\n public async removeChild(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n checkThrowCallback(predicate);\n const child = this.children.find(predicate);\n if (!child) {\n return;\n }\n await child.close();\n await this.refreshReference();\n }\n\n public async remove(predicate: (child: IOConnectWorkspaces.WorkspaceElement) => boolean): Promise<void> {\n checkThrowCallback(predicate);\n const controller = getData(this).controller;\n\n const child = controller.iterateFindChild(this.children, predicate);\n\n await child.close();\n\n await this.refreshReference();\n }\n\n public async focus(): Promise<void> {\n await getData(this).controller.focusItem(this.id);\n await this.refreshReference();\n }\n\n public async close(): Promise<void> {\n const controller = getData(this).controller;\n\n const workspaces = await getData(this).frame.workspaces();\n\n // should close the frame only if the frame is NOT a platform\n const platformFrameId = (await controller.getPlatformFrameId()).id;\n\n const shouldCloseFrame = workspaces.length === 1 &&\n workspaces.every((wsp) => wsp.id === this.id) &&\n platformFrameId !== this.frame.id;\n\n if (shouldCloseFrame) {\n return this.frame.close();\n }\n\n await controller.closeItem(this.id);\n }\n\n public snapshot(): Promise<IOConnectWorkspaces.WorkspaceSnapshot> {\n return getData(this).controller.getSnapshot(this.id, \"workspace\") as Promise<IOConnectWorkspaces.WorkspaceSnapshot>;\n }\n\n public async saveLayout(name: string, config?: SaveLayoutConfig): Promise<void> {\n nonEmptyStringDecoder.runWithException(name);\n await getData(this).controller.saveLayout({ name, workspaceId: this.id, saveContext: config?.saveContext, metadata: config?.metadata });\n }\n\n public async setTitle(title: string): Promise<void> {\n nonEmptyStringDecoder.runWithException(title);\n const controller = getData(this).controller;\n\n await controller.setItemTitle(this.id, title);\n await this.refreshReference();\n }\n\n public getContext(): Promise<any> {\n const controller = getData(this).controller;\n return controller.getWorkspaceContext(this.id);\n }\n\n public setContext(data: any): Promise<void> {\n const controller = getData(this).controller;\n return controller.setWorkspaceContext(this.id, data);\n }\n\n public updateContext(data: any): Promise<void> {\n const controller = getData(this).controller;\n return controller.updateWorkspaceContext(this.id, data);\n }\n\n public onContextUpdated(callback: (data: any) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n const controller = getData(this).controller;\n return controller.subscribeWorkspaceContextUpdated(this.id, callback);\n }\n\n public async refreshReference(): Promise<void> {\n const newSnapshot = (await getData(this).controller.getSnapshot(this.id, \"workspace\")) as WorkspaceSnapshotResult;\n\n const currentChildrenFlat = getData(this).controller.flatChildren(getData(this).children);\n\n const newChildren = getData(this).controller.refreshChildren({\n existingChildren: currentChildrenFlat,\n workspace: this,\n parent: this,\n children: newSnapshot.children\n });\n\n const currentFrame = this.frame;\n let actualFrame: Frame;\n\n if (currentFrame.id === newSnapshot.config.frameId) {\n getDataManager(this).remapFrame(currentFrame, newSnapshot.frameSummary);\n actualFrame = currentFrame;\n } else {\n const frameCreateConfig: FrameCreateConfig = {\n summary: newSnapshot.frameSummary\n };\n const newFrame = getData(this).ioc.getModel<\"frame\">(\"frame\", frameCreateConfig);\n actualFrame = newFrame;\n }\n\n getDataManager(this).remapWorkspace(this, {\n config: newSnapshot.config,\n children: newChildren,\n frame: actualFrame\n });\n }\n\n public async getIcon(): Promise<string> {\n const controller = getData(this).controller;\n return controller.getWorkspaceIcon(this.id);\n }\n\n public async setIcon(icon: string): Promise<void> {\n const controller = getData(this).controller;\n return controller.setWorkspaceIcon(this.id, icon);\n }\n\n public getBox(predicate: (box: IOConnectWorkspaces.WorkspaceBox) => boolean): IOConnectWorkspaces.WorkspaceBox {\n checkThrowCallback(predicate);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n return controller.iterateFindChild(children, (child) => child.type !== \"window\" && predicate(child)) as IOConnectWorkspaces.WorkspaceBox;\n }\n\n public getAllBoxes(predicate?: (parent: IOConnectWorkspaces.WorkspaceBox) => boolean): IOConnectWorkspaces.WorkspaceBox[] {\n checkThrowCallback(predicate, true);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n const allParents = controller.iterateFilterChildren(children, (child) => child.type !== \"window\") as IOConnectWorkspaces.WorkspaceBox[];\n\n if (!predicate) {\n return allParents;\n }\n\n return allParents.filter(predicate);\n }\n\n public getRow(predicate: (row: IOConnectWorkspaces.Row) => boolean): IOConnectWorkspaces.Row {\n checkThrowCallback(predicate);\n return this.getBox((parent) => parent.type === \"row\" && predicate(parent)) as IOConnectWorkspaces.Row;\n }\n\n public getAllRows(predicate?: (row: IOConnectWorkspaces.Row) => boolean): IOConnectWorkspaces.Row[] {\n checkThrowCallback(predicate, true);\n if (predicate) {\n return this.getAllBoxes((parent) => parent.type === \"row\" && predicate(parent)) as IOConnectWorkspaces.Row[];\n }\n return this.getAllBoxes((parent) => parent.type === \"row\") as IOConnectWorkspaces.Row[];\n }\n\n public getColumn(predicate: (column: IOConnectWorkspaces.Column) => boolean): IOConnectWorkspaces.Column {\n checkThrowCallback(predicate);\n return this.getBox((parent) => parent.type === \"column\" && predicate(parent)) as IOConnectWorkspaces.Column;\n }\n\n public getAllColumns(predicate?: (columns: IOConnectWorkspaces.Column) => boolean): IOConnectWorkspaces.Column[] {\n checkThrowCallback(predicate, true);\n if (predicate) {\n return this.getAllBoxes((parent) => parent.type === \"column\" && predicate(parent)) as IOConnectWorkspaces.Column[];\n }\n return this.getAllBoxes((parent) => parent.type === \"column\") as IOConnectWorkspaces.Column[];\n }\n\n public getGroup(predicate: (group: IOConnectWorkspaces.Group) => boolean): IOConnectWorkspaces.Group {\n checkThrowCallback(predicate);\n return this.getBox((parent) => parent.type === \"group\" && predicate(parent)) as IOConnectWorkspaces.Group;\n }\n\n public getAllGroups(predicate?: (group: IOConnectWorkspaces.Group) => boolean): IOConnectWorkspaces.Group[] {\n checkThrowCallback(predicate, true);\n if (predicate) {\n return this.getAllBoxes((parent) => parent.type === \"group\" && predicate(parent)) as IOConnectWorkspaces.Group[];\n }\n return this.getAllBoxes((parent) => parent.type === \"group\") as IOConnectWorkspaces.Group[];\n }\n\n public getWindow(predicate: (window: IOConnectWorkspaces.WorkspaceWindow) => boolean): IOConnectWorkspaces.WorkspaceWindow {\n checkThrowCallback(predicate);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n return controller.iterateFindChild(children, (child) => child.type === \"window\" && predicate(child)) as IOConnectWorkspaces.WorkspaceWindow;\n }\n\n public getAllWindows(predicate?: (window: IOConnectWorkspaces.WorkspaceWindow) => boolean): IOConnectWorkspaces.WorkspaceWindow[] {\n checkThrowCallback(predicate, true);\n const children = getData(this).children;\n const controller = getData(this).controller;\n\n const allWindows = controller.iterateFilterChildren(children, (child) => child.type === \"window\") as IOConnectWorkspaces.WorkspaceWindow[];\n\n if (!predicate) {\n return allWindows;\n }\n\n return allWindows.filter(predicate);\n }\n\n public addRow(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Row> {\n return getData(this).base.addParent<IOConnectWorkspaces.Row>(this, \"row\", \"workspace\", definition);\n }\n\n public addColumn(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Column> {\n return getData(this).base.addParent<IOConnectWorkspaces.Column>(this, \"column\", \"workspace\", definition);\n }\n\n public addGroup(definition?: IOConnectWorkspaces.BoxDefinition): Promise<IOConnectWorkspaces.Group> {\n return getData(this).base.addParent<IOConnectWorkspaces.Group>(this, \"group\", \"workspace\", definition);\n }\n\n public addWindow(definition: IOConnectWorkspaces.WorkspaceWindowDefinition): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n return getData(this).base.addWindow(this, definition, \"workspace\");\n }\n\n public async bundleToRow(): Promise<void> {\n await getData(this).controller.bundleWorkspaceTo(\"row\", this.id);\n await this.refreshReference();\n }\n\n public async bundleToColumn(): Promise<void> {\n await getData(this).controller.bundleWorkspaceTo(\"column\", this.id);\n await this.refreshReference();\n }\n\n public async hibernate(): Promise<void> {\n await getData(this).controller.hibernateWorkspace(this.id);\n await this.refreshReference();\n }\n\n public async resume(): Promise<void> {\n await getData(this).controller.resumeWorkspace(this.id);\n await this.refreshReference();\n }\n\n public async lock(config?: IOConnectWorkspaces.WorkspaceLockConfig | ((config: IOConnectWorkspaces.WorkspaceLockConfig) => IOConnectWorkspaces.WorkspaceLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowDrop: this.allowDrop,\n allowDropLeft: this.allowDropLeft,\n allowDropTop: this.allowDropTop,\n allowDropRight: this.allowDropRight,\n allowDropBottom: this.allowDropBottom,\n allowSystemHibernation: this.allowSystemHibernation,\n allowExtract: this.allowExtract,\n allowWindowReorder: this.allowWindowReorder,\n allowSplitters: this.allowSplitters,\n showCloseButton: this.showCloseButton,\n showSaveButton: this.showSaveButton,\n allowWorkspaceTabReorder: this.allowWorkspaceTabReorder,\n allowWorkspaceTabExtract: this.allowWorkspaceTabExtract,\n showAddWindowButtons: this.showAddWindowButtons,\n showEjectButtons: this.showEjectButtons,\n showWindowCloseButtons: this.showWindowCloseButtons\n };\n\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n\n const verifiedConfig = lockConfigResult === undefined ? undefined : workspaceLockConfigDecoder.runWithException(lockConfigResult);\n\n await getData(this).controller.lockWorkspace(this.id, verifiedConfig);\n await this.refreshReference();\n }\n\n public async pin(options: IOConnectWorkspaces.WorkspacePinOptions): Promise<void> {\n workspacePinOptionsDecoder.runWithException(options);\n await getData(this).controller.pinWorkspace(this.id, options?.icon);\n await this.refreshReference();\n }\n\n public async unpin(): Promise<void> {\n await getData(this).controller.unpinWorkspace(this.id);\n await this.refreshReference();\n }\n\n public async showLoadingAnimation(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"Not supported in IO Connect Browser\");\n }\n\n await getData(this).controller.showWorkspaceLoadingAnimation(this.id);\n }\n\n public async hideLoadingAnimation(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"Not supported in IO Connect Browser\");\n }\n\n await getData(this).controller.hideWorkspaceLoadingAnimation(this.id);\n }\n\n public async onClosed(callback: (closed: IOConnectWorkspaces.WorkspaceClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n // await this.refreshReference();\n callback({ frameId: payload.frameSummary.id, workspaceId: payload.workspaceSummary.id, frameBounds: payload.frameBounds });\n };\n const config: SubscriptionConfig = {\n action: \"closed\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onHibernated(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (): Promise<void> => {\n await this.refreshReference();\n callback();\n };\n const config: SubscriptionConfig = {\n action: \"hibernated\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onResumed(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (): Promise<void> => {\n await this.refreshReference();\n callback();\n };\n const config: SubscriptionConfig = {\n action: \"resumed\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowAdded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"added\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowRemoved(callback: (removed: { windowId?: string; workspaceId: string; frameId: string }) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const { windowId, workspaceId, frameId } = payload.windowSummary.config;\n callback({ windowId, workspaceId, frameId });\n };\n\n const config: SubscriptionConfig = {\n action: \"removed\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowLoaded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const foundWindow = this.getWindow((win) => {\n return win.id && win.id === payload.windowSummary.config.windowId;\n });\n callback(foundWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"loaded\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowMaximized(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"maximized\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowRestored(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"restored\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onWindowSelected(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n await this.refreshReference();\n const windowParent = this.getBox((parent) => parent.id === payload.windowSummary.parentId);\n\n const foundWindow = windowParent.children.find((child) => {\n\n return child.type === \"window\" && child.elementId === payload.windowSummary.itemId;\n });\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n action: \"selected\",\n eventType: \"window\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onLockConfigurationChanged(callback: (config: WorkspaceLockConfig) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (): Promise<void> => {\n await this.refreshReference();\n callback({\n allowDrop: this.allowDrop,\n allowDropLeft: this.allowDropLeft,\n allowDropTop: this.allowDropTop,\n allowDropRight: this.allowDropRight,\n allowDropBottom: this.allowDropBottom,\n allowSystemHibernation: this.allowSystemHibernation,\n allowExtract: this.allowExtract,\n allowSplitters: this.allowSplitters,\n allowWindowReorder: this.allowWindowReorder,\n allowWorkspaceTabExtract: this.allowWorkspaceTabExtract,\n allowWorkspaceTabReorder: this.allowWorkspaceTabReorder,\n showAddWindowButtons: this.showAddWindowButtons,\n showCloseButton: this.showCloseButton,\n showEjectButtons: this.showEjectButtons,\n showSaveButton: this.showSaveButton,\n showWindowCloseButtons: this.showWindowCloseButtons\n });\n };\n\n const config: SubscriptionConfig = {\n action: \"lock-configuration-changed\",\n eventType: \"workspace\",\n scope: \"workspace\",\n scopeId: id,\n callback: wrappedCallback\n };\n\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n}\n","import { checkThrowCallback, nonEmptyStringDecoder, windowLockConfigDecoder, elementResizeConfigDecoder } from \"../shared//decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\nimport { WindowPrivateData } from \"../types/privateData\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { GDWindow } from \"../types/glue\";\nimport { Row } from \"./row\";\nimport { Column } from \"./column\";\nimport { Group } from \"./group\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Window, PrivateData>();\n\nconst getData = (model: Window): WindowPrivateData => {\n return data.get(model).manager.getWindowData(model);\n};\n\nexport class Window implements IOConnectWorkspaces.WorkspaceWindow {\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public get id(): string {\n return getData(this).config.windowId;\n }\n\n public get elementId(): string {\n return getData(this).id;\n }\n\n public get type(): \"window\" {\n return \"window\";\n }\n\n public get frameId(): string {\n return getData(this).frame.id;\n }\n\n public get workspaceId(): string {\n return getData(this).workspace.id;\n }\n\n public get positionIndex(): number {\n return getData(this).config.positionIndex;\n }\n\n public get isMaximized(): boolean {\n return getData(this).config.isMaximized;\n }\n\n public get isLoaded(): boolean {\n return getData(this).controller.checkIsWindowLoaded(this.id);\n }\n\n public get isSelected(): boolean {\n return getData(this).config.isSelected;\n }\n\n public get focused(): boolean {\n return this.getGdWindow().isFocused;\n }\n\n public get title(): string {\n return getData(this).config.title;\n }\n\n public get allowExtract(): boolean {\n return getData(this).config.allowExtract;\n }\n\n public get allowReorder(): boolean {\n return getData(this).config.allowReorder;\n }\n\n public get showCloseButton(): boolean {\n return getData(this).config.showCloseButton;\n }\n\n public get width(): number {\n return getData(this).config.widthInPx;\n }\n\n public get height(): number {\n return getData(this).config.heightInPx;\n }\n\n public get minWidth(): number {\n return getData(this).config.minWidth;\n }\n\n public get minHeight(): number {\n return getData(this).config.minHeight;\n }\n\n public get maxWidth(): number {\n return getData(this).config.maxWidth;\n }\n\n public get maxHeight(): number {\n return getData(this).config.maxHeight;\n }\n\n public get workspace(): IOConnectWorkspaces.Workspace {\n return getData(this).workspace;\n }\n\n public get frame(): IOConnectWorkspaces.Frame {\n return getData(this).frame;\n }\n\n public get parent(): IOConnectWorkspaces.Workspace | IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group {\n return getData(this).parent;\n }\n\n public get appName(): string {\n return getData(this).config.appName;\n }\n\n public async forceLoad(): Promise<void> {\n if (this.isLoaded) {\n return;\n }\n const controller = getData(this).controller;\n const itemId = getData(this).id;\n\n const windowId = await controller.forceLoadWindow(itemId);\n\n getData(this).config.windowId = windowId;\n\n await this.workspace.refreshReference();\n }\n\n public async focus(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.focusItem(id);\n\n await this.workspace.refreshReference();\n }\n\n public async close(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.closeItem(id);\n\n await getData(this)\n .parent\n .removeChild((child) => child.id === id);\n\n await this.workspace.refreshReference();\n }\n\n public async setTitle(title: string): Promise<void> {\n nonEmptyStringDecoder.runWithException(title);\n\n const itemId = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.setItemTitle(itemId, title);\n\n await this.workspace.refreshReference();\n }\n\n public async maximize(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.maximizeItem(id);\n\n await this.workspace.refreshReference();\n }\n\n public async restore(): Promise<void> {\n const id = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.restoreItem(id);\n\n await this.workspace.refreshReference();\n }\n\n public async eject(): Promise<GDWindow> {\n if (!this.isLoaded) {\n throw new Error(\"Cannot eject this window, because it is not loaded yet\");\n }\n const itemId: string = getData(this).id;\n\n const newWindowId: string = await getData(this).controller.ejectWindow(itemId);\n\n getData(this).config.windowId = newWindowId;\n\n await this.workspace.refreshReference();\n\n return this.getGdWindow();\n }\n\n public getGdWindow(): GDWindow {\n if (!this.isLoaded) {\n throw new Error(\"Cannot fetch this GD window, because the window is not yet loaded\");\n }\n\n const myId = getData(this).config.windowId;\n const controller = getData(this).controller;\n\n return controller.getGDWindow(myId);\n }\n\n public async moveTo(parent: IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group): Promise<void> {\n if (!(parent instanceof Row || parent instanceof Column || parent instanceof Group)) {\n throw new Error(\"Cannot add to the provided parent, because the provided parent is not an instance of Row, Column or Group\");\n }\n\n const myId = getData(this).id;\n const controller = getData(this).controller;\n\n const foundParent = await controller.getParent((p) => p.id === parent.id);\n\n if (!foundParent) {\n throw new Error(\"Cannot move the window to the selected parent, because this parent does not exist.\");\n }\n\n await controller.moveWindowTo(myId, parent.id);\n\n await this.workspace.refreshReference();\n }\n\n public async lock(config?: IOConnectWorkspaces.WorkspaceWindowLockConfig | ((config: IOConnectWorkspaces.WorkspaceWindowLockConfig) => IOConnectWorkspaces.WorkspaceWindowLockConfig)): Promise<void> {\n let lockConfigResult = undefined;\n\n if (typeof config === \"function\") {\n const currentLockConfig = {\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showCloseButton: this.showCloseButton\n };\n lockConfigResult = config(currentLockConfig);\n } else {\n lockConfigResult = config;\n }\n\n const verifiedConfig = lockConfigResult === undefined ? undefined : windowLockConfigDecoder.runWithException(lockConfigResult);\n const windowPlacementId = getData(this).id;\n await getData(this).controller.lockWindow(windowPlacementId, verifiedConfig);\n await this.workspace.refreshReference();\n }\n\n public async setSize(config: IOConnectWorkspaces.ElementResizeConfig): Promise<void> {\n const verifiedConfig = elementResizeConfigDecoder.runWithException(config);\n\n if (!verifiedConfig.width && !verifiedConfig.height) {\n throw new Error(\"Expected either width or height to be passed.\");\n }\n\n const myId = getData(this).id;\n const controller = getData(this).controller;\n\n await controller.resizeItem(myId, {\n height: verifiedConfig.height,\n width: verifiedConfig.width,\n relative: false\n });\n\n await this.workspace.refreshReference();\n }\n\n public async onRemoved(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback();\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"removed\",\n eventType: \"window\",\n scope: \"window\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n\n public async onLockConfigurationChanged(callback:(config:IOConnectWorkspaces.WorkspaceWindowLockConfig)=>void): Promise<IOConnectWorkspaces.Unsubscribe>{\n checkThrowCallback(callback);\n const id = getData(this).id;\n const wrappedCallback = async (): Promise<void> => {\n await this.workspace.refreshReference();\n callback({\n allowExtract: this.allowExtract,\n allowReorder: this.allowReorder,\n showCloseButton: this.showCloseButton\n });\n };\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"lock-configuration-changed\",\n eventType: \"window\",\n scope: \"window\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n}\n","import { checkThrowCallback, nonEmptyStringDecoder, restoreWorkspaceConfigDecoder, workspaceDefinitionDecoder, workspaceBuilderCreateConfigDecoder, resizeConfigDecoder, moveConfigDecoder, frameInitConfigDecoder } from \"../shared/decoders\";\nimport { SubscriptionConfig } from \"../types/subscription\";\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\nimport { FrameStreamData, WorkspaceStreamData, WindowStreamData } from \"../types/protocol\";\nimport { IOConnectWorkspaces } from \"../../workspaces.d\";\nimport { FramePrivateData } from \"../types/privateData\";\nimport { UnsubscribeFunction } from \"callback-registry\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Frame, PrivateData>();\n\nconst getData = (model: Frame): FramePrivateData => {\n return data.get(model).manager.getFrameData(model);\n};\n\nexport class Frame implements IOConnectWorkspaces.Frame {\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public async registerShortcut(shortcut: string, callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n nonEmptyStringDecoder.runWithException(shortcut);\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n const unsubscribe = await getData(this).controller.registerShortcut(shortcut, myId, callback);\n return unsubscribe;\n }\n\n public get id(): string {\n return getData(this).summary.id;\n }\n\n public get isInitialized(): boolean {\n return getData(this).summary.isInitialized;\n }\n\n public getBounds(): Promise<IOConnectWorkspaces.FrameBounds> {\n const myId = getData(this).summary.id;\n\n return getData(this).controller.getFrameBounds(myId);\n }\n\n public async resize(config: IOConnectWorkspaces.ResizeConfig): Promise<void> {\n const validatedConfig = resizeConfigDecoder.runWithException(config);\n const myId = getData(this).summary.id;\n\n return getData(this).controller.resizeItem(myId, validatedConfig);\n }\n\n public async move(config: IOConnectWorkspaces.MoveConfig): Promise<void> {\n const validatedConfig = moveConfigDecoder.runWithException(config);\n\n const myId = getData(this).summary.id;\n return getData(this).controller.moveFrame(myId, validatedConfig);\n }\n\n public focus(): Promise<void> {\n const myId = getData(this).summary.id;\n return getData(this).controller.focusItem(myId);\n }\n\n public async state(): Promise<IOConnectWorkspaces.FrameState> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.getFrameState(myId);\n }\n\n public async minimize(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.changeFrameState(myId, \"minimized\");\n }\n\n public async maximize(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.changeFrameState(myId, \"maximized\");\n }\n\n public async restore(): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n throw new Error(\"State operations are not supported in IO Connect Browser\");\n }\n const myId = getData(this).summary.id;\n return getData(this).controller.changeFrameState(myId, \"normal\");\n }\n\n public close(): Promise<void> {\n const myId = getData(this).summary.id;\n return getData(this).controller.closeItem(myId);\n }\n\n public snapshot(): Promise<IOConnectWorkspaces.FrameSnapshot> {\n const myId = getData(this).summary.id;\n return getData(this).controller.getSnapshot(myId, \"frame\") as Promise<IOConnectWorkspaces.FrameSnapshot>;\n }\n\n public async workspaces(): Promise<IOConnectWorkspaces.Workspace[]> {\n const controller = getData(this).controller;\n return controller.getWorkspacesByFrameId(this.id);\n }\n\n public async getConstraints(): Promise<IOConnectWorkspaces.FrameConstraints> {\n const controller = getData(this).controller;\n const myId = getData(this).summary.id;\n\n return controller.getFrameConstraints(myId);\n }\n\n public async restoreWorkspace(name: string, options?: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<IOConnectWorkspaces.Workspace> {\n nonEmptyStringDecoder.runWithException(name);\n const validatedOptions = restoreWorkspaceConfigDecoder.runWithException(options);\n\n return getData(this).controller.restoreWorkspace(name, validatedOptions);\n }\n\n public createWorkspace(definition: IOConnectWorkspaces.WorkspaceDefinition, config?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<IOConnectWorkspaces.Workspace> {\n const validatedDefinition = workspaceDefinitionDecoder.runWithException(definition);\n const validatedConfig = workspaceBuilderCreateConfigDecoder.runWithException(config);\n\n return getData(this).controller.createWorkspace(validatedDefinition, validatedConfig);\n }\n\n public async init(config: IOConnectWorkspaces.FrameInitializationConfig): Promise<void> {\n frameInitConfigDecoder.runWithException(config);\n\n if (getData(this).summary.isInitialized) {\n throw new Error(\"The frame has already been initialized\");\n }\n return getData(this).controller.initFrame(this.id, config);\n }\n\n public async onClosed(callback: (closed: IOConnectWorkspaces.FrameClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (payload: FrameStreamData): void => {\n callback({ frameId: payload.frameSummary.id, frameBounds: payload.frameBounds });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"closed\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onMaximized(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (): void => {\n callback();\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"maximized\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onMinimized(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (): void => {\n callback();\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"minimized\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onNormal(callback: () => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (): void => {\n callback();\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"normal\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWorkspaceOpened(callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await getData(this).controller.transformStreamPayloadToWorkspace(payload);\n callback(workspace);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"opened\",\n eventType: \"workspace\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWorkspaceSelected(callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await getData(this).controller.getWorkspaceById(payload.workspaceSummary.id);\n callback(workspace);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"selected\",\n eventType: \"workspace\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWorkspaceClosed(callback: (closed: IOConnectWorkspaces.WorkspaceClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (payload: WorkspaceStreamData): void => {\n callback({ frameId: payload.frameSummary.id, workspaceId: payload.workspaceSummary.id, frameBounds: payload.frameBounds });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"closed\",\n eventType: \"workspace\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWindowAdded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const foundParent = await getData(this).controller.getParent((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = foundParent.children.find((child) => child.type === \"window\" && child.positionIndex === payload.windowSummary.config.positionIndex);\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"added\",\n eventType: \"window\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWindowRemoved(callback: (removed: { windowId?: string; workspaceId: string; frameId: string }) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = (payload: WindowStreamData): void => {\n const { windowId, workspaceId, frameId } = payload.windowSummary.config;\n callback({ windowId, workspaceId, frameId });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"removed\",\n eventType: \"window\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onWindowLoaded(callback: (window: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myId = getData(this).summary.id;\n\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const foundParent = await getData(this).controller.getParent((parent) => {\n return parent.id === payload.windowSummary.parentId;\n });\n const foundWindow = foundParent.children.find((child) => child.type === \"window\" && child.positionIndex === payload.windowSummary.config.positionIndex);\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"loaded\",\n eventType: \"window\",\n scope: \"frame\"\n };\n const unsubscribe = await getData(this).controller.processLocalSubscription(config, myId);\n return unsubscribe;\n }\n\n public async onInitializationRequested(callback: (context?: IOConnectWorkspaces.FrameInitializationContext) => void): Promise<UnsubscribeFunction> {\n checkThrowCallback(callback);\n\n if (!this.isInitialized) {\n callback(getData(this).summary.initializationContext);\n }\n\n return () => {};\n }\n\n public async onFocusChanged(callback: (data: IOConnectWorkspaces.FrameFocusChangedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> {\n checkThrowCallback(callback);\n const myData = getData(this);\n const { id } = myData.summary;\n\n const wrappedCallback = (args: FrameStreamData): void => {\n callback({ isFocused: args.frameSummary.isFocused });\n };\n\n const config: SubscriptionConfig = {\n callback: wrappedCallback,\n action: \"focus\",\n eventType: \"frame\",\n scope: \"frame\"\n };\n const unsubscribe = await myData.controller.processLocalSubscription(config, id);\n return unsubscribe;\n }\n}\n","import { Row } from \"../models/row\";\nimport { Column } from \"../models/column\";\nimport { Group } from \"../models/group\";\nimport { ParentPrivateData, WorkspacePrivateData, WindowPrivateData, FramePrivateData, RemapChildData, RemapWorkspaceData } from \"../types/privateData\";\nimport { Workspace } from \"../models/workspace\";\nimport { Window } from \"../models/window\";\nimport { Frame } from \"../models/frame\";\nimport { SwimlaneWindowSnapshotConfig, ParentSnapshotConfig, FrameSummaryResult } from \"../types/protocol\";\nimport { Child, SubParentTypes } from \"../types/builders\";\n\nexport class PrivateDataManager {\n private readonly parentsData = new WeakMap<SubParentTypes, ParentPrivateData>();\n private readonly workspacesData = new WeakMap<Workspace, WorkspacePrivateData>();\n private readonly windowsData = new WeakMap<Window, WindowPrivateData>();\n private readonly framesData = new WeakMap<Frame, FramePrivateData>();\n\n public deleteData<T>(model: T): void {\n if (model instanceof Window) {\n this.windowsData.delete(model);\n }\n\n if (model instanceof Workspace) {\n this.workspacesData.delete(model);\n }\n\n if (model instanceof Row || model instanceof Column || model instanceof Group) {\n this.parentsData.delete(model);\n }\n\n if (model instanceof Frame) {\n this.framesData.delete(model);\n }\n }\n\n public setWindowData(model: Window, data: WindowPrivateData): void {\n this.windowsData.set(model, data);\n }\n\n public setWorkspaceData(model: Workspace, data: WorkspacePrivateData): void {\n this.workspacesData.set(model, data);\n }\n\n public setParentData(model: SubParentTypes, data: ParentPrivateData): void {\n this.parentsData.set(model, data);\n }\n\n public setFrameData(model: Frame, data: FramePrivateData): void {\n this.framesData.set(model, data);\n }\n\n public getWindowData(model: Window): WindowPrivateData {\n return this.windowsData.get(model);\n }\n\n public getWorkspaceData(model: Workspace): WorkspacePrivateData {\n return this.workspacesData.get(model);\n }\n\n public getParentData(model: SubParentTypes): ParentPrivateData {\n return this.parentsData.get(model);\n }\n\n public getFrameData(model: Frame): FramePrivateData {\n return this.framesData.get(model);\n }\n\n public remapChild(model: Child, newData: RemapChildData): void {\n if (model instanceof Window) {\n const data = this.windowsData.get(model);\n data.parent = newData.parent || data.parent;\n data.config = newData.config as SwimlaneWindowSnapshotConfig || data.config;\n }\n\n if (model instanceof Row || model instanceof Column || model instanceof Group) {\n const data = this.parentsData.get(model);\n data.parent = newData.parent || data.parent;\n data.config = newData.config as ParentSnapshotConfig || data.config;\n data.children = newData.children || data.children;\n }\n }\n\n public remapFrame(model: Frame, newData: FrameSummaryResult): void {\n const data = this.framesData.get(model);\n data.summary = newData;\n }\n\n public remapWorkspace(model: Workspace, newData: RemapWorkspaceData): void {\n const data = this.workspacesData.get(model);\n data.frame = newData.frame || data.frame;\n data.config = newData.config || data.config;\n data.children = newData.children || data.children;\n }\n}\n","import { Workspace } from \"../workspace\";\nimport { ParentBuilder } from \"../../builders/parentBuilder\";\nimport { strictParentDefinitionDecoder, swimlaneWindowDefinitionDecoder, checkThrowCallback } from \"../../shared/decoders\";\nimport { SubParent, AllParentTypes, Child, SubParentTypes, AllParent, ContainerLockConfig } from \"../../types/builders\";\nimport { PrivateDataManager } from \"../../shared/privateDataManager\";\nimport { ParentPrivateData, WorkspacePrivateData } from \"../../types/privateData\";\nimport { Window } from \"../../models/window\";\nimport { IOConnectWorkspaces } from \"../../../workspaces\";\nimport { Group } from \"../group\";\nimport { Row } from \"../row\";\nimport { Column } from \"../column\";\nimport { ColumnSnapshotConfig, GroupSnapshotConfig, RowSnapshotConfig } from \"../../types/protocol\";\nimport { SubscriptionConfig } from \"../../types/subscription\";\n\ninterface PrivateData {\n manager: PrivateDataManager;\n}\n\nconst data = new WeakMap<Base, PrivateData>();\n\nconst getData = (base: Base, model: AllParentTypes): WorkspacePrivateData | ParentPrivateData => {\n const manager = data.get(base).manager;\n\n if (model instanceof Workspace) {\n return manager.getWorkspaceData(model);\n }\n\n return data.get(base).manager.getParentData(model as SubParentTypes);\n};\n\nexport class Base {\n public frameId: string;\n public workspaceId: string;\n public positionIndex: number;\n\n constructor(dataManager: PrivateDataManager) {\n data.set(this, { manager: dataManager });\n }\n\n public getId(model: AllParentTypes): string {\n return getData(this, model).id;\n }\n\n public getPositionIndex(model: AllParentTypes): number {\n return getData(this, model).config.positionIndex;\n }\n\n public getWorkspaceId(model: AllParentTypes): string {\n const privateData = getData(this, model) as ParentPrivateData;\n return privateData.config.workspaceId || privateData.workspace.id;\n }\n\n public getFrameId(model: AllParentTypes): string {\n return getData(this, model).frame.id;\n }\n\n public getAllChildren(model: AllParentTypes, predicate?: (child: Child) => boolean): Child[] {\n checkThrowCallback(predicate, true);\n const children = getData(this, model).children;\n\n if (typeof predicate === \"undefined\") {\n return children;\n }\n\n return children.filter(predicate);\n }\n\n public getMyParent(model: AllParentTypes): AllParentTypes {\n if (model instanceof Workspace) {\n return model;\n }\n return (getData(this, model) as ParentPrivateData).parent;\n }\n\n public getMyFrame(model: AllParentTypes): IOConnectWorkspaces.Frame {\n return getData(this, model).frame;\n }\n\n public getMyWorkspace(model: AllParentTypes): Workspace {\n if (model instanceof Workspace) {\n return model;\n }\n return (getData(this, model) as ParentPrivateData).workspace;\n }\n\n public async addWindow(model: AllParentTypes, definition: IOConnectWorkspaces.WorkspaceWindowDefinition, parentType: AllParent): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n if (!definition.appName && !definition.windowId) {\n throw new Error(\"The window definition should contain either an appName or a windowId\");\n }\n\n const validatedDefinition = swimlaneWindowDefinitionDecoder.runWithException(definition);\n const controller = getData(this, model).controller;\n\n const operationResult = await controller.add(\"window\", getData(this, model).id, parentType, validatedDefinition);\n\n if (model instanceof Workspace) {\n await model.refreshReference();\n return model.getWindow(w => w.elementId === operationResult.itemId);\n }\n\n const myWorkspace = this.getMyWorkspace(model);\n await myWorkspace.refreshReference();\n\n return myWorkspace.getWindow(w => w.elementId === operationResult.itemId);\n }\n\n public async addParent<T>(model: AllParentTypes, typeToAdd: SubParent, parentType: AllParent, definition?: IOConnectWorkspaces.BoxDefinition | ParentBuilder): Promise<T> {\n const parentDefinition = this.transformDefinition(typeToAdd, definition);\n const controller = getData(this, model).controller;\n\n const newParentId = (await controller.add(\"container\", getData(this, model).id, parentType, parentDefinition)).itemId;\n\n if (model instanceof Workspace) {\n await model.refreshReference();\n return model.getBox((parent) => parent.id === newParentId) as unknown as T;\n }\n\n const myWorkspace = this.getMyWorkspace(model);\n await myWorkspace.refreshReference();\n\n return myWorkspace.getBox((parent) => parent.id === newParentId) as unknown as T;\n }\n\n public async removeChild(model: AllParentTypes, predicate: (child: Child) => boolean): Promise<void> {\n checkThrowCallback(predicate);\n const child = this.getAllChildren(model).find(predicate);\n if (!child) {\n return;\n }\n\n await child.close();\n\n if (model instanceof Workspace) {\n\n await model.refreshReference();\n return;\n }\n\n await this.getMyWorkspace(model).refreshReference();\n }\n\n public async maximize(model: SubParentTypes): Promise<void> {\n const { controller, id } = getData(this, model);\n\n await controller.maximizeItem(id);\n\n await this.getMyWorkspace(model.parent).refreshReference();\n }\n\n public async restore(model: SubParentTypes): Promise<void> {\n const { controller, id } = getData(this, model);\n\n await controller.restoreItem(id);\n\n await this.getMyWorkspace(model.parent).refreshReference();\n }\n\n public async close(model: SubParentTypes): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n\n const controller = getData(this, model).controller;\n\n await controller.closeItem(modelData.id);\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async lockContainer(model: SubParentTypes, config?: ContainerLockConfig): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n\n const controller = getData(this, model).controller;\n\n await controller.lockContainer(modelData.id, model.type, config);\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public getAllowDrop(model: SubParentTypes): boolean {\n return getData(this, model).config.allowDrop;\n }\n\n public getAllowDropLeft(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropLeft is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropLeft;\n }\n\n public getAllowDropRight(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropRight is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropRight;\n }\n\n public getAllowDropTop(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropTop is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropTop;\n }\n\n public getAllowDropBottom(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropBottom is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropBottom;\n }\n\n public getAllowDropHeader(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Property allowDropHeader is available only for groups and not on ${model.type} ${model.id}`);\n }\n return privateData.config.allowDropHeader;\n }\n\n public getAllowSplitters(model: Row | Column): boolean {\n const privateData = getData(this, model);\n\n if (privateData.type === \"group\") {\n throw new Error(`Cannot get allow splitters from private data ${privateData.type}`);\n }\n\n return privateData.config.allowSplitters;\n }\n\n public getAllowExtract(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get allow extract from private data ${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.allowExtract;\n }\n\n public getAllowReorder(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get allow extract from private data ${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.allowReorder;\n }\n\n public getShowMaximizeButton(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get show maximize button from private data${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.showMaximizeButton;\n }\n\n public getShowEjectButton(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get show eject button from private data${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.showEjectButton;\n }\n\n public getShowAddWindowButton(model: Group): boolean {\n const privateData = getData(this, model);\n if (privateData.type !== \"group\") {\n throw new Error(`Cannot get add window button from private data${privateData.type} with config ${privateData.type !== \"workspace\" ? privateData.config.type : \"\"}`);\n }\n return privateData.config.showAddWindowButton;\n }\n\n public getMinWidth(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.minWidth;\n }\n\n public getMaxWidth(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.maxWidth;\n }\n\n public getMinHeight(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.minHeight;\n }\n\n public getMaxHeight(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.maxHeight;\n }\n\n public getWidthInPx(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.widthInPx;\n }\n\n public getHeightInPx(model: SubParentTypes): number {\n const privateData = getData(this, model);\n\n return privateData.config.heightInPx;\n }\n\n public getIsPinned(model: Column | Row): boolean {\n const privateData = getData(this, model);\n\n return (privateData.config as RowSnapshotConfig | ColumnSnapshotConfig).isPinned;\n }\n\n public getIsMaximized(model: Column | Row | Group): boolean {\n const privateData = getData(this, model);\n\n return (privateData.config as RowSnapshotConfig | ColumnSnapshotConfig | GroupSnapshotConfig).isMaximized;\n }\n\n public getMaximizationBoundary(model: Column | Row): boolean {\n const privateData = getData(this, model);\n\n return (privateData.config as RowSnapshotConfig | ColumnSnapshotConfig).maximizationBoundary;\n }\n\n public async setHeight(model: Row, height: number): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.resizeItem(id, {\n height\n });\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async setWidth(model: Column, width: number): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.resizeItem(id, {\n width\n });\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async setSize(model: Group, width?: number, height?: number): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.resizeItem(id, {\n width,\n height\n });\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async setMaximizationBoundary(model: Row | Column, config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.setMaximizationBoundary(id, config);\n\n await this.getMyWorkspace(modelData.parent).refreshReference();\n }\n\n public async bundleTo(model: Group, type: \"row\" | \"column\") {\n const modelData = getData(this, model) as ParentPrivateData;\n const { controller, id } = modelData;\n\n await controller.bundleItemTo(type, id);\n }\n\n public async processLocalSubscription(model: SubParentTypes, subscriptionConfig: SubscriptionConfig): Promise<IOConnectWorkspaces.Unsubscribe> {\n return getData(this, model).controller.processLocalSubscription(subscriptionConfig, this.getId(model))\n }\n\n private transformDefinition(type: \"group\" | \"row\" | \"column\", definition?: IOConnectWorkspaces.BoxDefinition | ParentBuilder): IOConnectWorkspaces.BoxDefinition {\n let parentDefinition: IOConnectWorkspaces.BoxDefinition;\n\n if (typeof definition === \"undefined\") {\n parentDefinition = { type, children: [] };\n } else if (definition instanceof ParentBuilder) {\n parentDefinition = definition.serialize();\n } else {\n if (typeof definition.type === \"undefined\") {\n definition.type = type;\n }\n parentDefinition = strictParentDefinitionDecoder.runWithException(definition);\n parentDefinition.children = parentDefinition.children || [];\n }\n\n return parentDefinition;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Workspace } from \"../models/workspace\";\r\nimport { WorkspaceSnapshotResult, WorkspaceCreateConfigProtocol, FrameSummaryResult, AddItemResult, WorkspaceSummariesResult, WorkspaceSummaryResult, SimpleWindowOperationSuccessResult, FrameSnapshotResult, WorkspaceStreamData, GetPlatformFrameIdResult, OperationCheckResult } from \"../types/protocol\";\r\nimport { OPERATIONS } from \"../communication/constants\";\r\nimport { FrameCreateConfig, WorkspaceIoCCreateConfig, WindowCreateConfig, ParentCreateConfig } from \"../types/ioc\";\r\nimport { IoC } from \"../shared/ioc\";\r\nimport { Bridge } from \"../communication/bridge\";\r\nimport { GDWindow, WindowsAPI, ContextsAPI, LayoutsAPI } from \"../types/glue\";\r\nimport { IOConnectWorkspaces } from \"../../workspaces\";\r\nimport { Frame } from \"../models/frame\";\r\nimport { RefreshChildrenConfig } from \"../types/privateData\";\r\nimport { AllParentTypes, Child, ContainerLockConfig, SubParentTypes } from \"../types/builders\";\r\nimport { PrivateDataManager } from \"../shared/privateDataManager\";\r\nimport { Window } from \"../models/window\";\r\nimport { UnsubscribeFunction } from \"callback-registry\";\r\n\r\nexport class BaseController {\r\n\r\n constructor(\r\n private readonly ioc: IoC,\r\n private readonly windows: WindowsAPI,\r\n private readonly contexts: ContextsAPI,\r\n private readonly layouts: LayoutsAPI,\r\n ) { }\r\n\r\n private get bridge(): Bridge {\r\n return this.ioc.bridge;\r\n }\r\n\r\n private get privateDataManager(): PrivateDataManager {\r\n return this.ioc.privateDataManager;\r\n }\r\n\r\n public checkIsWindowLoaded(windowId: string): boolean {\r\n return (!!windowId) && this.windows.list().some((win) => win.id === windowId);\r\n }\r\n\r\n public async createWorkspace(createConfig: WorkspaceCreateConfigProtocol): Promise<Workspace> {\r\n const snapshot = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.createWorkspace.name, createConfig);\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: snapshot.frameSummary\r\n };\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n return this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n }\r\n\r\n public async createEmptyFrame(definition: IOConnectWorkspaces.EmptyFrameDefinition): Promise<Frame> {\r\n const frameSummary = await this.bridge.send<FrameSummaryResult>(OPERATIONS.createFrame.name, definition);\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n\r\n return this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n }\r\n\r\n public async initFrame(frameId: string, config: IOConnectWorkspaces.FrameInitializationConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.initFrame.name, { frameId, ...config });\r\n }\r\n\r\n public async restoreWorkspace(name: string, options: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<Workspace> {\r\n const snapshot = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.openWorkspace.name, { name, restoreOptions: options });\r\n\r\n const frameSummary = await this.bridge.send<FrameSummaryResult>(OPERATIONS.getFrameSummary.name, { itemId: snapshot.config.frameId });\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n return this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n }\r\n\r\n public async add(type: \"container\" | \"window\", parentId: string, parentType: \"row\" | \"column\" | \"group\" | \"workspace\", definition: IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition): Promise<AddItemResult> {\r\n let operationName: string;\r\n const operationArgs = { definition, parentId, parentType };\r\n\r\n if (type === \"window\") {\r\n operationName = OPERATIONS.addWindow.name;\r\n } else if (type === \"container\") {\r\n operationName = OPERATIONS.addContainer.name;\r\n } else {\r\n throw new Error(`Unrecognized add type: ${type}`);\r\n }\r\n\r\n return await this.bridge.send<AddItemResult>(operationName, operationArgs);\r\n }\r\n\r\n public async getFrame(windowId: string): Promise<Frame> {\r\n const frameSummary = await this.bridge.send<FrameSummaryResult>(OPERATIONS.getFrameSummary.name, { itemId: windowId });\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n return this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n }\r\n\r\n public getFrames(allFrameSummaries: FrameSummaryResult[], predicate?: (frame: Frame) => boolean): Frame[] {\r\n\r\n return allFrameSummaries.reduce<Frame[]>((frames, frameSummary) => {\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: frameSummary\r\n };\r\n const frameToCheck = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n if (!predicate || predicate(frameToCheck)) {\r\n frames.push(frameToCheck);\r\n }\r\n\r\n return frames;\r\n }, []);\r\n }\r\n\r\n public getAllWorkspaceSummaries(...bridgeResults: WorkspaceSummariesResult[]): IOConnectWorkspaces.WorkspaceSummary[] {\r\n\r\n const allSummaries = bridgeResults.reduce<WorkspaceSummaryResult[]>((summaries, summaryResult) => {\r\n summaries.push(...summaryResult.summaries);\r\n return summaries;\r\n }, []);\r\n\r\n return allSummaries.map<IOConnectWorkspaces.WorkspaceSummary>((summary) => {\r\n\r\n return Object.assign(\r\n {},\r\n { id: summary.id, width: summary.config.widthInPx, height: summary.config.heightInPx },\r\n summary.config\r\n );\r\n });\r\n }\r\n\r\n public handleOnSaved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\r\n const wrappedCallback = (layout: IOConnectWorkspaces.WorkspaceLayout): void => {\r\n if (layout.type !== \"Workspace\") {\r\n return;\r\n }\r\n\r\n callback(layout);\r\n };\r\n\r\n const addedUnSub: UnsubscribeFunction = this.layouts.onAdded(wrappedCallback);\r\n const changedUnSub: UnsubscribeFunction = this.layouts.onChanged(wrappedCallback);\r\n\r\n return (): void => {\r\n addedUnSub();\r\n changedUnSub();\r\n };\r\n }\r\n\r\n public handleOnRemoved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\r\n const wrappedCallback = (layout: IOConnectWorkspaces.WorkspaceLayout): void => {\r\n if (layout.type !== \"Workspace\") {\r\n return;\r\n }\r\n\r\n callback(layout);\r\n };\r\n\r\n return this.layouts.onRemoved(wrappedCallback);\r\n }\r\n\r\n public async importLayouts(layouts: IOConnectWorkspaces.WorkspaceLayout[], mode: \"replace\" | \"merge\"): Promise<void> {\r\n await this.layouts.import(layouts, mode);\r\n }\r\n\r\n public async transformStreamPayloadToWorkspace(payload: WorkspaceStreamData): Promise<Workspace> {\r\n const frameConfig: FrameCreateConfig = {\r\n summary: payload.frameSummary\r\n };\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const snapshot = payload.workspaceSnapshot || (await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.getWorkspaceSnapshot.name, { itemId: payload.workspaceSummary.id }));\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n const workspace = this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n\r\n return workspace;\r\n }\r\n\r\n public async fetchWorkspace(itemId: string): Promise<Workspace> {\r\n\r\n const snapshot = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.getWorkspaceSnapshot.name, { itemId });\r\n\r\n const frameConfig: FrameCreateConfig = {\r\n summary: snapshot.frameSummary\r\n };\r\n\r\n const frame = this.ioc.getModel<\"frame\">(\"frame\", frameConfig);\r\n\r\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\r\n\r\n return this.ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\r\n\r\n }\r\n\r\n public async bundleWorkspaceTo(type: \"row\" | \"column\", workspaceId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.bundleWorkspace.name, { type, workspaceId });\r\n }\r\n\r\n public async bundleItemTo(type: \"row\" | \"column\", itemId: string): Promise<void> {\r\n const isSupported = await this.isOperationSupported(OPERATIONS.bundleItem.name);\r\n\r\n if (!isSupported) {\r\n throw new Error(`Operation ${OPERATIONS.bundleItem.name} is not supported. Ensure that you are running the latest version of all packages`);\r\n }\r\n\r\n await this.bridge.send(OPERATIONS.bundleItem.name, { type, itemId });\r\n }\r\n\r\n public getWorkspaceContext(workspaceId: string): Promise<any> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.get(contextName);\r\n }\r\n\r\n public setWorkspaceContext(workspaceId: string, data: any): Promise<void> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.set(contextName, data);\r\n }\r\n\r\n public updateWorkspaceContext(workspaceId: string, data: any): Promise<void> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.update(contextName, data);\r\n }\r\n\r\n public subscribeWorkspaceContextUpdated(workspaceId: string, callback: (data: any) => void): Promise<UnsubscribeFunction> {\r\n const contextName = `___workspace___${workspaceId}`;\r\n return this.contexts.subscribe(contextName, callback);\r\n }\r\n\r\n public async restoreItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.restoreItem.name, { itemId });\r\n }\r\n\r\n public async maximizeItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.maximizeItem.name, { itemId });\r\n }\r\n\r\n public async focusItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.focusItem.name, { itemId });\r\n }\r\n\r\n public async closeItem(itemId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.closeItem.name, { itemId });\r\n }\r\n\r\n public async resizeItem(itemId: string, config: IOConnectWorkspaces.ResizeConfig): Promise<void> {\r\n await this.bridge.send(OPERATIONS.resizeItem.name, Object.assign({}, { itemId }, config));\r\n }\r\n\r\n public async setMaximizationBoundary(itemId: string, config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\r\n await this.bridge.send(OPERATIONS.setMaximizationBoundary.name, Object.assign({}, { itemId }, config));\r\n }\r\n\r\n public async showWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.showLoadingAnimation.name, { itemId: workspaceId, type: \"workspace\" });\r\n }\r\n\r\n public async hideWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.hideLoadingAnimation.name, { itemId: workspaceId, type: \"workspace\" });\r\n }\r\n\r\n public async moveFrame(itemId: string, config: IOConnectWorkspaces.MoveConfig): Promise<void> {\r\n await this.bridge.send(OPERATIONS.moveFrame.name, Object.assign({}, { itemId }, config));\r\n }\r\n\r\n public getGDWindow(itemId: string): GDWindow {\r\n return this.windows.list().find((gdWindow) => gdWindow.id === itemId);\r\n }\r\n\r\n public async forceLoadWindow(itemId: string): Promise<string> {\r\n const controlResult = await this.bridge.send<SimpleWindowOperationSuccessResult>(OPERATIONS.forceLoadWindow.name, { itemId });\r\n\r\n return controlResult.windowId;\r\n }\r\n\r\n public async ejectWindow(itemId: string): Promise<SimpleWindowOperationSuccessResult> {\r\n return await this.bridge.send<SimpleWindowOperationSuccessResult>(OPERATIONS.ejectWindow.name, { itemId });\r\n }\r\n\r\n public async moveWindowTo(itemId: string, newParentId: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.moveWindowTo.name, { itemId, containerId: newParentId });\r\n }\r\n\r\n public async getSnapshot(itemId: string, type: \"workspace\" | \"frame\"): Promise<WorkspaceSnapshotResult | FrameSnapshotResult> {\r\n let result: WorkspaceSnapshotResult | FrameSnapshotResult;\r\n\r\n if (type === \"workspace\") {\r\n result = await this.bridge.send<WorkspaceSnapshotResult>(OPERATIONS.getWorkspaceSnapshot.name, { itemId });\r\n } else if (type === \"frame\") {\r\n result = await this.bridge.send<FrameSnapshotResult>(OPERATIONS.getFrameSnapshot.name, { itemId });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n public async setItemTitle(itemId: string, title: string): Promise<void> {\r\n await this.bridge.send(OPERATIONS.setItemTitle.name, { itemId, title });\r\n }\r\n\r\n public refreshChildren(config: RefreshChildrenConfig): Child[] {\r\n const { parent, children, existingChildren, workspace } = config;\r\n if (parent instanceof Window || (parent as IOConnectWorkspaces.WorkspaceWindow).type === \"window\") {\r\n return;\r\n }\r\n\r\n const newChildren = children.map((newChildSnapshot) => {\r\n let childToAdd = existingChildren.find((child) => {\r\n return child.type === \"window\" ? child.elementId === newChildSnapshot.id : child.id === newChildSnapshot.id;\r\n });\r\n\r\n if (childToAdd) {\r\n this.privateDataManager.remapChild(childToAdd, {\r\n parent: parent as AllParentTypes,\r\n children: [],\r\n config: newChildSnapshot.config\r\n });\r\n } else {\r\n let createConfig: WindowCreateConfig | ParentCreateConfig;\r\n if (newChildSnapshot.type === \"window\") {\r\n createConfig = {\r\n id: newChildSnapshot.id,\r\n parent: parent as AllParentTypes,\r\n frame: workspace.frame,\r\n workspace,\r\n config: newChildSnapshot.config,\r\n } as WindowCreateConfig;\r\n } else {\r\n createConfig = {\r\n id: newChildSnapshot.id,\r\n parent: parent as AllParentTypes,\r\n frame: workspace.frame,\r\n workspace,\r\n config: newChildSnapshot.config,\r\n children: []\r\n } as ParentCreateConfig;\r\n }\r\n\r\n childToAdd = this.ioc.getModel<\"child\">(newChildSnapshot.type, createConfig);\r\n }\r\n\r\n if (newChildSnapshot.type !== \"window\") {\r\n this.refreshChildren({\r\n workspace, existingChildren,\r\n children: newChildSnapshot.children,\r\n parent: childToAdd\r\n });\r\n }\r\n\r\n return childToAdd;\r\n });\r\n\r\n if (parent instanceof Workspace) {\r\n return newChildren;\r\n } else {\r\n this.privateDataManager.remapChild(parent as SubParentTypes, { children: newChildren });\r\n return newChildren;\r\n }\r\n }\r\n\r\n public iterateFindChild(children: Child[], predicate: (child: Child) => boolean): Child {\r\n let foundChild = children.find((child) => predicate(child));\r\n\r\n if (foundChild) {\r\n return foundChild;\r\n }\r\n\r\n children.some((child) => {\r\n if (child instanceof Window) {\r\n return false;\r\n }\r\n\r\n foundChild = this.iterateFindChild((child as SubParentTypes).children, predicate);\r\n\r\n if (foundChild) {\r\n return true;\r\n }\r\n });\r\n\r\n return foundChild;\r\n }\r\n\r\n public iterateFilterChildren(children: Child[], predicate: (child: Child) => boolean): Child[] {\r\n const foundChildren = children.filter((child) => predicate(child));\r\n\r\n const grandChildren = children.reduce<Child[]>((innerFound, child) => {\r\n if (child instanceof Window) {\r\n return innerFound;\r\n }\r\n\r\n innerFound.push(...this.iterateFilterChildren((child as SubParentTypes).children, predicate));\r\n\r\n return innerFound;\r\n }, []);\r\n\r\n foundChildren.push(...grandChildren);\r\n\r\n return foundChildren;\r\n }\r\n\r\n public notifyWindowAdded(windowId: string): Promise<void> {\r\n return new Promise((resolve) => {\r\n\r\n const alreadyPresent: boolean = this.windows.list().some((win) => win.id === windowId);\r\n\r\n if (alreadyPresent) {\r\n return resolve();\r\n }\r\n\r\n const unsubscribe: UnsubscribeFunction = this.windows.onWindowAdded((win) => {\r\n\r\n if (win.id !== windowId) {\r\n return;\r\n }\r\n\r\n if (unsubscribe) {\r\n unsubscribe();\r\n }\r\n\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n public async hibernateWorkspace(workspaceId: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.hibernateWorkspace.name, { workspaceId });\r\n }\r\n\r\n public async resumeWorkspace(workspaceId: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.resumeWorkspace.name, { workspaceId });\r\n }\r\n\r\n public async lockWorkspace(workspaceId: string, config?: IOConnectWorkspaces.WorkspaceLockConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.lockWorkspace.name, { workspaceId, config });\r\n }\r\n\r\n public async lockWindow(windowPlacementId: string, config?: IOConnectWorkspaces.WorkspaceWindowLockConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.lockWindow.name, { windowPlacementId, config });\r\n }\r\n\r\n public async lockContainer(itemId: string, type: SubParentTypes[\"type\"], config?: ContainerLockConfig): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.lockContainer.name, { itemId, type, config });\r\n }\r\n\r\n public async pinWorkspace(workspaceId: string, icon?: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.pinWorkspace.name, { workspaceId, icon });\r\n }\r\n\r\n public async unpinWorkspace(workspaceId: string): Promise<void> {\r\n await this.bridge.send<void>(OPERATIONS.unpinWorkspace.name, { workspaceId });\r\n }\r\n\r\n public async getWorkspaceIcon(workspaceId: string): Promise<string> {\r\n const result = await this.bridge.send<{ icon: string }>(OPERATIONS.getWorkspaceIcon.name, { workspaceId });\r\n return result.icon;\r\n }\r\n\r\n public setWorkspaceIcon(workspaceId: string, icon: string): Promise<void> {\r\n return this.bridge.send<void>(OPERATIONS.setWorkspaceIcon.name, { workspaceId, icon });\r\n }\r\n\r\n public async getPlatformFrameId(): Promise<GetPlatformFrameIdResult> {\r\n try {\r\n const result = await this.bridge.send<GetPlatformFrameIdResult>(OPERATIONS.getPlatformFrameId.name, {});\r\n\r\n return result;\r\n } catch (error) {\r\n return {}\r\n }\r\n }\r\n\r\n public async isOperationSupported(operation: string): Promise<OperationCheckResult> {\r\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\r\n\r\n if (desktopGlobal) {\r\n // operation check is not supported in Glue42Desktop\r\n return { isSupported: true };\r\n }\r\n return await this.bridge.send<OperationCheckResult>(OPERATIONS.operationCheck.name, { operation });\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Bridge } from \"../communication/bridge\";\nimport { IsWindowInSwimlaneResult, WorkspaceCreateConfigProtocol, WorkspaceSnapshotResult, FrameSummariesResult, WorkspaceSummariesResult, LayoutSummariesResult, ExportedLayoutsResult, FrameSnapshotResult, AddItemResult, WindowStreamData, FrameStateResult, FrameBoundsResult, WorkspaceStreamData } from \"../types/protocol\";\nimport { OPERATIONS } from \"../communication/constants\";\nimport { SubscriptionConfig, WorkspaceEventType, WorkspaceEventAction } from \"../types/subscription\";\nimport { Workspace } from \"../models/workspace\";\nimport { Frame } from \"../models/frame\";\nimport { Child, ContainerLockConfig, SubParentTypes } from \"../types/builders\";\nimport { RefreshChildrenConfig } from \"../types/privateData\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspacesController } from \"../types/controller\";\nimport { GDWindow } from \"../types/glue\";\nimport { BaseController } from \"./base\";\nimport { UnsubscribeFunction } from \"callback-registry\";\nimport { ShortcutsController } from \"./shortcuts\";\n\nexport class MainController implements WorkspacesController {\n\n constructor(\n private readonly bridge: Bridge,\n private readonly base: BaseController,\n private readonly shortcutsController: ShortcutsController\n ) { }\n\n public checkIsWindowLoaded(windowId: string): boolean {\n return this.base.checkIsWindowLoaded(windowId);\n }\n\n public async checkIsInSwimlane(windowId: string): Promise<boolean> {\n\n const controlResult = await this.bridge.send<IsWindowInSwimlaneResult>(OPERATIONS.isWindowInWorkspace.name, { itemId: windowId });\n\n return controlResult.inWorkspace;\n }\n\n public async createWorkspace(definition: IOConnectWorkspaces.WorkspaceDefinition, saveConfig?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<Workspace> {\n const createConfig: WorkspaceCreateConfigProtocol = Object.assign({}, definition, { saveConfig });\n\n return await this.base.createWorkspace(createConfig);\n }\n\n public async createEmptyFrame(definition: IOConnectWorkspaces.EmptyFrameDefinition): Promise<Frame> {\n return await this.base.createEmptyFrame(definition);\n }\n\n public async initFrame(frameId: string, config: IOConnectWorkspaces.FrameInitializationConfig): Promise<void> {\n return this.base.initFrame(frameId, config);\n }\n\n public async restoreWorkspace(name: string, options?: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<Workspace> {\n const allLayouts = await this.getLayoutSummaries();\n\n const layoutExists = allLayouts.some((summary) => summary.name === name);\n\n if (!layoutExists) {\n throw new Error(`This layout: ${name} cannot be restored, because it doesn't exist.`);\n }\n\n if (options?.frameId) {\n const allFrameSummaries = await this.bridge.send<FrameSummariesResult>(OPERATIONS.getAllFramesSummaries.name);\n\n const foundMatchingFrame = allFrameSummaries.summaries.some((summary) => summary.id === options.frameId);\n\n if (!foundMatchingFrame) {\n throw new Error(`Cannot reuse the frame with id: ${options.frameId}, because there is no frame with that ID found`);\n }\n }\n\n return await this.base.restoreWorkspace(name, options);\n }\n\n public async add(type: \"container\" | \"window\", parentId: string, parentType: \"row\" | \"column\" | \"group\" | \"workspace\", definition: IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition): Promise<AddItemResult> {\n return await this.base.add(type, parentId, parentType, definition);\n }\n\n public processLocalSubscription(config: SubscriptionConfig, levelId: string): Promise<IOConnectWorkspaces.Unsubscribe> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n return desktopGlobal ?\n this.handleEnterpriseLocalSubscription(config, levelId) :\n this.handleCoreLocalSubscription(config, levelId);\n }\n\n public processGlobalSubscription(callback: (callbackData: unknown) => void | Promise<void>, eventType: WorkspaceEventType, action: WorkspaceEventAction): Promise<IOConnectWorkspaces.Unsubscribe> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n return desktopGlobal ?\n this.handleEnterpriseGlobalSubscription(callback, eventType, action) :\n this.handleCoreGlobalSubscription(callback, eventType, action);\n }\n\n public async getFrame(selector: { windowId?: string; predicate?: (frame: Frame) => boolean }): Promise<Frame> {\n\n if (selector.windowId) {\n return await this.base.getFrame(selector.windowId);\n }\n\n if (selector.predicate) {\n return (await this.getFrames(selector.predicate))[0];\n }\n\n throw new Error(`The provided selector is not valid: ${JSON.stringify(selector)}`);\n }\n\n public async getFrames(predicate?: (frame: Frame) => boolean): Promise<Frame[]> {\n\n const allFrameSummaries = await this.bridge.send<FrameSummariesResult>(OPERATIONS.getAllFramesSummaries.name);\n\n return this.base.getFrames(allFrameSummaries.summaries, predicate);\n }\n\n public getWorkspaceById(workspaceId: string): Promise<Workspace> {\n return this.base.fetchWorkspace(workspaceId);\n }\n\n public async getWorkspaceByWindowId(itemId: string): Promise<Workspace> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (!desktopGlobal) {\n // workspace-ui-core doesn't accept an itemId for getWorkspaceSnapshot, but GD does and getWorkspaceSnapshot is significantly faster\n return (await this.getWorkspaces((wsp) => !!wsp.getWindow((w) => w.id === itemId)))[0];\n }\n return this.base.fetchWorkspace(itemId);\n }\n\n public transformStreamPayloadToWorkspace(payload: WorkspaceStreamData): Promise<Workspace> {\n return this.base.transformStreamPayloadToWorkspace(payload);\n }\n\n public async getWorkspace(predicate: (workspace: Workspace) => boolean): Promise<Workspace> {\n let foundWorkspace: Workspace;\n\n await this.iterateWorkspaces((wsp, end) => {\n if (predicate(wsp)) {\n foundWorkspace = wsp;\n end();\n }\n });\n\n return foundWorkspace;\n }\n\n public async getWorkspaces(predicate?: (workspace: Workspace) => boolean): Promise<Workspace[]> {\n const matchingWorkspaces: Workspace[] = [] as Workspace[];\n\n await this.iterateWorkspaces((wsp) => {\n if (!predicate || predicate(wsp)) {\n matchingWorkspaces.push(wsp);\n }\n });\n\n return matchingWorkspaces;\n }\n\n public async getWorkspacesByFrameId(frameId: string): Promise<Workspace[]> {\n const workspaceSummaries = await this.getAllWorkspaceSummaries();\n const summariesForFrame = workspaceSummaries.filter((s) => s.frameId === frameId);\n\n const workspacesForFrame = await Promise.all(summariesForFrame.map((summary) => {\n return this.base.fetchWorkspace(summary.id);\n }));\n\n return workspacesForFrame;\n }\n\n public async getAllWorkspaceSummaries(): Promise<IOConnectWorkspaces.WorkspaceSummary[]> {\n\n const allSummariesResult = await this.bridge.send<WorkspaceSummariesResult>(OPERATIONS.getAllWorkspacesSummaries.name, {});\n\n return this.base.getAllWorkspaceSummaries(allSummariesResult);\n }\n\n public async getWindow(predicate: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => boolean): Promise<IOConnectWorkspaces.WorkspaceWindow> {\n let resultWindow: IOConnectWorkspaces.WorkspaceWindow;\n\n await this.iterateWorkspaces((wsp, end) => {\n const foundWindow = wsp.getWindow(predicate);\n\n if (foundWindow) {\n resultWindow = foundWindow;\n end();\n }\n });\n\n return resultWindow;\n }\n\n public async getParent(predicate: (parent: IOConnectWorkspaces.WorkspaceBox) => boolean): Promise<IOConnectWorkspaces.WorkspaceBox> {\n let resultParent: IOConnectWorkspaces.WorkspaceBox;\n\n await this.iterateWorkspaces((wsp, end) => {\n\n const foundParent = wsp.getBox(predicate);\n\n if (foundParent) {\n resultParent = foundParent;\n end();\n }\n });\n\n return resultParent;\n }\n\n public async getLayoutSummaries(): Promise<IOConnectWorkspaces.WorkspaceLayoutSummary[]> {\n const allLayouts = await this.bridge.send<LayoutSummariesResult>(OPERATIONS.getAllLayoutsSummaries.name);\n return allLayouts.summaries;\n }\n\n public async deleteLayout(name: string): Promise<void> {\n await this.bridge.send(OPERATIONS.deleteLayout.name, { name });\n }\n\n public async exportLayout(predicate?: (layout: IOConnectWorkspaces.WorkspaceLayout) => boolean): Promise<IOConnectWorkspaces.WorkspaceLayout[]> {\n const allLayoutsResult = await this.bridge.send<ExportedLayoutsResult>(OPERATIONS.exportAllLayouts.name);\n return allLayoutsResult.layouts.reduce<IOConnectWorkspaces.WorkspaceLayout[]>((matchingLayouts, layout) => {\n\n if (!predicate || predicate(layout)) {\n matchingLayouts.push(layout);\n }\n\n return matchingLayouts;\n }, []);\n }\n\n public async saveLayout(config: IOConnectWorkspaces.WorkspaceLayoutSaveConfig): Promise<IOConnectWorkspaces.WorkspaceLayout> {\n return await this.bridge.send(OPERATIONS.saveLayout.name, config);\n }\n\n public async importLayouts(layouts: IOConnectWorkspaces.WorkspaceLayout[], mode: \"replace\" | \"merge\"): Promise<void> {\n const desktopGlobal = (window as any).glue42gd || (window as any).iodesktop;\n\n if (desktopGlobal) {\n try {\n // ensuring backwards compatibility\n await this.bridge.send(OPERATIONS.importLayouts.name, { layouts, mode });\n } catch (error) {\n // this is a soft-reversal to handle an import issue with GD\n await Promise.all(layouts.map((layout) => this.bridge.send(OPERATIONS.importLayout.name, { layout, mode })));\n }\n return;\n }\n\n await this.base.importLayouts(layouts, mode);\n }\n\n public handleOnSaved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\n return this.base.handleOnSaved(callback);\n }\n\n public handleOnRemoved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction {\n return this.base.handleOnRemoved(callback);\n }\n\n public async bundleWorkspaceTo(type: \"row\" | \"column\", workspaceId: string): Promise<void> {\n return await this.base.bundleWorkspaceTo(type, workspaceId);\n }\n\n public async bundleItemTo(type: \"row\" | \"column\", id: string): Promise<void> {\n return await this.base.bundleItemTo(type, id);\n }\n\n public getWorkspaceContext(workspaceId: string): Promise<any> {\n return this.base.getWorkspaceContext(workspaceId);\n }\n\n public setWorkspaceContext(workspaceId: string, data: any): Promise<void> {\n return this.base.setWorkspaceContext(workspaceId, data);\n }\n\n public updateWorkspaceContext(workspaceId: string, data: any): Promise<void> {\n return this.base.updateWorkspaceContext(workspaceId, data);\n }\n\n public subscribeWorkspaceContextUpdated(workspaceId: string, callback: (data: any) => void): Promise<import(\"callback-registry\").UnsubscribeFunction> {\n return this.base.subscribeWorkspaceContextUpdated(workspaceId, callback);\n }\n\n public async restoreItem(itemId: string): Promise<void> {\n return await this.base.restoreItem(itemId);\n }\n\n public async maximizeItem(itemId: string): Promise<void> {\n return await this.base.maximizeItem(itemId);\n }\n\n public async focusItem(itemId: string): Promise<void> {\n return await this.base.focusItem(itemId);\n }\n\n public async changeFrameState(frameId: string, state: IOConnectWorkspaces.FrameState): Promise<void> {\n await this.bridge.send<void>(OPERATIONS.changeFrameState.name, { frameId, requestedState: state });\n }\n\n public async getFrameBounds(frameId: string): Promise<IOConnectWorkspaces.FrameBounds> {\n const frameResult = await this.bridge.send<FrameBoundsResult>(OPERATIONS.getFrameBounds.name, { itemId: frameId });\n return frameResult.bounds;\n }\n\n public async getFrameState(frameId: string): Promise<IOConnectWorkspaces.FrameState> {\n const frameResult = await this.bridge.send<FrameStateResult>(OPERATIONS.getFrameState.name, { itemId: frameId });\n return frameResult.state;\n }\n\n public async closeItem(itemId: string): Promise<void> {\n return await this.base.closeItem(itemId);\n }\n\n public async resizeItem(itemId: string, config: IOConnectWorkspaces.ResizeConfig): Promise<void> {\n return await this.base.resizeItem(itemId, config);\n }\n\n public async setMaximizationBoundary(itemId: string, config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void> {\n return await this.base.setMaximizationBoundary(itemId, config);\n }\n\n public async showWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\n return await this.base.showWorkspaceLoadingAnimation(workspaceId);\n }\n\n public async hideWorkspaceLoadingAnimation(workspaceId: string): Promise<void> {\n return await this.base.hideWorkspaceLoadingAnimation(workspaceId);\n }\n\n public async moveFrame(itemId: string, config: IOConnectWorkspaces.MoveConfig): Promise<void> {\n return await this.base.moveFrame(itemId, config);\n }\n\n public getGDWindow(itemId: string): GDWindow {\n return this.base.getGDWindow(itemId);\n }\n\n public async forceLoadWindow(itemId: string): Promise<string> {\n const windowId = await this.base.forceLoadWindow(itemId);\n\n await this.base.notifyWindowAdded(windowId);\n\n return windowId;\n }\n\n public async ejectWindow(itemId: string): Promise<string> {\n const windowId: string = (await this.base.ejectWindow(itemId)).windowId;\n\n await this.base.notifyWindowAdded(windowId);\n\n return windowId;\n }\n\n public async moveWindowTo(itemId: string, newParentId: string): Promise<void> {\n return await this.base.moveWindowTo(itemId, newParentId);\n }\n\n public async getSnapshot(itemId: string, type: \"workspace\"): Promise<WorkspaceSnapshotResult>\n public async getSnapshot(itemId: string, type: \"frame\"): Promise<FrameSnapshotResult>\n public async getSnapshot(itemId: string, type: \"workspace\" | \"frame\"): Promise<WorkspaceSnapshotResult | FrameSnapshotResult> {\n return await this.base.getSnapshot(itemId, type);\n }\n\n public async setItemTitle(itemId: string, title: string): Promise<void> {\n return await this.base.setItemTitle(itemId, title);\n }\n\n public flatChildren(children: Child[]): Child[] {\n return children.reduce<Child[]>((soFar, child) => {\n\n soFar.push(child);\n\n if (child.type !== \"window\") {\n soFar.push(...this.flatChildren(child.children));\n }\n\n return soFar;\n }, []);\n }\n\n public refreshChildren(config: RefreshChildrenConfig): Child[] {\n return this.base.refreshChildren(config);\n }\n\n public iterateFindChild(children: Child[], predicate: (child: Child) => boolean): Child {\n return this.base.iterateFindChild(children, predicate);\n }\n\n public iterateFilterChildren(children: Child[], predicate: (child: Child) => boolean): Child[] {\n return this.base.iterateFilterChildren(children, predicate);\n }\n\n public hibernateWorkspace(workspaceId: string): Promise<void> {\n return this.base.hibernateWorkspace(workspaceId);\n }\n\n public resumeWorkspace(workspaceId: string): Promise<void> {\n return this.base.resumeWorkspace(workspaceId);\n }\n\n public lockWorkspace(workspaceId: string, config?: IOConnectWorkspaces.WorkspaceLockConfig): Promise<void> {\n return this.base.lockWorkspace(workspaceId, config);\n }\n\n public lockWindow(windowPlacementId: string, config?: IOConnectWorkspaces.WorkspaceWindowLockConfig): Promise<void> {\n return this.base.lockWindow(windowPlacementId, config);\n }\n\n public lockContainer(itemId: string, type: SubParentTypes[\"type\"], config?: ContainerLockConfig): Promise<void> {\n return this.base.lockContainer(itemId, type, config);\n }\n\n public pinWorkspace(workspaceId: string, icon?: string): Promise<void> {\n return this.base.pinWorkspace(workspaceId, icon);\n }\n\n public unpinWorkspace(workspaceId: string): Promise<void> {\n return this.base.unpinWorkspace(workspaceId);\n }\n\n public getWorkspaceIcon(workspaceId: string): Promise<string> {\n return this.base.getWorkspaceIcon(workspaceId);\n }\n\n public setWorkspaceIcon(workspaceId: string, icon: string): Promise<void> {\n return this.base.setWorkspaceIcon(workspaceId, icon);\n }\n\n public async getFrameConstraints(frameId: string): Promise<IOConnectWorkspaces.FrameConstraints> {\n const frameSnapshot = await this.getSnapshot(frameId, \"frame\");\n\n return {\n minWidth: frameSnapshot.config.minWidth,\n maxWidth: frameSnapshot.config.maxWidth,\n minHeight: frameSnapshot.config.minHeight,\n maxHeight: frameSnapshot.config.maxHeight,\n };\n }\n\n public registerShortcut(shortcut: string, frameId: string, callback: () => void): Promise<UnsubscribeFunction> {\n return this.shortcutsController.registerShortcut(shortcut, frameId, callback);\n }\n\n public getPlatformFrameId(): Promise<{id?: string}> {\n return this.base.getPlatformFrameId();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCoreLocalSubscription(config: SubscriptionConfig, levelId: string): Promise<IOConnectWorkspaces.Unsubscribe> {\n await this.bridge.createCoreEventSubscription();\n\n config.scopeId = config.scopeId || levelId;\n\n if (config.eventType === \"window\" && config.action === \"loaded\") {\n const originalCB = config.callback;\n\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n\n originalCB(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.handleCoreSubscription(config);\n }\n\n private handleEnterpriseLocalSubscription(config: SubscriptionConfig, levelId: string): Promise<IOConnectWorkspaces.Unsubscribe> {\n config.scopeId = config.scopeId || levelId;\n\n if (config.eventType === \"window\" && config.action === \"loaded\") {\n const originalCB = config.callback;\n\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n originalCB(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.subscribe(config);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private async handleCoreGlobalSubscription(callback: (callbackData: unknown) => void | Promise<void>, eventType: WorkspaceEventType, action: WorkspaceEventAction): Promise<IOConnectWorkspaces.Unsubscribe> {\n await this.bridge.createCoreEventSubscription();\n\n const config: SubscriptionConfig = {\n eventType, callback, action,\n scope: \"global\",\n };\n\n if (eventType === \"window\" && action === \"loaded\") {\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n\n callback(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.handleCoreSubscription(config);\n }\n\n private handleEnterpriseGlobalSubscription(callback: (callbackData: unknown) => void | Promise<void>, eventType: WorkspaceEventType, action: WorkspaceEventAction): Promise<IOConnectWorkspaces.Unsubscribe> {\n const config: SubscriptionConfig = {\n eventType, callback, action,\n scope: \"global\",\n };\n\n if (eventType === \"window\" && action === \"loaded\") {\n const wrappedCB = async (callbackData: WindowStreamData): Promise<void> => {\n\n await this.base.notifyWindowAdded(callbackData.windowSummary.config.windowId);\n\n callback(callbackData);\n };\n\n config.callback = wrappedCB;\n }\n\n return this.bridge.subscribe(config);\n }\n\n private async iterateWorkspaces(callback: (workspace: Workspace, end: () => void) => void): Promise<void> {\n let ended = false;\n\n const end = (): void => { ended = true; };\n\n const workspaceSummaries = await this.getAllWorkspaceSummaries();\n\n for (const summary of workspaceSummaries) {\n if (ended) {\n return;\n }\n\n const wsp = await this.base.fetchWorkspace(summary.id);\n\n callback(wsp, end);\n }\n }\n}\n","import { UnsubscribeFunction } from \"callback-registry\";\r\nimport { Bridge } from \"../communication/bridge\";\r\nimport { CLIENT_OPERATIONS, OPERATIONS } from \"../communication/constants\";\r\nimport CallbackRegistry from \"callback-registry\";\r\n\r\n\r\nexport class ShortcutsController {\r\n private _shortcuts = CallbackRegistry();\r\n constructor(\r\n private readonly bridge: Bridge,\r\n ) {\r\n this.bridge.onOperation((payload, caller) => {\r\n if (payload.operation === CLIENT_OPERATIONS.shortcutClicked.name) {\r\n const data = payload.data;\r\n this._shortcuts.execute(`${data.frameId}-${data.shortcut}`);\r\n }\r\n })\r\n }\r\n\r\n public async registerShortcut(shortcut: string, frameId: string, callback: () => void): Promise<UnsubscribeFunction> {\r\n await this.bridge.send<void>(OPERATIONS.registerShortcut.name, { shortcut, frameId });\r\n const un = this._shortcuts.add(`${frameId}-${shortcut}`, callback);\r\n return () => {\r\n un();\r\n this.bridge.send<void>(OPERATIONS.unregisterShortcut.name, { shortcut, frameId });\r\n }\r\n }\r\n}\r\n","/*eslint indent: [2, 4, {\"SwitchCase\": 1}]*/\nimport CallbackFactory from \"callback-registry\";\nimport { Bridge } from \"../communication/bridge\";\nimport { InteropTransport } from \"../communication/interop-transport\";\nimport { BaseBuilder } from \"../builders/baseBuilder\";\nimport { ParentBuilder } from \"../builders/parentBuilder\";\nimport { WorkspaceBuilder } from \"../builders/workspaceBuilder\";\nimport { ModelMaps, ModelTypes, FramePrivateData, WindowPrivateData, WorkspacePrivateData, ParentPrivateData } from \"../types/privateData\";\nimport { PrivateDataManager } from \"./privateDataManager\";\nimport { FrameCreateConfig, ModelCreateConfig, WindowCreateConfig, WorkspaceIoCCreateConfig, ParentCreateConfig } from \"../types/ioc\";\nimport { Frame } from \"../models/frame\";\nimport { Window } from \"../models/window\";\nimport { Workspace } from \"../models/workspace\";\nimport { ChildSnapshotResult } from \"../types/protocol\";\nimport { AllParentTypes, Child } from \"../types/builders\";\nimport { Row } from \"../models/row\";\nimport { Column } from \"../models/column\";\nimport { Group } from \"../models/group\";\nimport { Base } from \"../models/base/base\";\nimport { IOConnectWorkspaces } from \"../../workspaces\";\nimport { WorkspacesController } from \"../types/controller\";\nimport { InteropAPI, WindowsAPI, LayoutsAPI, ContextsAPI } from \"../types/glue\";\nimport { BaseController } from \"../controllers/base\";\nimport { MainController } from \"../controllers/main\";\nimport { ShortcutsController } from \"../controllers/shortcuts\";\n\nexport class IoC {\n\n private _controllerInstance: WorkspacesController;\n private _bridgeInstance: Bridge;\n private _transportInstance: InteropTransport;\n private _privateDataManagerInstance: PrivateDataManager;\n private _parentBaseInstance: Base;\n private _baseController: BaseController;\n private _shortcutsController: ShortcutsController;\n\n constructor(\n private readonly agm: InteropAPI,\n private readonly windows: WindowsAPI,\n private readonly layouts: LayoutsAPI,\n private readonly contexts: ContextsAPI\n ) { }\n\n public get baseController(): BaseController {\n if (!this._baseController) {\n this._baseController = new BaseController(this, this.windows, this.contexts, this.layouts);\n }\n\n return this._baseController;\n }\n\n public get controller(): WorkspacesController {\n if (!this._controllerInstance) {\n this._controllerInstance = new MainController(this.bridge, this.baseController, this.shortcutsController);\n }\n return this._controllerInstance;\n }\n\n public get shortcutsController(): ShortcutsController {\n if (!this._shortcutsController) {\n this._shortcutsController = new ShortcutsController(this.bridge);\n }\n return this._shortcutsController;\n }\n\n public get bridge(): Bridge {\n if (!this._bridgeInstance) {\n this._bridgeInstance = new Bridge(this.transport, CallbackFactory());\n }\n return this._bridgeInstance;\n }\n\n public get transport(): InteropTransport {\n\n if (!this._transportInstance) {\n this._transportInstance = new InteropTransport(this.agm, CallbackFactory());\n }\n\n return this._transportInstance;\n }\n\n public get privateDataManager(): PrivateDataManager {\n if (!this._privateDataManagerInstance) {\n this._privateDataManagerInstance = new PrivateDataManager();\n }\n return this._privateDataManagerInstance;\n }\n\n public get parentBase(): Base {\n if (!this._parentBaseInstance) {\n this._parentBaseInstance = new Base(this.privateDataManager);\n }\n return this._parentBaseInstance;\n }\n\n public async initiate(actualWindowId: string): Promise<void> {\n await this.transport.initiate(actualWindowId);\n }\n\n public getModel<T extends ModelTypes>(type: ModelTypes, createConfig: ModelCreateConfig): ModelMaps[T] {\n switch (type) {\n case \"frame\": {\n const newFrame = new Frame(this.privateDataManager);\n\n const { summary } = createConfig as FrameCreateConfig;\n\n const frameData: FramePrivateData = { summary, controller: this.controller };\n\n this.privateDataManager.setFrameData(newFrame, frameData);\n\n return newFrame as ModelMaps[T];\n }\n case \"window\": {\n const { id, parent, frame, workspace, config } = createConfig as WindowCreateConfig;\n\n const windowPrivateData: WindowPrivateData = {\n type: \"window\",\n controller: this.controller,\n config, id, parent, frame, workspace\n };\n\n const newWindow = new Window(this.privateDataManager);\n\n this.privateDataManager.setWindowData(newWindow, windowPrivateData);\n\n return newWindow as ModelMaps[T];\n }\n case \"row\":\n case \"column\":\n case \"group\": {\n const { id, children, parent, frame, workspace, config } = createConfig as ParentCreateConfig;\n\n const newParent = type === \"column\" ? new Column(this.parentBase) :\n type === \"row\" ? new Row(this.parentBase) : new Group(this.parentBase);\n\n const builtChildren = this.buildChildren(children, frame, workspace, newParent);\n\n const parentPrivateData = {\n id, parent, frame, workspace,\n config,\n type,\n controller: this.controller,\n children: builtChildren,\n };\n\n this.privateDataManager.setParentData(newParent, parentPrivateData as ParentPrivateData);\n\n return newParent as ModelMaps[T];\n }\n case \"workspace\": {\n const { snapshot, frame } = createConfig as WorkspaceIoCCreateConfig;\n\n const newWorkspace = new Workspace(this.privateDataManager);\n\n const children = this.buildChildren(snapshot.children, frame, newWorkspace, newWorkspace);\n\n const workspacePrivateData: WorkspacePrivateData = {\n id: snapshot.id,\n type: \"workspace\",\n config: snapshot.config,\n base: this.parentBase,\n controller: this.controller,\n children, frame, ioc: this\n };\n\n this.privateDataManager.setWorkspaceData(newWorkspace, workspacePrivateData);\n return newWorkspace as ModelMaps[T];\n }\n default: throw new Error(`Unrecognized type: ${type}`);\n }\n }\n\n public getBuilder(config: IOConnectWorkspaces.BuilderConfig): WorkspaceBuilder | ParentBuilder {\n config.definition = config.definition || {};\n\n if (!Array.isArray(config.definition.children)) {\n config.definition.children = [];\n }\n\n const baseBuilder = new BaseBuilder(this.getBuilder.bind(this));\n\n switch (config.type) {\n case \"workspace\": {\n return new WorkspaceBuilder(config.definition as IOConnectWorkspaces.WorkspaceDefinition, baseBuilder, this.controller);\n }\n case \"row\":\n case \"column\":\n case \"group\": {\n (config.definition as IOConnectWorkspaces.BoxDefinition).type = config.type;\n return new ParentBuilder(config.definition as IOConnectWorkspaces.BoxDefinition, baseBuilder);\n }\n default: throw new Error(`Unexpected Builder creation error, provided config: ${JSON.stringify(config)}`);\n }\n }\n\n private buildChildren(children: ChildSnapshotResult[], frame: Frame, workspace: IOConnectWorkspaces.Workspace, parent: AllParentTypes): Child[] {\n return children.map<Child>((child) => {\n switch (child.type) {\n case \"window\": return this.getModel<\"window\">(\"window\", {\n id: child.id,\n config: child.config,\n frame, workspace, parent\n } as WindowCreateConfig);\n case \"column\": return this.getModel<\"column\">(child.type, {\n id: child.id,\n config: child.config,\n children: child.children,\n frame, workspace, parent\n } as ParentCreateConfig);\n case \"row\": return this.getModel<\"row\">(child.type, {\n id: child.id,\n config: child.config,\n children: child.children,\n frame, workspace, parent\n } as ParentCreateConfig);\n case \"group\": return this.getModel<\"group\">(child.type, {\n id: child.id,\n config: child.config,\n children: child.children,\n frame, workspace, parent\n } as ParentCreateConfig);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default: throw new Error(`Unsupported child type: ${(child as any).type}`);\n }\n });\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { IoC } from \"./shared/ioc\";\nimport { checkThrowCallback, nonEmptyStringDecoder, workspaceLayoutDecoder, workspaceDefinitionDecoder, workspaceBuilderCreateConfigDecoder, builderConfigDecoder, restoreWorkspaceConfigDecoder, workspaceLayoutSaveConfigDecoder, emptyFrameDefinitionDecoder } from \"./shared/decoders\";\nimport { FrameStreamData, WorkspaceStreamData, WorkspaceSnapshotResult, WindowStreamData } from \"./types/protocol\";\nimport { FrameCreateConfig, WorkspaceIoCCreateConfig } from \"./types/ioc\";\nimport { IOConnectWorkspaces } from \"./../workspaces\";\nimport { WorkspacesController } from \"./types/controller\";\nimport { version } from \"../package.json\";\nimport { API } from \"../temp\";\n\nexport const composeAPI = (glue: any, ioc: IoC): API => {\n\n const controller: WorkspacesController = ioc.controller;\n\n const inWorkspace = (): Promise<boolean> => {\n const myId: string = glue.windows.my().id;\n\n if (!myId) {\n throw new Error(\"Cannot get my frame, because my id is undefined.\");\n }\n\n return controller.checkIsInSwimlane(myId);\n };\n\n const getBuilder = (config: IOConnectWorkspaces.BuilderConfig): IOConnectWorkspaces.WorkspaceBuilder | IOConnectWorkspaces.BoxBuilder => {\n const validatedConfig = builderConfigDecoder.runWithException(config);\n\n return ioc.getBuilder(validatedConfig);\n };\n\n const getMyFrame = async (): Promise<IOConnectWorkspaces.Frame> => {\n const windowId: string = glue.windows.my().id;\n\n if (!windowId) {\n throw new Error(\"Cannot get my frame, because my id is undefined.\");\n }\n\n const isInSwimlane = await controller.checkIsInSwimlane(windowId);\n\n if (!isInSwimlane) {\n throw new Error(\"Cannot fetch your frame, because this window is not in a workspace\");\n }\n\n return controller.getFrame({ windowId });\n };\n\n const getFrame = async (predicate: (frame: IOConnectWorkspaces.Frame) => boolean): Promise<IOConnectWorkspaces.Frame> => {\n checkThrowCallback(predicate);\n\n return controller.getFrame({ predicate });\n };\n\n const getAllFrames = async (predicate?: (frame: IOConnectWorkspaces.Frame) => boolean): Promise<IOConnectWorkspaces.Frame[]> => {\n checkThrowCallback(predicate, true);\n\n return controller.getFrames(predicate);\n };\n\n const getAllWorkspacesSummaries = (): Promise<IOConnectWorkspaces.WorkspaceSummary[]> => {\n return controller.getAllWorkspaceSummaries();\n };\n\n const getMyWorkspace = async (): Promise<IOConnectWorkspaces.Workspace> => {\n const myId: string = glue.windows.my().id;\n\n if (!myId) {\n throw new Error(\"Cannot get my workspace, because my id is undefined.\");\n }\n\n const isInSwimlane = await controller.checkIsInSwimlane(myId);\n\n if (!isInSwimlane) {\n throw new Error(\"Cannot fetch your workspace, because this window is not in a workspace\");\n }\n\n return await controller.getWorkspaceByWindowId(myId);\n };\n\n const getWorkspace = async (predicate: (workspace: IOConnectWorkspaces.Workspace) => boolean): Promise<IOConnectWorkspaces.Workspace> => {\n checkThrowCallback(predicate);\n return (await controller.getWorkspaces(predicate))[0];\n };\n\n const getWorkspaceById = async (workspaceId: string): Promise<IOConnectWorkspaces.Workspace> => {\n nonEmptyStringDecoder.runWithException(workspaceId);\n\n return controller.getWorkspaceById(workspaceId);\n };\n\n const getAllWorkspaces = (predicate?: (workspace: IOConnectWorkspaces.Workspace) => boolean): Promise<IOConnectWorkspaces.Workspace[]> => {\n checkThrowCallback(predicate, true);\n return controller.getWorkspaces(predicate);\n };\n\n const getWindow = async (predicate: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => boolean): Promise<IOConnectWorkspaces.WorkspaceWindow> => {\n checkThrowCallback(predicate);\n return controller.getWindow(predicate);\n };\n\n const getParent = async (predicate: (parent: IOConnectWorkspaces.WorkspaceBox) => boolean): Promise<IOConnectWorkspaces.WorkspaceBox> => {\n checkThrowCallback(predicate);\n return controller.getParent(predicate);\n };\n\n const restoreWorkspace = async (name: string, options?: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<IOConnectWorkspaces.Workspace> => {\n nonEmptyStringDecoder.runWithException(name);\n const validatedOptions = restoreWorkspaceConfigDecoder.runWithException(options);\n return controller.restoreWorkspace(name, validatedOptions);\n };\n\n const createWorkspace = async (definition: IOConnectWorkspaces.WorkspaceDefinition, saveConfig?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<IOConnectWorkspaces.Workspace> => {\n const validatedDefinition = workspaceDefinitionDecoder.runWithException(definition);\n const validatedConfig = workspaceBuilderCreateConfigDecoder.runWithException(saveConfig);\n\n return controller.createWorkspace(validatedDefinition, validatedConfig);\n };\n\n const createEmptyFrame = async (definition?: IOConnectWorkspaces.EmptyFrameDefinition): Promise<IOConnectWorkspaces.Frame> => {\n const validatedDefinition = emptyFrameDefinitionDecoder.runWithException(definition);\n\n return controller.createEmptyFrame(validatedDefinition ?? {});\n };\n\n const layouts = {\n getSummaries: (): Promise<IOConnectWorkspaces.WorkspaceLayoutSummary[]> => {\n return controller.getLayoutSummaries();\n },\n delete: async (name: string): Promise<void> => {\n nonEmptyStringDecoder.runWithException(name);\n return controller.deleteLayout(name);\n },\n export: async (predicate?: (layout: IOConnectWorkspaces.WorkspaceLayout) => boolean): Promise<IOConnectWorkspaces.WorkspaceLayout[]> => {\n checkThrowCallback(predicate, true);\n return controller.exportLayout(predicate);\n },\n import: async (layouts: IOConnectWorkspaces.WorkspaceLayout[], mode: \"replace\" | \"merge\" = \"replace\"): Promise<void> => {\n\n if (!Array.isArray(layouts)) {\n throw new Error(`The provided layouts argument is not an array: ${JSON.stringify(layouts)}`);\n }\n\n layouts.forEach((layout) => workspaceLayoutDecoder.runWithException(layout));\n return controller.importLayouts(layouts, mode);\n },\n save: async (config: IOConnectWorkspaces.WorkspaceLayoutSaveConfig): Promise<IOConnectWorkspaces.WorkspaceLayout> => {\n const verifiedConfig = workspaceLayoutSaveConfigDecoder.runWithException(config);\n return controller.saveLayout(verifiedConfig);\n },\n onSaved: async (callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n return controller.handleOnSaved(callback);\n },\n onRemoved: async (callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n return controller.handleOnRemoved(callback);\n }\n };\n\n const onFrameOpened = async (callback: (frame: IOConnectWorkspaces.Frame) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = (payload: FrameStreamData): void => {\n const frameConfig: FrameCreateConfig = {\n summary: payload.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n callback(frame);\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"frame\", \"opened\");\n return unsubscribe;\n };\n\n const onFrameClosed = async (callback: (closed: IOConnectWorkspaces.FrameClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = (payload: FrameStreamData): void => {\n callback({ frameId: payload.frameSummary.id, frameBounds: payload.frameBounds });\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"frame\", \"closed\");\n return unsubscribe;\n };\n\n const onWorkspaceOpened = async (callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await controller.transformStreamPayloadToWorkspace(payload);\n\n callback(workspace);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"opened\");\n return unsubscribe;\n };\n\n const onWorkspaceClosed = async (callback: (closed: IOConnectWorkspaces.WorkspaceClosedData) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = (payload: WorkspaceStreamData): void => {\n callback({ frameId: payload.frameSummary.id, workspaceId: payload.workspaceSummary.id, frameBounds: payload.frameBounds });\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"closed\");\n return unsubscribe;\n };\n\n const onWorkspaceHibernated = async (callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await controller.transformStreamPayloadToWorkspace(payload);\n\n callback(workspace);\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"hibernated\");\n return unsubscribe;\n };\n\n const onWorkspaceResumed = async (callback: (workspace: IOConnectWorkspaces.Workspace) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n\n const wrappedCallback = async (payload: WorkspaceStreamData): Promise<void> => {\n const workspace = await controller.transformStreamPayloadToWorkspace(payload);\n\n callback(workspace);\n };\n\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"workspace\", \"resumed\");\n return unsubscribe;\n };\n\n const onWindowAdded = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"added\");\n return unsubscribe;\n };\n\n const onWindowLoaded = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const foundWindow = workspace.getWindow((win) => win.id && win.id === payload.windowSummary.config.windowId);\n\n callback(foundWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"loaded\");\n return unsubscribe;\n };\n\n const onWindowRemoved = async (callback: (removed: { windowId: string; workspaceId: string; frameId: string }) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = (payload: WindowStreamData): void => {\n const { windowId, workspaceId, frameId } = payload.windowSummary.config;\n callback({ windowId, workspaceId, frameId });\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"removed\");\n return unsubscribe;\n };\n\n const onWindowMaximized = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"maximized\");\n return unsubscribe;\n };\n\n const onWindowRestored = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"restored\");\n return unsubscribe;\n };\n\n\n const onWindowSelected = async (callback: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => void): Promise<IOConnectWorkspaces.Unsubscribe> => {\n checkThrowCallback(callback);\n const wrappedCallback = async (payload: WindowStreamData): Promise<void> => {\n const snapshot = (await controller.getSnapshot(payload.windowSummary.config.workspaceId, \"workspace\")) as WorkspaceSnapshotResult;\n\n const frameConfig: FrameCreateConfig = {\n summary: snapshot.frameSummary\n };\n const frame = ioc.getModel<\"frame\">(\"frame\", frameConfig);\n\n const workspaceConfig: WorkspaceIoCCreateConfig = { frame, snapshot };\n\n const workspace = ioc.getModel<\"workspace\">(\"workspace\", workspaceConfig);\n\n const windowParent = workspace.getBox((parent) => parent.id === payload.windowSummary.parentId);\n const foundWindow = windowParent.children.find((child) => child.type === \"window\" && child.elementId === payload.windowSummary.itemId);\n\n callback(foundWindow as IOConnectWorkspaces.WorkspaceWindow);\n };\n const unsubscribe = await controller.processGlobalSubscription(wrappedCallback, \"window\", \"selected\");\n return unsubscribe;\n };\n\n const waitForFrame = async (id: string): Promise<IOConnectWorkspaces.Frame> => {\n nonEmptyStringDecoder.runWithException(id);\n return new Promise<IOConnectWorkspaces.Frame>((res, rej) => {\n let unsub: IOConnectWorkspaces.Unsubscribe = () => {\n // do nothing\n };\n onFrameOpened((f) => {\n if (f.id === id) {\n res(f);\n unsub();\n }\n }).then((u) => {\n unsub = u;\n return getAllFrames();\n }).then((frames) => {\n const myFrame = frames.find((f) => f.id === id);\n if (myFrame) {\n res(myFrame);\n unsub();\n }\n }).catch(rej);\n });\n };\n\n return {\n inWorkspace,\n getBuilder,\n getMyFrame,\n getFrame,\n getAllFrames,\n getAllWorkspacesSummaries,\n getMyWorkspace,\n getWorkspace,\n getWorkspaceById,\n getAllWorkspaces,\n getWindow,\n getBox: getParent,\n restoreWorkspace,\n createWorkspace,\n createEmptyFrame,\n waitForFrame,\n layouts,\n onFrameOpened,\n onFrameClosed,\n onWorkspaceOpened,\n onWorkspaceClosed,\n onWorkspaceHibernated,\n onWorkspaceResumed,\n onWindowAdded,\n onWindowLoaded,\n onWindowRemoved,\n onWindowMaximized,\n onWindowRestored,\n onWindowSelected,\n version\n };\n};\n","import { IoC } from \"./shared/ioc\";\r\nimport { composeAPI } from \"./main\";\r\nimport { WorkspacesFactoryFunction } from \"../workspaces\";\r\n\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nconst factoryFunction: WorkspacesFactoryFunction = async (io: any): Promise<void> => {\r\n\r\n const ioc = new IoC(io.agm, io.windows, io.layouts, io.contexts);\r\n\r\n const actualWindowId = io.interop.instance.windowId;\r\n\r\n await ioc.initiate(actualWindowId);\r\n\r\n io.workspaces = composeAPI(io, ioc);\r\n};\r\n\r\n// attach to window object\r\nif (typeof window !== \"undefined\") {\r\n /* eslint-disable @typescript-eslint/no-explicit-any */\r\n (window as any).IOWorkspaces = factoryFunction;\r\n}\r\n\r\nexport default factoryFunction;\r\n"],"names":["privateData","getBase","data","getData","CallbackRegistry","CallbackFactory"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaces.umd.js","sources":["../../../node_modules/callback-registry/lib/index.js","../../../node_modules/decoder-validate/dist/index.es5.js","../src/shared/decoders.ts","../src/communication/constants.ts","../src/shared/promiseWrapper.ts","../src/communication/bridge.ts","../src/shared/promisePlus.ts","../src/communication/interop-transport.ts","../src/builders/parentBuilder.ts","../src/builders/baseBuilder.ts","../src/builders/workspaceBuilder.ts","../src/models/row.ts","../src/models/column.ts","../src/models/group.ts","../src/models/workspace.ts","../src/models/window.ts","../src/models/frame.ts","../src/shared/privateDataManager.ts","../src/models/base/base.ts","../src/controllers/base.ts","../src/controllers/main.ts","../src/controllers/shortcuts.ts","../src/shared/ioc.ts","../src/main.ts","../src/index.ts"],"sourcesContent":["\"use strict\";\nfunction createRegistry(options) {\n if (options && options.errorHandling\n && typeof options.errorHandling !== \"function\"\n && options.errorHandling !== \"log\"\n && options.errorHandling !== \"silent\"\n && options.errorHandling !== \"throw\") {\n throw new Error(\"Invalid options passed to createRegistry. Prop errorHandling should be [\\\"log\\\" | \\\"silent\\\" | \\\"throw\\\" | (err) => void], but \" + typeof options.errorHandling + \" was passed\");\n }\n var _userErrorHandler = options && typeof options.errorHandling === \"function\" && options.errorHandling;\n var callbacks = {};\n function add(key, callback, replayArgumentsArr) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n callbacksForKey = [];\n callbacks[key] = callbacksForKey;\n }\n callbacksForKey.push(callback);\n if (replayArgumentsArr) {\n setTimeout(function () {\n replayArgumentsArr.forEach(function (replayArgument) {\n var _a;\n if ((_a = callbacks[key]) === null || _a === void 0 ? void 0 : _a.includes(callback)) {\n try {\n if (Array.isArray(replayArgument)) {\n callback.apply(undefined, replayArgument);\n }\n else {\n callback.apply(undefined, [replayArgument]);\n }\n }\n catch (err) {\n _handleError(err, key);\n }\n }\n });\n }, 0);\n }\n return function () {\n var allForKey = callbacks[key];\n if (!allForKey) {\n return;\n }\n allForKey = allForKey.reduce(function (acc, element, index) {\n if (!(element === callback && acc.length === index)) {\n acc.push(element);\n }\n return acc;\n }, []);\n if (allForKey.length === 0) {\n delete callbacks[key];\n }\n else {\n callbacks[key] = allForKey;\n }\n };\n }\n function execute(key) {\n var argumentsArr = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n argumentsArr[_i - 1] = arguments[_i];\n }\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey || callbacksForKey.length === 0) {\n return [];\n }\n var results = [];\n callbacksForKey.forEach(function (callback) {\n try {\n var result = callback.apply(undefined, argumentsArr);\n results.push(result);\n }\n catch (err) {\n results.push(undefined);\n _handleError(err, key);\n }\n });\n return results;\n }\n function _handleError(exceptionArtifact, key) {\n var errParam = exceptionArtifact instanceof Error ? exceptionArtifact : new Error(exceptionArtifact);\n if (_userErrorHandler) {\n _userErrorHandler(errParam);\n return;\n }\n var msg = \"[ERROR] callback-registry: User callback for key \\\"\" + key + \"\\\" failed: \" + errParam.stack;\n if (options) {\n switch (options.errorHandling) {\n case \"log\":\n return console.error(msg);\n case \"silent\":\n return;\n case \"throw\":\n throw new Error(msg);\n }\n }\n console.error(msg);\n }\n function clear() {\n callbacks = {};\n }\n function clearKey(key) {\n var callbacksForKey = callbacks[key];\n if (!callbacksForKey) {\n return;\n }\n delete callbacks[key];\n }\n return {\n add: add,\n execute: execute,\n clear: clear,\n clearKey: clearKey\n };\n}\n;\ncreateRegistry.default = createRegistry;\nmodule.exports = createRegistry;\n//# sourceMappingURL=index.js.map","/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Typeguard for `Ok`.\r\n */\r\nvar isOk = function (r) { return r.ok === true; };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Typeguard for `Err`.\r\n */\r\nvar isErr = function (r) { return r.ok === false; };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Given an array of `Result`s, return the successful values.\r\n */\r\nvar successes = function (results) {\r\n return results.reduce(function (acc, r) { return (r.ok === true ? acc.concat(r.result) : acc); }, []);\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n\r\nvar result = Object.freeze({\r\n\tok: ok,\r\n\tisOk: isOk,\r\n\terr: err,\r\n\tisErr: isErr,\r\n\tasPromise: asPromise,\r\n\twithDefault: withDefault,\r\n\twithException: withException,\r\n\tsuccesses: successes,\r\n\tmap: map,\r\n\tmap2: map2,\r\n\tmapError: mapError,\r\n\tandThen: andThen\r\n});\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/**\r\n * Type guard for `DecoderError`. One use case of the type guard is in the\r\n * `catch` of a promise. Typescript types the error argument of `catch` as\r\n * `any`, so when dealing with a decoder as a promise you may need to\r\n * distinguish between a `DecoderError` and an error string.\r\n */\r\nvar isDecoderError = function (a) {\r\n return a.kind === 'DecoderError' && typeof a.at === 'string' && typeof a.message === 'string';\r\n};\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nvar unknownJson = Decoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nvar tuple = Decoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nvar intersection = Decoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nvar withDefault$1 = Decoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nvar valueAt = Decoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nvar succeed = Decoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nvar lazy = Decoder.lazy;\r\n\r\nexport { result as Result, Decoder, isDecoderError, string, number, boolean, anyJson, unknownJson, constant, object, array, tuple, dict, optional, oneOf, union, intersection, withDefault$1 as withDefault, valueAt, succeed, fail, lazy };\r\n//# sourceMappingURL=index.es5.js.map\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["privateData","getBase","data","getData","CallbackRegistry"],"mappings":";;;;;;;;;;CACA,SAAS,cAAc,CAAC,OAAO,EAAE;CACjC,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa;CACxC,WAAW,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU;CACtD,WAAW,OAAO,CAAC,aAAa,KAAK,KAAK;CAC1C,WAAW,OAAO,CAAC,aAAa,KAAK,QAAQ;CAC7C,WAAW,OAAO,CAAC,aAAa,KAAK,OAAO,EAAE;CAC9C,QAAQ,MAAM,IAAI,KAAK,CAAC,iIAAiI,GAAG,OAAO,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC;CAC1M,KAAK;CACL,IAAI,IAAI,iBAAiB,GAAG,OAAO,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;CAC5G,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC;CACvB,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE;CACpD,QAAQ,IAAI,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;CAC7C,QAAQ,IAAI,CAAC,eAAe,EAAE;CAC9B,YAAY,eAAe,GAAG,EAAE,CAAC;CACjC,YAAY,SAAS,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;CAC7C,SAAS;CACT,QAAQ,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;CACvC,QAAQ,IAAI,kBAAkB,EAAE;CAChC,YAAY,UAAU,CAAC,YAAY;CACnC,gBAAgB,kBAAkB,CAAC,OAAO,CAAC,UAAU,cAAc,EAAE;CACrE,oBAAoB,IAAI,EAAE,CAAC;CAC3B,oBAAoB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;CAC1G,wBAAwB,IAAI;CAC5B,4BAA4B,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;CAC/D,gCAAgC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;CAC1E,6BAA6B;CAC7B,iCAAiC;CACjC,gCAAgC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;CAC5E,6BAA6B;CAC7B,yBAAyB;CACzB,wBAAwB,OAAO,GAAG,EAAE;CACpC,4BAA4B,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACnD,yBAAyB;CACzB,qBAAqB;CACrB,iBAAiB,CAAC,CAAC;CACnB,aAAa,EAAE,CAAC,CAAC,CAAC;CAClB,SAAS;CACT,QAAQ,OAAO,YAAY;CAC3B,YAAY,IAAI,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;CAC3C,YAAY,IAAI,CAAC,SAAS,EAAE;CAC5B,gBAAgB,OAAO;CACvB,aAAa;CACb,YAAY,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;CACxE,gBAAgB,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE;CACrE,oBAAoB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CACtC,iBAAiB;CACjB,gBAAgB,OAAO,GAAG,CAAC;CAC3B,aAAa,EAAE,EAAE,CAAC,CAAC;CACnB,YAAY,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;CACxC,gBAAgB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CACtC,aAAa;CACb,iBAAiB;CACjB,gBAAgB,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CAC3C,aAAa;CACb,SAAS,CAAC;CACV,KAAK;CACL,IAAI,SAAS,OAAO,CAAC,GAAG,EAAE;CAC1B,QAAQ,IAAI,YAAY,GAAG,EAAE,CAAC;CAC9B,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACtD,YAAY,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CACjD,SAAS;CACT,QAAQ,IAAI,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;CAC7C,QAAQ,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;CAC9D,YAAY,OAAO,EAAE,CAAC;CACtB,SAAS;CACT,QAAQ,IAAI,OAAO,GAAG,EAAE,CAAC;CACzB,QAAQ,eAAe,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;CACpD,YAAY,IAAI;CAChB,gBAAgB,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;CACrE,gBAAgB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACrC,aAAa;CACb,YAAY,OAAO,GAAG,EAAE;CACxB,gBAAgB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CACxC,gBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACvC,aAAa;CACb,SAAS,CAAC,CAAC;CACX,QAAQ,OAAO,OAAO,CAAC;CACvB,KAAK;CACL,IAAI,SAAS,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE;CAClD,QAAQ,IAAI,QAAQ,GAAG,iBAAiB,YAAY,KAAK,GAAG,iBAAiB,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;CAC7G,QAAQ,IAAI,iBAAiB,EAAE;CAC/B,YAAY,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CACxC,YAAY,OAAO;CACnB,SAAS;CACT,QAAQ,IAAI,GAAG,GAAG,qDAAqD,GAAG,GAAG,GAAG,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;CAC/G,QAAQ,IAAI,OAAO,EAAE;CACrB,YAAY,QAAQ,OAAO,CAAC,aAAa;CACzC,gBAAgB,KAAK,KAAK;CAC1B,oBAAoB,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CAC9C,gBAAgB,KAAK,QAAQ;CAC7B,oBAAoB,OAAO;CAC3B,gBAAgB,KAAK,OAAO;CAC5B,oBAAoB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;CACzC,aAAa;CACb,SAAS;CACT,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CAC3B,KAAK;CACL,IAAI,SAAS,KAAK,GAAG;CACrB,QAAQ,SAAS,GAAG,EAAE,CAAC;CACvB,KAAK;CACL,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE;CAC3B,QAAQ,IAAI,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;CAC7C,QAAQ,IAAI,CAAC,eAAe,EAAE;CAC9B,YAAY,OAAO;CACnB,SAAS;CACT,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CAC9B,KAAK;CACL,IAAI,OAAO;CACX,QAAQ,GAAG,EAAE,GAAG;CAChB,QAAQ,OAAO,EAAE,OAAO;CACxB,QAAQ,KAAK,EAAE,KAAK;CACpB,QAAQ,QAAQ,EAAE,QAAQ;CAC1B,KAAK,CAAC;CACN,CAAC;CAED,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC;KACxC,GAAc,GAAG,cAAc,CAAC;AAChC;;;;CCtHA;CACA;CACA;CACA;CACA;CACA,IAAI,EAAE,GAAG,UAAU,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;CAKtE;CACA;CACA;CACA;CACA;CACA,IAAI,GAAG,GAAG,UAAU,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;CAKrE;CACA;CACA;CACA;CACA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;CAC7B,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC/E,CAAC,CAAC;CACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,WAAW,GAAG,UAAU,YAAY,EAAE,CAAC,EAAE;CAC7C,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC;CACnD,CAAC,CAAC;CACF;CACA;CACA;CACA,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE;CACjC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;CACvB,QAAQ,OAAO,CAAC,CAAC,MAAM,CAAC;CACxB,KAAK;CACL,SAAS;CACT,QAAQ,MAAM,CAAC,CAAC,KAAK,CAAC;CACtB,KAAK;CACL,CAAC,CAAC;CAOF;CACA;CACA;CACA,IAAI,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;CAC1B,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;CAC/C,CAAC,CAAC;CACF;CACA;CACA;CACA;CACA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;CAChC,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,KAAK,GAAG,EAAE;CAC/B,QAAQ,EAAE,CAAC,EAAE,KAAK,KAAK,GAAG,EAAE;CAC5B,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC,CAAC,CAAC;CACF;CACA;CACA;CACA,IAAI,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;CAC/B,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAC/C,CAAC,CAAC;CACF;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;CAC9B,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CAC3C,CAAC,CAAC;AAiBF;CACA;CACA;AACA;CACA;CACA;AACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACA;AACA;AACA;CACA,IAAI,QAAQ,GAAG,WAAW;CAC1B,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;CACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;CAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACzF,SAAS;CACT,QAAQ,OAAO,CAAC,CAAC;CACjB,KAAK,CAAC;CACN,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CAC3C,CAAC,CAAC;AACF;CACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;CACtB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;CACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;CACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;CACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC,SAAS;CACT,IAAI,OAAO,CAAC,CAAC;CACb,CAAC;AACD;CACA,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE;CACvB,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;CACjB,QAAQ,OAAO,IAAI,CAAC;CACpB,KAAK;CACL,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;CAClC,QAAQ,OAAO,IAAI,CAAC;CACpB,KAAK;CACL,IAAI,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE;CACnC,QAAQ,OAAO,KAAK,CAAC;CACrB,KAAK;CACL,IAAI,IAAI,QAAQ,CAAC,CAAC,KAAK,QAAQ,EAAE;CACjC;CACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;CAC9B,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;CACnC,gBAAgB,OAAO,KAAK,CAAC;CAC7B,aAAa;CACb,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;CACvC,gBAAgB,OAAO,KAAK,CAAC;CAC7B,aAAa;CACb,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC/C,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAC1C,oBAAoB,OAAO,KAAK,CAAC;CACjC,iBAAiB;CACjB,aAAa;CACb,YAAY,OAAO,IAAI,CAAC;CACxB,SAAS;CACT;CACA,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAClC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;CACnD,YAAY,OAAO,KAAK,CAAC;CACzB,SAAS;CACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;CAC5C,gBAAgB,OAAO,KAAK,CAAC;CAC7B,aAAa;CACb,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAClD,gBAAgB,OAAO,KAAK,CAAC;CAC7B,aAAa;CACb,SAAS;CACT,QAAQ,OAAO,IAAI,CAAC;CACpB,KAAK;CACL,CAAC;CAUD;CACA;CACA;CACA,IAAI,WAAW,GAAG,UAAU,IAAI,EAAE,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAClE,IAAI,YAAY,GAAG,UAAU,IAAI,EAAE;CACnC,IAAI,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC,CAAC;CACF,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;CACjC,IAAI,QAAQ,OAAO,IAAI;CACvB,QAAQ,KAAK,QAAQ;CACrB,YAAY,OAAO,UAAU,CAAC;CAC9B,QAAQ,KAAK,QAAQ;CACrB,YAAY,OAAO,UAAU,CAAC;CAC9B,QAAQ,KAAK,SAAS;CACtB,YAAY,OAAO,WAAW,CAAC;CAC/B,QAAQ,KAAK,WAAW;CACxB,YAAY,OAAO,WAAW,CAAC;CAC/B,QAAQ,KAAK,QAAQ;CACrB,YAAY,IAAI,IAAI,YAAY,KAAK,EAAE;CACvC,gBAAgB,OAAO,UAAU,CAAC;CAClC,aAAa;CACb,iBAAiB,IAAI,IAAI,KAAK,IAAI,EAAE;CACpC,gBAAgB,OAAO,MAAM,CAAC;CAC9B,aAAa;CACb,iBAAiB;CACjB,gBAAgB,OAAO,WAAW,CAAC;CACnC,aAAa;CACb,QAAQ;CACR,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACxC,KAAK;CACL,CAAC,CAAC;CACF,IAAI,WAAW,GAAG,UAAU,QAAQ,EAAE,GAAG,EAAE;CAC3C,IAAI,OAAO,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;CAC/D,CAAC,CAAC;CACF,IAAI,SAAS,GAAG,UAAU,KAAK,EAAE;CACjC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,QAAQ,OAAO,IAAI,KAAK,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CACtH,CAAC,CAAC;CACF,IAAI,SAAS,GAAG,UAAU,KAAK,EAAE,EAAE,EAAE;CACrC,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;CAC9C,IAAI,QAAQ,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;CACxD,CAAC,CAAC;CACF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,kBAAkB,YAAY;CACzC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,OAAO,CAAC,MAAM,EAAE;CAC7B,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;CACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,QAAQ,IAAI,CAAC,GAAG,GAAG,UAAU,IAAI,EAAE;CACnC,YAAY,OAAO,QAAQ,CAAC,UAAU,KAAK,EAAE,EAAE,QAAQ;CACvD,gBAAgB,IAAI,EAAE,cAAc;CACpC,gBAAgB,KAAK,EAAE,IAAI;CAC3B,gBAAgB,EAAE,EAAE,OAAO,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAC9C,gBAAgB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;CAC5C,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CACvC,SAAS,CAAC;CACV;CACA;CACA;CACA,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;CACjF;CACA;CACA;CACA;CACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,UAAU,IAAI,EAAE,EAAE,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3F;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,QAAQ,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE;CAChC,YAAY,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACvF,SAAS,CAAC;CACV;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,QAAQ,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,EAAE;CACpC,YAAY,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC/C,gBAAgB,OAAO,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CACvG,aAAa,CAAC,CAAC;CACf,SAAS,CAAC;CACV;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,QAAQ,IAAI,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE,YAAY,EAAE;CACnD,YAAY,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;CACnI,SAAS,CAAC;CACV,KAAK;CACL;CACA;CACA;CACA,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY;CACjC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,OAAO,OAAO,IAAI,KAAK,QAAQ;CAC3C,kBAAkB,EAAE,CAAC,IAAI,CAAC;CAC1B,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CAClE,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN;CACA;CACA;CACA,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY;CACjC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,OAAO,OAAO,IAAI,KAAK,QAAQ;CAC3C,kBAAkB,EAAE,CAAC,IAAI,CAAC;CAC1B,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CAClE,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN;CACA;CACA;CACA,IAAI,OAAO,CAAC,OAAO,GAAG,YAAY;CAClC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,OAAO,OAAO,IAAI,KAAK,SAAS;CAC5C,kBAAkB,EAAE,CAAC,IAAI,CAAC;CAC1B,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACnE,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN,IAAI,OAAO,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE;CACxC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;CACvC,kBAAkB,EAAE,CAAC,KAAK,CAAC;CAC3B,kBAAkB,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAC1G,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU,QAAQ,EAAE;CACzC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;CAChD,gBAAgB,IAAI,GAAG,GAAG,EAAE,CAAC;CAC7B,gBAAgB,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAE;CAC1C,oBAAoB,IAAI,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;CACtD,wBAAwB,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAChE,wBAAwB,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;CAC3C;CACA,4BAA4B,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE;CACxD,gCAAgC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;CACpD,6BAA6B;CAC7B,yBAAyB;CACzB,6BAA6B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;CAC1D,4BAA4B,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,GAAG,GAAG,mCAAmC,EAAE,CAAC,CAAC;CAC7G,yBAAyB;CACzB,6BAA6B;CAC7B,4BAA4B,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACtE,yBAAyB;CACzB,qBAAqB;CACrB,iBAAiB;CACjB,gBAAgB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAC/B,aAAa;CACb,iBAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;CACzC,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;CAChC,aAAa;CACb,iBAAiB;CACjB,gBAAgB,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACxE,aAAa;CACb,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN,IAAI,OAAO,CAAC,KAAK,GAAG,UAAU,OAAO,EAAE;CACvC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE;CAC9C,gBAAgB,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;CACpD,oBAAoB,OAAO,QAAQ,CAAC,UAAU,MAAM,EAAE,EAAE,OAAO,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CACvH,iBAAiB,CAAC;CAClB,gBAAgB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;CACxD,oBAAoB,OAAO,IAAI,CAAC,UAAU,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACnH,iBAAiB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3B,aAAa;CACb,iBAAiB,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;CACxC,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;CAChC,aAAa;CACb,iBAAiB;CACjB,gBAAgB,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACvE,aAAa;CACb,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN,IAAI,OAAO,CAAC,KAAK,GAAG,UAAU,QAAQ,EAAE;CACxC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;CACnC,gBAAgB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;CACrD,oBAAoB,OAAO,GAAG,CAAC;CAC/B,wBAAwB,OAAO,EAAE,6BAA6B,GAAG,QAAQ,CAAC,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAAC,MAAM;CACvH,qBAAqB,CAAC,CAAC;CACvB,iBAAiB;CACjB,gBAAgB,IAAI,MAAM,GAAG,EAAE,CAAC;CAChC,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC1D,oBAAoB,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1D,oBAAoB,IAAI,GAAG,CAAC,EAAE,EAAE;CAChC,wBAAwB,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;CAC/C,qBAAqB;CACrB,yBAAyB;CACzB,wBAAwB,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;CACxE,qBAAqB;CACrB,iBAAiB;CACjB,gBAAgB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;CAClC,aAAa;CACb,iBAAiB;CACjB,gBAAgB,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACnG,aAAa;CACb,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN,IAAI,OAAO,CAAC,KAAK,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;CACtC,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC;CAC1B,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACtD,YAAY,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CAC7C,SAAS;CACT,QAAQ,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACvE,KAAK,CAAC;CACN,IAAI,OAAO,CAAC,YAAY,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE;CAC7C,QAAQ,IAAI,EAAE,GAAG,EAAE,CAAC;CACpB,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACtD,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CACvC,SAAS;CACT,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1I,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,OAAO,GAAG,YAAY,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;CAChG;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,WAAW,GAAG,YAAY;CACtC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;CACjE,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,IAAI,GAAG,UAAU,OAAO,EAAE;CACtC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;CACpC,gBAAgB,IAAI,GAAG,GAAG,EAAE,CAAC;CAC7B,gBAAgB,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;CACtC,oBAAoB,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;CAClD,wBAAwB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1D,wBAAwB,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;CAC3C,4BAA4B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;CAChD,yBAAyB;CACzB,6BAA6B;CAC7B,4BAA4B,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CACtE,yBAAyB;CACzB,qBAAqB;CACrB,iBAAiB;CACjB,gBAAgB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAC/B,aAAa;CACb,iBAAiB;CACjB,gBAAgB,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACxE,aAAa;CACb,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,QAAQ,GAAG,UAAU,OAAO,EAAE;CAC1C,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,QAAQ,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;CACrI,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,KAAK,GAAG,YAAY;CAChC,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC;CAC1B,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;CACtD,YAAY,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CACzC,SAAS;CACT,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,IAAI,MAAM,GAAG,EAAE,CAAC;CAC5B,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACtD,gBAAgB,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACjD,gBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;CACnC,oBAAoB,OAAO,CAAC,CAAC;CAC7B,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;CACxC,iBAAiB;CACjB,aAAa;CACb,YAAY,IAAI,UAAU,GAAG,MAAM;CACnC,iBAAiB,GAAG,CAAC,UAAU,KAAK,EAAE,EAAE,OAAO,UAAU,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;CACvG,iBAAiB,IAAI,CAAC,MAAM,CAAC,CAAC;CAC9B,YAAY,OAAO,GAAG,CAAC;CACvB,gBAAgB,OAAO,EAAE,mEAAmE,GAAG,UAAU,GAAG,KAAK;CACjH,aAAa,CAAC,CAAC;CACf,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,WAAW,GAAG,UAAU,YAAY,EAAE,OAAO,EAAE;CAC3D,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,OAAO,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACvE,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;CAChD,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE;CAC3C,YAAY,IAAI,UAAU,GAAG,IAAI,CAAC;CAClC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACnD,gBAAgB,IAAI,UAAU,KAAK,SAAS,EAAE;CAC9C,oBAAoB,OAAO,GAAG,CAAC;CAC/B,wBAAwB,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5D,wBAAwB,OAAO,EAAE,qBAAqB;CACtD,qBAAqB,CAAC,CAAC;CACvB,iBAAiB;CACjB,qBAAqB,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;CACpF,oBAAoB,OAAO,GAAG,CAAC;CAC/B,wBAAwB,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5D,wBAAwB,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC;CACrE,qBAAqB,CAAC,CAAC;CACvB,iBAAiB;CACjB,qBAAqB,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;CACnF,oBAAoB,OAAO,GAAG,CAAC;CAC/B,wBAAwB,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5D,wBAAwB,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;CACpE,qBAAqB,CAAC,CAAC;CACvB,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACtD,iBAAiB;CACjB,aAAa;CACb,YAAY,OAAO,QAAQ,CAAC,UAAU,KAAK,EAAE;CAC7C,gBAAgB,OAAO,UAAU,KAAK,SAAS;CAC/C,sBAAsB,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE;CAC9E,sBAAsB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;CACzD,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;CAC3C,SAAS,CAAC,CAAC;CACX,KAAK,CAAC;CACN;CACA;CACA;CACA,IAAI,OAAO,CAAC,OAAO,GAAG,UAAU,UAAU,EAAE;CAC5C,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;CACvE,KAAK,CAAC;CACN;CACA;CACA;CACA,IAAI,OAAO,CAAC,IAAI,GAAG,UAAU,YAAY,EAAE;CAC3C,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACvF,KAAK,CAAC;CACN;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,OAAO,CAAC,IAAI,GAAG,UAAU,SAAS,EAAE;CACxC,QAAQ,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;CACjF,KAAK,CAAC;CACN,IAAI,OAAO,OAAO,CAAC;CACnB,CAAC,EAAE,CAAC,CAAC;AACL;CACA;CACA;CACA,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAC5B;CACA,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAC5B;CACA,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9B;CACA,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9B;CACkB,OAAO,CAAC,YAAY;CACtC;CACA,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;CAChC;CACA,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAC5B;CACA,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAC1B;CACY,OAAO,CAAC,MAAM;CAC1B;CACW,OAAO,CAAC,KAAK;CACxB;CACA,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;CAChC;CACA,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAC1B;CACY,OAAO,CAAC,MAAM;CAC1B;CACA,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CACxC;CACoB,OAAO,CAAC,YAAY;CACxC;CACc,OAAO,CAAC,QAAQ;CAC9B;CACc,OAAO,CAAC,QAAQ;CAC9B;CACW,OAAO,CAAC,KAAK;CACxB;CACA,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI;;CC7uBhB,MAAM,qBAAqB,GAAoB,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;CAClH,MAAM,wBAAwB,GAAoB,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;CACtH,MAAM,qBAAqB,GAAoB,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,4BAA4B,CAAC,CAAC;CAG9G,MAAM,+BAA+B,GAAsC,MAAM,CAAC;KACrF,WAAW,EAAE,OAAO,EAAE;CACzB,CAAA,CAAC,CAAC;CAEI,MAAM,gBAAgB,GAAsD,KAAK,CACpF,QAAQ,CAAC,WAAW,CAAC,EACrB,QAAQ,CAAC,KAAK,CAAC,EACf,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,OAAO,CAAC,CACpB,CAAC;CAEK,MAAM,gBAAgB,GAAwC,KAAK,CACtE,QAAQ,CAAC,KAAK,CAAC,EACf,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,OAAO,CAAC,CACpB,CAAC;CAEK,MAAM,iBAAiB,GAAkD,KAAK,CACjF,QAAQ,CAAC,WAAW,CAAC,EACrB,QAAQ,CAAC,WAAW,CAAC,EACrB,QAAQ,CAAC,QAAQ,CAAC,CACrB,CAAC;CAEK,MAAM,2BAA2B,GAAyB,KAAK,CAClE,QAAQ,CAAC,WAAW,CAAC,CACxB,CAAC;CAEK,MAAM,kBAAkB,GAAG,CAAC,QAAiB,EAAE,cAAwB,KAAU;CACpF,IAAA,MAAM,YAAY,GAAG,OAAO,QAAQ,CAAC;KAErC,IAAI,cAAc,IAAI,YAAY,KAAK,UAAU,IAAI,YAAY,KAAK,WAAW,EAAE;CAC/E,QAAA,MAAM,IAAI,KAAK,CAAC,6EAA6E,YAAY,CAAA,CAAE,CAAC,CAAC;CAChH,KAAA;CAED,IAAA,IAAI,CAAC,cAAc,IAAI,YAAY,KAAK,UAAU,EAAE;CAChD,QAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,YAAY,CAAA,CAAE,CAAC,CAAC;CAC5F,KAAA;CACL,CAAC,CAAC;CAEK,MAAM,mCAAmC,GAAuD,QAAQ,CAAC,MAAM,CAAC;CACnH,IAAA,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,CAAA,CAAC,CAAC,CAAC;CAEG,MAAM,yBAAyB,GAAgC,MAAM,CAAC;CACzE,IAAA,IAAI,EAAE,qBAAqB;CAC9B,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAAiE,MAAM,CAAC;CAC9G,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACvC,CAAA,CAAC,CAAC;CAEI,MAAM,4BAA4B,GAAuD,MAAM,CAAC;CACnG,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,kBAAkB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACvC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,mBAAmB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAqD,MAAM,CAAC;CAC/F,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7B,IAAA,oBAAoB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC5C,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAAwD,MAAM,CAAC;CACrG,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7B,IAAA,oBAAoB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC5C,CAAA,CAAC,CAAC;CAEI,MAAM,+BAA+B,GAA2D,MAAM,CAAC;CAC1G,IAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;CAClC,IAAA,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,IAAA,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACzC,IAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC5B,IAAA,MAAM,EAAE,QAAQ,CAAC,6BAA6B,CAAC;CAClD,CAAA,CAAC,CAAC;CAEI,MAAM,qCAAqC,GAA2D,MAAM,CAAC;CAChH,IAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACxB,IAAA,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,IAAA,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACzC,IAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC5B,IAAA,MAAM,EAAE,QAAQ,CAAC,6BAA6B,CAAC;CAClD,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA+C,QAAQ,CAAC,MAAM,CAAC;CAC/F,IAAA,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CAChC,IAAA,QAAQ,EAAE,QAAQ,CACd,IAAI,CAAC,MAAM,KAAK,CACZ,KAAK,CACD,+BAA+B,EAC/B,uBAAuB,CAC1B,CACJ,CAAC,CACL;CACD,IAAA,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,CAAA,CAAC,CAAC,CAAC;CAGG,MAAM,6BAA6B,GAA+C,MAAM,CAAC;CAC5F,IAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACxB,IAAA,QAAQ,EAAE,QAAQ,CACd,IAAI,CAAC,MAAM,KAAK,CACZ,KAAK,CACD,qCAAqC,EACrC,6BAA6B,CAChC,CACJ,CAAC,CACL;CACD,IAAA,MAAM,EAAE,QAAQ,CAAC,6BAA6B,CAAC;CAClD,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAA+C,MAAM,CAAC;CACzF,IAAA,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;CACrB,IAAA,QAAQ,EAAE,QAAQ,CACd,IAAI,CAAC,MAAM,KAAK,CACZ,KAAK,CACD,qCAAqC,EACrC,6BAA6B,CAChC,CACJ,CAAC,CACL;CACD,IAAA,MAAM,EAAE,QAAQ,CAAC,0BAA0B,CAAC;CAC/C,CAAA,CAAC,CAAC;CAEI,MAAM,4BAA4B,GAA+C,MAAM,CAAC;CAC3F,IAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;CACvB,IAAA,QAAQ,EAAE,QAAQ,CACd,IAAI,CAAC,MAAM,KAAK,CACZ,KAAK,CACD,qCAAqC,EACrC,6BAA6B,CAChC,CACJ,CAAC,CACL;CACD,IAAA,MAAM,EAAE,QAAQ,CAAC,4BAA4B,CAAC;CACjD,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAA+C,KAAK,CAAC,4BAA4B,EAAE,6BAA6B,EAAE,0BAA0B,CAAC,CAAC;CAE3H,KAAK,CAC7D,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE,sDAAsD,CAA0B,EACvI,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,mDAAmD,CAAuB,EACjI;CAEK,MAAM,qBAAqB,GAAgD,MAAM,CAAC;CACrF,IAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;CACpB,QAAA,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACxB,QAAA,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACvB,QAAA,KAAK,EAAE,QAAQ,CAAC,wBAAwB,CAAC;CACzC,QAAA,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC;CAC7C,KAAA,CAAC,CAAC;CACH,IAAA,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CAC3C,CAAA,CAAC,CAAC;CAEI,MAAM,sBAAsB,GAAiD,KAAK,CACrF,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,SAAS,CAAC,EACnB,QAAQ,CAAC,MAAM,CAAC,CACnB,CAAC;CAEK,MAAM,6BAA6B,GAAwD,QAAQ,CAAC,MAAM,CAAC;CAC9G,IAAA,GAAG,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACpC,IAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC5B,IAAA,eAAe,EAAE,QAAQ,CAAC,sBAAsB,CAAC;CACjD,IAAA,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACtC,IAAA,gBAAgB,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACjD,IAAA,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,IAAA,eAAe,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CAChD,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7B,IAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAClC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CACpB,qBAAqB,EACrB,OAAO,EAAE,CACZ,CAAC;CACF,IAAA,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAChC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACrC,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7B,IAAA,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/B,IAAA,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC;CACjD,IAAA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9C,CAAA,CAAC,CAAC,CAAC;CAEG,MAAM,0BAA0B,GAAiC,MAAM,CAAC;CAC3E,IAAA,IAAI,EAAE,qBAAqB;CAC3B,IAAA,cAAc,EAAE,QAAQ,CAAC,6BAA6B,CAAC;CAC1D,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAqD,MAAM,CAAC;CAC/F,IAAA,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAC1B,+BAA+B,EAC/B,6BAA6B,CAChC,CAAC,CAAC;CACH,IAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC5B,IAAA,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;CACpB,QAAA,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACtC,QAAA,QAAQ,EAAE,QAAQ,CAAC,wBAAwB,CAAC;CAC5C,QAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,QAAA,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAChC,QAAA,gBAAgB,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACjD,QAAA,eAAe,EAAE,QAAQ,CAAC,sBAAsB,CAAC;CACjD,QAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,QAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,QAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,QAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,QAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,QAAA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,QAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,QAAA,kBAAkB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACvC,QAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,QAAA,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7C,QAAA,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7C,QAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,QAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,QAAA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,QAAA,gBAAgB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACrC,QAAA,oBAAoB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACzC,QAAA,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACrC,QAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7B,QAAA,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/B,QAAA,aAAa,EAAE,QAAQ,CAAC,wBAAwB,CAAC;CACpD,KAAA,CAAC,CAAC;CACH,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;CACnB,QAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7B,QAAA,YAAY,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CAC7C,QAAA,eAAe,EAAE,QAAQ,CAAC,qBAAqB,CAAC;SAChD,QAAQ,EAAE,QAAQ,CAAC,KAAK,CACpB,OAAO,EAAE,EACT,qBAAqB,CACxB,CAAC;CACL,KAAA,CAAC,CAAC;CACN,CAAA,CAAC,CAAC;CAEI,MAAM,wBAAwB,GAA+B,MAAM,CAAC;CACvE,IAAA,WAAW,EAAE,qBAAqB;CACrC,CAAA,CAAC,CAAC;CAEI,MAAM,iCAAiC,GAA4D,MAAM,CAAC;CAC7G,IAAA,IAAI,EAAE,qBAAqB;CAC3B,IAAA,cAAc,EAAE,QAAQ,CAAC,6BAA6B,CAAC;CAC1D,CAAA,CAAC,CAAC;CAEI,MAAM,2BAA2B,GAAsD,QAAQ,CAAC,MAAM,CAAC;CAC1G,IAAA,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACnC,IAAA,WAAW,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CAC5C,IAAA,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC3B,IAAA,iBAAiB,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACrD,CAAA,CAAC,CAAC,CAAC;CAEG,MAAM,sBAAsB,GAA2D,MAAM,CAAC;CACjG,IAAA,UAAU,EAAE,KAAK,CAAC,KAAK,CACnB,QAAQ,CAAC,0BAA0B,CAAC,EACpC,QAAQ,CAAC,iCAAiC,CAAC,CAC9C,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,8BAA8B,GAA+C,MAAM,CAAC;CAC7F,IAAA,OAAO,EAAE,qBAAqB;KAC9B,UAAU,EAAE,KAAK,CAAC,KAAK,CACnB,0BAA0B,EAC1B,iCAAiC,CACpC,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,oBAAoB,GAA+C,MAAM,CAAC;CACnF,IAAA,IAAI,EAAE,gBAAgB;KACtB,UAAU,EAAE,QAAQ,CAAC,KAAK,CACtB,0BAA0B,EAC1B,uBAAuB,CAC1B,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,4BAA4B,GAA2C,YAAY,CAC5F,0BAA0B,EAC1B,MAAM,CAAC;CACH,IAAA,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC;CACxB,QAAA,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,KAAA,CAAC,CAAC;CACN,CAAA,CAAC,CACL,CAAC;CAEK,MAAM,4BAA4B,GAAmC,MAAM,CAAC;CAC/E,IAAA,MAAM,EAAE,qBAAqB;CAChC,CAAA,CAAC,CAAC;CAEI,MAAM,iCAAiC,GAA4D,MAAM,CAAC;CAC7G,IAAA,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAA,CAAC,CAAC;CAEI,MAAM,mBAAmB,GAAgC,MAAM,CAAC;CACnE,IAAA,EAAE,EAAE,qBAAqB;CACzB,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,IAAA,qBAAqB,EAAE,QAAQ,CAAC,iCAAiC,CAAC;CACrE,CAAA,CAAC,CAAC;CAE6E,MAAM,CAAC;CACnF,IAAA,IAAI,EAAE,gBAAgB;CACtB,IAAA,EAAE,EAAE,qBAAqB;CACzB,IAAA,OAAO,EAAE,qBAAqB;CAC9B,IAAA,WAAW,EAAE,qBAAqB;KAClC,aAAa,EAAE,MAAM,EAAE;CAC1B,CAAA,EAAE;CAEI,MAAM,gBAAgB,GAAgC,KAAK,CAC9D,QAAQ,CAAC,OAAO,CAAC,EACjB,QAAQ,CAAC,WAAW,CAAC,EACrB,QAAQ,CAAC,WAAW,CAAC,EACrB,QAAQ,CAAC,QAAQ,CAAC,CACrB,CAAC;CAEK,MAAM,6BAA6B,GAA0D,MAAM,CAAC;CACvG,IAAA,IAAI,EAAE,gBAAgB;CACtB,IAAA,MAAM,EAAE,qBAAqB;CAChC,CAAA,CAAC,CAAC;CAEI,MAAM,2BAA2B,GAAkC,KAAK,CAC3E,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,SAAS,CAAC,EACnB,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,OAAO,CAAC,EACjB,QAAQ,CAAC,OAAO,CAAC,EACjB,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,SAAS,CAAC,EACnB,QAAQ,CAAC,gBAAgB,CAAC,EAC1B,QAAQ,CAAC,iBAAiB,CAAC,EAC3B,QAAQ,CAAC,WAAW,CAAC,EACrB,QAAQ,CAAC,UAAU,CAAC,EACpB,QAAQ,CAAC,WAAW,CAAC,EACrB,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,UAAU,CAAC,EACpB,QAAQ,CAAC,4BAA4B,CAAC,EACtC,QAAQ,CAAC,YAAY,CAAC,EACtB,QAAQ,CAAC,SAAS,CAAC,CACtB,CAAC;CAEK,MAAM,4BAA4B,GAAmC,MAAM,CAAC;CAC/E,IAAA,OAAO,EAAE,qBAAqB;CAC9B,IAAA,KAAK,EAAE,qBAAqB;CAC5B,IAAA,aAAa,EAAE,wBAAwB;CACvC,IAAA,IAAI,EAAE,qBAAqB;CAC3B,IAAA,UAAU,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CAC3C,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/B,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,kBAAkB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACvC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7C,IAAA,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7C,IAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,oBAAoB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACzC,IAAA,gBAAgB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACrC,IAAA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC9B,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAChC,CAAA,CAAC,CAAC;CAGI,MAAM,8BAA8B,GAAqC,MAAM,CAAC;CACnF,IAAA,OAAO,EAAE,qBAAqB;CAC9B,IAAA,WAAW,EAAE,qBAAqB;KAClC,aAAa,EAAE,MAAM,EAAE;CACvB,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAChC,CAAA,CAAC,CAAC;CAEI,MAAM,2BAA2B,GAAkC,OAAO,EAAE,CAAC;CAE7E,MAAM,mCAAmC,GAA0C,YAAY,CAClG,8BAA8B,EAC9B,MAAM,CAAC;CACH,IAAA,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACzC,IAAA,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;KAChC,SAAS,EAAE,OAAO,EAAE;CACpB,IAAA,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/B,IAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACzB,IAAA,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,IAAA,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC9B,IAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/B,CAAA,CAAC,CACE,CAAC;CAEF,MAAM,uCAAuC,GAAqC,MAAM,CAAC;CAC5F,IAAA,EAAE,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACnC,IAAA,MAAM,EAAE,2BAA2B;CACnC,IAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;CAC1E,IAAA,IAAI,EAAE,KAAK,CACP,QAAQ,CAAC,KAAK,CAAC,EACf,QAAQ,CAAC,QAAQ,CAAC,EAClB,QAAQ,CAAC,OAAO,CAAC,CACpB;CACJ,CAAA,CAAC,CAAC;CAEI,MAAM,oCAAoC,GAAkC,MAAM,CAAC;CACtF,IAAA,EAAE,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACnC,IAAA,MAAM,EAAE,mCAAmC;CAC3C,IAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;CAC3B,CAAA,CAAC,CAAC;CAEI,MAAM,mCAAmC,GAAiC,KAAK,CAClF,oCAAoC,EACpC,uCAAuC,CAAC,CAAC;CAEtC,MAAM,0BAA0B,GAAiC,mCAAmC,CAAC;CAErG,MAAM,8BAA8B,GAAqC,MAAM,CAAC;CACnF,IAAA,EAAE,EAAE,qBAAqB;CACzB,IAAA,MAAM,EAAE,4BAA4B;CACpC,IAAA,QAAQ,EAAE,KAAK,CAAC,0BAA0B,CAAC;CAC3C,IAAA,YAAY,EAAE,mBAAmB;CACjC,IAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC/B,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAAkD,MAAM,CAAC;CACzF,IAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;KACxB,MAAM,EAAE,MAAM,CAAC;CACX,QAAA,OAAO,EAAE,qBAAqB;CAC9B,QAAA,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACzC,QAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC5B,QAAA,GAAG,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACpC,QAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACzB,QAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,QAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,QAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,QAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,QAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,QAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC5B,QAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC7B,QAAA,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;MACnC,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,sBAAsB,GAAiD,MAAM,CAAC;CACvF,IAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;KACvB,MAAM,EAAE,OAAO,EAAE;CACjB,IAAA,QAAQ,EAAE,KAAK,CAAC,KAAK,CACjB,uBAAuB,CAC1B,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAAkD,MAAM,CAAC;CACzF,IAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;KACxB,MAAM,EAAE,OAAO,EAAE;KACjB,QAAQ,EAAE,KAAK,CAAC,KAAK,CACjB,sBAAsB,EACtB,uBAAuB,EACvB,IAAI,CAAC,MAAM,uBAAuB,CAAC,EACnC,IAAI,CAAC,MAAM,oBAAoB,CAAC,CACnC,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,oBAAoB,GAA+C,MAAM,CAAC;CACnF,IAAA,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;KACrB,MAAM,EAAE,OAAO,EAAE;CACjB,IAAA,QAAQ,EAAE,KAAK,CAAC,KAAK,CACjB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,IAAI,CAAC,MAAM,oBAAoB,CAAC,CACnC,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,sBAAsB,GAAiD,MAAM,CAAC;CACvF,IAAA,IAAI,EAAE,qBAAqB;CAC3B,IAAA,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;CAC3B,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7B,IAAA,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC;CACrB,QAAA,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;CAC3B,QAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC/B,KAAK,EAAE,MAAM,CAAC;aACV,MAAM,EAAE,OAAO,EAAE;aACjB,OAAO,EAAE,OAAO,EAAE;CAClB,YAAA,QAAQ,EAAE,KAAK,CAAC,KAAK,CACjB,oBAAoB,EACpB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,CAC1B,CAAC;UACL,CAAC;CACL,KAAA,CAAC,CAAC;CACN,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAAwF,MAAM,CAAC;CACrI,IAAA,MAAM,EAAE,sBAAsB;CAC9B,IAAA,IAAI,EAAE,KAAK,CACP,QAAQ,CAAC,SAAS,CAAC,EACnB,QAAQ,CAAC,OAAO,CAAC,CACpB;CACJ,CAAA,CAAC,CAAC;CAEI,MAAM,8BAA8B,GAA2F,MAAM,CAAC;CACzI,IAAA,OAAO,EAAE,KAAK,CAAC,sBAAsB,CAAC;CACtC,IAAA,IAAI,EAAE,KAAK,CACP,QAAQ,CAAC,SAAS,CAAC,EACnB,QAAQ,CAAC,OAAO,CAAC,CACpB;CACJ,CAAA,CAAC,CAAC;CAEI,MAAM,4BAA4B,GAAmC,MAAM,CAAC;CAC/E,IAAA,OAAO,EAAE,KAAK,CAAC,sBAAsB,CAAC;CACzC,CAAA,CAAC,CAAC;CAEI,MAAM,yBAAyB,GAAgC,MAAM,CAAC;CACzE,IAAA,EAAE,EAAE,qBAAqB;CACzB,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,IAAA,qBAAqB,EAAE,QAAQ,CAAC,iCAAiC,CAAC;CACrE,CAAA,CAAC,CAAC;CAEI,MAAM,2BAA2B,GAAkC,MAAM,CAAC;CAC7E,IAAA,SAAS,EAAE,KAAK,CAAC,yBAAyB,CAAC;CAC9C,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAAoC,MAAM,CAAC;CACjF,IAAA,EAAE,EAAE,qBAAqB;CACzB,IAAA,MAAM,EAAE,4BAA4B;CACvC,CAAA,CAAC,CAAC;CAEI,MAAM,+BAA+B,GAAsC,MAAM,CAAC;CACrF,IAAA,SAAS,EAAE,KAAK,CAAC,6BAA6B,CAAC;CAClD,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAiC,MAAM,CAAC;CAC3E,IAAA,EAAE,EAAE,qBAAqB;KACzB,MAAM,EAAE,OAAO,EAAE;CACjB,IAAA,UAAU,EAAE,KAAK,CAAC,8BAA8B,CAAC;CACpD,CAAA,CAAC,CAAC;CAEI,MAAM,oBAAoB,GAA2B,MAAM,CAAC;CAC/D,IAAA,IAAI,EAAE,qBAAqB;CAC3B,IAAA,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACtC,CAAA,CAAC,CAAC;CAEI,MAAM,sBAAsB,GAAmC,MAAM,CAAC;CACzE,IAAA,SAAS,EAAE,KAAK,CAAC,oBAAoB,CAAC;CACzC,CAAA,CAAC,CAAC;CAEI,MAAM,yCAAyC,GAAgD,MAAM,CAAC;CACzG,IAAA,QAAQ,EAAE,qBAAqB;CAClC,CAAA,CAAC,CAAC;CAEI,MAAM,iBAAiB,GAAgB,OAAO,EAAE,CAAC;CAEjD,MAAM,uBAAuB,GAA8B,MAAM,CAAC;CACrE,IAAA,KAAK,EAAE,iBAAiB;CAC3B,CAAA,CAAC,CAAC;CAEI,MAAM,kBAAkB,GAAyB,MAAM,CAAC;KAC3D,GAAG,EAAE,MAAM,EAAE;KACb,IAAI,EAAE,MAAM,EAAE;CACd,IAAA,KAAK,EAAE,wBAAwB;CAC/B,IAAA,MAAM,EAAE,wBAAwB;CACnC,CAAA,CAAC,CAAC;CAEI,MAAM,wBAAwB,GAA+B,MAAM,CAAC;CACvE,IAAA,MAAM,EAAE,kBAAkB;CAC7B,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAAoC,MAAM,CAAC;CACjF,IAAA,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,CAAA,CAAC,CAAC;CAEI,MAAM,+BAA+B,GAAsC,MAAM,CAAC;CACrF,IAAA,EAAE,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACtC,CAAA,CAAC,CAAC;CAEI,MAAM,2BAA2B,GAAkC,MAAM,CAAC;KAC7E,WAAW,EAAE,OAAO,EAAE;CACzB,CAAA,CAAC,CAAC;CAEI,MAAM,mBAAmB,GAA8C,MAAM,CAAC;CACjF,IAAA,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACtC,IAAA,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACvC,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAChC,CAAA,CAAC,CAAC;CAEI,MAAM,iBAAiB,GAA4C,MAAM,CAAC;CAC7E,IAAA,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACvB,IAAA,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CACxB,IAAA,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAChC,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA8B,MAAM,CAAC;CACrE,IAAA,MAAM,EAAE,qBAAqB;CAChC,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAiC,MAAM,CAAC;CAC3E,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA8B,MAAM,CAAC;CACrE,IAAA,OAAO,EAAE,qBAAqB;CAC9B,IAAA,cAAc,EAAE,iBAAiB;CACpC,CAAA,CAAC,CAAC;CAEI,MAAM,yBAAyB,GAAgC,MAAM,CAAC;CACzE,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,KAAK,EAAE,qBAAqB;CAC/B,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA8B,MAAM,CAAC;CACrE,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,WAAW,EAAE,qBAAqB;CACrC,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA8B,YAAY,CAC1E,uBAAuB,EACvB,mBAAmB,CACtB,CAAC;CAEK,MAAM,oCAAoC,GAA2C,MAAM,CAAC;CAC/F,IAAA,MAAM,EAAE,qBAAqB;KAC7B,OAAO,EAAE,OAAO,EAAE;CACrB,CAAA,CAAC,CAAC;CAEI,MAAM,sBAAsB,GAA6B,YAAY,CACxE,uBAAuB,EACvB,iBAAiB,CACpB,CAAC;CAE4F,MAAM,CAAC;CACjG,IAAA,EAAE,EAAE,qBAAqB;CACzB,IAAA,IAAI,EAAE,gBAAgB;CACzB,CAAA,EAAE;CAEI,MAAM,sBAAsB,GAA6B,MAAM,CAAC;CACnE,IAAA,UAAU,EAAE,+BAA+B;CAC3C,IAAA,QAAQ,EAAE,qBAAqB;CAC/B,IAAA,UAAU,EAAE,gBAAgB;CAC/B,CAAA,CAAC,CAAC;CAEI,MAAM,yBAAyB,GAAgC,MAAM,CAAC;CACzE,IAAA,UAAU,EAAE,6BAA6B;CACzC,IAAA,QAAQ,EAAE,qBAAqB;CAC/B,IAAA,UAAU,EAAE,gBAAgB;CAC/B,CAAA,CAAC,CAAC;CAEI,MAAM,oBAAoB,GAA2B,MAAM,CAAC;CAC/D,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CAC5C,CAAA,CAAC,CAAC;CAEI,MAAM,iBAAiB,GAAwB,MAAM,CAAC;KACzD,IAAI,EAAE,OAAO,EAAE;CAClB,CAAA,CAAC,CAAC;CAEI,MAAM,4BAA4B,GAAmC,MAAM,CAAC;CAC/E,IAAA,IAAI,EAAE,KAAK,CACP,QAAQ,CAAC,KAAK,CAAC,EACf,QAAQ,CAAC,QAAQ,CAAC,CACrB;CACD,IAAA,WAAW,EAAE,qBAAqB;CACrC,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA8B,MAAM,CAAC;CACrE,IAAA,IAAI,EAAE,KAAK,CACP,QAAQ,CAAC,KAAK,CAAC,EACf,QAAQ,CAAC,QAAQ,CAAC,CACrB;CACD,IAAA,MAAM,EAAE,qBAAqB;CAChC,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAAoC,MAAM,CAAC;CACjF,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,MAAM,EAAE,2BAA2B;CACtC,CAAA,CAAC,CAAC;CAEI,MAAM,sBAAsB,GAA6B,MAAM,CAAC;CACnE,IAAA,YAAY,EAAE,mBAAmB;CACjC,IAAA,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC;CAC5C,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAiC,MAAM,CAAC;CAC3E,IAAA,gBAAgB,EAAE,6BAA6B;CAC/C,IAAA,YAAY,EAAE,mBAAmB;CACjC,IAAA,iBAAiB,EAAE,QAAQ,CAAC,8BAA8B,CAAC;CAC3D,IAAA,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC;CAC5C,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAiC,MAAM,CAAC;CAC3E,IAAA,gBAAgB,EAAE,6BAA6B;CAClD,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA8B,MAAM,CAAC;KACrE,aAAa,EAAE,MAAM,CAAC;CAClB,QAAA,MAAM,EAAE,qBAAqB;CAC7B,QAAA,QAAQ,EAAE,qBAAqB;CAC/B,QAAA,MAAM,EAAE,mCAAmC;MAC9C,CAAC;CACL,CAAA,CAAC,CAAC;CAEI,MAAM,gCAAgC,GAA2D,MAAM,CAAC;CAC3G,IAAA,IAAI,EAAE,qBAAqB;CAC3B,IAAA,WAAW,EAAE,qBAAqB;CAClC,IAAA,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAChC,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAqD,MAAM,CAAC;CAC/F,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,kBAAkB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACvC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7C,IAAA,wBAAwB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC7C,IAAA,sBAAsB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,IAAA,oBAAoB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACzC,IAAA,gBAAgB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACxC,CAAA,CAAC,CAAC;CAEI,MAAM,oBAAoB,GAAiC,MAAM,CAAC;CACrE,IAAA,WAAW,EAAE,qBAAqB;CAClC,IAAA,MAAM,EAAE,QAAQ,CAAC,0BAA0B,CAAC;CAC/C,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAA2D,MAAM,CAAC;CAClG,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACvC,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAqD,MAAM,CAAC;CAC/F,IAAA,KAAK,EAAE,QAAQ,CAAC,wBAAwB,CAAC;CACzC,IAAA,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC;CAC7C,CAAA,CAAC,CAAC;CAEI,MAAM,iBAAiB,GAA8B,MAAM,CAAC;CAC/D,IAAA,iBAAiB,EAAE,qBAAqB;CACxC,IAAA,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC;CAC5C,CAAA,CAAC,CAAC;CAEI,MAAM,oBAAoB,GAA+C,MAAM,CAAC;CACnF,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACtC,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAAkD,MAAM,CAAC;CACzF,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACtC,CAAA,CAAC,CAAC;CAEI,MAAM,sBAAsB,GAAiD,MAAM,CAAC;CACvF,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC9B,IAAA,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAClC,IAAA,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACnC,IAAA,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACjC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,kBAAkB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACvC,IAAA,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CACpC,IAAA,mBAAmB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;CAC3C,CAAA,CAAC,CAAC;CAEI,MAAM,cAAc,GAA2B,MAAM,CAAC;CACzD,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;CACrB,IAAA,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC;CACzC,CAAA,CAAC,CAAC;CAEI,MAAM,iBAAiB,GAA8B,MAAM,CAAC;CAC/D,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACxB,IAAA,MAAM,EAAE,QAAQ,CAAC,uBAAuB,CAAC;CAC5C,CAAA,CAAC,CAAC;CAEI,MAAM,gBAAgB,GAA6B,MAAM,CAAC;CAC7D,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;CACvB,IAAA,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC;CAC3C,CAAA,CAAC,CAAC;CAEI,MAAM,oBAAoB,GAAiC,KAAK,CAAqD,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;CAE1K,MAAM,mBAAmB,GAAgC,MAAM,CAAC;CACnE,IAAA,WAAW,EAAE,qBAAqB;CAClC,IAAA,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,CAAA,CAAC,CAAC;CAEI,MAAM,uBAAuB,GAAoC,MAAM,CAAC;CAC3E,IAAA,WAAW,EAAE,qBAAqB;CAClC,IAAA,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAqD,QAAQ,CAAC,MAAM,CAAC;CACxG,IAAA,IAAI,EAAE,QAAQ,CAAC,qBAAqB,CAAC;CACxC,CAAA,CAAC,CAAC,CAAC;CAEG,MAAM,qBAAqB,GAA4B,MAAM,CAAC;CACjE,IAAA,QAAQ,EAAE,qBAAqB;CAC/B,IAAA,OAAO,EAAE,qBAAqB;CACjC,CAAA,CAAC,CAAC;CAEI,MAAM,0BAA0B,GAAiC,MAAM,CAAC;CAC3E,IAAA,QAAQ,EAAE,qBAAqB;CAC/B,IAAA,OAAO,EAAE,qBAAqB;CACjC,CAAA,CAAC,CAAC;CAEI,MAAM,uCAAuC,GAA+D,MAAM,CAAC;KACtH,OAAO,EAAE,OAAO,EAAE;CACrB,CAAA,CAAC,CAAC;CAEI,MAAM,6BAA6B,GAAoC,MAAM,CAAC;CACjF,IAAA,MAAM,EAAE,qBAAqB;CAC7B,IAAA,IAAI,EAAE,2BAA2B;CACpC,CAAA,CAAC,CAAC;CAEI,MAAM,2BAA2B,GAAkC,MAAM,CAAC;CAC7E,IAAA,SAAS,EAAE,qBAAqB;CACnC,CAAA,CAAC;;CC3zBK,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;CACzD,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;CAE/D,MAAM,gBAAgB,GAA0E;KACnG,OAAO,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC5D,WAAW,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE;KACpE,eAAe,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5E,eAAe,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC5E,YAAY,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE;EACzE,CAAC;CAEK,MAAM,gBAAgB,GAA0E;KACnG,OAAO,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,QAAQ,EAAE,KAAK,EAAE;EACtE,CAAC;CAEK,MAAM,OAAO,GAAqD;KACrE,KAAK,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,cAAc,EAAE,sBAAsB,EAAE;KACtF,SAAS,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,cAAc,EAAE,0BAA0B,EAAE;KAClG,SAAS,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,cAAc,EAAE,0BAA0B,EAAE;KAClG,MAAM,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,cAAc,EAAE,uBAAuB,EAAE;EAC5F,CAAC;CAcK,MAAM,iBAAiB,GAAqD;CAC/E,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,0BAA0B,EAAE,aAAa,EAAE,iBAAiB,EAAE;EAC1H,CAAC;CAEK,MAAM,UAAU,GAAmD;KACtE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACxD,IAAA,mBAAmB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,+BAA+B,EAAE;CAC1I,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,8BAA8B,EAAE,WAAW,EAAE,4BAA4B,EAAE;CACtI,IAAA,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,yBAAyB,EAAE,WAAW,EAAE,2BAA2B,EAAE;CACxH,IAAA,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,8BAA8B,EAAE;KAC/G,qBAAqB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,aAAa,EAAE,2BAA2B,EAAE;CACpG,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,4BAA4B,EAAE;KAC3H,yBAAyB,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,aAAa,EAAE,+BAA+B,EAAE;CAChH,IAAA,oBAAoB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,aAAa,EAAE,8BAA8B,EAAE,WAAW,EAAE,uBAAuB,EAAE;KAC3I,sBAAsB,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,aAAa,EAAE,sBAAsB,EAAE;CACjG,IAAA,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,0BAA0B,EAAE,aAAa,EAAE,8BAA8B,EAAE;CAChI,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,yBAAyB,EAAE;CAChH,IAAA,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,WAAW,EAAE,gCAAgC,EAAE;CACxH,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,6BAA6B,EAAE;CACpH,IAAA,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,8BAA8B,EAAE;KACvH,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,4BAA4B,EAAE;CAC3F,IAAA,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC5G,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC9G,IAAA,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACxG,IAAA,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACxG,IAAA,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC1G,IAAA,uBAAuB,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,oCAAoC,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACjJ,IAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACtH,IAAA,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,uBAAuB,EAAE;CACtH,IAAA,cAAc,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,wBAAwB,EAAE;CACzH,IAAA,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACvG,IAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,0BAA0B,EAAE,aAAa,EAAE,0BAA0B,EAAE;CAClI,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,yCAAyC,EAAE;CAC5I,IAAA,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,yCAAyC,EAAE;CACpI,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,yBAAyB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAChH,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC9G,IAAA,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,aAAa,EAAE,oBAAoB,EAAE;CAC1G,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,yBAAyB,EAAE,aAAa,EAAE,oBAAoB,EAAE;CACnH,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,4BAA4B,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACzH,IAAA,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC1G,IAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC3H,IAAA,eAAe,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACrH,IAAA,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC7G,IAAA,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACpG,IAAA,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC7G,IAAA,YAAY,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CAC1G,IAAA,cAAc,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACnH,IAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,6BAA6B,EAAE;CACnI,IAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACtH,IAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACpH,IAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACxH,IAAA,oBAAoB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,6BAA6B,EAAE,aAAa,EAAE,iBAAiB,EAAE;CACpI,IAAA,oBAAoB,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,6BAA6B,EAAE,aAAa,EAAE,iBAAiB,EAAE;KACpI,kBAAkB,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,EAAE,+BAA+B,EAAE;CAClG,IAAA,cAAc,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,2BAA2B,EAAE,aAAa,EAAE,2BAA2B,EAAE;EACnI;;OCzMY,cAAc,CAAA;CAChB,IAAA,OAAO,CAAsC;CAC7C,IAAA,MAAM,CAAwB;CACrB,IAAA,OAAO,CAAa;CACpC,IAAA,WAAA,GAAA;SACI,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,KAAI;CACvC,YAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;CACnB,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;CACtB,SAAC,CAAC,CAAC;MACN;CACJ;;OCAY,MAAM,CAAA;CAMM,IAAA,SAAA,CAAA;CACA,IAAA,QAAA,CAAA;KALJ,mBAAmB,GAAyB,EAAE,CAAC;KAC/C,oBAAoB,GAA0B,EAAE,CAAC;KAElE,WACqB,CAAA,SAA2B,EAC3B,QAA0B,EAAA;SAD1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;SAC3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;MAC1C;CAEE,IAAA,MAAM,2BAA2B,GAAA;CACpC,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MAC/E;CAEM,IAAA,sBAAsB,CAAC,MAA0B,EAAA;SACpD,MAAM,WAAW,GAAG,CAAA,EAAG,MAAM,CAAC,SAAS,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,CAAA,CAAE,CAAC;CAC3D,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;CAC3B,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SAE/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,KAAI;CAC3C,YAAA,MAAM,WAAW,GAAG;CAChB,gBAAA,IAAI,EAAE,KAAK;CACX,gBAAA,EAAE,EAAE,OAAO;cACd,CAAC;CAEF,YAAA,MAAM,WAAW,GAAG;CAChB,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,OAAO;CAClE,gBAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW;CAC9E,gBAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM;CACxC,gBAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM;cACrC,CAAC;aAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;aAE5E,IAAI,CAAC,oBAAoB,EAAE;iBACvB,OAAO;CACV,aAAA;CAED,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC1B,SAAC,CAAC,CAAC;MACN;CAGM,IAAA,MAAM,IAAI,CAAI,aAAqB,EAAE,aAAmB,EAAA;SAE3D,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;SAE5G,IAAI,CAAC,mBAAmB,EAAE;CACtB,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,aAAa,CAAA,CAAE,CAAC,CAAC;CAClF,SAAA;SAED,IAAI,mBAAmB,CAAC,WAAW,EAAE;aACjC,IAAI;CACA,gBAAA,mBAAmB,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;CACnE,aAAA;CAAC,YAAA,OAAO,KAAK,EAAE;iBACZ,MAAM,IAAI,KAAK,CAAC,CAAA,+CAAA,EAAkD,KAAK,CAAC,OAAO,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,aAAa,CAAA,CAAE,CAAC,CAAC;CACjK,aAAA;CACJ,SAAA;SAED,IAAI;CACA,YAAA,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;CAEtG,YAAA,mBAAmB,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;CAEpE,YAAA,OAAO,eAAe,CAAC;CAC1B,SAAA;CAAC,QAAA,OAAO,KAAK,EAAE;aACZ,IAAI,KAAK,CAAC,IAAI,EAAE;iBACZ,MAAM,IAAI,KAAK,CAAC,CAAA,+CAAA,EAAkD,KAAK,CAAC,OAAO,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,aAAa,CAAA,CAAE,CAAC,CAAC;CACjK,aAAA;CACD,YAAA,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CAClC,SAAA;MACJ;KAEM,MAAM,SAAS,CAAC,MAA0B,EAAA;SAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACvD,QAAA,IAAI,UAAU,EAAE;aACZ,MAAM,UAAU,CAAC,OAAO,CAAC;CAC5B,SAAA;SAED,IAAI,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;SACnD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAEhD,IAAI,CAAC,SAAS,EAAE;CACZ,YAAA,MAAM,cAAc,GAAG,IAAI,cAAc,EAAQ,CAAC;CAClD,YAAA,MAAM,mBAAmB,GAAG;iBACxB,UAAU,EAAE,MAAM,CAAC,SAAS;iBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;iBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;iBACvB,OAAO,EAAE,cAAc,CAAC,OAAO;cAClC,CAAC;CACF,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACpD,IAAI;iBACA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;CAEvG,gBAAA,KAAK,CAAC,MAAM,CAAC,CAAC,UAAU,KAAI;CAExB,oBAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAwC,CAAC;qBAGjE,MAAM,wBAAwB,GAAG,6BAA6B,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;qBAChG,MAAM,YAAY,GAAG,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAElE,IAAI,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;yBAClD,OAAO;CACV,qBAAA;CAED,oBAAA,MAAM,UAAU,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC;CACxD,oBAAA,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC;qBAEtD,MAAM,YAAY,GAAG,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,MAAM,CAAA,CAAA,EAAI,YAAY,CAAC,MAAM,CAAA,CAAE,CAAC;CACtE,oBAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CAC9E,oBAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE;yBACtB,OAAO;CACV,qBAAA;qBAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACjE,iBAAC,CAAC,CAAC;CAEH,gBAAA,SAAS,GAAG;qBACR,UAAU,EAAE,MAAM,CAAC,SAAS;qBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;qBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;CACvB,oBAAA,cAAc,EAAE,CAAC;qBACjB,KAAK;kBACR,CAAC;CAEF,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAEzC,cAAc,CAAC,OAAO,EAAE,CAAC;CAC5B,aAAA;CAAC,YAAA,OAAO,KAAK,EAAE;CACZ,gBAAA,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAE7B,gBAAA,MAAM,KAAK,CAAC;CACf,aAAA;CAAS,oBAAA;CACN,gBAAA,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;CACvD,aAAA;CAEJ,SAAA;CAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;SAEpE,EAAE,SAAS,CAAC,cAAc,CAAC;CAE3B,QAAA,OAAO,MAAW;CACd,YAAA,WAAW,EAAE,CAAC;aACd,EAAE,SAAS,CAAC,cAAc,CAAC;CAE3B,YAAA,IAAI,SAAS,CAAC,cAAc,KAAK,CAAC,EAAE;CAChC,gBAAA,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;CACxB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;CACnF,aAAA;CACL,SAAC,CAAC;MACL;CAEM,IAAA,WAAW,CAAC,QAAiE,EAAA;CAEhF,QAAA,MAAM,eAAe,GAAG,CAAC,OAAyB,EAAE,MAAgB,KAAI;CACpE,YAAA,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;CACxC,YAAA,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;aACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;aAEnH,IAAI,CAAC,mBAAmB,EAAE;CACtB,gBAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,aAAa,CAAA,CAAE,CAAC,CAAC;CAClF,aAAA;aAED,IAAI,mBAAmB,CAAC,WAAW,EAAE;iBACjC,IAAI;CACA,oBAAA,mBAAmB,CAAC,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;CACnE,iBAAA;CAAC,gBAAA,OAAO,KAAK,EAAE;qBACZ,MAAM,IAAI,KAAK,CAAC,CAAA,+CAAA,EAAkD,KAAK,CAAC,OAAO,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,aAAa,CAAA,CAAE,CAAC,CAAC;CACjK,iBAAA;CACJ,aAAA;CAED,YAAA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC9B,SAAC,CAAC;SAEF,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;MAC7E;KAEO,eAAe,CAAC,KAAiD,EAAE,WAAoF,EAAA;CAE3J,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;CACzB,YAAA,OAAO,IAAI,CAAC;CACf,SAAA;CAED,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,EAAE;CAC1D,YAAA,OAAO,IAAI,CAAC;CACf,SAAA;CAED,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,SAAS,EAAE;CAClE,YAAA,OAAO,IAAI,CAAC;CACf,SAAA;CAED,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,SAAS,EAAE;CAClE,YAAA,OAAO,IAAI,CAAC;CACf,SAAA;CAED,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,MAAM,EAAE;CAC5D,YAAA,OAAO,IAAI,CAAC;CACf,SAAA;CAED,QAAA,OAAO,KAAK,CAAC;MAChB;CAGO,IAAA,eAAe,CAAC,IAAS,EAAA;CAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;SACvB,IAAI;aACA,MAAM,cAAc,GAAyB,2BAA2B,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvG,MAAM,YAAY,GAAuB,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACtF,YAAA,MAAM,eAAe,GAAqB,OAAO,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CAE9G,YAAA,MAAM,WAAW,GAAG,CAAA,EAAG,YAAY,CAAI,CAAA,EAAA,cAAc,EAAE,CAAC;aAExD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;CACvD,SAAA;CAAC,QAAA,OAAO,KAAK,EAAE;CACZ,YAAA,OAAO,CAAC,IAAI,CAAC,CAAiC,8BAAA,EAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC;CACxH,SAAA;MACJ;CAEO,IAAA,YAAY,CAAC,MAA0B,EAAA;SAC3C,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,CAAG,EAAA,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAA,CAAE,CAAC;MACzF;CAEO,IAAA,cAAc,CAAC,MAA0B,EAAA;CAC7C,QAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAA,CAAA,EAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAI,CAAA,EAAA,MAAM,CAAC,MAAM,EAAE,CAAC;MAC9E;CAEO,IAAA,qBAAqB,CAAC,MAA0B,EAAA;SACpD,OAAO,IAAI,CAAC,mBAAmB;CAC1B,aAAA,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,UAAU,KAAK,MAAM,CAAC,SAAS;CAC1D,YAAA,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;CAChC,YAAA,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CACvC,CAAC;MACT;CAEO,IAAA,sBAAsB,CAAC,MAA0B,EAAA;SACrD,OAAO,IAAI,CAAC,oBAAoB;CAC3B,aAAA,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,UAAU,KAAK,MAAM,CAAC,SAAS;CAC1D,YAAA,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;CAChC,YAAA,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CACvC,CAAC;MACT;CAEO,IAAA,yBAAyB,CAAC,mBAAwC,EAAA;SACtE,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;SAErE,IAAI,KAAK,IAAI,CAAC,EAAE;aACZ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CAC9C,SAAA;MACJ;CACJ;;CCtQM,MAAM,WAAW,GAAG,CAAI,OAAyB,EAAE,mBAA2B,EAAE,cAAuB,KAAgB;KAC1H,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;SAEtC,IAAI,aAAa,GAAG,IAAI,CAAC;CAEzB,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;aAC5B,IAAI,CAAC,aAAa,EAAE;iBAChB,OAAO;CACV,aAAA;aACD,aAAa,GAAG,KAAK,CAAC;CACtB,YAAA,MAAM,OAAO,GAAG,cAAc,IAAI,CAAwB,qBAAA,EAAA,mBAAmB,EAAE,CAAC;aAEhF,MAAM,CAAC,OAAO,CAAC,CAAC;UACnB,EAAE,mBAAmB,CAAC,CAAC;CAExB,QAAA,OAAO,EAAE;CACJ,aAAA,IAAI,CAAC,CAAC,MAAM,KAAI;aACb,IAAI,CAAC,aAAa,EAAE;iBAChB,OAAO;CACV,aAAA;aACD,aAAa,GAAG,KAAK,CAAC;aACtB,YAAY,CAAC,OAAO,CAAC,CAAC;aACtB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB,SAAC,CAAC;CACD,aAAA,KAAK,CAAC,CAAC,KAAK,KAAI;aACb,IAAI,CAAC,aAAa,EAAE;iBAChB,OAAO;CACV,aAAA;aACD,aAAa,GAAG,KAAK,CAAC;aACtB,YAAY,CAAC,OAAO,CAAC,CAAC;aACtB,MAAM,CAAC,KAAK,CAAC,CAAC;CAClB,SAAC,CAAC,CAAC;CACX,KAAC,CAAC,CAAC;CACP,CAAC;;OC1BY,gBAAgB,CAAA;CAMI,IAAA,GAAA,CAAA;CACR,IAAA,QAAA,CAAA;KALJ,uBAAuB,GAAW,KAAK,CAAC;KACjD,wBAAwB,GAAG,KAAK,CAAC;CACjC,IAAA,sBAAsB,CAAwB;KAEtD,WAA6B,CAAA,GAAe,EACvB,QAA0B,EAAA;SADlB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;SACvB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;MAAK;KAE7C,MAAM,QAAQ,CAAC,cAAsB,EAAA;SAExC,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;CAE5E,QAAA,IAAI,aAAa,EAAE;CACf,YAAA,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;iBAC3C,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;cAC7C,CAAC,CACL,CAAC;CAEF,YAAA,MAAM,OAAO,CAAC,GAAG,CACb,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,MAA2B,KAAI;CAC9D,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;cACtC,CAAC,CACL,CAAC;aAEF,OAAO;CACV,SAAA;SAED,MAAM,aAAa,GAAI,MAAc,CAAC,UAAU,IAAK,MAAc,CAAC,SAAS,CAAC;CAE9E,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC;SAE/C,MAAM,OAAO,CAAC,GAAG,CAAC;CACd,YAAA,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,QAAQ,CAAC;CACtD,YAAA,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,QAAQ,CAAC;CAC5D,SAAA,CAAC,CAAC;CAEH,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;MAC1E;CAEM,IAAA,qBAAqB,CAAC,aAAmC,EAAA;CAC5D,QAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;CAChC,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;CACzC,SAAA;SACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;MACtC;CAEM,IAAA,iBAAiB,CAAC,aAAmC,EAAA;CACxD,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;SAErC,MAAM,aAAa,GAAI,MAAc,CAAC,UAAU,IAAK,MAAc,CAAC,SAAS,CAAC;CAE9E,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC;CAE/C,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,QAAQ,GAAG,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;CAEtI,QAAA,IAAI,CAAC,sBAAsB;CACtB,aAAA,IAAI,CAAC,CAAC,GAAG,KAAI;CACV,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CACnD,SAAC,CAAC,CAAC;MACV;CAEM,IAAA,MAAM,SAAS,CAAC,UAAkB,EAAE,YAAoB,EAAE,UAA8B,EAAA;CAE3F,QAAA,MAAM,gBAAgB,GAAG;CACrB,YAAA,MAAM,EAAE,YAAY;CACpB,YAAA,IAAI,EAAE,UAAU;UACnB,CAAC;CAEF,QAAA,IAAI,YAA0B,CAAC;SAE/B,IAAI;CACA,YAAA,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;CACxF,SAAA;CAAC,QAAA,OAAO,KAAK,EAAE;aACZ,MAAM,OAAO,GAAG,CAAA,qDAAA,EAAwD,UAAU,CAAA,UAAA,EAAa,YAAY,CAAA,oBAAA,EAAuB,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;CAClJ,YAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;CAC5B,SAAA;CAED,QAAA,OAAO,YAAY,CAAC;MACvB;CAEM,IAAA,MAAM,eAAe,CAAC,SAAiB,EAAE,kBAAuB,EAAA;SAEnE,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAC5E,MAAM,aAAa,GAAI,MAAc,CAAC,UAAU,IAAK,MAAc,CAAC,SAAS,CAAC;SAE9E,MAAM,mBAAmB,GAAG,aAAa,GAAG,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC9I,QAAA,MAAM,UAAU,GAAG,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,GAAG,qBAAqB,CAAC;CAEzF,QAAA,MAAM,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;CAEjF,QAAA,IAAI,gBAAuC,CAAC;SAC5C,MAAM,gBAAgB,GAAG,CAAA,8DAAA,EAAiE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA,EAAA,CAAI,CAAC;SAIlI,IAAI;CACA,YAAA,gBAAgB,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,mBAAmB,EAAE,cAAc,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;aAE7L,IAAI,CAAC,gBAAgB,EAAE;CACnB,gBAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;CACzE,aAAA;CAED,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;CACvG,gBAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;CACpF,aAAA;CAEJ,SAAA;CAAC,QAAA,OAAO,KAAK,EAAE;aACZ,IAAI,KAAK,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;iBAEtD,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;iBAC3D,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,gBAAgB,CAAsB,mBAAA,EAAA,sBAAsB,CAAE,CAAA,CAAC,CAAC;CAEtF,aAAA;aAED,MAAM,IAAI,KAAK,CAAC,CAAG,EAAA,gBAAgB,CAAsB,mBAAA,EAAA,KAAK,CAAC,OAAO,CAAE,CAAA,CAAC,CAAC;CAC7E,SAAA;SAED,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;MACzD;KAEM,uBAAuB,CAAC,GAAwB,EAAE,QAAiE,EAAA;SACtH,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;MAC3C;KAEO,gBAAgB,CAAC,IAAY,EAAE,QAAiB,EAAA;SACpD,OAAO,WAAW,CAAC,MAAK;CACpB,YAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;CAC3B,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;CACjD,oBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;CAEvC,oBAAA,MAAM,WAAW,GAAG,QAAQ;CACxB,wBAAA,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;CAClE,wBAAA,IAAI,CAAC;qBAET,OAAO,SAAS,IAAI,WAAW,CAAC;CACpC,iBAAC,CAAC,CAAC;CAEH,gBAAA,IAAI,SAAS,EAAE;CACX,oBAAA,OAAO,EAAE,CAAC;qBACV,OAAO;CACV,iBAAA;iBAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,KAAI;CAC9C,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;CAC3B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;CAE3B,oBAAA,MAAM,WAAW,GAAG,QAAQ;CACxB,wBAAA,MAAM,CAAC,QAAQ,KAAK,QAAQ;CAC5B,wBAAA,IAAI,CAAC;CAET,oBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,WAAW,EAAE;CACrC,wBAAA,KAAK,EAAE,CAAC;CACR,wBAAA,OAAO,EAAE,CAAC;CACb,qBAAA;CACL,iBAAC,CAAC,CAAC;CACP,aAAC,CAAC,CAAC;CACP,SAAC,EAAE,KAAK,EAAE,2DAA2D,CAAC,CAAC;MAC1E;CAEO,IAAA,cAAc,CAAC,GAAwB,EAAA;CAC3C,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;CACrC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAI;aACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;CAC7C,SAAC,CAAC,CAAC;MACN;CACJ;;CCpKD,MAAMA,aAAW,GAAG,IAAI,OAAO,EAA8B,CAAC;OAEjD,aAAa,CAAA;KAEtB,WACI,CAAA,UAA6C,EAC7C,IAAiB,EAAA;SAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAExD,OAAO,UAAU,CAAC,QAAQ,CAAC;CAE3B,QAAAA,aAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;MACzD;CAED,IAAA,IAAW,IAAI,GAAA;SACX,OAAOA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;MAChD;CAEM,IAAA,SAAS,CAAC,UAA8C,EAAA;SAC3D,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;CAExC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAEA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;MACzE;CAEM,IAAA,MAAM,CAAC,UAA8C,EAAA;SACxD,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;CAExC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAEA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;MACtE;CAEM,IAAA,QAAQ,CAAC,UAA8C,EAAA;SAC1D,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;CAExC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAEA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;MACxE;CAEM,IAAA,SAAS,CAAC,UAAyD,EAAA;SACtE,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;CAExC,QAAA,IAAI,CAAC,SAAS,CAACA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAE3D,QAAA,OAAO,IAAI,CAAC;MACf;KAEM,SAAS,GAAA;SACZ,MAAM,UAAU,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SACpD,UAAU,CAAC,QAAQ,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAACA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;CACnG,QAAA,OAAO,UAAU,CAAC;MACrB;CAEJ;;OCvDY,WAAW,CAAA;CAGC,IAAA,UAAA,CAAA;CADrB,IAAA,WAAA,CACqB,UAA2F,EAAA;SAA3F,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiF;MAC3G;CAEE,IAAA,YAAY,CAAC,QAA2B,EAAA;CAC3C,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;CAC1B,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;CACzB,gBAAA,OAAO,KAAK,CAAC;CAChB,aAAA;CAED,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAkB,CAAC;CACrF,SAAC,CAAC,CAAC;MACN;CAEM,IAAA,GAAG,CAAC,IAAgC,EAAE,QAAwB,EAAE,UAA8C,EAAA;SACjH,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;CAEjF,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAkB,CAAC;CAEjG,QAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;CAE5B,QAAA,OAAO,YAAY,CAAC;MACvB;KAEM,SAAS,CAAC,QAAwB,EAAE,UAAyD,EAAA;SAChG,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;CAEzF,QAAA,mBAAmB,CAAC,IAAI,GAAG,QAAQ,CAAC;CAEpC,QAAA,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;MACtC;CAEM,IAAA,iBAAiB,CAAC,QAAwB,EAAA;CAC7C,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;aAC1B,IAAI,KAAK,YAAY,aAAa,EAAE;CAChC,gBAAA,OAAO,KAAK,CAAC,SAAS,EAAE,CAAC;CAC5B,aAAA;CAAM,iBAAA;CACH,gBAAA,OAAO,KAAsD,CAAC;CACjE,aAAA;CACL,SAAC,CAAC,CAAC;MACN;CACJ;;CCnCD,MAAMA,aAAW,GAAG,IAAI,OAAO,EAAiC,CAAC;OAEpD,gBAAgB,CAAA;CAEzB,IAAA,WAAA,CACI,UAAmD,EACnD,IAAiB,EACjB,UAAgC,EAAA;SAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SAExD,OAAO,UAAU,CAAC,QAAQ,CAAC;CAE3B,QAAAA,aAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;MACrE;CAEM,IAAA,SAAS,CAAC,UAA8C,EAAA;SAC3D,MAAM,QAAQ,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;SAEhD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;SAE3G,IAAI,CAAC,aAAa,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;CAChH,SAAA;SAED,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;SAExC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;MACnD;CAEM,IAAA,MAAM,CAAC,UAA8C,EAAA;SACxD,MAAM,QAAQ,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;SAEhD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;SAErG,IAAI,CAAC,UAAU,EAAE;CACb,YAAA,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;CAC7G,SAAA;SAED,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;SAExC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;MAChD;CAEM,IAAA,QAAQ,CAAC,UAA8C,EAAA;SAC1D,MAAM,QAAQ,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;CAEhD,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;CACvB,YAAA,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;CACxG,SAAA;SAED,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;SAExC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;MAClD;CAEM,IAAA,SAAS,CAAC,UAAyD,EAAA;SACtE,MAAM,QAAQ,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;CAEhD,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;CACvB,YAAA,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;CACzG,SAAA;SAED,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;CAExC,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;CAErC,QAAA,OAAO,IAAI,CAAC;MACf;CAEM,IAAA,UAAU,CAAC,KAAa,EAAA;CAC3B,QAAA,wBAAwB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACjD,MAAM,IAAI,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;CAE5C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;MACtB;KAEM,MAAM,MAAM,CAAC,MAAkD,EAAA;SAClE,MAAM,UAAU,GAAG,mCAAmC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAEhF,MAAM,UAAU,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SACpD,UAAU,CAAC,QAAQ,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAACA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;SAEnG,MAAM,UAAU,GAAGA,aAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAEpD,OAAO,UAAU,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;MAC7D;CACJ;;CC5FD,MAAMA,aAAW,GAAG,IAAI,OAAO,EAAoB,CAAC;CAEpD,MAAMC,SAAO,GAAG,CAAC,KAAU,KAAU;KACjC,OAAOD,aAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;CACvC,CAAC,CAAC;OAEW,GAAG,CAAA;CAEZ,IAAA,WAAA,CAAY,IAAU,EAAA;SAClBA,aAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;MACnC;CAED,IAAA,IAAW,IAAI,GAAA;CACX,QAAA,OAAO,KAAK,CAAC;MAChB;CAED,IAAA,IAAW,EAAE,GAAA;SACT,OAAOC,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MACpC;CAED,IAAA,IAAW,OAAO,GAAA;SACd,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;MACzC;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;MAC/C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;MACzC;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,cAAc,GAAA;SACrB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;MAChD;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;MAC5C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,oBAAoB,GAAA;SAC3B,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;MACtD;CAEM,IAAA,SAAS,CAAC,UAAyD,EAAA;CACtE,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;MAC3D;KAEM,MAAM,QAAQ,CAAC,UAA8C,EAAA;SAChE,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;aACjD,MAAM,IAAI,KAAK,CAAC,CAAA,0CAAA,EAA6C,UAAU,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;CACnF,SAAA;CACD,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAA4B,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;MAC/F;KAEM,MAAM,SAAS,CAAC,UAA8C,EAAA;SACjE,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;aAClD,MAAM,IAAI,KAAK,CAAC,CAAA,2CAAA,EAA8C,UAAU,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;CACpF,SAAA;CACD,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAA6B,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;MACjG;CAEM,IAAA,MAAM,MAAM,GAAA;CACf,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;MACnE;CAEM,IAAA,WAAW,CAAC,SAAmE,EAAA;SAClF,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;MACrD;KAEM,QAAQ,GAAA;SACX,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;MACvC;KAEM,OAAO,GAAA;SACV,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;MACtC;KAEM,KAAK,GAAA;SACR,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MACpC;CAEM,IAAA,IAAI,CAAC,MAA+H,EAAA;SACvI,IAAI,gBAAgB,GAAG,SAAS,CAAC;CAEjC,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;CAC9B,YAAA,MAAM,iBAAiB,GAAG;iBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;cACtC,CAAC;CAEF,YAAA,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;CAChD,SAAA;CAAM,aAAA;aACH,gBAAgB,GAAG,MAAM,CAAC;CAC7B,SAAA;CAED,QAAA,MAAM,cAAc,GAAG,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;SAE5H,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;MAC5D;KAEM,MAAM,SAAS,CAAC,MAAc,EAAA;CACjC,QAAA,wBAAwB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAClD,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;MAChD;KAGM,MAAM,0BAA0B,CAAC,QAA6D,EAAA;SACjG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;CACxC,YAAA,QAAQ,CAAC;iBACL,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;CACtC,aAAA,CAAC,CAAC;CACP,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,4BAA4B;CACpC,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,WAAW;UACrB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;CAC/E,QAAA,OAAO,WAAW,CAAC;MACtB;KACM,MAAM,uBAAuB,CAAC,MAAyD,EAAA;SAC1F,MAAM,eAAe,GAAG,uCAAuC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACzF,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;MACvE;CAEJ;;CClLD,MAAMD,aAAW,GAAG,IAAI,OAAO,EAAuB,CAAC;CAEvD,MAAMC,SAAO,GAAG,CAAC,KAAa,KAAU;KACpC,OAAOD,aAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;CACvC,CAAC,CAAC;OAEW,MAAM,CAAA;CAEf,IAAA,WAAA,CAAY,IAAU,EAAA;SAClBA,aAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;MACnC;CAED,IAAA,IAAW,IAAI,GAAA;CACX,QAAA,OAAO,QAAQ,CAAC;MACnB;CAED,IAAA,IAAW,EAAE,GAAA;SACT,OAAOC,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MACpC;CAED,IAAA,IAAW,OAAO,GAAA;SACd,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;MACzC;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;MAC/C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;MACzC;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,cAAc,GAAA;SACrB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;MAChD;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;MAC5C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,oBAAoB,GAAA;SAC3B,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;MACtD;CAEM,IAAA,SAAS,CAAC,UAAyD,EAAA;CACtE,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;MAC9D;KAEM,MAAM,QAAQ,CAAC,UAA8C,EAAA;SAChE,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;aACjD,MAAM,IAAI,KAAK,CAAC,CAAA,0CAAA,EAA6C,UAAU,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;CACnF,SAAA;CACD,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAA4B,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;MAClG;CAEM,IAAA,MAAM,SAAS,GAAA;CAClB,QAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;MACzE;KAEM,MAAM,MAAM,CAAC,UAA8C,EAAA;SAC9D,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE;aAC/C,MAAM,IAAI,KAAK,CAAC,CAAA,wCAAA,EAA2C,UAAU,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;CACjF,SAAA;CACD,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAA0B,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;MAC9F;CAEM,IAAA,WAAW,CAAC,SAAmE,EAAA;SAClF,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;MACrD;KAEM,QAAQ,GAAA;SACX,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;MACvC;KAEM,OAAO,GAAA;SACV,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;MACtC;KAEM,KAAK,GAAA;SACR,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MACpC;CAEM,IAAA,IAAI,CAAC,MAAwI,EAAA;SAChJ,IAAI,gBAAgB,GAAG,SAAS,CAAC;CAEjC,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;CAC9B,YAAA,MAAM,iBAAiB,GAAG;iBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;cACtC,CAAC;CAEF,YAAA,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;CAEhD,SAAA;CAAM,aAAA;aACH,gBAAgB,GAAG,MAAM,CAAC;CAC7B,SAAA;CACD,QAAA,MAAM,cAAc,GAAG,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;SAC/H,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;MAC5D;KAEM,MAAM,QAAQ,CAAC,KAAa,EAAA;CAC/B,QAAA,wBAAwB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACjD,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;MAC9C;KAGM,MAAM,0BAA0B,CAAC,QAAgE,EAAA;SACpG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;CACxC,YAAA,QAAQ,CAAC;iBACL,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;CACtC,aAAA,CAAC,CAAC;CACP,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,4BAA4B;CACpC,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,WAAW;UACrB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;CAC/E,QAAA,OAAO,WAAW,CAAC;MACtB;KACM,MAAM,uBAAuB,CAAC,MAAyD,EAAA;SAC1F,MAAM,eAAe,GAAG,uCAAuC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACzF,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,uBAAuB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;MAEvE;CACJ;;CCjLD,MAAM,WAAW,GAAG,IAAI,OAAO,EAAsB,CAAC;CAEtD,MAAM,OAAO,GAAG,CAAC,KAAY,KAAU;KACnC,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;CACvC,CAAC,CAAC;OAEW,KAAK,CAAA;CAEd,IAAA,WAAA,CAAY,IAAU,EAAA;SAClB,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;MACnC;CAED,IAAA,IAAW,IAAI,GAAA;CACX,QAAA,OAAO,OAAO,CAAC;MAClB;CAED,IAAA,IAAW,EAAE,GAAA;SACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MACpC;CAED,IAAA,IAAW,OAAO,GAAA;SACd,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;MACzC;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;MAC/C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;MACzC;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;MAC9C;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;MAC9C;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;MAC/C;CAED,IAAA,IAAW,cAAc,GAAA;SACrB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;MAChD;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;MAC9C;CAED,IAAA,IAAW,eAAe,GAAA;SACtB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;MACjD;CAED,IAAA,IAAW,eAAe,GAAA;SACtB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;MACjD;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,kBAAkB,GAAA;SACzB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;MACpD;CAED,IAAA,IAAW,eAAe,GAAA;SACtB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;MACjD;CAED,IAAA,IAAW,mBAAmB,GAAA;SAC1B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;MACrD;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MAC1C;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;MAC3C;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;MAC5C;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MAC7C;CAEM,IAAA,SAAS,CAAC,UAAyD,EAAA;CACtE,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;MAC7D;CAEM,IAAA,MAAM,QAAQ,GAAA;CACjB,QAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;MACpE;CAEM,IAAA,MAAM,SAAS,GAAA;CAClB,QAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;MACrE;CAEM,IAAA,MAAM,MAAM,GAAA;CACf,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;MAClE;CAEM,IAAA,WAAW,CAAC,SAAmE,EAAA;SAClF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;MACrD;KAEM,QAAQ,GAAA;SACX,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;MACvC;KAEM,OAAO,GAAA;SACV,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;MACtC;KAEM,KAAK,GAAA;SACR,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;MACpC;CAEM,IAAA,IAAI,CAAC,MAAqI,EAAA;SAC7I,IAAI,gBAAgB,GAAG,SAAS,CAAC;CAEjC,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;CAC9B,YAAA,MAAM,iBAAiB,GAAG;iBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,aAAa,EAAE,IAAI,CAAC,aAAa;iBACjC,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;iBAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;cAC9C,CAAC;CAEF,YAAA,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;CAChD,SAAA;CAAM,aAAA;aACH,gBAAgB,GAAG,MAAM,CAAC;CAC7B,SAAA;CACD,QAAA,MAAM,cAAc,GAAG,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;SAC9H,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;MAC5D;KAEM,MAAM,OAAO,CAAC,MAA+C,EAAA;SAChE,MAAM,cAAc,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAE3E,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;CACjD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;CACpE,SAAA;CAGD,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;MACnE;CAEM,IAAA,MAAM,WAAW,GAAA;SACpB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAC1C,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;CAEM,IAAA,MAAM,cAAc,GAAA;SACvB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;CAC7C,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;KAEM,MAAM,0BAA0B,CAAC,QAA+D,EAAA;SACnG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;CACxC,YAAA,QAAQ,CAAC;iBACL,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,aAAa,EAAE,IAAI,CAAC,aAAa;iBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;iBAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;CAC9C,aAAA,CAAC,CAAC;CACP,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,4BAA4B;CACpC,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,WAAW;UACrB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;CAC/E,QAAA,OAAO,WAAW,CAAC;MACtB;CAEJ;;CC7ND,MAAMC,MAAI,GAAG,IAAI,OAAO,EAA0B,CAAC;CAEnD,MAAMC,SAAO,GAAG,CAAC,KAAgB,KAA0B;CACvD,IAAA,OAAOD,MAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAC3D,CAAC,CAAC;CAEF,MAAM,cAAc,GAAG,CAAC,KAAgB,KAAwB;KAC5D,OAAOA,MAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;CACnC,CAAC,CAAC;OAIW,SAAS,CAAA;CAElB,IAAA,WAAA,CAAY,WAA+B,EAAA;SACvCA,MAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;MAC5C;CAED,IAAA,IAAW,EAAE,GAAA;CACT,QAAA,OAAOC,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;MAC3B;CAED,IAAA,IAAW,OAAO,GAAA;SACd,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;MACvC;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;MAC7C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;MACrC;CAED,IAAA,IAAW,UAAU,GAAA;SACjB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;MAC1C;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;MAC5C;CAED,IAAA,IAAW,UAAU,GAAA;SACjB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;MAC1C;CAED,IAAA,IAAW,QAAQ,GAAA;CACf,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;MACjC;CAED,IAAA,IAAW,KAAK,GAAA;CACZ,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;MAC9B;CAED,IAAA,IAAW,cAAc,GAAA;SACrB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;MAC9C;CAED,IAAA,IAAW,sBAAsB,GAAA;SAC7B,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;MACtD;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MACzC;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;MAC7C;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;MAC5C;CAED,IAAA,IAAW,cAAc,GAAA;SACrB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;MAC9C;CAED,IAAA,IAAW,eAAe,GAAA;SACtB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;MAC/C;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;MAC5C;CAED,IAAA,IAAW,kBAAkB,GAAA;SACzB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;MAClD;CAED,IAAA,IAAW,eAAe,GAAA;SACtB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;MAC/C;CAED,IAAA,IAAW,cAAc,GAAA;SACrB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;MAC9C;CAED,IAAA,IAAW,wBAAwB,GAAA;SAC/B,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC;MACxD;CAED,IAAA,IAAW,wBAAwB,GAAA;SAC/B,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC;MACxD;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;MACxC;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MACzC;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;MACxC;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MACzC;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MACzC;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;MAC1C;CAED,IAAA,IAAW,sBAAsB,GAAA;SAC7B,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;MACtD;CAED,IAAA,IAAW,gBAAgB,GAAA;SACvB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;MAChD;CAED,IAAA,IAAW,oBAAoB,GAAA;SAC3B,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;MACpD;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;MACxC;KAEM,MAAM,WAAW,CAAC,SAAmE,EAAA;SACxF,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5C,IAAI,CAAC,KAAK,EAAE;aACR,OAAO;CACV,SAAA;CACD,QAAA,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;CACpB,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;KAEM,MAAM,MAAM,CAAC,SAAmE,EAAA;SACnF,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC9B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;CAEpE,QAAA,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;CAEpB,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;CAEM,IAAA,MAAM,KAAK,GAAA;CACd,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAClD,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;CAEM,IAAA,MAAM,KAAK,GAAA;SACd,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;SAG1D,MAAM,eAAe,GAAG,CAAC,MAAM,UAAU,CAAC,kBAAkB,EAAE,EAAE,EAAE,CAAC;CAEnE,QAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC;CAC5C,YAAA,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;CAC7C,YAAA,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;CAEtC,QAAA,IAAI,gBAAgB,EAAE;CAClB,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;CAC7B,SAAA;SAED,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MACvC;KAEM,QAAQ,GAAA;CACX,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAmD,CAAC;MACvH;CAEM,IAAA,MAAM,UAAU,CAAC,IAAY,EAAE,MAAyB,EAAA;CAC3D,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAC7C,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;MAC3I;KAEM,MAAM,QAAQ,CAAC,KAAa,EAAA;CAC/B,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9C,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAE5C,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;CAC9C,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;KAEM,UAAU,GAAA;SACb,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,OAAO,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MAClD;CAEM,IAAA,UAAU,CAAC,IAAS,EAAA;SACvB,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,OAAO,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;MACxD;CAEM,IAAA,aAAa,CAAC,IAAS,EAAA;SAC1B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,OAAO,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;MAC3D;CAEM,IAAA,gBAAgB,CAAC,QAA6B,EAAA;SACjD,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,OAAO,UAAU,CAAC,gCAAgC,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;MACzE;CAEM,IAAA,MAAM,gBAAgB,GAAA;SACzB,MAAM,WAAW,IAAI,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAA4B,CAAC;CAElH,QAAA,MAAM,mBAAmB,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAACA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;SAE1F,MAAM,WAAW,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;CACzD,YAAA,gBAAgB,EAAE,mBAAmB;CACrC,YAAA,SAAS,EAAE,IAAI;CACf,YAAA,MAAM,EAAE,IAAI;aACZ,QAAQ,EAAE,WAAW,CAAC,QAAQ;CACjC,SAAA,CAAC,CAAC;CAEH,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;CAChC,QAAA,IAAI,WAAkB,CAAC;SAEvB,IAAI,YAAY,CAAC,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;CAChD,YAAA,cAAc,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;aACxE,WAAW,GAAG,YAAY,CAAC;CAC9B,SAAA;CAAM,aAAA;CACH,YAAA,MAAM,iBAAiB,GAAsB;iBACzC,OAAO,EAAE,WAAW,CAAC,YAAY;cACpC,CAAC;CACF,YAAA,MAAM,QAAQ,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,iBAAiB,CAAC,CAAC;aACjF,WAAW,GAAG,QAAQ,CAAC;CAC1B,SAAA;CAED,QAAA,cAAc,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;aACtC,MAAM,EAAE,WAAW,CAAC,MAAM;CAC1B,YAAA,QAAQ,EAAE,WAAW;CACrB,YAAA,KAAK,EAAE,WAAW;CACrB,SAAA,CAAC,CAAC;MACN;CAEM,IAAA,MAAM,OAAO,GAAA;SAChB,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MAC/C;KAEM,MAAM,OAAO,CAAC,IAAY,EAAA;SAC7B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;MACrD;CAEM,IAAA,MAAM,CAAC,SAA6D,EAAA;SACvE,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC9B,MAAM,QAAQ,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;SACxC,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAE5C,OAAO,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,CAAqC,CAAC;MAC5I;CAEM,IAAA,WAAW,CAAC,SAAiE,EAAA;CAChF,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACpC,MAAM,QAAQ,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;SACxC,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAuC,CAAC;SAExI,IAAI,CAAC,SAAS,EAAE;CACZ,YAAA,OAAO,UAAU,CAAC;CACrB,SAAA;CAED,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;MACvC;CAEM,IAAA,MAAM,CAAC,SAAoD,EAAA;SAC9D,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,CAA4B,CAAC;MACzG;CAEM,IAAA,UAAU,CAAC,SAAqD,EAAA;CACnE,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CACpC,QAAA,IAAI,SAAS,EAAE;aACX,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,CAA8B,CAAC;CAChH,SAAA;CACD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,CAA8B,CAAC;MAC3F;CAEM,IAAA,SAAS,CAAC,SAA0D,EAAA;SACvE,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,CAA+B,CAAC;MAC/G;CAEM,IAAA,aAAa,CAAC,SAA4D,EAAA;CAC7E,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CACpC,QAAA,IAAI,SAAS,EAAE;aACX,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,CAAiC,CAAC;CACtH,SAAA;CACD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAiC,CAAC;MACjG;CAEM,IAAA,QAAQ,CAAC,SAAwD,EAAA;SACpE,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAA8B,CAAC;MAC7G;CAEM,IAAA,YAAY,CAAC,SAAyD,EAAA;CACzE,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CACpC,QAAA,IAAI,SAAS,EAAE;aACX,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,CAAgC,CAAC;CACpH,SAAA;CACD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,OAAO,CAAgC,CAAC;MAC/F;CAEM,IAAA,SAAS,CAAC,SAAmE,EAAA;SAChF,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAC9B,MAAM,QAAQ,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;SACxC,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAE5C,OAAO,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,CAAwC,CAAC;MAC/I;CAEM,IAAA,aAAa,CAAC,SAAoE,EAAA;CACrF,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACpC,MAAM,QAAQ,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;SACxC,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,CAA0C,CAAC;SAE3I,IAAI,CAAC,SAAS,EAAE;CACZ,YAAA,OAAO,UAAU,CAAC;CACrB,SAAA;CAED,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;MACvC;CAEM,IAAA,MAAM,CAAC,UAA8C,EAAA;CACxD,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAA0B,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;MACtG;CAEM,IAAA,SAAS,CAAC,UAA8C,EAAA;CAC3D,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAA6B,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;MAC5G;CAEM,IAAA,QAAQ,CAAC,UAA8C,EAAA;CAC1D,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAA4B,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;MAC1G;CAEM,IAAA,SAAS,CAAC,UAAyD,EAAA;CACtE,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;MACtE;CAEM,IAAA,MAAM,WAAW,GAAA;CACpB,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACjE,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;CAEM,IAAA,MAAM,cAAc,GAAA;CACvB,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;CACpE,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;CAEM,IAAA,MAAM,SAAS,GAAA;CAClB,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAC3D,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;CAEM,IAAA,MAAM,MAAM,GAAA;CACf,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CACxD,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;KAEM,MAAM,IAAI,CAAC,MAAiJ,EAAA;SAC/J,IAAI,gBAAgB,GAAG,SAAS,CAAC;CAEjC,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;CAC9B,YAAA,MAAM,iBAAiB,GAAG;iBACtB,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;iBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;iBACnD,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;iBAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;iBACvD,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;iBACvD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;iBAC/C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACvC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;cACtD,CAAC;CAEF,YAAA,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;CAChD,SAAA;CAAM,aAAA;aACH,gBAAgB,GAAG,MAAM,CAAC;CAC7B,SAAA;CAED,QAAA,MAAM,cAAc,GAAG,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;CAElI,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;CACtE,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;KAEM,MAAM,GAAG,CAAC,OAAgD,EAAA;CAC7D,QAAA,0BAA0B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACrD,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;CACpE,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;CAEM,IAAA,MAAM,KAAK,GAAA;CACd,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CACvD,QAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACjC;CAEM,IAAA,MAAM,oBAAoB,GAAA;SAC7B,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,IAAI,CAAC,aAAa,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;CAC1D,SAAA;CAED,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MACzE;CAEM,IAAA,MAAM,oBAAoB,GAAA;SAC7B,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,IAAI,CAAC,aAAa,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;CAC1D,SAAA;CAED,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MACzE;KAEM,MAAM,QAAQ,CAAC,QAAmE,EAAA;SACrF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAE5B,QAAA,MAAM,eAAe,GAAG,OAAO,OAA4B,KAAmB;aAE1E,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC/H,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,QAAQ;CAChB,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,YAAY,CAAC,QAAoB,EAAA;SAC1C,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAE5B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;CAC9B,YAAA,QAAQ,EAAE,CAAC;CACf,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,YAAY;CACpB,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,SAAS,CAAC,QAAoB,EAAA;SACvC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAE5B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;CAC9B,YAAA,QAAQ,EAAE,CAAC;CACf,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,SAAS;CACjB,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,aAAa,CAAC,QAA+D,EAAA;SACtF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC5B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAE3F,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;CAErD,gBAAA,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;CACvF,aAAC,CAAC,CAAC;aACH,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,OAAO;CACf,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,eAAe,CAAC,QAAwF,EAAA;SACjH,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAE5B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;CAC9B,YAAA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;aACxE,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;CACjD,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,SAAS;CACjB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,cAAc,CAAC,QAA+D,EAAA;SACvF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAE5B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;CACvC,gBAAA,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;CACtE,aAAC,CAAC,CAAC;aACH,QAAQ,CAAC,WAAW,CAAC,CAAC;CAC1B,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,QAAQ;CAChB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,iBAAiB,CAAC,QAA+D,EAAA;SAC1F,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC5B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAE3F,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;CAErD,gBAAA,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;CACvF,aAAC,CAAC,CAAC;aACH,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,WAAW;CACnB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,gBAAgB,CAAC,QAA+D,EAAA;SACzF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC5B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAE3F,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;CAErD,gBAAA,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;CACvF,aAAC,CAAC,CAAC;aACH,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,UAAU;CAClB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,gBAAgB,CAAC,QAA+D,EAAA;SACzF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC5B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAE3F,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;CAErD,gBAAA,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;CACvF,aAAC,CAAC,CAAC;aACH,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,UAAU;CAClB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,0BAA0B,CAAC,QAA+C,EAAA;SACnF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC5B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;CAC9B,YAAA,QAAQ,CAAC;iBACL,SAAS,EAAE,IAAI,CAAC,SAAS;iBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;iBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;iBACnD,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;iBAC3C,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;iBACvD,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;iBACvD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;iBAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;iBACrC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;iBACvC,cAAc,EAAE,IAAI,CAAC,cAAc;iBACnC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;CACtD,aAAA,CAAC,CAAC;CACP,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,MAAM,EAAE,4BAA4B;CACpC,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,WAAW;CAClB,YAAA,OAAO,EAAE,EAAE;CACX,YAAA,QAAQ,EAAE,eAAe;UAC5B,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;CACJ;;CC9rBD,MAAMD,MAAI,GAAG,IAAI,OAAO,EAAuB,CAAC;CAEhD,MAAMC,SAAO,GAAG,CAAC,KAAa,KAAuB;CACjD,IAAA,OAAOD,MAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CACxD,CAAC,CAAC;OAEW,MAAM,CAAA;CAEf,IAAA,WAAA,CAAY,WAA+B,EAAA;SACvCA,MAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;MAC5C;CAED,IAAA,IAAW,EAAE,GAAA;SACT,OAAOC,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;MACxC;CAED,IAAA,IAAW,SAAS,GAAA;CAChB,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;MAC3B;CAED,IAAA,IAAW,IAAI,GAAA;CACX,QAAA,OAAO,QAAQ,CAAC;MACnB;CAED,IAAA,IAAW,OAAO,GAAA;SACd,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;MACjC;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;MACrC;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;MAC7C;CAED,IAAA,IAAW,WAAW,GAAA;SAClB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;MAC3C;CAED,IAAA,IAAW,QAAQ,GAAA;CACf,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MAChE;CAED,IAAA,IAAW,UAAU,GAAA;SACjB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;MAC1C;CAED,IAAA,IAAW,OAAO,GAAA;CACd,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;MACvC;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;MACrC;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;MAC5C;CAED,IAAA,IAAW,YAAY,GAAA;SACnB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;MAC5C;CAED,IAAA,IAAW,eAAe,GAAA;SACtB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;MAC/C;CAED,IAAA,IAAW,KAAK,GAAA;SACZ,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MACzC;CAED,IAAA,IAAW,MAAM,GAAA;SACb,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;MAC1C;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;MACxC;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MACzC;CAED,IAAA,IAAW,QAAQ,GAAA;SACf,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;MACxC;CAED,IAAA,IAAW,SAAS,GAAA;SAChB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MACzC;CAED,IAAA,IAAW,SAAS,GAAA;CAChB,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;MAClC;CAED,IAAA,IAAW,KAAK,GAAA;CACZ,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;MAC9B;CAED,IAAA,IAAW,MAAM,GAAA;CACb,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;MAC/B;CAED,IAAA,IAAW,OAAO,GAAA;SACd,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;MACvC;CAEM,IAAA,MAAM,SAAS,GAAA;SAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;aACf,OAAO;CACV,SAAA;SACD,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,MAAM,MAAM,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAEhC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SAE1DA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAEzC,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;CAEM,IAAA,MAAM,KAAK,GAAA;SACd,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAC5B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;CAE/B,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;CAEM,IAAA,MAAM,KAAK,GAAA;SACd,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAC5B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SAE/B,MAAMA,SAAO,CAAC,IAAI,CAAC;cACd,MAAM;CACN,aAAA,WAAW,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;CAE7C,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;KAEM,MAAM,QAAQ,CAAC,KAAa,EAAA;CAC/B,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAE9C,MAAM,MAAM,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAChC,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAE5C,MAAM,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAE7C,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;CAEM,IAAA,MAAM,QAAQ,GAAA;SACjB,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAC5B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;CAElC,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;CAEM,IAAA,MAAM,OAAO,GAAA;SAChB,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAC5B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;CAEjC,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;CAEM,IAAA,MAAM,KAAK,GAAA;CACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;CAC7E,SAAA;SACD,MAAM,MAAM,GAAWA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAExC,QAAA,MAAM,WAAW,GAAW,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SAE/EA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC;CAE5C,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;CAExC,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;MAC7B;KAEM,WAAW,GAAA;CACd,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;CACxF,SAAA;SAED,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC3C,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;MACvC;KAEM,MAAM,MAAM,CAAC,MAAwF,EAAA;CACxG,QAAA,IAAI,EAAE,MAAM,YAAY,GAAG,IAAI,MAAM,YAAY,MAAM,IAAI,MAAM,YAAY,KAAK,CAAC,EAAE;CACjF,YAAA,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAC;CAChI,SAAA;SAED,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAC9B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAE5C,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;SAE1E,IAAI,CAAC,WAAW,EAAE;CACd,YAAA,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;CACzG,SAAA;SAED,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;CAE/C,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;KAEM,MAAM,IAAI,CAAC,MAAmK,EAAA;SACjL,IAAI,gBAAgB,GAAG,SAAS,CAAC;CAEjC,QAAA,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;CAC9B,YAAA,MAAM,iBAAiB,GAAG;iBACtB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;cACxC,CAAC;CACF,YAAA,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;CAChD,SAAA;CAAM,aAAA;aACH,gBAAgB,GAAG,MAAM,CAAC;CAC7B,SAAA;CAED,QAAA,MAAM,cAAc,GAAG,gBAAgB,KAAK,SAAS,GAAG,SAAS,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;SAC/H,MAAM,iBAAiB,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC3C,QAAA,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;CAC7E,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;KAEM,MAAM,OAAO,CAAC,MAA+C,EAAA;SAChE,MAAM,cAAc,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAE3E,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;CACjD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;CACpE,SAAA;SAED,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;SAC9B,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;CAE5C,QAAA,MAAM,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE;aAC9B,MAAM,EAAE,cAAc,CAAC,MAAM;aAC7B,KAAK,EAAE,cAAc,CAAC,KAAK;CAC3B,YAAA,QAAQ,EAAE,KAAK;CAClB,SAAA,CAAC,CAAC;CAEH,QAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;MAC3C;KAEM,MAAM,SAAS,CAAC,QAAoB,EAAA;SACvC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC5B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;CACxC,YAAA,QAAQ,EAAE,CAAC;CACf,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,SAAS;CACjB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,QAAQ;UAClB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,0BAA0B,CAAC,QAAqE,EAAA;SACzG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,EAAE,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;CAC5B,QAAA,MAAM,eAAe,GAAG,YAA0B;CAC9C,YAAA,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;CACxC,YAAA,QAAQ,CAAC;iBACL,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;iBAC/B,eAAe,EAAE,IAAI,CAAC,eAAe;CACxC,aAAA,CAAC,CAAC;CACP,SAAC,CAAC;CACF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,4BAA4B;CACpC,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,QAAQ;UAClB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACxF,QAAA,OAAO,WAAW,CAAC;MACtB;CACJ;;CCxSD,MAAMD,MAAI,GAAG,IAAI,OAAO,EAAsB,CAAC;CAE/C,MAAMC,SAAO,GAAG,CAAC,KAAY,KAAsB;CAC/C,IAAA,OAAOD,MAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CACvD,CAAC,CAAC;OAEW,KAAK,CAAA;CAEd,IAAA,WAAA,CAAY,WAA+B,EAAA;SACvCA,MAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;MAC5C;CAEM,IAAA,MAAM,gBAAgB,CAAC,QAAgB,EAAE,QAAoB,EAAA;CAChE,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACjD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGC,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;CAC9F,QAAA,OAAO,WAAW,CAAC;MACtB;CAED,IAAA,IAAW,EAAE,GAAA;SACT,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;MACnC;CAED,IAAA,IAAW,aAAa,GAAA;SACpB,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;MAC9C;KAEM,SAAS,GAAA;SACZ,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAEtC,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;MACxD;KAEM,MAAM,MAAM,CAAC,MAAwC,EAAA;SACxD,MAAM,eAAe,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACrE,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;MACrE;KAEM,MAAM,IAAI,CAAC,MAAsC,EAAA;SACpD,MAAM,eAAe,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAEnE,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;MACpE;KAEM,KAAK,GAAA;SACR,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACtC,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;MACnD;CAEM,IAAA,MAAM,KAAK,GAAA;SACd,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,IAAI,CAAC,aAAa,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;CAC/E,SAAA;SACD,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACtC,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;MACvD;CAEM,IAAA,MAAM,QAAQ,GAAA;SACjB,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,IAAI,CAAC,aAAa,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;CAC/E,SAAA;SACD,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;MACvE;CAEM,IAAA,MAAM,QAAQ,GAAA;SACjB,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,IAAI,CAAC,aAAa,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;CAC/E,SAAA;SACD,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;MACvE;CAEM,IAAA,MAAM,OAAO,GAAA;SAChB,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,IAAI,CAAC,aAAa,EAAE;CAChB,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;CAC/E,SAAA;SACD,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;MACpE;KAEM,KAAK,GAAA;SACR,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SACtC,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;MACnD;KAEM,QAAQ,GAAA;SACX,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAA+C,CAAC;MAC5G;CAEM,IAAA,MAAM,UAAU,GAAA;SACnB,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,OAAO,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;MACrD;CAEM,IAAA,MAAM,cAAc,GAAA;SACvB,MAAM,UAAU,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;SAC5C,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,OAAO,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;MAC/C;CAEM,IAAA,MAAM,gBAAgB,CAAC,IAAY,EAAE,OAAoD,EAAA;CAC5F,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC7C,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAEjF,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;MAC5E;KAEM,eAAe,CAAC,UAAmD,EAAE,MAAkD,EAAA;SAC1H,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SACpF,MAAM,eAAe,GAAG,mCAAmC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAErF,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;MACzF;KAEM,MAAM,IAAI,CAAC,MAAqD,EAAA;CACnE,QAAA,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SAEhD,IAAIA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE;CACrC,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;CAC7D,SAAA;CACD,QAAA,OAAOA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;MAC9D;KAEM,MAAM,QAAQ,CAAC,QAA+D,EAAA;SACjF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,MAAM,eAAe,GAAG,CAAC,OAAwB,KAAU;CACvD,YAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CACrF,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,QAAQ;CAChB,YAAA,SAAS,EAAE,OAAO;CAClB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,WAAW,CAAC,QAAoB,EAAA;SACzC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAEtC,MAAM,eAAe,GAAG,MAAW;CAC/B,YAAA,QAAQ,EAAE,CAAC;CACf,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,WAAW;CACnB,YAAA,SAAS,EAAE,OAAO;CAClB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,WAAW,CAAC,QAAoB,EAAA;SACzC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAEtC,MAAM,eAAe,GAAG,MAAW;CAC/B,YAAA,QAAQ,EAAE,CAAC;CACf,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,WAAW;CACnB,YAAA,SAAS,EAAE,OAAO;CAClB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,QAAQ,CAAC,QAAoB,EAAA;SACtC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;SAEtC,MAAM,eAAe,GAAG,MAAW;CAC/B,YAAA,QAAQ,EAAE,CAAC;CACf,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,QAAQ;CAChB,YAAA,SAAS,EAAE,OAAO;CAClB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,iBAAiB,CAAC,QAA4D,EAAA;SACvF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,MAAM,eAAe,GAAG,OAAO,OAA4B,KAAmB;CAC1E,YAAA,MAAM,SAAS,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;aAC5F,QAAQ,CAAC,SAAS,CAAC,CAAC;CACxB,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,QAAQ;CAChB,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,mBAAmB,CAAC,QAA4D,EAAA;SACzF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,MAAM,eAAe,GAAG,OAAO,OAA4B,KAAmB;CAC1E,YAAA,MAAM,SAAS,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;aAC/F,QAAQ,CAAC,SAAS,CAAC,CAAC;CACxB,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,UAAU;CAClB,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,iBAAiB,CAAC,QAAmE,EAAA;SAC9F,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,MAAM,eAAe,GAAG,CAAC,OAA4B,KAAU;aAC3D,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC/H,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,QAAQ;CAChB,YAAA,SAAS,EAAE,WAAW;CACtB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,aAAa,CAAC,QAA+D,EAAA;SACtF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;aACvE,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CACvH,YAAA,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aACxJ,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,OAAO;CACf,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,eAAe,CAAC,QAAwF,EAAA;SACjH,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,MAAM,eAAe,GAAG,CAAC,OAAyB,KAAU;CACxD,YAAA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;aACxE,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;CACjD,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,SAAS;CACjB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,cAAc,CAAC,QAA+D,EAAA;SACvF,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SAC7B,MAAM,IAAI,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAEtC,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;iBACpE,OAAO,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;CACxD,aAAC,CAAC,CAAC;CACH,YAAA,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aACxJ,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,QAAQ;CAChB,YAAA,SAAS,EAAE,QAAQ;CACnB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAMA,SAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC1F,QAAA,OAAO,WAAW,CAAC;MACtB;KAEM,MAAM,yBAAyB,CAAC,QAA4E,EAAA;SAC/G,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAE7B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;aACrB,QAAQ,CAACA,SAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACzD,SAAA;CAED,QAAA,OAAO,MAAO,GAAC,CAAC;MACnB;KAEM,MAAM,cAAc,CAAC,QAAmE,EAAA;SAC3F,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,MAAM,GAAGA,SAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,QAAA,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;CAE9B,QAAA,MAAM,eAAe,GAAG,CAAC,IAAqB,KAAU;aACpD,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;CACzD,SAAC,CAAC;CAEF,QAAA,MAAM,MAAM,GAAuB;CAC/B,YAAA,QAAQ,EAAE,eAAe;CACzB,YAAA,MAAM,EAAE,OAAO;CACf,YAAA,SAAS,EAAE,OAAO;CAClB,YAAA,KAAK,EAAE,OAAO;UACjB,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CACjF,QAAA,OAAO,WAAW,CAAC;MACtB;CACJ;;OCrWY,kBAAkB,CAAA;CACV,IAAA,WAAW,GAAG,IAAI,OAAO,EAAqC,CAAC;CAC/D,IAAA,cAAc,GAAG,IAAI,OAAO,EAAmC,CAAC;CAChE,IAAA,WAAW,GAAG,IAAI,OAAO,EAA6B,CAAC;CACvD,IAAA,UAAU,GAAG,IAAI,OAAO,EAA2B,CAAC;CAE9D,IAAA,UAAU,CAAI,KAAQ,EAAA;SACzB,IAAI,KAAK,YAAY,MAAM,EAAE;CACzB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAClC,SAAA;SAED,IAAI,KAAK,YAAY,SAAS,EAAE;CAC5B,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CACrC,SAAA;SAED,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,KAAK,EAAE;CAC3E,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAClC,SAAA;SAED,IAAI,KAAK,YAAY,KAAK,EAAE;CACxB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CACjC,SAAA;MACJ;KAEM,aAAa,CAAC,KAAa,EAAE,IAAuB,EAAA;SACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;MACrC;KAEM,gBAAgB,CAAC,KAAgB,EAAE,IAA0B,EAAA;SAChE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;MACxC;KAEM,aAAa,CAAC,KAAqB,EAAE,IAAuB,EAAA;SAC/D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;MACrC;KAEM,YAAY,CAAC,KAAY,EAAE,IAAsB,EAAA;SACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;MACpC;CAEM,IAAA,aAAa,CAAC,KAAa,EAAA;SAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;MACtC;CAEM,IAAA,gBAAgB,CAAC,KAAgB,EAAA;SACpC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;MACzC;CAEM,IAAA,aAAa,CAAC,KAAqB,EAAA;SACtC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;MACtC;CAEM,IAAA,YAAY,CAAC,KAAY,EAAA;SAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;MACrC;KAEM,UAAU,CAAC,KAAY,EAAE,OAAuB,EAAA;SACnD,IAAI,KAAK,YAAY,MAAM,EAAE;aACzB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;aAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAsC,IAAI,IAAI,CAAC,MAAM,CAAC;CAC/E,SAAA;SAED,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,YAAY,KAAK,EAAE;aAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;aAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAA8B,IAAI,IAAI,CAAC,MAAM,CAAC;aACpE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;CACrD,SAAA;MACJ;KAEM,UAAU,CAAC,KAAY,EAAE,OAA2B,EAAA;SACvD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;CACxC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;MAC1B;KAEM,cAAc,CAAC,KAAgB,EAAE,OAA2B,EAAA;SAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAC5C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC;SACzC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;SAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC;MACrD;CACJ;;CC1ED,MAAM,IAAI,GAAG,IAAI,OAAO,EAAqB,CAAC;CAE9C,MAAM,OAAO,GAAG,CAAC,IAAU,EAAE,KAAqB,KAA8C;KAC5F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;KAEvC,IAAI,KAAK,YAAY,SAAS,EAAE;CAC5B,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAC1C,KAAA;CAED,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAuB,CAAC,CAAC;CACzE,CAAC,CAAC;OAEW,IAAI,CAAA;CACN,IAAA,OAAO,CAAS;CAChB,IAAA,WAAW,CAAS;CACpB,IAAA,aAAa,CAAS;CAE7B,IAAA,WAAA,CAAY,WAA+B,EAAA;SACvC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;MAC5C;CAEM,IAAA,KAAK,CAAC,KAAqB,EAAA;SAC9B,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;MAClC;CAEM,IAAA,gBAAgB,CAAC,KAAqB,EAAA;SACzC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;MACpD;CAEM,IAAA,cAAc,CAAC,KAAqB,EAAA;SACvC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;SAC9D,OAAO,WAAW,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;MACrE;CAEM,IAAA,UAAU,CAAC,KAAqB,EAAA;SACnC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;MACxC;KAEM,cAAc,CAAC,KAAqB,EAAE,SAAqC,EAAA;CAC9E,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC;CAE/C,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;CAClC,YAAA,OAAO,QAAQ,CAAC;CACnB,SAAA;CAED,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;MACrC;CAEM,IAAA,WAAW,CAAC,KAAqB,EAAA;SACpC,IAAI,KAAK,YAAY,SAAS,EAAE;CAC5B,YAAA,OAAO,KAAK,CAAC;CAChB,SAAA;SACD,OAAQ,OAAO,CAAC,IAAI,EAAE,KAAK,CAAuB,CAAC,MAAM,CAAC;MAC7D;CAEM,IAAA,UAAU,CAAC,KAAqB,EAAA;SACnC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC;MACrC;CAEM,IAAA,cAAc,CAAC,KAAqB,EAAA;SACvC,IAAI,KAAK,YAAY,SAAS,EAAE;CAC5B,YAAA,OAAO,KAAK,CAAC;CAChB,SAAA;SACD,OAAQ,OAAO,CAAC,IAAI,EAAE,KAAK,CAAuB,CAAC,SAAS,CAAC;MAChE;CAEM,IAAA,MAAM,SAAS,CAAC,KAAqB,EAAE,UAAyD,EAAE,UAAqB,EAAA;SAC1H,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;CAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;CAC3F,SAAA;SAED,MAAM,mBAAmB,GAAG,+BAA+B,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SACzF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC;SAEnD,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;SAEjH,IAAI,KAAK,YAAY,SAAS,EAAE;CAC5B,YAAA,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;CAC/B,YAAA,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;CACvE,SAAA;SAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAC/C,QAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;CAErC,QAAA,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;MAC7E;KAEM,MAAM,SAAS,CAAI,KAAqB,EAAE,SAAoB,EAAE,UAAqB,EAAE,UAA8D,EAAA;SACxJ,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SACzE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC;SAEnD,MAAM,WAAW,GAAG,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAEtH,IAAI,KAAK,YAAY,SAAS,EAAE;CAC5B,YAAA,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;CAC/B,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,WAAW,CAAiB,CAAC;CAC9E,SAAA;SAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;CAC/C,QAAA,MAAM,WAAW,CAAC,gBAAgB,EAAE,CAAC;CAErC,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,WAAW,CAAiB,CAAC;MACpF;CAEM,IAAA,MAAM,WAAW,CAAC,KAAqB,EAAE,SAAoC,EAAA;SAChF,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACzD,IAAI,CAAC,KAAK,EAAE;aACR,OAAO;CACV,SAAA;CAED,QAAA,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;SAEpB,IAAI,KAAK,YAAY,SAAS,EAAE;CAE5B,YAAA,MAAM,KAAK,CAAC,gBAAgB,EAAE,CAAC;aAC/B,OAAO;CACV,SAAA;SAED,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,CAAC;MACvD;KAEM,MAAM,QAAQ,CAAC,KAAqB,EAAA;CACvC,QAAA,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEhD,QAAA,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;SAElC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAC9D;KAEM,MAAM,OAAO,CAAC,KAAqB,EAAA;CACtC,QAAA,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEhD,QAAA,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;SAEjC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAC9D;KAEM,MAAM,KAAK,CAAC,KAAqB,EAAA;SACpC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;SAE5D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC;SAEnD,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SAEzC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAClE;CAEM,IAAA,MAAM,aAAa,CAAC,KAAqB,EAAE,MAA4B,EAAA;SAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;SAE5D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC;CAEnD,QAAA,MAAM,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAEjE,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAClE;CAEM,IAAA,YAAY,CAAC,KAAqB,EAAA;SACrC,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;MAChD;CAEM,IAAA,gBAAgB,CAAC,KAAY,EAAA;SAChC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;CAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,+DAAA,EAAkE,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;CAC/G,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC;MAC3C;CAEM,IAAA,iBAAiB,CAAC,KAAY,EAAA;SACjC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;CAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,gEAAA,EAAmE,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;CAChH,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;MAC5C;CAEM,IAAA,eAAe,CAAC,KAAY,EAAA;SAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;CAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,8DAAA,EAAiE,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;CAC9G,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;MAC1C;CAEM,IAAA,kBAAkB,CAAC,KAAY,EAAA;SAClC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;CAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iEAAA,EAAoE,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;CACjH,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC;MAC7C;CAEM,IAAA,kBAAkB,CAAC,KAAY,EAAA;SAClC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;CAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iEAAA,EAAoE,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC;CACjH,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC;MAC7C;CAEM,IAAA,iBAAiB,CAAC,KAAmB,EAAA;SACxC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;aAC9B,MAAM,IAAI,KAAK,CAAC,CAAA,6CAAA,EAAgD,WAAW,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;CACvF,SAAA;CAED,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;MAC5C;CAEM,IAAA,eAAe,CAAC,KAAY,EAAA;SAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;aAC9B,MAAM,IAAI,KAAK,CAAC,CAA8C,2CAAA,EAAA,WAAW,CAAC,IAAI,CAAgB,aAAA,EAAA,WAAW,CAAC,IAAI,KAAK,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAE,CAAA,CAAC,CAAC;CACpK,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;MAC1C;CAEM,IAAA,eAAe,CAAC,KAAY,EAAA;SAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;aAC9B,MAAM,IAAI,KAAK,CAAC,CAA8C,2CAAA,EAAA,WAAW,CAAC,IAAI,CAAgB,aAAA,EAAA,WAAW,CAAC,IAAI,KAAK,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAE,CAAA,CAAC,CAAC;CACpK,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;MAC1C;CAEM,IAAA,qBAAqB,CAAC,KAAY,EAAA;SACrC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;aAC9B,MAAM,IAAI,KAAK,CAAC,CAAoD,iDAAA,EAAA,WAAW,CAAC,IAAI,CAAgB,aAAA,EAAA,WAAW,CAAC,IAAI,KAAK,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAE,CAAA,CAAC,CAAC;CAC1K,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC;MAChD;CAEM,IAAA,kBAAkB,CAAC,KAAY,EAAA;SAClC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;aAC9B,MAAM,IAAI,KAAK,CAAC,CAAiD,8CAAA,EAAA,WAAW,CAAC,IAAI,CAAgB,aAAA,EAAA,WAAW,CAAC,IAAI,KAAK,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAE,CAAA,CAAC,CAAC;CACvK,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC;MAC7C;CAEM,IAAA,sBAAsB,CAAC,KAAY,EAAA;SACtC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CACzC,QAAA,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,EAAE;aAC9B,MAAM,IAAI,KAAK,CAAC,CAAiD,8CAAA,EAAA,WAAW,CAAC,IAAI,CAAgB,aAAA,EAAA,WAAW,CAAC,IAAI,KAAK,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAE,CAAA,CAAC,CAAC;CACvK,SAAA;CACD,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC;MACjD;CAEM,IAAA,WAAW,CAAC,KAAqB,EAAA;SACpC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;MACtC;CAEM,IAAA,WAAW,CAAC,KAAqB,EAAA;SACpC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;MACtC;CAEM,IAAA,YAAY,CAAC,KAAqB,EAAA;SACrC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;MACvC;CAEM,IAAA,YAAY,CAAC,KAAqB,EAAA;SACrC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;MACvC;CAEM,IAAA,YAAY,CAAC,KAAqB,EAAA;SACrC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;MACvC;CAEM,IAAA,aAAa,CAAC,KAAqB,EAAA;SACtC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;MACxC;CAEM,IAAA,WAAW,CAAC,KAAmB,EAAA;SAClC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAQ,WAAW,CAAC,MAAmD,CAAC,QAAQ,CAAC;MACpF;CAEM,IAAA,cAAc,CAAC,KAA2B,EAAA;SAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAQ,WAAW,CAAC,MAAyE,CAAC,WAAW,CAAC;MAC7G;CAEM,IAAA,uBAAuB,CAAC,KAAmB,EAAA;SAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAEzC,QAAA,OAAQ,WAAW,CAAC,MAAmD,CAAC,oBAAoB,CAAC;MAChG;CAEM,IAAA,MAAM,SAAS,CAAC,KAAU,EAAE,MAAc,EAAA;SAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;CAC5D,QAAA,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;CAErC,QAAA,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE;aAC5B,MAAM;CACT,SAAA,CAAC,CAAC;SAEH,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAClE;CAEM,IAAA,MAAM,QAAQ,CAAC,KAAa,EAAE,KAAa,EAAA;SAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;CAC5D,QAAA,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;CAErC,QAAA,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE;aAC5B,KAAK;CACR,SAAA,CAAC,CAAC;SAEH,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAClE;CAEM,IAAA,MAAM,OAAO,CAAC,KAAY,EAAE,KAAc,EAAE,MAAe,EAAA;SAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;CAC5D,QAAA,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;CAErC,QAAA,MAAM,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE;aAC5B,KAAK;aACL,MAAM;CACT,SAAA,CAAC,CAAC;SAEH,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAClE;CAEM,IAAA,MAAM,uBAAuB,CAAC,KAAmB,EAAE,MAAyD,EAAA;SAC/G,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;CAC5D,QAAA,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;SAErC,MAAM,UAAU,CAAC,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;SAErD,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,CAAC;MAClE;CAEM,IAAA,MAAM,QAAQ,CAAC,KAAY,EAAE,IAAsB,EAAA;SACtD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAsB,CAAC;CAC5D,QAAA,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;SAErC,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;MAC3C;CAEM,IAAA,MAAM,wBAAwB,CAAC,KAAqB,EAAE,kBAAsC,EAAA;SAC/F,OAAO,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;MACzG;KAEO,mBAAmB,CAAC,IAAgC,EAAE,UAA8D,EAAA;CACxH,QAAA,IAAI,gBAAmD,CAAC;CAExD,QAAA,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;aACnC,gBAAgB,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;CAC7C,SAAA;cAAM,IAAI,UAAU,YAAY,aAAa,EAAE;CAC5C,YAAA,gBAAgB,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;CAC7C,SAAA;CAAM,aAAA;CACH,YAAA,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;CACxC,gBAAA,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;CAC1B,aAAA;CACD,YAAA,gBAAgB,GAAG,6BAA6B,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;aAC9E,gBAAgB,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,IAAI,EAAE,CAAC;CAC/D,SAAA;CAED,QAAA,OAAO,gBAAgB,CAAC;MAC3B;CACJ;;OC5XY,cAAc,CAAA;CAGF,IAAA,GAAA,CAAA;CACA,IAAA,OAAA,CAAA;CACA,IAAA,QAAA,CAAA;CACA,IAAA,OAAA,CAAA;CAJrB,IAAA,WAAA,CACqB,GAAQ,EACR,OAAmB,EACnB,QAAqB,EACrB,OAAmB,EAAA;SAHnB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAK;SACR,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;SACnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;SACrB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;MACnC;CAEL,IAAA,IAAY,MAAM,GAAA;CACd,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;MAC1B;CAED,IAAA,IAAY,kBAAkB,GAAA;CAC1B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC;MACtC;CAEM,IAAA,mBAAmB,CAAC,QAAgB,EAAA;SACvC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;MACjF;KAEM,MAAM,eAAe,CAAC,YAA2C,EAAA;CACpE,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA0B,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;CAEhH,QAAA,MAAM,WAAW,GAAsB;aACnC,OAAO,EAAE,QAAQ,CAAC,YAAY;UACjC,CAAC;CACF,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE/D,QAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SAEtE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;MACvE;KAEM,MAAM,gBAAgB,CAAC,UAAoD,EAAA;CAC9E,QAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAqB,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;CACzG,QAAA,MAAM,WAAW,GAAsB;CACnC,YAAA,OAAO,EAAE,YAAY;UACxB,CAAC;SAEF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;MAC3D;CAEM,IAAA,MAAM,SAAS,CAAC,OAAe,EAAE,MAAqD,EAAA;CACzF,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;MACnF;CAEM,IAAA,MAAM,gBAAgB,CAAC,IAAY,EAAE,OAAmD,EAAA;SAC3F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA0B,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;SAEnI,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAqB,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;CAEtI,QAAA,MAAM,WAAW,GAAsB;CACnC,YAAA,OAAO,EAAE,YAAY;UACxB,CAAC;CACF,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE/D,QAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SAEtE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;MACvE;KAEM,MAAM,GAAG,CAAC,IAA4B,EAAE,QAAgB,EAAE,UAAoD,EAAE,UAA6F,EAAA;CAChN,QAAA,IAAI,aAAqB,CAAC;SAC1B,MAAM,aAAa,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;SAE3D,IAAI,IAAI,KAAK,QAAQ,EAAE;CACnB,YAAA,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;CAC7C,SAAA;cAAM,IAAI,IAAI,KAAK,WAAW,EAAE;CAC7B,YAAA,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC;CAChD,SAAA;CAAM,aAAA;CACH,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAA,CAAE,CAAC,CAAC;CACrD,SAAA;SAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAgB,aAAa,EAAE,aAAa,CAAC,CAAC;MAC9E;KAEM,MAAM,QAAQ,CAAC,QAAgB,EAAA;SAClC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAqB,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;CAEvH,QAAA,MAAM,WAAW,GAAsB;CACnC,YAAA,OAAO,EAAE,YAAY;UACxB,CAAC;SACF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;MAE3D;KAEM,SAAS,CAAC,iBAAuC,EAAE,SAAqC,EAAA;SAE3F,OAAO,iBAAiB,CAAC,MAAM,CAAU,CAAC,MAAM,EAAE,YAAY,KAAI;CAE9D,YAAA,MAAM,WAAW,GAAsB;CACnC,gBAAA,OAAO,EAAE,YAAY;cACxB,CAAC;CACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAEtE,YAAA,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE;CACvC,gBAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;CAC7B,aAAA;CAED,YAAA,OAAO,MAAM,CAAC;UACjB,EAAE,EAAE,CAAC,CAAC;MACV;KAEM,wBAAwB,CAAC,GAAG,aAAyC,EAAA;SAExE,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAA2B,CAAC,SAAS,EAAE,aAAa,KAAI;aAC7F,SAAS,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;CAC3C,YAAA,OAAO,SAAS,CAAC;UACpB,EAAE,EAAE,CAAC,CAAC;CAEP,QAAA,OAAO,YAAY,CAAC,GAAG,CAAuC,CAAC,OAAO,KAAI;CAEtE,YAAA,OAAO,MAAM,CAAC,MAAM,CAChB,EAAE,EACF,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,EACtF,OAAO,CAAC,MAAM,CACjB,CAAC;CACN,SAAC,CAAC,CAAC;MACN;CAEM,IAAA,aAAa,CAAC,QAA+D,EAAA;CAChF,QAAA,MAAM,eAAe,GAAG,CAAC,MAA2C,KAAU;CAC1E,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;iBAC7B,OAAO;CACV,aAAA;aAED,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrB,SAAC,CAAC;SAEF,MAAM,UAAU,GAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;SAC9E,MAAM,YAAY,GAAwB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;CAElF,QAAA,OAAO,MAAW;CACd,YAAA,UAAU,EAAE,CAAC;CACb,YAAA,YAAY,EAAE,CAAC;CACnB,SAAC,CAAC;MACL;CAEM,IAAA,eAAe,CAAC,QAA+D,EAAA;CAClF,QAAA,MAAM,eAAe,GAAG,CAAC,MAA2C,KAAU;CAC1E,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;iBAC7B,OAAO;CACV,aAAA;aAED,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrB,SAAC,CAAC;SAEF,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;MAClD;CAEM,IAAA,MAAM,aAAa,CAAC,OAA8C,EAAE,IAAyB,EAAA;SAChG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;MAC5C;KAEM,MAAM,iCAAiC,CAAC,OAA4B,EAAA;CACvE,QAAA,MAAM,WAAW,GAAsB;aACnC,OAAO,EAAE,OAAO,CAAC,YAAY;UAChC,CAAC;CACF,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE/D,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA0B,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;CAE/K,QAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;CAEtE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;CAE/E,QAAA,OAAO,SAAS,CAAC;MACpB;KAEM,MAAM,cAAc,CAAC,MAAc,EAAA;CAEtC,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA0B,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;CAEnH,QAAA,MAAM,WAAW,GAAsB;aACnC,OAAO,EAAE,QAAQ,CAAC,YAAY;UACjC,CAAC;CAEF,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE/D,QAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SAEtE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;MAEvE;CAEM,IAAA,MAAM,iBAAiB,CAAC,IAAsB,EAAE,WAAmB,EAAA;CACtE,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;MAClF;CAEM,IAAA,MAAM,YAAY,CAAC,IAAsB,EAAE,MAAc,EAAA;CAC5D,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAEhF,IAAI,CAAC,WAAW,EAAE;aACd,MAAM,IAAI,KAAK,CAAC,CAAa,UAAA,EAAA,UAAU,CAAC,UAAU,CAAC,IAAI,CAAmF,iFAAA,CAAA,CAAC,CAAC;CAC/I,SAAA;CAED,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;MACxE;CAEM,IAAA,mBAAmB,CAAC,WAAmB,EAAA;CAC1C,QAAA,MAAM,WAAW,GAAG,CAAkB,eAAA,EAAA,WAAW,EAAE,CAAC;SACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;MACzC;KAEM,mBAAmB,CAAC,WAAmB,EAAE,IAAS,EAAA;CACrD,QAAA,MAAM,WAAW,GAAG,CAAkB,eAAA,EAAA,WAAW,EAAE,CAAC;SACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;MAC/C;KAEM,sBAAsB,CAAC,WAAmB,EAAE,IAAS,EAAA;CACxD,QAAA,MAAM,WAAW,GAAG,CAAkB,eAAA,EAAA,WAAW,EAAE,CAAC;SACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;MAClD;KAEM,gCAAgC,CAAC,WAAmB,EAAE,QAA6B,EAAA;CACtF,QAAA,MAAM,WAAW,GAAG,CAAkB,eAAA,EAAA,WAAW,EAAE,CAAC;SACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;MACzD;KAEM,MAAM,WAAW,CAAC,MAAc,EAAA;CACnC,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;MACnE;KAEM,MAAM,YAAY,CAAC,MAAc,EAAA;CACpC,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;MACpE;KAEM,MAAM,SAAS,CAAC,MAAc,EAAA;CACjC,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;MACjE;KAEM,MAAM,SAAS,CAAC,MAAc,EAAA;CACjC,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;MACjE;CAEM,IAAA,MAAM,UAAU,CAAC,MAAc,EAAE,MAAwC,EAAA;SAC5E,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;MAC7F;CAEM,IAAA,MAAM,uBAAuB,CAAC,MAAc,EAAE,MAAyD,EAAA;SAC1G,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;MAC1G;KAEM,MAAM,6BAA6B,CAAC,WAAmB,EAAA;SAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;MAC5G;KAEM,MAAM,6BAA6B,CAAC,WAAmB,EAAA;SAC1D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;MAC5G;CAEM,IAAA,MAAM,SAAS,CAAC,MAAc,EAAE,MAAsC,EAAA;SACzE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;MAC5F;CAEM,IAAA,WAAW,CAAC,MAAc,EAAA;SAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;MACzE;KAEM,MAAM,eAAe,CAAC,MAAc,EAAA;CACvC,QAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAqC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;SAE9H,OAAO,aAAa,CAAC,QAAQ,CAAC;MACjC;KAEM,MAAM,WAAW,CAAC,MAAc,EAAA;CACnC,QAAA,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAqC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;MAC9G;CAEM,IAAA,MAAM,YAAY,CAAC,MAAc,EAAE,WAAmB,EAAA;SACzD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;MAC9F;CAEM,IAAA,MAAM,WAAW,CAAC,MAAc,EAAE,IAA2B,EAAA;CAChE,QAAA,IAAI,MAAqD,CAAC;SAE1D,IAAI,IAAI,KAAK,WAAW,EAAE;CACtB,YAAA,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA0B,UAAU,CAAC,oBAAoB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;CAC9G,SAAA;cAAM,IAAI,IAAI,KAAK,OAAO,EAAE;CACzB,YAAA,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAsB,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;CACtG,SAAA;CAED,QAAA,OAAO,MAAM,CAAC;MACjB;CAEM,IAAA,MAAM,YAAY,CAAC,MAAc,EAAE,KAAa,EAAA;CACnD,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;MAC3E;CAEM,IAAA,eAAe,CAAC,MAA6B,EAAA;SAChD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;SACjE,IAAI,MAAM,YAAY,MAAM,IAAK,MAA8C,CAAC,IAAI,KAAK,QAAQ,EAAE;aAC/F,OAAO;CACV,SAAA;SAED,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,gBAAgB,KAAI;aAClD,IAAI,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;iBAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,GAAG,KAAK,CAAC,SAAS,KAAK,gBAAgB,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,CAAC;CAChH,aAAC,CAAC,CAAC;CAEH,YAAA,IAAI,UAAU,EAAE;CACZ,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE;CAC3C,oBAAA,MAAM,EAAE,MAAwB;CAChC,oBAAA,QAAQ,EAAE,EAAE;qBACZ,MAAM,EAAE,gBAAgB,CAAC,MAAM;CAClC,iBAAA,CAAC,CAAC;CACN,aAAA;CAAM,iBAAA;CACH,gBAAA,IAAI,YAAqD,CAAC;CAC1D,gBAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,QAAQ,EAAE;CACpC,oBAAA,YAAY,GAAG;yBACX,EAAE,EAAE,gBAAgB,CAAC,EAAE;CACvB,wBAAA,MAAM,EAAE,MAAwB;yBAChC,KAAK,EAAE,SAAS,CAAC,KAAK;yBACtB,SAAS;yBACT,MAAM,EAAE,gBAAgB,CAAC,MAAM;sBACZ,CAAC;CAC3B,iBAAA;CAAM,qBAAA;CACH,oBAAA,YAAY,GAAG;yBACX,EAAE,EAAE,gBAAgB,CAAC,EAAE;CACvB,wBAAA,MAAM,EAAE,MAAwB;yBAChC,KAAK,EAAE,SAAS,CAAC,KAAK;yBACtB,SAAS;yBACT,MAAM,EAAE,gBAAgB,CAAC,MAAM;CAC/B,wBAAA,QAAQ,EAAE,EAAE;sBACO,CAAC;CAC3B,iBAAA;CAED,gBAAA,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAU,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;CAChF,aAAA;CAED,YAAA,IAAI,gBAAgB,CAAC,IAAI,KAAK,QAAQ,EAAE;iBACpC,IAAI,CAAC,eAAe,CAAC;CACjB,oBAAA,SAAS,EAAE,gBAAgB;qBAC3B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;CACnC,oBAAA,MAAM,EAAE,UAAU;CACrB,iBAAA,CAAC,CAAC;CACN,aAAA;CAED,YAAA,OAAO,UAAU,CAAC;CACtB,SAAC,CAAC,CAAC;SAEH,IAAI,MAAM,YAAY,SAAS,EAAE;CAC7B,YAAA,OAAO,WAAW,CAAC;CACtB,SAAA;CAAM,aAAA;CACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAwB,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;CACxF,YAAA,OAAO,WAAW,CAAC;CACtB,SAAA;MACJ;KAEM,gBAAgB,CAAC,QAAiB,EAAE,SAAoC,EAAA;CAC3E,QAAA,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;CAE5D,QAAA,IAAI,UAAU,EAAE;CACZ,YAAA,OAAO,UAAU,CAAC;CACrB,SAAA;CAED,QAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;aACpB,IAAI,KAAK,YAAY,MAAM,EAAE;CACzB,gBAAA,OAAO,KAAK,CAAC;CAChB,aAAA;aAED,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAE,KAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;CAElF,YAAA,IAAI,UAAU,EAAE;CACZ,gBAAA,OAAO,IAAI,CAAC;CACf,aAAA;CACL,SAAC,CAAC,CAAC;CAEH,QAAA,OAAO,UAAU,CAAC;MACrB;KAEM,qBAAqB,CAAC,QAAiB,EAAE,SAAoC,EAAA;CAChF,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SAEnE,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAU,CAAC,UAAU,EAAE,KAAK,KAAI;aACjE,IAAI,KAAK,YAAY,MAAM,EAAE;CACzB,gBAAA,OAAO,UAAU,CAAC;CACrB,aAAA;CAED,YAAA,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAE,KAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;CAE9F,YAAA,OAAO,UAAU,CAAC;UACrB,EAAE,EAAE,CAAC,CAAC;CAEP,QAAA,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;CAErC,QAAA,OAAO,aAAa,CAAC;MACxB;CAEM,IAAA,iBAAiB,CAAC,QAAgB,EAAA;CACrC,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;aAE3B,MAAM,cAAc,GAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;CAEvF,YAAA,IAAI,cAAc,EAAE;iBAChB,OAAO,OAAO,EAAE,CAAC;CACpB,aAAA;aAED,MAAM,WAAW,GAAwB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,KAAI;CAExE,gBAAA,IAAI,GAAG,CAAC,EAAE,KAAK,QAAQ,EAAE;qBACrB,OAAO;CACV,iBAAA;CAED,gBAAA,IAAI,WAAW,EAAE;CACb,oBAAA,WAAW,EAAE,CAAC;CACjB,iBAAA;CAED,gBAAA,OAAO,EAAE,CAAC;CACd,aAAC,CAAC,CAAC;CACP,SAAC,CAAC,CAAC;MACN;KAEM,MAAM,kBAAkB,CAAC,WAAmB,EAAA;CAC/C,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;MACrF;KAEM,MAAM,eAAe,CAAC,WAAmB,EAAA;CAC5C,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;MAClF;CAEM,IAAA,MAAM,aAAa,CAAC,WAAmB,EAAE,MAAgD,EAAA;CAC5F,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;MACxF;CAEM,IAAA,MAAM,UAAU,CAAC,iBAAyB,EAAE,MAAsD,EAAA;CACrG,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;MAC3F;CAEM,IAAA,MAAM,aAAa,CAAC,MAAc,EAAE,IAA4B,EAAE,MAA4B,EAAA;SACjG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;MACzF;CAEM,IAAA,MAAM,YAAY,CAAC,WAAmB,EAAE,IAAa,EAAA;CACxD,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;MACrF;KAEM,MAAM,cAAc,CAAC,WAAmB,EAAA;CAC3C,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;MACjF;KAEM,MAAM,gBAAgB,CAAC,WAAmB,EAAA;CAC7C,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAmB,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;SAC3G,OAAO,MAAM,CAAC,IAAI,CAAC;MACtB;KAEM,gBAAgB,CAAC,WAAmB,EAAE,IAAY,EAAA;CACrD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;MAC1F;CAEM,IAAA,MAAM,kBAAkB,GAAA;SAC3B,IAAI;CACA,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA2B,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;CAExG,YAAA,OAAO,MAAM,CAAC;CACjB,SAAA;CAAC,QAAA,OAAO,KAAK,EAAE;CACZ,YAAA,OAAO,EAAE,CAAA;CACZ,SAAA;MACJ;KAEM,MAAM,oBAAoB,CAAC,SAAiB,EAAA;SAC/C,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;CAE5E,QAAA,IAAI,aAAa,EAAE;CAEf,YAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;CAChC,SAAA;CACD,QAAA,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuB,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;MACtG;CACJ;;OCtdY,cAAc,CAAA;CAGF,IAAA,MAAA,CAAA;CACA,IAAA,IAAA,CAAA;CACA,IAAA,mBAAA,CAAA;CAHrB,IAAA,WAAA,CACqB,MAAc,EACd,IAAoB,EACpB,mBAAwC,EAAA;SAFxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;SACd,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAgB;SACpB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;MACxD;CAEE,IAAA,mBAAmB,CAAC,QAAgB,EAAA;SACvC,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;MAClD;KAEM,MAAM,iBAAiB,CAAC,QAAgB,EAAA;SAE3C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA2B,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;SAElI,OAAO,aAAa,CAAC,WAAW,CAAC;MACpC;CAEM,IAAA,MAAM,eAAe,CAAC,UAAmD,EAAE,UAAsD,EAAA;CACpI,QAAA,MAAM,YAAY,GAAkC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;SAElG,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;MACxD;KAEM,MAAM,gBAAgB,CAAC,UAAoD,EAAA;SAC9E,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;MACvD;CAEM,IAAA,MAAM,SAAS,CAAC,OAAe,EAAE,MAAqD,EAAA;SACzF,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;MAC/C;CAEM,IAAA,MAAM,gBAAgB,CAAC,IAAY,EAAE,OAAoD,EAAA;CAC5F,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;CAEnD,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;SAEzE,IAAI,CAAC,YAAY,EAAE;CACf,YAAA,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAA,8CAAA,CAAgD,CAAC,CAAC;CACzF,SAAA;SAED,IAAI,OAAO,EAAE,OAAO,EAAE;CAClB,YAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuB,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;aAE9G,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;aAEzG,IAAI,CAAC,kBAAkB,EAAE;iBACrB,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,CAAC,OAAO,CAAgD,8CAAA,CAAA,CAAC,CAAC;CACvH,aAAA;CACJ,SAAA;SAED,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;MAC1D;KAEM,MAAM,GAAG,CAAC,IAA4B,EAAE,QAAgB,EAAE,UAAoD,EAAE,UAA6F,EAAA;CAChN,QAAA,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;MACtE;KAEM,wBAAwB,CAAC,MAA0B,EAAE,OAAe,EAAA;SACvE,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,OAAO,aAAa;aAChB,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,OAAO,CAAC;CACvD,YAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;MACzD;CAEM,IAAA,yBAAyB,CAAC,QAAyD,EAAE,SAA6B,EAAE,MAA4B,EAAA;SACnJ,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,OAAO,aAAa;aAChB,IAAI,CAAC,kCAAkC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;aACpE,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;MACtE;KAEM,MAAM,QAAQ,CAAC,QAAsE,EAAA;SAExF,IAAI,QAAQ,CAAC,QAAQ,EAAE;aACnB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;CACtD,SAAA;SAED,IAAI,QAAQ,CAAC,SAAS,EAAE;CACpB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;CACxD,SAAA;CAED,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,oCAAA,EAAuC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAE,CAAA,CAAC,CAAC;MACtF;KAEM,MAAM,SAAS,CAAC,SAAqC,EAAA;CAExD,QAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuB,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;CAE9G,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;MACtE;CAEM,IAAA,gBAAgB,CAAC,WAAmB,EAAA;SACvC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;MAChD;KAEM,MAAM,sBAAsB,CAAC,MAAc,EAAA;SAC9C,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;SAE5E,IAAI,CAAC,aAAa,EAAE;CAEhB,YAAA,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1F,SAAA;SACD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;MAC3C;CAEM,IAAA,iCAAiC,CAAC,OAA4B,EAAA;SACjE,OAAO,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;MAC/D;KAEM,MAAM,YAAY,CAAC,SAA4C,EAAA;CAClE,QAAA,IAAI,cAAyB,CAAC;SAE9B,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;CACtC,YAAA,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;iBAChB,cAAc,GAAG,GAAG,CAAC;CACrB,gBAAA,GAAG,EAAE,CAAC;CACT,aAAA;CACL,SAAC,CAAC,CAAC;CAEH,QAAA,OAAO,cAAc,CAAC;MACzB;KAEM,MAAM,aAAa,CAAC,SAA6C,EAAA;SACpE,MAAM,kBAAkB,GAAgB,EAAiB,CAAC;CAE1D,QAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,KAAI;CACjC,YAAA,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;CAC9B,gBAAA,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAChC,aAAA;CACL,SAAC,CAAC,CAAC;CAEH,QAAA,OAAO,kBAAkB,CAAC;MAC7B;KAEM,MAAM,sBAAsB,CAAC,OAAe,EAAA;CAC/C,QAAA,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;CACjE,QAAA,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;CAElF,QAAA,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,KAAI;aAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;UAC/C,CAAC,CAAC,CAAC;CAEJ,QAAA,OAAO,kBAAkB,CAAC;MAC7B;CAEM,IAAA,MAAM,wBAAwB,GAAA;CAEjC,QAAA,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAA2B,UAAU,CAAC,yBAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAE3H,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;MACjE;KAEM,MAAM,SAAS,CAAC,SAA2E,EAAA;CAC9F,QAAA,IAAI,YAAiD,CAAC;SAEtD,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;aACtC,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CAE7C,YAAA,IAAI,WAAW,EAAE;iBACb,YAAY,GAAG,WAAW,CAAC;CAC3B,gBAAA,GAAG,EAAE,CAAC;CACT,aAAA;CACL,SAAC,CAAC,CAAC;CAEH,QAAA,OAAO,YAAY,CAAC;MACvB;KAEM,MAAM,SAAS,CAAC,SAAgE,EAAA;CACnF,QAAA,IAAI,YAA8C,CAAC;SAEnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;aAEtC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;CAE1C,YAAA,IAAI,WAAW,EAAE;iBACb,YAAY,GAAG,WAAW,CAAC;CAC3B,gBAAA,GAAG,EAAE,CAAC;CACT,aAAA;CACL,SAAC,CAAC,CAAC;CAEH,QAAA,OAAO,YAAY,CAAC;MACvB;CAEM,IAAA,MAAM,kBAAkB,GAAA;CAC3B,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAwB,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;SACzG,OAAO,UAAU,CAAC,SAAS,CAAC;MAC/B;KAEM,MAAM,YAAY,CAAC,IAAY,EAAA;CAClC,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;MAClE;KAEM,MAAM,YAAY,CAAC,SAAoE,EAAA;CAC1F,QAAA,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAwB,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACzG,OAAO,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAwC,CAAC,eAAe,EAAE,MAAM,KAAI;CAEtG,YAAA,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;CACjC,gBAAA,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CAChC,aAAA;CAED,YAAA,OAAO,eAAe,CAAC;UAC1B,EAAE,EAAE,CAAC,CAAC;MACV;KAEM,MAAM,UAAU,CAAC,MAAqD,EAAA;CACzE,QAAA,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;MACrE;CAEM,IAAA,MAAM,aAAa,CAAC,OAA8C,EAAE,IAAyB,EAAA;SAChG,MAAM,aAAa,GAAI,MAAc,CAAC,QAAQ,IAAK,MAAc,CAAC,SAAS,CAAC;CAE5E,QAAA,IAAI,aAAa,EAAE;aACf,IAAI;CAEA,gBAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;CAC5E,aAAA;CAAC,YAAA,OAAO,KAAK,EAAE;CAEZ,gBAAA,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;CAChH,aAAA;aACD,OAAO;CACV,SAAA;SAED,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;MAChD;CAEM,IAAA,aAAa,CAAC,QAA+D,EAAA;SAChF,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;MAC5C;CAEM,IAAA,eAAe,CAAC,QAA+D,EAAA;SAClF,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;MAC9C;CAEM,IAAA,MAAM,iBAAiB,CAAC,IAAsB,EAAE,WAAmB,EAAA;SACtE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;MAC/D;CAEM,IAAA,MAAM,YAAY,CAAC,IAAsB,EAAE,EAAU,EAAA;SACxD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;MACjD;CAEM,IAAA,mBAAmB,CAAC,WAAmB,EAAA;SAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;MACrD;KAEM,mBAAmB,CAAC,WAAmB,EAAE,IAAS,EAAA;SACrD,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;MAC3D;KAEM,sBAAsB,CAAC,WAAmB,EAAE,IAAS,EAAA;SACxD,OAAO,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;MAC9D;KAEM,gCAAgC,CAAC,WAAmB,EAAE,QAA6B,EAAA;SACtF,OAAO,IAAI,CAAC,IAAI,CAAC,gCAAgC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;MAC5E;KAEM,MAAM,WAAW,CAAC,MAAc,EAAA;SACnC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;MAC9C;KAEM,MAAM,YAAY,CAAC,MAAc,EAAA;SACpC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;MAC/C;KAEM,MAAM,SAAS,CAAC,MAAc,EAAA;SACjC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MAC5C;CAEM,IAAA,MAAM,gBAAgB,CAAC,OAAe,EAAE,KAAqC,EAAA;SAChF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;MACtG;KAEM,MAAM,cAAc,CAAC,OAAe,EAAA;SACvC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAoB,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;SACnH,OAAO,WAAW,CAAC,MAAM,CAAC;MAC7B;KAEM,MAAM,aAAa,CAAC,OAAe,EAAA;SACtC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAmB,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;SACjH,OAAO,WAAW,CAAC,KAAK,CAAC;MAC5B;KAEM,MAAM,SAAS,CAAC,MAAc,EAAA;SACjC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MAC5C;CAEM,IAAA,MAAM,UAAU,CAAC,MAAc,EAAE,MAAwC,EAAA;SAC5E,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;MACrD;CAEM,IAAA,MAAM,uBAAuB,CAAC,MAAc,EAAE,MAAyD,EAAA;SAC1G,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;MAClE;KAEM,MAAM,6BAA6B,CAAC,WAAmB,EAAA;SAC1D,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;MACrE;KAEM,MAAM,6BAA6B,CAAC,WAAmB,EAAA;SAC1D,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;MACrE;CAEM,IAAA,MAAM,SAAS,CAAC,MAAc,EAAE,MAAsC,EAAA;SACzE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;MACpD;CAEM,IAAA,WAAW,CAAC,MAAc,EAAA;SAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;MACxC;KAEM,MAAM,eAAe,CAAC,MAAc,EAAA;SACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SAEzD,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CAE5C,QAAA,OAAO,QAAQ,CAAC;MACnB;KAEM,MAAM,WAAW,CAAC,MAAc,EAAA;CACnC,QAAA,MAAM,QAAQ,GAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;SAExE,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CAE5C,QAAA,OAAO,QAAQ,CAAC;MACnB;CAEM,IAAA,MAAM,YAAY,CAAC,MAAc,EAAE,WAAmB,EAAA;SACzD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;MAC5D;CAIM,IAAA,MAAM,WAAW,CAAC,MAAc,EAAE,IAA2B,EAAA;SAChE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;MACpD;CAEM,IAAA,MAAM,YAAY,CAAC,MAAc,EAAE,KAAa,EAAA;SACnD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;MACtD;CAEM,IAAA,YAAY,CAAC,QAAiB,EAAA;SACjC,OAAO,QAAQ,CAAC,MAAM,CAAU,CAAC,KAAK,EAAE,KAAK,KAAI;CAE7C,YAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAElB,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;CACzB,gBAAA,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;CACpD,aAAA;CAED,YAAA,OAAO,KAAK,CAAC;UAChB,EAAE,EAAE,CAAC,CAAC;MACV;CAEM,IAAA,eAAe,CAAC,MAA6B,EAAA;SAChD,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;MAC5C;KAEM,gBAAgB,CAAC,QAAiB,EAAE,SAAoC,EAAA;SAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;MAC1D;KAEM,qBAAqB,CAAC,QAAiB,EAAE,SAAoC,EAAA;SAChF,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;MAC/D;CAEM,IAAA,kBAAkB,CAAC,WAAmB,EAAA;SACzC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;MACpD;CAEM,IAAA,eAAe,CAAC,WAAmB,EAAA;SACtC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;MACjD;KAEM,aAAa,CAAC,WAAmB,EAAE,MAAgD,EAAA;SACtF,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;MACvD;KAEM,UAAU,CAAC,iBAAyB,EAAE,MAAsD,EAAA;SAC/F,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;MAC1D;CAEM,IAAA,aAAa,CAAC,MAAc,EAAE,IAA4B,EAAE,MAA4B,EAAA;CAC3F,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;MACxD;KAEM,YAAY,CAAC,WAAmB,EAAE,IAAa,EAAA;SAClD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;MACpD;CAEM,IAAA,cAAc,CAAC,WAAmB,EAAA;SACrC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;MAChD;CAEM,IAAA,gBAAgB,CAAC,WAAmB,EAAA;SACvC,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;MAClD;KAEM,gBAAgB,CAAC,WAAmB,EAAE,IAAY,EAAA;SACrD,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;MACxD;KAEM,MAAM,mBAAmB,CAAC,OAAe,EAAA;SAC5C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAE/D,OAAO;CACH,YAAA,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ;CACvC,YAAA,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ;CACvC,YAAA,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS;CACzC,YAAA,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,SAAS;UAC5C,CAAC;MACL;CAEM,IAAA,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,QAAoB,EAAA;CAC3E,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;MACjF;KAEM,kBAAkB,GAAA;CACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;MACzC;CAGO,IAAA,MAAM,2BAA2B,CAAC,MAA0B,EAAE,OAAe,EAAA;CACjF,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;SAEhD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC;SAE3C,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;CAC7D,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;CAEnC,YAAA,MAAM,SAAS,GAAG,OAAO,YAA8B,KAAmB;CAEtE,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAE9E,UAAU,CAAC,YAAY,CAAC,CAAC;CAC7B,aAAC,CAAC;CAEF,YAAA,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;CAC/B,SAAA;SAED,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;MACrD;KAEO,iCAAiC,CAAC,MAA0B,EAAE,OAAe,EAAA;SACjF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC;SAE3C,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE;CAC7D,YAAA,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;CAEnC,YAAA,MAAM,SAAS,GAAG,OAAO,YAA8B,KAAmB;CACtE,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAC9E,UAAU,CAAC,YAAY,CAAC,CAAC;CAC7B,aAAC,CAAC;CAEF,YAAA,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;CAC/B,SAAA;SAED,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MACxC;CAGO,IAAA,MAAM,4BAA4B,CAAC,QAAyD,EAAE,SAA6B,EAAE,MAA4B,EAAA;CAC7J,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;CAEhD,QAAA,MAAM,MAAM,GAAuB;aAC/B,SAAS,EAAE,QAAQ,EAAE,MAAM;CAC3B,YAAA,KAAK,EAAE,QAAQ;UAClB,CAAC;CAEF,QAAA,IAAI,SAAS,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE;CAC/C,YAAA,MAAM,SAAS,GAAG,OAAO,YAA8B,KAAmB;CAEtE,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAE9E,QAAQ,CAAC,YAAY,CAAC,CAAC;CAC3B,aAAC,CAAC;CAEF,YAAA,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;CAC/B,SAAA;SAED,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;MACrD;CAEO,IAAA,kCAAkC,CAAC,QAAyD,EAAE,SAA6B,EAAE,MAA4B,EAAA;CAC7J,QAAA,MAAM,MAAM,GAAuB;aAC/B,SAAS,EAAE,QAAQ,EAAE,MAAM;CAC3B,YAAA,KAAK,EAAE,QAAQ;UAClB,CAAC;CAEF,QAAA,IAAI,SAAS,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE;CAC/C,YAAA,MAAM,SAAS,GAAG,OAAO,YAA8B,KAAmB;CAEtE,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAE9E,QAAQ,CAAC,YAAY,CAAC,CAAC;CAC3B,aAAC,CAAC;CAEF,YAAA,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;CAC/B,SAAA;SAED,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;MACxC;KAEO,MAAM,iBAAiB,CAAC,QAAyD,EAAA;SACrF,IAAI,KAAK,GAAG,KAAK,CAAC;SAElB,MAAM,GAAG,GAAG,MAAW,EAAG,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;CAE1C,QAAA,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;CAEjE,QAAA,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE;CACtC,YAAA,IAAI,KAAK,EAAE;iBACP,OAAO;CACV,aAAA;CAED,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;CAEvD,YAAA,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CACtB,SAAA;MACJ;CACJ;;OCthBY,mBAAmB,CAAA;CAGP,IAAA,MAAA,CAAA;KAFb,UAAU,GAAGC,eAAgB,EAAE,CAAC;CACxC,IAAA,WAAA,CACqB,MAAc,EAAA;SAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;SAE/B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;aACxC,IAAI,OAAO,CAAC,SAAS,KAAK,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE;CAC9D,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAC1B,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAA,CAAE,CAAC,CAAC;CAC/D,aAAA;CACL,SAAC,CAAC,CAAA;MACL;CAEM,IAAA,MAAM,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,QAAoB,EAAA;CACjF,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;CACtF,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAG,EAAA,OAAO,IAAI,QAAQ,CAAA,CAAE,EAAE,QAAQ,CAAC,CAAC;CACnE,QAAA,OAAO,MAAK;CACR,YAAA,EAAE,EAAE,CAAC;CACL,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;CACtF,SAAC,CAAA;MACJ;CACJ;;OCDY,GAAG,CAAA;CAWS,IAAA,GAAA,CAAA;CACA,IAAA,OAAA,CAAA;CACA,IAAA,OAAA,CAAA;CACA,IAAA,QAAA,CAAA;CAZb,IAAA,mBAAmB,CAAuB;CAC1C,IAAA,eAAe,CAAS;CACxB,IAAA,kBAAkB,CAAmB;CACrC,IAAA,2BAA2B,CAAqB;CAChD,IAAA,mBAAmB,CAAO;CAC1B,IAAA,eAAe,CAAiB;CAChC,IAAA,oBAAoB,CAAsB;CAElD,IAAA,WAAA,CACqB,GAAe,EACf,OAAmB,EACnB,OAAmB,EACnB,QAAqB,EAAA;SAHrB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;SACf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;SACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;SACnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;MACrC;CAEL,IAAA,IAAW,cAAc,GAAA;CACrB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;aACvB,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;CAC9F,SAAA;SAED,OAAO,IAAI,CAAC,eAAe,CAAC;MAC/B;CAED,IAAA,IAAW,UAAU,GAAA;CACjB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;CAC3B,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;CAC7G,SAAA;SACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;MACnC;CAED,IAAA,IAAW,mBAAmB,GAAA;CAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;aAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACpE,SAAA;SACD,OAAO,IAAI,CAAC,oBAAoB,CAAC;MACpC;CAED,IAAA,IAAW,MAAM,GAAA;CACb,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;CACvB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;CACxE,SAAA;SACD,OAAO,IAAI,CAAC,eAAe,CAAC;MAC/B;CAED,IAAA,IAAW,SAAS,GAAA;CAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;CAC1B,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;CAC/E,SAAA;SAED,OAAO,IAAI,CAAC,kBAAkB,CAAC;MAClC;CAED,IAAA,IAAW,kBAAkB,GAAA;CACzB,QAAA,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE;CACnC,YAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,kBAAkB,EAAE,CAAC;CAC/D,SAAA;SACD,OAAO,IAAI,CAAC,2BAA2B,CAAC;MAC3C;CAED,IAAA,IAAW,UAAU,GAAA;CACjB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;aAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;CAChE,SAAA;SACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;MACnC;KAEM,MAAM,QAAQ,CAAC,cAAsB,EAAA;SACxC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;MACjD;KAEM,QAAQ,CAAuB,IAAgB,EAAE,YAA+B,EAAA;CACnF,QAAA,QAAQ,IAAI;aACR,KAAK,OAAO,EAAE;iBACV,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;CAEpD,gBAAA,MAAM,EAAE,OAAO,EAAE,GAAG,YAAiC,CAAC;iBAEtD,MAAM,SAAS,GAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;iBAE7E,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;CAE1D,gBAAA,OAAO,QAAwB,CAAC;CACnC,aAAA;aACD,KAAK,QAAQ,EAAE;CACX,gBAAA,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAkC,CAAC;CAEpF,gBAAA,MAAM,iBAAiB,GAAsB;CACzC,oBAAA,IAAI,EAAE,QAAQ;qBACd,UAAU,EAAE,IAAI,CAAC,UAAU;CAC3B,oBAAA,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;kBACvC,CAAC;iBAEF,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;iBAEtD,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;CAEpE,gBAAA,OAAO,SAAyB,CAAC;CACpC,aAAA;CACD,YAAA,KAAK,KAAK,CAAC;CACX,YAAA,KAAK,QAAQ,CAAC;aACd,KAAK,OAAO,EAAE;CACV,gBAAA,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAkC,CAAC;CAE9F,gBAAA,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;qBAC7D,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CAE3E,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;CAEhF,gBAAA,MAAM,iBAAiB,GAAG;CACtB,oBAAA,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;qBAC5B,MAAM;qBACN,IAAI;qBACJ,UAAU,EAAE,IAAI,CAAC,UAAU;CAC3B,oBAAA,QAAQ,EAAE,aAAa;kBAC1B,CAAC;iBAEF,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,SAAS,EAAE,iBAAsC,CAAC,CAAC;CAEzF,gBAAA,OAAO,SAAyB,CAAC;CACpC,aAAA;aACD,KAAK,WAAW,EAAE;CACd,gBAAA,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,YAAwC,CAAC;iBAErE,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;CAE5D,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;CAE1F,gBAAA,MAAM,oBAAoB,GAAyB;qBAC/C,EAAE,EAAE,QAAQ,CAAC,EAAE;CACf,oBAAA,IAAI,EAAE,WAAW;qBACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;qBACvB,IAAI,EAAE,IAAI,CAAC,UAAU;qBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;CAC3B,oBAAA,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI;kBAC7B,CAAC;iBAEF,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;CAC7E,gBAAA,OAAO,YAA4B,CAAC;CACvC,aAAA;aACD,SAAS,MAAM,IAAI,KAAK,CAAC,CAAsB,mBAAA,EAAA,IAAI,CAAE,CAAA,CAAC,CAAC;CAC1D,SAAA;MACJ;CAEM,IAAA,UAAU,CAAC,MAAyC,EAAA;SACvD,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAE5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;CAC5C,YAAA,MAAM,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;CACnC,SAAA;CAED,QAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAEhE,QAAQ,MAAM,CAAC,IAAI;aACf,KAAK,WAAW,EAAE;CACd,gBAAA,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAqD,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;CAC3H,aAAA;CACD,YAAA,KAAK,KAAK,CAAC;CACX,YAAA,KAAK,QAAQ,CAAC;aACd,KAAK,OAAO,EAAE;iBACT,MAAM,CAAC,UAAgD,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;iBAC5E,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,UAA+C,EAAE,WAAW,CAAC,CAAC;CACjG,aAAA;CACD,YAAA,SAAS,MAAM,IAAI,KAAK,CAAC,CAAA,oDAAA,EAAuD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC,CAAC;CAC7G,SAAA;MACJ;CAEO,IAAA,aAAa,CAAC,QAA+B,EAAE,KAAY,EAAE,SAAwC,EAAE,MAAsB,EAAA;CACjI,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAQ,CAAC,KAAK,KAAI;aACjC,QAAQ,KAAK,CAAC,IAAI;iBACd,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAW,QAAQ,EAAE;qBACpD,EAAE,EAAE,KAAK,CAAC,EAAE;qBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;qBACpB,KAAK,EAAE,SAAS,EAAE,MAAM;CACL,iBAAA,CAAC,CAAC;iBACzB,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAW,KAAK,CAAC,IAAI,EAAE;qBACtD,EAAE,EAAE,KAAK,CAAC,EAAE;qBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;qBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACxB,KAAK,EAAE,SAAS,EAAE,MAAM;CACL,iBAAA,CAAC,CAAC;iBACzB,KAAK,KAAK,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAQ,KAAK,CAAC,IAAI,EAAE;qBAChD,EAAE,EAAE,KAAK,CAAC,EAAE;qBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;qBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACxB,KAAK,EAAE,SAAS,EAAE,MAAM;CACL,iBAAA,CAAC,CAAC;iBACzB,KAAK,OAAO,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAU,KAAK,CAAC,IAAI,EAAE;qBACpD,EAAE,EAAE,KAAK,CAAC,EAAE;qBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;qBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACxB,KAAK,EAAE,SAAS,EAAE,MAAM;CACL,iBAAA,CAAC,CAAC;CAEzB,gBAAA,SAAS,MAAM,IAAI,KAAK,CAAC,CAA4B,wBAAA,EAAA,KAAa,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;CAC9E,aAAA;CACL,SAAC,CAAC,CAAC;MACN;CACJ;;;;CCxNM,MAAM,UAAU,GAAG,CAAC,IAAS,EAAE,GAAQ,KAAS;CAEnD,IAAA,MAAM,UAAU,GAAyB,GAAG,CAAC,UAAU,CAAC;KAExD,MAAM,WAAW,GAAG,MAAuB;SACvC,MAAM,IAAI,GAAW,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SAE1C,IAAI,CAAC,IAAI,EAAE;CACP,YAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;CACvE,SAAA;CAED,QAAA,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;CAC9C,KAAC,CAAC;CAEF,IAAA,MAAM,UAAU,GAAG,CAAC,MAAyC,KAA2E;SACpI,MAAM,eAAe,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;CAEtE,QAAA,OAAO,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;CAC3C,KAAC,CAAC;CAEF,IAAA,MAAM,UAAU,GAAG,YAA+C;SAC9D,MAAM,QAAQ,GAAW,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SAE9C,IAAI,CAAC,QAAQ,EAAE;CACX,YAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;CACvE,SAAA;SAED,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;SAElE,IAAI,CAAC,YAAY,EAAE;CACf,YAAA,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;CACzF,SAAA;SAED,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;CAC7C,KAAC,CAAC;CAEF,IAAA,MAAM,QAAQ,GAAG,OAAO,SAAwD,KAAwC;SACpH,kBAAkB,CAAC,SAAS,CAAC,CAAC;SAE9B,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;CAC9C,KAAC,CAAC;CAEF,IAAA,MAAM,YAAY,GAAG,OAAO,SAAyD,KAA0C;CAC3H,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CAEpC,QAAA,OAAO,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CAC3C,KAAC,CAAC;KAEF,MAAM,yBAAyB,GAAG,MAAsD;CACpF,QAAA,OAAO,UAAU,CAAC,wBAAwB,EAAE,CAAC;CACjD,KAAC,CAAC;CAEF,IAAA,MAAM,cAAc,GAAG,YAAmD;SACtE,MAAM,IAAI,GAAW,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;SAE1C,IAAI,CAAC,IAAI,EAAE;CACP,YAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;CAC3E,SAAA;SAED,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAE9D,IAAI,CAAC,YAAY,EAAE;CACf,YAAA,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;CAC7F,SAAA;CAED,QAAA,OAAO,MAAM,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;CACzD,KAAC,CAAC;CAEF,IAAA,MAAM,YAAY,GAAG,OAAO,SAAgE,KAA4C;SACpI,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAC9B,QAAA,OAAO,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;CAC1D,KAAC,CAAC;CAEF,IAAA,MAAM,gBAAgB,GAAG,OAAO,WAAmB,KAA4C;CAC3F,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;CAEpD,QAAA,OAAO,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;CACpD,KAAC,CAAC;CAEF,IAAA,MAAM,gBAAgB,GAAG,CAAC,SAAiE,KAA8C;CACrI,QAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CACpC,QAAA,OAAO,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;CAC/C,KAAC,CAAC;CAEF,IAAA,MAAM,SAAS,GAAG,OAAO,SAA2E,KAAkD;SAClJ,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAC9B,QAAA,OAAO,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CAC3C,KAAC,CAAC;CAEF,IAAA,MAAM,SAAS,GAAG,OAAO,SAAgE,KAA+C;SACpI,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAC9B,QAAA,OAAO,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CAC3C,KAAC,CAAC;KAEF,MAAM,gBAAgB,GAAG,OAAO,IAAY,EAAE,OAAoD,KAA4C;CAC1I,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC7C,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SACjF,OAAO,UAAU,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;CAC/D,KAAC,CAAC;KAEF,MAAM,eAAe,GAAG,OAAO,UAAmD,EAAE,UAAsD,KAA4C;SAClL,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SACpF,MAAM,eAAe,GAAG,mCAAmC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAEzF,OAAO,UAAU,CAAC,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;CAC5E,KAAC,CAAC;CAEF,IAAA,MAAM,gBAAgB,GAAG,OAAO,UAAqD,KAAwC;SACzH,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAErF,OAAO,UAAU,CAAC,gBAAgB,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;CAClE,KAAC,CAAC;CAEF,IAAA,MAAM,OAAO,GAAG;SACZ,YAAY,EAAE,MAA4D;CACtE,YAAA,OAAO,UAAU,CAAC,kBAAkB,EAAE,CAAC;UAC1C;CACD,QAAA,MAAM,EAAE,OAAO,IAAY,KAAmB;CAC1C,YAAA,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAC7C,YAAA,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;UACxC;CACD,QAAA,MAAM,EAAE,OAAO,SAAoE,KAAoD;CACnI,YAAA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CACpC,YAAA,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;UAC7C;SACD,MAAM,EAAE,OAAO,OAA8C,EAAE,IAA4B,GAAA,SAAS,KAAmB;CAEnH,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;CACzB,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,+CAAA,EAAkD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAE,CAAA,CAAC,CAAC;CAChG,aAAA;CAED,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;aAC7E,OAAO,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;UAClD;CACD,QAAA,IAAI,EAAE,OAAO,MAAqD,KAAkD;aAChH,MAAM,cAAc,GAAG,gCAAgC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACjF,YAAA,OAAO,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;UAChD;CACD,QAAA,OAAO,EAAE,OAAO,QAA+D,KAA8C;aACzH,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAE7B,YAAA,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;UAC7C;CACD,QAAA,SAAS,EAAE,OAAO,QAA+D,KAA8C;aAC3H,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAE7B,YAAA,OAAO,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;UAC/C;MACJ,CAAC;CAEF,IAAA,MAAM,aAAa,GAAG,OAAO,QAAoD,KAA8C;SAC3H,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAE7B,QAAA,MAAM,eAAe,GAAG,CAAC,OAAwB,KAAU;CACvD,YAAA,MAAM,WAAW,GAAsB;iBACnC,OAAO,EAAE,OAAO,CAAC,YAAY;cAChC,CAAC;aACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;aAC1D,QAAQ,CAAC,KAAK,CAAC,CAAC;CACpB,SAAC,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;CACnG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,aAAa,GAAG,OAAO,QAA+D,KAA8C;SACtI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,CAAC,OAAwB,KAAU;CACvD,YAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CACrF,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;CACnG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,iBAAiB,GAAG,OAAO,QAA4D,KAA8C;SAEvI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAA4B,KAAmB;aAC1E,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;aAE9E,QAAQ,CAAC,SAAS,CAAC,CAAC;CACxB,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;CACvG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,iBAAiB,GAAG,OAAO,QAAmE,KAA8C;SAC9I,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAE7B,QAAA,MAAM,eAAe,GAAG,CAAC,OAA4B,KAAU;aAC3D,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC/H,SAAC,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;CACvG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,qBAAqB,GAAG,OAAO,QAA4D,KAA8C;SAC3I,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAE7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAA4B,KAAmB;aAC1E,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;aAE9E,QAAQ,CAAC,SAAS,CAAC,CAAC;CACxB,SAAC,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;CAC3G,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,kBAAkB,GAAG,OAAO,QAA4D,KAA8C;SACxI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAE7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAA4B,KAAoB;aAC3E,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAC;aAE9E,QAAQ,CAAC,SAAS,CAAC,CAAC;CACxB,SAAC,CAAC;CAEF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;CACxG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,aAAa,GAAG,OAAO,QAAuE,KAA8C;SAC9I,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAA4B,CAAC;CAElI,YAAA,MAAM,WAAW,GAAsB;iBACnC,OAAO,EAAE,QAAQ,CAAC,YAAY;cACjC,CAAC;aACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE1D,YAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAEtE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;aAE1E,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CAChG,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAEvI,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;CACnG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,cAAc,GAAG,OAAO,QAAuE,KAA8C;SAC/I,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAA4B,CAAC;CAElI,YAAA,MAAM,WAAW,GAAsB;iBACnC,OAAO,EAAE,QAAQ,CAAC,YAAY;cACjC,CAAC;aACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE1D,YAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAEtE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;aAE1E,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAE7G,QAAQ,CAAC,WAAW,CAAC,CAAC;CAC1B,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;CACpG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,eAAe,GAAG,OAAO,QAAuF,KAA8C;SAChK,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,CAAC,OAAyB,KAAU;CACxD,YAAA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;aACxE,QAAQ,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;CACjD,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;CACrG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,iBAAiB,GAAG,OAAO,QAAuE,KAA8C;SAClJ,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAA4B,CAAC;CAElI,YAAA,MAAM,WAAW,GAAsB;iBACnC,OAAO,EAAE,QAAQ,CAAC,YAAY;cACjC,CAAC;aACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE1D,YAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAEtE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;aAE1E,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CAChG,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAEvI,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;CACvG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,gBAAgB,GAAG,OAAO,QAAuE,KAA8C;SACjJ,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAA4B,CAAC;CAElI,YAAA,MAAM,WAAW,GAAsB;iBACnC,OAAO,EAAE,QAAQ,CAAC,YAAY;cACjC,CAAC;aACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE1D,YAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAEtE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;aAE1E,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CAChG,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAEvI,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;CACtG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAGF,IAAA,MAAM,gBAAgB,GAAG,OAAO,QAAuE,KAA8C;SACjJ,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CAC7B,QAAA,MAAM,eAAe,GAAG,OAAO,OAAyB,KAAmB;CACvE,YAAA,MAAM,QAAQ,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAA4B,CAAC;CAElI,YAAA,MAAM,WAAW,GAAsB;iBACnC,OAAO,EAAE,QAAQ,CAAC,YAAY;cACjC,CAAC;aACF,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAU,OAAO,EAAE,WAAW,CAAC,CAAC;CAE1D,YAAA,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAEtE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAc,WAAW,EAAE,eAAe,CAAC,CAAC;aAE1E,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CAChG,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;aAEvI,QAAQ,CAAC,WAAkD,CAAC,CAAC;CACjE,SAAC,CAAC;CACF,QAAA,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,yBAAyB,CAAC,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;CACtG,QAAA,OAAO,WAAW,CAAC;CACvB,KAAC,CAAC;CAEF,IAAA,MAAM,YAAY,GAAG,OAAO,EAAU,KAAwC;CAC1E,QAAA,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;SAC3C,OAAO,IAAI,OAAO,CAA4B,CAAC,GAAG,EAAE,GAAG,KAAI;aACvD,IAAI,KAAK,GAAoC,MAAK;CAElD,aAAC,CAAC;CACF,YAAA,aAAa,CAAC,CAAC,CAAC,KAAI;CAChB,gBAAA,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;qBACb,GAAG,CAAC,CAAC,CAAC,CAAC;CACP,oBAAA,KAAK,EAAE,CAAC;CACX,iBAAA;CACL,aAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;iBACV,KAAK,GAAG,CAAC,CAAC;iBACV,OAAO,YAAY,EAAE,CAAC;CAC1B,aAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;CACf,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;CAChD,gBAAA,IAAI,OAAO,EAAE;qBACT,GAAG,CAAC,OAAO,CAAC,CAAC;CACb,oBAAA,KAAK,EAAE,CAAC;CACX,iBAAA;CACL,aAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CAClB,SAAC,CAAC,CAAC;CACP,KAAC,CAAC;KAEF,OAAO;SACH,WAAW;SACX,UAAU;SACV,UAAU;SACV,QAAQ;SACR,YAAY;SACZ,yBAAyB;SACzB,cAAc;SACd,YAAY;SACZ,gBAAgB;SAChB,gBAAgB;SAChB,SAAS;CACT,QAAA,MAAM,EAAE,SAAS;SACjB,gBAAgB;SAChB,eAAe;SACf,gBAAgB;SAChB,YAAY;SACZ,OAAO;SACP,aAAa;SACb,aAAa;SACb,iBAAiB;SACjB,iBAAiB;SACjB,qBAAqB;SACrB,kBAAkB;SAClB,aAAa;SACb,cAAc;SACd,eAAe;SACf,iBAAiB;SACjB,gBAAgB;SAChB,gBAAgB;SAChB,OAAO;MACV,CAAC;CACN,CAAC;;ACzZD,OAAM,eAAe,GAA8B,OAAO,EAAO,KAAmB;KAEhF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;KAEjE,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;CAEpD,IAAA,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;KAEnC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;CACxC,EAAE;CAGF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;CAE9B,IAAA,MAAc,CAAC,YAAY,GAAG,eAAe,CAAC;CAClD;;;;;;;;","x_google_ignoreList":[0,1]}
|