diff options
Diffstat (limited to 'node_modules/liquidjs/dist/liquid.browser.umd.js.map')
| -rw-r--r-- | node_modules/liquidjs/dist/liquid.browser.umd.js.map | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/node_modules/liquidjs/dist/liquid.browser.umd.js.map b/node_modules/liquidjs/dist/liquid.browser.umd.js.map new file mode 100644 index 0000000..84b6eda --- /dev/null +++ b/node_modules/liquidjs/dist/liquid.browser.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"liquid.browser.umd.js","sources":["../src/tokens/token.ts","../src/drop/drop.ts","../src/util/underscore.ts","../src/util/error.ts","../src/util/character.ts","../src/util/assert.ts","../src/drop/null-drop.ts","../src/drop/empty-drop.ts","../src/drop/blank-drop.ts","../src/drop/forloop-drop.ts","../src/emitters/simple-emitter.ts","../src/build/streamed-emitter-browser.ts","../src/emitters/keeping-type-emitter.ts","../src/drop/block-drop.ts","../src/drop/comparable.ts","../src/util/literal.ts","../src/util/operator-trie.ts","../src/util/async.ts","../src/util/strftime.ts","../src/util/intl.ts","../src/util/liquid-date.ts","../src/util/limiter.ts","../src/tokens/delimited-token.ts","../src/tokens/tag-token.ts","../src/tokens/output-token.ts","../src/tokens/html-token.ts","../src/tokens/number-token.ts","../src/tokens/identifier-token.ts","../src/tokens/literal-token.ts","../src/tokens/operator-token.ts","../src/tokens/property-access-token.ts","../src/tokens/filter-token.ts","../src/tokens/hash-token.ts","../src/render/string.ts","../src/tokens/quoted-token.ts","../src/tokens/range-token.ts","../src/tokens/liquid-tag-token.ts","../src/tokens/filtered-value-token.ts","../src/util/performance.ts","../src/render/render.ts","../src/render/expression.ts","../src/render/boolean.ts","../src/render/operator.ts","../src/cache/lru.ts","../src/build/fs-impl-browser.ts","../src/filters/misc.ts","../src/filters/html.ts","../src/fs/map-fs.ts","../src/liquid-options.ts","../src/parser/whitespace-ctrl.ts","../src/parser/tokenizer.ts","../src/parser/parse-stream.ts","../src/template/template-impl.ts","../src/template/tag.ts","../src/template/hash.ts","../src/template/tag-options-adapter.ts","../src/parser/filter-arg.ts","../src/template/filter.ts","../src/template/value.ts","../src/template/output.ts","../src/template/html.ts","../src/template/analysis.ts","../src/fs/loader.ts","../src/parser/parser.ts","../src/parser/token-kind.ts","../src/util/type-guards.ts","../src/context/context.ts","../src/context/block-mode.ts","../src/filters/math.ts","../src/filters/url.ts","../src/filters/array.ts","../src/filters/date.ts","../src/filters/string.ts","../src/filters/index.ts","../src/tags/assign.ts","../src/tags/for.ts","../src/tags/capture.ts","../src/tags/case.ts","../src/tags/comment.ts","../src/tags/render.ts","../src/tags/include.ts","../src/tags/decrement.ts","../src/tags/cycle.ts","../src/tags/if.ts","../src/tags/increment.ts","../src/tags/layout.ts","../src/tags/block.ts","../src/tags/raw.ts","../src/drop/tablerowloop-drop.ts","../src/tags/tablerow.ts","../src/tags/unless.ts","../src/tags/break.ts","../src/tags/continue.ts","../src/tags/echo.ts","../src/tags/liquid.ts","../src/tags/inline-comment.ts","../src/tags/index.ts","../src/liquid.ts","../src/index.ts"],"sourcesContent":["import { TokenKind } from '../parser'\n\nexport abstract class Token {\n public constructor (\n public kind: TokenKind,\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {}\n public getText () {\n return this.input.slice(this.begin, this.end)\n }\n public getPosition () {\n let [row, col] = [1, 1]\n for (let i = 0; i < this.begin; i++) {\n if (this.input[i] === '\\n') {\n row++\n col = 1\n } else col++\n }\n return [row, col]\n }\n public size () {\n return this.end - this.begin\n }\n}\n","import { Context } from '../context'\n\nexport abstract class Drop {\n public liquidMethodMissing (key: string | number, context: Context): Promise<any> | any {\n return undefined\n }\n}\n","import { Drop } from '../drop/drop'\n\nexport const toString = Object.prototype.toString\nconst toLowerCase = String.prototype.toLowerCase\n\nexport const hasOwnProperty = Object.hasOwnProperty\n\nexport function isString (value: any): value is string {\n return typeof value === 'string'\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction (value: any): value is Function {\n return typeof value === 'function'\n}\n\nexport function isPromise<T> (val: any): val is Promise<T> {\n return val && isFunction(val.then)\n}\n\nexport function isIterator (val: any): val is IterableIterator<any> {\n return val && isFunction(val.next) && isFunction(val.throw) && isFunction(val.return)\n}\n\nexport function escapeRegex (str: string) {\n return str.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')\n}\n\nexport function promisify<T1, T2> (fn: (arg1: T1, cb: (err: Error | null, result: T2) => void) => void): (arg1: T1) => Promise<T2>;\nexport function promisify<T1, T2, T3> (fn: (arg1: T1, arg2: T2, cb: (err: Error | null, result: T3) => void) => void): (arg1: T1, arg2: T2) => Promise<T3>;\nexport function promisify (fn: any) {\n return function (...args: any[]) {\n return new Promise((resolve, reject) => {\n fn(...args, (err: Error, result: any) => {\n err ? reject(err) : resolve(result)\n })\n })\n }\n}\n\nexport function stringify (value: any): string {\n value = toValue(value)\n if (isString(value)) return value\n if (isNil(value)) return ''\n if (isArray(value)) return value.map(x => stringify(x)).join('')\n return String(value)\n}\n\nexport function toEnumerable<T = unknown> (val: any): T[] {\n val = toValue(val)\n if (isArray(val)) return val\n if (isString(val) && val.length > 0) return [val] as unknown as T[]\n if (isIterable(val)) return Array.from(val)\n if (isObject(val)) return Object.keys(val).map((key) => [key, val[key]]) as unknown as T[]\n return []\n}\n\nexport function toArray (val: any) {\n val = toValue(val)\n if (isNil(val)) return []\n if (isArray(val)) return val\n return [ val ]\n}\n\nexport function toValue (value: any): any {\n return (value instanceof Drop && isFunction(value.valueOf)) ? value.valueOf() : value\n}\n\nexport function toNumber (value: any): number {\n return +toValue(value) || 0\n}\n\nexport function isNumber (value: any): value is number {\n return typeof value === 'number'\n}\n\nexport function toLiquid (value: any): any {\n if (value && isFunction(value.toLiquid)) return toLiquid(value.toLiquid())\n return value\n}\n\nexport function isNil (value: any): boolean {\n return value == null\n}\n\nexport function isUndefined (value: any): boolean {\n return value === undefined\n}\n\nexport function isArray (value: any): value is any[] {\n // be compatible with IE 8\n return toString.call(value) === '[object Array]'\n}\n\nexport function isArrayLike (value: any): value is any[] {\n return value && isNumber(value.length)\n}\n\nexport function isIterable (value: any): value is Iterable<any> {\n return isObject(value) && Symbol.iterator in value\n}\n\n/*\n * Iterates over own enumerable string keyed properties of an object and invokes iteratee for each property.\n * The iteratee is invoked with three arguments: (value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning false.\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @return {Object} Returns object.\n */\nexport function forOwn <T> (\n obj: Record<string, T> | undefined,\n iteratee: ((val: T, key: string, obj: {[key: string]: T}) => boolean | void)\n) {\n obj = obj || {}\n for (const k in obj) {\n if (hasOwnProperty.call(obj, k)) {\n if (iteratee(obj[k], k, obj) === false) break\n }\n }\n return obj\n}\n\nexport function last <T>(arr: T[]): T;\nexport function last (arr: string): string;\nexport function last (arr: any[] | string): any | string {\n return arr[arr.length - 1]\n}\n\n/*\n * Checks if value is the language type of Object.\n * (e.g. arrays, functions, objects, regexes, new Number(0), and new String(''))\n * @param {any} value The value to check.\n * @return {Boolean} Returns true if value is an object, else false.\n */\nexport function isObject (value: any): value is object {\n const type = typeof value\n return value !== null && (type === 'object' || type === 'function')\n}\n\nexport function range (start: number, stop: number, step = 1) {\n const arr: number[] = []\n for (let i = start; i < stop; i += step) {\n arr.push(i)\n }\n return arr\n}\n\nexport function padStart (str: any, length: number, ch = ' ') {\n return pad(str, length, ch, (str, ch) => ch + str)\n}\n\nexport function padEnd (str: any, length: number, ch = ' ') {\n return pad(str, length, ch, (str, ch) => str + ch)\n}\n\nexport function pad (str: any, length: number, ch: string, add: (str: string, ch: string) => string) {\n str = String(str)\n let n = length - str.length\n while (n-- > 0) str = add(str, ch)\n return str\n}\n\nexport function identify<T> (val: T): T {\n return val\n}\n\nexport function changeCase (str: string): string {\n const hasLowerCase = [...str].some(ch => ch >= 'a' && ch <= 'z')\n return hasLowerCase ? str.toUpperCase() : str.toLowerCase()\n}\n\nexport function ellipsis (str: string, N: number): string {\n return str.length > N ? str.slice(0, N - 3) + '...' : str\n}\n\n// compare string in case-insensitive way, undefined values to the tail\nexport function caseInsensitiveCompare (a: any, b: any) {\n if (a == null && b == null) return 0\n if (a == null) return 1\n if (b == null) return -1\n a = toLowerCase.call(a)\n b = toLowerCase.call(b)\n if (a < b) return -1\n if (a > b) return 1\n return 0\n}\n\nexport function argumentsToValue<F extends (...args: any) => any, T> (fn: F) {\n return function (this: T, ...args: Parameters<F>) { return fn.call(this, ...args.map(toValue)) }\n}\n\nexport function argumentsToNumber<F extends (...args: any) => any, T> (fn: F) {\n return function (this: T, ...args: Parameters<F>) { return fn.call(this, ...args.map(toNumber)) }\n}\n\nexport function escapeRegExp (text: string) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n\n/** Return an array containing unique elements from _array_. Works with nested arrays and objects. */\nexport function * strictUniq<T> (array: Array<T>): Generator<T> {\n const seen = new Set()\n\n for (const element of array) {\n const key = JSON.stringify(element)\n if (!seen.has(key)) {\n seen.add(key)\n yield element\n }\n }\n}\n","import * as _ from './underscore'\nimport { Token } from '../tokens/token'\nimport { Template } from '../template/template'\n\n/**\n * targeting ES5, extends Error won't create a proper prototype chain, need a trait to keep track of classes\n */\nconst TRAIT = '__liquidClass__'\n\nexport abstract class LiquidError extends Error {\n public token!: Token\n public context = ''\n public originalError?: Error\n public constructor (err: Error | string, token: Token) {\n /**\n * note: for ES5 targeting, `this` will be replaced by return value of Error(),\n * thus everything on `this` will be lost, avoid calling `LiquidError` methods here\n */\n super(typeof err === 'string' ? err : err.message)\n if (typeof err !== 'string') Object.defineProperty(this, 'originalError', { value: err, enumerable: false })\n Object.defineProperty(this, 'token', { value: token, enumerable: false })\n Object.defineProperty(this, TRAIT, { value: 'LiquidError', enumerable: false })\n }\n protected update () {\n Object.defineProperty(this, 'context', { value: mkContext(this.token), enumerable: false })\n this.message = mkMessage(this.message, this.token)\n this.stack = this.message + '\\n' + this.context +\n '\\n' + this.stack\n if (this.originalError) this.stack += '\\nFrom ' + this.originalError.stack\n }\n static is (obj: unknown): obj is LiquidError {\n return obj?.[TRAIT] === 'LiquidError'\n }\n}\n\nexport class TokenizationError extends LiquidError {\n public constructor (message: string, token: Token) {\n super(message, token)\n this.name = 'TokenizationError'\n super.update()\n }\n}\n\nexport class ParseError extends LiquidError {\n public constructor (err: Error, token: Token) {\n super(err, token)\n this.name = 'ParseError'\n this.message = err.message\n super.update()\n }\n}\n\nexport class RenderError extends LiquidError {\n public constructor (err: Error, tpl: Template) {\n super(err, tpl.token)\n this.name = 'RenderError'\n this.message = err.message\n super.update()\n }\n public static is (obj: any): obj is RenderError {\n return obj.name === 'RenderError'\n }\n}\n\nexport class LiquidErrors extends LiquidError {\n public constructor (public errors: RenderError[]) {\n super(errors[0], errors[0].token)\n this.name = 'LiquidErrors'\n const s = errors.length > 1 ? 's' : ''\n this.message = `${errors.length} error${s} found`\n super.update()\n }\n public static is (obj: any): obj is LiquidErrors {\n return obj.name === 'LiquidErrors'\n }\n}\n\nexport class UndefinedVariableError extends LiquidError {\n public constructor (err: Error, token: Token) {\n super(err, token)\n this.name = 'UndefinedVariableError'\n this.message = err.message\n super.update()\n }\n}\n\n// only used internally; raised where we don't have token information,\n// so it can't be an UndefinedVariableError.\nexport class InternalUndefinedVariableError extends Error {\n variableName: string\n\n public constructor (variableName: string) {\n super(`undefined variable: ${variableName}`)\n this.name = 'InternalUndefinedVariableError'\n this.variableName = variableName\n }\n}\n\nexport class AssertionError extends Error {\n public constructor (message: string) {\n super(message)\n this.name = 'AssertionError'\n this.message = message + ''\n }\n}\n\nfunction mkContext (token: Token) {\n const [line, col] = token.getPosition()\n const lines = token.input.split('\\n')\n const begin = Math.max(line - 2, 1)\n const end = Math.min(line + 3, lines.length)\n\n const context = _\n .range(begin, end + 1)\n .map(lineNumber => {\n const rowIndicator = (lineNumber === line) ? '>> ' : ' '\n const num = _.padStart(String(lineNumber), String(end).length)\n let text = `${rowIndicator}${num}| `\n\n const colIndicator = lineNumber === line\n ? '\\n' + _.padStart('^', col + text.length)\n : ''\n\n text += lines[lineNumber - 1]\n text += colIndicator\n return text\n })\n .join('\\n')\n\n return context\n}\n\nfunction mkMessage (msg: string, token: Token) {\n if (token.file) msg += `, file:${token.file}`\n const [line, col] = token.getPosition()\n msg += `, line:${line}, col:${col}`\n return msg\n}\n","// **DO NOT CHANGE THIS FILE**\n//\n// This file is generated by bin/character-gen.js\n// bitmask character types to boost performance\nexport const TYPES = [0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 4, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 2, 8, 0, 0, 0, 0, 8, 0, 0, 0, 64, 0, 65, 0, 0, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 0, 0, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]\nexport const WORD = 1\nexport const OPERATOR = 2\nexport const BLANK = 4\nexport const QUOTE = 8\nexport const INLINE_BLANK = 16\nexport const NUMBER = 32\nexport const SIGN = 64\nexport const PUNCTUATION = 128\n\nexport function isWord (char: string): boolean {\n const code = char.charCodeAt(0)\n return code >= 128 ? !TYPES[code] : !!(TYPES[code] & WORD)\n}\nTYPES[160] = TYPES[5760] = TYPES[6158] = TYPES[8192] = TYPES[8193] = TYPES[8194] = TYPES[8195] = TYPES[8196] = TYPES[8197] = TYPES[8198] = TYPES[8199] = TYPES[8200] = TYPES[8201] = TYPES[8202] = TYPES[8232] = TYPES[8233] = TYPES[8239] = TYPES[8287] = TYPES[12288] = BLANK\nTYPES[8220] = TYPES[8221] = PUNCTUATION\n","import { AssertionError } from './error'\n\nexport function assert <T> (predicate: T | null | undefined, message?: string | (() => string)) {\n if (!predicate) {\n const msg = typeof message === 'function'\n ? message()\n : (message || `expect ${predicate} to be true`)\n throw new AssertionError(msg)\n }\n}\n\nexport function assertEmpty<T> (predicate: T | null | undefined, message = `unexpected ${JSON.stringify(predicate)}`) {\n assert(!predicate, message)\n}\n","import { Drop } from './drop'\nimport { Comparable } from './comparable'\nimport { isNil, toValue } from '../util'\n\nexport class NullDrop extends Drop implements Comparable {\n public equals (value: any) {\n return isNil(toValue(value))\n }\n public gt () {\n return false\n }\n public geq () {\n return false\n }\n public lt () {\n return false\n }\n public leq () {\n return false\n }\n public valueOf () {\n return null\n }\n}\n","import { Drop } from './drop'\nimport { Comparable } from './comparable'\nimport { isObject, isString, isArray, toValue } from '../util'\n\nexport class EmptyDrop extends Drop implements Comparable {\n public equals (value: any) {\n if (value instanceof EmptyDrop) return false\n value = toValue(value)\n if (isString(value) || isArray(value)) return value.length === 0\n if (isObject(value)) return Object.keys(value).length === 0\n return false\n }\n public gt () {\n return false\n }\n public geq () {\n return false\n }\n public lt () {\n return false\n }\n public leq () {\n return false\n }\n public valueOf () {\n return ''\n }\n static is (value: unknown) {\n return value instanceof EmptyDrop\n }\n}\n","import { isNil, isString, toValue } from '../util'\nimport { EmptyDrop } from '../drop'\n\nexport class BlankDrop extends EmptyDrop {\n public equals (value: any) {\n if (value === false) return true\n if (isNil(toValue(value))) return true\n if (isString(value)) return /^\\s*$/.test(value)\n return super.equals(value)\n }\n static is (value: unknown) {\n return value instanceof BlankDrop\n }\n}\n","import { Drop } from './drop'\n\nexport class ForloopDrop extends Drop {\n protected i = 0\n public name: string\n public length: number\n public constructor (length: number, collection: string, variable: string) {\n super()\n this.length = length\n this.name = `${variable}-${collection}`\n }\n public next () {\n this.i++\n }\n public index0 () {\n return this.i\n }\n public index () {\n return this.i + 1\n }\n public first () {\n return this.i === 0\n }\n public last () {\n return this.i === this.length - 1\n }\n public rindex () {\n return this.length - this.i\n }\n public rindex0 () {\n return this.length - this.i - 1\n }\n public valueOf () {\n return JSON.stringify(this)\n }\n}\n","import { stringify } from '../util'\nimport { Emitter } from './emitter'\n\nexport class SimpleEmitter implements Emitter {\n public buffer = '';\n\n public write (html: any) {\n this.buffer += stringify(html)\n }\n}\n","import { Emitter } from '../emitters'\n\nexport class StreamedEmitter implements Emitter {\n public buffer = '';\n public stream: NodeJS.ReadableStream = null as any\n constructor () {\n throw new Error('streaming not supported in browser')\n }\n public write: (html: any) => void\n public error: (err: Error) => void\n public end: () => void\n}\n","import { stringify, toValue } from '../util'\nimport { Emitter } from './emitter'\n\nexport class KeepingTypeEmitter implements Emitter {\n public buffer: any = '';\n\n public write (html: any) {\n html = toValue(html)\n // This will only preserve the type if the value is isolated.\n // I.E:\n // {{ my-port }} -> 42\n // {{ my-host }}:{{ my-port }} -> 'host:42'\n if (typeof html !== 'string' && this.buffer === '') {\n this.buffer = html\n } else {\n this.buffer = stringify(this.buffer) + stringify(html)\n }\n }\n}\n","import { Emitter, SimpleEmitter } from '../emitters'\nimport { Drop } from './drop'\n\nexport class BlockDrop extends Drop {\n constructor (\n // the block render from layout template\n private superBlockRender: (emitter: Emitter) => IterableIterator<unknown> | string = () => ''\n ) {\n super()\n }\n /**\n * Provide parent access in child block by\n * {{ block.super }}\n */\n public * super (): IterableIterator<unknown> {\n const emitter = new SimpleEmitter()\n yield this.superBlockRender(emitter)\n return emitter.buffer\n }\n}\n","import { isFunction } from '../util'\n\nexport interface Comparable {\n equals: (rhs: any) => boolean;\n gt: (rhs: any) => boolean;\n geq: (rhs: any) => boolean;\n lt: (rhs: any) => boolean;\n leq: (rhs: any) => boolean;\n}\n\nexport function isComparable (arg: any): arg is Comparable {\n return (\n arg &&\n isFunction(arg.equals) &&\n isFunction(arg.gt) &&\n isFunction(arg.geq) &&\n isFunction(arg.lt) &&\n isFunction(arg.leq)\n )\n}\n","import { BlankDrop, EmptyDrop, NullDrop } from '../drop'\n\nconst nil = new NullDrop()\nexport const literalValues = {\n 'true': true,\n 'false': false,\n 'nil': nil,\n 'null': nil,\n 'empty': new EmptyDrop(),\n 'blank': new BlankDrop()\n}\n\nexport type LiteralKey = keyof typeof literalValues\nexport type LiteralValue = typeof literalValues[LiteralKey]\n","import { isWord } from '../util/character'\n\ninterface TrieInput<T> {\n [key: string]: T\n}\n\ninterface TrieLeafNode<T> {\n data: T;\n end: true;\n needBoundary?: true;\n}\n\nexport interface Trie<T> {\n [key: string]: Trie<T> | TrieLeafNode<T>;\n}\n\nexport type TrieNode<T> = Trie<T> | TrieLeafNode<T>\n\nexport function createTrie<T = any> (input: TrieInput<T>): Trie<T> {\n const trie: Trie<T> = {}\n for (const [name, data] of Object.entries(input)) {\n let node: Trie<T> | TrieLeafNode<T> = trie\n\n for (let i = 0; i < name.length; i++) {\n const c = name[i]\n node[c] = node[c] || {}\n\n if (i === name.length - 1 && isWord(name[i])) {\n node[c].needBoundary = true\n }\n\n node = node[c]\n }\n\n node.data = data\n node.end = true\n }\n return trie\n}\n","import { isPromise, isIterator } from './underscore'\n\n// convert an async iterator to a Promise\nexport async function toPromise<T> (val: Generator<unknown, T, unknown> | Promise<T> | T): Promise<T> {\n if (!isIterator(val)) return val\n let value: unknown\n let done = false\n let next = 'next'\n do {\n const state = val[next](value)\n done = state.done\n value = state.value\n next = 'next'\n try {\n if (isIterator(value)) value = toPromise(value)\n if (isPromise(value)) value = await value\n } catch (err) {\n next = 'throw'\n value = err\n }\n } while (!done)\n return value as T\n}\n\n// convert an async iterator to a value in a synchronous manner\nexport function toValueSync<T> (val: Generator<unknown, T, unknown> | T): T {\n if (!isIterator(val)) return val\n let value: any\n let done = false\n let next = 'next'\n do {\n const state = val[next](value)\n done = state.done\n value = state.value\n next = 'next'\n if (isIterator(value)) {\n try {\n value = toValueSync(value)\n } catch (err) {\n next = 'throw'\n value = err\n }\n }\n } while (!done)\n return value\n}\n","import { changeCase, padStart, padEnd } from './underscore'\nimport { LiquidDate } from './liquid-date'\n\nconst rFormat = /%([-_0^#:]+)?(\\d+)?([EO])?(.)/\ninterface FormatOptions {\n flags: object;\n width?: string;\n modifier?: string;\n}\n\n// prototype extensions\nfunction daysInMonth (d: LiquidDate) {\n const feb = isLeapYear(d) ? 29 : 28\n return [31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n}\nfunction getDayOfYear (d: LiquidDate) {\n let num = 0\n for (let i = 0; i < d.getMonth(); ++i) {\n num += daysInMonth(d)[i]\n }\n return num + d.getDate()\n}\nfunction getWeekOfYear (d: LiquidDate, startDay: number) {\n // Skip to startDay of this week\n const now = getDayOfYear(d) + (startDay - d.getDay())\n // Find the first startDay of the year\n const jan1 = new Date(d.getFullYear(), 0, 1)\n const then = (7 - jan1.getDay() + startDay)\n return String(Math.floor((now - then) / 7) + 1)\n}\nfunction isLeapYear (d: LiquidDate) {\n const year = d.getFullYear()\n return !!((year & 3) === 0 && (year % 100 || (year % 400 === 0 && year)))\n}\nfunction ordinal (d: LiquidDate) {\n const date = d.getDate()\n if ([11, 12, 13].includes(date)) return 'th'\n\n switch (date % 10) {\n case 1: return 'st'\n case 2: return 'nd'\n case 3: return 'rd'\n default: return 'th'\n }\n}\nfunction century (d: LiquidDate) {\n return parseInt(d.getFullYear().toString().substring(0, 2), 10)\n}\n\n// default to 0\nconst padWidths = {\n d: 2,\n e: 2,\n H: 2,\n I: 2,\n j: 3,\n k: 2,\n l: 2,\n L: 3,\n m: 2,\n M: 2,\n S: 2,\n U: 2,\n W: 2\n}\n\nconst padSpaceChars = new Set('aAbBceklpP')\n\nfunction getTimezoneOffset (d: LiquidDate, opts: FormatOptions) {\n const nOffset = Math.abs(d.getTimezoneOffset())\n const h = Math.floor(nOffset / 60)\n const m = nOffset % 60\n return (d.getTimezoneOffset() > 0 ? '-' : '+') +\n padStart(h, 2, '0') +\n (opts.flags[':'] ? ':' : '') +\n padStart(m, 2, '0')\n}\nconst formatCodes = {\n a: (d: LiquidDate) => d.getShortWeekdayName(),\n A: (d: LiquidDate) => d.getLongWeekdayName(),\n b: (d: LiquidDate) => d.getShortMonthName(),\n B: (d: LiquidDate) => d.getLongMonthName(),\n c: (d: LiquidDate) => d.toLocaleString(),\n C: (d: LiquidDate) => century(d),\n d: (d: LiquidDate) => d.getDate(),\n e: (d: LiquidDate) => d.getDate(),\n H: (d: LiquidDate) => d.getHours(),\n I: (d: LiquidDate) => String(d.getHours() % 12 || 12),\n j: (d: LiquidDate) => getDayOfYear(d),\n k: (d: LiquidDate) => d.getHours(),\n l: (d: LiquidDate) => String(d.getHours() % 12 || 12),\n L: (d: LiquidDate) => d.getMilliseconds(),\n m: (d: LiquidDate) => d.getMonth() + 1,\n M: (d: LiquidDate) => d.getMinutes(),\n N: (d: LiquidDate, opts: FormatOptions) => {\n const width = Number(opts.width) || 9\n const str = String(d.getMilliseconds()).slice(0, width)\n return padEnd(str, width, '0')\n },\n p: (d: LiquidDate) => (d.getHours() < 12 ? 'AM' : 'PM'),\n P: (d: LiquidDate) => (d.getHours() < 12 ? 'am' : 'pm'),\n q: (d: LiquidDate) => ordinal(d),\n s: (d: LiquidDate) => Math.round(d.getTime() / 1000),\n S: (d: LiquidDate) => d.getSeconds(),\n u: (d: LiquidDate) => d.getDay() || 7,\n U: (d: LiquidDate) => getWeekOfYear(d, 0),\n w: (d: LiquidDate) => d.getDay(),\n W: (d: LiquidDate) => getWeekOfYear(d, 1),\n x: (d: LiquidDate) => d.toLocaleDateString(),\n X: (d: LiquidDate) => d.toLocaleTimeString(),\n y: (d: LiquidDate) => d.getFullYear().toString().slice(2, 4),\n Y: (d: LiquidDate) => d.getFullYear(),\n z: getTimezoneOffset,\n Z: (d: LiquidDate, opts: FormatOptions) => d.getTimeZoneName() || getTimezoneOffset(d, opts),\n 't': () => '\\t',\n 'n': () => '\\n',\n '%': () => '%'\n};\n(formatCodes as any).h = formatCodes.b\n\nexport function strftime (d: LiquidDate, formatStr: string) {\n let output = ''\n let remaining = formatStr\n let match\n while ((match = rFormat.exec(remaining))) {\n output += remaining.slice(0, match.index)\n remaining = remaining.slice(match.index + match[0].length)\n output += format(d, match)\n }\n return output + remaining\n}\n\nfunction format (d: LiquidDate, match: RegExpExecArray) {\n const [input, flagStr = '', width, modifier, conversion] = match\n const convert = formatCodes[conversion]\n if (!convert) return input\n const flags = {}\n for (const flag of flagStr) flags[flag] = true\n let ret = String(convert(d, { flags, width, modifier }))\n let padChar = padSpaceChars.has(conversion) ? ' ' : '0'\n let padWidth = width || padWidths[conversion] || 0\n if (flags['^']) ret = ret.toUpperCase()\n else if (flags['#']) ret = changeCase(ret)\n if (flags['_']) padChar = ' '\n else if (flags['0']) padChar = '0'\n if (flags['-']) padWidth = 0\n return padStart(ret, padWidth, padChar)\n}\n","export function getDateTimeFormat () {\n return (typeof Intl !== 'undefined' ? Intl.DateTimeFormat : undefined)\n}\n","import { getDateTimeFormat } from './intl'\nimport { isString } from './underscore'\n\n// one minute in milliseconds\nconst OneMinute = 60000\n/**\n * Need support both ISO8601 and RFC2822 as in major browsers & NodeJS\n * RFC2822: https://datatracker.ietf.org/doc/html/rfc2822#section-3.3\n */\nconst TIMEZONE_PATTERN = /([zZ]|([+-])(\\d{2}):?(\\d{2}))$/\nconst monthNames = [\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August',\n 'September', 'October', 'November', 'December'\n]\nconst monthNamesShort = monthNames.map(name => name.slice(0, 3))\nconst dayNames = [\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\n]\nconst dayNamesShort = dayNames.map(name => name.slice(0, 3))\n\n/**\n * A date implementation with timezone info, just like Ruby date\n *\n * Implementation:\n * - create a Date offset by it's timezone difference, avoiding overriding a bunch of methods\n * - rewrite getTimezoneOffset() to trick strftime\n */\nexport class LiquidDate {\n private timezoneOffset: number\n private timezoneName: string\n private date: Date\n private displayDate: Date\n private DateTimeFormat = getDateTimeFormat()\n public timezoneFixed: boolean\n constructor (\n init: string | number | Date,\n private locale: string,\n timezone?: number | string\n ) {\n this.date = new Date(init)\n this.timezoneFixed = timezone !== undefined\n if (timezone === undefined) {\n timezone = this.date.getTimezoneOffset()\n }\n this.timezoneOffset = isString(timezone) ? LiquidDate.getTimezoneOffset(timezone, this.date) : timezone\n this.timezoneName = isString(timezone) ? timezone : ''\n\n const diff = (this.date.getTimezoneOffset() - this.timezoneOffset) * OneMinute\n const time = this.date.getTime() + diff\n this.displayDate = new Date(time)\n }\n\n getTime () {\n return this.displayDate.getTime()\n }\n getMilliseconds () {\n return this.displayDate.getMilliseconds()\n }\n getSeconds () {\n return this.displayDate.getSeconds()\n }\n getMinutes () {\n return this.displayDate.getMinutes()\n }\n getHours () {\n return this.displayDate.getHours()\n }\n getDay () {\n return this.displayDate.getDay()\n }\n getDate () {\n return this.displayDate.getDate()\n }\n getMonth () {\n return this.displayDate.getMonth()\n }\n getFullYear () {\n return this.displayDate.getFullYear()\n }\n toLocaleString (locale?: string, init?: any) {\n if (init?.timeZone) {\n return this.date.toLocaleString(locale, init)\n }\n return this.displayDate.toLocaleString(locale, init)\n }\n toLocaleTimeString (locale?: string) {\n return this.displayDate.toLocaleTimeString(locale)\n }\n toLocaleDateString (locale?: string) {\n return this.displayDate.toLocaleDateString(locale)\n }\n getTimezoneOffset () {\n return this.timezoneOffset!\n }\n getTimeZoneName () {\n if (this.timezoneFixed) return this.timezoneName\n if (!this.DateTimeFormat) return\n return this.DateTimeFormat().resolvedOptions().timeZone\n }\n getLongMonthName () {\n return this.format({ month: 'long' }) ?? monthNames[this.getMonth()]\n }\n getShortMonthName () {\n return this.format({ month: 'short' }) ?? monthNamesShort[this.getMonth()]\n }\n getLongWeekdayName () {\n return this.format({ weekday: 'long' }) ?? dayNames[this.displayDate.getDay()]\n }\n getShortWeekdayName () {\n return this.format({ weekday: 'short' }) ?? dayNamesShort[this.displayDate.getDay()]\n }\n valid () {\n return !isNaN(this.getTime())\n }\n private format (options: Intl.DateTimeFormatOptions) {\n return this.DateTimeFormat && this.DateTimeFormat(this.locale, options).format(this.displayDate)\n }\n\n /**\n * Create a Date object fixed to it's declared Timezone. Both\n * - 2021-08-06T02:29:00.000Z and\n * - 2021-08-06T02:29:00.000+08:00\n * will always be displayed as\n * - 2021-08-06 02:29:00\n * regardless timezoneOffset in JavaScript realm\n *\n * The implementation hack:\n * Instead of calling `.getMonth()`/`.getUTCMonth()` respect to `preserveTimezones`,\n * we create a different Date to trick strftime, it's both simpler and more performant.\n * Given that a template is expected to be parsed fewer times than rendered.\n */\n static createDateFixedToTimezone (dateString: string, locale: string): LiquidDate {\n const m = dateString.match(TIMEZONE_PATTERN)\n // representing a UTC timestamp\n if (m && m[1] === 'Z') {\n return new LiquidDate(+new Date(dateString), locale, 0)\n }\n // has a timezone specified\n if (m && m[2] && m[3] && m[4]) {\n const [, , sign, hours, minutes] = m\n const offset = (sign === '+' ? -1 : 1) * (parseInt(hours, 10) * 60 + parseInt(minutes, 10))\n return new LiquidDate(+new Date(dateString), locale, offset)\n }\n return new LiquidDate(dateString, locale)\n }\n private static getTimezoneOffset (timezoneName: string, date: Date) {\n const localDateString = date.toLocaleString('en-US', { timeZone: timezoneName })\n const utcDateString = date.toLocaleString('en-US', { timeZone: 'UTC' })\n\n const localDate = new Date(localDateString)\n const utcDate = new Date(utcDateString)\n return (+utcDate - +localDate) / (60 * 1000)\n }\n}\n","import { assert } from './assert'\n\nexport class Limiter {\n private message: string\n private base = 0\n private limit: number\n constructor (resource: string, limit: number) {\n this.message = `${resource} limit exceeded`\n this.limit = limit\n }\n use (count: number) {\n count = +count || 0\n assert(this.base + count <= this.limit, this.message)\n this.base += count\n }\n check (count: number) {\n count = +count || 0\n assert(count <= this.limit, this.message)\n }\n}\n","import { Token } from './token'\nimport { TokenKind } from '../parser'\nimport { TYPES, BLANK } from '../util'\n\nexport abstract class DelimitedToken extends Token {\n public trimLeft = false\n public trimRight = false\n public contentRange: [number, number]\n public constructor (\n kind: TokenKind,\n [contentBegin, contentEnd]: [number, number],\n input: string,\n begin: number,\n end: number,\n trimLeft: boolean,\n trimRight: boolean,\n file?: string\n ) {\n super(kind, input, begin, end, file)\n const tl = input[contentBegin] === '-'\n const tr = input[contentEnd - 1] === '-'\n\n let l = tl ? contentBegin + 1 : contentBegin\n let r = tr ? contentEnd - 1 : contentEnd\n while (l < r && (TYPES[input.charCodeAt(l)] & BLANK)) l++\n while (r > l && (TYPES[input.charCodeAt(r - 1)] & BLANK)) r--\n\n this.contentRange = [l, r]\n this.trimLeft = tl || trimLeft\n this.trimRight = tr || trimRight\n }\n get content () {\n return this.input.slice(this.contentRange[0], this.contentRange[1])\n }\n}\n","import { DelimitedToken } from './delimited-token'\nimport { Tokenizer, TokenKind } from '../parser'\nimport type { NormalizedFullOptions } from '../liquid-options'\n\nexport class TagToken extends DelimitedToken {\n public name: string\n public tokenizer: Tokenizer\n public readonly args: string;\n public constructor (\n input: string,\n begin: number,\n end: number,\n options: NormalizedFullOptions,\n file?: string\n ) {\n const { trimTagLeft, trimTagRight, tagDelimiterLeft, tagDelimiterRight } = options\n const [valueBegin, valueEnd] = [begin + tagDelimiterLeft.length, end - tagDelimiterRight.length]\n super(TokenKind.Tag, [valueBegin, valueEnd], input, begin, end, trimTagLeft, trimTagRight, file)\n\n this.tokenizer = new Tokenizer(input, options.operators, file, this.contentRange)\n this.name = this.tokenizer.readTagName()\n this.tokenizer.assert(this.name, `illegal tag syntax, tag name expected`)\n this.tokenizer.skipBlank()\n this.args = this.tokenizer.input.slice(this.tokenizer.p, this.contentRange[1])\n }\n}\n","import { DelimitedToken } from './delimited-token'\nimport { NormalizedFullOptions } from '../liquid-options'\nimport { TokenKind } from '../parser'\n\nexport class OutputToken extends DelimitedToken {\n public constructor (\n input: string,\n begin: number,\n end: number,\n options: NormalizedFullOptions,\n file?: string\n ) {\n const { trimOutputLeft, trimOutputRight, outputDelimiterLeft, outputDelimiterRight } = options\n const valueRange: [number, number] = [begin + outputDelimiterLeft.length, end - outputDelimiterRight.length]\n super(TokenKind.Output, valueRange, input, begin, end, trimOutputLeft, trimOutputRight, file)\n }\n}\n","import { Token } from './token'\nimport { TokenKind } from '../parser'\n\nexport class HTMLToken extends Token {\n trimLeft = 0\n trimRight = 0\n constructor (\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {\n super(TokenKind.HTML, input, begin, end, file)\n }\n public getContent () {\n return this.input.slice(this.begin + this.trimLeft, this.end - this.trimRight)\n }\n}\n","import { Token } from './token'\nimport { TokenKind } from '../parser'\n\nexport class NumberToken extends Token {\n public content: number\n constructor (\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {\n super(TokenKind.Number, input, begin, end, file)\n this.content = Number(this.getText())\n }\n}\n","import { Token } from './token'\nimport { TokenKind } from '../parser'\n\nexport class IdentifierToken extends Token {\n public content: string\n constructor (\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {\n super(TokenKind.Word, input, begin, end, file)\n this.content = this.getText()\n }\n}\n","import { Token } from './token'\nimport { TokenKind } from '../parser'\nimport { literalValues, LiteralValue } from '../util'\n\nexport class LiteralToken extends Token {\n public content: LiteralValue\n public literal: string\n public constructor (\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {\n super(TokenKind.Literal, input, begin, end, file)\n this.literal = this.getText()\n this.content = literalValues[this.literal]\n }\n}\n","import { Token } from './token'\nimport { TokenKind } from '../parser'\n\nexport const enum OperatorType {\n Binary,\n Unary\n}\n\nexport const operatorPrecedences = {\n '==': 2,\n '!=': 2,\n '>': 2,\n '<': 2,\n '>=': 2,\n '<=': 2,\n 'contains': 2,\n 'not': 1,\n 'and': 0,\n 'or': 0\n}\n\nexport const operatorTypes = {\n '==': OperatorType.Binary,\n '!=': OperatorType.Binary,\n '>': OperatorType.Binary,\n '<': OperatorType.Binary,\n '>=': OperatorType.Binary,\n '<=': OperatorType.Binary,\n 'contains': OperatorType.Binary,\n 'not': OperatorType.Unary,\n 'and': OperatorType.Binary,\n 'or': OperatorType.Binary\n}\n\nexport class OperatorToken extends Token {\n public operator: string\n public constructor (\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {\n super(TokenKind.Operator, input, begin, end, file)\n this.operator = this.getText()\n }\n getPrecedence () {\n const key = this.getText()\n return key in operatorPrecedences ? operatorPrecedences[key] : 1\n }\n}\n","import { Token } from './token'\nimport { LiteralToken } from './literal-token'\nimport { ValueToken } from './value-token'\nimport { IdentifierToken } from './identifier-token'\nimport { NumberToken } from './number-token'\nimport { RangeToken } from './range-token'\nimport { QuotedToken } from './quoted-token'\nimport { TokenKind } from '../parser'\n\nexport class PropertyAccessToken extends Token {\n constructor (\n public variable: QuotedToken | RangeToken | LiteralToken | NumberToken | undefined,\n public props: (ValueToken | IdentifierToken)[],\n input: string,\n begin: number,\n end: number,\n file?: string\n ) {\n super(TokenKind.PropertyAccess, input, begin, end, file)\n }\n}\n","import { Token } from './token'\nimport { FilterArg } from '../parser/filter-arg'\nimport { TokenKind } from '../parser'\n\nexport class FilterToken extends Token {\n public constructor (\n public name: string,\n public args: FilterArg[],\n input: string,\n begin: number,\n end: number,\n file?: string\n ) {\n super(TokenKind.Filter, input, begin, end, file)\n }\n}\n","import { Token } from './token'\nimport { ValueToken } from './value-token'\nimport { IdentifierToken } from './identifier-token'\nimport { TokenKind } from '../parser'\n\nexport class HashToken extends Token {\n constructor (\n public input: string,\n public begin: number,\n public end: number,\n public name: IdentifierToken,\n public value?: ValueToken,\n public file?: string\n ) {\n super(TokenKind.Hash, input, begin, end, file)\n }\n}\n","const rHex = /[\\da-fA-F]/\nconst rOct = /[0-7]/\nconst escapeChar = {\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\x0B'\n}\n\nfunction hexVal (c: string) {\n const code = c.charCodeAt(0)\n if (code >= 97) return code - 87\n if (code >= 65) return code - 55\n return code - 48\n}\n\nexport function parseStringLiteral (str: string): string {\n let ret = ''\n for (let i = 1; i < str.length - 1; i++) {\n if (str[i] !== '\\\\') {\n ret += str[i]\n continue\n }\n if (escapeChar[str[i + 1]] !== undefined) {\n ret += escapeChar[str[++i]]\n } else if (str[i + 1] === 'u') {\n let val = 0\n let j = i + 2\n while (j <= i + 5 && rHex.test(str[j])) {\n val = val * 16 + hexVal(str[j++])\n }\n i = j - 1\n ret += String.fromCharCode(val)\n } else if (!rOct.test(str[i + 1])) {\n ret += str[++i]\n } else {\n let j = i + 1\n let val = 0\n while (j <= i + 3 && rOct.test(str[j])) {\n val = val * 8 + hexVal(str[j++])\n }\n i = j - 1\n ret += String.fromCharCode(val)\n }\n }\n return ret\n}\n","import { Token } from './token'\nimport { TokenKind } from '../parser'\nimport { parseStringLiteral } from '../render/string'\n\nexport class QuotedToken extends Token {\n public readonly content: string\n constructor (\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {\n super(TokenKind.Quoted, input, begin, end, file)\n this.content = parseStringLiteral(this.getText())\n }\n}\n","import { Token } from './token'\nimport { ValueToken } from './value-token'\nimport { TokenKind } from '../parser'\n\nexport class RangeToken extends Token {\n constructor (\n public input: string,\n public begin: number,\n public end: number,\n public lhs: ValueToken,\n public rhs: ValueToken,\n public file?: string\n ) {\n super(TokenKind.Range, input, begin, end, file)\n }\n}\n","import { DelimitedToken } from './delimited-token'\nimport { NormalizedFullOptions } from '../liquid-options'\nimport { Tokenizer, TokenKind } from '../parser'\n\n/**\n * LiquidTagToken is different from TagToken by not having delimiters `{%` or `%}`\n */\nexport class LiquidTagToken extends DelimitedToken {\n public name: string\n public tokenizer: Tokenizer\n public constructor (\n input: string,\n begin: number,\n end: number,\n options: NormalizedFullOptions,\n file?: string\n ) {\n super(TokenKind.Tag, [begin, end], input, begin, end, false, false, file)\n this.tokenizer = new Tokenizer(input, options.operators, file, this.contentRange)\n this.name = this.tokenizer.readTagName()\n this.tokenizer.assert(this.name, 'illegal liquid tag syntax')\n this.tokenizer.skipBlank()\n }\n\n get args (): string {\n return this.tokenizer.input.slice(this.tokenizer.p, this.contentRange[1])\n }\n}\n","import { Token } from './token'\nimport { FilterToken } from './filter-token'\nimport { TokenKind } from '../parser'\nimport { Expression } from '../render'\n\n/**\n * value expression with optional filters\n * e.g.\n * {% assign foo=\"bar\" | append: \"coo\" %}\n */\nexport class FilteredValueToken extends Token {\n constructor (\n public initial: Expression,\n public filters: FilterToken[],\n public input: string,\n public begin: number,\n public end: number,\n public file?: string\n ) {\n super(TokenKind.FilteredValue, input, begin, end, file)\n }\n}\n","interface LiquidPerformance {\n now: () => number\n}\n\nconst polyfill: LiquidPerformance = {\n now: () => Date.now()\n}\n\nexport function getPerformance (): LiquidPerformance {\n return (typeof global === 'object' && global.performance) ||\n (typeof window === 'object' && window.performance) ||\n polyfill\n}\n","import { getPerformance } from '../util/performance'\nimport { toPromise, RenderError, LiquidErrors, LiquidError } from '../util'\nimport { Context } from '../context'\nimport { Template } from '../template'\nimport { Emitter, KeepingTypeEmitter, StreamedEmitter, SimpleEmitter } from '../emitters'\n\nexport class Render {\n public renderTemplatesToNodeStream (templates: Template[], ctx: Context): NodeJS.ReadableStream {\n const emitter = new StreamedEmitter()\n Promise.resolve().then(() => toPromise(this.renderTemplates(templates, ctx, emitter)))\n .then(() => emitter.end(), err => emitter.error(err))\n return emitter.stream\n }\n public * renderTemplates (templates: Template[], ctx: Context, emitter?: Emitter): IterableIterator<any> {\n if (!emitter) {\n emitter = ctx.opts.keepOutputType ? new KeepingTypeEmitter() : new SimpleEmitter()\n }\n const errors = []\n for (const tpl of templates) {\n ctx.renderLimit.check(getPerformance().now())\n try {\n // if tpl.render supports emitter, it'll return empty `html`\n const html = yield tpl.render(ctx, emitter)\n // if not, it'll return an `html`, write to the emitter for it\n html && emitter.write(html)\n if (ctx.breakCalled || ctx.continueCalled) break\n } catch (e) {\n const err = LiquidError.is(e) ? e : new RenderError(e as Error, tpl)\n if (ctx.opts.catchAllErrors) errors.push(err)\n else throw err\n }\n }\n if (errors.length) {\n throw new LiquidErrors(errors)\n }\n return emitter.buffer\n }\n}\n","import { QuotedToken, RangeToken, OperatorToken, Token, PropertyAccessToken, OperatorType, operatorTypes } from '../tokens'\nimport { isRangeToken, isPropertyAccessToken, UndefinedVariableError, range, isOperatorToken, assert } from '../util'\nimport type { Context } from '../context'\nimport type { UnaryOperatorHandler } from '../render'\nimport { Drop } from '../drop'\n\nexport class Expression {\n readonly postfix: Token[]\n\n public constructor (tokens: IterableIterator<Token>) {\n this.postfix = [...toPostfix(tokens)]\n }\n public * evaluate (ctx: Context, lenient?: boolean): Generator<unknown, unknown, unknown> {\n assert(ctx, 'unable to evaluate: context not defined')\n const operands: any[] = []\n for (const token of this.postfix) {\n if (isOperatorToken(token)) {\n const r = operands.pop()\n let result\n if (operatorTypes[token.operator] === OperatorType.Unary) {\n result = yield (ctx.opts.operators[token.operator] as UnaryOperatorHandler)(r, ctx)\n } else {\n const l = operands.pop()\n result = yield ctx.opts.operators[token.operator](l, r, ctx)\n }\n operands.push(result)\n } else {\n operands.push(yield evalToken(token, ctx, lenient))\n }\n }\n return operands[0]\n }\n public valid () {\n return !!this.postfix.length\n }\n}\n\nexport function * evalToken (token: Token | undefined, ctx: Context, lenient = false): IterableIterator<unknown> {\n if (!token) return\n if ('content' in token) return token.content\n if (isPropertyAccessToken(token)) return yield evalPropertyAccessToken(token, ctx, lenient)\n if (isRangeToken(token)) return yield evalRangeToken(token, ctx)\n}\n\nfunction * evalPropertyAccessToken (token: PropertyAccessToken, ctx: Context, lenient: boolean): IterableIterator<unknown> {\n const props: (string | number | Drop)[] = []\n for (const prop of token.props) {\n props.push((yield evalToken(prop, ctx, false)) as unknown as string | number | Drop)\n }\n try {\n if (token.variable) {\n const variable = yield evalToken(token.variable, ctx, lenient)\n return yield ctx._getFromScope(variable, props)\n } else {\n return yield ctx._get(props)\n }\n } catch (e) {\n if (lenient && (e as Error).name === 'InternalUndefinedVariableError') return null\n throw (new UndefinedVariableError(e as Error, token))\n }\n}\n\nexport function evalQuotedToken (token: QuotedToken) {\n return token.content\n}\n\nfunction * evalRangeToken (token: RangeToken, ctx: Context) {\n const low: number = yield evalToken(token.lhs, ctx)\n const high: number = yield evalToken(token.rhs, ctx)\n ctx.memoryLimit.use(high - low + 1)\n return range(+low, +high + 1)\n}\n\nfunction * toPostfix (tokens: IterableIterator<Token>): IterableIterator<Token> {\n const ops: OperatorToken[] = []\n for (const token of tokens) {\n if (isOperatorToken(token)) {\n while (ops.length && ops[ops.length - 1].getPrecedence() > token.getPrecedence()) {\n yield ops.pop()!\n }\n ops.push(token)\n } else yield token\n }\n while (ops.length) {\n yield ops.pop()!\n }\n}\n","import { Context } from '../context/context'\nimport { toValue } from '../util'\n\nexport function isTruthy (val: any, ctx: Context): boolean {\n return !isFalsy(val, ctx)\n}\n\nexport function isFalsy (val: any, ctx: Context): boolean {\n val = toValue(val)\n\n if (ctx.opts.jsTruthy) {\n return !val\n } else {\n return val === false || undefined === val || val === null\n }\n}\n","import { isComparable } from '../drop/comparable'\nimport { Context } from '../context'\nimport { toValue } from '../util'\nimport { isFalsy, isTruthy } from '../render/boolean'\nimport { isArray, isFunction } from '../util/underscore'\n\nexport type UnaryOperatorHandler = (operand: any, ctx: Context) => boolean;\nexport type BinaryOperatorHandler = (lhs: any, rhs: any, ctx: Context) => boolean;\nexport type OperatorHandler = UnaryOperatorHandler | BinaryOperatorHandler;\nexport type Operators = Record<string, OperatorHandler>\n\nexport const defaultOperators: Operators = {\n '==': equals,\n '!=': (l: any, r: any) => !equals(l, r),\n '>': (l: any, r: any) => {\n if (isComparable(l)) return l.gt(r)\n if (isComparable(r)) return r.lt(l)\n return toValue(l) > toValue(r)\n },\n '<': (l: any, r: any) => {\n if (isComparable(l)) return l.lt(r)\n if (isComparable(r)) return r.gt(l)\n return toValue(l) < toValue(r)\n },\n '>=': (l: any, r: any) => {\n if (isComparable(l)) return l.geq(r)\n if (isComparable(r)) return r.leq(l)\n return toValue(l) >= toValue(r)\n },\n '<=': (l: any, r: any) => {\n if (isComparable(l)) return l.leq(r)\n if (isComparable(r)) return r.geq(l)\n return toValue(l) <= toValue(r)\n },\n 'contains': (l: any, r: any) => {\n l = toValue(l)\n if (isArray(l)) return l.some((i) => equals(i, r))\n if (isFunction(l?.indexOf)) return l.indexOf(toValue(r)) > -1\n return false\n },\n 'not': (v: any, ctx: Context) => isFalsy(toValue(v), ctx),\n 'and': (l: any, r: any, ctx: Context) => isTruthy(toValue(l), ctx) && isTruthy(toValue(r), ctx),\n 'or': (l: any, r: any, ctx: Context) => isTruthy(toValue(l), ctx) || isTruthy(toValue(r), ctx)\n}\n\nexport function equals (lhs: any, rhs: any): boolean {\n if (isComparable(lhs)) return lhs.equals(rhs)\n if (isComparable(rhs)) return rhs.equals(lhs)\n lhs = toValue(lhs)\n rhs = toValue(rhs)\n if (isArray(lhs)) {\n return isArray(rhs) && arrayEquals(lhs, rhs)\n }\n return lhs === rhs\n}\n\nfunction arrayEquals (lhs: any[], rhs: any[]): boolean {\n if (lhs.length !== rhs.length) return false\n return !lhs.some((value, i) => !equals(value, rhs[i]))\n}\n\nexport function arrayIncludes (arr: any[], item: any): boolean {\n return arr.some(value => equals(value, item))\n}\n","import { Cache } from './cache'\n\nclass Node<T> {\n constructor (\n public key: string,\n public value: T,\n public next: Node<T>,\n public prev: Node<T>\n ) {}\n}\n\nexport class LRU<T> implements Cache<T> {\n private cache: Record<string, Node<T>> = {}\n private head: Node<T>\n private tail: Node<T>\n\n constructor (\n public limit: number,\n public size = 0\n ) {\n this.head = new Node<T>('HEAD', null as any, null as any, null as any)\n this.tail = new Node<T>('TAIL', null as any, null as any, null as any)\n this.head.next = this.tail\n this.tail.prev = this.head\n }\n\n write (key: string, value: T) {\n if (this.cache[key]) {\n this.cache[key].value = value\n } else {\n const node = new Node(key, value, this.head.next, this.head)\n this.head.next.prev = node\n this.head.next = node\n\n this.cache[key] = node\n this.size++\n this.ensureLimit()\n }\n }\n\n read (key: string): T | undefined {\n if (!this.cache[key]) return\n const { value } = this.cache[key]\n this.remove(key)\n this.write(key, value)\n return value\n }\n\n remove (key: string) {\n const node = this.cache[key]\n node.prev.next = node.next\n node.next.prev = node.prev\n delete this.cache[key]\n this.size--\n }\n\n clear () {\n this.head.next = this.tail\n this.tail.prev = this.head\n this.size = 0\n this.cache = {}\n }\n\n private ensureLimit () {\n if (this.size > this.limit) this.remove(this.tail.prev.key)\n }\n}\n","import { last } from '../util'\n\nfunction domResolve (root: string, path: string) {\n const base = document.createElement('base')\n base.href = root\n\n const head = document.getElementsByTagName('head')[0]\n head.insertBefore(base, head.firstChild)\n\n const a = document.createElement('a')\n a.href = path\n const resolved = a.href\n head.removeChild(base)\n\n return resolved\n}\n\nexport function resolve (root: string, filepath: string, ext: string) {\n if (root.length && last(root) !== '/') root += '/'\n const url = domResolve(root, filepath)\n return url.replace(/^(\\w+:\\/\\/[^/]+)(\\/[^?]+)/, (str, origin, path) => {\n const last = path.split('/').pop()\n if (/\\.\\w+$/.test(last)) return str\n return origin + path + ext\n })\n}\n\nexport async function readFile (url: string): Promise<string> {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n resolve(xhr.responseText as string)\n } else {\n reject(new Error(xhr.statusText))\n }\n }\n xhr.onerror = () => {\n reject(new Error('An error occurred whilst receiving the response.'))\n }\n xhr.open('GET', url)\n xhr.send()\n })\n}\n\nexport function readFileSync (url: string): string {\n const xhr = new XMLHttpRequest()\n xhr.open('GET', url, false)\n xhr.send()\n if (xhr.status < 200 || xhr.status >= 300) {\n throw new Error(xhr.statusText)\n }\n return xhr.responseText as string\n}\n\nexport async function exists (filepath: string) {\n return true\n}\n\nexport function existsSync (filepath: string) {\n return true\n}\n\nexport function dirname (filepath: string) {\n return domResolve(filepath, '.')\n}\n\nexport const sep = '/'\n","import { isFalsy } from '../render/boolean'\nimport { identify, isArray, isString, toValue } from '../util/underscore'\nimport { FilterImpl } from '../template'\n\nfunction defaultFilter<T1 extends boolean, T2> (this: FilterImpl, value: T1, defaultValue: T2, ...args: Array<[string, any]>): T1 | T2 {\n value = toValue(value)\n if (isArray(value) || isString(value)) return value.length ? value : defaultValue\n if (value === false && (new Map(args)).get('allow_false')) return false as T1\n return isFalsy(value, this.context) ? defaultValue : value\n}\n\nfunction json (value: any, space = 0) {\n return JSON.stringify(value, null, space)\n}\n\nfunction inspect (value: any, space = 0) {\n const ancestors: object[] = []\n return JSON.stringify(value, function (this: unknown, _key: unknown, value: any) {\n if (typeof value !== 'object' || value === null) return value\n // `this` is the object that value is contained in, i.e., its direct parent.\n while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this) ancestors.pop()\n if (ancestors.includes(value)) return '[Circular]'\n ancestors.push(value)\n return value\n }, space)\n}\n\nfunction to_integer (value: any) {\n return Number(value)\n}\n\nconst raw = {\n raw: true,\n handler: identify\n}\n\nexport default {\n default: defaultFilter,\n raw,\n jsonify: json,\n to_integer,\n json,\n inspect\n}\n","import { FilterImpl } from '../template'\nimport { stringify } from '../util/underscore'\n\nconst escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n}\nconst unescapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n}\n\nexport function escape (this: FilterImpl, str: string) {\n str = stringify(str)\n this.context.memoryLimit.use(str.length)\n return str.replace(/&|<|>|\"|'/g, m => escapeMap[m])\n}\n\nexport function xml_escape (this: FilterImpl, str: string) {\n return escape.call(this, str)\n}\n\nfunction unescape (this: FilterImpl, str: string) {\n str = stringify(str)\n this.context.memoryLimit.use(str.length)\n return str.replace(/&(amp|lt|gt|#34|#39);/g, m => unescapeMap[m])\n}\n\nexport function escape_once (this: FilterImpl, str: string) {\n return escape.call(this, unescape.call(this, str))\n}\n\nexport function newline_to_br (this: FilterImpl, v: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.replace(/\\r?\\n/gm, '<br />\\n')\n}\n\nexport function strip_html (this: FilterImpl, v: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.replace(/<script[\\s\\S]*?<\\/script>|<style[\\s\\S]*?<\\/style>|<.*?>|<!--[\\s\\S]*?-->/g, '')\n}\n","import { isNil } from '../util'\n\nexport class MapFS {\n constructor (private mapping: {[key: string]: string}) {}\n\n public sep = '/'\n\n async exists (filepath: string) {\n return this.existsSync(filepath)\n }\n\n existsSync (filepath: string) {\n return !isNil(this.mapping[filepath])\n }\n\n async readFile (filepath: string) {\n return this.readFileSync(filepath)\n }\n\n readFileSync (filepath: string) {\n const content = this.mapping[filepath]\n if (isNil(content)) throw new Error(`ENOENT: ${filepath}`)\n return content\n }\n\n dirname (filepath: string) {\n const segments = filepath.split(this.sep)\n segments.pop()\n return segments.join(this.sep)\n }\n\n resolve (dir: string, file: string, ext: string) {\n file += ext\n if (dir === '.') return file\n const segments = dir.split(/\\/+/)\n for (const segment of file.split(this.sep)) {\n if (segment === '.' || segment === '') continue\n else if (segment === '..') {\n if (segments.length > 1 || segments[0] !== '') segments.pop()\n } else segments.push(segment)\n }\n return segments.join(this.sep)\n }\n}\n","import { assert, isArray, isString, isFunction } from './util'\nimport { getDateTimeFormat } from './util/intl'\nimport { LRU, LiquidCache } from './cache'\nimport { FS, LookupType } from './fs'\nimport * as fs from './fs/fs-impl'\nimport { defaultOperators, Operators } from './render'\nimport misc from './filters/misc'\nimport { escape } from './filters/html'\nimport { MapFS } from './fs/map-fs'\n\ntype OutputEscape = (value: any) => string\ntype OutputEscapeOption = 'escape' | 'json' | OutputEscape\n\nexport interface LiquidOptions {\n /** A directory or an array of directories from where to resolve layout and include templates, and the filename passed to `.renderFile()`. If it's an array, the files are looked up in the order they occur in the array. Defaults to `[\".\"]` */\n root?: string | string[];\n /** A directory or an array of directories from where to resolve included templates. If it's an array, the files are looked up in the order they occur in the array. Defaults to `root` */\n partials?: string | string[];\n /** A directory or an array of directories from where to resolve layout templates. If it's an array, the files are looked up in the order they occur in the array. Defaults to `root` */\n layouts?: string | string[];\n /** Allow refer to layouts/partials by relative pathname. To avoid arbitrary filesystem read, paths been referenced also need to be within corresponding root, partials, layouts. Defaults to `true`. */\n relativeReference?: boolean;\n /** Use jekyll style include, pass parameters to `include` variable of current scope. Defaults to `false`. */\n jekyllInclude?: boolean;\n /** Use jekyll style where filter, enables array item match. Defaults to `false`. */\n jekyllWhere?: boolean;\n /** Add a extname (if filepath doesn't include one) before template file lookup. Eg: setting to `\".html\"` will allow including file by basename. Defaults to `\"\"`. */\n extname?: string;\n /** Whether or not to cache resolved templates. Defaults to `false`. */\n cache?: boolean | number | LiquidCache;\n /** Use JavaScript Truthiness. Defaults to `false`. */\n jsTruthy?: boolean;\n /** If set, treat the `filepath` parameter in `{%include filepath %}` and `{%layout filepath%}` as a variable, otherwise as a literal value. Defaults to `true`. */\n dynamicPartials?: boolean;\n /** Whether or not to assert filter existence. If set to `false`, undefined filters will be skipped. Otherwise, undefined filters will cause an exception. Defaults to `false`. */\n strictFilters?: boolean;\n /** Whether or not to assert variable existence. If set to `false`, undefined variables will be rendered as empty string. Otherwise, undefined variables will cause an exception. Defaults to `false`. */\n strictVariables?: boolean;\n /** Catch all errors instead of exit upon one. Please note that render errors won't be reached when parse fails. */\n catchAllErrors?: boolean;\n /** Hide scope variables from prototypes, useful when you're passing a not sanitized object into LiquidJS or need to hide prototypes from templates. */\n ownPropertyOnly?: boolean;\n /** Modifies the behavior of `strictVariables`. If set, a single undefined variable will *not* cause an exception in the context of the `if`/`elsif`/`unless` tag and the `default` filter. Instead, it will evaluate to `false` and `null`, respectively. Irrelevant if `strictVariables` is not set. Defaults to `false`. **/\n lenientIf?: boolean;\n /** JavaScript timezone name or timezoneOffset for `date` filter, default to local time. That means if you're in Australia (UTC+10), it'll default to `-600` or `Australia/Lindeman` */\n timezoneOffset?: number | string;\n /** Default date format to use if the date filter doesn't include a format. Defaults to `%A, %B %-e, %Y at %-l:%M %P %z`. */\n dateFormat?: string;\n /** Default locale, will be used by date filter. Defaults to system locale. */\n locale?: string;\n /** Strip blank characters (including ` `, `\\t`, and `\\r`) from the right of tags (`{% %}`) until `\\n` (inclusive). Defaults to `false`. */\n trimTagRight?: boolean;\n /** Similar to `trimTagRight`, whereas the `\\n` is exclusive. Defaults to `false`. See Whitespace Control for details. */\n trimTagLeft?: boolean;\n /** Strip blank characters (including ` `, `\\t`, and `\\r`) from the right of values (`{{ }}`) until `\\n` (inclusive). Defaults to `false`. */\n trimOutputRight?: boolean;\n /** Similar to `trimOutputRight`, whereas the `\\n` is exclusive. Defaults to `false`. See Whitespace Control for details. */\n trimOutputLeft?: boolean;\n /** The left delimiter for liquid tags. **/\n tagDelimiterLeft?: string;\n /** The right delimiter for liquid tags. **/\n tagDelimiterRight?: string;\n /** The left delimiter for liquid outputs. **/\n outputDelimiterLeft?: string;\n /** The right delimiter for liquid outputs. **/\n outputDelimiterRight?: string;\n /** Whether input strings to date filter preserve the given timezone **/\n preserveTimezones?: boolean;\n /** Whether `trim*Left`/`trim*Right` is greedy. When set to `true`, all consecutive blank characters including `\\n` will be trimmed regardless of line breaks. Defaults to `true`. */\n greedy?: boolean;\n /** `fs` is used to override the default file-system module with a custom implementation. */\n fs?: FS;\n /** keyValue separator */\n keyValueSeparator?: string;\n /** Render from in-memory `templates` mapping instead of file system. File system related options like `fs`, 'root', and `relativeReference` will be ignored when `templates` is specified. */\n templates?: {[key: string]: string};\n /** the global scope passed down to all partial and layout templates, i.e. templates included by `include`, `layout` and `render` tags. */\n globals?: object;\n /** Whether or not to keep value type when writing the Output, not working for streamed rendering. Defaults to `false`. */\n keepOutputType?: boolean;\n /** Default escape filter applied to output values, when set, you'll have to add `| raw` for values don't need to be escaped. Defaults to `undefined`. */\n outputEscape?: OutputEscapeOption;\n /** An object of operators for conditional statements. Defaults to the regular Liquid operators. */\n operators?: Operators;\n /** Respect parameter order when using filters like \"for ... reversed limit\", Defaults to `false`. */\n orderedFilterParameters?: boolean;\n /** For DoS handling, limit total length of templates parsed in one `parse()` call. A typical PC can handle 1e8 (100M) characters without issues. */\n parseLimit?: number;\n /** For DoS handling, limit total time (in ms) for each `render()` call. */\n renderLimit?: number;\n /** For DoS handling, limit new objects creation, including array concat/join/strftime, etc. A typical PC can handle 1e9 (1G) memory without issue. */\n memoryLimit?: number;\n}\n\nexport interface RenderOptions {\n /**\n * This call is sync or async? It's used by Liquid internal methods, you'll not need this.\n */\n sync?: boolean;\n /**\n * Same as `globals` on LiquidOptions, but only for current render() call\n */\n globals?: object;\n /**\n * Same as `strictVariables` on LiquidOptions, but only for current render() call\n */\n strictVariables?: boolean;\n /**\n * Same as `ownPropertyOnly` on LiquidOptions, but only for current render() call\n */\n ownPropertyOnly?: boolean;\n /** For DoS handling, limit total renders of tag/HTML/output in one `render()` call. A typical PC can handle 1e5 renders of typical templates per second. */\n templateLimit?: number;\n /** For DoS handling, limit total time (in ms) for each `render()` call. */\n renderLimit?: number;\n /** For DoS handling, limit new objects creation, including array concat/join/strftime, etc. A typical PC can handle 1e9 (1G) memory without issue.. */\n memoryLimit?: number;\n}\n\nexport interface RenderFileOptions extends RenderOptions {\n lookupType?: LookupType;\n}\n\ninterface NormalizedOptions extends LiquidOptions {\n root?: string[];\n partials?: string[];\n layouts?: string[];\n cache?: LiquidCache;\n outputEscape?: OutputEscape;\n}\n\nexport interface NormalizedFullOptions extends NormalizedOptions {\n root: string[];\n partials: string[];\n layouts: string[];\n relativeReference: boolean;\n jekyllInclude: boolean;\n extname: string;\n cache?: LiquidCache;\n jsTruthy: boolean;\n dynamicPartials: boolean;\n fs: FS;\n strictFilters: boolean;\n strictVariables: boolean;\n ownPropertyOnly: boolean;\n lenientIf: boolean;\n dateFormat: string;\n locale: string;\n trimTagRight: boolean;\n trimTagLeft: boolean;\n trimOutputRight: boolean;\n trimOutputLeft: boolean;\n tagDelimiterLeft: string;\n tagDelimiterRight: string;\n outputDelimiterLeft: string;\n outputDelimiterRight: string;\n preserveTimezones: boolean;\n greedy: boolean;\n globals: object;\n keepOutputType: boolean;\n operators: Operators;\n parseLimit: number;\n renderLimit: number;\n memoryLimit: number;\n}\n\nexport const defaultOptions: NormalizedFullOptions = {\n root: ['.'],\n layouts: ['.'],\n partials: ['.'],\n relativeReference: true,\n jekyllInclude: false,\n keyValueSeparator: ':',\n cache: undefined,\n extname: '',\n fs: fs,\n dynamicPartials: true,\n jsTruthy: false,\n dateFormat: '%A, %B %-e, %Y at %-l:%M %P %z',\n locale: '',\n trimTagRight: false,\n trimTagLeft: false,\n trimOutputRight: false,\n trimOutputLeft: false,\n greedy: true,\n tagDelimiterLeft: '{%',\n tagDelimiterRight: '%}',\n outputDelimiterLeft: '{{',\n outputDelimiterRight: '}}',\n preserveTimezones: false,\n strictFilters: false,\n strictVariables: false,\n ownPropertyOnly: true,\n lenientIf: false,\n globals: {},\n keepOutputType: false,\n operators: defaultOperators,\n memoryLimit: Infinity,\n parseLimit: Infinity,\n renderLimit: Infinity\n}\n\nexport function normalize (options: LiquidOptions): NormalizedFullOptions {\n if (options.hasOwnProperty('root')) {\n if (!options.hasOwnProperty('partials')) options.partials = options.root\n if (!options.hasOwnProperty('layouts')) options.layouts = options.root\n }\n if (options.hasOwnProperty('cache')) {\n let cache: LiquidCache | undefined\n if (typeof options.cache === 'number') cache = options.cache > 0 ? new LRU(options.cache) : undefined\n else if (typeof options.cache === 'object') cache = options.cache\n else cache = options.cache ? new LRU(1024) : undefined\n options.cache = cache\n }\n options = { ...defaultOptions, ...(options.jekyllInclude ? { dynamicPartials: false } : {}), ...options }\n if ((!options.fs!.dirname || !options.fs!.sep) && options.relativeReference) {\n console.warn('[LiquidJS] `fs.dirname` and `fs.sep` are required for relativeReference, set relativeReference to `false` to suppress this warning')\n options.relativeReference = false\n }\n options.root = normalizeDirectoryList(options.root)\n options.partials = normalizeDirectoryList(options.partials)\n options.layouts = normalizeDirectoryList(options.layouts)\n options.outputEscape = options.outputEscape && getOutputEscapeFunction(options.outputEscape)\n if (!options.locale) {\n options.locale = getDateTimeFormat()?.().resolvedOptions().locale ?? 'en-US'\n }\n if (options.templates) {\n options.fs = new MapFS(options.templates)\n options.relativeReference = true\n options.root = options.partials = options.layouts = '.'\n }\n return options as NormalizedFullOptions\n}\n\nfunction getOutputEscapeFunction (nameOrFunction: OutputEscapeOption): OutputEscape {\n if (nameOrFunction === 'escape') return escape\n if (nameOrFunction === 'json') return misc.json\n assert(isFunction(nameOrFunction), '`outputEscape` need to be of type string or function')\n return nameOrFunction\n}\n\nexport function normalizeDirectoryList (value: any): string[] {\n let list: string[] = []\n if (isArray(value)) list = value\n if (isString(value)) list = [value]\n return list\n}\n","import { Token } from '../tokens'\nimport { NormalizedFullOptions } from '../liquid-options'\nimport { isTagToken, isHTMLToken, isDelimitedToken, TYPES, INLINE_BLANK, BLANK } from '../util'\n\nexport function whiteSpaceCtrl (tokens: Token[], options: NormalizedFullOptions) {\n let inRaw = false\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i]\n if (!isDelimitedToken(token)) continue\n if (!inRaw && token.trimLeft) {\n trimLeft(tokens[i - 1], options.greedy)\n }\n\n if (isTagToken(token)) {\n if (token.name === 'raw') inRaw = true\n else if (token.name === 'endraw') inRaw = false\n }\n\n if (!inRaw && token.trimRight) {\n trimRight(tokens[i + 1], options.greedy)\n }\n }\n}\n\nfunction trimLeft (token: Token, greedy: boolean) {\n if (!token || !isHTMLToken(token)) return\n\n const mask = greedy ? BLANK : INLINE_BLANK\n while (TYPES[token.input.charCodeAt(token.end - 1 - token.trimRight)] & mask) token.trimRight++\n}\n\nfunction trimRight (token: Token, greedy: boolean) {\n if (!token || !isHTMLToken(token)) return\n\n const mask = greedy ? BLANK : INLINE_BLANK\n while (TYPES[token.input.charCodeAt(token.begin + token.trimLeft)] & mask) token.trimLeft++\n if (token.input.charAt(token.begin + token.trimLeft) === '\\n') token.trimLeft++\n}\n","import { FilteredValueToken, TagToken, HTMLToken, HashToken, QuotedToken, LiquidTagToken, OutputToken, ValueToken, Token, RangeToken, FilterToken, TopLevelToken, PropertyAccessToken, OperatorToken, LiteralToken, IdentifierToken, NumberToken } from '../tokens'\nimport { OperatorHandler } from '../render/operator'\nimport { TrieNode, LiteralValue, Trie, createTrie, ellipsis, literalValues, TokenizationError, TYPES, QUOTE, BLANK, NUMBER, SIGN, isWord, isString } from '../util'\nimport { Operators, Expression } from '../render'\nimport { NormalizedFullOptions, defaultOptions } from '../liquid-options'\nimport { FilterArg } from './filter-arg'\nimport { whiteSpaceCtrl } from './whitespace-ctrl'\n\nexport class Tokenizer {\n p: number\n N: number\n private rawBeginAt = -1\n private opTrie: Trie<OperatorHandler>\n private literalTrie: Trie<LiteralValue>\n\n constructor (\n public input: string,\n operators: Operators = defaultOptions.operators,\n public file?: string,\n range?: [number, number]\n ) {\n this.p = range ? range[0] : 0\n this.N = range ? range[1] : input.length\n this.opTrie = createTrie(operators)\n this.literalTrie = createTrie(literalValues)\n }\n\n readExpression () {\n return new Expression(this.readExpressionTokens())\n }\n\n * readExpressionTokens (): IterableIterator<Token> {\n while (this.p < this.N) {\n const operator = this.readOperator()\n if (operator) {\n yield operator\n continue\n }\n const operand = this.readValue()\n if (operand) {\n yield operand\n continue\n }\n return\n }\n }\n readOperator (): OperatorToken | undefined {\n this.skipBlank()\n const end = this.matchTrie(this.opTrie)\n if (end === -1) return\n return new OperatorToken(this.input, this.p, (this.p = end), this.file)\n }\n matchTrie<T> (trie: Trie<T>) {\n let node: TrieNode<T> = trie\n let i = this.p\n let info\n while (node[this.input[i]] && i < this.N) {\n node = node[this.input[i++]]\n if (node['end']) info = node\n }\n if (!info) return -1\n if (info['needBoundary'] && isWord(this.peek(i - this.p))) return -1\n return i\n }\n readFilteredValue (): FilteredValueToken {\n const begin = this.p\n const initial = this.readExpression()\n this.assert(initial.valid(), `invalid value expression: ${this.snapshot()}`)\n const filters = this.readFilters()\n return new FilteredValueToken(initial, filters, this.input, begin, this.p, this.file)\n }\n readFilters (): FilterToken[] {\n const filters = []\n while (true) {\n const filter = this.readFilter()\n if (!filter) return filters\n filters.push(filter)\n }\n }\n readFilter (): FilterToken | null {\n this.skipBlank()\n if (this.end()) return null\n this.assert(this.read() === '|', `expected \"|\" before filter`)\n const name = this.readIdentifier()\n if (!name.size()) {\n this.assert(this.end(), `expected filter name`)\n return null\n }\n const args = []\n this.skipBlank()\n if (this.peek() === ':') {\n do {\n ++this.p\n const arg = this.readFilterArg()\n arg && args.push(arg)\n this.skipBlank()\n this.assert(this.end() || this.peek() === ',' || this.peek() === '|', () => `unexpected character ${this.snapshot()}`)\n } while (this.peek() === ',')\n } else if (this.peek() === '|' || this.end()) {\n // do nothing\n } else {\n throw this.error('expected \":\" after filter name')\n }\n return new FilterToken(name.getText(), args, this.input, name.begin, this.p, this.file)\n }\n\n readFilterArg (): FilterArg | undefined {\n const key = this.readValue()\n if (!key) return\n this.skipBlank()\n if (this.peek() !== ':') return key\n ++this.p\n const value = this.readValue()\n return [key.getText(), value]\n }\n\n readTopLevelTokens (options: NormalizedFullOptions = defaultOptions): TopLevelToken[] {\n const tokens: TopLevelToken[] = []\n while (this.p < this.N) {\n const token = this.readTopLevelToken(options)\n tokens.push(token)\n }\n whiteSpaceCtrl(tokens, options)\n return tokens\n }\n\n readTopLevelToken (options: NormalizedFullOptions): TopLevelToken {\n const { tagDelimiterLeft, outputDelimiterLeft } = options\n if (this.rawBeginAt > -1) return this.readEndrawOrRawContent(options)\n if (this.match(tagDelimiterLeft)) return this.readTagToken(options)\n if (this.match(outputDelimiterLeft)) return this.readOutputToken(options)\n return this.readHTMLToken([tagDelimiterLeft, outputDelimiterLeft])\n }\n\n readHTMLToken (stopStrings: string[]): HTMLToken {\n const begin = this.p\n while (this.p < this.N) {\n if (stopStrings.some(str => this.match(str))) break\n ++this.p\n }\n return new HTMLToken(this.input, begin, this.p, this.file)\n }\n\n readTagToken (options: NormalizedFullOptions): TagToken {\n const { file, input } = this\n const begin = this.p\n if (this.readToDelimiter(options.tagDelimiterRight) === -1) {\n throw this.error(`tag ${this.snapshot(begin)} not closed`, begin)\n }\n const token = new TagToken(input, begin, this.p, options, file)\n if (token.name === 'raw') this.rawBeginAt = begin\n return token\n }\n\n readToDelimiter (delimiter: string, respectQuoted = false) {\n this.skipBlank()\n while (this.p < this.N) {\n if (respectQuoted && (this.peekType() & QUOTE)) {\n this.readQuoted()\n continue\n }\n ++this.p\n if (this.rmatch(delimiter)) return this.p\n }\n return -1\n }\n\n readOutputToken (options: NormalizedFullOptions = defaultOptions): OutputToken {\n const { file, input } = this\n const { outputDelimiterRight } = options\n const begin = this.p\n if (this.readToDelimiter(outputDelimiterRight, true) === -1) {\n throw this.error(`output ${this.snapshot(begin)} not closed`, begin)\n }\n return new OutputToken(input, begin, this.p, options, file)\n }\n\n readEndrawOrRawContent (options: NormalizedFullOptions): HTMLToken | TagToken {\n const { tagDelimiterLeft, tagDelimiterRight } = options\n const begin = this.p\n let leftPos = this.readTo(tagDelimiterLeft) - tagDelimiterLeft.length\n while (this.p < this.N) {\n if (this.readIdentifier().getText() !== 'endraw') {\n leftPos = this.readTo(tagDelimiterLeft) - tagDelimiterLeft.length\n continue\n }\n while (this.p <= this.N) {\n if (this.rmatch(tagDelimiterRight)) {\n const end = this.p\n if (begin === leftPos) {\n this.rawBeginAt = -1\n return new TagToken(this.input, begin, end, options, this.file)\n } else {\n this.p = leftPos\n return new HTMLToken(this.input, begin, leftPos, this.file)\n }\n }\n if (this.rmatch(tagDelimiterLeft)) break\n this.p++\n }\n }\n throw this.error(`raw ${this.snapshot(this.rawBeginAt)} not closed`, begin)\n }\n\n readLiquidTagTokens (options: NormalizedFullOptions = defaultOptions): LiquidTagToken[] {\n const tokens: LiquidTagToken[] = []\n while (this.p < this.N) {\n const token = this.readLiquidTagToken(options)\n token && tokens.push(token)\n }\n return tokens\n }\n\n readLiquidTagToken (options: NormalizedFullOptions): LiquidTagToken | undefined {\n this.skipBlank()\n if (this.end()) return\n\n const begin = this.p\n this.readToDelimiter('\\n')\n const end = this.p\n return new LiquidTagToken(this.input, begin, end, options, this.file)\n }\n\n error (msg: string, pos: number = this.p) {\n return new TokenizationError(msg, new IdentifierToken(this.input, pos, this.N, this.file))\n }\n\n assert (pred: unknown, msg: string | (() => string), pos?: number) {\n if (!pred) throw this.error(typeof msg === 'function' ? msg() : msg, pos)\n }\n\n snapshot (begin: number = this.p) {\n return JSON.stringify(ellipsis(this.input.slice(begin, this.N), 32))\n }\n\n /**\n * @deprecated use #readIdentifier instead\n */\n readWord () {\n return this.readIdentifier()\n }\n\n readIdentifier (): IdentifierToken {\n this.skipBlank()\n const begin = this.p\n while (!this.end() && isWord(this.peek())) ++this.p\n return new IdentifierToken(this.input, begin, this.p, this.file)\n }\n\n readNonEmptyIdentifier (): IdentifierToken | undefined {\n const id = this.readIdentifier()\n return id.size() ? id : undefined\n }\n\n readTagName (): string {\n this.skipBlank()\n // Handle inline comment tags\n if (this.input[this.p] === '#') return this.input.slice(this.p, ++this.p)\n return this.readIdentifier().getText()\n }\n\n readHashes (jekyllStyle?: boolean | string) {\n const hashes = []\n while (true) {\n const hash = this.readHash(jekyllStyle)\n if (!hash) return hashes\n hashes.push(hash)\n }\n }\n\n readHash (jekyllStyle?: boolean | string): HashToken | undefined {\n this.skipBlank()\n if (this.peek() === ',') ++this.p\n const begin = this.p\n const name = this.readNonEmptyIdentifier()\n if (!name) return\n let value\n\n this.skipBlank()\n const sep = isString(jekyllStyle) ? jekyllStyle : (jekyllStyle ? '=' : ':')\n if (this.peek() === sep) {\n ++this.p\n value = this.readValue()\n }\n return new HashToken(this.input, begin, this.p, name, value, this.file)\n }\n\n remaining () {\n return this.input.slice(this.p, this.N)\n }\n\n advance (step = 1) {\n this.p += step\n }\n\n end () {\n return this.p >= this.N\n }\n read () {\n return this.input[this.p++]\n }\n readTo (end: string): number {\n while (this.p < this.N) {\n ++this.p\n if (this.rmatch(end)) return this.p\n }\n return -1\n }\n\n readValue (): ValueToken | undefined {\n this.skipBlank()\n const begin = this.p\n const variable = this.readLiteral() || this.readQuoted() || this.readRange() || this.readNumber()\n const props = this.readProperties(!variable)\n if (!props.length) return variable\n return new PropertyAccessToken(variable, props, this.input, begin, this.p)\n }\n\n readScopeValue (): ValueToken | undefined {\n this.skipBlank()\n const begin = this.p\n const props = this.readProperties()\n if (!props.length) return undefined\n return new PropertyAccessToken(undefined, props, this.input, begin, this.p)\n }\n\n private readProperties (isBegin = true): (ValueToken | IdentifierToken)[] {\n const props: (ValueToken | IdentifierToken)[] = []\n while (true) {\n if (this.peek() === '[') {\n this.p++\n const prop = this.readValue() || new IdentifierToken(this.input, this.p, this.p, this.file)\n this.assert(this.readTo(']') !== -1, '[ not closed')\n props.push(prop)\n continue\n }\n if (isBegin && !props.length) {\n const prop = this.readNonEmptyIdentifier()\n if (prop) {\n props.push(prop)\n continue\n }\n }\n if (this.peek() === '.' && this.peek(1) !== '.') { // skip range syntax\n this.p++\n const prop = this.readNonEmptyIdentifier()\n if (!prop) break\n props.push(prop)\n continue\n }\n break\n }\n return props\n }\n\n readNumber (): NumberToken | undefined {\n this.skipBlank()\n let decimalFound = false\n let digitFound = false\n let n = 0\n if (this.peekType() & SIGN) n++\n while (this.p + n <= this.N) {\n if (this.peekType(n) & NUMBER) {\n digitFound = true\n n++\n } else if (this.peek(n) === '.' && this.peek(n + 1) !== '.') {\n if (decimalFound || !digitFound) return\n decimalFound = true\n n++\n } else break\n }\n if (digitFound && !isWord(this.peek(n))) {\n const num = new NumberToken(this.input, this.p, this.p + n, this.file)\n this.advance(n)\n return num\n }\n }\n\n readLiteral (): LiteralToken | undefined {\n this.skipBlank()\n const end = this.matchTrie(this.literalTrie)\n if (end === -1) return\n const literal = new LiteralToken(this.input, this.p, end, this.file)\n this.p = end\n return literal\n }\n\n readRange (): RangeToken | undefined {\n this.skipBlank()\n const begin = this.p\n if (this.peek() !== '(') return\n ++this.p\n const lhs = this.readValueOrThrow()\n this.skipBlank()\n this.assert(this.read() === '.' && this.read() === '.', 'invalid range syntax')\n const rhs = this.readValueOrThrow()\n this.skipBlank()\n this.assert(this.read() === ')', 'invalid range syntax')\n return new RangeToken(this.input, begin, this.p, lhs, rhs, this.file)\n }\n\n readValueOrThrow (): ValueToken {\n const value = this.readValue()\n this.assert(value, () => `unexpected token ${this.snapshot()}, value expected`)\n return value!\n }\n\n readQuoted (): QuotedToken | undefined {\n this.skipBlank()\n const begin = this.p\n if (!(this.peekType() & QUOTE)) return\n ++this.p\n let escaped = false\n while (this.p < this.N) {\n ++this.p\n if (this.input[this.p - 1] === this.input[begin] && !escaped) break\n if (escaped) escaped = false\n else if (this.input[this.p - 1] === '\\\\') escaped = true\n }\n return new QuotedToken(this.input, begin, this.p, this.file)\n }\n\n * readFileNameTemplate (options: NormalizedFullOptions): IterableIterator<TopLevelToken> {\n const { outputDelimiterLeft } = options\n const htmlStopStrings = [',', ' ', outputDelimiterLeft]\n const htmlStopStringSet = new Set(htmlStopStrings)\n // break on ',' and ' ', outputDelimiterLeft only stops HTML token\n while (this.p < this.N && !htmlStopStringSet.has(this.peek())) {\n yield this.match(outputDelimiterLeft)\n ? this.readOutputToken(options)\n : this.readHTMLToken(htmlStopStrings)\n }\n }\n\n match (word: string) {\n for (let i = 0; i < word.length; i++) {\n if (word[i] !== this.input[this.p + i]) return false\n }\n return true\n }\n\n rmatch (pattern: string) {\n for (let i = 0; i < pattern.length; i++) {\n if (pattern[pattern.length - 1 - i] !== this.input[this.p - 1 - i]) return false\n }\n return true\n }\n\n peekType (n = 0) {\n return this.p + n >= this.N ? 0 : TYPES[this.input.charCodeAt(this.p + n)]\n }\n\n peek (n = 0): string {\n return this.p + n >= this.N ? '' : this.input[this.p + n]\n }\n\n skipBlank () {\n while (this.peekType() & BLANK) ++this.p\n }\n}\n","import { Token, TopLevelToken } from '../tokens'\nimport { Template } from '../template'\nimport { isTagToken } from '../util'\n\ntype ParseToken<T extends Token> = ((token: T, remainTokens: T[]) => Template)\n\nexport class ParseStream<T extends Token = TopLevelToken> {\n private tokens: T[]\n private handlers: Record<string, (arg: any) => void> = {}\n private stopRequested = false\n private parseToken: ParseToken<T>\n\n public constructor (tokens: T[], parseToken: ParseToken<T>) {\n this.tokens = tokens\n this.parseToken = parseToken\n }\n public on<T2 extends Template | T | undefined> (name: string, cb: (this: ParseStream, arg: T2) => void): ParseStream<T> {\n this.handlers[name] = cb\n return this\n }\n private trigger <T extends Token | Template> (event: string, arg?: T) {\n const h = this.handlers[event]\n return h ? (h.call(this, arg), true) : false\n }\n public start () {\n this.trigger('start')\n let token: T | undefined\n while (!this.stopRequested && (token = this.tokens.shift())) {\n if (this.trigger('token', token)) continue\n if (isTagToken(token) && this.trigger(`tag:${token.name}`, token)) {\n continue\n }\n const template = this.parseToken(token, this.tokens)\n this.trigger('template', template)\n }\n if (!this.stopRequested) this.trigger('end')\n return this\n }\n public stop () {\n this.stopRequested = true\n return this\n }\n}\n","export abstract class TemplateImpl<T> {\n public token: T;\n public constructor (token: T) {\n this.token = token\n }\n}\n","import { TemplateImpl } from './template-impl'\nimport type { Emitter } from '../emitters/emitter'\nimport type { Parser, Tokenizer } from '../parser'\nimport type { Context } from '../context/context'\nimport type { TopLevelToken, TagToken } from '../tokens'\nimport type { Template } from './template'\nimport type { Liquid } from '../liquid'\n\nexport type TagRenderReturn = Generator<unknown, unknown, unknown> | Promise<unknown> | unknown\n\nexport abstract class Tag extends TemplateImpl<TagToken> implements Template {\n public name: string\n public liquid: Liquid\n protected tokenizer: Tokenizer\n\n public constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(token)\n this.name = token.name\n this.liquid = liquid\n this.tokenizer = token.tokenizer\n }\n public abstract render (ctx: Context, emitter: Emitter): TagRenderReturn;\n}\n\nexport interface TagClass {\n new(token: TagToken, tokens: TopLevelToken[], liquid: Liquid, parser: Parser): Tag\n}\n","import { evalToken } from '../render/expression'\nimport { Context } from '../context/context'\nimport { Tokenizer } from '../parser/tokenizer'\nimport { Token } from '../tokens/token'\n\ntype HashValueTokens = Record<string, Token | undefined>\n\n/**\n * Key-Value Pairs Representing Tag Arguments\n * Example:\n * For the markup `, foo:'bar', coo:2 reversed %}`,\n * hash['foo'] === 'bar'\n * hash['coo'] === 2\n * hash['reversed'] === undefined\n */\nexport class Hash {\n hash: HashValueTokens = {}\n\n constructor (input: string | Tokenizer, jekyllStyle?: boolean | string) {\n const tokenizer = input instanceof Tokenizer ? input : new Tokenizer(input, {})\n for (const hash of tokenizer.readHashes(jekyllStyle)) {\n this.hash[hash.name.content] = hash.value\n }\n }\n\n * render (ctx: Context): Generator<unknown, Record<string, any>, unknown> {\n const hash = {}\n for (const key of Object.keys(this.hash)) {\n hash[key] = this.hash[key] === undefined ? true : yield evalToken(this.hash[key], ctx)\n }\n return hash\n }\n}\n","import { isFunction } from '../util'\nimport { Hash } from './hash'\nimport { Tag, TagClass, TagRenderReturn } from './tag'\nimport { TagToken, TopLevelToken } from '../tokens'\nimport { Emitter } from '../emitters'\nimport { Context } from '../context'\nimport type { Liquid } from '../liquid'\n\nexport interface TagImplOptions {\n [key: string]: any\n parse?: (this: Tag & TagImplOptions, token: TagToken, remainingTokens: TopLevelToken[]) => void;\n render: (this: Tag & TagImplOptions, ctx: Context, emitter: Emitter, hash: Record<string, any>) => TagRenderReturn;\n}\n\nexport function createTagClass (options: TagImplOptions): TagClass {\n return class extends Tag {\n constructor (token: TagToken, tokens: TopLevelToken[], liquid: Liquid) {\n super(token, tokens, liquid)\n if (isFunction(options.parse)) {\n options.parse.call(this, token, tokens)\n }\n }\n * render (ctx: Context, emitter: Emitter): TagRenderReturn {\n const hash = (yield new Hash(this.token.args, ctx.opts.keyValueSeparator).render(ctx)) as Record<string, any>\n return yield options.render.call(this, ctx, emitter, hash)\n }\n }\n}\n","import { isArray } from '../util/underscore'\nimport { ValueToken } from '../tokens/value-token'\n\ntype KeyValuePair = [string?, ValueToken?]\n\nexport type FilterArg = ValueToken | KeyValuePair\n\nexport function isKeyValuePair (arr: FilterArg): arr is KeyValuePair {\n return isArray(arr)\n}\n","import { evalToken } from '../render'\nimport { Context } from '../context'\nimport { identify, isFunction } from '../util/underscore'\nimport { FilterHandler, FilterImplOptions } from './filter-impl-options'\nimport { FilterArg, isKeyValuePair } from '../parser/filter-arg'\nimport { Liquid } from '../liquid'\nimport { FilterToken } from '../tokens'\n\nexport class Filter {\n public name: string\n public args: FilterArg[]\n public readonly raw: boolean\n private handler: FilterHandler\n private liquid: Liquid\n private token: FilterToken\n\n public constructor (token: FilterToken, options: FilterImplOptions | undefined, liquid: Liquid) {\n this.token = token\n this.name = token.name\n this.handler = isFunction(options)\n ? options\n : (isFunction(options?.handler) ? options!.handler : identify)\n this.raw = !isFunction(options) && !!options?.raw\n this.args = token.args\n this.liquid = liquid\n }\n public * render (value: any, context: Context): IterableIterator<unknown> {\n const argv: any[] = []\n for (const arg of this.args as FilterArg[]) {\n if (isKeyValuePair(arg)) argv.push([arg[0], yield evalToken(arg[1], context)])\n else argv.push(yield evalToken(arg, context))\n }\n return yield this.handler.apply({ context, token: this.token, liquid: this.liquid }, [value, ...argv])\n }\n}\n","import { Filter } from './filter'\nimport { Expression } from '../render'\nimport { Tokenizer } from '../parser'\nimport { assert } from '../util'\nimport type { FilteredValueToken } from '../tokens'\nimport type { Liquid } from '../liquid'\nimport type { Context } from '../context'\n\nexport class Value {\n public readonly filters: Filter[] = []\n public readonly initial: Expression\n\n /**\n * @param str the value to be valuated, eg.: \"foobar\" | truncate: 3\n */\n public constructor (input: string | FilteredValueToken, liquid: Liquid) {\n const token: FilteredValueToken = typeof input === 'string'\n ? new Tokenizer(input, liquid.options.operators).readFilteredValue()\n : input\n this.initial = token.initial\n this.filters = token.filters.map(token => new Filter(token, this.getFilter(liquid, token.name), liquid))\n }\n\n public * value (ctx: Context, lenient?: boolean): Generator<unknown, unknown, unknown> {\n lenient = lenient || (ctx.opts.lenientIf && this.filters.length > 0 && this.filters[0].name === 'default')\n let val = yield this.initial.evaluate(ctx, lenient)\n\n for (const filter of this.filters) {\n val = yield filter.render(val, ctx)\n }\n return val\n }\n\n private getFilter (liquid: Liquid, name: string) {\n const impl = liquid.filters[name]\n assert(impl || !liquid.options.strictFilters, () => `undefined filter: ${name}`)\n return impl\n }\n}\n","import { Value } from './value'\nimport { Arguments, Template, TemplateImpl } from '../template'\nimport { Context } from '../context/context'\nimport { Emitter } from '../emitters/emitter'\nimport { OutputToken } from '../tokens/output-token'\nimport { Tokenizer } from '../parser'\nimport { Liquid } from '../liquid'\nimport { Filter } from './filter'\nimport { FilterToken } from '../tokens'\n\nexport class Output extends TemplateImpl<OutputToken> implements Template {\n value: Value\n public constructor (token: OutputToken, liquid: Liquid) {\n super(token)\n const tokenizer = new Tokenizer(token.input, liquid.options.operators, token.file, token.contentRange)\n this.value = new Value(tokenizer.readFilteredValue(), liquid)\n const filters = this.value.filters\n const outputEscape = liquid.options.outputEscape\n if (!filters[filters.length - 1]?.raw && outputEscape) {\n const token = new FilterToken(toString.call(outputEscape), [], '', 0, 0)\n filters.push(new Filter(token, outputEscape, liquid))\n }\n }\n public * render (ctx: Context, emitter: Emitter): IterableIterator<unknown> {\n const val = yield this.value.value(ctx, false)\n emitter.write(val)\n }\n\n public * arguments (): Arguments {\n yield this.value\n }\n}\n","import { TemplateImpl, Template } from '../template'\nimport { HTMLToken } from '../tokens'\nimport { Context } from '../context'\nimport { Emitter } from '../emitters'\n\nexport class HTML extends TemplateImpl<HTMLToken> implements Template {\n private str: string\n public constructor (token: HTMLToken) {\n super(token)\n this.str = token.getContent()\n }\n public * render (ctx: Context, emitter: Emitter): IterableIterator<void> {\n emitter.write(this.str)\n }\n}\n","import { Argument, Template, Value } from '.'\nimport { isKeyValuePair } from '../parser/filter-arg'\nimport { PropertyAccessToken, ValueToken } from '../tokens'\nimport {\n isNumberToken,\n isPropertyAccessToken,\n isQuotedToken,\n isRangeToken,\n isString,\n isValueToken,\n isWordToken,\n toPromise,\n toValueSync\n} from '../util'\n\n/**\n * Row, column and file name where a variable was found.\n */\nexport interface VariableLocation {\n row: number;\n col: number;\n file?: string;\n}\n\n/**\n * A variable's segments as an array, possibly with nested arrays of segments.\n */\nexport type SegmentArray = Array<string | number | SegmentArray>\n\n/**\n * A variable's segments and location, which can be coerced to a string.\n */\nexport class Variable {\n constructor (\n readonly segments: Array<string | number | Variable>,\n readonly location: VariableLocation\n ) {}\n\n public toString (): string {\n return segmentsString(this.segments, true)\n }\n\n /** Return this variable's segments as an array, possibly with nested arrays for nested paths. */\n public toArray (): SegmentArray {\n function * _visit (...segments: Array<string | number | Variable>): Generator<string | number | SegmentArray> {\n for (const segment of segments) {\n if (segment instanceof Variable) {\n yield Array.from(_visit(...segment.segments))\n } else {\n yield segment\n }\n }\n }\n return Array.from(_visit(...this.segments))\n }\n}\n\n/**\n * Property names and array indexes that make up a path to a variable.\n */\nexport type VariableSegments = Array<string | number | Variable>;\n\n/**\n * A mapping of variable names to an array of locations at which the variable was found.\n */\nexport type Variables = { [key: string]: Variable[] };\n\n/**\n * Group variables by the string representation of their root segment.\n */\nexport class VariableMap {\n private map: Map<string, Variable[]>\n\n constructor () {\n this.map = new Map()\n }\n\n public get (key: Variable): Variable[] {\n const k = segmentsString([key.segments[0]])\n if (!this.map.has(k)) {\n this.map.set(k, [])\n }\n return this.map.get(k) as Variable[]\n }\n\n public has (key: Variable): boolean {\n return this.map.has(segmentsString([key.segments[0]]))\n }\n\n public push (variable: Variable): void {\n this.get(variable).push(variable)\n }\n\n public asObject (): Variables {\n return Object.fromEntries(this.map)\n }\n}\n\n/**\n * The result of calling `analyze()` or `analyzeSync()`.\n */\nexport interface StaticAnalysis {\n /**\n * All variables, whether they are in scope or not. Including references to names\n * such as `forloop` from the `for` tag.\n */\n variables: Variables;\n\n /**\n * Variables that are not in scope. These could be a \"global\" variables that are\n * expected to be provided by the application developer, or possible mistakes\n * from the template author.\n *\n * If a variable is referenced before and after assignment, you should expect\n * that variable to be included in `globals`, `variables` and `locals`, each with\n * a different location.\n */\n globals: Variables;\n\n /**\n * Template variables that are added to the template local scope using tags like\n * `assign`, `capture` or `increment`.\n */\n locals: Variables;\n}\n\nexport interface StaticAnalysisOptions {\n /**\n * When `true` (the default), try to load partial templates and analyze them too.\n */\n partials?: boolean;\n}\n\nexport const defaultStaticAnalysisOptions: StaticAnalysisOptions = {\n partials: true\n}\n\nfunction * _analyze (templates: Template[], partials: boolean, sync: boolean): Generator<unknown, StaticAnalysis> {\n const variables = new VariableMap()\n const globals = new VariableMap()\n const locals = new VariableMap()\n\n const rootScope = new DummyScope(new Set())\n\n // Names of partial templates that we've already analyzed.\n const seen: Set<string | undefined> = new Set()\n\n function updateVariables (variable: Variable, scope: DummyScope) {\n variables.push(variable)\n const aliased = scope.alias(variable)\n\n if (aliased !== undefined) {\n const root = aliased.segments[0]\n // TODO: What if a a template renders a rendered template? Do we need scope.parent?\n if (isString(root) && !rootScope.has(root)) {\n globals.push(aliased)\n }\n } else {\n const root = variable.segments[0]\n if (isString(root) && !scope.has(root)) {\n globals.push(variable)\n }\n }\n\n // Recurse for nested Variables\n for (const segment of variable.segments) {\n if (segment instanceof Variable) {\n updateVariables(segment, scope)\n }\n }\n }\n\n function * visit (template: Template, scope: DummyScope): Generator<unknown, void> {\n if (template.arguments) {\n for (const arg of template.arguments()) {\n for (const variable of extractVariables(arg)) {\n updateVariables(variable, scope)\n }\n }\n }\n\n if (template.localScope) {\n for (const ident of template.localScope()) {\n scope.add(ident.content)\n scope.deleteAlias(ident.content)\n const [row, col] = ident.getPosition()\n locals.push(new Variable([ident.content], { row, col, file: ident.file }))\n }\n }\n\n if (template.children) {\n if (template.partialScope) {\n const partial = template.partialScope()\n\n if (partial === undefined) {\n // Layouts, for example, can have children that are not partials.\n for (const child of (yield template.children(partials, sync)) as Template[]) {\n yield visit(child, scope)\n }\n return\n }\n\n if (seen.has(partial.name)) return\n\n const partialScopeNames: Set<string> = new Set()\n const partialScope = partial.isolated\n ? new DummyScope(partialScopeNames)\n : scope.push(partialScopeNames)\n\n for (const name of partial.scope) {\n if (isString(name)) {\n partialScopeNames.add(name)\n } else {\n const [alias, argument] = name\n partialScopeNames.add(alias)\n const variables = Array.from(extractVariables(argument))\n if (variables.length) {\n partialScope.setAlias(alias, variables[0].segments)\n }\n }\n }\n\n for (const child of (yield template.children(partials, sync)) as Template[]) {\n yield visit(child, partialScope)\n seen.add(partial.name)\n }\n\n partialScope.pop()\n } else {\n if (template.blockScope) {\n scope.push(new Set(template.blockScope()))\n }\n\n for (const child of (yield template.children(partials, sync)) as Template[]) {\n yield visit(child, scope)\n }\n\n if (template.blockScope) {\n scope.pop()\n }\n }\n }\n }\n\n for (const template of templates) {\n yield visit(template, rootScope)\n }\n\n return {\n variables: variables.asObject(),\n globals: globals.asObject(),\n locals: locals.asObject()\n }\n}\n\n/**\n * Statically analyze a template and report variable usage.\n */\nexport function analyze (template: Template[], options: StaticAnalysisOptions = {}): Promise<StaticAnalysis> {\n const opts = { ...defaultStaticAnalysisOptions, ...options } as Required<StaticAnalysisOptions>\n return toPromise(_analyze(template, opts.partials, false))\n}\n\n/**\n * Statically analyze a template and report variable usage.\n */\nexport function analyzeSync (template: Template[], options: StaticAnalysisOptions = {}): StaticAnalysis {\n const opts = { ...defaultStaticAnalysisOptions, ...options } as Required<StaticAnalysisOptions>\n return toValueSync(_analyze(template, opts.partials, true))\n}\n\ninterface ScopeStackItem {\n names: Set<string>;\n aliases: Map<string, VariableSegments>;\n}\n\n/**\n * A stack to manage scopes while traversing templates during static analysis.\n */\nclass DummyScope {\n private stack: Array<ScopeStackItem>\n\n constructor (globals: Set<string>) {\n this.stack = [{ names: globals, aliases: new Map() }]\n }\n\n /** Return true if `name` is in scope. */\n public has (name: string): boolean {\n for (const scope of this.stack) {\n if (scope.names.has(name)) {\n return true\n }\n }\n return false\n }\n\n public push (scope: Set<string>): DummyScope {\n this.stack.push({ names: scope, aliases: new Map() })\n return this\n }\n\n public pop (): Set<string> | undefined {\n return this.stack.pop()?.names\n }\n\n // Add a name to the template scope.\n public add (name: string): void {\n this.stack[0].names.add(name)\n }\n\n /** Return the variable that `variable` aliases, or `variable` if it doesn't alias anything. */\n public alias (variable: Variable): Variable | undefined {\n const root = variable.segments[0]\n if (!isString(root)) return undefined\n const alias = this.getAlias(root)\n if (alias === undefined) return undefined\n return new Variable([...alias, ...variable.segments.slice(1)], variable.location)\n }\n\n // TODO: `from` could be a path with multiple segments, like `include.x`.\n public setAlias (from: string, to: VariableSegments): void {\n this.stack[this.stack.length - 1].aliases.set(from, to)\n }\n\n public deleteAlias (name: string): void {\n this.stack[this.stack.length - 1].aliases.delete(name)\n }\n\n private getAlias (name: string): VariableSegments | undefined {\n for (const scope of this.stack) {\n if (scope.aliases.has(name)) {\n return scope.aliases.get(name)\n }\n\n // If a scope has defined `name`, then it masks aliases in parent scopes.\n if (scope.names.has(name)) {\n return undefined\n }\n }\n return undefined\n }\n}\n\nfunction * extractVariables (value: Argument): Generator<Variable> {\n if (isValueToken(value)) {\n yield * extractValueTokenVariables(value)\n } else if (value instanceof Value) {\n yield * extractFilteredValueVariables(value)\n }\n}\n\nfunction * extractFilteredValueVariables (value: Value): Generator<Variable> {\n for (const token of value.initial.postfix) {\n if (isValueToken(token)) {\n yield * extractValueTokenVariables(token)\n }\n }\n\n for (const filter of value.filters) {\n for (const arg of filter.args) {\n if (isKeyValuePair(arg) && arg[1]) {\n yield * extractValueTokenVariables(arg[1])\n } else if (isValueToken(arg)) {\n yield * extractValueTokenVariables(arg)\n }\n }\n }\n}\n\nfunction * extractValueTokenVariables (token: ValueToken): Generator<Variable> {\n if (isRangeToken(token)) {\n yield * extractValueTokenVariables(token.lhs)\n yield * extractValueTokenVariables(token.rhs)\n } else if (isPropertyAccessToken(token)) {\n yield extractPropertyAccessVariable(token)\n }\n}\n\nfunction extractPropertyAccessVariable (token: PropertyAccessToken): Variable {\n const segments: VariableSegments = []\n\n // token is not guaranteed to have `file` set. We'll try to get it from a prop if not.\n let file: string | undefined = token.file\n\n // Here we're flattening the first segment of a path if it is a nested path.\n const root = token.props[0]\n file = file || root.file\n if (isQuotedToken(root) || isNumberToken(root) || isWordToken(root)) {\n segments.push(root.content)\n } else if (isPropertyAccessToken(root)) {\n // Flatten paths that start with a nested path.\n segments.push(...extractPropertyAccessVariable(root).segments)\n }\n\n for (const prop of token.props.slice(1)) {\n file = file || prop.file\n if (isQuotedToken(prop) || isNumberToken(prop) || isWordToken(prop)) {\n segments.push(prop.content)\n } else if (isPropertyAccessToken(prop)) {\n segments.push(extractPropertyAccessVariable(prop))\n }\n }\n\n const [row, col] = token.getPosition()\n return new Variable(segments, {\n row,\n col,\n file\n })\n}\n\n// This is used to detect segments that can be represented with dot notation\n// when creating a string representation of VariableSegments.\nconst RE_PROPERTY = /^[\\u0080-\\uFFFFa-zA-Z_][\\u0080-\\uFFFFa-zA-Z0-9_-]*$/\n\n/**\n * Return a string representation of segments using dot notation where possible.\n * @param segments - The property names and array indices that make up a path to a variable.\n * @param bracketedRoot - If false (the default), don't surround the root segment with square brackets.\n */\nfunction segmentsString (segments: VariableSegments, bracketedRoot = false): string {\n const buf: string[] = []\n\n const root = segments[0]\n if (isString(root)) {\n if (!bracketedRoot || root.match(RE_PROPERTY)) {\n buf.push(`${root}`)\n } else {\n buf.push(`['${root}']`)\n }\n }\n\n for (const segment of segments.slice(1)) {\n if (segment instanceof Variable) {\n buf.push(`[${segmentsString(segment.segments)}]`)\n } else if (isString(segment)) {\n if (segment.match(RE_PROPERTY)) {\n buf.push(`.${segment}`)\n } else {\n buf.push(`['${segment}']`)\n }\n } else {\n buf.push(`[${segment}]`)\n }\n }\n\n return buf.join('')\n}\n","import { FS } from './fs'\nimport { assert, escapeRegex } from '../util'\n\nexport interface LoaderOptions {\n fs: FS;\n extname: string;\n root: string[];\n partials: string[];\n layouts: string[];\n relativeReference: boolean;\n}\nexport enum LookupType {\n Partials = 'partials',\n Layouts = 'layouts',\n Root = 'root'\n}\nexport class Loader {\n public shouldLoadRelative: (referencedFile: string) => boolean\n private options: LoaderOptions\n private contains: (root: string, file: string) => boolean\n\n constructor (options: LoaderOptions) {\n this.options = options\n if (options.relativeReference) {\n const sep = options.fs.sep\n assert(sep, '`fs.sep` is required for relative reference')\n const rRelativePath = new RegExp(['.' + sep, '..' + sep, './', '../'].map(prefix => escapeRegex(prefix)).join('|'))\n this.shouldLoadRelative = (referencedFile: string) => rRelativePath.test(referencedFile)\n } else {\n this.shouldLoadRelative = (_referencedFile: string) => false\n }\n this.contains = this.options.fs.contains || (() => true)\n }\n\n public * lookup (file: string, type: LookupType, sync?: boolean, currentFile?: string): Generator<unknown, string, string> {\n const { fs } = this.options\n const dirs = this.options[type]\n for (const filepath of this.candidates(file, dirs, currentFile, type !== LookupType.Root)) {\n if (sync ? fs.existsSync(filepath) : yield fs.exists(filepath)) return filepath\n }\n throw this.lookupError(file, dirs)\n }\n\n public * candidates (file: string, dirs: string[], currentFile?: string, enforceRoot?: boolean) {\n const { fs, extname } = this.options\n if (this.shouldLoadRelative(file) && currentFile) {\n const referenced = fs.resolve(this.dirname(currentFile), file, extname)\n for (const dir of dirs) {\n if (!enforceRoot || this.contains(dir, referenced)) {\n // the relatively referenced file is within one of root dirs\n yield referenced\n break\n }\n }\n }\n for (const dir of dirs) {\n const referenced = fs.resolve(dir, file, extname)\n if (!enforceRoot || this.contains(dir, referenced)) {\n yield referenced\n }\n }\n if (fs.fallback !== undefined) {\n const filepath = fs.fallback(file)\n if (filepath !== undefined) yield filepath\n }\n }\n\n private dirname (path: string) {\n const fs = this.options.fs\n assert(fs.dirname, '`fs.dirname` is required for relative reference')\n return fs.dirname!(path)\n }\n\n private lookupError (file: string, roots: string[]) {\n const err = new Error('ENOENT') as any\n err.message = `ENOENT: Failed to lookup \"${file}\" in \"${roots}\"`\n err.code = 'ENOENT'\n return err\n }\n}\n","import { Limiter, toPromise, assert, isTagToken, isOutputToken, ParseError } from '../util'\nimport { Tokenizer } from './tokenizer'\nimport { ParseStream } from './parse-stream'\nimport { TopLevelToken, OutputToken } from '../tokens'\nimport { Template, Output, HTML } from '../template'\nimport { LiquidCache } from '../cache'\nimport { FS, Loader, LookupType } from '../fs'\nimport { LiquidError, LiquidErrors } from '../util/error'\nimport type { Liquid } from '../liquid'\n\nexport class Parser {\n public parseFile: (file: string, sync?: boolean, type?: LookupType, currentFile?: string) => Generator<unknown, Template[], Template[] | string>\n\n private liquid: Liquid\n private fs: FS\n private cache?: LiquidCache\n private loader: Loader\n private parseLimit: Limiter\n\n public constructor (liquid: Liquid) {\n this.liquid = liquid\n this.cache = this.liquid.options.cache\n this.fs = this.liquid.options.fs\n this.parseFile = this.cache ? this._parseFileCached : this._parseFile\n this.loader = new Loader(this.liquid.options)\n this.parseLimit = new Limiter('parse length', liquid.options.parseLimit)\n }\n public parse (html: string, filepath?: string): Template[] {\n html = String(html)\n this.parseLimit.use(html.length)\n const tokenizer = new Tokenizer(html, this.liquid.options.operators, filepath)\n const tokens = tokenizer.readTopLevelTokens(this.liquid.options)\n return this.parseTokens(tokens)\n }\n public parseTokens (tokens: TopLevelToken[]) {\n let token\n const templates: Template[] = []\n const errors: LiquidError[] = []\n while ((token = tokens.shift())) {\n try {\n templates.push(this.parseToken(token, tokens))\n } catch (err) {\n if (this.liquid.options.catchAllErrors) errors.push(err as LiquidError)\n else throw err\n }\n }\n if (errors.length) throw new LiquidErrors(errors)\n return templates\n }\n public parseToken (token: TopLevelToken, remainTokens: TopLevelToken[]) {\n try {\n if (isTagToken(token)) {\n const TagClass = this.liquid.tags[token.name]\n assert(TagClass, `tag \"${token.name}\" not found`)\n return new TagClass(token, remainTokens, this.liquid, this)\n }\n if (isOutputToken(token)) {\n return new Output(token as OutputToken, this.liquid)\n }\n return new HTML(token)\n } catch (e) {\n if (LiquidError.is(e)) throw e\n throw new ParseError(e as Error, token)\n }\n }\n public parseStream (tokens: TopLevelToken[]) {\n return new ParseStream(tokens, (token, tokens) => this.parseToken(token, tokens))\n }\n private * _parseFileCached (file: string, sync?: boolean, type: LookupType = LookupType.Root, currentFile?: string): Generator<unknown, Template[], Template[]> {\n const cache = this.cache!\n const key = this.loader.shouldLoadRelative(file) ? currentFile + ',' + file : type + ':' + file\n const tpls = yield cache.read(key)\n if (tpls) return tpls\n\n const task = this._parseFile(file, sync, type, currentFile)\n // sync mode: exec the task and cache the result\n // async mode: cache the task before exec\n const taskOrTpl = sync ? yield task : toPromise(task)\n cache.write(key, taskOrTpl as any)\n // note: concurrent tasks will be reused, cache for failed task is removed until its end\n try { return yield taskOrTpl } catch (err) { cache.remove(key); throw err }\n }\n private * _parseFile (file: string, sync?: boolean, type: LookupType = LookupType.Root, currentFile?: string): Generator<unknown, Template[], string> {\n const filepath = yield this.loader.lookup(file, type, sync, currentFile)\n return this.parse(sync ? this.fs.readFileSync(filepath) : yield this.fs.readFile(filepath), filepath)\n }\n}\n","export enum TokenKind {\n Number = 1,\n Literal = 2,\n Tag = 4,\n Output = 8,\n HTML = 16,\n Filter = 32,\n Hash = 64,\n PropertyAccess = 128,\n Word = 256,\n Range = 512,\n Quoted = 1024,\n Operator = 2048,\n FilteredValue = 4096,\n Delimited = Tag | Output\n}\n","import { RangeToken, NumberToken, QuotedToken, LiteralToken, PropertyAccessToken, OutputToken, HTMLToken, TagToken, IdentifierToken, DelimitedToken, OperatorToken, ValueToken } from '../tokens'\nimport { TokenKind } from '../parser'\n\nexport function isDelimitedToken (val: any): val is DelimitedToken {\n return !!(getKind(val) & TokenKind.Delimited)\n}\n\nexport function isOperatorToken (val: any): val is OperatorToken {\n return getKind(val) === TokenKind.Operator\n}\n\nexport function isHTMLToken (val: any): val is HTMLToken {\n return getKind(val) === TokenKind.HTML\n}\n\nexport function isOutputToken (val: any): val is OutputToken {\n return getKind(val) === TokenKind.Output\n}\n\nexport function isTagToken (val: any): val is TagToken {\n return getKind(val) === TokenKind.Tag\n}\n\nexport function isQuotedToken (val: any): val is QuotedToken {\n return getKind(val) === TokenKind.Quoted\n}\n\nexport function isLiteralToken (val: any): val is LiteralToken {\n return getKind(val) === TokenKind.Literal\n}\n\nexport function isNumberToken (val: any): val is NumberToken {\n return getKind(val) === TokenKind.Number\n}\n\nexport function isPropertyAccessToken (val: any): val is PropertyAccessToken {\n return getKind(val) === TokenKind.PropertyAccess\n}\n\nexport function isWordToken (val: any): val is IdentifierToken {\n return getKind(val) === TokenKind.Word\n}\n\nexport function isRangeToken (val: any): val is RangeToken {\n return getKind(val) === TokenKind.Range\n}\n\nexport function isValueToken (val: any): val is ValueToken {\n // valueTokenBitMask = TokenKind.Number | TokenKind.Literal | TokenKind.Quoted | TokenKind.PropertyAccess | TokenKind.Range\n return (getKind(val) & 1667) > 0\n}\n\nfunction getKind (val: any) {\n return val ? val.kind : -1\n}\n","import { getPerformance } from '../util/performance'\nimport { Drop } from '../drop/drop'\nimport { __assign } from 'tslib'\nimport { NormalizedFullOptions, defaultOptions, RenderOptions } from '../liquid-options'\nimport { Scope } from './scope'\nimport { hasOwnProperty, isArray, isNil, isUndefined, isString, isFunction, toLiquid, InternalUndefinedVariableError, toValueSync, isObject, Limiter, toValue } from '../util'\n\ntype PropertyKey = string | number;\n\nexport class Context {\n /**\n * insert a Context-level empty scope,\n * for tags like `{% capture %}` `{% assign %}` to operate\n */\n private scopes: Scope[] = [{}]\n private registers = {}\n /**\n * user passed in scope\n * `{% increment %}`, `{% decrement %}` changes this scope,\n * whereas `{% capture %}`, `{% assign %}` only hide this scope\n */\n public environments: Scope\n /**\n * global scope used as fallback for missing variables\n */\n public globals: Scope\n public sync: boolean\n public breakCalled = false\n public continueCalled = false\n /**\n * The normalized liquid options object\n */\n public opts: NormalizedFullOptions\n /**\n * Throw when accessing undefined variable?\n */\n public strictVariables: boolean;\n public ownPropertyOnly: boolean;\n public memoryLimit: Limiter;\n public renderLimit: Limiter;\n public constructor (env: object = {}, opts: NormalizedFullOptions = defaultOptions, renderOptions: RenderOptions = {}, { memoryLimit, renderLimit }: { [key: string]: Limiter } = {}) {\n this.sync = !!renderOptions.sync\n this.opts = opts\n this.globals = renderOptions.globals ?? opts.globals\n this.environments = isObject(env) ? env : Object(env)\n this.strictVariables = renderOptions.strictVariables ?? this.opts.strictVariables\n this.ownPropertyOnly = renderOptions.ownPropertyOnly ?? opts.ownPropertyOnly\n this.memoryLimit = memoryLimit ?? new Limiter('memory alloc', renderOptions.memoryLimit ?? opts.memoryLimit)\n this.renderLimit = renderLimit ?? new Limiter('template render', getPerformance().now() + (renderOptions.renderLimit ?? opts.renderLimit))\n }\n public getRegister (key: string) {\n return (this.registers[key] = this.registers[key] || {})\n }\n public setRegister (key: string, value: any) {\n return (this.registers[key] = value)\n }\n public saveRegister (...keys: string[]): [string, any][] {\n return keys.map(key => [key, this.getRegister(key)])\n }\n public restoreRegister (keyValues: [string, any][]) {\n return keyValues.forEach(([key, value]) => this.setRegister(key, value))\n }\n public getAll () {\n return [this.globals, this.environments, ...this.scopes]\n .reduce((ctx, val) => __assign(ctx, val), {})\n }\n /**\n * @deprecated use `_get()` or `getSync()` instead\n */\n public get (paths: PropertyKey[]): unknown {\n return this.getSync(paths)\n }\n public getSync (paths: PropertyKey[]): unknown {\n return toValueSync(this._get(paths))\n }\n public * _get (paths: (PropertyKey | Drop)[]): IterableIterator<unknown> {\n const scope = this.findScope(paths[0] as string) // first prop should always be a string\n return yield this._getFromScope(scope, paths)\n }\n /**\n * @deprecated use `_get()` instead\n */\n public getFromScope (scope: unknown, paths: PropertyKey[] | string): IterableIterator<unknown> {\n return toValueSync(this._getFromScope(scope, paths))\n }\n public * _getFromScope (scope: unknown, paths: (PropertyKey | Drop)[] | string, strictVariables = this.strictVariables): IterableIterator<unknown> {\n if (isString(paths)) paths = paths.split('.')\n for (let i = 0; i < paths.length; i++) {\n scope = yield this.readProperty(scope as object, paths[i])\n if (strictVariables && isUndefined(scope)) {\n throw new InternalUndefinedVariableError((paths as string[]).slice(0, i + 1).join!('.'))\n }\n }\n return scope\n }\n public push (ctx: object) {\n return this.scopes.push(ctx)\n }\n public pop () {\n return this.scopes.pop()\n }\n public bottom () {\n return this.scopes[0]\n }\n public spawn (scope = {}) {\n return new Context(scope, this.opts, {\n sync: this.sync,\n globals: this.globals,\n strictVariables: this.strictVariables\n }, {\n renderLimit: this.renderLimit,\n memoryLimit: this.memoryLimit\n })\n }\n private findScope (key: string | number) {\n for (let i = this.scopes.length - 1; i >= 0; i--) {\n const candidate = this.scopes[i]\n if (key in candidate) return candidate\n }\n if (key in this.environments) return this.environments\n return this.globals\n }\n readProperty (obj: Scope, key: (PropertyKey | Drop)) {\n obj = toLiquid(obj)\n key = toValue(key) as PropertyKey\n if (isNil(obj)) return obj\n if (isArray(obj) && (key as number) < 0) return obj[obj.length + +key]\n const value = readJSProperty(obj, key, this.ownPropertyOnly)\n if (value === undefined && obj instanceof Drop) return obj.liquidMethodMissing(key, this)\n if (isFunction(value)) return value.call(obj)\n if (key === 'size') return readSize(obj)\n else if (key === 'first') return readFirst(obj)\n else if (key === 'last') return readLast(obj)\n return value\n }\n}\n\nexport function readJSProperty (obj: Scope, key: PropertyKey, ownPropertyOnly: boolean) {\n if (ownPropertyOnly && !hasOwnProperty.call(obj, key) && !(obj instanceof Drop)) return undefined\n return obj[key]\n}\n\nfunction readFirst (obj: Scope) {\n if (isArray(obj)) return obj[0]\n return obj['first']\n}\n\nfunction readLast (obj: Scope) {\n if (isArray(obj)) return obj[obj.length - 1]\n return obj['last']\n}\n\nfunction readSize (obj: Scope) {\n if (hasOwnProperty.call(obj, 'size') || obj['size'] !== undefined) return obj['size']\n if (isArray(obj) || isString(obj)) return obj.length\n if (typeof obj === 'object') return Object.keys(obj).length\n}\n","export enum BlockMode {\n /* store rendered html into blocks */\n OUTPUT,\n /* output rendered html directly */\n STORE\n}\n","import { toNumber, argumentsToNumber } from '../util/underscore'\n\nexport const abs = argumentsToNumber(Math.abs)\nexport const at_least = argumentsToNumber(Math.max)\nexport const at_most = argumentsToNumber(Math.min)\nexport const ceil = argumentsToNumber(Math.ceil)\nexport const divided_by = argumentsToNumber((dividend: number, divisor: number, integerArithmetic = false) => integerArithmetic ? Math.floor(dividend / divisor) : dividend / divisor)\nexport const floor = argumentsToNumber(Math.floor)\nexport const minus = argumentsToNumber((v: number, arg: number) => v - arg)\nexport const plus = argumentsToNumber((lhs: number, rhs: number) => lhs + rhs)\nexport const modulo = argumentsToNumber((v: number, arg: number) => v % arg)\nexport const times = argumentsToNumber((v: number, arg: number) => v * arg)\n\nexport function round (v: number, arg = 0) {\n v = toNumber(v)\n arg = toNumber(arg)\n const amp = Math.pow(10, arg)\n return Math.round(v * amp) / amp\n}\n","import { stringify } from '../util/underscore'\n\nexport const url_decode = (x: string) => decodeURIComponent(stringify(x)).replace(/\\+/g, ' ')\nexport const url_encode = (x: string) => encodeURIComponent(stringify(x)).replace(/%20/g, '+')\nexport const cgi_escape = (x: string) => encodeURIComponent(stringify(x))\n .replace(/%20/g, '+')\n .replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase())\nexport const uri_escape = (x: string) => encodeURI(stringify(x))\n .replace(/%5B/g, '[')\n .replace(/%5D/g, ']')\n\nconst rSlugifyDefault = /[^\\p{M}\\p{L}\\p{Nd}]+/ug\nconst rSlugifyReplacers = {\n 'raw': /\\s+/g,\n 'default': rSlugifyDefault,\n 'pretty': /[^\\p{M}\\p{L}\\p{Nd}._~!$&'()+,;=@]+/ug,\n 'ascii': /[^A-Za-z0-9]+/g,\n 'latin': rSlugifyDefault,\n 'none': null\n}\n\nexport function slugify (str: string, mode: keyof typeof rSlugifyReplacers = 'default', cased = false): string {\n str = stringify(str)\n\n const replacer = rSlugifyReplacers[mode]\n if (replacer) {\n if (mode === 'latin') str = removeAccents(str)\n str = str.replace(replacer, '-').replace(/^-|-$/g, '')\n }\n\n return cased ? str : str.toLowerCase()\n}\n\nfunction removeAccents (str: string): string {\n return str.replace(/[à áâãäå]/g, 'a')\n .replace(/[æ]/g, 'ae')\n .replace(/[ç]/g, 'c')\n .replace(/[èéêë]/g, 'e')\n .replace(/[ìÃîï]/g, 'i')\n .replace(/[ð]/g, 'd')\n .replace(/[ñ]/g, 'n')\n .replace(/[òóôõöø]/g, 'o')\n .replace(/[ùúûü]/g, 'u')\n .replace(/[ýÿ]/g, 'y')\n .replace(/[ß]/g, 'ss')\n .replace(/[Å“]/g, 'oe')\n .replace(/[þ]/g, 'th')\n .replace(/[ẞ]/g, 'SS')\n .replace(/[Å’]/g, 'OE')\n .replace(/[Þ]/g, 'TH')\n}\n","import { toArray, argumentsToValue, toValue, stringify, caseInsensitiveCompare, isArray, isNil, last as arrayLast, isArrayLike, toEnumerable } from '../util'\nimport { arrayIncludes, equals, evalToken, isTruthy } from '../render'\nimport { Value, FilterImpl } from '../template'\nimport { Tokenizer } from '../parser'\nimport type { Scope } from '../context'\nimport { EmptyDrop } from '../drop'\n\nexport const join = argumentsToValue(function (this: FilterImpl, v: any[], arg: string) {\n const array = toArray(v)\n const sep = isNil(arg) ? ' ' : stringify(arg)\n const complexity = array.length * (1 + sep.length)\n this.context.memoryLimit.use(complexity)\n return array.join(sep)\n})\nexport const last = argumentsToValue((v: any) => isArrayLike(v) ? arrayLast(v) : '')\nexport const first = argumentsToValue((v: any) => isArrayLike(v) ? v[0] : '')\nexport const reverse = argumentsToValue(function (this: FilterImpl, v: any[]) {\n const array = toArray(v)\n this.context.memoryLimit.use(array.length)\n return [...array].reverse()\n})\n\nexport function * sort<T> (this: FilterImpl, arr: T[], property?: string): IterableIterator<unknown> {\n const values: [T, string | number][] = []\n const array = toArray(arr)\n this.context.memoryLimit.use(array.length)\n for (const item of array) {\n values.push([\n item,\n property ? yield this.context._getFromScope(item, stringify(property).split('.'), false) : item\n ])\n }\n return values.sort((lhs, rhs) => {\n const lvalue = lhs[1]\n const rvalue = rhs[1]\n return lvalue < rvalue ? -1 : (lvalue > rvalue ? 1 : 0)\n }).map(tuple => tuple[0])\n}\n\nexport function sort_natural<T> (this: FilterImpl, input: T[], property?: string) {\n const propertyString = stringify(property)\n const compare = property === undefined\n ? caseInsensitiveCompare\n : (lhs: T, rhs: T) => caseInsensitiveCompare(lhs[propertyString], rhs[propertyString])\n const array = toArray(input)\n this.context.memoryLimit.use(array.length)\n return [...array].sort(compare)\n}\n\nexport const size = (v: string | any[]) => (v && v.length) || 0\n\nexport function * map (this: FilterImpl, arr: Scope[], property: string): IterableIterator<unknown> {\n const results = []\n const array = toArray(arr)\n this.context.memoryLimit.use(array.length)\n for (const item of array) {\n results.push(yield this.context._getFromScope(item, stringify(property), false))\n }\n return results\n}\n\nexport function * sum (this: FilterImpl, arr: Scope[], property?: string): IterableIterator<unknown> {\n let sum = 0\n const array = toArray(arr)\n for (const item of array) {\n const data = Number(property ? yield this.context._getFromScope(item, stringify(property), false) : item)\n sum += Number.isNaN(data) ? 0 : data\n }\n return sum\n}\n\nexport function compact<T> (this: FilterImpl, arr: T[]) {\n const array = toArray(arr)\n this.context.memoryLimit.use(array.length)\n return array.filter(x => !isNil(toValue(x)))\n}\n\nexport function concat<T1, T2> (this: FilterImpl, v: T1[], arg: T2[] = []): (T1 | T2)[] {\n const lhs = toArray(v)\n const rhs = toArray(arg)\n this.context.memoryLimit.use(lhs.length + rhs.length)\n return lhs.concat(rhs)\n}\n\nexport function push<T> (this: FilterImpl, v: T[], arg: T): T[] {\n return concat.call(this, v, [arg]) as T[]\n}\n\nexport function unshift<T> (this: FilterImpl, v: T[], arg: T): T[] {\n const array = toArray(v)\n this.context.memoryLimit.use(array.length)\n const clone = [...array]\n clone.unshift(arg)\n return clone\n}\n\nexport function pop<T> (v: T[]): T[] {\n const clone = [...toArray(v)]\n clone.pop()\n return clone\n}\n\nexport function shift<T> (this: FilterImpl, v: T[]): T[] {\n const array = toArray(v)\n this.context.memoryLimit.use(array.length)\n const clone = [...array]\n clone.shift()\n return clone\n}\n\nexport function slice<T> (this: FilterImpl, v: T[] | string, begin: number, length = 1): T[] | string {\n v = toValue(v)\n if (isNil(v)) return []\n if (!isArray(v)) v = stringify(v)\n begin = begin < 0 ? v.length + begin : begin\n this.context.memoryLimit.use(length)\n return v.slice(begin, begin + length)\n}\n\nfunction expectedMatcher (this: FilterImpl, expected: any): (v: any) => boolean {\n if (this.context.opts.jekyllWhere) {\n return (v: any) => EmptyDrop.is(expected) ? equals(v, expected) : (isArray(v) ? arrayIncludes(v, expected) : equals(v, expected))\n } else if (expected === undefined) {\n return (v: any) => isTruthy(v, this.context)\n } else {\n return (v: any) => equals(v, expected)\n }\n}\n\nfunction * filter<T extends object> (this: FilterImpl, include: boolean, arr: T[], property: string, expected: any): IterableIterator<unknown> {\n const values: unknown[] = []\n arr = toArray(arr)\n this.context.memoryLimit.use(arr.length)\n const token = new Tokenizer(stringify(property)).readScopeValue()\n for (const item of arr) {\n values.push(yield evalToken(token, this.context.spawn(item)))\n }\n const matcher = expectedMatcher.call(this, expected)\n return arr.filter((_, i) => matcher(values[i]) === include)\n}\n\nfunction * filter_exp<T extends object> (this: FilterImpl, include: boolean, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n const filtered: unknown[] = []\n const keyTemplate = new Value(stringify(exp), this.liquid)\n const array = toArray(arr)\n this.context.memoryLimit.use(array.length)\n for (const item of array) {\n this.context.push({ [itemName]: item })\n const value = yield keyTemplate.value(this.context)\n this.context.pop()\n if (value === include) filtered.push(item)\n }\n return filtered\n}\n\nexport function * where<T extends object> (this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown> {\n return yield * filter.call(this, true, arr, property, expected)\n}\n\nexport function * reject<T extends object> (this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown> {\n return yield * filter.call(this, false, arr, property, expected)\n}\n\nexport function * where_exp<T extends object> (this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n return yield * filter_exp.call(this, true, arr, itemName, exp)\n}\n\nexport function * reject_exp<T extends object> (this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n return yield * filter_exp.call(this, false, arr, itemName, exp)\n}\n\nexport function * group_by<T extends object> (this: FilterImpl, arr: T[], property: string): IterableIterator<unknown> {\n const map = new Map()\n arr = toEnumerable(arr)\n const token = new Tokenizer(stringify(property)).readScopeValue()\n this.context.memoryLimit.use(arr.length)\n for (const item of arr) {\n const key = yield evalToken(token, this.context.spawn(item))\n if (!map.has(key)) map.set(key, [])\n map.get(key).push(item)\n }\n return [...map.entries()].map(([name, items]) => ({ name, items }))\n}\n\nexport function * group_by_exp<T extends object> (this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n const map = new Map()\n const keyTemplate = new Value(stringify(exp), this.liquid)\n arr = toEnumerable(arr)\n this.context.memoryLimit.use(arr.length)\n for (const item of arr) {\n this.context.push({ [itemName]: item })\n const key = yield keyTemplate.value(this.context)\n this.context.pop()\n if (!map.has(key)) map.set(key, [])\n map.get(key).push(item)\n }\n return [...map.entries()].map(([name, items]) => ({ name, items }))\n}\n\nfunction * search<T extends object> (this: FilterImpl, arr: T[], property: string, expected: string): IterableIterator<unknown> {\n const token = new Tokenizer(stringify(property)).readScopeValue()\n const array = toArray(arr)\n const matcher = expectedMatcher.call(this, expected)\n for (let index = 0; index < array.length; index++) {\n const value = yield evalToken(token, this.context.spawn(array[index]))\n if (matcher(value)) return [index, array[index]]\n }\n}\n\nfunction * search_exp<T extends object> (this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n const predicate = new Value(stringify(exp), this.liquid)\n const array = toArray(arr)\n for (let index = 0; index < array.length; index++) {\n this.context.push({ [itemName]: array[index] })\n const value = yield predicate.value(this.context)\n this.context.pop()\n if (value) return [index, array[index]]\n }\n}\n\nexport function * has<T extends object> (this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown> {\n const result = yield * search.call(this, arr, property, expected)\n return !!result\n}\n\nexport function * has_exp<T extends object> (this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n const result = yield * search_exp.call(this, arr, itemName, exp)\n return !!result\n}\n\nexport function * find_index<T extends object> (this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown> {\n const result = yield * search.call(this, arr, property, expected)\n return result ? result[0] : undefined\n}\n\nexport function * find_index_exp<T extends object> (this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n const result = yield * search_exp.call(this, arr, itemName, exp)\n return result ? result[0] : undefined\n}\n\nexport function * find<T extends object> (this: FilterImpl, arr: T[], property: string, expected?: any): IterableIterator<unknown> {\n const result = yield * search.call(this, arr, property, expected)\n return result ? result[1] : undefined\n}\n\nexport function * find_exp<T extends object> (this: FilterImpl, arr: T[], itemName: string, exp: string): IterableIterator<unknown> {\n const result = yield * search_exp.call(this, arr, itemName, exp)\n return result ? result[1] : undefined\n}\n\nexport function uniq<T> (this: FilterImpl, arr: T[]): T[] {\n arr = toArray(arr)\n this.context.memoryLimit.use(arr.length)\n return [...new Set(arr)]\n}\n\nexport function sample<T> (this: FilterImpl, v: T[] | string, count = 1): T | string | (T | string)[] {\n v = toValue(v)\n if (isNil(v)) return []\n if (!isArray(v)) v = stringify(v)\n this.context.memoryLimit.use(count)\n const shuffled = [...v].sort(() => Math.random() - 0.5)\n if (count === 1) return shuffled[0]\n return shuffled.slice(0, count)\n}\n","import { toValue, stringify, isString, isNumber, LiquidDate, strftime, isNil } from '../util'\nimport { FilterImpl } from '../template'\nimport { NormalizedFullOptions } from '../liquid-options'\n\nexport function date (this: FilterImpl, v: string | Date, format?: string, timezoneOffset?: number | string) {\n const size = ((v as string)?.length ?? 0) + (format?.length ?? 0) + ((timezoneOffset as string)?.length ?? 0)\n this.context.memoryLimit.use(size)\n const date = parseDate(v, this.context.opts, timezoneOffset)\n if (!date) return v\n format = toValue(format)\n format = isNil(format) ? this.context.opts.dateFormat : stringify(format)\n return strftime(date, format)\n}\n\nexport function date_to_xmlschema (this: FilterImpl, v: string | Date) {\n return date.call(this, v, '%Y-%m-%dT%H:%M:%S%:z')\n}\n\nexport function date_to_rfc822 (this: FilterImpl, v: string | Date) {\n return date.call(this, v, '%a, %d %b %Y %H:%M:%S %z')\n}\n\nexport function date_to_string (this: FilterImpl, v: string | Date, type?: string, style?: string) {\n return stringify_date.call(this, v, '%b', type, style)\n}\n\nexport function date_to_long_string (this: FilterImpl, v: string | Date, type?: string, style?: string) {\n return stringify_date.call(this, v, '%B', type, style)\n}\n\nfunction stringify_date (this: FilterImpl, v: string | Date, month_type: string, type?: string, style?: string) {\n const date = parseDate(v, this.context.opts)\n if (!date) return v\n if (type === 'ordinal') {\n const d = date.getDate()\n return style === 'US'\n ? strftime(date, `${month_type} ${d}%q, %Y`)\n : strftime(date, `${d}%q ${month_type} %Y`)\n }\n return strftime(date, `%d ${month_type} %Y`)\n}\n\nfunction parseDate (v: string | Date, opts: NormalizedFullOptions, timezoneOffset?: number | string): LiquidDate | undefined {\n let date: LiquidDate | undefined\n const defaultTimezoneOffset = timezoneOffset ?? opts.timezoneOffset\n const locale = opts.locale\n v = toValue(v)\n if (v === 'now' || v === 'today') {\n date = new LiquidDate(Date.now(), locale, defaultTimezoneOffset)\n } else if (isNumber(v)) {\n date = new LiquidDate(v * 1000, locale, defaultTimezoneOffset)\n } else if (isString(v)) {\n if (/^\\d+$/.test(v)) {\n date = new LiquidDate(+v * 1000, locale, defaultTimezoneOffset)\n } else if (opts.preserveTimezones && timezoneOffset === undefined) {\n date = LiquidDate.createDateFixedToTimezone(v, locale)\n } else {\n date = new LiquidDate(v, locale, defaultTimezoneOffset)\n }\n } else {\n date = new LiquidDate(v, locale, defaultTimezoneOffset)\n }\n return date.valid() ? date : undefined\n}\n","/**\n * String related filters\n *\n * * prefer stringify() to String() since `undefined`, `null` should eval ''\n */\n\n// Han (Chinese) characters: \\u4E00-\\u9FFF\n// Additional Han characters: \\uF900-\\uFAFF (CJK Compatibility Ideographs)\n// Additional Han characters: \\u3400-\\u4DBF (CJK Unified Ideographs Extension A)\n// Katakana (Japanese): \\u30A0-\\u30FF\n// Hiragana (Japanese): \\u3040-\\u309F\n// Hangul (Korean): \\uAC00-\\uD7AF\nimport { FilterImpl } from '../template'\nimport { assert, escapeRegExp, stringify } from '../util'\n\nconst rCJKWord = /[\\u4E00-\\u9FFF\\uF900-\\uFAFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF]/gu\n\n// Word boundary followed by word characters (for detecting words)\nconst rNonCJKWord = /[^\\u4E00-\\u9FFF\\uF900-\\uFAFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF\\s]+/gu\n\nexport function append (this: FilterImpl, v: string, arg: string) {\n assert(arguments.length === 2, 'append expect 2 arguments')\n const lhs = stringify(v)\n const rhs = stringify(arg)\n this.context.memoryLimit.use(lhs.length + rhs.length)\n return lhs + rhs\n}\n\nexport function prepend (this: FilterImpl, v: string, arg: string) {\n assert(arguments.length === 2, 'prepend expect 2 arguments')\n const lhs = stringify(v)\n const rhs = stringify(arg)\n this.context.memoryLimit.use(lhs.length + rhs.length)\n return rhs + lhs\n}\n\nexport function lstrip (this: FilterImpl, v: string, chars?: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n if (chars) {\n chars = escapeRegExp(stringify(chars))\n return str.replace(new RegExp(`^[${chars}]+`, 'g'), '')\n }\n return str.replace(/^\\s+/, '')\n}\n\nexport function downcase (this: FilterImpl, v: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.toLowerCase()\n}\n\nexport function upcase (this: FilterImpl, v: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return stringify(str).toUpperCase()\n}\n\nexport function remove (this: FilterImpl, v: string, arg: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.split(stringify(arg)).join('')\n}\n\nexport function remove_first (this: FilterImpl, v: string, l: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.replace(stringify(l), '')\n}\n\nexport function remove_last (this: FilterImpl, v: string, l: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n const pattern = stringify(l)\n const index = str.lastIndexOf(pattern)\n if (index === -1) return str\n return str.substring(0, index) + str.substring(index + pattern.length)\n}\n\nexport function rstrip (this: FilterImpl, str: string, chars?: string) {\n str = stringify(str)\n this.context.memoryLimit.use(str.length)\n if (chars) {\n chars = escapeRegExp(stringify(chars))\n return str.replace(new RegExp(`[${chars}]+$`, 'g'), '')\n }\n return str.replace(/\\s+$/, '')\n}\n\nexport function split (this: FilterImpl, v: string, arg: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n const arr = str.split(stringify(arg))\n // align to ruby split, which is the behavior of shopify/liquid\n // see: https://ruby-doc.org/core-2.4.0/String.html#method-i-split\n while (arr.length && arr[arr.length - 1] === '') arr.pop()\n return arr\n}\n\nexport function strip (this: FilterImpl, v: string, chars?: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n if (chars) {\n chars = escapeRegExp(stringify(chars))\n return str\n .replace(new RegExp(`^[${chars}]+`, 'g'), '')\n .replace(new RegExp(`[${chars}]+$`, 'g'), '')\n }\n return str.trim()\n}\n\nexport function strip_newlines (this: FilterImpl, v: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.replace(/\\r?\\n/gm, '')\n}\n\nexport function capitalize (this: FilterImpl, str: string) {\n str = stringify(str)\n this.context.memoryLimit.use(str.length)\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\nexport function replace (this: FilterImpl, v: string, pattern: string, replacement: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.split(stringify(pattern)).join(replacement)\n}\n\nexport function replace_first (this: FilterImpl, v: string, arg1: string, arg2: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.replace(stringify(arg1), arg2)\n}\n\nexport function replace_last (this: FilterImpl, v: string, arg1: string, arg2: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n const pattern = stringify(arg1)\n const index = str.lastIndexOf(pattern)\n if (index === -1) return str\n const replacement = stringify(arg2)\n return str.substring(0, index) + replacement + str.substring(index + pattern.length)\n}\n\nexport function truncate (this: FilterImpl, v: string, l = 50, o = '...') {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n if (str.length <= l) return v\n return str.substring(0, l - o.length) + o\n}\n\nexport function truncatewords (this: FilterImpl, v: string, words = 15, o = '...') {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n const arr = str.split(/\\s+/)\n if (words <= 0) words = 1\n let ret = arr.slice(0, words).join(' ')\n if (arr.length >= words) ret += o\n return ret\n}\n\nexport function normalize_whitespace (this: FilterImpl, v: string) {\n const str = stringify(v)\n this.context.memoryLimit.use(str.length)\n return str.replace(/\\s+/g, ' ')\n}\n\nexport function number_of_words (this: FilterImpl, input: string, mode?: 'cjk' | 'auto') {\n const str = stringify(input)\n this.context.memoryLimit.use(str.length)\n input = str.trim()\n if (!input) return 0\n switch (mode) {\n case 'cjk':\n // Count CJK characters and words\n return (input.match(rCJKWord) || []).length + (input.match(rNonCJKWord) || []).length\n case 'auto':\n // Count CJK characters, if none, count words\n return rCJKWord.test(input)\n ? input.match(rCJKWord)!.length + (input.match(rNonCJKWord) || []).length\n : input.split(/\\s+/).length\n default:\n // Count words only\n return input.split(/\\s+/).length\n }\n}\n\nexport function array_to_sentence_string (this: FilterImpl, array: unknown[], connector = 'and') {\n this.context.memoryLimit.use(array.length)\n switch (array.length) {\n case 0:\n return ''\n case 1:\n return array[0]\n case 2:\n return `${array[0]} ${connector} ${array[1]}`\n default:\n return `${array.slice(0, -1).join(', ')}, ${connector} ${array[array.length - 1]}`\n }\n}\n","import * as htmlFilters from './html'\nimport * as mathFilters from './math'\nimport * as urlFilters from './url'\nimport * as arrayFilters from './array'\nimport * as dateFilters from './date'\nimport * as stringFilters from './string'\nimport misc from './misc'\nimport { FilterImplOptions } from '../template'\n\nexport const filters: Record<string, FilterImplOptions> = {\n ...htmlFilters,\n ...mathFilters,\n ...urlFilters,\n ...arrayFilters,\n ...dateFilters,\n ...stringFilters,\n ...misc\n}\n","import { Value, Liquid, TopLevelToken, TagToken, Context, Tag } from '..'\nimport { Arguments } from '../template'\nimport { IdentifierToken } from '../tokens'\n\nexport default class extends Tag {\n private key: string\n private value: Value\n private identifier: IdentifierToken\n\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(token, remainTokens, liquid)\n this.identifier = this.tokenizer.readIdentifier()\n this.key = this.identifier.content\n this.tokenizer.assert(this.key, 'expected variable name')\n\n this.tokenizer.skipBlank()\n this.tokenizer.assert(this.tokenizer.peek() === '=', 'expected \"=\"')\n\n this.tokenizer.advance()\n this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid)\n }\n * render (ctx: Context): Generator<unknown, void, unknown> {\n ctx.bottom()[this.key] = yield this.value.value(ctx, this.liquid.options.lenientIf)\n }\n\n public * arguments (): Arguments {\n yield this.value\n }\n\n public * localScope (): Iterable<IdentifierToken> {\n yield this.identifier\n }\n}\n","import { Hash, ValueToken, Liquid, Tag, evalToken, Emitter, TagToken, TopLevelToken, Context, Template, ParseStream } from '..'\nimport { assertEmpty, isValueToken, toEnumerable } from '../util'\nimport { ForloopDrop } from '../drop/forloop-drop'\nimport { Parser } from '../parser'\nimport { Arguments } from '../template'\n\nconst MODIFIERS = ['offset', 'limit', 'reversed']\n\ntype valueOf<T> = T[keyof T]\n\nexport default class extends Tag {\n variable: string\n collection: ValueToken\n hash: Hash\n templates: Template[]\n elseTemplates: Template[]\n\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(token, remainTokens, liquid)\n const variable = this.tokenizer.readIdentifier()\n const inStr = this.tokenizer.readIdentifier()\n const collection = this.tokenizer.readValue()\n if (!variable.size() || inStr.content !== 'in' || !collection) {\n throw new Error(`illegal tag: ${token.getText()}`)\n }\n\n this.variable = variable.content\n this.collection = collection\n this.hash = new Hash(this.tokenizer, liquid.options.keyValueSeparator)\n this.templates = []\n this.elseTemplates = []\n\n let p\n const stream: ParseStream = parser.parseStream(remainTokens)\n .on('start', () => (p = this.templates))\n .on<TagToken>('tag:else', tag => { assertEmpty(tag.args); p = this.elseTemplates })\n .on<TagToken>('tag:endfor', tag => { assertEmpty(tag.args); stream.stop() })\n .on('template', (tpl: Template) => p.push(tpl))\n .on('end', () => { throw new Error(`tag ${token.getText()} not closed`) })\n\n stream.start()\n }\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void | string, Template[]> {\n const r = this.liquid.renderer\n let collection = toEnumerable(yield evalToken(this.collection, ctx))\n\n if (!collection.length) {\n yield r.renderTemplates(this.elseTemplates, ctx, emitter)\n return\n }\n\n const continueKey = 'continue-' + this.variable + '-' + this.collection.getText()\n ctx.push({ continue: ctx.getRegister(continueKey) })\n const hash = yield this.hash.render(ctx)\n ctx.pop()\n\n const modifiers = this.liquid.options.orderedFilterParameters\n ? Object.keys(hash).filter(x => MODIFIERS.includes(x))\n : MODIFIERS.filter(x => hash[x] !== undefined)\n\n collection = modifiers.reduce((collection, modifier: valueOf<typeof MODIFIERS>) => {\n if (modifier === 'offset') return offset(collection, hash['offset'])\n if (modifier === 'limit') return limit(collection, hash['limit'])\n return reversed(collection)\n }, collection)\n\n ctx.setRegister(continueKey, (hash['offset'] || 0) + collection.length)\n const scope = { forloop: new ForloopDrop(collection.length, this.collection.getText(), this.variable) }\n ctx.push(scope)\n for (const item of collection) {\n scope[this.variable] = item\n ctx.continueCalled = ctx.breakCalled = false\n yield r.renderTemplates(this.templates, ctx, emitter)\n if (ctx.breakCalled) break\n scope.forloop.next()\n }\n ctx.continueCalled = ctx.breakCalled = false\n ctx.pop()\n }\n\n public * children (): Generator<unknown, Template[]> {\n const templates = this.templates.slice()\n if (this.elseTemplates) {\n templates.push(...this.elseTemplates)\n }\n return templates\n }\n\n public * arguments (): Arguments {\n yield this.collection\n\n for (const v of Object.values(this.hash.hash)) {\n if (isValueToken(v)) {\n yield v\n }\n }\n }\n\n public blockScope (): Iterable<string> {\n return [this.variable, 'forloop']\n }\n}\n\nfunction reversed<T> (arr: Array<T>) {\n return [...arr].reverse()\n}\n\nfunction offset<T> (arr: Array<T>, count: number) {\n return arr.slice(count)\n}\n\nfunction limit<T> (arr: Array<T>, count: number) {\n return arr.slice(0, count)\n}\n","import { Liquid, Tag, Template, Context, TagToken, TopLevelToken } from '..'\nimport { Parser } from '../parser'\nimport { IdentifierToken, QuotedToken } from '../tokens'\nimport { isTagToken } from '../util'\n\nexport default class extends Tag {\n identifier: IdentifierToken | QuotedToken\n variable: string\n templates: Template[] = []\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(tagToken, remainTokens, liquid)\n this.identifier = this.readVariable()\n this.variable = this.identifier.content\n\n while (remainTokens.length) {\n const token = remainTokens.shift()!\n if (isTagToken(token) && token.name === 'endcapture') return\n this.templates.push(parser.parseToken(token, remainTokens))\n }\n throw new Error(`tag ${tagToken.getText()} not closed`)\n }\n\n private readVariable (): IdentifierToken | QuotedToken {\n let ident: IdentifierToken | QuotedToken | undefined = this.tokenizer.readIdentifier()\n if (ident.content) return ident\n ident = this.tokenizer.readQuoted()\n if (ident) return ident\n throw this.tokenizer.error('invalid capture name')\n }\n\n * render (ctx: Context): Generator<unknown, void, string> {\n const r = this.liquid.renderer\n const html = yield r.renderTemplates(this.templates, ctx)\n ctx.bottom()[this.variable] = html\n }\n\n public * children (): Generator<unknown, Template[]> {\n return this.templates\n }\n\n public * localScope (): Iterable<string | IdentifierToken | QuotedToken> {\n yield this.identifier\n }\n}\n","import { ValueToken, Liquid, toValue, evalToken, Value, Emitter, TagToken, TopLevelToken, Context, Template, Tag, ParseStream } from '..'\nimport { Parser } from '../parser'\nimport { equals } from '../render'\nimport { Arguments } from '../template'\n\nexport default class extends Tag {\n value: Value\n branches: { values: ValueToken[], templates: Template[] }[] = []\n elseTemplates: Template[] = []\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(tagToken, remainTokens, liquid)\n this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid)\n this.elseTemplates = []\n\n let p: Template[] = []\n let elseCount = 0\n const stream: ParseStream = parser.parseStream(remainTokens)\n .on('tag:when', (token: TagToken) => {\n if (elseCount > 0) {\n return\n }\n\n p = []\n\n const values: ValueToken[] = []\n while (!token.tokenizer.end()) {\n values.push(token.tokenizer.readValueOrThrow())\n token.tokenizer.skipBlank()\n if (token.tokenizer.peek() === ',') {\n token.tokenizer.readTo(',')\n } else {\n token.tokenizer.readTo('or')\n }\n }\n this.branches.push({\n values,\n templates: p\n })\n })\n .on('tag:else', () => {\n elseCount++\n p = this.elseTemplates\n })\n .on('tag:endcase', () => stream.stop())\n .on('template', (tpl: Template) => {\n if (p !== this.elseTemplates || elseCount === 1) {\n p.push(tpl)\n }\n })\n .on('end', () => {\n throw new Error(`tag ${tagToken.getText()} not closed`)\n })\n\n stream.start()\n }\n\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void, unknown> {\n const r = this.liquid.renderer\n const target = toValue(yield this.value.value(ctx, ctx.opts.lenientIf))\n let branchHit = false\n for (const branch of this.branches) {\n for (const valueToken of branch.values) {\n const value = yield evalToken(valueToken, ctx, ctx.opts.lenientIf)\n if (equals(target, value)) {\n yield r.renderTemplates(branch.templates, ctx, emitter)\n branchHit = true\n break\n }\n }\n }\n if (!branchHit) {\n yield r.renderTemplates(this.elseTemplates, ctx, emitter)\n }\n }\n\n public * arguments (): Arguments {\n yield this.value\n yield * this.branches.flatMap(b => b.values)\n }\n\n public * children (): Generator<unknown, Template[]> {\n const templates = this.branches.flatMap(b => b.templates)\n if (this.elseTemplates) {\n templates.push(...this.elseTemplates)\n }\n return templates\n }\n}\n","import { Liquid, TopLevelToken, TagToken, Tag } from '..'\nimport { isTagToken } from '../util'\n\nexport default class extends Tag {\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(tagToken, remainTokens, liquid)\n while (remainTokens.length) {\n const token = remainTokens.shift()!\n if (isTagToken(token) && token.name === 'endcomment') return\n }\n throw new Error(`tag ${tagToken.getText()} not closed`)\n }\n render () {}\n}\n","import { __assign } from 'tslib'\nimport { ForloopDrop } from '../drop'\nimport { isString, isValueToken, toEnumerable } from '../util'\nimport { TopLevelToken, assert, Liquid, Token, Template, evalQuotedToken, TypeGuards, Tokenizer, evalToken, Hash, Emitter, TagToken, Context, Tag } from '..'\nimport { Parser } from '../parser'\nimport { Argument, Arguments, PartialScope } from '../template'\n\nexport type ParsedFileName = Template[] | Token | string | undefined\n\nexport default class extends Tag {\n private file: ParsedFileName\n private currentFile?: string\n private hash: Hash\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(token, remainTokens, liquid)\n const tokenizer = this.tokenizer\n this.file = parseFilePath(tokenizer, this.liquid, parser)\n this.currentFile = token.file\n while (!tokenizer.end()) {\n tokenizer.skipBlank()\n const begin = tokenizer.p\n const keyword = tokenizer.readIdentifier()\n if (keyword.content === 'with' || keyword.content === 'for') {\n tokenizer.skipBlank()\n // can be normal key/value pair, like \"with: true\"\n if (tokenizer.peek() !== ':') {\n const value = tokenizer.readValue()\n // can be normal key, like \"with,\"\n if (value) {\n const beforeAs = tokenizer.p\n const asStr = tokenizer.readIdentifier()\n let alias\n if (asStr.content === 'as') alias = tokenizer.readIdentifier()\n else tokenizer.p = beforeAs\n\n this[keyword.content] = { value, alias: alias && alias.content }\n tokenizer.skipBlank()\n if (tokenizer.peek() === ',') tokenizer.advance()\n continue // matched!\n }\n }\n }\n /**\n * restore cursor if with/for not matched\n */\n tokenizer.p = begin\n break\n }\n this.hash = new Hash(tokenizer, liquid.options.keyValueSeparator)\n }\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void, unknown> {\n const { liquid, hash } = this\n const filepath = (yield renderFilePath(this['file'], ctx, liquid)) as string\n assert(filepath, () => `illegal file path \"${filepath}\"`)\n\n const childCtx = ctx.spawn()\n const scope = childCtx.bottom()\n __assign(scope, yield hash.render(ctx))\n if (this['with']) {\n const { value, alias } = this['with']\n scope[alias || filepath] = yield evalToken(value, ctx)\n }\n\n if (this['for']) {\n const { value, alias } = this['for']\n const collection = toEnumerable(yield evalToken(value, ctx))\n scope['forloop'] = new ForloopDrop(collection.length, value.getText(), alias)\n for (const item of collection) {\n scope[alias] = item\n const templates = (yield liquid._parsePartialFile(filepath, childCtx.sync, this['currentFile'])) as Template[]\n yield liquid.renderer.renderTemplates(templates, childCtx, emitter)\n scope['forloop'].next()\n }\n } else {\n const templates = (yield liquid._parsePartialFile(filepath, childCtx.sync, this['currentFile'])) as Template[]\n yield liquid.renderer.renderTemplates(templates, childCtx, emitter)\n }\n }\n\n public * children (partials: boolean, sync: boolean): Generator<unknown, Template[]> {\n if (partials && isString(this['file'])) {\n return (yield this.liquid._parsePartialFile(this['file'], sync, this['currentFile'])) as Template[]\n }\n return []\n }\n\n public partialScope (): PartialScope | undefined {\n if (isString(this['file'])) {\n const names: Array<string | [string, Argument]> = Object.keys(this.hash.hash)\n\n if (this['with']) {\n const { value, alias } = this['with']\n if (isString(alias)) {\n names.push([alias, value])\n } else if (isString(this.file)) {\n names.push([this.file, value])\n }\n }\n\n if (this['for']) {\n const { value, alias } = this['for']\n if (isString(alias)) {\n names.push([alias, value])\n } else if (isString(this.file)) {\n names.push([this.file, value])\n }\n }\n\n return { name: this['file'], isolated: true, scope: names }\n }\n }\n\n public * arguments (): Arguments {\n for (const v of Object.values(this.hash.hash)) {\n if (isValueToken(v)) {\n yield v\n }\n }\n\n if (this['with']) {\n const { value } = this['with']\n if (isValueToken(value)) {\n yield value\n }\n }\n\n if (this['for']) {\n const { value } = this['for']\n if (isValueToken(value)) {\n yield value\n }\n }\n }\n}\n\n/**\n * @return null for \"none\",\n * @return Template[] for quoted with tags and/or filters\n * @return Token for expression (not quoted)\n * @throws TypeError if cannot read next token\n */\nexport function parseFilePath (tokenizer: Tokenizer, liquid: Liquid, parser: Parser): ParsedFileName {\n if (liquid.options.dynamicPartials) {\n const file = tokenizer.readValue()\n tokenizer.assert(file, 'illegal file path')\n if (file!.getText() === 'none') return\n if (TypeGuards.isQuotedToken(file)) {\n // for filenames like \"files/{{file}}\", eval as liquid template\n const templates = parser.parse(evalQuotedToken(file))\n return optimize(templates)\n }\n return file\n }\n const tokens = [...tokenizer.readFileNameTemplate(liquid.options)]\n const templates = optimize(parser.parseTokens(tokens))\n return templates === 'none' ? undefined : templates\n}\n\nfunction optimize (templates: Template[]): string | Template[] {\n // for filenames like \"files/file.liquid\", extract the string directly\n if (templates.length === 1 && TypeGuards.isHTMLToken(templates[0].token)) return templates[0].token.getContent()\n return templates\n}\n\nexport function * renderFilePath (file: ParsedFileName, ctx: Context, liquid: Liquid): IterableIterator<unknown> {\n if (typeof file === 'string') return file\n if (Array.isArray(file)) return liquid.renderer.renderTemplates(file, ctx)\n return yield evalToken(file, ctx)\n}\n","import { Template, ValueToken, TopLevelToken, Liquid, Tag, assert, evalToken, Hash, Emitter, TagToken, Context } from '..'\nimport { BlockMode, Scope } from '../context'\nimport { Parser } from '../parser'\nimport { Argument, Arguments, PartialScope } from '../template'\nimport { isString, isValueToken } from '../util'\nimport { parseFilePath, renderFilePath } from './render'\n\nexport default class extends Tag {\n private withVar?: ValueToken\n private hash: Hash\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(token, remainTokens, liquid)\n const { tokenizer } = token\n this['file'] = parseFilePath(tokenizer, this.liquid, parser)\n this['currentFile'] = token.file\n\n const begin = tokenizer.p\n const withStr = tokenizer.readIdentifier()\n if (withStr.content === 'with') {\n tokenizer.skipBlank()\n if (tokenizer.peek() !== ':') {\n this.withVar = tokenizer.readValue()\n } else tokenizer.p = begin\n } else tokenizer.p = begin\n\n this.hash = new Hash(tokenizer, liquid.options.jekyllInclude || liquid.options.keyValueSeparator)\n }\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void, unknown> {\n const { liquid, hash, withVar } = this\n const { renderer } = liquid\n const filepath = (yield renderFilePath(this['file'], ctx, liquid)) as string\n assert(filepath, () => `illegal file path \"${filepath}\"`)\n\n const saved = ctx.saveRegister('blocks', 'blockMode')\n ctx.setRegister('blocks', {})\n ctx.setRegister('blockMode', BlockMode.OUTPUT)\n const scope = (yield hash.render(ctx)) as Scope\n if (withVar) scope[filepath] = yield evalToken(withVar, ctx)\n const templates = (yield liquid._parsePartialFile(filepath, ctx.sync, this['currentFile'])) as Template[]\n ctx.push(ctx.opts.jekyllInclude ? { include: scope } : scope)\n yield renderer.renderTemplates(templates, ctx, emitter)\n ctx.pop()\n ctx.restoreRegister(saved)\n }\n\n public * children (partials: boolean, sync: boolean): Generator<unknown, Template[]> {\n if (partials && isString(this['file'])) {\n return (yield this.liquid._parsePartialFile(this['file'], sync, this['currentFile'])) as Template[]\n }\n return []\n }\n\n public partialScope (): PartialScope | undefined {\n if (isString(this['file'])) {\n let names: Array<string | [string, Argument]>\n\n if (this.liquid.options.jekyllInclude) {\n names = ['include']\n } else {\n names = Object.keys(this.hash.hash)\n if (this.withVar) {\n names.push([this['file'], this.withVar])\n }\n }\n\n return { name: this['file'], isolated: false, scope: names }\n }\n }\n\n public * arguments (): Arguments {\n yield * Object.values(this.hash.hash).filter(isValueToken)\n\n if (isValueToken(this['file'])) {\n yield this['file']\n }\n\n if (isValueToken(this.withVar)) {\n yield this.withVar\n }\n }\n}\n","import { Tag, Liquid, TopLevelToken, Emitter, TagToken, Context } from '..'\nimport { IdentifierToken } from '../tokens'\nimport { isNumber, stringify } from '../util'\n\nexport default class extends Tag {\n private identifier: IdentifierToken\n private variable: string\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(token, remainTokens, liquid)\n this.identifier = this.tokenizer.readIdentifier()\n this.variable = this.identifier.content\n }\n render (context: Context, emitter: Emitter) {\n const scope = context.environments\n if (!isNumber(scope[this.variable])) {\n scope[this.variable] = 0\n }\n emitter.write(stringify(--scope[this.variable]))\n }\n\n public * localScope (): Iterable<string | IdentifierToken> {\n yield this.identifier\n }\n}\n","import { TopLevelToken, Liquid, ValueToken, evalToken, Emitter, TagToken, Context, Tag } from '..'\nimport { Arguments } from '../template'\n\nexport default class extends Tag {\n private candidates: ValueToken[] = []\n private group?: ValueToken\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(token, remainTokens, liquid)\n const group = this.tokenizer.readValue()\n this.tokenizer.skipBlank()\n\n if (group) {\n if (this.tokenizer.peek() === ':') {\n this.group = group\n this.tokenizer.advance()\n } else this.candidates.push(group)\n }\n\n while (!this.tokenizer.end()) {\n const value = this.tokenizer.readValue()\n if (value) this.candidates.push(value)\n this.tokenizer.readTo(',')\n }\n this.tokenizer.assert(this.candidates.length, () => `empty candidates: \"${token.getText()}\"`)\n }\n\n * render (ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown> {\n const group = (yield evalToken(this.group, ctx)) as ValueToken\n const fingerprint = `cycle:${group}:` + this.candidates.join(',')\n const groups = ctx.getRegister('cycle')\n let idx = groups[fingerprint]\n\n if (idx === undefined) {\n idx = groups[fingerprint] = 0\n }\n\n const candidate = this.candidates[idx]\n idx = (idx + 1) % this.candidates.length\n groups[fingerprint] = idx\n return yield evalToken(candidate, ctx)\n }\n\n public * arguments (): Arguments {\n yield * this.candidates\n\n if (this.group) {\n yield this.group\n }\n }\n}\n","import { Liquid, Tag, Value, Emitter, isTruthy, TagToken, TopLevelToken, Context, Template } from '..'\nimport { Parser } from '../parser'\nimport { Arguments } from '../template'\nimport { assert, assertEmpty } from '../util'\n\nexport default class extends Tag {\n branches: { value: Value, templates: Template[] }[] = []\n elseTemplates: Template[] | undefined\n\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(tagToken, remainTokens, liquid)\n let p: Template[] = []\n parser.parseStream(remainTokens)\n .on('start', () => this.branches.push({\n value: new Value(tagToken.tokenizer.readFilteredValue(), this.liquid),\n templates: (p = [])\n }))\n .on('tag:elsif', (token: TagToken) => {\n assert(!this.elseTemplates, 'unexpected elsif after else')\n this.branches.push({\n value: new Value(token.tokenizer.readFilteredValue(), this.liquid),\n templates: (p = [])\n })\n })\n .on<TagToken>('tag:else', tag => {\n assertEmpty(tag.args)\n assert(!this.elseTemplates, 'duplicated else')\n p = this.elseTemplates = []\n })\n .on<TagToken>('tag:endif', function (tag) { assertEmpty(tag.args); this.stop() })\n .on('template', (tpl: Template) => p.push(tpl))\n .on('end', () => { throw new Error(`tag ${tagToken.getText()} not closed`) })\n .start()\n }\n\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void, string> {\n const r = this.liquid.renderer\n\n for (const { value, templates } of this.branches) {\n const v = yield value.value(ctx, ctx.opts.lenientIf)\n if (isTruthy(v, ctx)) {\n yield r.renderTemplates(templates, ctx, emitter)\n return\n }\n }\n yield r.renderTemplates(this.elseTemplates || [], ctx, emitter)\n }\n\n public * children (): Generator<unknown, Template[]> {\n const templates = this.branches.flatMap(b => b.templates)\n if (this.elseTemplates) {\n templates.push(...this.elseTemplates)\n }\n return templates\n }\n\n public arguments (): Arguments {\n return this.branches.map(b => b.value)\n }\n}\n","import { isNumber, stringify } from '../util'\nimport { Tag, Liquid, TopLevelToken, Emitter, TagToken, Context } from '..'\nimport { IdentifierToken } from '../tokens'\n\nexport default class extends Tag {\n private identifier: IdentifierToken\n private variable: string\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(token, remainTokens, liquid)\n this.identifier = this.tokenizer.readIdentifier()\n this.variable = this.identifier.content\n }\n render (context: Context, emitter: Emitter) {\n const scope = context.environments\n if (!isNumber(scope[this.variable])) {\n scope[this.variable] = 0\n }\n const val = scope[this.variable]\n scope[this.variable]++\n emitter.write(stringify(val))\n }\n\n public * localScope (): Iterable<string | IdentifierToken> {\n yield this.identifier\n }\n}\n","import { Scope, Template, Liquid, Tag, assert, Emitter, Hash, TagToken, TopLevelToken, Context } from '..'\nimport { BlockMode } from '../context'\nimport { parseFilePath, renderFilePath, ParsedFileName } from './render'\nimport { BlankDrop } from '../drop'\nimport { Parser } from '../parser'\nimport { Arguments, PartialScope } from '../template'\nimport { isString, isValueToken } from '../util'\n\nexport default class extends Tag {\n args: Hash\n templates: Template[]\n file?: ParsedFileName\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(token, remainTokens, liquid)\n this.file = parseFilePath(this.tokenizer, this.liquid, parser)\n this['currentFile'] = token.file\n this.args = new Hash(this.tokenizer, liquid.options.keyValueSeparator)\n this.templates = parser.parseTokens(remainTokens)\n }\n * render (ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown> {\n const { liquid, args, file } = this\n const { renderer } = liquid\n if (file === undefined) {\n ctx.setRegister('blockMode', BlockMode.OUTPUT)\n yield renderer.renderTemplates(this.templates, ctx, emitter)\n return\n }\n const filepath = (yield renderFilePath(this.file, ctx, liquid)) as string\n assert(filepath, () => `illegal file path \"${filepath}\"`)\n const templates = (yield liquid._parseLayoutFile(filepath, ctx.sync, this['currentFile'])) as Template[]\n\n // render remaining contents and store rendered results\n ctx.setRegister('blockMode', BlockMode.STORE)\n const html = yield renderer.renderTemplates(this.templates, ctx)\n const blocks = ctx.getRegister('blocks')\n\n // set whole content to anonymous block if anonymous doesn't specified\n if (blocks[''] === undefined) blocks[''] = (parent: BlankDrop, emitter: Emitter) => emitter.write(html)\n ctx.setRegister('blockMode', BlockMode.OUTPUT)\n\n // render the layout file use stored blocks\n ctx.push((yield args.render(ctx)) as Scope)\n yield renderer.renderTemplates(templates, ctx, emitter)\n ctx.pop()\n }\n\n public * children (partials: boolean): Generator<unknown, Template[]> {\n const templates = this.templates.slice()\n\n if (partials && isString(this.file)) {\n templates.push(...(yield this.liquid._parsePartialFile(this.file, true, this['currentFile'])) as Template[])\n }\n\n return templates\n }\n\n public * arguments (): Arguments {\n for (const v of Object.values(this.args.hash)) {\n if (isValueToken(v)) {\n yield v\n }\n }\n\n if (isValueToken(this.file)) {\n yield this.file\n }\n }\n\n public partialScope (): PartialScope | undefined {\n if (isString(this.file)) {\n return { name: this.file, isolated: false, scope: Object.keys(this.args.hash) }\n }\n }\n}\n","import { BlockMode } from '../context'\nimport { isTagToken } from '../util'\nimport { BlockDrop } from '../drop'\nimport { Liquid, TagToken, TopLevelToken, Template, Context, Emitter, Tag } from '..'\nimport { Parser } from '../parser'\n\nexport default class extends Tag {\n block: string\n templates: Template[] = []\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(token, remainTokens, liquid)\n const match = /\\w+/.exec(token.args)\n this.block = match ? match[0] : ''\n while (remainTokens.length) {\n const token = remainTokens.shift()!\n if (isTagToken(token) && token.name === 'endblock') return\n const template = parser.parseToken(token, remainTokens)\n this.templates.push(template)\n }\n throw new Error(`tag ${token.getText()} not closed`)\n }\n\n * render (ctx: Context, emitter: Emitter) {\n const blockRender = this.getBlockRender(ctx)\n if (ctx.getRegister('blockMode') === BlockMode.STORE) {\n ctx.getRegister('blocks')[this.block] = blockRender\n } else {\n yield blockRender(new BlockDrop(), emitter)\n }\n }\n\n private getBlockRender (ctx: Context) {\n const { liquid, templates } = this\n const renderChild = ctx.getRegister('blocks')[this.block]\n const renderCurrent = function * (superBlock: BlockDrop, emitter: Emitter) {\n // add {{ block.super }} support when rendering\n ctx.push({ block: superBlock })\n yield liquid.renderer.renderTemplates(templates, ctx, emitter)\n ctx.pop()\n }\n return renderChild\n ? (superBlock: BlockDrop, emitter: Emitter) => renderChild(\n new BlockDrop(\n (emitter: Emitter) => renderCurrent(superBlock, emitter)\n ),\n emitter)\n : renderCurrent\n }\n\n public * children (): Generator<unknown, Template[]> {\n return this.templates\n }\n\n public blockScope (): Iterable<string> {\n return ['block']\n }\n}\n","import { Liquid, TagToken, TopLevelToken, Tag } from '..'\nimport { isTagToken } from '../util'\n\nexport default class extends Tag {\n private tokens: TopLevelToken[] = []\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(tagToken, remainTokens, liquid)\n while (remainTokens.length) {\n const token = remainTokens.shift()!\n if (isTagToken(token) && token.name === 'endraw') return\n this.tokens.push(token)\n }\n throw new Error(`tag ${tagToken.getText()} not closed`)\n }\n render () {\n return this.tokens.map((token: TopLevelToken) => token.getText()).join('')\n }\n}\n","import { ForloopDrop } from './forloop-drop'\n\nexport class TablerowloopDrop extends ForloopDrop {\n private cols: number\n public constructor (length: number, cols: number, collection: string, variable: string) {\n super(length, collection, variable)\n this.length = length\n this.cols = cols\n }\n public row () {\n return Math.floor(this.i / this.cols) + 1\n }\n public col0 () {\n return (this.i % this.cols)\n }\n public col () {\n return this.col0() + 1\n }\n public col_first () { // eslint-disable-line\n return this.col0() === 0\n }\n public col_last () { // eslint-disable-line\n return this.col() === this.cols\n }\n}\n","import { isValueToken, toEnumerable } from '../util'\nimport { ValueToken, Liquid, Tag, evalToken, Emitter, Hash, TagToken, TopLevelToken, Context, Template, ParseStream } from '..'\nimport { TablerowloopDrop } from '../drop/tablerowloop-drop'\nimport { Parser } from '../parser'\nimport { Arguments } from '../template'\n\nexport default class extends Tag {\n variable: string\n args: Hash\n templates: Template[]\n collection: ValueToken\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(tagToken, remainTokens, liquid)\n const variable = this.tokenizer.readIdentifier()\n this.tokenizer.skipBlank()\n\n const predicate = this.tokenizer.readIdentifier()\n const collectionToken = this.tokenizer.readValue()\n if (predicate.content !== 'in' || !collectionToken) {\n throw new Error(`illegal tag: ${tagToken.getText()}`)\n }\n\n this.variable = variable.content\n this.collection = collectionToken\n this.args = new Hash(this.tokenizer, liquid.options.keyValueSeparator)\n this.templates = []\n\n let p\n const stream: ParseStream = parser.parseStream(remainTokens)\n .on('start', () => (p = this.templates))\n .on('tag:endtablerow', () => stream.stop())\n .on('template', (tpl: Template) => p.push(tpl))\n .on('end', () => {\n throw new Error(`tag ${tagToken.getText()} not closed`)\n })\n\n stream.start()\n }\n\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void, unknown> {\n let collection = toEnumerable(yield evalToken(this.collection, ctx))\n const args = (yield this.args.render(ctx)) as Record<string, any>\n const offset = args.offset || 0\n const limit = (args.limit === undefined) ? collection.length : args.limit\n\n collection = collection.slice(offset, offset + limit)\n const cols = args.cols || collection.length\n\n const r = this.liquid.renderer\n const tablerowloop = new TablerowloopDrop(collection.length, cols, this.collection.getText(), this.variable)\n const scope = { tablerowloop }\n ctx.push(scope)\n\n for (let idx = 0; idx < collection.length; idx++, tablerowloop.next()) {\n scope[this.variable] = collection[idx]\n if (tablerowloop.col0() === 0) {\n if (tablerowloop.row() !== 1) emitter.write('</tr>')\n emitter.write(`<tr class=\"row${tablerowloop.row()}\">`)\n }\n emitter.write(`<td class=\"col${tablerowloop.col()}\">`)\n yield r.renderTemplates(this.templates, ctx, emitter)\n emitter.write('</td>')\n }\n if (collection.length) emitter.write('</tr>')\n ctx.pop()\n }\n\n public * children (): Generator<unknown, Template[]> {\n return this.templates\n }\n\n public * arguments (): Arguments {\n yield this.collection\n\n for (const v of Object.values(this.args.hash)) {\n if (isValueToken(v)) {\n yield v\n }\n }\n }\n\n public blockScope (): string[] {\n return [this.variable, 'tablerowloop']\n }\n}\n","import { Liquid, Tag, Value, TopLevelToken, Template, Emitter, isTruthy, isFalsy, Context, TagToken } from '..'\nimport { Parser } from '../parser'\nimport { Arguments } from '../template'\n\nexport default class extends Tag {\n branches: { value: Value, test: (val: any, ctx: Context) => boolean, templates: Template[] }[] = []\n elseTemplates: Template[] = []\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(tagToken, remainTokens, liquid)\n let p: Template[] = []\n let elseCount = 0\n parser.parseStream(remainTokens)\n .on('start', () => this.branches.push({\n value: new Value(tagToken.tokenizer.readFilteredValue(), this.liquid),\n test: isFalsy,\n templates: (p = [])\n }))\n .on('tag:elsif', (token: TagToken) => {\n if (elseCount > 0) {\n p = []\n return\n }\n this.branches.push({\n value: new Value(token.tokenizer.readFilteredValue(), this.liquid),\n test: isTruthy,\n templates: (p = [])\n })\n })\n .on('tag:else', () => {\n elseCount++\n p = this.elseTemplates\n })\n .on('tag:endunless', function () { this.stop() })\n .on('template', (tpl: Template) => {\n if (p !== this.elseTemplates || elseCount === 1) {\n p.push(tpl)\n }\n })\n .on('end', () => { throw new Error(`tag ${tagToken.getText()} not closed`) })\n .start()\n }\n\n * render (ctx: Context, emitter: Emitter): Generator<unknown, unknown, unknown> {\n const r = this.liquid.renderer\n\n for (const { value, test, templates } of this.branches) {\n const v = yield value.value(ctx, ctx.opts.lenientIf)\n if (test(v, ctx)) {\n yield r.renderTemplates(templates, ctx, emitter)\n return\n }\n }\n\n yield r.renderTemplates(this.elseTemplates, ctx, emitter)\n }\n\n public * children (): Generator<unknown, Template[]> {\n const children = this.branches.flatMap(b => b.templates)\n if (this.elseTemplates) {\n children.push(...this.elseTemplates)\n }\n return children\n }\n\n public arguments (): Arguments {\n return this.branches.map(b => b.value)\n }\n}\n","import { Context, Emitter, Tag } from '..'\n\nexport default class extends Tag {\n render (ctx: Context, _emitter: Emitter) {\n ctx.breakCalled = true\n }\n}\n","import { Tag, Emitter, Context } from '..'\n\nexport default class extends Tag {\n render (ctx: Context, _emitter: Emitter) {\n ctx.continueCalled = true\n }\n}\n","import { Liquid, TopLevelToken, Emitter, Value, TagToken, Context, Tag } from '..'\nimport { Arguments } from '../template'\n\nexport default class extends Tag {\n private value?: Value\n\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(token, remainTokens, liquid)\n this.tokenizer.skipBlank()\n if (!this.tokenizer.end()) {\n this.value = new Value(this.tokenizer.readFilteredValue(), this.liquid)\n }\n }\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void, unknown> {\n if (!this.value) return\n const val = yield this.value.value(ctx, false)\n emitter.write(val)\n }\n\n public * arguments (): Arguments {\n if (this.value) {\n yield this.value\n }\n }\n}\n","import { Template, Emitter, Liquid, TopLevelToken, TagToken, Context, Tag } from '..'\nimport { Parser } from '../parser'\n\nexport default class extends Tag {\n templates: Template[]\n constructor (token: TagToken, remainTokens: TopLevelToken[], liquid: Liquid, parser: Parser) {\n super(token, remainTokens, liquid)\n const tokens = this.tokenizer.readLiquidTagTokens(this.liquid.options)\n this.templates = parser.parseTokens(tokens)\n }\n * render (ctx: Context, emitter: Emitter): Generator<unknown, void, unknown> {\n yield this.liquid.renderer.renderTemplates(this.templates, ctx, emitter)\n }\n\n public * children (): Generator<unknown, Template[]> {\n return this.templates\n }\n}\n","import { TagToken, Liquid, TopLevelToken, Tag } from '..'\n\nexport default class extends Tag {\n constructor (tagToken: TagToken, remainTokens: TopLevelToken[], liquid: Liquid) {\n super(tagToken, remainTokens, liquid)\n if (tagToken.args.search(/\\n\\s*[^#\\s]/g) !== -1) {\n throw new Error('every line of an inline comment must start with a \\'#\\' character')\n }\n }\n render () { }\n}\n","import AssignTag from './assign'\nimport ForTag from './for'\nimport CaptureTag from './capture'\nimport CaseTag from './case'\nimport CommentTag from './comment'\nimport IncludeTag from './include'\nimport RenderTag from './render'\nimport DecrementTag from './decrement'\nimport CycleTag from './cycle'\nimport IfTag from './if'\nimport IncrementTag from './increment'\nimport LayoutTag from './layout'\nimport BlockTag from './block'\nimport RawTag from './raw'\nimport TablerowTag from './tablerow'\nimport UnlessTag from './unless'\nimport BreakTag from './break'\nimport ContinueTag from './continue'\nimport EchoTag from './echo'\nimport LiquidTag from './liquid'\nimport InlineCommentTag from './inline-comment'\nimport type { TagClass } from '../template/tag'\n\nexport const tags: Record<string, TagClass> = {\n assign: AssignTag,\n 'for': ForTag,\n capture: CaptureTag,\n 'case': CaseTag,\n comment: CommentTag,\n include: IncludeTag,\n render: RenderTag,\n decrement: DecrementTag,\n increment: IncrementTag,\n cycle: CycleTag,\n 'if': IfTag,\n layout: LayoutTag,\n block: BlockTag,\n raw: RawTag,\n tablerow: TablerowTag,\n unless: UnlessTag,\n 'break': BreakTag,\n 'continue': ContinueTag,\n echo: EchoTag,\n liquid: LiquidTag,\n '#': InlineCommentTag\n}\n\nexport { AssignTag, ForTag, CaptureTag, CaseTag, CommentTag, IncludeTag, RenderTag, DecrementTag, IncrementTag, CycleTag, IfTag, LayoutTag, BlockTag, RawTag, TablerowTag, UnlessTag, BreakTag, ContinueTag, EchoTag, LiquidTag, InlineCommentTag }\n","import { Context } from './context'\nimport { toPromise, toValueSync, isFunction, forOwn, isString, strictUniq } from './util'\nimport { TagClass, createTagClass, TagImplOptions, FilterImplOptions, Template, Value, StaticAnalysisOptions, StaticAnalysis, analyze, analyzeSync, SegmentArray } from './template'\nimport { LookupType } from './fs/loader'\nimport { Render } from './render'\nimport { Parser } from './parser'\nimport { tags } from './tags'\nimport { filters } from './filters'\nimport { LiquidOptions, normalizeDirectoryList, NormalizedFullOptions, normalize, RenderOptions, RenderFileOptions } from './liquid-options'\n\nexport class Liquid {\n public readonly options: NormalizedFullOptions\n public readonly renderer = new Render()\n /**\n * @deprecated will be removed. In tags use `this.parser` instead\n */\n public readonly parser: Parser\n public readonly filters: Record<string, FilterImplOptions> = {}\n public readonly tags: Record<string, TagClass> = {}\n\n public constructor (opts: LiquidOptions = {}) {\n this.options = normalize(opts)\n // eslint-disable-next-line deprecation/deprecation\n this.parser = new Parser(this)\n forOwn(tags, (conf: TagClass, name: string) => this.registerTag(name, conf))\n forOwn(filters, (handler: FilterImplOptions, name: string) => this.registerFilter(name, handler))\n }\n public parse (html: string, filepath?: string): Template[] {\n const parser = new Parser(this)\n return parser.parse(html, filepath)\n }\n\n public _render (tpl: Template[], scope: Context | object | undefined, renderOptions: RenderOptions): IterableIterator<any> {\n const ctx = scope instanceof Context ? scope : new Context(scope, this.options, renderOptions)\n return this.renderer.renderTemplates(tpl, ctx)\n }\n public async render (tpl: Template[], scope?: object, renderOptions?: RenderOptions): Promise<any> {\n return toPromise(this._render(tpl, scope, { ...renderOptions, sync: false }))\n }\n public renderSync (tpl: Template[], scope?: object, renderOptions?: RenderOptions): any {\n return toValueSync(this._render(tpl, scope, { ...renderOptions, sync: true }))\n }\n public renderToNodeStream (tpl: Template[], scope?: object, renderOptions: RenderOptions = {}): NodeJS.ReadableStream {\n const ctx = new Context(scope, this.options, renderOptions)\n return this.renderer.renderTemplatesToNodeStream(tpl, ctx)\n }\n\n public _parseAndRender (html: string, scope: Context | object | undefined, renderOptions: RenderOptions): IterableIterator<any> {\n const tpl = this.parse(html)\n return this._render(tpl, scope, renderOptions)\n }\n public async parseAndRender (html: string, scope?: Context | object, renderOptions?: RenderOptions): Promise<any> {\n return toPromise(this._parseAndRender(html, scope, { ...renderOptions, sync: false }))\n }\n public parseAndRenderSync (html: string, scope?: Context | object, renderOptions?: RenderOptions): any {\n return toValueSync(this._parseAndRender(html, scope, { ...renderOptions, sync: true }))\n }\n\n public _parsePartialFile (file: string, sync?: boolean, currentFile?: string) {\n return new Parser(this).parseFile(file, sync, LookupType.Partials, currentFile)\n }\n public _parseLayoutFile (file: string, sync?: boolean, currentFile?: string) {\n return new Parser(this).parseFile(file, sync, LookupType.Layouts, currentFile)\n }\n public _parseFile (file: string, sync?: boolean, lookupType?: LookupType, currentFile?: string): Generator<unknown, Template[]> {\n return new Parser(this).parseFile(file, sync, lookupType, currentFile)\n }\n public async parseFile (file: string, lookupType?: LookupType): Promise<Template[]> {\n return toPromise<Template[]>(new Parser(this).parseFile(file, false, lookupType))\n }\n public parseFileSync (file: string, lookupType?: LookupType): Template[] {\n return toValueSync<Template[]>(new Parser(this).parseFile(file, true, lookupType))\n }\n public * _renderFile (file: string, ctx: Context | object | undefined, renderFileOptions: RenderFileOptions): Generator<any> {\n const templates = (yield this._parseFile(file, renderFileOptions.sync, renderFileOptions.lookupType)) as Template[]\n return yield this._render(templates, ctx, renderFileOptions)\n }\n public async renderFile (file: string, ctx?: Context | object, renderFileOptions?: RenderFileOptions) {\n return toPromise(this._renderFile(file, ctx, { ...renderFileOptions, sync: false }))\n }\n public renderFileSync (file: string, ctx?: Context | object, renderFileOptions?: RenderFileOptions) {\n return toValueSync(this._renderFile(file, ctx, { ...renderFileOptions, sync: true }))\n }\n public async renderFileToNodeStream (file: string, scope?: object, renderOptions?: RenderOptions) {\n const templates = await this.parseFile(file)\n return this.renderToNodeStream(templates, scope, renderOptions)\n }\n\n public _evalValue (str: string, scope?: object | Context): IterableIterator<any> {\n const value = new Value(str, this)\n const ctx = scope instanceof Context ? scope : new Context(scope, this.options)\n return value.value(ctx)\n }\n public async evalValue (str: string, scope?: object | Context): Promise<any> {\n return toPromise(this._evalValue(str, scope))\n }\n public evalValueSync (str: string, scope?: object | Context): any {\n return toValueSync(this._evalValue(str, scope))\n }\n\n public registerFilter (name: string, filter: FilterImplOptions) {\n this.filters[name] = filter\n }\n public registerTag (name: string, tag: TagClass | TagImplOptions) {\n this.tags[name] = isFunction(tag) ? tag : createTagClass(tag)\n }\n public plugin (plugin: (this: Liquid, L: typeof Liquid) => void) {\n return plugin.call(this, Liquid)\n }\n public express () {\n const self = this // eslint-disable-line\n let firstCall = true\n\n return function (this: any, filePath: string, ctx: object, callback: (err: Error | null, rendered: string) => void) {\n if (firstCall) {\n firstCall = false\n const dirs = normalizeDirectoryList(this.root)\n self.options.root.unshift(...dirs)\n self.options.layouts.unshift(...dirs)\n self.options.partials.unshift(...dirs)\n }\n self.renderFile(filePath, ctx).then(html => callback(null, html) as any, callback as any)\n }\n }\n\n public async analyze (template: Template[], options: StaticAnalysisOptions = {}): Promise<StaticAnalysis> {\n return analyze(template, options)\n }\n\n public analyzeSync (template: Template[], options: StaticAnalysisOptions = {}): StaticAnalysis {\n return analyzeSync(template, options)\n }\n\n public async parseAndAnalyze (html: string, filename?: string, options: StaticAnalysisOptions = {}): Promise<StaticAnalysis> {\n return analyze(this.parse(html, filename), options)\n }\n\n public parseAndAnalyzeSync (html: string, filename?: string, options: StaticAnalysisOptions = {}): StaticAnalysis {\n return analyzeSync(this.parse(html, filename), options)\n }\n\n /** Return an array of all variables without their properties. */\n public async variables (template: string | Template[], options: StaticAnalysisOptions = {}): Promise<string[]> {\n const analysis = await analyze(isString(template) ? this.parse(template) : template, options)\n return Object.keys(analysis.variables)\n }\n\n /** Return an array of all variables without their properties. */\n public variablesSync (template: string | Template[], options: StaticAnalysisOptions = {}): string[] {\n const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options)\n return Object.keys(analysis.variables)\n }\n\n /** Return an array of all variables including their properties/paths. */\n public async fullVariables (template: string | Template[], options: StaticAnalysisOptions = {}): Promise<string[]> {\n const analysis = await analyze(isString(template) ? this.parse(template) : template, options)\n return Array.from(new Set(Object.values(analysis.variables).flatMap((a) => a.map((v) => String(v)))))\n }\n\n /** Return an array of all variables including their properties/paths. */\n public fullVariablesSync (template: string | Template[], options: StaticAnalysisOptions = {}): string[] {\n const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options)\n return Array.from(new Set(Object.values(analysis.variables).flatMap((a) => a.map((v) => String(v)))))\n }\n\n /** Return an array of all variables, each as an array of properties/segments. */\n public async variableSegments (template: string | Template[], options: StaticAnalysisOptions = {}): Promise<Array<SegmentArray>> {\n const analysis = await analyze(isString(template) ? this.parse(template) : template, options)\n return Array.from(strictUniq(Object.values(analysis.variables).flatMap((a) => a.map((v) => v.toArray()))))\n }\n\n /** Return an array of all variables, each as an array of properties/segments. */\n public variableSegmentsSync (template: string | Template[], options: StaticAnalysisOptions = {}): Array<SegmentArray> {\n const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options)\n return Array.from(strictUniq(Object.values(analysis.variables).flatMap((a) => a.map((v) => v.toArray()))))\n }\n\n /** Return an array of all expected context variables without their properties. */\n public async globalVariables (template: string | Template[], options: StaticAnalysisOptions = {}): Promise<string[]> {\n const analysis = await analyze(isString(template) ? this.parse(template) : template, options)\n return Object.keys(analysis.globals)\n }\n\n /** Return an array of all expected context variables without their properties. */\n public globalVariablesSync (template: string | Template[], options: StaticAnalysisOptions = {}): string[] {\n const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options)\n return Object.keys(analysis.globals)\n }\n\n /** Return an array of all expected context variables including their properties/paths. */\n public async globalFullVariables (template: string | Template[], options: StaticAnalysisOptions = {}): Promise<string[]> {\n const analysis = await analyze(isString(template) ? this.parse(template) : template, options)\n return Array.from(new Set(Object.values(analysis.globals).flatMap((a) => a.map((v) => String(v)))))\n }\n\n /** Return an array of all expected context variables including their properties/paths. */\n public globalFullVariablesSync (template: string | Template[], options: StaticAnalysisOptions = {}): string[] {\n const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options)\n return Array.from(new Set(Object.values(analysis.globals).flatMap((a) => a.map((v) => String(v)))))\n }\n\n /** Return an array of all expected context variables, each as an array of properties/segments. */\n public async globalVariableSegments (template: string | Template[], options: StaticAnalysisOptions = {}): Promise<Array<SegmentArray>> {\n const analysis = await analyze(isString(template) ? this.parse(template) : template, options)\n return Array.from(strictUniq(Object.values(analysis.globals).flatMap((a) => a.map((v) => v.toArray()))))\n }\n\n /** Return an array of all expected context variables, each as an array of properties/segments. */\n public globalVariableSegmentsSync (template: string | Template[], options: StaticAnalysisOptions = {}): Array<SegmentArray> {\n const analysis = analyzeSync(isString(template) ? this.parse(template) : template, options)\n return Array.from(strictUniq(Object.values(analysis.globals).flatMap((a) => a.map((v) => v.toArray()))))\n }\n}\n","/* istanbul ignore file */\nexport const version = '[VI]{version}[/VI]'\nexport * as TypeGuards from './util/type-guards'\nexport { toValue, createTrie, Trie, toPromise, toValueSync, assert, LiquidError, ParseError, RenderError, UndefinedVariableError, TokenizationError, AssertionError } from './util'\nexport { Drop } from './drop'\nexport { Emitter } from './emitters'\nexport { defaultOperators, Operators, evalToken, evalQuotedToken, Expression, isFalsy, isTruthy } from './render'\nexport { Context, Scope } from './context'\nexport { Value, Hash, Template, FilterImplOptions, Tag, Filter, Output, Variable, VariableLocation, VariableSegments, Variables, StaticAnalysis, StaticAnalysisOptions, analyze, analyzeSync, Arguments, PartialScope } from './template'\nexport { Token, TopLevelToken, TagToken, ValueToken } from './tokens'\nexport type { RangeToken, LiteralToken, QuotedToken, PropertyAccessToken, NumberToken } from './tokens'\nexport { TokenKind, Tokenizer, ParseStream, Parser } from './parser'\nexport { filters } from './filters'\nexport * from './tags'\nexport { defaultOptions, LiquidOptions } from './liquid-options'\nexport { FS } from './fs'\nexport { Liquid } from './liquid'\n"],"names":["toString","_\r\n .range","_.padStart","TokenKind","last","arrayLast","TypeGuards.isQuotedToken","TypeGuards.isHTMLToken","AssignTag","ForTag","CaptureTag","CaseTag","CommentTag","IncludeTag","RenderTag","DecrementTag","IncrementTag","CycleTag","IfTag","LayoutTag","BlockTag","RawTag","TablerowTag","UnlessTag","BreakTag","ContinueTag","EchoTag","LiquidTag","InlineCommentTag"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGE,eACS,IAAe,EACf,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YAJb,SAAI,GAAJ,IAAI,CAAW;YACf,UAAK,GAAL,KAAK,CAAQ;YACb,UAAK,GAAL,KAAK,CAAQ;YACb,QAAG,GAAH,GAAG,CAAQ;YACX,SAAI,GAAJ,IAAI,CAAS;SAClB;QACG,uBAAO,GAAd;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;SAC9C;QACM,2BAAW,GAAlB;YACM,IAAA,KAAA,OAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,EAAlB,GAAG,QAAA,EAAE,GAAG,QAAU,CAAA;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBAC1B,GAAG,EAAE,CAAA;oBACL,GAAG,GAAG,CAAC,CAAA;iBACR;;oBAAM,GAAG,EAAE,CAAA;aACb;YACD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAClB;QACM,oBAAI,GAAX;YACE,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;SAC7B;QACH,YAAC;IAAD,CAAC;;;QCxBD;SAIC;QAHQ,kCAAmB,GAA1B,UAA4B,GAAoB,EAAE,OAAgB;YAChE,OAAO,SAAS,CAAA;SACjB;QACH,WAAC;IAAD,CAAC;;ICJM,IAAMA,UAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAA;IACjD,IAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAA;AAEhD,IAAO,IAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAA;AAEnD,aAAgB,QAAQ,CAAE,KAAU;QAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;IAClC,CAAC;IAED;AACA,aAAgB,UAAU,CAAE,KAAU;QACpC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAA;IACpC,CAAC;AAED,aAAgB,SAAS,CAAK,GAAQ;QACpC,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;AAED,aAAgB,UAAU,CAAE,GAAQ;QAClC,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACvF,CAAC;AAED,aAAgB,WAAW,CAAE,GAAW;QACtC,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC;AAID,aAUgB,SAAS,CAAE,KAAU;QACnC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACjC,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAC3B,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,SAAS,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;AAED,aAAgB,YAAY,CAAe,GAAQ;QACjD,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAClB,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAA;QAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAmB,CAAA;QACnE,IAAI,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAA,CAAmB,CAAA;QAC1F,OAAO,EAAE,CAAA;IACX,CAAC;AAED,aAAgB,OAAO,CAAE,GAAQ;QAC/B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAClB,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAA;QACzB,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAA;QAC5B,OAAO,CAAE,GAAG,CAAE,CAAA;IAChB,CAAC;AAED,aAAgB,OAAO,CAAE,KAAU;QACjC,OAAO,CAAC,KAAK,YAAY,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAA;IACvF,CAAC;AAED,aAAgB,QAAQ,CAAE,KAAU;QAClC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;AAED,aAAgB,QAAQ,CAAE,KAAU;QAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;IAClC,CAAC;AAED,aAAgB,QAAQ,CAAE,KAAU;QAClC,IAAI,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC1E,OAAO,KAAK,CAAA;IACd,CAAC;AAED,aAAgB,KAAK,CAAE,KAAU;QAC/B,OAAO,KAAK,IAAI,IAAI,CAAA;IACtB,CAAC;AAED,aAAgB,WAAW,CAAE,KAAU;QACrC,OAAO,KAAK,KAAK,SAAS,CAAA;IAC5B,CAAC;AAED,aAAgB,OAAO,CAAE,KAAU;;QAEjC,OAAOA,UAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAA;IAClD,CAAC;AAED,aAAgB,WAAW,CAAE,KAAU;QACrC,OAAO,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;AAED,aAAgB,UAAU,CAAE,KAAU;QACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;IACpD,CAAC;IAED;;;;;;;;AAQA,aAAgB,MAAM,CACpB,GAAkC,EAClC,QAA4E;QAE5E,GAAG,GAAG,GAAG,IAAI,EAAE,CAAA;QACf,KAAK,IAAM,CAAC,IAAI,GAAG,EAAE;YACnB,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;gBAC/B,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK;oBAAE,MAAK;aAC9C;SACF;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;AAID,aAAgB,IAAI,CAAE,GAAmB;QACvC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED;;;;;;AAMA,aAAgB,QAAQ,CAAE,KAAU;QAClC,IAAM,IAAI,GAAG,OAAO,KAAK,CAAA;QACzB,OAAO,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,CAAA;IACrE,CAAC;AAED,aAAgB,KAAK,CAAE,KAAa,EAAE,IAAY,EAAE,IAAQ;QAAR,qBAAA,EAAA,QAAQ;QAC1D,IAAM,GAAG,GAAa,EAAE,CAAA;QACxB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE;YACvC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACZ;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;AAED,aAAgB,QAAQ,CAAE,GAAQ,EAAE,MAAc,EAAE,EAAQ;QAAR,mBAAA,EAAA,QAAQ;QAC1D,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,EAAE,GAAG,GAAG,GAAA,CAAC,CAAA;IACpD,CAAC;AAED,aAAgB,MAAM,CAAE,GAAQ,EAAE,MAAc,EAAE,EAAQ;QAAR,mBAAA,EAAA,QAAQ;QACxD,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,GAAG,GAAG,EAAE,GAAA,CAAC,CAAA;IACpD,CAAC;AAED,aAAgB,GAAG,CAAE,GAAQ,EAAE,MAAc,EAAE,EAAU,EAAE,GAAwC;QACjG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACjB,IAAI,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QAC3B,OAAO,CAAC,EAAE,GAAG,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAClC,OAAO,GAAG,CAAA;IACZ,CAAC;AAED,aAAgB,QAAQ,CAAK,GAAM;QACjC,OAAO,GAAG,CAAA;IACZ,CAAC;AAED,aAAgB,UAAU,CAAE,GAAW;QACrC,IAAM,YAAY,GAAG,yBAAI,GAAG,UAAE,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,GAAA,CAAC,CAAA;QAChE,OAAO,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC7D,CAAC;AAED,aAAgB,QAAQ,CAAE,GAAW,EAAE,CAAS;QAC9C,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAA;IAC3D,CAAC;IAED;AACA,aAAgB,sBAAsB,CAAE,CAAM,EAAE,CAAM;QACpD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,CAAC,CAAC,CAAA;QACxB,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvB,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAA;QACnB,OAAO,CAAC,CAAA;IACV,CAAC;AAED,aAAgB,gBAAgB,CAAsC,EAAK;QACzE,OAAO;YAAmB,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,yBAAsB;;YAAI,OAAO,EAAE,CAAC,IAAI,OAAP,EAAE,iBAAM,IAAI,UAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAC;SAAE,CAAA;IAClG,CAAC;AAED,aAAgB,iBAAiB,CAAsC,EAAK;QAC1E,OAAO;YAAmB,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,yBAAsB;;YAAI,OAAO,EAAE,CAAC,IAAI,OAAP,EAAE,iBAAM,IAAI,UAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAC;SAAE,CAAA;IACnG,CAAC;AAED,aAAgB,YAAY,CAAE,IAAY;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAED;AACA,aAAkB,UAAU,CAAK,KAAe;;;;;;oBACxC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;;;;oBAEA,UAAA,SAAA,KAAK,CAAA;;;;oBAAhB,OAAO;oBACV,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;yBAC/B,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAd,wBAAc;oBAChB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACb,qBAAM,OAAO,EAAA;;oBAAb,SAAa,CAAA;;;;;;;;;;;;;;;;;;;KAGlB;;IC/MD;;;IAGA,IAAM,KAAK,GAAG,iBAAiB,CAAA;AAE/B;QAA0C,+BAAK;QAI7C,qBAAoB,GAAmB,EAAE,KAAY;YAArD;;;;;YAKE,kBAAM,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAInD;YAXM,aAAO,GAAG,EAAE,CAAA;YAQjB,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;YAC5G,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;YACzE,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;;SAChF;QACS,4BAAM,GAAhB;YACE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;YAC3F,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO;gBAC7C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;YACnB,IAAI,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAA;SAC3E;QACM,cAAE,GAAT,UAAW,GAAY;YACrB,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAG,KAAK,CAAC,MAAK,aAAa,CAAA;SACtC;QACH,kBAAC;IAAD,CAxBA,CAA0C,KAAK,GAwB9C;;QAEsC,qCAAW;QAChD,2BAAoB,OAAe,EAAE,KAAY;YAAjD,YACE,kBAAM,OAAO,EAAE,KAAK,CAAC,SAGtB;YAFC,KAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;YAC/B,iBAAM,MAAM,YAAE,CAAA;;SACf;QACH,wBAAC;IAAD,CANA,CAAuC,WAAW,GAMjD;;QAE+B,8BAAW;QACzC,oBAAoB,GAAU,EAAE,KAAY;YAA5C,YACE,kBAAM,GAAG,EAAE,KAAK,CAAC,SAIlB;YAHC,KAAI,CAAC,IAAI,GAAG,YAAY,CAAA;YACxB,KAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YAC1B,iBAAM,MAAM,YAAE,CAAA;;SACf;QACH,iBAAC;IAAD,CAPA,CAAgC,WAAW,GAO1C;;QAEgC,+BAAW;QAC1C,qBAAoB,GAAU,EAAE,GAAa;YAA7C,YACE,kBAAM,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,SAItB;YAHC,KAAI,CAAC,IAAI,GAAG,aAAa,CAAA;YACzB,KAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YAC1B,iBAAM,MAAM,YAAE,CAAA;;SACf;QACa,cAAE,GAAhB,UAAkB,GAAQ;YACxB,OAAO,GAAG,CAAC,IAAI,KAAK,aAAa,CAAA;SAClC;QACH,kBAAC;IAAD,CAVA,CAAiC,WAAW,GAU3C;IAED;QAAkC,gCAAW;QAC3C,sBAA2B,MAAqB;YAAhD,YACE,kBAAM,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAKlC;YAN0B,YAAM,GAAN,MAAM,CAAe;YAE9C,KAAI,CAAC,IAAI,GAAG,cAAc,CAAA;YAC1B,IAAM,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAA;YACtC,KAAI,CAAC,OAAO,GAAG,UAAG,MAAM,CAAC,MAAM,mBAAS,CAAC,WAAQ,CAAA;YACjD,iBAAM,MAAM,YAAE,CAAA;;SACf;QACa,eAAE,GAAhB,UAAkB,GAAQ;YACxB,OAAO,GAAG,CAAC,IAAI,KAAK,cAAc,CAAA;SACnC;QACH,mBAAC;IAAD,CAXA,CAAkC,WAAW,GAW5C;;QAE2C,0CAAW;QACrD,gCAAoB,GAAU,EAAE,KAAY;YAA5C,YACE,kBAAM,GAAG,EAAE,KAAK,CAAC,SAIlB;YAHC,KAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;YACpC,KAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;YAC1B,iBAAM,MAAM,YAAE,CAAA;;SACf;QACH,6BAAC;IAAD,CAPA,CAA4C,WAAW,GAOtD;IAED;IACA;IACA;QAAoD,kDAAK;QAGvD,wCAAoB,YAAoB;YAAxC,YACE,kBAAM,8BAAuB,YAAY,CAAE,CAAC,SAG7C;YAFC,KAAI,CAAC,IAAI,GAAG,gCAAgC,CAAA;YAC5C,KAAI,CAAC,YAAY,GAAG,YAAY,CAAA;;SACjC;QACH,qCAAC;IAAD,CARA,CAAoD,KAAK,GAQxD;;QAEmC,kCAAK;QACvC,wBAAoB,OAAe;YAAnC,YACE,kBAAM,OAAO,CAAC,SAGf;YAFC,KAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;YAC5B,KAAI,CAAC,OAAO,GAAG,OAAO,GAAG,EAAE,CAAA;;SAC5B;QACH,qBAAC;IAAD,CANA,CAAoC,KAAK,GAMxC;IAED,SAAS,SAAS,CAAE,KAAY;QACxB,IAAA,KAAA,OAAc,KAAK,CAAC,WAAW,EAAE,IAAA,EAAhC,IAAI,QAAA,EAAE,GAAG,QAAuB,CAAA;QACvC,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACrC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACnC,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QAE5C,IAAM,OAAO,GAAGC,KACR,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;aACrB,GAAG,CAAC,UAAA,UAAU;YACb,IAAM,YAAY,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,GAAG,KAAK,CAAA;YAC1D,IAAM,GAAG,GAAGC,QAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAA;YAC9D,IAAI,IAAI,GAAG,UAAG,YAAY,SAAG,GAAG,OAAI,CAAA;YAEpC,IAAM,YAAY,GAAG,UAAU,KAAK,IAAI;kBACpC,IAAI,GAAGA,QAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;kBACzC,EAAE,CAAA;YAEN,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;YAC7B,IAAI,IAAI,YAAY,CAAA;YACpB,OAAO,IAAI,CAAA;SACZ,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,SAAS,SAAS,CAAE,GAAW,EAAE,KAAY;QAC3C,IAAI,KAAK,CAAC,IAAI;YAAE,GAAG,IAAI,iBAAU,KAAK,CAAC,IAAI,CAAE,CAAA;QACvC,IAAA,KAAA,OAAc,KAAK,CAAC,WAAW,EAAE,IAAA,EAAhC,IAAI,QAAA,EAAE,GAAG,QAAuB,CAAA;QACvC,GAAG,IAAI,iBAAU,IAAI,mBAAS,GAAG,CAAE,CAAA;QACnC,OAAO,GAAG,CAAA;IACZ,CAAC;;ICzID;IACA;IACA;IACA;AACA,IAAO,IAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACpa,IAAO,IAAM,IAAI,GAAG,CAAC,CAAA;AACrB,IACO,IAAM,KAAK,GAAG,CAAC,CAAA;AACtB,IAAO,IAAM,KAAK,GAAG,CAAC,CAAA;AACtB,IAAO,IAAM,YAAY,GAAG,EAAE,CAAA;AAC9B,IAAO,IAAM,MAAM,GAAG,EAAE,CAAA;AACxB,IAAO,IAAM,IAAI,GAAG,EAAE,CAAA;AACtB,IAAO,IAAM,WAAW,GAAG,GAAG,CAAA;AAE9B,aAAgB,MAAM,CAAE,IAAY;QAClC,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAC5D,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;IAC/Q,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAA;;aCjBvB,MAAM,CAAM,SAA+B,EAAE,OAAiC;QAC5F,IAAI,CAAC,SAAS,EAAE;YACd,IAAM,GAAG,GAAG,OAAO,OAAO,KAAK,UAAU;kBACrC,OAAO,EAAE;mBACR,OAAO,IAAI,iBAAU,SAAS,gBAAa,CAAC,CAAA;YACjD,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAA;SAC9B;IACH,CAAC;AAED,aAAgB,WAAW,CAAK,SAA+B,EAAE,OAAmD;QAAnD,wBAAA,EAAA,+BAAwB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAE;QAClH,MAAM,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC7B,CAAC;;ICTD;QAA8B,4BAAI;QAAlC;;SAmBC;QAlBQ,yBAAM,GAAb,UAAe,KAAU;YACvB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;SAC7B;QACM,qBAAE,GAAT;YACE,OAAO,KAAK,CAAA;SACb;QACM,sBAAG,GAAV;YACE,OAAO,KAAK,CAAA;SACb;QACM,qBAAE,GAAT;YACE,OAAO,KAAK,CAAA;SACb;QACM,sBAAG,GAAV;YACE,OAAO,KAAK,CAAA;SACb;QACM,0BAAO,GAAd;YACE,OAAO,IAAI,CAAA;SACZ;QACH,eAAC;IAAD,CAnBA,CAA8B,IAAI,GAmBjC;;ICnBD;QAA+B,6BAAI;QAAnC;;SA0BC;QAzBQ,0BAAM,GAAb,UAAe,KAAU;YACvB,IAAI,KAAK,YAAY,SAAS;gBAAE,OAAO,KAAK,CAAA;YAC5C,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;YACtB,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAA;YAChE,IAAI,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;YAC3D,OAAO,KAAK,CAAA;SACb;QACM,sBAAE,GAAT;YACE,OAAO,KAAK,CAAA;SACb;QACM,uBAAG,GAAV;YACE,OAAO,KAAK,CAAA;SACb;QACM,sBAAE,GAAT;YACE,OAAO,KAAK,CAAA;SACb;QACM,uBAAG,GAAV;YACE,OAAO,KAAK,CAAA;SACb;QACM,2BAAO,GAAd;YACE,OAAO,EAAE,CAAA;SACV;QACM,YAAE,GAAT,UAAW,KAAc;YACvB,OAAO,KAAK,YAAY,SAAS,CAAA;SAClC;QACH,gBAAC;IAAD,CA1BA,CAA+B,IAAI,GA0BlC;;IC3BD;QAA+B,6BAAS;QAAxC;;SAUC;QATQ,0BAAM,GAAb,UAAe,KAAU;YACvB,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAA;YAChC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAA;YACtC,IAAI,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/C,OAAO,iBAAM,MAAM,YAAC,KAAK,CAAC,CAAA;SAC3B;QACM,YAAE,GAAT,UAAW,KAAc;YACvB,OAAO,KAAK,YAAY,SAAS,CAAA;SAClC;QACH,gBAAC;IAAD,CAVA,CAA+B,SAAS,GAUvC;;ICXD;QAAiC,+BAAI;QAInC,qBAAoB,MAAc,EAAE,UAAkB,EAAE,QAAgB;YAAxE,YACE,iBAAO,SAGR;YAPS,OAAC,GAAG,CAAC,CAAA;YAKb,KAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,KAAI,CAAC,IAAI,GAAG,UAAG,QAAQ,cAAI,UAAU,CAAE,CAAA;;SACxC;QACM,0BAAI,GAAX;YACE,IAAI,CAAC,CAAC,EAAE,CAAA;SACT;QACM,4BAAM,GAAb;YACE,OAAO,IAAI,CAAC,CAAC,CAAA;SACd;QACM,2BAAK,GAAZ;YACE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;SAClB;QACM,2BAAK,GAAZ;YACE,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;SACpB;QACM,0BAAI,GAAX;YACE,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;SAClC;QACM,4BAAM,GAAb;YACE,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAA;SAC5B;QACM,6BAAO,GAAd;YACE,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;SAChC;QACM,6BAAO,GAAd;YACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SAC5B;QACH,kBAAC;IAAD,CAjCA,CAAiC,IAAI,GAiCpC;;IChCD;QAAA;YACS,WAAM,GAAG,EAAE,CAAC;SAKpB;QAHQ,6BAAK,GAAZ,UAAc,IAAS;YACrB,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;SAC/B;QACH,oBAAC;IAAD,CAAC,IAAA;;ICPD;QAGE;YAFO,WAAM,GAAG,EAAE,CAAC;YACZ,WAAM,GAA0B,IAAW,CAAA;YAEhD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;SACtD;QAIH,sBAAC;IAAD,CAAC,IAAA;;ICRD;QAAA;YACS,WAAM,GAAQ,EAAE,CAAC;SAczB;QAZQ,kCAAK,GAAZ,UAAc,IAAS;YACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;;;;;YAKpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;gBAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;aACnB;iBAAM;gBACL,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;aACvD;SACF;QACH,yBAAC;IAAD,CAAC,IAAA;;ICfD;QAA+B,6BAAI;QACjC;;QAEU,gBAAqF;YAArF,iCAAA,EAAA,iCAAmF,OAAA,EAAE,GAAA;YAF/F,YAIE,iBAAO,SACR;YAHS,sBAAgB,GAAhB,gBAAgB,CAAqE;;SAG9F;;;;;QAKQ,yBAAK,GAAd;;;;;wBACQ,OAAO,GAAG,IAAI,aAAa,EAAE,CAAA;wBACnC,qBAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAA;;wBAApC,SAAoC,CAAA;wBACpC,sBAAO,OAAO,CAAC,MAAM,EAAA;;;SACtB;QACH,gBAAC;IAAD,CAhBA,CAA+B,IAAI,GAgBlC;;aCTe,YAAY,CAAE,GAAQ;QACpC,QACE,GAAG;YACH,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YACtB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YACnB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EACpB;IACH,CAAC;;ICjBD,IAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAA;AAC1B,IAAO,IAAM,aAAa,GAAG;QAC3B,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,IAAI,SAAS,EAAE;QACxB,OAAO,EAAE,IAAI,SAAS,EAAE;KACzB,CAAA;;aCQe,UAAU,CAAW,KAAmB;;QACtD,IAAM,IAAI,GAAY,EAAE,CAAA;;YACxB,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,4BAAE;gBAAvC,IAAA,KAAA,mBAAY,EAAX,MAAI,QAAA,EAAE,IAAI,QAAA;gBACpB,IAAI,IAAI,GAA8B,IAAI,CAAA;gBAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAM,CAAC,GAAG,MAAI,CAAC,CAAC,CAAC,CAAA;oBACjB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;oBAEvB,IAAI,CAAC,KAAK,MAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAI,CAAC,CAAC,CAAC,CAAC,EAAE;wBAC5C,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAA;qBAC5B;oBAED,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;iBACf;gBAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;aAChB;;;;;;;;;QACD,OAAO,IAAI,CAAA;IACb,CAAC;;ICpCD;AACA,aAAsB,SAAS,CAAK,GAAoD;;;;;;wBACtF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;4BAAE,sBAAO,GAAG,EAAA;wBAE5B,IAAI,GAAG,KAAK,CAAA;wBACZ,IAAI,GAAG,MAAM,CAAA;;;wBAET,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;wBAC9B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;wBACjB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;wBACnB,IAAI,GAAG,MAAM,CAAA;;;;wBAEX,IAAI,UAAU,CAAC,KAAK,CAAC;4BAAE,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;6BAC3C,SAAS,CAAC,KAAK,CAAC,EAAhB,wBAAgB;wBAAU,qBAAM,KAAK,EAAA;;wBAAnB,KAAK,GAAG,SAAW,CAAA;;;;;wBAEzC,IAAI,GAAG,OAAO,CAAA;wBACd,KAAK,GAAG,KAAG,CAAA;;;4BAEN,CAAC,IAAI;;4BACd,sBAAO,KAAU,EAAA;;;;KAClB;IAED;AACA,aAAgB,WAAW,CAAK,GAAuC;QACrE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAA;QAChC,IAAI,KAAU,CAAA;QACd,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,IAAI,IAAI,GAAG,MAAM,CAAA;QACjB,GAAG;YACD,IAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACjB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;YACnB,IAAI,GAAG,MAAM,CAAA;YACb,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;gBACrB,IAAI;oBACF,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;iBAC3B;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,GAAG,OAAO,CAAA;oBACd,KAAK,GAAG,GAAG,CAAA;iBACZ;aACF;SACF,QAAQ,CAAC,IAAI,EAAC;QACf,OAAO,KAAK,CAAA;IACd,CAAC;;IC1CD,IAAM,OAAO,GAAG,+BAA+B,CAAA;IAO/C;IACA,SAAS,WAAW,CAAE,CAAa;QACjC,IAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;QACnC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1D,CAAC;IACD,SAAS,YAAY,CAAE,CAAa;QAClC,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE;YACrC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SACzB;QACD,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IACD,SAAS,aAAa,CAAE,CAAa,EAAE,QAAgB;;QAErD,IAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;;QAErD,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5C,IAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAA;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACjD,CAAC;IACD,SAAS,UAAU,CAAE,CAAa;QAChC,IAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IACD,SAAS,OAAO,CAAE,CAAa;QAC7B,IAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAA;QACxB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QAE5C,QAAQ,IAAI,GAAG,EAAE;YACf,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;YACnB,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;YACnB,KAAK,CAAC,EAAE,OAAO,IAAI,CAAA;YACnB,SAAS,OAAO,IAAI,CAAA;SACrB;IACH,CAAC;IACD,SAAS,OAAO,CAAE,CAAa;QAC7B,OAAO,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjE,CAAC;IAED;IACA,IAAM,SAAS,GAAG;QAChB,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;KACL,CAAA;IAED,IAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;IAE3C,SAAS,iBAAiB,CAAE,CAAa,EAAE,IAAmB;QAC5D,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAC/C,IAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;QAClC,IAAM,CAAC,GAAG,OAAO,GAAG,EAAE,CAAA;QACtB,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;YAC3C,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;aAClB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YAC5B,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,IAAM,WAAW,GAAG;QAClB,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,mBAAmB,EAAE,GAAA;QAC7C,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,kBAAkB,EAAE,GAAA;QAC5C,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,iBAAiB,EAAE,GAAA;QAC3C,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,gBAAgB,EAAE,GAAA;QAC1C,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,GAAA;QACxC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,GAAA;QAChC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,OAAO,EAAE,GAAA;QACjC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,OAAO,EAAE,GAAA;QACjC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAE,GAAA;QAClC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,GAAA;QACrD,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,YAAY,CAAC,CAAC,CAAC,GAAA;QACrC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAE,GAAA;QAClC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,GAAA;QACrD,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,GAAA;QACzC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAA;QACtC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,UAAU,EAAE,GAAA;QACpC,CAAC,EAAE,UAAC,CAAa,EAAE,IAAmB;YACpC,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACrC,IAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;YACvD,OAAO,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;SAC/B;QACD,CAAC,EAAE,UAAC,CAAa,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,IAAC;QACvD,CAAC,EAAE,UAAC,CAAa,IAAK,QAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,IAAC;QACvD,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,GAAA;QAChC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAA;QACpD,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,UAAU,EAAE,GAAA;QACpC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,GAAA;QACrC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA;QACzC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,MAAM,EAAE,GAAA;QAChC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA;QACzC,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,kBAAkB,EAAE,GAAA;QAC5C,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,kBAAkB,EAAE,GAAA;QAC5C,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA;QAC5D,CAAC,EAAE,UAAC,CAAa,IAAK,OAAA,CAAC,CAAC,WAAW,EAAE,GAAA;QACrC,CAAC,EAAE,iBAAiB;QACpB,CAAC,EAAE,UAAC,CAAa,EAAE,IAAmB,IAAK,OAAA,CAAC,CAAC,eAAe,EAAE,IAAI,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAA;QAC5F,GAAG,EAAE,cAAM,OAAA,IAAI,GAAA;QACf,GAAG,EAAE,cAAM,OAAA,IAAI,GAAA;QACf,GAAG,EAAE,cAAM,OAAA,GAAG,GAAA;KACf,CAAC;IACD,WAAmB,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAA;AAEtC,aAAgB,QAAQ,CAAE,CAAa,EAAE,SAAiB;QACxD,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,SAAS,GAAG,SAAS,CAAA;QACzB,IAAI,KAAK,CAAA;QACT,QAAQ,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG;YACxC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;YACzC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAC1D,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;SAC3B;QACD,OAAO,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC;IAED,SAAS,MAAM,CAAE,CAAa,EAAE,KAAsB;;QAC9C,IAAA,KAAA,OAAqD,KAAK,IAAA,EAAzD,KAAK,QAAA,EAAE,UAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA,EAAE,KAAK,QAAA,EAAE,QAAQ,QAAA,EAAE,UAAU,QAAS,CAAA;QAChE,IAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAA;QAC1B,IAAM,KAAK,GAAG,EAAE,CAAA;;YAChB,KAAmB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA;gBAArB,IAAM,IAAI,oBAAA;gBAAa,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;aAAA;;;;;;;;;QAC9C,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC,CAAA;QACxD,IAAI,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA;QACvD,IAAI,QAAQ,GAAG,KAAK,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;aAClC,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;QAC1C,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,CAAA;aACxB,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,CAAA;QAClC,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,QAAQ,GAAG,CAAC,CAAA;QAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzC,CAAC;;aCnJe,iBAAiB;QAC/B,QAAQ,OAAO,IAAI,KAAK,WAAW,GAAG,IAAI,CAAC,cAAc,GAAG,SAAS,EAAC;IACxE,CAAC;;ICCD;IACA,IAAM,SAAS,GAAG,KAAK,CAAA;IACvB;;;;IAIA,IAAM,gBAAgB,GAAG,gCAAgC,CAAA;IACzD,IAAM,UAAU,GAAG;QACjB,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;QACxE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU;KAC/C,CAAA;IACD,IAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA,CAAC,CAAA;IAChE,IAAM,QAAQ,GAAG;QACf,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU;KAC7E,CAAA;IACD,IAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA,CAAC,CAAA;IAE5D;;;;;;;IAOA;QAOE,oBACE,IAA4B,EACpB,MAAc,EACtB,QAA0B;YADlB,WAAM,GAAN,MAAM,CAAQ;YAJhB,mBAAc,GAAG,iBAAiB,EAAE,CAAA;YAO1C,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC,aAAa,GAAG,QAAQ,KAAK,SAAS,CAAA;YAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA;aACzC;YACD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAA;YACvG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAA;YAEtD,IAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAA;YAC9E,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;YACvC,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;SAClC;QAED,4BAAO,GAAP;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAA;SAClC;QACD,oCAAe,GAAf;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;SAC1C;QACD,+BAAU,GAAV;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAA;SACrC;QACD,+BAAU,GAAV;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAA;SACrC;QACD,6BAAQ,GAAR;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAA;SACnC;QACD,2BAAM,GAAN;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;SACjC;QACD,4BAAO,GAAP;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAA;SAClC;QACD,6BAAQ,GAAR;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAA;SACnC;QACD,gCAAW,GAAX;YACE,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;SACtC;QACD,mCAAc,GAAd,UAAgB,MAAe,EAAE,IAAU;YACzC,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE;gBAClB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;aAC9C;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;SACrD;QACD,uCAAkB,GAAlB,UAAoB,MAAe;YACjC,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;SACnD;QACD,uCAAkB,GAAlB,UAAoB,MAAe;YACjC,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;SACnD;QACD,sCAAiB,GAAjB;YACE,OAAO,IAAI,CAAC,cAAe,CAAA;SAC5B;QACD,oCAAe,GAAf;YACE,IAAI,IAAI,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAA;YAChD,IAAI,CAAC,IAAI,CAAC,cAAc;gBAAE,OAAM;YAChC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAA;SACxD;QACD,qCAAgB,GAAhB;;YACE,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,mCAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;SACrE;QACD,sCAAiB,GAAjB;;YACE,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,mCAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;SAC3E;QACD,uCAAkB,GAAlB;;YACE,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,mCAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;SAC/E;QACD,wCAAmB,GAAnB;;YACE,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,mCAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;SACrF;QACD,0BAAK,GAAL;YACE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;SAC9B;QACO,2BAAM,GAAd,UAAgB,OAAmC;YACjD,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;SACjG;;;;;;;;;;;;;;QAeM,oCAAyB,GAAhC,UAAkC,UAAkB,EAAE,MAAc;YAClE,IAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;;YAE5C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACrB,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;aACxD;;YAED,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvB,IAAA,KAAA,OAA6B,CAAC,IAAA,EAAzB,IAAI,QAAA,EAAE,KAAK,QAAA,EAAE,OAAO,QAAK,CAAA;gBACpC,IAAM,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC3F,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;aAC7D;YACD,OAAO,IAAI,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;SAC1C;QACc,4BAAiB,GAAhC,UAAkC,YAAoB,EAAE,IAAU;YAChE,IAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAA;YAChF,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;YAEvE,IAAM,SAAS,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAA;YAC3C,IAAM,OAAO,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAA;YACvC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,EAAE,GAAG,IAAI,CAAC,CAAA;SAC7C;QACH,iBAAC;IAAD,CAAC,IAAA;;ICvJD;QAIE,iBAAa,QAAgB,EAAE,KAAa;YAFpC,SAAI,GAAG,CAAC,CAAA;YAGd,IAAI,CAAC,OAAO,GAAG,UAAG,QAAQ,oBAAiB,CAAA;YAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;SACnB;QACD,qBAAG,GAAH,UAAK,KAAa;YAChB,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACrD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAA;SACnB;QACD,uBAAK,GAAL,UAAO,KAAa;YAClB,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA;YACnB,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;SAC1C;QACH,cAAC;IAAD,CAAC,IAAA;;ICfD;QAA6C,kCAAK;QAIhD,wBACE,IAAe,EACf,EAA4C,EAC5C,KAAa,EACb,KAAa,EACb,GAAW,EACX,QAAiB,EACjB,SAAkB,EAClB,IAAa;gBANb,KAAA,aAA4C,EAA3C,YAAY,QAAA,EAAE,UAAU,QAAA;YAF3B,YAUE,kBAAM,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAYrC;YAzBM,cAAQ,GAAG,KAAK,CAAA;YAChB,eAAS,GAAG,KAAK,CAAA;YAatB,IAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,GAAG,CAAA;YACtC,IAAM,EAAE,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,GAAG,CAAA;YAExC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,CAAA;YAC5C,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,CAAA;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAAE,CAAC,EAAE,CAAA;YACzD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBAAE,CAAC,EAAE,CAAA;YAE7D,KAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1B,KAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,QAAQ,CAAA;YAC9B,KAAI,CAAC,SAAS,GAAG,EAAE,IAAI,SAAS,CAAA;;SACjC;QACD,sBAAI,mCAAO;iBAAX;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;aACpE;;;WAAA;QACH,qBAAC;IAAD,CA9BA,CAA6C,KAAK,GA8BjD;;;QC9B6B,4BAAc;QAI1C,kBACE,KAAa,EACb,KAAa,EACb,GAAW,EACX,OAA8B,EAC9B,IAAa;YALf,iBAgBC;YATS,IAAA,WAAW,GAAwD,OAAO,YAA/D,EAAE,YAAY,GAA0C,OAAO,aAAjD,EAAE,gBAAgB,GAAwB,OAAO,iBAA/B,EAAE,iBAAiB,GAAK,OAAO,kBAAZ,CAAY;YAC5E,IAAA,KAAA,OAAyB,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAA,EAAzF,UAAU,QAAA,EAAE,QAAQ,QAAqE,CAAA;oBAChG,kBAAMC,iBAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC;YAEhG,KAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAI,CAAC,YAAY,CAAC,CAAA;YACjF,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAA;YACxC,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAA;YACzE,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAC1B,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;;SAC/E;QACH,eAAC;IAAD,CArBA,CAA8B,cAAc;;ICA5C;QAAiC,+BAAc;QAC7C,qBACE,KAAa,EACb,KAAa,EACb,GAAW,EACX,OAA8B,EAC9B,IAAa;YAEL,IAAA,cAAc,GAAiE,OAAO,eAAxE,EAAE,eAAe,GAAgD,OAAO,gBAAvD,EAAE,mBAAmB,GAA2B,OAAO,oBAAlC,EAAE,oBAAoB,GAAK,OAAO,qBAAZ,CAAY;YAC9F,IAAM,UAAU,GAAqB,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;mBAC5G,kBAAMA,iBAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC;SAC9F;QACH,kBAAC;IAAD,CAZA,CAAiC,cAAc,GAY9C;;ICbD;QAA+B,6BAAK;QAGlC,mBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YAJtB,YAME,kBAAMA,iBAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAC/C;YANQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAS;YANtB,cAAQ,GAAG,CAAC,CAAA;YACZ,eAAS,GAAG,CAAC,CAAA;;SAQZ;QACM,8BAAU,GAAjB;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;SAC/E;QACH,gBAAC;IAAD,CAdA,CAA+B,KAAK,GAcnC;;ICdD;QAAiC,+BAAK;QAEpC,qBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YAJtB,YAME,kBAAMA,iBAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAEjD;YAPQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAS;YAGpB,KAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAI,CAAC,OAAO,EAAE,CAAC,CAAA;;SACtC;QACH,kBAAC;IAAD,CAXA,CAAiC,KAAK,GAWrC;;ICXD;QAAqC,mCAAK;QAExC,yBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YAJtB,YAME,kBAAMA,iBAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAE/C;YAPQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAS;YAGpB,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,OAAO,EAAE,CAAA;;SAC9B;QACH,sBAAC;IAAD,CAXA,CAAqC,KAAK,GAWzC;;ICVD;QAAkC,gCAAK;QAGrC,sBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YAJtB,YAME,kBAAMA,iBAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAGlD;YARQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAS;YAGpB,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,OAAO,EAAE,CAAA;YAC7B,KAAI,CAAC,OAAO,GAAG,aAAa,CAAC,KAAI,CAAC,OAAO,CAAC,CAAA;;SAC3C;QACH,mBAAC;IAAD,CAbA,CAAkC,KAAK,GAatC;;ICTM,IAAM,mBAAmB,GAAG;QACjC,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;KACR,CAAA;AAED,IAAO,IAAM,aAAa,GAAG;QAC3B,IAAI;QACJ,IAAI;QACJ,GAAG;QACH,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,UAAU;QACV,KAAK;QACL,KAAK;QACL,IAAI;KACL,CAAA;IAED;QAAmC,iCAAK;QAEtC,uBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YAJtB,YAME,kBAAMA,iBAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAEnD;YAPQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAS;YAGpB,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,EAAE,CAAA;;SAC/B;QACD,qCAAa,GAAb;YACE,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YAC1B,OAAO,GAAG,IAAI,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACjE;QACH,oBAAC;IAAD,CAfA,CAAmC,KAAK,GAevC;;ICxCD;QAAyC,uCAAK;QAC5C,6BACS,QAA2E,EAC3E,KAAuC,EAC9C,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YANf,YAQE,kBAAMA,iBAAS,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SACzD;YARQ,cAAQ,GAAR,QAAQ,CAAmE;YAC3E,WAAK,GAAL,KAAK,CAAkC;;SAO/C;QACH,0BAAC;IAAD,CAXA,CAAyC,KAAK,GAW7C;;IChBD;QAAiC,+BAAK;QACpC,qBACS,IAAY,EACZ,IAAiB,EACxB,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YANf,YAQE,kBAAMA,iBAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SACjD;YARQ,UAAI,GAAJ,IAAI,CAAQ;YACZ,UAAI,GAAJ,IAAI,CAAa;;SAOzB;QACH,kBAAC;IAAD,CAXA,CAAiC,KAAK,GAWrC;;ICVD;QAA+B,6BAAK;QAClC,mBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAqB,EACrB,KAAkB,EAClB,IAAa;YANtB,YAQE,kBAAMA,iBAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAC/C;YARQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAiB;YACrB,WAAK,GAAL,KAAK,CAAa;YAClB,UAAI,GAAJ,IAAI,CAAS;;SAGrB;QACH,gBAAC;IAAD,CAXA,CAA+B,KAAK,GAWnC;;IChBD,IAAM,IAAI,GAAG,YAAY,CAAA;IACzB,IAAM,IAAI,GAAG,OAAO,CAAA;IACpB,IAAM,UAAU,GAAG;QACjB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,MAAM;KACV,CAAA;IAED,SAAS,MAAM,CAAE,CAAS;QACxB,IAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,IAAI,IAAI,EAAE;YAAE,OAAO,IAAI,GAAG,EAAE,CAAA;QAChC,IAAI,IAAI,IAAI,EAAE;YAAE,OAAO,IAAI,GAAG,EAAE,CAAA;QAChC,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;AAED,aAAgB,kBAAkB,CAAE,GAAW;QAC7C,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;gBACnB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;gBACb,SAAQ;aACT;YACD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBACxC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC5B;iBAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;gBAC7B,IAAI,GAAG,GAAG,CAAC,CAAA;gBACX,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACb,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;iBAClC;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACT,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;aAChC;iBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACjC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;aAChB;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACb,IAAI,GAAG,GAAG,CAAC,CAAA;gBACX,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;oBACtC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;iBACjC;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACT,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;aAChC;SACF;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;;IC5CD;QAAiC,+BAAK;QAEpC,qBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YAJtB,YAME,kBAAMA,iBAAS,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAEjD;YAPQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAS;YAGpB,KAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,KAAI,CAAC,OAAO,EAAE,CAAC,CAAA;;SAClD;QACH,kBAAC;IAAD,CAXA,CAAiC,KAAK,GAWrC;;ICXD;QAAgC,8BAAK;QACnC,oBACS,KAAa,EACb,KAAa,EACb,GAAW,EACX,GAAe,EACf,GAAe,EACf,IAAa;YANtB,YAQE,kBAAMA,iBAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAChD;YARQ,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,SAAG,GAAH,GAAG,CAAY;YACf,SAAG,GAAH,GAAG,CAAY;YACf,UAAI,GAAJ,IAAI,CAAS;;SAGrB;QACH,iBAAC;IAAD,CAXA,CAAgC,KAAK,GAWpC;;ICXD;;;IAGA;QAAoC,kCAAc;QAGhD,wBACE,KAAa,EACb,KAAa,EACb,GAAW,EACX,OAA8B,EAC9B,IAAa;YALf,YAOE,kBAAMA,iBAAS,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,SAK1E;YAJC,KAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAI,CAAC,YAAY,CAAC,CAAA;YACjF,KAAI,CAAC,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAA;YACxC,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAA;YAC7D,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;;SAC3B;QAED,sBAAI,gCAAI;iBAAR;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;aAC1E;;;WAAA;QACH,qBAAC;IAAD,CApBA,CAAoC,cAAc,GAoBjD;;ICtBD;;;;;IAKA;QAAwC,sCAAK;QAC3C,4BACS,OAAmB,EACnB,OAAsB,EACtB,KAAa,EACb,KAAa,EACb,GAAW,EACX,IAAa;YANtB,YAQE,kBAAMA,iBAAS,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SACxD;YARQ,aAAO,GAAP,OAAO,CAAY;YACnB,aAAO,GAAP,OAAO,CAAe;YACtB,WAAK,GAAL,KAAK,CAAQ;YACb,WAAK,GAAL,KAAK,CAAQ;YACb,SAAG,GAAH,GAAG,CAAQ;YACX,UAAI,GAAJ,IAAI,CAAS;;SAGrB;QACH,yBAAC;IAAD,CAXA,CAAwC,KAAK,GAW5C;;ICjBD,IAAM,QAAQ,GAAsB;QAClC,GAAG,EAAE,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,GAAA;KACtB,CAAA;AAED,aAAgB,cAAc;QAC5B,OAAO,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW;aACrD,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC;YAClD,QAAQ,CAAA;IACZ,CAAC;;ICND;QAAA;SA+BC;QA9BQ,4CAA2B,GAAlC,UAAoC,SAAqB,EAAE,GAAY;YAAvE,iBAKC;YAJC,IAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAA;YACrC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,cAAM,OAAA,SAAS,CAAC,KAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,GAAA,CAAC;iBACnF,IAAI,CAAC,cAAM,OAAA,OAAO,CAAC,GAAG,EAAE,GAAA,EAAE,UAAA,GAAG,IAAI,OAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAA,CAAC,CAAA;YACvD,OAAO,OAAO,CAAC,MAAM,CAAA;SACtB;QACQ,gCAAe,GAAxB,UAA0B,SAAqB,EAAE,GAAY,EAAE,OAAiB;;;;;;wBAC9E,IAAI,CAAC,OAAO,EAAE;4BACZ,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAkB,EAAE,GAAG,IAAI,aAAa,EAAE,CAAA;yBACnF;wBACK,MAAM,GAAG,EAAE,CAAA;;;;wBACC,cAAA,SAAA,SAAS,CAAA;;;;wBAAhB,GAAG;wBACZ,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;;;;wBAG9B,qBAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC;;0BAAA;;wBAArC,IAAI,GAAG,SAA8B;;wBAE3C,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;wBAC3B,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,cAAc;4BAAE,wBAAK;;;;wBAE1C,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,GAAC,CAAC,GAAG,GAAC,GAAG,IAAI,WAAW,CAAC,GAAU,EAAE,GAAG,CAAC,CAAA;wBACpE,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc;4BAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;4BACxC,MAAM,GAAG,CAAA;;;;;;;;;;;;;;;;;wBAGlB,IAAI,MAAM,CAAC,MAAM,EAAE;4BACjB,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;yBAC/B;wBACD,sBAAO,OAAO,CAAC,MAAM,EAAA;;;SACtB;QACH,aAAC;IAAD,CAAC,IAAA;;;QC5BC,oBAAoB,MAA+B;YACjD,IAAI,CAAC,OAAO,4BAAO,SAAS,CAAC,MAAM,CAAC,SAAC,CAAA;SACtC;QACQ,6BAAQ,GAAjB,UAAmB,GAAY,EAAE,OAAiB;;;;;;wBAChD,MAAM,CAAC,GAAG,EAAE,yCAAyC,CAAC,CAAA;wBAChD,QAAQ,GAAU,EAAE,CAAA;;;;wBACN,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA;;;;wBAArB,KAAK;6BACV,eAAe,CAAC,KAAK,CAAC,EAAtB,wBAAsB;wBAClB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;wBACpB,MAAM,SAAA,CAAA;8BACN,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,gCAAuB,EAApD,wBAAoD;wBAC7C,qBAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAA0B,CAAC,CAAC,EAAE,GAAG,CAAC,EAAA;;wBAAnF,MAAM,GAAG,SAA0E,CAAA;;;wBAE7E,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAA;wBACf,qBAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAA;;wBAA5D,MAAM,GAAG,SAAmD,CAAA;;;wBAE9D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;;;wBAErB,KAAA,CAAA,KAAA,QAAQ,EAAC,IAAI,CAAA;wBAAC,qBAAM,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAlD,cAAc,SAAoC,EAAC,CAAA;;;;;;;;;;;;;;;;6BAGvD,sBAAO,QAAQ,CAAC,CAAC,CAAC,EAAA;;;SACnB;QACM,0BAAK,GAAZ;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;SAC7B;QACH,iBAAC;IAAD,CAAC,IAAA;aAEiB,SAAS,CAAE,KAAwB,EAAE,GAAY,EAAE,OAAe;QAAf,wBAAA,EAAA,eAAe;;;;oBAClF,IAAI,CAAC,KAAK;wBAAE,sBAAM;oBAClB,IAAI,SAAS,IAAI,KAAK;wBAAE,sBAAO,KAAK,CAAC,OAAO,EAAA;yBACxC,qBAAqB,CAAC,KAAK,CAAC,EAA5B,wBAA4B;oBAAS,qBAAM,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;wBAAzD,sBAAO,SAAkD,EAAA;;yBACvF,YAAY,CAAC,KAAK,CAAC,EAAnB,wBAAmB;oBAAS,qBAAM,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,EAAA;wBAAvC,sBAAO,SAAgC,EAAA;;;;KACjE;IAED,SAAW,uBAAuB,CAAE,KAA0B,EAAE,GAAY,EAAE,OAAgB;;;;;;oBACtF,KAAK,GAA+B,EAAE,CAAA;;;;oBACzB,KAAA,SAAA,KAAK,CAAC,KAAK,CAAA;;;;oBAAnB,IAAI;oBACb,KAAA,CAAA,KAAA,KAAK,EAAC,IAAI,CAAA;oBAAE,qBAAM,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAA;;oBAA7C,eAAY,SAAiC,GAAuC,CAAA;;;;;;;;;;;;;;;;;;yBAGhF,KAAK,CAAC,QAAQ,EAAd,yBAAc;oBACC,qBAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;oBAAxD,QAAQ,GAAG,SAA6C;oBACvD,qBAAM,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAA;yBAA/C,sBAAO,SAAwC,EAAA;yBAExC,qBAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAA;yBAA5B,sBAAO,SAAqB,EAAA;;;;oBAG9B,IAAI,OAAO,IAAK,GAAW,CAAC,IAAI,KAAK,gCAAgC;wBAAE,sBAAO,IAAI,EAAA;oBAClF,OAAO,IAAI,sBAAsB,CAAC,GAAU,EAAE,KAAK,CAAC,EAAC;;;;KAExD;AAED,aAAgB,eAAe,CAAE,KAAkB;QACjD,OAAO,KAAK,CAAC,OAAO,CAAA;IACtB,CAAC;IAED,SAAW,cAAc,CAAE,KAAiB,EAAE,GAAY;;;;wBACpC,qBAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAA;;oBAA7C,GAAG,GAAW,SAA+B;oBAC9B,qBAAM,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAA;;oBAA9C,IAAI,GAAW,SAA+B;oBACpD,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;oBACnC,sBAAO,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,EAAA;;;KAC9B;IAED,SAAW,SAAS,CAAE,MAA+B;;;;;;oBAC7C,GAAG,GAAoB,EAAE,CAAA;;;;oBACX,WAAA,SAAA,MAAM,CAAA;;;;oBAAf,KAAK;yBACV,eAAe,CAAC,KAAK,CAAC,EAAtB,wBAAsB;;;0BACjB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,CAAA;oBAC9E,qBAAM,GAAG,CAAC,GAAG,EAAG,EAAA;;oBAAhB,SAAgB,CAAA;;;oBAElB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;wBACV,qBAAM,KAAK,EAAA;;oBAAX,SAAW,CAAA;;;;;;;;;;;;;;;;;yBAEb,GAAG,CAAC,MAAM;oBACf,qBAAM,GAAG,CAAC,GAAG,EAAG,EAAA;;oBAAhB,SAAgB,CAAA;;;;;KAEnB;;aCnFe,QAAQ,CAAE,GAAQ,EAAE,GAAY;QAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC3B,CAAC;AAED,aAAgB,OAAO,CAAE,GAAQ,EAAE,GAAY;QAC7C,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAElB,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YACrB,OAAO,CAAC,GAAG,CAAA;SACZ;aAAM;YACL,OAAO,GAAG,KAAK,KAAK,IAAI,SAAS,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,CAAA;SAC1D;IACH,CAAC;;QCJY,gBAAgB,GAAc;QACzC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,UAAC,CAAM,EAAE,CAAM,IAAK,OAAA,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA;QACvC,GAAG,EAAE,UAAC,CAAM,EAAE,CAAM;YAClB,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACnC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;SAC/B;QACD,GAAG,EAAE,UAAC,CAAM,EAAE,CAAM;YAClB,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACnC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;SAC/B;QACD,IAAI,EAAE,UAAC,CAAM,EAAE,CAAM;YACnB,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpC,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;SAChC;QACD,IAAI,EAAE,UAAC,CAAM,EAAE,CAAM;YACnB,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,YAAY,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACpC,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;SAChC;QACD,UAAU,EAAE,UAAC,CAAM,EAAE,CAAM;YACzB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACd,IAAI,OAAO,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAA,CAAC,CAAA;YAClD,IAAI,UAAU,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAC;gBAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC7D,OAAO,KAAK,CAAA;SACb;QACD,KAAK,EAAE,UAAC,CAAM,EAAE,GAAY,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAA;QACzD,KAAK,EAAE,UAAC,CAAM,EAAE,CAAM,EAAE,GAAY,IAAK,OAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAA;QAC/F,IAAI,EAAE,UAAC,CAAM,EAAE,CAAM,EAAE,GAAY,IAAK,OAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAA;KAC/F,CAAA;AAED,aAAgB,MAAM,CAAE,GAAQ,EAAE,GAAQ;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAI,YAAY,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC7C,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAClB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAClB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;YAChB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAC7C;QACD,OAAO,GAAG,KAAK,GAAG,CAAA;IACpB,CAAC;IAED,SAAS,WAAW,CAAE,GAAU,EAAE,GAAU;QAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAC,KAAK,EAAE,CAAC,IAAK,OAAA,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAA,CAAC,CAAA;IACxD,CAAC;AAED,aAAgB,aAAa,CAAE,GAAU,EAAE,IAAS;QAClD,OAAO,GAAG,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAA,CAAC,CAAA;IAC/C,CAAC;;IC7DD;QACE,cACS,GAAW,EACX,KAAQ,EACR,IAAa,EACb,IAAa;YAHb,QAAG,GAAH,GAAG,CAAQ;YACX,UAAK,GAAL,KAAK,CAAG;YACR,SAAI,GAAJ,IAAI,CAAS;YACb,SAAI,GAAJ,IAAI,CAAS;SAClB;QACN,WAAC;IAAD,CAAC,IAAA;IAED;QAKE,aACS,KAAa,EACb,IAAQ;YAAR,qBAAA,EAAA,QAAQ;YADR,UAAK,GAAL,KAAK,CAAQ;YACb,SAAI,GAAJ,IAAI,CAAI;YANT,UAAK,GAA4B,EAAE,CAAA;YAQzC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAI,MAAM,EAAE,IAAW,EAAE,IAAW,EAAE,IAAW,CAAC,CAAA;YACtE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAI,MAAM,EAAE,IAAW,EAAE,IAAW,EAAE,IAAW,CAAC,CAAA;YACtE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;SAC3B;QAED,mBAAK,GAAL,UAAO,GAAW,EAAE,KAAQ;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;aAC9B;iBAAM;gBACL,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;gBAErB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;gBACtB,IAAI,CAAC,IAAI,EAAE,CAAA;gBACX,IAAI,CAAC,WAAW,EAAE,CAAA;aACnB;SACF;QAED,kBAAI,GAAJ,UAAM,GAAW;YACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE,OAAM;YACpB,IAAA,KAAK,GAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAApB,CAAoB;YACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAChB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACtB,OAAO,KAAK,CAAA;SACb;QAED,oBAAM,GAAN,UAAQ,GAAW;YACjB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,IAAI,EAAE,CAAA;SACZ;QAED,mBAAK,GAAL;YACE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;YAC1B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;SAChB;QAEO,yBAAW,GAAnB;YACE,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC5D;QACH,UAAC;IAAD,CAAC,IAAA;;IChED,SAAS,UAAU,CAAE,IAAY,EAAE,IAAY;QAC7C,IAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAEhB,IAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAExC,IAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;QACb,IAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAEtB,OAAO,QAAQ,CAAA;IACjB,CAAC;AAED,aAAgB,OAAO,CAAE,IAAY,EAAE,QAAgB,EAAE,GAAW;QAClE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;YAAE,IAAI,IAAI,GAAG,CAAA;QAClD,IAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACtC,OAAO,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAC,GAAG,EAAE,MAAM,EAAE,IAAI;YAChE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;YAClC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,GAAG,CAAA;YACnC,OAAO,MAAM,GAAG,IAAI,GAAG,GAAG,CAAA;SAC3B,CAAC,CAAA;IACJ,CAAC;AAED,aAAsB,QAAQ,CAAE,GAAW;;;gBACzC,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;wBACjC,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;wBAChC,GAAG,CAAC,MAAM,GAAG;4BACX,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;gCACzC,OAAO,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAA;6BACpC;iCAAM;gCACL,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;6BAClC;yBACF,CAAA;wBACD,GAAG,CAAC,OAAO,GAAG;4BACZ,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAA;yBACtE,CAAA;wBACD,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;wBACpB,GAAG,CAAC,IAAI,EAAE,CAAA;qBACX,CAAC,EAAA;;;KACH;AAED,aAAgB,YAAY,CAAE,GAAW;QACvC,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;QAChC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3B,GAAG,CAAC,IAAI,EAAE,CAAA;QACV,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;SAChC;QACD,OAAO,GAAG,CAAC,YAAsB,CAAA;IACnC,CAAC;AAED,aAAsB,MAAM,CAAE,QAAgB;;;gBAC5C,sBAAO,IAAI,EAAA;;;KACZ;AAED,aAAgB,UAAU,CAAE,QAAgB;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;AAED,aAAgB,OAAO,CAAE,QAAgB;QACvC,OAAO,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC;AAED,IAAO,IAAM,GAAG,GAAG,GAAG,CAAA;;;;;;;;;;;;;IC/DtB,SAAS,aAAa,CAA4C,KAAS,EAAE,YAAgB;QAAE,cAA6B;aAA7B,UAA6B,EAA7B,qBAA6B,EAA7B,IAA6B;YAA7B,6BAA6B;;QAC1H,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,GAAG,YAAY,CAAA;QACjF,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;YAAE,OAAO,KAAW,CAAA;QAC7E,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,KAAK,CAAA;IAC5D,CAAC;IAED,SAAS,IAAI,CAAE,KAAU,EAAE,KAAS;QAAT,sBAAA,EAAA,SAAS;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,SAAS,OAAO,CAAE,KAAU,EAAE,KAAS;QAAT,sBAAA,EAAA,SAAS;QACrC,IAAM,SAAS,GAAa,EAAE,CAAA;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAyB,IAAa,EAAE,KAAU;YAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;;YAE7D,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;gBAAE,SAAS,CAAC,GAAG,EAAE,CAAA;YACxF,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,YAAY,CAAA;YAClD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrB,OAAO,KAAK,CAAA;SACb,EAAE,KAAK,CAAC,CAAA;IACX,CAAC;IAED,SAAS,UAAU,CAAE,KAAU;QAC7B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAED,IAAM,GAAG,GAAG;QACV,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,QAAQ;KAClB,CAAA;AAED,eAAe;QACb,OAAO,EAAE,aAAa;QACtB,GAAG,KAAA;QACH,OAAO,EAAE,IAAI;QACb,UAAU,YAAA;QACV,IAAI,MAAA;QACJ,OAAO,SAAA;KACR,CAAA;;ICxCD,IAAM,SAAS,GAAG;QAChB,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,OAAO;KACb,CAAA;IACD,IAAM,WAAW,GAAG;QAClB,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,GAAG;KACb,CAAA;AAED,aAAgB,MAAM,CAAoB,GAAW;QACnD,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,UAAA,CAAC,IAAI,OAAA,SAAS,CAAC,CAAC,CAAC,GAAA,CAAC,CAAA;IACrD,CAAC;AAED,aAAgB,UAAU,CAAoB,GAAW;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,QAAQ,CAAoB,GAAW;QAC9C,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,UAAA,CAAC,IAAI,OAAA,WAAW,CAAC,CAAC,CAAC,GAAA,CAAC,CAAA;IACnE,CAAC;AAED,aAAgB,WAAW,CAAoB,GAAW;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;AAED,aAAgB,aAAa,CAAoB,CAAS;QACxD,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAC3C,CAAC;AAED,aAAgB,UAAU,CAAoB,CAAS;QACrD,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,0EAA0E,EAAE,EAAE,CAAC,CAAA;IACpG,CAAC;;;;;;;;;;;IC9CD;QACE,eAAqB,OAAgC;YAAhC,YAAO,GAAP,OAAO,CAAyB;YAE9C,QAAG,GAAG,GAAG,CAAA;SAFyC;QAInD,sBAAM,GAAZ,UAAc,QAAgB;;;oBAC5B,sBAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAA;;;SACjC;QAED,0BAAU,GAAV,UAAY,QAAgB;YAC1B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;SACtC;QAEK,wBAAQ,GAAd,UAAgB,QAAgB;;;oBAC9B,sBAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAA;;;SACnC;QAED,4BAAY,GAAZ,UAAc,QAAgB;YAC5B,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAW,QAAQ,CAAE,CAAC,CAAA;YAC1D,OAAO,OAAO,CAAA;SACf;QAED,uBAAO,GAAP,UAAS,QAAgB;YACvB,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACzC,QAAQ,CAAC,GAAG,EAAE,CAAA;YACd,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC/B;QAED,uBAAO,GAAP,UAAS,GAAW,EAAE,IAAY,EAAE,GAAW;;YAC7C,IAAI,IAAI,GAAG,CAAA;YACX,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAA;YAC5B,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;;gBACjC,KAAsB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,gBAAA,4BAAE;oBAAvC,IAAM,OAAO,WAAA;oBAChB,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,EAAE;wBAAE,SAAQ;yBAC1C,IAAI,OAAO,KAAK,IAAI,EAAE;wBACzB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE;4BAAE,QAAQ,CAAC,GAAG,EAAE,CAAA;qBAC9D;;wBAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBAC9B;;;;;;;;;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC/B;QACH,YAAC;IAAD,CAAC,IAAA;;QC2HY,cAAc,GAA0B;QACnD,IAAI,EAAE,CAAC,GAAG,CAAC;QACX,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,QAAQ,EAAE,CAAC,GAAG,CAAC;QACf,iBAAiB,EAAE,IAAI;QACvB,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,GAAG;QACtB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;QACX,EAAE,EAAE,EAAE;QACN,eAAe,EAAE,IAAI;QACrB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,gCAAgC;QAC5C,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,KAAK;QACrB,MAAM,EAAE,IAAI;QACZ,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,mBAAmB,EAAE,IAAI;QACzB,oBAAoB,EAAE,IAAI;QAC1B,iBAAiB,EAAE,KAAK;QACxB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,IAAI;QACrB,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,KAAK;QACrB,SAAS,EAAE,gBAAgB;QAC3B,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,QAAQ;KACtB,CAAA;AAED,aAAgB,SAAS,CAAE,OAAsB;;QAC/C,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAClC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC;gBAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAA;YACxE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC;gBAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAA;SACvE;QACD,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;YACnC,IAAI,KAAK,SAAyB,CAAA;YAClC,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;iBAChG,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;gBAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;;gBAC5D,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;YACtD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;SACtB;QACD,OAAO,kCAAQ,cAAc,IAAM,OAAO,CAAC,aAAa,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,IAAM,OAAO,CAAE,CAAA;QACzG,IAAI,CAAC,CAAC,OAAO,CAAC,EAAG,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAG,CAAC,GAAG,KAAK,OAAO,CAAC,iBAAiB,EAAE;YAC3E,OAAO,CAAC,IAAI,CAAC,oIAAoI,CAAC,CAAA;YAClJ,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAA;SAClC;QACD,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACnD,OAAO,CAAC,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC3D,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACzD,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC5F,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,CAAC,MAAM,GAAG,MAAA,MAAA,iBAAiB,EAAE,4CAAK,eAAe,GAAG,MAAM,mCAAI,OAAO,CAAA;SAC7E;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACzC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAA;YAChC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,CAAA;SACxD;QACD,OAAO,OAAgC,CAAA;IACzC,CAAC;IAED,SAAS,uBAAuB,CAAE,cAAkC;QAClE,IAAI,cAAc,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAA;QAC9C,IAAI,cAAc,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,IAAI,CAAA;QAC/C,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,sDAAsD,CAAC,CAAA;QAC1F,OAAO,cAAc,CAAA;IACvB,CAAC;AAED,aAAgB,sBAAsB,CAAE,KAAU;QAChD,IAAI,IAAI,GAAa,EAAE,CAAA;QACvB,IAAI,OAAO,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,KAAK,CAAA;QAChC,IAAI,QAAQ,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;;aClPe,cAAc,CAAE,MAAe,EAAE,OAA8B;QAC7E,IAAI,KAAK,GAAG,KAAK,CAAA;QAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAAE,SAAQ;YACtC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAC5B,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;aACxC;YAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;gBACrB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;oBAAE,KAAK,GAAG,IAAI,CAAA;qBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAAE,KAAK,GAAG,KAAK,CAAA;aAChD;YAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;gBAC7B,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;aACzC;SACF;IACH,CAAC;IAED,SAAS,QAAQ,CAAE,KAAY,EAAE,MAAe;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAM;QAEzC,IAAM,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAA;QAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI;YAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjG,CAAC;IAED,SAAS,SAAS,CAAE,KAAY,EAAE,MAAe;QAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAAE,OAAM;QAEzC,IAAM,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAA;QAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;YAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC3F,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;IACjF,CAAC;;;QCvBC,mBACS,KAAa,EACpB,SAA+C,EACxC,IAAa,EACpB,KAAwB;YAFxB,0BAAA,EAAA,YAAuB,cAAc,CAAC,SAAS;YADxC,UAAK,GAAL,KAAK,CAAQ;YAEb,SAAI,GAAJ,IAAI,CAAS;YAPd,eAAU,GAAG,CAAC,CAAC,CAAA;YAUrB,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;YACxC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;YACnC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;SAC7C;QAED,kCAAc,GAAd;YACE,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;SACnD;QAEC,wCAAoB,GAAtB;;;;;8BACS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;wBACd,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;6BAChC,QAAQ,EAAR,wBAAQ;wBACV,qBAAM,QAAQ,EAAA;;wBAAd,SAAc,CAAA;wBACd,wBAAQ;;wBAEJ,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;6BAC5B,OAAO,EAAP,wBAAO;wBACT,qBAAM,OAAO,EAAA;;wBAAb,SAAa,CAAA;wBACb,wBAAQ;4BAEV,sBAAM;;;;SAET;QACD,gCAAY,GAAZ;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACvC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAM;YACtB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;SACxE;QACD,6BAAS,GAAT,UAAc,IAAa;YACzB,IAAI,IAAI,GAAgB,IAAI,CAAA;YAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACd,IAAI,IAAI,CAAA;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACxC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC5B,IAAI,IAAI,CAAC,KAAK,CAAC;oBAAE,IAAI,GAAG,IAAI,CAAA;aAC7B;YACD,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,CAAA;YACpB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAA;YACpE,OAAO,CAAC,CAAA;SACT;QACD,qCAAiB,GAAjB;YACE,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,oCAA6B,IAAI,CAAC,QAAQ,EAAE,CAAE,CAAC,CAAA;YAC5E,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAClC,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACtF;QACD,+BAAW,GAAX;YACE,IAAM,OAAO,GAAG,EAAE,CAAA;YAClB,OAAO,IAAI,EAAE;gBACX,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBAChC,IAAI,CAAC,MAAM;oBAAE,OAAO,OAAO,CAAA;gBAC3B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aACrB;SACF;QACD,8BAAU,GAAV;YAAA,iBAyBC;YAxBC,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,GAAG,EAAE;gBAAE,OAAO,IAAI,CAAA;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,8BAA4B,CAAC,CAAA;YAC9D,IAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;gBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC,CAAA;gBAC/C,OAAO,IAAI,CAAA;aACZ;YACD,IAAM,IAAI,GAAG,EAAE,CAAA;YACf,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;gBACvB,GAAG;oBACD,EAAE,IAAI,CAAC,CAAC,CAAA;oBACR,IAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;oBAChC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBACrB,IAAI,CAAC,SAAS,EAAE,CAAA;oBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,cAAM,OAAA,+BAAwB,KAAI,CAAC,QAAQ,EAAE,CAAE,GAAA,CAAC,CAAA;iBACvH,QAAQ,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAC;aAC9B;iBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAE7C;iBAAM;gBACL,MAAM,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;aACnD;YACD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACxF;QAED,iCAAa,GAAb;YACE,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC5B,IAAI,CAAC,GAAG;gBAAE,OAAM;YAChB,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;gBAAE,OAAO,GAAG,CAAA;YACnC,EAAE,IAAI,CAAC,CAAC,CAAA;YACR,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;SAC9B;QAED,sCAAkB,GAAlB,UAAoB,OAA+C;YAA/C,wBAAA,EAAA,wBAA+C;YACjE,IAAM,MAAM,GAAoB,EAAE,CAAA;YAClC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACtB,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;gBAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;YACD,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAA;SACd;QAED,qCAAiB,GAAjB,UAAmB,OAA8B;YACvC,IAAA,gBAAgB,GAA0B,OAAO,iBAAjC,EAAE,mBAAmB,GAAK,OAAO,oBAAZ,CAAY;YACzD,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YACrE,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YACnE,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBAAE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YACzE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,CAAA;SACnE;QAED,iCAAa,GAAb,UAAe,WAAqB;YAApC,iBAOC;YANC,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACtB,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAA,CAAC;oBAAE,MAAK;gBACnD,EAAE,IAAI,CAAC,CAAC,CAAA;aACT;YACD,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SAC3D;QAED,gCAAY,GAAZ,UAAc,OAA8B;YACpC,IAAA,KAAkB,IAAI,EAApB,IAAI,UAAA,EAAE,KAAK,WAAS,CAAA;YAC5B,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC1D,MAAM,IAAI,CAAC,KAAK,CAAC,cAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAa,EAAE,KAAK,CAAC,CAAA;aAClE;YACD,IAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;YAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;gBAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;YACjD,OAAO,KAAK,CAAA;SACb;QAED,mCAAe,GAAf,UAAiB,SAAiB,EAAE,aAAqB;YAArB,8BAAA,EAAA,qBAAqB;YACvD,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACtB,IAAI,aAAa,KAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE;oBAC9C,IAAI,CAAC,UAAU,EAAE,CAAA;oBACjB,SAAQ;iBACT;gBACD,EAAE,IAAI,CAAC,CAAC,CAAA;gBACR,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;oBAAE,OAAO,IAAI,CAAC,CAAC,CAAA;aAC1C;YACD,OAAO,CAAC,CAAC,CAAA;SACV;QAED,mCAAe,GAAf,UAAiB,OAA+C;YAA/C,wBAAA,EAAA,wBAA+C;YACxD,IAAA,KAAkB,IAAI,EAApB,IAAI,UAAA,EAAE,KAAK,WAAS,CAAA;YACpB,IAAA,oBAAoB,GAAK,OAAO,qBAAZ,CAAY;YACxC,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAI,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAa,EAAE,KAAK,CAAC,CAAA;aACrE;YACD,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;SAC5D;QAED,0CAAsB,GAAtB,UAAwB,OAA8B;YAC5C,IAAA,gBAAgB,GAAwB,OAAO,iBAA/B,EAAE,iBAAiB,GAAK,OAAO,kBAAZ,CAAY;YACvD,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAA;YACrE,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACtB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,EAAE;oBAChD,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAA;oBACjE,SAAQ;iBACT;gBACD,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;oBACvB,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;wBAClC,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;wBAClB,IAAI,KAAK,KAAK,OAAO,EAAE;4BACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAA;4BACpB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;yBAChE;6BAAM;4BACL,IAAI,CAAC,CAAC,GAAG,OAAO,CAAA;4BAChB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;yBAC5D;qBACF;oBACD,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;wBAAE,MAAK;oBACxC,IAAI,CAAC,CAAC,EAAE,CAAA;iBACT;aACF;YACD,MAAM,IAAI,CAAC,KAAK,CAAC,cAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAa,EAAE,KAAK,CAAC,CAAA;SAC5E;QAED,uCAAmB,GAAnB,UAAqB,OAA+C;YAA/C,wBAAA,EAAA,wBAA+C;YAClE,IAAM,MAAM,GAAqB,EAAE,CAAA;YACnC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACtB,IAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;gBAC9C,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aAC5B;YACD,OAAO,MAAM,CAAA;SACd;QAED,sCAAkB,GAAlB,UAAoB,OAA8B;YAChD,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,GAAG,EAAE;gBAAE,OAAM;YAEtB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAC1B,IAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAA;YAClB,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACtE;QAED,yBAAK,GAAL,UAAO,GAAW,EAAE,GAAoB;YAApB,oBAAA,EAAA,MAAc,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;SAC3F;QAED,0BAAM,GAAN,UAAQ,IAAa,EAAE,GAA4B,EAAE,GAAY;YAC/D,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,UAAU,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA;SAC1E;QAED,4BAAQ,GAAR,UAAU,KAAsB;YAAtB,sBAAA,EAAA,QAAgB,IAAI,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;SACrE;;;;QAKD,4BAAQ,GAAR;YACE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;SAC7B;QAED,kCAAc,GAAd;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAE,EAAE,IAAI,CAAC,CAAC,CAAA;YACnD,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACjE;QAED,0CAAsB,GAAtB;YACE,IAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YAChC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,CAAA;SAClC;QAED,+BAAW,GAAX;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;;YAEhB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YACzE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,CAAA;SACvC;QAED,8BAAU,GAAV,UAAY,WAA8B;YACxC,IAAM,MAAM,GAAG,EAAE,CAAA;YACjB,OAAO,IAAI,EAAE;gBACX,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;gBACvC,IAAI,CAAC,IAAI;oBAAE,OAAO,MAAM,CAAA;gBACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAClB;SACF;QAED,4BAAQ,GAAR,UAAU,WAA8B;YACtC,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;gBAAE,EAAE,IAAI,CAAC,CAAC,CAAA;YACjC,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAC1C,IAAI,CAAC,IAAI;gBAAE,OAAM;YACjB,IAAI,KAAK,CAAA;YAET,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,IAAI,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;YAC3E,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;gBACvB,EAAE,IAAI,CAAC,CAAC,CAAA;gBACR,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;aACzB;YACD,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACxE;QAED,6BAAS,GAAT;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;SACxC;QAED,2BAAO,GAAP,UAAS,IAAQ;YAAR,qBAAA,EAAA,QAAQ;YACf,IAAI,CAAC,CAAC,IAAI,IAAI,CAAA;SACf;QAED,uBAAG,GAAH;YACE,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;SACxB;QACD,wBAAI,GAAJ;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;SAC5B;QACD,0BAAM,GAAN,UAAQ,GAAW;YACjB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACtB,EAAE,IAAI,CAAC,CAAC,CAAA;gBACR,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC,CAAC,CAAA;aACpC;YACD,OAAO,CAAC,CAAC,CAAA;SACV;QAED,6BAAS,GAAT;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAA;YACjG,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAA;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAA;YAClC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;SAC3E;QAED,kCAAc,GAAd;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAA;YACnC,OAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;SAC5E;QAEO,kCAAc,GAAtB,UAAwB,OAAc;YAAd,wBAAA,EAAA,cAAc;YACpC,IAAM,KAAK,GAAqC,EAAE,CAAA;YAClD,OAAO,IAAI,EAAE;gBACX,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;oBACvB,IAAI,CAAC,CAAC,EAAE,CAAA;oBACR,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC3F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;oBACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAChB,SAAQ;iBACT;gBACD,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC5B,IAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;oBAC1C,IAAI,IAAI,EAAE;wBACR,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;wBAChB,SAAQ;qBACT;iBACF;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBAC/C,IAAI,CAAC,CAAC,EAAE,CAAA;oBACR,IAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAA;oBAC1C,IAAI,CAAC,IAAI;wBAAE,MAAK;oBAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAChB,SAAQ;iBACT;gBACD,MAAK;aACN;YACD,OAAO,KAAK,CAAA;SACb;QAED,8BAAU,GAAV;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,YAAY,GAAG,KAAK,CAAA;YACxB,IAAI,UAAU,GAAG,KAAK,CAAA;YACtB,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;gBAAE,CAAC,EAAE,CAAA;YAC/B,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;gBAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE;oBAC7B,UAAU,GAAG,IAAI,CAAA;oBACjB,CAAC,EAAE,CAAA;iBACJ;qBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;oBAC3D,IAAI,YAAY,IAAI,CAAC,UAAU;wBAAE,OAAM;oBACvC,YAAY,GAAG,IAAI,CAAA;oBACnB,CAAC,EAAE,CAAA;iBACJ;;oBAAM,MAAK;aACb;YACD,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACvC,IAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACf,OAAO,GAAG,CAAA;aACX;SACF;QAED,+BAAW,GAAX;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAC5C,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAM;YACtB,IAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YACpE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;YACZ,OAAO,OAAO,CAAA;SACf;QAED,6BAAS,GAAT;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;gBAAE,OAAM;YAC/B,EAAE,IAAI,CAAC,CAAC,CAAA;YACR,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACnC,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,sBAAsB,CAAC,CAAA;YAC/E,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACnC,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,sBAAsB,CAAC,CAAA;YACxD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SACtE;QAED,oCAAgB,GAAhB;YAAA,iBAIC;YAHC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,cAAM,OAAA,2BAAoB,KAAI,CAAC,QAAQ,EAAE,qBAAkB,GAAA,CAAC,CAAA;YAC/E,OAAO,KAAM,CAAA;SACd;QAED,8BAAU,GAAV;YACE,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;YACpB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC;gBAAE,OAAM;YACtC,EAAE,IAAI,CAAC,CAAC,CAAA;YACR,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;gBACtB,EAAE,IAAI,CAAC,CAAC,CAAA;gBACR,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;oBAAE,MAAK;gBACnE,IAAI,OAAO;oBAAE,OAAO,GAAG,KAAK,CAAA;qBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI;oBAAE,OAAO,GAAG,IAAI,CAAA;aACzD;YACD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;SAC7D;QAEC,wCAAoB,GAAtB,UAAwB,OAA8B;;;;;wBAC5C,mBAAmB,GAAK,OAAO,oBAAZ,CAAY;wBACjC,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAA;wBACjD,iBAAiB,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;;;8BAE3C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;wBAC3D,qBAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;kCACjC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;kCAC7B,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAA;;wBAFvC,SAEuC,CAAA;;;;;SAE1C;QAED,yBAAK,GAAL,UAAO,IAAY;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;aACrD;YACD,OAAO,IAAI,CAAA;SACZ;QAED,0BAAM,GAAN,UAAQ,OAAe;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;aACjF;YACD,OAAO,IAAI,CAAA;SACZ;QAED,4BAAQ,GAAR,UAAU,CAAK;YAAL,kBAAA,EAAA,KAAK;YACb,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SAC3E;QAED,wBAAI,GAAJ,UAAM,CAAK;YAAL,kBAAA,EAAA,KAAK;YACT,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;SAC1D;QAED,6BAAS,GAAT;YACE,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK;gBAAE,EAAE,IAAI,CAAC,CAAC,CAAA;SACzC;QACH,gBAAC;IAAD,CAAC;;;QC/bC,qBAAoB,MAAW,EAAE,UAAyB;YAJlD,aAAQ,GAAuC,EAAE,CAAA;YACjD,kBAAa,GAAG,KAAK,CAAA;YAI3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;SAC7B;QACM,wBAAE,GAAT,UAAgD,IAAY,EAAE,EAAwC;YACpG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YACxB,OAAO,IAAI,CAAA;SACZ;QACO,6BAAO,GAAf,UAA8C,KAAa,EAAE,GAAO;YAClE,IAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,CAAA;SAC7C;QACM,2BAAK,GAAZ;YACE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACrB,IAAI,KAAoB,CAAA;YACxB,OAAO,CAAC,IAAI,CAAC,aAAa,KAAK,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;gBAC3D,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;oBAAE,SAAQ;gBAC1C,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAO,KAAK,CAAC,IAAI,CAAE,EAAE,KAAK,CAAC,EAAE;oBACjE,SAAQ;iBACT;gBACD,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;gBACpD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;aACnC;YACD,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAA;SACZ;QACM,0BAAI,GAAX;YACE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACzB,OAAO,IAAI,CAAA;SACZ;QACH,kBAAC;IAAD,CAAC;;IC1CD;QAEE,sBAAoB,KAAQ;YAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;SACnB;QACH,mBAAC;IAAD,CAAC,IAAA;;;QCKiC,uBAAsB;QAKtD,aAAoB,KAAe,EAAE,YAA6B,EAAE,MAAc;YAAlF,YACE,kBAAM,KAAK,CAAC,SAIb;YAHC,KAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACtB,KAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;;SACjC;QAEH,UAAC;IAAD,CAZA,CAAkC,YAAY;;ICH9C;;;;;;;;AAQA;QAGE,cAAa,KAAyB,EAAE,WAA8B;;YAFtE,SAAI,GAAoB,EAAE,CAAA;YAGxB,IAAM,SAAS,GAAG,KAAK,YAAY,SAAS,GAAG,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;;gBAC/E,KAAmB,IAAA,KAAA,SAAA,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA,gBAAA,4BAAE;oBAAjD,IAAM,IAAI,WAAA;oBACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;iBAC1C;;;;;;;;;SACF;QAEC,qBAAM,GAAR,UAAU,GAAY;;;;;;wBACd,IAAI,GAAG,EAAE,CAAA;;;;wBACG,KAAA,SAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;wBAA7B,GAAG;wBACZ,KAAA,IAAI,CAAA;wBAAC,KAAA,GAAG,CAAA;8BAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAA,EAA5B,wBAA4B;wBAAG,KAAA,IAAI,CAAA;;4BAAG,qBAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAA;;wBAApC,KAAA,SAAoC,CAAA;;;wBAAtF,MAAS,KAA6E,CAAA;;;;;;;;;;;;;;;;6BAExF,sBAAO,IAAI,EAAA;;;SACZ;QACH,WAAC;IAAD,CAAC;;aClBe,cAAc,CAAE,OAAuB;QACrD;YAAqB,2BAAG;YACtB,iBAAa,KAAe,EAAE,MAAuB,EAAE,MAAc;gBAArE,YACE,kBAAM,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,SAI7B;gBAHC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;iBACxC;;aACF;YACC,wBAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;gCACxB,qBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;4BAA/E,IAAI,IAAI,SAAuE,CAAwB;4BACtG,qBAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAA;gCAA1D,sBAAO,SAAmD,EAAA;;;aAC3D;YACH,cAAC;SAXM,CAAc,GAAG,GAWvB;IACH,CAAC;;aCpBe,cAAc,CAAE,GAAc;QAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;;;QCOC,gBAAoB,KAAkB,EAAE,OAAsC,EAAE,MAAc;YAC5F,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACtB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;kBAC9B,OAAO;mBACN,UAAU,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,GAAG,OAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAA;YAChE,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAA,CAAA;YACjD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;YACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;SACrB;QACQ,uBAAM,GAAf,UAAiB,KAAU,EAAE,OAAgB;;;;;;wBACrC,IAAI,GAAU,EAAE,CAAA;;;;wBACJ,KAAA,SAAA,IAAI,CAAC,IAAmB,CAAA;;;;wBAA/B,GAAG;6BACR,cAAc,CAAC,GAAG,CAAC,EAAnB,wBAAmB;wBAAE,KAAA,CAAA,KAAA,IAAI,EAAC,IAAI,CAAA;8BAAE,GAAG,CAAC,CAAC,CAAC;wBAAE,qBAAM,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAA;;wBAAnD,yBAAmB,SAAgC,IAAE,CAAA;;;wBACzE,KAAA,CAAA,KAAA,IAAI,EAAC,IAAI,CAAA;wBAAC,qBAAM,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAvC,cAAU,SAA6B,EAAC,CAAA;;;;;;;;;;;;;;;;6BAExC,qBAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,SAAA,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAG,KAAK,UAAK,IAAI,UAAE,EAAA;6BAAtG,sBAAO,SAA+F,EAAA;;;SACvG;QACH,aAAC;IAAD,CAAC;;;;;;QCnBC,eAAoB,KAAkC,EAAE,MAAc;YAAtE,iBAMC;YAZe,YAAO,GAAa,EAAE,CAAA;YAOpC,IAAM,KAAK,GAAuB,OAAO,KAAK,KAAK,QAAQ;kBACvD,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,iBAAiB,EAAE;kBAClE,KAAK,CAAA;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,IAAI,MAAM,CAAC,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAA,CAAC,CAAA;SACzG;QAEQ,qBAAK,GAAd,UAAgB,GAAY,EAAE,OAAiB;;;;;;wBAC7C,OAAO,GAAG,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;wBAChG,qBAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAA/C,GAAG,GAAG,SAAyC;;;;wBAE9B,KAAA,SAAA,IAAI,CAAC,OAAO,CAAA;;;;wBAAtB,MAAM;wBACT,qBAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAA;;wBAAnC,GAAG,GAAG,SAA6B,CAAA;;;;;;;;;;;;;;;;4BAErC,sBAAO,GAAG,EAAA;;;SACX;QAEO,yBAAS,GAAjB,UAAmB,MAAc,EAAE,IAAY;YAC7C,IAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,cAAM,OAAA,4BAAqB,IAAI,CAAE,GAAA,CAAC,CAAA;YAChF,OAAO,IAAI,CAAA;SACZ;QACH,YAAC;IAAD,CAAC;;;QC5B2B,0BAAyB;QAEnD,gBAAoB,KAAkB,EAAE,MAAc;YAAtD,iBAUC;;oBATC,kBAAM,KAAK,CAAC;YACZ,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;YACtG,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,MAAM,CAAC,CAAA;YAC7D,IAAM,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,OAAO,CAAA;YAClC,IAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAA;YAChD,IAAI,EAAC,MAAA,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,0CAAE,GAAG,CAAA,IAAI,YAAY,EAAE;gBACrD,IAAM,OAAK,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;gBACxE,OAAO,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;aACtD;;SACF;QACQ,uBAAM,GAAf,UAAiB,GAAY,EAAE,OAAgB;;;;4BACjC,qBAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAA;;wBAAxC,GAAG,GAAG,SAAkC;wBAC9C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;;;;SACnB;QAEQ,0BAAS,GAAlB;;;4BACE,qBAAM,IAAI,CAAC,KAAK,EAAA;;wBAAhB,SAAgB,CAAA;;;;SACjB;QACH,aAAC;IAAD,CArBA,CAA4B,YAAY;;ICLxC;QAA0B,wBAAuB;QAE/C,cAAoB,KAAgB;YAApC,YACE,kBAAM,KAAK,CAAC,SAEb;YADC,KAAI,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,EAAE,CAAA;;SAC9B;QACQ,qBAAM,GAAf,UAAiB,GAAY,EAAE,OAAgB;;gBAC7C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;;SACxB;QACH,WAAC;IAAD,CATA,CAA0B,YAAY,GASrC;;ICeD;;;AAGA;QACE,kBACW,QAA2C,EAC3C,QAA0B;YAD1B,aAAQ,GAAR,QAAQ,CAAmC;YAC3C,aAAQ,GAAR,QAAQ,CAAkB;SACjC;QAEG,2BAAQ,GAAf;YACE,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;SAC3C;;QAGM,0BAAO,GAAd;YACE,SAAW,MAAM;;;gBAAE,kBAA8C;6BAA9C,qBAA8C,EAA9C,IAA8C;oBAA9C,6BAA8C;;;;;;4BACzC,aAAA,SAAA,QAAQ,CAAA;;;;4BAAnB,OAAO;kCACZ,OAAO,YAAY,QAAQ,CAAA,EAA3B,wBAA2B;4BAC7B,qBAAM,KAAK,CAAC,IAAI,CAAC,MAAM,wCAAI,OAAO,CAAC,QAAQ,WAAE,EAAA;;4BAA7C,SAA6C,CAAA;;gCAE7C,qBAAM,OAAO,EAAA;;4BAAb,SAAa,CAAA;;;;;;;;;;;;;;;;;;;aAGlB;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,wCAAI,IAAI,CAAC,QAAQ,WAAE,CAAA;SAC5C;QACH,eAAC;IAAD,CAAC,IAAA;IAYD;;;IAGA;QAGE;YACE,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;SACrB;QAEM,yBAAG,GAAV,UAAY,GAAa;YACvB,IAAM,CAAC,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;aACpB;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAe,CAAA;SACrC;QAEM,yBAAG,GAAV,UAAY,GAAa;YACvB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SACvD;QAEM,0BAAI,GAAX,UAAa,QAAkB;YAC7B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SAClC;QAEM,8BAAQ,GAAf;YACE,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACpC;QACH,kBAAC;IAAD,CAAC,IAAA;IAqCM,IAAM,4BAA4B,GAA0B;QACjE,QAAQ,EAAE,IAAI;KACf,CAAA;IAED,SAAW,QAAQ,CAAE,SAAqB,EAAE,QAAiB,EAAE,IAAa;QAU1E,SAAS,eAAe,CAAE,QAAkB,EAAE,KAAiB;;YAC7D,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxB,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAErC,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,IAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;;gBAEhC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC1C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBACtB;aACF;iBAAM;gBACL,IAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACjC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACtC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;iBACvB;aACF;;;gBAGD,KAAsB,IAAA,KAAA,SAAA,QAAQ,CAAC,QAAQ,CAAA,gBAAA,4BAAE;oBAApC,IAAM,OAAO,WAAA;oBAChB,IAAI,OAAO,YAAY,QAAQ,EAAE;wBAC/B,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;qBAChC;iBACF;;;;;;;;;SACF;QAED,SAAW,KAAK,CAAE,QAAkB,EAAE,KAAiB;;;;;;wBACrD,IAAI,QAAQ,CAAC,SAAS,EAAE;;gCACtB,KAAkB,KAAA,SAAA,QAAQ,CAAC,SAAS,EAAE,CAAA,4CAAE;oCAA7B,GAAG;;wCACZ,KAAuB,oBAAA,SAAA,gBAAgB,CAAC,GAAG,CAAC,CAAA,CAAA,4CAAE;4CAAnC,QAAQ;4CACjB,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;yCACjC;;;;;;;;;iCACF;;;;;;;;;yBACF;wBAED,IAAI,QAAQ,CAAC,UAAU,EAAE;;gCACvB,KAAoB,KAAA,SAAA,QAAQ,CAAC,UAAU,EAAE,CAAA,4CAAE;oCAAhC,KAAK;oCACd,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oCACxB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oCAC1B,KAAA,OAAa,KAAK,CAAC,WAAW,EAAE,IAAA,EAA/B,GAAG,QAAA,EAAE,GAAG,QAAA,CAAuB;oCACtC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;iCAC3E;;;;;;;;;yBACF;6BAEG,QAAQ,CAAC,QAAQ,EAAjB,yBAAiB;6BACf,QAAQ,CAAC,YAAY,EAArB,yBAAqB;wBACjB,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAA;8BAEnC,OAAO,KAAK,SAAS,CAAA,EAArB,yBAAqB;;;;wBAEF,qBAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;wBAAxC,KAAA,yBAAC,SAAuC,GAAe;;;;wBAAhE,KAAK;wBACd,qBAAM,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAA;;wBAAzB,SAAyB,CAAA;;;;;;;;;;;;;;;;4BAE3B,sBAAM;;wBAGR,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;4BAAE,sBAAM;wBAE5B,iBAAiB,GAAgB,IAAI,GAAG,EAAE,CAAA;wBAC1C,YAAY,GAAG,OAAO,CAAC,QAAQ;8BACjC,IAAI,UAAU,CAAC,iBAAiB,CAAC;8BACjC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;;4BAEjC,KAAmB,KAAA,SAAA,OAAO,CAAC,KAAK,CAAA,4CAAE;gCAA7B;gCACH,IAAI,QAAQ,CAAC,MAAI,CAAC,EAAE;oCAClB,iBAAiB,CAAC,GAAG,CAAC,MAAI,CAAC,CAAA;iCAC5B;qCAAM;oCACC,KAAA,OAAoB,MAAI,IAAA,EAAvB,KAAK,QAAA,EAAE,QAAQ,QAAA,CAAQ;oCAC9B,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oCACtB,cAAY,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;oCACxD,IAAI,WAAS,CAAC,MAAM,EAAE;wCACpB,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;qCACpD;iCACF;6BACF;;;;;;;;;;;;wBAEoB,qBAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;wBAAxC,KAAA,yBAAC,SAAuC,GAAe;;;;wBAAhE,KAAK;wBACd,qBAAM,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,EAAA;;wBAAhC,SAAgC,CAAA;wBAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;;;;;;;wBAGxB,YAAY,CAAC,GAAG,EAAE,CAAA;;;wBAElB,IAAI,QAAQ,CAAC,UAAU,EAAE;4BACvB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;yBAC3C;;;;wBAEoB,qBAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;wBAAxC,KAAA,yBAAC,SAAuC,GAAe;;;;wBAAhE,KAAK;wBACd,qBAAM,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAA;;wBAAzB,SAAyB,CAAA;;;;;;;;;;;;;;;;;wBAG3B,IAAI,QAAQ,CAAC,UAAU,EAAE;4BACvB,KAAK,CAAC,GAAG,EAAE,CAAA;yBACZ;;;;;SAGN;;;;;;oBAxGK,SAAS,GAAG,IAAI,WAAW,EAAE,CAAA;oBAC7B,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;oBAC3B,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;oBAE1B,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;oBAGrC,IAAI,GAA4B,IAAI,GAAG,EAAE,CAAA;;;;oBAmGxB,cAAA,SAAA,SAAS,CAAA;;;;oBAArB,QAAQ;oBACjB,qBAAM,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAA;;oBAAhC,SAAgC,CAAA;;;;;;;;;;;;;;;;wBAGlC,sBAAO;wBACL,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;wBAC/B,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;wBAC3B,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;qBAC1B,EAAA;;;KACF;IAED;;;AAGA,aAAgB,OAAO,CAAE,QAAoB,EAAE,OAAmC;QAAnC,wBAAA,EAAA,YAAmC;QAChF,IAAM,IAAI,GAAG,sBAAK,4BAA4B,GAAK,OAAO,CAAqC,CAAA;QAC/F,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED;;;AAGA,aAAgB,WAAW,CAAE,QAAoB,EAAE,OAAmC;QAAnC,wBAAA,EAAA,YAAmC;QACpF,IAAM,IAAI,GAAG,sBAAK,4BAA4B,GAAK,OAAO,CAAqC,CAAA;QAC/F,OAAO,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IAC7D,CAAC;IAOD;;;IAGA;QAGE,oBAAa,OAAoB;YAC/B,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;SACtD;;QAGM,wBAAG,GAAV,UAAY,IAAY;;;gBACtB,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAA3B,IAAM,KAAK,WAAA;oBACd,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACzB,OAAO,IAAI,CAAA;qBACZ;iBACF;;;;;;;;;YACD,OAAO,KAAK,CAAA;SACb;QAEM,yBAAI,GAAX,UAAa,KAAkB;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;YACrD,OAAO,IAAI,CAAA;SACZ;QAEM,wBAAG,GAAV;;YACE,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,0CAAE,KAAK,CAAA;SAC/B;;QAGM,wBAAG,GAAV,UAAY,IAAY;YACtB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAC9B;;QAGM,0BAAK,GAAZ,UAAc,QAAkB;YAC9B,IAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAA;YACrC,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAA;YACzC,OAAO,IAAI,QAAQ,wCAAK,KAAK,kBAAK,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,WAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;SAClF;;QAGM,6BAAQ,GAAf,UAAiB,IAAY,EAAE,EAAoB;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;SACxD;QAEM,gCAAW,GAAlB,UAAoB,IAAY;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;SACvD;QAEO,6BAAQ,GAAhB,UAAkB,IAAY;;;gBAC5B,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAA3B,IAAM,KAAK,WAAA;oBACd,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;qBAC/B;;oBAGD,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACzB,OAAO,SAAS,CAAA;qBACjB;iBACF;;;;;;;;;YACD,OAAO,SAAS,CAAA;SACjB;QACH,iBAAC;IAAD,CAAC,IAAA;IAED,SAAW,gBAAgB,CAAE,KAAe;;;;yBACtC,YAAY,CAAC,KAAK,CAAC,EAAnB,wBAAmB;oBACrB,sBAAA,SAAQ,0BAA0B,CAAC,KAAK,CAAC,CAAA,EAAA;;oBAAzC,SAAyC,CAAA;;;0BAChC,KAAK,YAAY,KAAK,CAAA,EAAtB,wBAAsB;oBAC/B,sBAAA,SAAQ,6BAA6B,CAAC,KAAK,CAAC,CAAA,EAAA;;oBAA5C,SAA4C,CAAA;;;;;KAE/C;IAED,SAAW,6BAA6B,CAAE,KAAY;;;;;;;oBAChC,KAAA,SAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;;;;oBAA9B,KAAK;yBACV,YAAY,CAAC,KAAK,CAAC,EAAnB,wBAAmB;oBACrB,sBAAA,SAAQ,0BAA0B,CAAC,KAAK,CAAC,CAAA,EAAA;;oBAAzC,SAAyC,CAAA;;;;;;;;;;;;;;;;;;oBAIxB,KAAA,SAAA,KAAK,CAAC,OAAO,CAAA;;;;oBAAvB,MAAM;;;;oBACG,qBAAA,SAAA,MAAM,CAAC,IAAI,CAAA,CAAA;;;;oBAAlB,GAAG;0BACR,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA,EAA7B,yBAA6B;oBAC/B,sBAAA,SAAQ,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,EAAA;;oBAA1C,SAA0C,CAAA;;;yBACjC,YAAY,CAAC,GAAG,CAAC,EAAjB,yBAAiB;oBAC1B,sBAAA,SAAQ,0BAA0B,CAAC,GAAG,CAAC,CAAA,EAAA;;oBAAvC,SAAuC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAI9C;IAED,SAAW,0BAA0B,CAAE,KAAiB;;;;yBAClD,YAAY,CAAC,KAAK,CAAC,EAAnB,wBAAmB;oBACrB,sBAAA,SAAQ,0BAA0B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,EAAA;;oBAA7C,SAA6C,CAAA;oBAC7C,sBAAA,SAAQ,0BAA0B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,EAAA;;oBAA7C,SAA6C,CAAA;;;yBACpC,qBAAqB,CAAC,KAAK,CAAC,EAA5B,wBAA4B;oBACrC,qBAAM,6BAA6B,CAAC,KAAK,CAAC,EAAA;;oBAA1C,SAA0C,CAAA;;;;;KAE7C;IAED,SAAS,6BAA6B,CAAE,KAA0B;;QAChE,IAAM,QAAQ,GAAqB,EAAE,CAAA;;QAGrC,IAAI,IAAI,GAAuB,KAAK,CAAC,IAAI,CAAA;;QAGzC,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;QACxB,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YACnE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC5B;aAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;;YAEtC,QAAQ,CAAC,IAAI,OAAb,QAAQ,2BAAS,6BAA6B,CAAC,IAAI,CAAC,CAAC,QAAQ,WAAC;SAC/D;;YAED,KAAmB,IAAA,KAAA,SAAA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,gBAAA,4BAAE;gBAApC,IAAM,IAAI,WAAA;gBACb,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;gBACxB,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;oBACnE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;iBAC5B;qBAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE;oBACtC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAA;iBACnD;aACF;;;;;;;;;QAEK,IAAA,KAAA,OAAa,KAAK,CAAC,WAAW,EAAE,IAAA,EAA/B,GAAG,QAAA,EAAE,GAAG,QAAuB,CAAA;QACtC,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAC5B,GAAG,KAAA;YACH,GAAG,KAAA;YACH,IAAI,MAAA;SACL,CAAC,CAAA;IACJ,CAAC;IAED;IACA;IACA,IAAM,WAAW,GAAG,qDAAqD,CAAA;IAEzE;;;;;IAKA,SAAS,cAAc,CAAE,QAA0B,EAAE,aAAqB;;QAArB,8BAAA,EAAA,qBAAqB;QACxE,IAAM,GAAG,GAAa,EAAE,CAAA;QAExB,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC7C,GAAG,CAAC,IAAI,CAAC,UAAG,IAAI,CAAE,CAAC,CAAA;aACpB;iBAAM;gBACL,GAAG,CAAC,IAAI,CAAC,YAAK,IAAI,OAAI,CAAC,CAAA;aACxB;SACF;;YAED,KAAsB,IAAA,KAAA,SAAA,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,gBAAA,4BAAE;gBAApC,IAAM,OAAO,WAAA;gBAChB,IAAI,OAAO,YAAY,QAAQ,EAAE;oBAC/B,GAAG,CAAC,IAAI,CAAC,WAAI,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAG,CAAC,CAAA;iBAClD;qBAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAC5B,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;wBAC9B,GAAG,CAAC,IAAI,CAAC,WAAI,OAAO,CAAE,CAAC,CAAA;qBACxB;yBAAM;wBACL,GAAG,CAAC,IAAI,CAAC,YAAK,OAAO,OAAI,CAAC,CAAA;qBAC3B;iBACF;qBAAM;oBACL,GAAG,CAAC,IAAI,CAAC,WAAI,OAAO,MAAG,CAAC,CAAA;iBACzB;aACF;;;;;;;;;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;;ICpbD,IAAY,UAIX;IAJD,WAAY,UAAU;QACpB,mCAAqB,CAAA;QACrB,iCAAmB,CAAA;QACnB,2BAAa,CAAA;IACf,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;IACD;QAKE,gBAAa,OAAsB;YACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,IAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAA;gBAC1B,MAAM,CAAC,GAAG,EAAE,6CAA6C,CAAC,CAAA;gBAC1D,IAAM,eAAa,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,WAAW,CAAC,MAAM,CAAC,GAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gBACnH,IAAI,CAAC,kBAAkB,GAAG,UAAC,cAAsB,IAAK,OAAA,eAAa,CAAC,IAAI,CAAC,cAAc,CAAC,GAAA,CAAA;aACzF;iBAAM;gBACL,IAAI,CAAC,kBAAkB,GAAG,UAAC,eAAuB,IAAK,OAAA,KAAK,GAAA,CAAA;aAC7D;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,KAAK,cAAM,OAAA,IAAI,GAAA,CAAC,CAAA;SACzD;QAEQ,uBAAM,GAAf,UAAiB,IAAY,EAAE,IAAgB,EAAE,IAAc,EAAE,WAAoB;;;;;;wBAC3E,EAAE,GAAK,IAAI,CAAC,OAAO,GAAjB,CAAiB;wBACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;;;;wBACR,KAAA,SAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;;;;wBAA9E,QAAQ;6BACb,IAAI,EAAJ,wBAAI;wBAAG,KAAA,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;;4BAAG,qBAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAA;;wBAAzB,KAAA,SAAyB,CAAA;;;wBAA9D;4BAAgE,sBAAO,QAAQ,EAAA;;;;;;;;;;;;;;;;6BAEjF,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;;;SACnC;QAEQ,2BAAU,GAAnB,UAAqB,IAAY,EAAE,IAAc,EAAE,WAAoB,EAAE,WAAqB;;;;;;wBACtF,KAAkB,IAAI,CAAC,OAAO,EAA5B,EAAE,QAAA,EAAE,OAAO,aAAA,CAAiB;8BAChC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,WAAW,CAAA,EAA5C,wBAA4C;wBACxC,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;;;;wBACrD,SAAA,SAAA,IAAI,CAAA;;;;wBAAX,GAAG;8BACR,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA,EAA9C,wBAA8C;;wBAEhD,qBAAM,UAAU,EAAA;;;wBAAhB,SAAgB,CAAA;wBAChB,wBAAK;;;;;;;;;;;;;;;;;wBAIO,SAAA,SAAA,IAAI,CAAA;;;;wBAAX,GAAG;wBACN,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;8BAC7C,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA,EAA9C,yBAA8C;wBAChD,qBAAM,UAAU,EAAA;;wBAAhB,SAAgB,CAAA;;;;;;;;;;;;;;;;;8BAGhB,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAA,EAAzB,yBAAyB;wBACrB,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;8BAC9B,QAAQ,KAAK,SAAS,CAAA,EAAtB,yBAAsB;wBAAE,qBAAM,QAAQ,EAAA;;wBAAd,SAAc,CAAA;;;;;SAE7C;QAEO,wBAAO,GAAf,UAAiB,IAAY;YAC3B,IAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,iDAAiD,CAAC,CAAA;YACrE,OAAO,EAAE,CAAC,OAAQ,CAAC,IAAI,CAAC,CAAA;SACzB;QAEO,4BAAW,GAAnB,UAAqB,IAAY,EAAE,KAAe;YAChD,IAAM,GAAG,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAQ,CAAA;YACtC,GAAG,CAAC,OAAO,GAAG,qCAA6B,IAAI,qBAAS,KAAK,OAAG,CAAA;YAChE,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAA;YACnB,OAAO,GAAG,CAAA;SACX;QACH,aAAC;IAAD,CAAC,IAAA;;;QC5DC,gBAAoB,MAAc;YAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAA;YACtC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;YAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAA;YACrE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;SACzE;QACM,sBAAK,GAAZ,UAAc,IAAY,EAAE,QAAiB;YAC3C,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;YACnB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAChC,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YAC9E,IAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAChE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;SAChC;QACM,4BAAW,GAAlB,UAAoB,MAAuB;YACzC,IAAI,KAAK,CAAA;YACT,IAAM,SAAS,GAAe,EAAE,CAAA;YAChC,IAAM,MAAM,GAAkB,EAAE,CAAA;YAChC,QAAQ,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG;gBAC/B,IAAI;oBACF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;iBAC/C;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc;wBAAE,MAAM,CAAC,IAAI,CAAC,GAAkB,CAAC,CAAA;;wBAClE,MAAM,GAAG,CAAA;iBACf;aACF;YACD,IAAI,MAAM,CAAC,MAAM;gBAAE,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;YACjD,OAAO,SAAS,CAAA;SACjB;QACM,2BAAU,GAAjB,UAAmB,KAAoB,EAAE,YAA6B;YACpE,IAAI;gBACF,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAC7C,MAAM,CAAC,QAAQ,EAAE,gBAAQ,KAAK,CAAC,IAAI,iBAAa,CAAC,CAAA;oBACjD,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;iBAC5D;gBACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;oBACxB,OAAO,IAAI,MAAM,CAAC,KAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;iBACrD;gBACD,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;aACvB;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAE,MAAM,CAAC,CAAA;gBAC9B,MAAM,IAAI,UAAU,CAAC,CAAU,EAAE,KAAK,CAAC,CAAA;aACxC;SACF;QACM,4BAAW,GAAlB,UAAoB,MAAuB;YAA3C,iBAEC;YADC,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,UAAC,KAAK,EAAE,MAAM,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAA,CAAC,CAAA;SAClF;QACS,iCAAgB,GAA1B,UAA4B,IAAY,EAAE,IAAc,EAAE,IAAkC,EAAE,WAAoB;;YAAxD,qBAAA,EAAA,OAAmB,UAAU,CAAC,IAAI;;;;wBACpF,KAAK,GAAG,IAAI,CAAC,KAAM,CAAA;wBACnB,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,WAAW,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAA;wBAClF,qBAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,IAAI,IAAI;4BAAE,sBAAO,IAAI,EAAA;wBAEf,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;6BAGzC,IAAI,EAAJ,wBAAI;wBAAG,qBAAM,IAAI,EAAA;;wBAAV,KAAA,SAAU,CAAA;;;wBAAG,KAAA,SAAS,CAAC,IAAI,CAAC,CAAA;;;wBAA/C,SAAS,KAAsC;wBACrD,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,SAAgB,CAAC,CAAA;;;;wBAErB,qBAAM,SAAS,EAAA;4BAAtB,sBAAO,SAAe,EAAA;;;wBAAiB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAAC,MAAM,KAAG,CAAA;;;;SAC1E;QACS,2BAAU,GAApB,UAAsB,IAAY,EAAE,IAAc,EAAE,IAAkC,EAAE,WAAoB;;YAAxD,qBAAA,EAAA,OAAmB,UAAU,CAAC,IAAI;;;4BACnE,qBAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAA;;wBAAlE,QAAQ,GAAG,SAAuD;wBACjE,KAAA,IAAI,CAAC,KAAK,CAAA;6BAAC,IAAI,EAAJ,wBAAI;wBAAG,KAAA,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;;4BAAG,qBAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAA;;wBAAhC,KAAA,SAAgC,CAAA;;4BAA1F,sBAAO,SAAA,IAAI,OAAiF,QAAQ,EAAC,EAAA;;;SACtG;QACH,aAAC;IAAD,CAAC;;ICtFD,WAAY,SAAS;QACnB,6CAAU,CAAA;QACV,+CAAW,CAAA;QACX,uCAAO,CAAA;QACP,6CAAU,CAAA;QACV,0CAAS,CAAA;QACT,8CAAW,CAAA;QACX,0CAAS,CAAA;QACT,+DAAoB,CAAA;QACpB,2CAAU,CAAA;QACV,6CAAW,CAAA;QACX,gDAAa,CAAA;QACb,oDAAe,CAAA;QACf,8DAAoB,CAAA;QACpB,oDAAwB,CAAA;IAC1B,CAAC,EAfWA,iBAAS,KAATA,iBAAS,QAepB;;aCZe,gBAAgB,CAAE,GAAQ;QACxC,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAGA,iBAAS,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;AAED,aAAgB,eAAe,CAAE,GAAQ;QACvC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,QAAQ,CAAA;IAC5C,CAAC;AAED,aAAgB,WAAW,CAAE,GAAQ;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,IAAI,CAAA;IACxC,CAAC;AAED,aAAgB,aAAa,CAAE,GAAQ;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,MAAM,CAAA;IAC1C,CAAC;AAED,aAAgB,UAAU,CAAE,GAAQ;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,GAAG,CAAA;IACvC,CAAC;AAED,aAAgB,aAAa,CAAE,GAAQ;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,MAAM,CAAA;IAC1C,CAAC;AAED,aAAgB,cAAc,CAAE,GAAQ;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,OAAO,CAAA;IAC3C,CAAC;AAED,aAAgB,aAAa,CAAE,GAAQ;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,MAAM,CAAA;IAC1C,CAAC;AAED,aAAgB,qBAAqB,CAAE,GAAQ;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,cAAc,CAAA;IAClD,CAAC;AAED,aAAgB,WAAW,CAAE,GAAQ;QACnC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,IAAI,CAAA;IACxC,CAAC;AAED,aAAgB,YAAY,CAAE,GAAQ;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAKA,iBAAS,CAAC,KAAK,CAAA;IACzC,CAAC;AAED,aAAgB,YAAY,CAAE,GAAQ;;QAEpC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,CAAA;IAClC,CAAC;IAED,SAAS,OAAO,CAAE,GAAQ;QACxB,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;;;;;;;;;;;;;;;;;;;QCdC,iBAAoB,GAAgB,EAAE,IAA4C,EAAE,aAAiC,EAAE,EAA6D;YAAhK,oBAAA,EAAA,QAAgB;YAAE,qBAAA,EAAA,qBAA4C;YAAE,8BAAA,EAAA,kBAAiC;gBAAE,qBAA2D,EAAE,KAAA,EAA3D,WAAW,iBAAA,EAAE,WAAW,iBAAA;;;;;;YA1BzI,WAAM,GAAY,CAAC,EAAE,CAAC,CAAA;YACtB,cAAS,GAAG,EAAE,CAAA;YAYf,gBAAW,GAAG,KAAK,CAAA;YACnB,mBAAc,GAAG,KAAK,CAAA;YAa3B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAA;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,OAAO,GAAG,MAAA,aAAa,CAAC,OAAO,mCAAI,IAAI,CAAC,OAAO,CAAA;YACpD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YACrD,IAAI,CAAC,eAAe,GAAG,MAAA,aAAa,CAAC,eAAe,mCAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAA;YACjF,IAAI,CAAC,eAAe,GAAG,MAAA,aAAa,CAAC,eAAe,mCAAI,IAAI,CAAC,eAAe,CAAA;YAC5E,IAAI,CAAC,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,OAAO,CAAC,cAAc,EAAE,MAAA,aAAa,CAAC,WAAW,mCAAI,IAAI,CAAC,WAAW,CAAC,CAAA;YAC5G,IAAI,CAAC,WAAW,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,OAAO,CAAC,iBAAiB,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,IAAI,MAAA,aAAa,CAAC,WAAW,mCAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;SAC3I;QACM,6BAAW,GAAlB,UAAoB,GAAW;YAC7B,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAC;SACzD;QACM,6BAAW,GAAlB,UAAoB,GAAW,EAAE,KAAU;YACzC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,EAAC;SACrC;QACM,8BAAY,GAAnB;YAAA,iBAEC;YAFoB,cAAiB;iBAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;gBAAjB,yBAAiB;;YACpC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,GAAG,EAAE,KAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAA,CAAC,CAAA;SACrD;QACM,iCAAe,GAAtB,UAAwB,SAA0B;YAAlD,iBAEC;YADC,OAAO,SAAS,CAAC,OAAO,CAAC,UAAC,EAAY;oBAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBAAM,OAAA,KAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC;aAAA,CAAC,CAAA;SACzE;QACM,wBAAM,GAAb;YACE,OAAO,eAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,UAAK,IAAI,CAAC,MAAM,UACpD,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAA,EAAE,EAAE,CAAC,CAAA;SAChD;;;;QAIM,qBAAG,GAAV,UAAY,KAAoB;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;SAC3B;QACM,yBAAO,GAAd,UAAgB,KAAoB;YAClC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;SACrC;QACQ,sBAAI,GAAb,UAAe,KAA6B;;;;;wBACpC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC;yBAAA;wBACzC,qBAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAA;;oBAA7C,sBAAO,SAAsC,EAAA;;;SAC9C;;;;QAIM,8BAAY,GAAnB,UAAqB,KAAc,EAAE,KAA6B;YAChE,OAAO,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;SACrD;QACQ,+BAAa,GAAtB,UAAwB,KAAc,EAAE,KAAsC,EAAE,eAAsC;;YAAtC,gCAAA,EAAA,kBAAkB,IAAI,CAAC,eAAe;;;;wBACpH,IAAI,QAAQ,CAAC,KAAK,CAAC;4BAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBACpC,CAAC,GAAG,CAAC;;;8BAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;wBACtB,qBAAM,IAAI,CAAC,YAAY,CAAC,KAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAA;;wBAA1D,KAAK,GAAG,SAAkD,CAAA;wBAC1D,IAAI,eAAe,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;4BACzC,MAAM,IAAI,8BAA8B,CAAE,KAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAK,CAAC,GAAG,CAAC,CAAC,CAAA;yBACzF;;;wBAJ+B,CAAC,EAAE,CAAA;;4BAMrC,sBAAO,KAAK,EAAA;;;SACb;QACM,sBAAI,GAAX,UAAa,GAAW;YACtB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC7B;QACM,qBAAG,GAAV;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;SACzB;QACM,wBAAM,GAAb;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;SACtB;QACM,uBAAK,GAAZ,UAAc,KAAU;YAAV,sBAAA,EAAA,UAAU;YACtB,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;gBACnC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,EAAE;gBACD,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAA;SACH;QACO,2BAAS,GAAjB,UAAmB,GAAoB;YACrC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;gBAChC,IAAI,GAAG,IAAI,SAAS;oBAAE,OAAO,SAAS,CAAA;aACvC;YACD,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAA;YACtD,OAAO,IAAI,CAAC,OAAO,CAAA;SACpB;QACD,8BAAY,GAAZ,UAAc,GAAU,EAAE,GAAyB;YACjD,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;YACnB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAgB,CAAA;YACjC,IAAI,KAAK,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAA;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAK,GAAc,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAA;YACtE,IAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;YAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,YAAY,IAAI;gBAAE,OAAO,GAAG,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACzF,IAAI,UAAU,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7C,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;iBACnC,IAAI,GAAG,KAAK,OAAO;gBAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;iBAC1C,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC7C,OAAO,KAAK,CAAA;SACb;QACH,cAAC;IAAD,CAAC,IAAA;aAEe,cAAc,CAAE,GAAU,EAAE,GAAgB,EAAE,eAAwB;QACpF,IAAI,eAAe,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,YAAY,IAAI,CAAC;YAAE,OAAO,SAAS,CAAA;QACjG,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;IACjB,CAAC;IAED,SAAS,SAAS,CAAE,GAAU;QAC5B,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,CAAA;IACrB,CAAC;IAED,SAAS,QAAQ,CAAE,GAAU;QAC3B,IAAI,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,CAAC;IAED,SAAS,QAAQ,CAAE,GAAU;QAC3B,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAA;QACrF,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,MAAM,CAAA;QACpD,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAC7D,CAAC;;IC5JD,IAAY,SAKX;IALD,WAAY,SAAS;;QAEnB,6CAAM,CAAA;;QAEN,2CAAK,CAAA;IACP,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;;ICHM,IAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,IAAO,IAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACnD,IAAO,IAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClD,IAAO,IAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAChD,IAAO,IAAM,UAAU,GAAG,iBAAiB,CAAC,UAAC,QAAgB,EAAE,OAAe,EAAE,iBAAyB;QAAzB,kCAAA,EAAA,yBAAyB;QAAK,OAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,QAAQ,GAAG,OAAO;IAAvE,CAAuE,CAAC,CAAA;AACtL,IAAO,IAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClD,IAAO,IAAM,KAAK,GAAG,iBAAiB,CAAC,UAAC,CAAS,EAAE,GAAW,IAAK,OAAA,CAAC,GAAG,GAAG,GAAA,CAAC,CAAA;AAC3E,IAAO,IAAM,IAAI,GAAG,iBAAiB,CAAC,UAAC,GAAW,EAAE,GAAW,IAAK,OAAA,GAAG,GAAG,GAAG,GAAA,CAAC,CAAA;AAC9E,IAAO,IAAM,MAAM,GAAG,iBAAiB,CAAC,UAAC,CAAS,EAAE,GAAW,IAAK,OAAA,CAAC,GAAG,GAAG,GAAA,CAAC,CAAA;AAC5E,IAAO,IAAM,KAAK,GAAG,iBAAiB,CAAC,UAAC,CAAS,EAAE,GAAW,IAAK,OAAA,CAAC,GAAG,GAAG,GAAA,CAAC,CAAA;AAE3E,aAAgB,KAAK,CAAE,CAAS,EAAE,GAAO;QAAP,oBAAA,EAAA,OAAO;QACvC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACf,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QACnB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;IAClC,CAAC;;;;;;;;;;;;;;;;;IChBM,IAAM,UAAU,GAAG,UAAC,CAAS,IAAK,OAAA,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAA,CAAA;AAC7F,IAAO,IAAM,UAAU,GAAG,UAAC,CAAS,IAAK,OAAA,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAA,CAAA;AAC9F,IAAO,IAAM,UAAU,GAAG,UAAC,CAAS,IAAK,OAAA,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,UAAU,EAAE,UAAA,CAAC,IAAI,OAAA,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,GAAA,CAAC,GAAA,CAAA;AAC7E,IAAO,IAAM,UAAU,GAAG,UAAC,CAAS,IAAK,OAAA,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC7D,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAA,CAAA;IAEvB,IAAM,eAAe,GAAG,wBAAwB,CAAA;IAChD,IAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,eAAe;QAC1B,QAAQ,EAAE,sCAAsC;QAChD,OAAO,EAAE,gBAAgB;QACzB,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,IAAI;KACb,CAAA;AAED,aAAgB,OAAO,CAAE,GAAW,EAAE,IAAgD,EAAE,KAAa;QAA/D,qBAAA,EAAA,gBAAgD;QAAE,sBAAA,EAAA,aAAa;QACnG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAEpB,IAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,QAAQ,EAAE;YACZ,IAAI,IAAI,KAAK,OAAO;gBAAE,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;YAC9C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;SACvD;QAED,OAAO,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IACxC,CAAC;IAED,SAAS,aAAa,CAAE,GAAW;QACjC,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;aACjC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;aACzB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC1B,CAAC;;;;;;;;;;;IC3CM,IAAM,IAAI,GAAG,gBAAgB,CAAC,UAA4B,CAAQ,EAAE,GAAW;QACpF,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAC7C,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACF,IAAO,IAAMC,MAAI,GAAG,gBAAgB,CAAC,UAAC,CAAM,IAAK,OAAA,WAAW,CAAC,CAAC,CAAC,GAAGC,IAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAA,CAAC,CAAA;AACpF,IAAO,IAAM,KAAK,GAAG,gBAAgB,CAAC,UAAC,CAAM,IAAK,OAAA,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAA,CAAC,CAAA;AAC7E,IAAO,IAAM,OAAO,GAAG,gBAAgB,CAAC,UAA4B,CAAQ;QAC1E,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO,yBAAI,KAAK,UAAE,OAAO,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;AAEF,aAAkB,IAAI,CAAuB,GAAQ,EAAE,QAAiB;;;;;;oBAChE,MAAM,GAA2B,EAAE,CAAA;oBACnC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;;;;oBACvB,UAAA,SAAA,KAAK,CAAA;;;;oBAAb,IAAI;oBACb,KAAA,CAAA,KAAA,MAAM,EAAC,IAAI,CAAA;0BACT,IAAI;yBACJ,QAAQ,EAAR,wBAAQ;oBAAG,qBAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAA;;oBAA7E,KAAA,SAA6E,CAAA;;;oBAAG,KAAA,IAAI,CAAA;;;oBAFjG;;4BAGE,CAAA;;;;;;;;;;;;;;;;yBAEJ,sBAAO,MAAM,CAAC,IAAI,CAAC,UAAC,GAAG,EAAE,GAAG;wBAC1B,IAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;wBACrB,IAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;wBACrB,OAAO,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;qBACxD,CAAC,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,CAAC,CAAC,GAAA,CAAC,EAAA;;;KAC1B;AAED,aAAgB,YAAY,CAAuB,KAAU,EAAE,QAAiB;QAC9E,IAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC1C,IAAM,OAAO,GAAG,QAAQ,KAAK,SAAS;cAClC,sBAAsB;cACtB,UAAC,GAAM,EAAE,GAAM,IAAK,OAAA,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,GAAA,CAAA;QACxF,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO,yBAAI,KAAK,UAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;AAED,IAAO,IAAM,IAAI,GAAG,UAAC,CAAiB,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,GAAA,CAAA;AAE/D,aAAkB,GAAG,CAAoB,GAAY,EAAE,QAAgB;;;;;;oBAC/D,OAAO,GAAG,EAAE,CAAA;oBACZ,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;;;;oBACvB,UAAA,SAAA,KAAK,CAAA;;;;oBAAb,IAAI;oBACb,KAAA,CAAA,KAAA,OAAO,EAAC,IAAI,CAAA;oBAAC,qBAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAA;;oBAA/E,cAAa,SAAkE,EAAC,CAAA;;;;;;;;;;;;;;;;wBAElF,sBAAO,OAAO,EAAA;;;KACf;AAED,aAAkB,GAAG,CAAoB,GAAY,EAAE,QAAiB;;;;;;oBAClE,GAAG,GAAG,CAAC,CAAA;oBACL,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;;;;oBACP,UAAA,SAAA,KAAK,CAAA;;;;oBAAb,IAAI;oBACA,KAAA,MAAM,CAAA;yBAAC,QAAQ,EAAR,wBAAQ;oBAAG,qBAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAA;;oBAAlE,KAAA,SAAkE,CAAA;;;oBAAG,KAAA,IAAI,CAAA;;;oBAAlG,IAAI,GAAG,sBAA4F;oBACzG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;yBAEtC,sBAAO,GAAG,EAAA;;;KACX;AAED,aAAgB,OAAO,CAAuB,GAAQ;QACpD,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAA,CAAC,CAAA;IAC9C,CAAC;AAED,aAAgB,MAAM,CAA4B,CAAO,EAAE,GAAc;QAAd,oBAAA,EAAA,QAAc;QACvE,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QACrD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;AAED,aAAgB,IAAI,CAAuB,CAAM,EAAE,GAAM;QACvD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAQ,CAAA;IAC3C,CAAC;AAED,aAAgB,OAAO,CAAuB,CAAM,EAAE,GAAM;QAC1D,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAM,KAAK,4BAAO,KAAK,SAAC,CAAA;QACxB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,KAAK,CAAA;IACd,CAAC;AAED,aAAgB,GAAG,CAAK,CAAM;QAC5B,IAAM,KAAK,4BAAO,OAAO,CAAC,CAAC,CAAC,SAAC,CAAA;QAC7B,KAAK,CAAC,GAAG,EAAE,CAAA;QACX,OAAO,KAAK,CAAA;IACd,CAAC;AAED,aAAgB,KAAK,CAAuB,CAAM;QAChD,IAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAM,KAAK,4BAAO,KAAK,SAAC,CAAA;QACxB,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,KAAK,CAAA;IACd,CAAC;AAED,aAAgB,KAAK,CAAuB,CAAe,EAAE,KAAa,EAAE,MAAU;QAAV,uBAAA,EAAA,UAAU;QACpF,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACd,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAA;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACjC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAA;QAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACpC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,SAAS,eAAe,CAAoB,QAAa;QAAzD,iBAQC;QAPC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;YACjC,OAAO,UAAC,CAAM,IAAK,OAAA,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAA,CAAA;SAClI;aAAM,IAAI,QAAQ,KAAK,SAAS,EAAE;YACjC,OAAO,UAAC,CAAM,IAAK,OAAA,QAAQ,CAAC,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,GAAA,CAAA;SAC7C;aAAM;YACL,OAAO,UAAC,CAAM,IAAK,OAAA,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAA,CAAA;SACvC;IACH,CAAC;IAED,SAAW,MAAM,CAAsC,OAAgB,EAAE,GAAQ,EAAE,QAAgB,EAAE,QAAa;;;;;;oBAC1G,MAAM,GAAc,EAAE,CAAA;oBAC5B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBAClB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;oBAClC,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;;;;oBAC9C,QAAA,SAAA,GAAG,CAAA;;;;oBAAX,IAAI;oBACb,KAAA,CAAA,KAAA,MAAM,EAAC,IAAI,CAAA;oBAAC,qBAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAA;;oBAA5D,cAAY,SAAgD,EAAC,CAAA;;;;;;;;;;;;;;;;;oBAEzD,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;oBACpD,sBAAO,GAAG,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,GAAA,CAAC,EAAA;;;KAC5D;IAED,SAAW,UAAU,CAAsC,OAAgB,EAAE,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;;;;oBAC5G,QAAQ,GAAc,EAAE,CAAA;oBACxB,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBACpD,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;;;;oBACvB,UAAA,SAAA,KAAK,CAAA;;;;oBAAb,IAAI;oBACb,IAAI,CAAC,OAAO,CAAC,IAAI,WAAG,GAAC,QAAQ,IAAG,IAAI,MAAG,CAAA;oBACzB,qBAAM,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA;;oBAA7C,KAAK,GAAG,SAAqC;oBACnD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;oBAClB,IAAI,KAAK,KAAK,OAAO;wBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;;;;;;wBAE5C,sBAAO,QAAQ,EAAA;;;KAChB;AAED,aAAkB,KAAK,CAAsC,GAAQ,EAAE,QAAgB,EAAE,QAAc;;;wBAC9F,sBAAA,SAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA,EAAA;wBAA/D,sBAAO,SAAwD,EAAA;;;KAChE;AAED,aAAkB,MAAM,CAAsC,GAAQ,EAAE,QAAgB,EAAE,QAAc;;;wBAC/F,sBAAA,SAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA,EAAA;wBAAhE,sBAAO,SAAyD,EAAA;;;KACjE;AAED,aAAkB,SAAS,CAAsC,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;wBAC/F,sBAAA,SAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA,EAAA;wBAA9D,sBAAO,SAAuD,EAAA;;;KAC/D;AAED,aAAkB,UAAU,CAAsC,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;wBAChG,sBAAA,SAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA,EAAA;wBAA/D,sBAAO,SAAwD,EAAA;;;KAChE;AAED,aAAkB,QAAQ,CAAsC,GAAQ,EAAE,QAAgB;;;;;;oBAClF,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;oBACrB,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;oBACjB,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;oBACjE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;;;;oBACrB,QAAA,SAAA,GAAG,CAAA;;;;oBAAX,IAAI;oBACD,qBAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAA;;oBAAtD,GAAG,GAAG,SAAgD;oBAC5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;oBACnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;;;;;;wBAEzB,sBAAO,yBAAI,GAAG,CAAC,OAAO,EAAE,UAAE,GAAG,CAAC,UAAC,EAAa;4BAAb,KAAA,aAAa,EAAZ,IAAI,QAAA,EAAE,KAAK,QAAA;wBAAM,QAAC,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE;qBAAC,CAAC,EAAA;;;KACpE;AAED,aAAkB,YAAY,CAAsC,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;;;;oBACnG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;oBACf,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBAC1D,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;oBACvB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;;;;oBACrB,QAAA,SAAA,GAAG,CAAA;;;;oBAAX,IAAI;oBACb,IAAI,CAAC,OAAO,CAAC,IAAI,WAAG,GAAC,QAAQ,IAAG,IAAI,MAAG,CAAA;oBAC3B,qBAAM,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA;;oBAA3C,GAAG,GAAG,SAAqC;oBACjD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;oBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;oBACnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;;;;;;wBAEzB,sBAAO,yBAAI,GAAG,CAAC,OAAO,EAAE,UAAE,GAAG,CAAC,UAAC,EAAa;4BAAb,KAAA,aAAa,EAAZ,IAAI,QAAA,EAAE,KAAK,QAAA;wBAAM,QAAC,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE;qBAAC,CAAC,EAAA;;;KACpE;IAED,SAAW,MAAM,CAAsC,GAAQ,EAAE,QAAgB,EAAE,QAAgB;;;;;oBAC3F,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;oBAC3D,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBACpB,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;oBAC3C,KAAK,GAAG,CAAC;;;0BAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;oBACxB,qBAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAA;;oBAAhE,KAAK,GAAG,SAAwD;oBACtE,IAAI,OAAO,CAAC,KAAK,CAAC;wBAAE,sBAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAA;;;oBAFR,KAAK,EAAE,CAAA;;;;;KAIlD;IAED,SAAW,UAAU,CAAsC,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;;;;oBAC1F,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;oBAClD,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;oBACjB,KAAK,GAAG,CAAC;;;0BAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAA;oBACtC,IAAI,CAAC,OAAO,CAAC,IAAI,WAAG,GAAC,QAAQ,IAAG,KAAK,CAAC,KAAK,CAAC,MAAG,CAAA;oBACjC,qBAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA;;oBAA3C,KAAK,GAAG,SAAmC;oBACjD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;oBAClB,IAAI,KAAK;wBAAE,sBAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAA;;;oBAJC,KAAK,EAAE,CAAA;;;;;KAMlD;AAED,aAAkB,GAAG,CAAsC,GAAQ,EAAE,QAAgB,EAAE,QAAc;;;;wBACpF,sBAAA,SAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA,EAAA;;oBAA3D,MAAM,GAAG,SAAkD;oBACjE,sBAAO,CAAC,CAAC,MAAM,EAAA;;;KAChB;AAED,aAAkB,OAAO,CAAsC,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;;wBACrF,sBAAA,SAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA,EAAA;;oBAA1D,MAAM,GAAG,SAAiD;oBAChE,sBAAO,CAAC,CAAC,MAAM,EAAA;;;KAChB;AAED,aAAkB,UAAU,CAAsC,GAAQ,EAAE,QAAgB,EAAE,QAAc;;;;wBAC3F,sBAAA,SAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA,EAAA;;oBAA3D,MAAM,GAAG,SAAkD;oBACjE,sBAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,EAAA;;;KACtC;AAED,aAAkB,cAAc,CAAsC,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;;wBAC5F,sBAAA,SAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA,EAAA;;oBAA1D,MAAM,GAAG,SAAiD;oBAChE,sBAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,EAAA;;;KACtC;AAED,aAAkB,IAAI,CAAsC,GAAQ,EAAE,QAAgB,EAAE,QAAc;;;;wBACrF,sBAAA,SAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA,EAAA;;oBAA3D,MAAM,GAAG,SAAkD;oBACjE,sBAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,EAAA;;;KACtC;AAED,aAAkB,QAAQ,CAAsC,GAAQ,EAAE,QAAgB,EAAE,GAAW;;;;wBACtF,sBAAA,SAAQ,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA,EAAA;;oBAA1D,MAAM,GAAG,SAAiD;oBAChE,sBAAO,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,EAAA;;;KACtC;AAED,aAAgB,IAAI,CAAuB,GAAQ;QACjD,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,gCAAW,IAAI,GAAG,CAAC,GAAG,CAAC,UAAC;IAC1B,CAAC;AAED,aAAgB,MAAM,CAAuB,CAAe,EAAE,KAAS;QAAT,sBAAA,EAAA,SAAS;QACrE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACd,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,EAAE,CAAA;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACnC,IAAM,QAAQ,GAAG,yBAAI,CAAC,UAAE,IAAI,CAAC,cAAM,OAAA,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAA,CAAC,CAAA;QACvD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aCpQe,IAAI,CAAoB,CAAgB,EAAE,MAAe,EAAE,cAAgC;;QACzG,IAAM,IAAI,GAAG,CAAC,MAAC,CAAY,aAAZ,CAAC,uBAAD,CAAC,CAAa,MAAM,mCAAI,CAAC,KAAK,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,CAAC,CAAC,IAAI,MAAC,cAAyB,aAAzB,cAAc,uBAAd,cAAc,CAAa,MAAM,mCAAI,CAAC,CAAC,CAAA;QAC7G,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAClC,IAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAA;QACnB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QACxB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QACzE,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC/B,CAAC;AAED,aAAgB,iBAAiB,CAAoB,CAAgB;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAA;IACnD,CAAC;AAED,aAAgB,cAAc,CAAoB,CAAgB;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAA;IACvD,CAAC;AAED,aAAgB,cAAc,CAAoB,CAAgB,EAAE,IAAa,EAAE,KAAc;QAC/F,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACxD,CAAC;AAED,aAAgB,mBAAmB,CAAoB,CAAgB,EAAE,IAAa,EAAE,KAAc;QACpG,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,SAAS,cAAc,CAAoB,CAAgB,EAAE,UAAkB,EAAE,IAAa,EAAE,KAAc;QAC5G,IAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAA;QACnB,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,IAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAA;YACxB,OAAO,KAAK,KAAK,IAAI;kBACjB,QAAQ,CAAC,IAAI,EAAE,UAAG,UAAU,cAAI,CAAC,WAAQ,CAAC;kBAC1C,QAAQ,CAAC,IAAI,EAAE,UAAG,CAAC,gBAAM,UAAU,QAAK,CAAC,CAAA;SAC9C;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,aAAM,UAAU,QAAK,CAAC,CAAA;IAC9C,CAAC;IAED,SAAS,SAAS,CAAE,CAAgB,EAAE,IAA2B,EAAE,cAAgC;QACjG,IAAI,IAA4B,CAAA;QAChC,IAAM,qBAAqB,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAI,CAAC,cAAc,CAAA;QACnE,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACd,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,OAAO,EAAE;YAChC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAA;SACjE;aAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YACtB,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAA;SAC/D;aAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;YACtB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAA;aAChE;iBAAM,IAAI,IAAI,CAAC,iBAAiB,IAAI,cAAc,KAAK,SAAS,EAAE;gBACjE,IAAI,GAAG,UAAU,CAAC,yBAAyB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;aACvD;iBAAM;gBACL,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAA;aACxD;SACF;aAAM;YACL,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAA;SACxD;QACD,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,GAAG,SAAS,CAAA;IACxC,CAAC;;;;;;;;;;;IC/DD;;;;;AAaA,IAEA,IAAM,QAAQ,GAAG,oFAAoF,CAAA;IAErG;IACA,IAAM,WAAW,GAAG,wFAAwF,CAAA;AAE5G,aAAgB,MAAM,CAAoB,CAAS,EAAE,GAAW;QAC9D,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAA;QAC3D,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QACrD,OAAO,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;AAED,aAAgB,OAAO,CAAoB,CAAS,EAAE,GAAW;QAC/D,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,4BAA4B,CAAC,CAAA;QAC5D,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;QACrD,OAAO,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;AAED,aAAgB,MAAM,CAAoB,CAAS,EAAE,KAAc;QACjE,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,KAAK,EAAE;YACT,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YACtC,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAK,KAAK,OAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;SACxD;QACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC;AAED,aAAgB,QAAQ,CAAoB,CAAS;QACnD,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC;AAED,aAAgB,MAAM,CAAoB,CAAS;QACjD,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IACrC,CAAC;AAED,aAAgB,MAAM,CAAoB,CAAS,EAAE,GAAW;QAC9D,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3C,CAAC;AAED,aAAgB,YAAY,CAAoB,CAAS,EAAE,CAAS;QAClE,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACtC,CAAC;AAED,aAAgB,WAAW,CAAoB,CAAS,EAAE,CAAS;QACjE,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,GAAG,CAAA;QAC5B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,CAAC;AAED,aAAgB,MAAM,CAAoB,GAAW,EAAE,KAAc;QACnE,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,KAAK,EAAE;YACT,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YACtC,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAI,KAAK,QAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;SACxD;QACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC;AAED,aAAgB,KAAK,CAAoB,CAAS,EAAE,GAAW;QAC7D,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;;;QAGrC,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;YAAE,GAAG,CAAC,GAAG,EAAE,CAAA;QAC1D,OAAO,GAAG,CAAA;IACZ,CAAC;AAED,aAAgB,KAAK,CAAoB,CAAS,EAAE,KAAc;QAChE,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,KAAK,EAAE;YACT,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YACtC,OAAO,GAAG;iBACP,OAAO,CAAC,IAAI,MAAM,CAAC,YAAK,KAAK,OAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;iBAC5C,OAAO,CAAC,IAAI,MAAM,CAAC,WAAI,KAAK,QAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;SAChD;QACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;AAED,aAAgB,cAAc,CAAoB,CAAS;QACzD,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;AAED,aAAgB,UAAU,CAAoB,GAAW;QACvD,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IACjE,CAAC;AAED,aAAgB,OAAO,CAAoB,CAAS,EAAE,OAAe,EAAE,WAAmB;QACxF,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACxD,CAAC;AAED,aAAgB,aAAa,CAAoB,CAAS,EAAE,IAAY,EAAE,IAAY;QACpF,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;AAED,aAAgB,YAAY,CAAoB,CAAS,EAAE,IAAY,EAAE,IAAY;QACnF,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,GAAG,CAAA;QAC5B,IAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QACnC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACtF,CAAC;AAED,aAAgB,QAAQ,CAAoB,CAAS,EAAE,CAAM,EAAE,CAAS;QAAjB,kBAAA,EAAA,MAAM;QAAE,kBAAA,EAAA,SAAS;QACtE,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,CAAC,CAAA;QAC7B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;AAED,aAAgB,aAAa,CAAoB,CAAS,EAAE,KAAU,EAAE,CAAS;QAArB,sBAAA,EAAA,UAAU;QAAE,kBAAA,EAAA,SAAS;QAC/E,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,IAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,KAAK,IAAI,CAAC;YAAE,KAAK,GAAG,CAAC,CAAA;QACzB,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK;YAAE,GAAG,IAAI,CAAC,CAAA;QACjC,OAAO,GAAG,CAAA;IACZ,CAAC;AAED,aAAgB,oBAAoB,CAAoB,CAAS;QAC/D,IAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC;AAED,aAAgB,eAAe,CAAoB,KAAa,EAAE,IAAqB;QACrF,IAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACxC,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAA;QACpB,QAAQ,IAAI;YACV,KAAK,KAAK;;gBAER,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,CAAA;YACvF,KAAK,MAAM;;gBAET,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;sBACvB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM;sBACvE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;YAC/B;;gBAEE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;SACnC;IACH,CAAC;AAED,aAAgB,wBAAwB,CAAoB,KAAgB,EAAE,SAAiB;QAAjB,0BAAA,EAAA,iBAAiB;QAC7F,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,QAAQ,KAAK,CAAC,MAAM;YAClB,KAAK,CAAC;gBACJ,OAAO,EAAE,CAAA;YACX,KAAK,CAAC;gBACJ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;YACjB,KAAK,CAAC;gBACJ,OAAO,UAAG,KAAK,CAAC,CAAC,CAAC,cAAI,SAAS,cAAI,KAAK,CAAC,CAAC,CAAC,CAAE,CAAA;YAC/C;gBACE,OAAO,UAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAK,SAAS,cAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE,CAAA;SACrF;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;QC/LY,OAAO,sEACf,WAAW,GACX,WAAW,GACX,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,IAAI,CACR;;ICbD;QAA6B,6BAAG;QAK9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc;YAA3E,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAUnC;YATC,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YACjD,KAAI,CAAC,GAAG,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,CAAA;YAClC,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAA;YAEzD,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAC1B,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,cAAc,CAAC,CAAA;YAEpE,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;YACxB,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,KAAI,CAAC,MAAM,CAAC,CAAA;;SACxE;QACC,0BAAM,GAAR,UAAU,GAAY;;;;;wBACpB,KAAA,GAAG,CAAC,MAAM,EAAE,CAAA;wBAAC,KAAA,IAAI,CAAC,GAAG,CAAA;wBAAI,qBAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAA;;wBAAnF,MAAsB,GAAG,SAA0D,CAAA;;;;SACpF;QAEQ,6BAAS,GAAlB;;;4BACE,qBAAM,IAAI,CAAC,KAAK,EAAA;;wBAAhB,SAAgB,CAAA;;;;SACjB;QAEQ,8BAAU,GAAnB;;;4BACE,qBAAM,IAAI,CAAC,UAAU,EAAA;;wBAArB,SAAqB,CAAA;;;;SACtB;QACH,gBAAC;IAAD,CA5BA,CAA6B,GAAG,GA4B/B;;IC1BD,IAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IAIjD;QAA6B,6BAAG;QAO9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA3F,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAuBnC;YAtBC,IAAM,QAAQ,GAAG,KAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YAChD,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YAC7C,IAAM,UAAU,GAAG,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;gBAC7D,MAAM,IAAI,KAAK,CAAC,uBAAgB,KAAK,CAAC,OAAO,EAAE,CAAE,CAAC,CAAA;aACnD;YAED,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;YAChC,KAAI,CAAC,UAAU,GAAG,UAAU,CAAA;YAC5B,KAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YACtE,KAAI,CAAC,SAAS,GAAG,EAAE,CAAA;YACnB,KAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YAEvB,IAAI,CAAC,CAAA;YACL,IAAM,MAAM,GAAgB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;iBACzD,EAAE,CAAC,OAAO,EAAE,cAAM,QAAC,CAAC,GAAG,KAAI,CAAC,SAAS,IAAC,CAAC;iBACvC,EAAE,CAAW,UAAU,EAAE,UAAA,GAAG,IAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAI,CAAC,aAAa,CAAA,EAAE,CAAC;iBAClF,EAAE,CAAW,YAAY,EAAE,UAAA,GAAG,IAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA,EAAE,CAAC;iBAC3E,EAAE,CAAC,UAAU,EAAE,UAAC,GAAa,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAA,CAAC;iBAC9C,EAAE,CAAC,KAAK,EAAE,cAAQ,MAAM,IAAI,KAAK,CAAC,cAAO,KAAK,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA,EAAE,CAAC,CAAA;YAE5E,MAAM,CAAC,KAAK,EAAE,CAAA;;SACf;QACC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;;wBAChC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;wBACb,KAAA,YAAY,CAAA;wBAAC,qBAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAA;;wBAA/D,UAAU,GAAG,kBAAa,SAAqC,EAAC;6BAEhE,CAAC,UAAU,CAAC,MAAM,EAAlB,wBAAkB;wBACpB,qBAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAzD,SAAyD,CAAA;wBACzD,sBAAM;;wBAGF,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;wBACjF,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;wBACvC,qBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAAlC,IAAI,GAAG,SAA2B;wBACxC,GAAG,CAAC,GAAG,EAAE,CAAA;wBAEH,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB;8BACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAA,CAAC;8BACpD,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,GAAA,CAAC,CAAA;wBAEhD,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,UAAC,UAAU,EAAE,QAAmC;4BAC5E,IAAI,QAAQ,KAAK,QAAQ;gCAAE,OAAO,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;4BACpE,IAAI,QAAQ,KAAK,OAAO;gCAAE,OAAO,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;4BACjE,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAA;yBAC5B,EAAE,UAAU,CAAC,CAAA;wBAEd,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;wBACjE,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;wBACvG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;;;wBACI,eAAA,SAAA,UAAU,CAAA;;;;wBAAlB,IAAI;wBACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;wBAC3B,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;wBAC5C,qBAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAArD,SAAqD,CAAA;wBACrD,IAAI,GAAG,CAAC,WAAW;4BAAE,wBAAK;wBAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;;;;;;;;;;;;;;;;;wBAEtB,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;wBAC5C,GAAG,CAAC,GAAG,EAAE,CAAA;;;;SACV;QAEQ,4BAAQ,GAAjB;;;gBACQ,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;gBACxC,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,SAAS,CAAC,IAAI,OAAd,SAAS,2BAAS,IAAI,CAAC,aAAa,WAAC;iBACtC;gBACD,sBAAO,SAAS,EAAA;;SACjB;QAEQ,6BAAS,GAAlB;;;;;4BACE,qBAAM,IAAI,CAAC,UAAU,EAAA;;wBAArB,SAAqB,CAAA;;;;wBAEL,KAAA,SAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;wBAAlC,CAAC;6BACN,YAAY,CAAC,CAAC,CAAC,EAAf,wBAAe;wBACjB,qBAAM,CAAC,EAAA;;wBAAP,SAAO,CAAA;;;;;;;;;;;;;;;;;;;SAGZ;QAEM,8BAAU,GAAjB;YACE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;SAClC;QACH,gBAAC;IAAD,CA3FA,CAA6B,GAAG,GA2F/B;IAED,SAAS,QAAQ,CAAK,GAAa;QACjC,OAAO,yBAAI,GAAG,UAAE,OAAO,EAAE,CAAA;IAC3B,CAAC;IAED,SAAS,MAAM,CAAK,GAAa,EAAE,KAAa;QAC9C,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,SAAS,KAAK,CAAK,GAAa,EAAE,KAAa;QAC7C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;;IC5GD;QAA6B,6BAAG;QAI9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA9F,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SAUtC;YAZD,eAAS,GAAe,EAAE,CAAA;YAGxB,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,YAAY,EAAE,CAAA;YACrC,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,CAAA;YAEvC,OAAO,YAAY,CAAC,MAAM,EAAE;gBAC1B,IAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAG,CAAA;gBACnC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;iCAAQ;gBAC5D,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;aAC5D;YACD,MAAM,IAAI,KAAK,CAAC,cAAO,QAAQ,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA;SACxD;QAEO,gCAAY,GAApB;YACE,IAAI,KAAK,GAA8C,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YACtF,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAA;YAC/B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAA;YACnC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAA;YACvB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACnD;QAEC,0BAAM,GAAR,UAAU,GAAY;;;;;wBACd,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;wBACjB,qBAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAA;;wBAAnD,IAAI,GAAG,SAA4C;wBACzD,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;;;;SACnC;QAEQ,4BAAQ,GAAjB;;gBACE,sBAAO,IAAI,CAAC,SAAS,EAAA;;SACtB;QAEQ,8BAAU,GAAnB;;;4BACE,qBAAM,IAAI,CAAC,UAAU,EAAA;;wBAArB,SAAqB,CAAA;;;;SACtB;QACH,gBAAC;IAAD,CAtCA,CAA6B,GAAG,GAsC/B;;ICtCD;QAA6B,6BAAG;QAI9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA9F,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SA4CtC;YA/CD,cAAQ,GAAsD,EAAE,CAAA;YAChE,mBAAa,GAAe,EAAE,CAAA;YAG5B,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,KAAI,CAAC,MAAM,CAAC,CAAA;YACvE,KAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YAEvB,IAAI,CAAC,GAAe,EAAE,CAAA;YACtB,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,IAAM,MAAM,GAAgB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;iBACzD,EAAE,CAAC,UAAU,EAAE,UAAC,KAAe;gBAC9B,IAAI,SAAS,GAAG,CAAC,EAAE;oBACjB,OAAM;iBACP;gBAED,CAAC,GAAG,EAAE,CAAA;gBAEN,IAAM,MAAM,GAAiB,EAAE,CAAA;gBAC/B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE;oBAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAA;oBAC/C,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;oBAC3B,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;wBAClC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;qBAC5B;yBAAM;wBACL,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;qBAC7B;iBACF;gBACD,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,MAAM,QAAA;oBACN,SAAS,EAAE,CAAC;iBACb,CAAC,CAAA;aACH,CAAC;iBACD,EAAE,CAAC,UAAU,EAAE;gBACd,SAAS,EAAE,CAAA;gBACX,CAAC,GAAG,KAAI,CAAC,aAAa,CAAA;aACvB,CAAC;iBACD,EAAE,CAAC,aAAa,EAAE,cAAM,OAAA,MAAM,CAAC,IAAI,EAAE,GAAA,CAAC;iBACtC,EAAE,CAAC,UAAU,EAAE,UAAC,GAAa;gBAC5B,IAAI,CAAC,KAAK,KAAI,CAAC,aAAa,IAAI,SAAS,KAAK,CAAC,EAAE;oBAC/C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBACZ;aACF,CAAC;iBACD,EAAE,CAAC,KAAK,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,cAAO,QAAQ,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA;aACxD,CAAC,CAAA;YAEJ,MAAM,CAAC,KAAK,EAAE,CAAA;;SACf;QAEC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;;wBAChC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;wBACf,KAAA,OAAO,CAAA;wBAAC,qBAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA;;wBAAhE,MAAM,GAAG,kBAAQ,SAA+C,EAAC;wBACnE,SAAS,GAAG,KAAK,CAAA;;;;wBACA,KAAA,SAAA,IAAI,CAAC,QAAQ,CAAA;;;;wBAAvB,MAAM;;;;wBACU,oBAAA,SAAA,MAAM,CAAC,MAAM,CAAA,CAAA;;;;wBAA3B,UAAU;wBACL,qBAAM,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA;;wBAA5D,KAAK,GAAG,SAAoD;6BAC9D,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAArB,wBAAqB;wBACvB,qBAAM,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAvD,SAAuD,CAAA;wBACvD,SAAS,GAAG,IAAI,CAAA;wBAChB,wBAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAIP,CAAC,SAAS,EAAV,yBAAU;wBACZ,qBAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAzD,SAAyD,CAAA;;;;;SAE5D;QAEQ,6BAAS,GAAlB;;;4BACE,qBAAM,IAAI,CAAC,KAAK,EAAA;;wBAAhB,SAAgB,CAAA;wBAChB,sBAAA,SAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,GAAA,CAAC,CAAA,EAAA;;wBAA5C,SAA4C,CAAA;;;;SAC7C;QAEQ,4BAAQ,GAAjB;;;gBACQ,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,GAAA,CAAC,CAAA;gBACzD,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,SAAS,CAAC,IAAI,OAAd,SAAS,2BAAS,IAAI,CAAC,aAAa,WAAC;iBACtC;gBACD,sBAAO,SAAS,EAAA;;SACjB;QACH,gBAAC;IAAD,CAlFA,CAA6B,GAAG,GAkF/B;;ICpFD;QAA6B,6BAAG;QAC9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc;YAA9E,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SAMtC;YALC,OAAO,YAAY,CAAC,MAAM,EAAE;gBAC1B,IAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAG,CAAA;gBACnC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;iCAAQ;aAC7D;YACD,MAAM,IAAI,KAAK,CAAC,cAAO,QAAQ,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA;SACxD;QACD,0BAAM,GAAN,eAAY;QACd,gBAAC;IAAD,CAVA,CAA6B,GAAG,GAU/B;;ICJD;QAA6B,6BAAG;QAI9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA3F,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAmCnC;YAlCC,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAA;YAChC,KAAI,CAAC,IAAI,GAAG,aAAa,CAAC,SAAS,EAAE,KAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACzD,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAA;YAC7B,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE;gBACvB,SAAS,CAAC,SAAS,EAAE,CAAA;gBACrB,IAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAA;gBACzB,IAAM,OAAO,GAAG,SAAS,CAAC,cAAc,EAAE,CAAA;gBAC1C,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE;oBAC3D,SAAS,CAAC,SAAS,EAAE,CAAA;;oBAErB,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;wBAC5B,IAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,CAAA;;wBAEnC,IAAI,KAAK,EAAE;4BACT,IAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAA;4BAC5B,IAAM,KAAK,GAAG,SAAS,CAAC,cAAc,EAAE,CAAA;4BACxC,IAAI,KAAK,SAAA,CAAA;4BACT,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;gCAAE,KAAK,GAAG,SAAS,CAAC,cAAc,EAAE,CAAA;;gCACzD,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAA;4BAE3B,KAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,OAAA,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAA;4BAChE,SAAS,CAAC,SAAS,EAAE,CAAA;4BACrB,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG;gCAAE,SAAS,CAAC,OAAO,EAAE,CAAA;4BACjD,SAAQ;yBACT;qBACF;iBACF;;;;gBAID,SAAS,CAAC,CAAC,GAAG,KAAK,CAAA;gBACnB,MAAK;aACN;YACD,KAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;;SAClE;QACC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;;wBAChC,KAAmB,IAAI,EAArB,MAAM,YAAA,EAAE,IAAI,UAAA,CAAS;wBACX,qBAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAA;;wBAA3D,QAAQ,IAAI,SAA+C,CAAW;wBAC5E,MAAM,CAAC,QAAQ,EAAE,cAAM,OAAA,8BAAsB,QAAQ,OAAG,GAAA,CAAC,CAAA;wBAEnD,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;wBACtB,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAA;wBAC/B,KAAA,QAAQ,CAAA;8BAAC,KAAK;wBAAE,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAAtC,4BAAgB,SAAsB,GAAC,CAAA;6BACnC,IAAI,CAAC,MAAM,CAAC,EAAZ,wBAAY;wBACR,KAAmB,IAAI,CAAC,MAAM,CAAC,EAA7B,KAAK,WAAA,EAAE,KAAK,WAAA,CAAiB;wBACrC,KAAA,KAAK,CAAA;wBAAC,KAAA,KAAK,IAAI,QAAQ,CAAA;wBAAI,qBAAM,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAA;;wBAAtD,MAAwB,GAAG,SAA2B,CAAA;;;6BAGpD,IAAI,CAAC,KAAK,CAAC,EAAX,yBAAW;wBACP,KAAmB,IAAI,CAAC,KAAK,CAAC,EAA5B,KAAK,WAAA,EAAE,KAAK,WAAA,CAAgB;wBACjB,KAAA,YAAY,CAAA;wBAAC,qBAAM,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAA;;wBAArD,UAAU,GAAG,kBAAa,SAA2B,EAAC;wBAC5D,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;;;;wBAC1D,eAAA,SAAA,UAAU,CAAA;;;;wBAAlB,IAAI;wBACb,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;wBACA,qBAAM,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAAzF,SAAS,IAAI,SAA4E,CAAe;wBAC9G,qBAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAA;;wBAAnE,SAAmE,CAAA;wBACnE,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;;;;;;;;;;;;;;;;;6BAGN,qBAAM,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAAzF,SAAS,IAAI,SAA4E,CAAe;wBAC9G,qBAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAA;;wBAAnE,SAAmE,CAAA;;;;;SAEtE;QAEQ,4BAAQ,GAAjB,UAAmB,QAAiB,EAAE,IAAa;;;;8BAC7C,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,EAAlC,wBAAkC;wBAC5B,qBAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAA;4BAApF,uBAAQ,SAA4E,GAAe;4BAErG,sBAAO,EAAE,EAAA;;;SACV;QAEM,gCAAY,GAAnB;YACE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;gBAC1B,IAAM,KAAK,GAAuC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAE7E,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;oBACV,IAAA,KAAmB,IAAI,CAAC,MAAM,CAAC,EAA7B,KAAK,WAAA,EAAE,KAAK,WAAiB,CAAA;oBACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;wBACnB,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;qBAC3B;yBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC9B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;qBAC/B;iBACF;gBAED,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;oBACT,IAAA,KAAmB,IAAI,CAAC,KAAK,CAAC,EAA5B,KAAK,WAAA,EAAE,KAAK,WAAgB,CAAA;oBACpC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;wBACnB,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;qBAC3B;yBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBAC9B,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;qBAC/B;iBACF;gBAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;aAC5D;SACF;QAEQ,6BAAS,GAAlB;;;;;;;wBACkB,KAAA,SAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;wBAAlC,CAAC;6BACN,YAAY,CAAC,CAAC,CAAC,EAAf,wBAAe;wBACjB,qBAAM,CAAC,EAAA;;wBAAP,SAAO,CAAA;;;;;;;;;;;;;;;;;6BAIP,IAAI,CAAC,MAAM,CAAC,EAAZ,wBAAY;wBACN,KAAK,GAAK,IAAI,CAAC,MAAM,CAAC,MAAjB,CAAiB;6BAC1B,YAAY,CAAC,KAAK,CAAC,EAAnB,wBAAmB;wBACrB,qBAAM,KAAK,EAAA;;wBAAX,SAAW,CAAA;;;6BAIX,IAAI,CAAC,KAAK,CAAC,EAAX,yBAAW;wBACL,KAAK,GAAK,IAAI,CAAC,KAAK,CAAC,MAAhB,CAAgB;6BACzB,YAAY,CAAC,KAAK,CAAC,EAAnB,yBAAmB;wBACrB,qBAAM,KAAK,EAAA;;wBAAX,SAAW,CAAA;;;;;SAGhB;QACH,gBAAC;IAAD,CA5HA,CAA6B,GAAG,GA4H/B;IAED;;;;;;AAMA,aAAgB,aAAa,CAAE,SAAoB,EAAE,MAAc,EAAE,MAAc;QACjF,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;YAClC,IAAM,IAAI,GAAG,SAAS,CAAC,SAAS,EAAE,CAAA;YAClC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;YAC3C,IAAI,IAAK,CAAC,OAAO,EAAE,KAAK,MAAM;gBAAE,OAAM;YACtC,IAAIC,aAAwB,CAAC,IAAI,CAAC,EAAE;;gBAElC,IAAM,WAAS,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;gBACrD,OAAO,QAAQ,CAAC,WAAS,CAAC,CAAA;aAC3B;YACD,OAAO,IAAI,CAAA;SACZ;QACD,IAAM,MAAM,4BAAO,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAC,CAAA;QAClE,IAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QACtD,OAAO,SAAS,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;IACrD,CAAC;IAED,SAAS,QAAQ,CAAE,SAAqB;;QAEtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAIC,WAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,CAAA;QAChH,OAAO,SAAS,CAAA;IAClB,CAAC;AAED,aAAkB,cAAc,CAAE,IAAoB,EAAE,GAAY,EAAE,MAAc;;;;oBAClF,IAAI,OAAO,IAAI,KAAK,QAAQ;wBAAE,sBAAO,IAAI,EAAA;oBACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;wBAAE,sBAAO,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,EAAA;oBACnE,qBAAM,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAA;wBAAjC,sBAAO,SAA0B,EAAA;;;KAClC;;ICjKD;QAA6B,6BAAG;QAG9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA3F,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAenC;YAdS,IAAA,SAAS,GAAK,KAAK,UAAV,CAAU;YAC3B,KAAI,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,EAAE,KAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC5D,KAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YAEhC,IAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAA;YACzB,IAAM,OAAO,GAAG,SAAS,CAAC,cAAc,EAAE,CAAA;YAC1C,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC9B,SAAS,CAAC,SAAS,EAAE,CAAA;gBACrB,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;oBAC5B,KAAI,CAAC,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,CAAA;iBACrC;;oBAAM,SAAS,CAAC,CAAC,GAAG,KAAK,CAAA;aAC3B;;gBAAM,SAAS,CAAC,CAAC,GAAG,KAAK,CAAA;YAE1B,KAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;;SAClG;QACC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;wBAChC,KAA4B,IAAI,EAA9B,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA,CAAS;wBAC9B,QAAQ,GAAK,MAAM,SAAX,CAAW;wBACT,qBAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAA;;wBAA3D,QAAQ,IAAI,SAA+C,CAAW;wBAC5E,MAAM,CAAC,QAAQ,EAAE,cAAM,OAAA,8BAAsB,QAAQ,OAAG,GAAA,CAAC,CAAA;wBAEnD,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;wBACrD,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;wBAC7B,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;wBAC/B,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAA/B,KAAK,IAAI,SAAsB,CAAU;6BAC3C,OAAO,EAAP,wBAAO;wBAAE,KAAA,KAAK,CAAA;wBAAC,KAAA,QAAQ,CAAA;wBAAI,qBAAM,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,EAAA;;wBAA/C,MAAe,GAAG,SAA6B,CAAA;;4BACzC,qBAAM,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAApF,SAAS,IAAI,SAAuE,CAAe;wBACzG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAA;wBAC7D,qBAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAvD,SAAuD,CAAA;wBACvD,GAAG,CAAC,GAAG,EAAE,CAAA;wBACT,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;;;;SAC3B;QAEQ,4BAAQ,GAAjB,UAAmB,QAAiB,EAAE,IAAa;;;;8BAC7C,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,EAAlC,wBAAkC;wBAC5B,qBAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAA;4BAApF,uBAAQ,SAA4E,GAAe;4BAErG,sBAAO,EAAE,EAAA;;;SACV;QAEM,gCAAY,GAAnB;YACE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;gBAC1B,IAAI,KAAK,SAAoC,CAAA;gBAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;oBACrC,KAAK,GAAG,CAAC,SAAS,CAAC,CAAA;iBACpB;qBAAM;oBACL,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACnC,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;qBACzC;iBACF;gBAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;aAC7D;SACF;QAEQ,6BAAS,GAAlB;;;4BACE,sBAAA,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA,EAAA;;wBAA1D,SAA0D,CAAA;6BAEtD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAA1B,wBAA0B;wBAC5B,qBAAM,IAAI,CAAC,MAAM,CAAC,EAAA;;wBAAlB,SAAkB,CAAA;;;6BAGhB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAA1B,wBAA0B;wBAC5B,qBAAM,IAAI,CAAC,OAAO,EAAA;;wBAAlB,SAAkB,CAAA;;;;;SAErB;QACH,gBAAC;IAAD,CAzEA,CAA6B,GAAG,GAyE/B;;IC5ED;QAA6B,6BAAG;QAG9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc;YAA3E,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAGnC;YAFC,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YACjD,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,CAAA;;SACxC;QACD,0BAAM,GAAN,UAAQ,OAAgB,EAAE,OAAgB;YACxC,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAA;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACnC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;aACzB;YACD,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;SACjD;QAEQ,8BAAU,GAAnB;;;4BACE,qBAAM,IAAI,CAAC,UAAU,EAAA;;wBAArB,SAAqB,CAAA;;;;SACtB;QACH,gBAAC;IAAD,CAnBA,CAA6B,GAAG,GAmB/B;;ICpBD;QAA6B,6BAAG;QAG9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc;YAA3E,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAiBnC;YApBO,gBAAU,GAAiB,EAAE,CAAA;YAInC,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YACxC,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAE1B,IAAI,KAAK,EAAE;gBACT,IAAI,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE;oBACjC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAA;oBAClB,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;iBACzB;;oBAAM,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACnC;YAED,OAAO,CAAC,KAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE;gBAC5B,IAAM,KAAK,GAAG,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;gBACxC,IAAI,KAAK;oBAAE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACtC,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAC3B;YACD,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,cAAM,OAAA,8BAAsB,KAAK,CAAC,OAAO,EAAE,OAAG,GAAA,CAAC,CAAA;;SAC9F;QAEC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;4BACvB,qBAAM,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAA;;wBAAzC,KAAK,IAAI,SAAgC,CAAe;wBACxD,WAAW,GAAG,gBAAS,KAAK,MAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;wBAC3D,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;wBACnC,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;wBAE7B,IAAI,GAAG,KAAK,SAAS,EAAE;4BACrB,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;yBAC9B;wBAEK,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;wBACtC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;wBACxC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAA;wBAClB,qBAAM,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,EAAA;4BAAtC,sBAAO,SAA+B,EAAA;;;SACvC;QAEQ,6BAAS,GAAlB;;;4BACE,sBAAA,SAAQ,IAAI,CAAC,UAAU,CAAA,EAAA;;wBAAvB,SAAuB,CAAA;6BAEnB,IAAI,CAAC,KAAK,EAAV,wBAAU;wBACZ,qBAAM,IAAI,CAAC,KAAK,EAAA;;wBAAhB,SAAgB,CAAA;;;;;SAEnB;QACH,gBAAC;IAAD,CA9CA,CAA6B,GAAG,GA8C/B;;IC5CD;QAA6B,6BAAG;QAI9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA9F,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SAuBtC;YA3BD,cAAQ,GAA8C,EAAE,CAAA;YAKtD,IAAI,CAAC,GAAe,EAAE,CAAA;YACtB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;iBAC7B,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpC,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,KAAI,CAAC,MAAM,CAAC;gBACrE,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC;aACpB,CAAC,GAAA,CAAC;iBACF,EAAE,CAAC,WAAW,EAAE,UAAC,KAAe;gBAC/B,MAAM,CAAC,CAAC,KAAI,CAAC,aAAa,EAAE,6BAA6B,CAAC,CAAA;gBAC1D,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,KAAI,CAAC,MAAM,CAAC;oBAClE,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC;iBACpB,CAAC,CAAA;aACH,CAAC;iBACD,EAAE,CAAW,UAAU,EAAE,UAAA,GAAG;gBAC7B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBACrB,MAAM,CAAC,CAAC,KAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;gBAC9C,CAAC,GAAG,KAAI,CAAC,aAAa,GAAG,EAAE,CAAA;aAC5B,CAAC;iBACC,EAAE,CAAW,WAAW,EAAE,UAAU,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA,EAAE,CAAC;iBAChF,EAAE,CAAC,UAAU,EAAE,UAAC,GAAa,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAA,CAAC;iBAC9C,EAAE,CAAC,KAAK,EAAE,cAAQ,MAAM,IAAI,KAAK,CAAC,cAAO,QAAQ,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA,EAAE,CAAC;iBAC5E,KAAK,EAAE,CAAA;;SACX;QAEC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;;wBAChC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;;;;wBAEK,KAAA,SAAA,IAAI,CAAC,QAAQ,CAAA;;;;wBAArC,aAAoB,EAAlB,KAAK,WAAA,EAAE,SAAS,eAAA;wBACjB,qBAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA;;wBAA9C,CAAC,GAAG,SAA0C;6BAChD,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAhB,wBAAgB;wBAClB,qBAAM,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAhD,SAAgD,CAAA;wBAChD,sBAAM;;;;;;;;;;;;;;;4BAGV,qBAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAA/D,SAA+D,CAAA;;;;SAChE;QAEQ,4BAAQ,GAAjB;;;gBACQ,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,GAAA,CAAC,CAAA;gBACzD,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,SAAS,CAAC,IAAI,OAAd,SAAS,2BAAS,IAAI,CAAC,aAAa,WAAC;iBACtC;gBACD,sBAAO,SAAS,EAAA;;SACjB;QAEM,6BAAS,GAAhB;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,GAAA,CAAC,CAAA;SACvC;QACH,gBAAC;IAAD,CAtDA,CAA6B,GAAG,GAsD/B;;ICvDD;QAA6B,6BAAG;QAG9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc;YAA3E,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAGnC;YAFC,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YACjD,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,CAAA;;SACxC;QACD,0BAAM,GAAN,UAAQ,OAAgB,EAAE,OAAgB;YACxC,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAA;YAClC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACnC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;aACzB;YACD,IAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;YACtB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;SAC9B;QAEQ,8BAAU,GAAnB;;;4BACE,qBAAM,IAAI,CAAC,UAAU,EAAA;;wBAArB,SAAqB,CAAA;;;;SACtB;QACH,gBAAC;IAAD,CArBA,CAA6B,GAAG,GAqB/B;;ICjBD;QAA6B,6BAAG;QAI9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA3F,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAKnC;YAJC,KAAI,CAAC,IAAI,GAAG,aAAa,CAAC,KAAI,CAAC,SAAS,EAAE,KAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC9D,KAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YAChC,KAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YACtE,KAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;;SAClD;QACC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;wBAChC,KAAyB,IAAI,EAA3B,MAAM,YAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAA,CAAS;wBAC3B,QAAQ,GAAK,MAAM,SAAX,CAAW;8BACvB,IAAI,KAAK,SAAS,CAAA,EAAlB,wBAAkB;wBACpB,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;wBAC9C,qBAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAA5D,SAA4D,CAAA;wBAC5D,sBAAM;4BAEU,qBAAM,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAA;;wBAAxD,QAAQ,IAAI,SAA4C,CAAW;wBACzE,MAAM,CAAC,QAAQ,EAAE,cAAM,OAAA,8BAAsB,QAAQ,OAAG,GAAA,CAAC,CAAA;wBACtC,qBAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAAnF,SAAS,IAAI,SAAsE,CAAe;;wBAGxG,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;wBAChC,qBAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,EAAA;;wBAA1D,IAAI,GAAG,SAAmD;wBAC1D,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;;wBAGxC,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,SAAS;4BAAE,MAAM,CAAC,EAAE,CAAC,GAAG,UAAC,MAAiB,EAAE,OAAgB,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,CAAA;wBACvG,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;;wBAG9C,KAAA,CAAA,KAAA,GAAG,EAAC,IAAI,CAAA;wBAAE,qBAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;;wBAAhC,eAAU,SAAsB,GAAW,CAAA;wBAC3C,qBAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAvD,SAAuD,CAAA;wBACvD,GAAG,CAAC,GAAG,EAAE,CAAA;;;;SACV;QAEQ,4BAAQ,GAAjB,UAAmB,QAAiB;;;;;wBAC5B,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;8BAEpC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAA/B,wBAA+B;6BACjC,CAAA,KAAA,SAAS,CAAC,IAAI;8BAAd,SAAS;;wBAAU,qBAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAA5F,sFAAmB,SAAyE,iBAAgB;;4BAG9G,sBAAO,SAAS,EAAA;;;SACjB;QAEQ,6BAAS,GAAlB;;;;;;;wBACkB,KAAA,SAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;wBAAlC,CAAC;6BACN,YAAY,CAAC,CAAC,CAAC,EAAf,wBAAe;wBACjB,qBAAM,CAAC,EAAA;;wBAAP,SAAO,CAAA;;;;;;;;;;;;;;;;;6BAIP,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAvB,wBAAuB;wBACzB,qBAAM,IAAI,CAAC,IAAI,EAAA;;wBAAf,SAAe,CAAA;;;;;SAElB;QAEM,gCAAY,GAAnB;YACE,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;aAChF;SACF;QACH,gBAAC;IAAD,CAjEA,CAA6B,GAAG,GAiE/B;;ICnED;QAA6B,6BAAG;QAG9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA3F,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAUnC;YAZD,eAAS,GAAe,EAAE,CAAA;YAGxB,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACpC,KAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YAClC,OAAO,YAAY,CAAC,MAAM,EAAE;gBAC1B,IAAM,OAAK,GAAG,YAAY,CAAC,KAAK,EAAG,CAAA;gBACnC,IAAI,UAAU,CAAC,OAAK,CAAC,IAAI,OAAK,CAAC,IAAI,KAAK,UAAU;iCAAQ;gBAC1D,IAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,OAAK,EAAE,YAAY,CAAC,CAAA;gBACvD,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;aAC9B;YACD,MAAM,IAAI,KAAK,CAAC,cAAO,KAAK,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA;SACrD;QAEC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;wBAChC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;8BACxC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC,KAAK,CAAA,EAAhD,wBAAgD;wBAClD,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,WAAW,CAAA;;4BAEnD,qBAAM,WAAW,CAAC,IAAI,SAAS,EAAE,EAAE,OAAO,CAAC,EAAA;;wBAA3C,SAA2C,CAAA;;;;;SAE9C;QAEO,kCAAc,GAAtB,UAAwB,GAAY;YAC5B,IAAA,KAAwB,IAAI,EAA1B,MAAM,YAAA,EAAE,SAAS,eAAS,CAAA;YAClC,IAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzD,IAAM,aAAa,GAAG,UAAY,UAAqB,EAAE,OAAgB;;;;;4BAEvE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;4BAC/B,qBAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;4BAA9D,SAA8D,CAAA;4BAC9D,GAAG,CAAC,GAAG,EAAE,CAAA;;;;aACV,CAAA;YACD,OAAO,WAAW;kBACd,UAAC,UAAqB,EAAE,OAAgB,IAAK,OAAA,WAAW,CACxD,IAAI,SAAS,CACX,UAAC,OAAgB,IAAK,OAAA,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,GAAA,CACzD,EACD,OAAO,CAAC,GAAA;kBACR,aAAa,CAAA;SAClB;QAEQ,4BAAQ,GAAjB;;gBACE,sBAAO,IAAI,CAAC,SAAS,EAAA;;SACtB;QAEM,8BAAU,GAAjB;YACE,OAAO,CAAC,OAAO,CAAC,CAAA;SACjB;QACH,gBAAC;IAAD,CAlDA,CAA6B,GAAG,GAkD/B;;ICrDD;QAA6B,6BAAG;QAE9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc;YAA9E,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SAOtC;YATO,YAAM,GAAoB,EAAE,CAAA;YAGlC,OAAO,YAAY,CAAC,MAAM,EAAE;gBAC1B,IAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAG,CAAA;gBACnC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;iCAAQ;gBACxD,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACxB;YACD,MAAM,IAAI,KAAK,CAAC,cAAO,QAAQ,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA;SACxD;QACD,0BAAM,GAAN;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAoB,IAAK,OAAA,KAAK,CAAC,OAAO,EAAE,GAAA,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SAC3E;QACH,gBAAC;IAAD,CAdA,CAA6B,GAAG,GAc/B;;ICfD;QAAsC,oCAAW;QAE/C,0BAAoB,MAAc,EAAE,IAAY,EAAE,UAAkB,EAAE,QAAgB;YAAtF,YACE,kBAAM,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,SAGpC;YAFC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,KAAI,CAAC,IAAI,GAAG,IAAI,CAAA;;SACjB;QACM,8BAAG,GAAV;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC1C;QACM,+BAAI,GAAX;YACE,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAC;SAC5B;QACM,8BAAG,GAAV;YACE,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;SACvB;QACM,oCAAS,GAAhB;YACE,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;SACzB;QACM,mCAAQ,GAAf;YACE,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC,IAAI,CAAA;SAChC;QACH,uBAAC;IAAD,CAtBA,CAAsC,WAAW,GAsBhD;;IClBD;QAA6B,6BAAG;QAK9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA9F,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SAyBtC;YAxBC,IAAM,QAAQ,GAAG,KAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YAChD,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAE1B,IAAM,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAA;YACjD,IAAM,eAAe,GAAG,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAClD,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE;gBAClD,MAAM,IAAI,KAAK,CAAC,uBAAgB,QAAQ,CAAC,OAAO,EAAE,CAAE,CAAC,CAAA;aACtD;YAED,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;YAChC,KAAI,CAAC,UAAU,GAAG,eAAe,CAAA;YACjC,KAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;YACtE,KAAI,CAAC,SAAS,GAAG,EAAE,CAAA;YAEnB,IAAI,CAAC,CAAA;YACL,IAAM,MAAM,GAAgB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;iBACzD,EAAE,CAAC,OAAO,EAAE,cAAM,QAAC,CAAC,GAAG,KAAI,CAAC,SAAS,IAAC,CAAC;iBACvC,EAAE,CAAC,iBAAiB,EAAE,cAAM,OAAA,MAAM,CAAC,IAAI,EAAE,GAAA,CAAC;iBAC1C,EAAE,CAAC,UAAU,EAAE,UAAC,GAAa,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAA,CAAC;iBAC9C,EAAE,CAAC,KAAK,EAAE;gBACT,MAAM,IAAI,KAAK,CAAC,cAAO,QAAQ,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA;aACxD,CAAC,CAAA;YAEJ,MAAM,CAAC,KAAK,EAAE,CAAA;;SACf;QAEC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;wBACrB,KAAA,YAAY,CAAA;wBAAC,qBAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAA;;wBAA/D,UAAU,GAAG,kBAAa,SAAqC,EAAC;wBACtD,qBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAA;;wBAAnC,IAAI,IAAI,SAA2B,CAAwB;wBAC3D,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;wBACzB,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAA;wBAEzE,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAA;wBAC/C,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,CAAA;wBAErC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;wBACxB,YAAY,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;wBACtG,KAAK,GAAG,EAAE,YAAY,cAAA,EAAE,CAAA;wBAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBAEN,GAAG,GAAG,CAAC;;;8BAAE,GAAG,GAAG,UAAU,CAAC,MAAM,CAAA;wBACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;wBACtC,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;4BAC7B,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC;gCAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;4BACpD,OAAO,CAAC,KAAK,CAAC,yBAAiB,YAAY,CAAC,GAAG,EAAE,QAAI,CAAC,CAAA;yBACvD;wBACD,OAAO,CAAC,KAAK,CAAC,yBAAiB,YAAY,CAAC,GAAG,EAAE,QAAI,CAAC,CAAA;wBACtD,qBAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAArD,SAAqD,CAAA;wBACrD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;;;wBARmB,GAAG,EAAE,EAAE,YAAY,CAAC,IAAI,EAAE,CAAA;;;wBAUrE,IAAI,UAAU,CAAC,MAAM;4BAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;wBAC7C,GAAG,CAAC,GAAG,EAAE,CAAA;;;;SACV;QAEQ,4BAAQ,GAAjB;;gBACE,sBAAO,IAAI,CAAC,SAAS,EAAA;;SACtB;QAEQ,6BAAS,GAAlB;;;;;4BACE,qBAAM,IAAI,CAAC,UAAU,EAAA;;wBAArB,SAAqB,CAAA;;;;wBAEL,KAAA,SAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;;wBAAlC,CAAC;6BACN,YAAY,CAAC,CAAC,CAAC,EAAf,wBAAe;wBACjB,qBAAM,CAAC,EAAA;;wBAAP,SAAO,CAAA;;;;;;;;;;;;;;;;;;;SAGZ;QAEM,8BAAU,GAAjB;YACE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;SACvC;QACH,gBAAC;IAAD,CA9EA,CAA6B,GAAG,GA8E/B;;IChFD;QAA6B,6BAAG;QAG9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA9F,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SAgCtC;YAnCD,cAAQ,GAAyF,EAAE,CAAA;YACnG,mBAAa,GAAe,EAAE,CAAA;YAG5B,IAAI,CAAC,GAAe,EAAE,CAAA;YACtB,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;iBAC7B,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpC,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,KAAI,CAAC,MAAM,CAAC;gBACrE,IAAI,EAAE,OAAO;gBACb,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC;aACpB,CAAC,GAAA,CAAC;iBACF,EAAE,CAAC,WAAW,EAAE,UAAC,KAAe;gBAC/B,IAAI,SAAS,GAAG,CAAC,EAAE;oBACjB,CAAC,GAAG,EAAE,CAAA;oBACN,OAAM;iBACP;gBACD,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,KAAI,CAAC,MAAM,CAAC;oBAClE,IAAI,EAAE,QAAQ;oBACd,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC;iBACpB,CAAC,CAAA;aACH,CAAC;iBACD,EAAE,CAAC,UAAU,EAAE;gBACd,SAAS,EAAE,CAAA;gBACX,CAAC,GAAG,KAAI,CAAC,aAAa,CAAA;aACvB,CAAC;iBACD,EAAE,CAAC,eAAe,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE,CAAA,EAAE,CAAC;iBAChD,EAAE,CAAC,UAAU,EAAE,UAAC,GAAa;gBAC5B,IAAI,CAAC,KAAK,KAAI,CAAC,aAAa,IAAI,SAAS,KAAK,CAAC,EAAE;oBAC/C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBACZ;aACF,CAAC;iBACD,EAAE,CAAC,KAAK,EAAE,cAAQ,MAAM,IAAI,KAAK,CAAC,cAAO,QAAQ,CAAC,OAAO,EAAE,gBAAa,CAAC,CAAA,EAAE,CAAC;iBAC5E,KAAK,EAAE,CAAA;;SACX;QAEC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;;wBAChC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;;;;wBAEW,KAAA,SAAA,IAAI,CAAC,QAAQ,CAAA;;;;wBAA3C,aAA0B,EAAxB,KAAK,WAAA,EAAE,gBAAI,EAAE,SAAS,eAAA;wBACvB,qBAAM,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAA;;wBAA9C,CAAC,GAAG,SAA0C;6BAChD,MAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAZ,wBAAY;wBACd,qBAAM,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAhD,SAAgD,CAAA;wBAChD,sBAAM;;;;;;;;;;;;;;;4BAIV,qBAAM,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAzD,SAAyD,CAAA;;;;SAC1D;QAEQ,4BAAQ,GAAjB;;;gBACQ,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,GAAA,CAAC,CAAA;gBACxD,IAAI,IAAI,CAAC,aAAa,EAAE;oBACtB,QAAQ,CAAC,IAAI,OAAb,QAAQ,2BAAS,IAAI,CAAC,aAAa,WAAC;iBACrC;gBACD,sBAAO,QAAQ,EAAA;;SAChB;QAEM,6BAAS,GAAhB;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,GAAA,CAAC,CAAA;SACvC;QACH,gBAAC;IAAD,CA/DA,CAA6B,GAAG,GA+D/B;;ICjED;QAA6B,6BAAG;QAAhC;;SAIC;QAHC,0BAAM,GAAN,UAAQ,GAAY,EAAE,QAAiB;YACrC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAA;SACvB;QACH,gBAAC;IAAD,CAJA,CAA6B,GAAG,GAI/B;;ICJD;QAA6B,6BAAG;QAAhC;;SAIC;QAHC,0BAAM,GAAN,UAAQ,GAAY,EAAE,QAAiB;YACrC,GAAG,CAAC,cAAc,GAAG,IAAI,CAAA;SAC1B;QACH,gBAAC;IAAD,CAJA,CAA6B,GAAG,GAI/B;;ICHD;QAA6B,6BAAG;QAG9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc;YAA3E,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAKnC;YAJC,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAA;YAC1B,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE;gBACzB,KAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,KAAI,CAAC,MAAM,CAAC,CAAA;aACxE;;SACF;QACC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;;;wBACtC,IAAI,CAAC,IAAI,CAAC,KAAK;4BAAE,sBAAM;wBACX,qBAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAA;;wBAAxC,GAAG,GAAG,SAAkC;wBAC9C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;;;;SACnB;QAEQ,6BAAS,GAAlB;;;;6BACM,IAAI,CAAC,KAAK,EAAV,wBAAU;wBACZ,qBAAM,IAAI,CAAC,KAAK,EAAA;;wBAAhB,SAAgB,CAAA;;;;;SAEnB;QACH,gBAAC;IAAD,CArBA,CAA6B,GAAG,GAqB/B;;ICrBD;QAA6B,6BAAG;QAE9B,mBAAa,KAAe,EAAE,YAA6B,EAAE,MAAc,EAAE,MAAc;YAA3F,YACE,kBAAM,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,SAGnC;YAFC,IAAM,MAAM,GAAG,KAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACtE,KAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;;SAC5C;QACC,0BAAM,GAAR,UAAU,GAAY,EAAE,OAAgB;;;4BACtC,qBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAA;;wBAAxE,SAAwE,CAAA;;;;SACzE;QAEQ,4BAAQ,GAAjB;;gBACE,sBAAO,IAAI,CAAC,SAAS,EAAA;;SACtB;QACH,gBAAC;IAAD,CAdA,CAA6B,GAAG,GAc/B;;ICfD;QAA6B,6BAAG;QAC9B,mBAAa,QAAkB,EAAE,YAA6B,EAAE,MAAc;YAA9E,YACE,kBAAM,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,SAItC;YAHC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/C,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;aACrF;;SACF;QACD,0BAAM,GAAN,eAAa;QACf,gBAAC;IAAD,CARA,CAA6B,GAAG,GAQ/B;;QCaY,IAAI,GAA6B;QAC5C,MAAM,EAAEC,SAAS;QACjB,KAAK,EAAEC,WAAM;QACb,OAAO,EAAEC,WAAU;QACnB,MAAM,EAAEC,WAAO;QACf,OAAO,EAAEC,WAAU;QACnB,OAAO,EAAEC,WAAU;QACnB,MAAM,EAAEC,WAAS;QACjB,SAAS,EAAEC,WAAY;QACvB,SAAS,EAAEC,WAAY;QACvB,KAAK,EAAEC,WAAQ;QACf,IAAI,EAAEC,WAAK;QACX,MAAM,EAAEC,WAAS;QACjB,KAAK,EAAEC,WAAQ;QACf,GAAG,EAAEC,WAAM;QACX,QAAQ,EAAEC,WAAW;QACrB,MAAM,EAAEC,WAAS;QACjB,OAAO,EAAEC,WAAQ;QACjB,UAAU,EAAEC,WAAW;QACvB,IAAI,EAAEC,WAAO;QACb,MAAM,EAAEC,WAAS;QACjB,GAAG,EAAEC,WAAgB;KACtB;;;QCzBC,gBAAoB,IAAwB;YAAxB,qBAAA,EAAA,SAAwB;YAA5C,iBAMC;YAde,aAAQ,GAAG,IAAI,MAAM,EAAE,CAAA;YAKvB,YAAO,GAAsC,EAAE,CAAA;YAC/C,SAAI,GAA6B,EAAE,CAAA;YAGjD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;;YAE9B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;YAC9B,MAAM,CAAC,IAAI,EAAE,UAAC,IAAc,EAAE,IAAY,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,GAAA,CAAC,CAAA;YAC5E,MAAM,CAAC,OAAO,EAAE,UAAC,OAA0B,EAAE,IAAY,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,GAAA,CAAC,CAAA;SAClG;QACM,sBAAK,GAAZ,UAAc,IAAY,EAAE,QAAiB;YAC3C,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAA;YAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;SACpC;QAEM,wBAAO,GAAd,UAAgB,GAAe,EAAE,KAAmC,EAAE,aAA4B;YAChG,IAAM,GAAG,GAAG,KAAK,YAAY,OAAO,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAC9F,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAC/C;QACY,uBAAM,GAAnB,UAAqB,GAAe,EAAE,KAAc,EAAE,aAA6B;;;oBACjF,sBAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,wBAAO,aAAa,KAAE,IAAI,EAAE,KAAK,IAAG,CAAC,EAAA;;;SAC9E;QACM,2BAAU,GAAjB,UAAmB,GAAe,EAAE,KAAc,EAAE,aAA6B;YAC/E,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,wBAAO,aAAa,KAAE,IAAI,EAAE,IAAI,IAAG,CAAC,CAAA;SAC/E;QACM,mCAAkB,GAAzB,UAA2B,GAAe,EAAE,KAAc,EAAE,aAAiC;YAAjC,8BAAA,EAAA,kBAAiC;YAC3F,IAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;SAC3D;QAEM,gCAAe,GAAtB,UAAwB,IAAY,EAAE,KAAmC,EAAE,aAA4B;YACrG,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;SAC/C;QACY,+BAAc,GAA3B,UAA6B,IAAY,EAAE,KAAwB,EAAE,aAA6B;;;oBAChG,sBAAO,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,wBAAO,aAAa,KAAE,IAAI,EAAE,KAAK,IAAG,CAAC,EAAA;;;SACvF;QACM,mCAAkB,GAAzB,UAA2B,IAAY,EAAE,KAAwB,EAAE,aAA6B;YAC9F,OAAO,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,wBAAO,aAAa,KAAE,IAAI,EAAE,IAAI,IAAG,CAAC,CAAA;SACxF;QAEM,kCAAiB,GAAxB,UAA0B,IAAY,EAAE,IAAc,EAAE,WAAoB;YAC1E,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;SAChF;QACM,iCAAgB,GAAvB,UAAyB,IAAY,EAAE,IAAc,EAAE,WAAoB;YACzE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;SAC/E;QACM,2BAAU,GAAjB,UAAmB,IAAY,EAAE,IAAc,EAAE,UAAuB,EAAE,WAAoB;YAC5F,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;SACvE;QACY,0BAAS,GAAtB,UAAwB,IAAY,EAAE,UAAuB;;;oBAC3D,sBAAO,SAAS,CAAa,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAA;;;SAClF;QACM,8BAAa,GAApB,UAAsB,IAAY,EAAE,UAAuB;YACzD,OAAO,WAAW,CAAa,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;SACnF;QACQ,4BAAW,GAApB,UAAsB,IAAY,EAAE,GAAiC,EAAE,iBAAoC;;;;4BACtF,qBAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAA;;wBAA9F,SAAS,IAAI,SAAiF,CAAe;wBAC5G,qBAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAA;4BAA5D,sBAAO,SAAqD,EAAA;;;SAC7D;QACY,2BAAU,GAAvB,UAAyB,IAAY,EAAE,GAAsB,EAAE,iBAAqC;;;oBAClG,sBAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,wBAAO,iBAAiB,KAAE,IAAI,EAAE,KAAK,IAAG,CAAC,EAAA;;;SACrF;QACM,+BAAc,GAArB,UAAuB,IAAY,EAAE,GAAsB,EAAE,iBAAqC;YAChG,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,wBAAO,iBAAiB,KAAE,IAAI,EAAE,IAAI,IAAG,CAAC,CAAA;SACtF;QACY,uCAAsB,GAAnC,UAAqC,IAAY,EAAE,KAAc,EAAE,aAA6B;;;;;gCAC5E,qBAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAA;;4BAAtC,SAAS,GAAG,SAA0B;4BAC5C,sBAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC,EAAA;;;;SAChE;QAEM,2BAAU,GAAjB,UAAmB,GAAW,EAAE,KAAwB;YACtD,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAClC,IAAM,GAAG,GAAG,KAAK,YAAY,OAAO,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YAC/E,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SACxB;QACY,0BAAS,GAAtB,UAAwB,GAAW,EAAE,KAAwB;;;oBAC3D,sBAAO,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAA;;;SAC9C;QACM,8BAAa,GAApB,UAAsB,GAAW,EAAE,KAAwB;YACzD,OAAO,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;SAChD;QAEM,+BAAc,GAArB,UAAuB,IAAY,EAAE,MAAyB;YAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;SAC5B;QACM,4BAAW,GAAlB,UAAoB,IAAY,EAAE,GAA8B;YAC9D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;SAC9D;QACM,uBAAM,GAAb,UAAe,MAAgD;YAC7D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;SACjC;QACM,wBAAO,GAAd;YACE,IAAM,IAAI,GAAG,IAAI,CAAA;YACjB,IAAI,SAAS,GAAG,IAAI,CAAA;YAEpB,OAAO,UAAqB,QAAgB,EAAE,GAAW,EAAE,QAAuD;;gBAChH,IAAI,SAAS,EAAE;oBACb,SAAS,GAAG,KAAK,CAAA;oBACjB,IAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC9C,CAAA,KAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAC,OAAO,oCAAI,IAAI,WAAC;oBAClC,CAAA,KAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAC,OAAO,oCAAI,IAAI,WAAC;oBACrC,CAAA,KAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,OAAO,oCAAI,IAAI,WAAC;iBACvC;gBACD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAQ,GAAA,EAAE,QAAe,CAAC,CAAA;aAC1F,CAAA;SACF;QAEY,wBAAO,GAApB,UAAsB,QAAoB,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;oBAC7E,sBAAO,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAA;;;SAClC;QAEM,4BAAW,GAAlB,UAAoB,QAAoB,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YAC3E,OAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;SACtC;QAEY,gCAAe,GAA5B,UAA8B,IAAY,EAAE,QAAiB,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;oBAChG,sBAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAA;;;SACpD;QAEM,oCAAmB,GAA1B,UAA4B,IAAY,EAAE,QAAiB,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YAC9F,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;SACxD;;QAGY,0BAAS,GAAtB,UAAwB,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;;;gCACvE,qBAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAA;;4BAAvF,QAAQ,GAAG,SAA4E;4BAC7F,sBAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAA;;;;SACvC;;QAGM,8BAAa,GAApB,UAAsB,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YACtF,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3F,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;SACvC;;QAGY,8BAAa,GAA1B,UAA4B,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;;;gCAC3E,qBAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAA;;4BAAvF,QAAQ,GAAG,SAA4E;4BAC7F,sBAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,EAAA;;;;SACtG;;QAGM,kCAAiB,GAAxB,UAA0B,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YAC1F,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3F,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,CAAA;SACtG;;QAGY,iCAAgB,GAA7B,UAA+B,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;;;gCAC9E,qBAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAA;;4BAAvF,QAAQ,GAAG,SAA4E;4BAC7F,sBAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,EAAE,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,EAAA;;;;SAC3G;;QAGM,qCAAoB,GAA3B,UAA6B,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YAC7F,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3F,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,EAAE,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,CAAA;SAC3G;;QAGY,gCAAe,GAA5B,UAA8B,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;;;gCAC7E,qBAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAA;;4BAAvF,QAAQ,GAAG,SAA4E;4BAC7F,sBAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAA;;;;SACrC;;QAGM,oCAAmB,GAA1B,UAA4B,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YAC5F,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3F,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;SACrC;;QAGY,oCAAmB,GAAhC,UAAkC,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;;;gCACjF,qBAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAA;;4BAAvF,QAAQ,GAAG,SAA4E;4BAC7F,sBAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,EAAA;;;;SACpG;;QAGM,wCAAuB,GAA9B,UAAgC,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YAChG,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3F,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,CAAA;SACpG;;QAGY,uCAAsB,GAAnC,UAAqC,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;;;;;gCACpF,qBAAM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAA;;4BAAvF,QAAQ,GAAG,SAA4E;4BAC7F,sBAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,EAAE,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,EAAA;;;;SACzG;;QAGM,2CAA0B,GAAjC,UAAmC,QAA6B,EAAE,OAAmC;YAAnC,wBAAA,EAAA,YAAmC;YACnG,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC3F,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,EAAE,GAAA,CAAC,GAAA,CAAC,CAAC,CAAC,CAAA;SACzG;QACH,aAAC;IAAD,CAAC;;ICpND;AACA,QAAa,OAAO,GAAG,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file |
