@secondlayer/stacks 6.5.4 → 6.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shared/{stacks-esm-17adzt3x.js → stacks-esm-0t9vwtwh.js} +9 -9
- package/dist/shared/{stacks-esm-s3natb0x.js → stacks-esm-1f46cr7b.js} +8 -8
- package/dist/shared/{stacks-esm-s3natb0x.js.map → stacks-esm-1f46cr7b.js.map} +3 -3
- package/dist/shared/{stacks-esm-2cac1jn9.js → stacks-esm-2z40q8gs.js} +4 -4
- package/dist/shared/{stacks-esm-ev07d2aw.js → stacks-esm-4rjjsz3p.js} +3 -3
- package/dist/shared/{stacks-esm-5eq7meyt.js → stacks-esm-8p8xy3dz.js} +16 -4
- package/dist/shared/stacks-esm-8p8xy3dz.js.map +12 -0
- package/dist/shared/{stacks-esm-h82jj95c.js → stacks-esm-9ptct1c4.js} +3 -3
- package/dist/shared/{stacks-esm-qasbsv66.js → stacks-esm-a7apmjbk.js} +2 -2
- package/dist/shared/{stacks-esm-1nfzrepv.js → stacks-esm-brtqryjb.js} +4 -4
- package/dist/shared/{stacks-esm-pc20c78w.js → stacks-esm-e63kx7dq.js} +3 -3
- package/dist/shared/{stacks-esm-tsb8h0yr.js → stacks-esm-eep45e8s.js} +2 -2
- package/dist/shared/{stacks-esm-wnxhfx93.js → stacks-esm-fmq4j4ez.js} +2 -2
- package/dist/shared/{stacks-esm-7tc40d6t.js → stacks-esm-h60faj2n.js} +2 -2
- package/dist/shared/{stacks-esm-6zfssx7v.js → stacks-esm-hcaycch3.js} +3 -3
- package/dist/shared/{stacks-esm-cs4419br.js → stacks-esm-jwgtksgq.js} +32 -15
- package/dist/shared/stacks-esm-jwgtksgq.js.map +15 -0
- package/dist/shared/{stacks-esm-jm688fhe.js → stacks-esm-m8ph0bvw.js} +19 -11
- package/dist/shared/{stacks-esm-jm688fhe.js.map → stacks-esm-m8ph0bvw.js.map} +4 -4
- package/dist/shared/{stacks-esm-hm7kb2cp.js → stacks-esm-mqhwqhq4.js} +4 -4
- package/dist/shared/{stacks-esm-tfechw5c.js → stacks-esm-nqkwt2z7.js} +2 -2
- package/dist/shared/{stacks-esm-mmvrwreq.js → stacks-esm-wjg9aer9.js} +4 -4
- package/dist/shared/{stacks-esm-scq242d9.js → stacks-esm-zsdw7fq3.js} +3 -3
- package/dist/src/accounts/index.cjs +14 -2
- package/dist/src/accounts/index.cjs.map +3 -3
- package/dist/src/accounts/index.js +2 -2
- package/dist/src/actions/index.cjs +52 -16
- package/dist/src/actions/index.cjs.map +8 -8
- package/dist/src/actions/index.d.cts +2 -0
- package/dist/src/actions/index.d.ts +2 -0
- package/dist/src/actions/index.js +12 -12
- package/dist/src/bitcoin/index.cjs +41 -13
- package/dist/src/bitcoin/index.cjs.map +5 -5
- package/dist/src/bitcoin/index.js +10 -10
- package/dist/src/bns/index.cjs +52 -16
- package/dist/src/bns/index.cjs.map +8 -8
- package/dist/src/bns/index.js +12 -12
- package/dist/src/clarity/index.cjs +41 -13
- package/dist/src/clarity/index.cjs.map +5 -5
- package/dist/src/clarity/index.js +6 -6
- package/dist/src/connect/index.cjs +30 -7
- package/dist/src/connect/index.cjs.map +5 -5
- package/dist/src/connect/index.js +30 -7
- package/dist/src/connect/index.js.map +5 -5
- package/dist/src/connect/walletconnect/index.cjs +3 -1
- package/dist/src/connect/walletconnect/index.cjs.map +3 -3
- package/dist/src/connect/walletconnect/index.js +3 -1
- package/dist/src/connect/walletconnect/index.js.map +3 -3
- package/dist/src/filters/index.cjs +14 -2
- package/dist/src/filters/index.cjs.map +3 -3
- package/dist/src/filters/index.js +3 -3
- package/dist/src/index.cjs +75 -20
- package/dist/src/index.cjs.map +9 -9
- package/dist/src/index.d.cts +8 -0
- package/dist/src/index.d.ts +8 -0
- package/dist/src/index.js +40 -14
- package/dist/src/index.js.map +4 -4
- package/dist/src/postconditions/index.cjs +41 -13
- package/dist/src/postconditions/index.cjs.map +5 -5
- package/dist/src/postconditions/index.js +5 -5
- package/dist/src/pox/index.cjs +52 -16
- package/dist/src/pox/index.cjs.map +8 -8
- package/dist/src/pox/index.js +12 -12
- package/dist/src/pox5/index.cjs +52 -16
- package/dist/src/pox5/index.cjs.map +8 -8
- package/dist/src/pox5/index.js +14 -14
- package/dist/src/sbtc/index.cjs +52 -16
- package/dist/src/sbtc/index.cjs.map +8 -8
- package/dist/src/sbtc/index.js +12 -12
- package/dist/src/simnet/index.cjs +44 -16
- package/dist/src/simnet/index.cjs.map +5 -5
- package/dist/src/simnet/index.js +44 -16
- package/dist/src/simnet/index.js.map +5 -5
- package/dist/src/stackingdao/index.cjs +52 -16
- package/dist/src/stackingdao/index.cjs.map +8 -8
- package/dist/src/stackingdao/index.js +10 -10
- package/dist/src/transactions/index.cjs +44 -16
- package/dist/src/transactions/index.cjs.map +5 -5
- package/dist/src/transactions/index.js +5 -5
- package/dist/src/utils/index.cjs +20 -3
- package/dist/src/utils/index.cjs.map +4 -4
- package/dist/src/utils/index.d.cts +8 -1
- package/dist/src/utils/index.d.ts +8 -1
- package/dist/src/utils/index.js +9 -4
- package/dist/src/utils/index.js.map +3 -3
- package/package.json +2 -2
- package/dist/shared/stacks-esm-5eq7meyt.js.map +0 -12
- package/dist/shared/stacks-esm-cs4419br.js.map +0 -15
- /package/dist/shared/{stacks-esm-17adzt3x.js.map → stacks-esm-0t9vwtwh.js.map} +0 -0
- /package/dist/shared/{stacks-esm-2cac1jn9.js.map → stacks-esm-2z40q8gs.js.map} +0 -0
- /package/dist/shared/{stacks-esm-ev07d2aw.js.map → stacks-esm-4rjjsz3p.js.map} +0 -0
- /package/dist/shared/{stacks-esm-h82jj95c.js.map → stacks-esm-9ptct1c4.js.map} +0 -0
- /package/dist/shared/{stacks-esm-qasbsv66.js.map → stacks-esm-a7apmjbk.js.map} +0 -0
- /package/dist/shared/{stacks-esm-1nfzrepv.js.map → stacks-esm-brtqryjb.js.map} +0 -0
- /package/dist/shared/{stacks-esm-pc20c78w.js.map → stacks-esm-e63kx7dq.js.map} +0 -0
- /package/dist/shared/{stacks-esm-tsb8h0yr.js.map → stacks-esm-eep45e8s.js.map} +0 -0
- /package/dist/shared/{stacks-esm-wnxhfx93.js.map → stacks-esm-fmq4j4ez.js.map} +0 -0
- /package/dist/shared/{stacks-esm-7tc40d6t.js.map → stacks-esm-h60faj2n.js.map} +0 -0
- /package/dist/shared/{stacks-esm-6zfssx7v.js.map → stacks-esm-hcaycch3.js.map} +0 -0
- /package/dist/shared/{stacks-esm-hm7kb2cp.js.map → stacks-esm-mqhwqhq4.js.map} +0 -0
- /package/dist/shared/{stacks-esm-tfechw5c.js.map → stacks-esm-nqkwt2z7.js.map} +0 -0
- /package/dist/shared/{stacks-esm-mmvrwreq.js.map → stacks-esm-wjg9aer9.js.map} +0 -0
- /package/dist/shared/{stacks-esm-scq242d9.js.map → stacks-esm-zsdw7fq3.js.map} +0 -0
package/dist/src/index.cjs.map
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
"/**\n * Derive a stable machine-readable code from an error's `name` field:\n * `HttpRequestError` becomes `HTTP_REQUEST_ERROR`. `name` is a string\n * literal each class sets, so the code survives a bundler that mangles\n * class names. Branch on `code` instead of parsing `message`, which is\n * free to change.\n */\nfunction codeFromName(name: string): string {\n\treturn name\n\t\t.replace(/([a-z0-9])([A-Z])/g, \"$1_$2\")\n\t\t.replace(/([A-Z]+)([A-Z][a-z])/g, \"$1_$2\")\n\t\t.toUpperCase();\n}\n\nexport class BaseError extends Error {\n\toverride name = \"StacksError\";\n\t#code?: string;\n\tshortMessage: string;\n\tdetails?: string;\n\n\tconstructor(\n\t\tshortMessage: string,\n\t\toptions?: { cause?: Error; details?: string; code?: string },\n\t) {\n\t\tconst message = [\n\t\t\tshortMessage,\n\t\t\toptions?.details ? `\\n${options.details}` : \"\",\n\t\t].join(\"\");\n\n\t\tsuper(message, { cause: options?.cause });\n\t\tif (options?.code !== undefined) this.#code = options.code;\n\t\tthis.shortMessage = shortMessage;\n\t\tthis.details = options?.details;\n\t}\n\n\t/**\n\t * Stable identifier for programmatic handling; survives message\n\t * rewording and minification. An explicit `code` option wins, else it\n\t * is derived from `name` (`TimeoutError` gives `TIMEOUT_ERROR`).\n\t */\n\tget code(): string {\n\t\treturn this.#code ?? codeFromName(this.name);\n\t}\n\n\tset code(value: string) {\n\t\tthis.#code = value;\n\t}\n\n\ttoJSON(): {\n\t\tname: string;\n\t\tcode: string;\n\t\tmessage: string;\n\t\tshortMessage: string;\n\t\tdetails: string | undefined;\n\t\tcause: string | undefined;\n\t} {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tcode: this.code,\n\t\t\tmessage: this.message,\n\t\t\tshortMessage: this.shortMessage,\n\t\t\tdetails: this.details,\n\t\t\tcause: this.cause instanceof Error ? this.cause.message : undefined,\n\t\t};\n\t}\n}\n",
|
|
7
7
|
"import { BaseError } from \"./base.ts\";\n\n/** Thrown when a node/API response is missing an expected field. */\nexport class MalformedResponseError extends BaseError {\n\toverride name = \"MalformedResponseError\";\n}\n\n/** Thrown when `/v2/contracts/call-read` answers `okay: false`. */\nexport class ReadContractError extends BaseError {\n\toverride name = \"ReadContractError\";\n}\n",
|
|
8
8
|
"import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { bytesToHex, hexToBytes } from \"./encoding.ts\";\n\nconst C32 = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\nconst HEX = \"0123456789abcdef\";\n\nfunction c32normalize(input: string): string {\n\treturn input.toUpperCase().replace(/O/g, \"0\").replace(/L|I/g, \"1\");\n}\n\nfunction c32encode(inputHex: string): string {\n\tlet hex = inputHex;\n\tif (hex.length % 2 !== 0) hex = `0${hex}`;\n\thex = hex.toLowerCase();\n\n\tconst res: string[] = [];\n\tlet carry = 0;\n\tfor (let i = hex.length - 1; i >= 0; i--) {\n\t\tif (carry < 4) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tconst currentCode = HEX.indexOf(hex[i]!) >> carry;\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tconst nextCode = i !== 0 ? HEX.indexOf(hex[i - 1]!) : 0;\n\t\t\tconst nextBits = 1 + carry;\n\t\t\tconst nextLowBits = (nextCode % (1 << nextBits)) << (5 - nextBits);\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tres.unshift(C32[currentCode + nextLowBits]!);\n\t\t\tcarry = nextBits;\n\t\t} else {\n\t\t\tcarry = 0;\n\t\t}\n\t}\n\n\t// Strip leading c32 zeros\n\tlet leadingZeros = 0;\n\twhile (leadingZeros < res.length && res[leadingZeros] === \"0\") leadingZeros++;\n\tconst stripped = res.slice(leadingZeros);\n\n\t// Preserve leading zero bytes from hex\n\tconst bytes = hexToBytes(hex);\n\tlet zeroBytesCount = 0;\n\twhile (zeroBytesCount < bytes.length && bytes[zeroBytesCount] === 0)\n\t\tzeroBytesCount++;\n\tconst prefix = Array(zeroBytesCount).fill(C32[0]) as string[];\n\n\treturn [...prefix, ...stripped].join(\"\");\n}\n\nfunction c32decode(c32input: string): string {\n\tconst input = c32normalize(c32input);\n\tif (!input.match(`^[${C32}]*$`)) throw new Error(\"Not a c32-encoded string\");\n\n\tconst zeroPrefix = input.match(`^${C32[0]}*`);\n\tconst numLeadingZeroBytes = zeroPrefix ? zeroPrefix[0]?.length : 0;\n\n\tconst res: string[] = [];\n\tlet carry = 0;\n\tlet carryBits = 0;\n\tfor (let i = input.length - 1; i >= 0; i--) {\n\t\tif (carryBits === 4) {\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tres.unshift(HEX[carry]!);\n\t\t\tcarryBits = 0;\n\t\t\tcarry = 0;\n\t\t}\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\tconst currentValue = (C32.indexOf(input[i]!) << carryBits) + carry;\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\tres.unshift(HEX[currentValue % 16]!);\n\t\tcarryBits += 1;\n\t\tcarry = currentValue >> 4;\n\t\tif (carry > 1 << carryBits) throw new Error(\"Panic error in c32 decoding\");\n\t}\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tres.unshift(HEX[carry]!);\n\n\tif (res.length % 2 === 1) res.unshift(\"0\");\n\n\t// Strip leading hex zeros\n\tlet hexLeadingZeros = 0;\n\twhile (hexLeadingZeros < res.length && res[hexLeadingZeros] === \"0\")\n\t\thexLeadingZeros++;\n\tlet hexStr = res.slice(hexLeadingZeros - (hexLeadingZeros % 2)).join(\"\");\n\n\tfor (let i = 0; i < numLeadingZeroBytes; i++) hexStr = `00${hexStr}`;\n\n\treturn hexStr;\n}\n\nfunction c32checksum(dataHex: string): string {\n\treturn bytesToHex(sha256(sha256(hexToBytes(dataHex))).slice(0, 4));\n}\n\nfunction c32checkEncode(version: number, data: string): string {\n\tif (version < 0 || version >= 32)\n\t\tthrow new Error(\"Invalid version (must be between 0 and 31)\");\n\tif (!data.match(/^[0-9a-fA-F]*$/))\n\t\tthrow new Error(\"Invalid data (not a hex string)\");\n\n\tlet d = data.toLowerCase();\n\tif (d.length % 2 !== 0) d = `0${d}`;\n\n\tlet versionHex = version.toString(16);\n\tif (versionHex.length === 1) versionHex = `0${versionHex}`;\n\n\tconst checksumHex = c32checksum(`${versionHex}${d}`);\n\treturn `${C32[version]}${c32encode(`${d}${checksumHex}`)}`;\n}\n\nfunction c32checkDecode(c32data: string): [number, string] {\n\tconst normalized = c32normalize(c32data);\n\tconst dataHex = c32decode(normalized.slice(1));\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tconst version = C32.indexOf(normalized[0]!);\n\tconst checksum = dataHex.slice(-8);\n\n\tlet versionHex = version.toString(16);\n\tif (versionHex.length === 1) versionHex = `0${versionHex}`;\n\n\tif (\n\t\tc32checksum(`${versionHex}${dataHex.substring(0, dataHex.length - 8)}`) !==\n\t\tchecksum\n\t) {\n\t\tthrow new Error(\"Invalid c32check string: checksum mismatch\");\n\t}\n\n\treturn [version, dataHex.substring(0, dataHex.length - 8)];\n}\n\nexport function c32address(version: number, hash160hex: string): string {\n\tif (!hash160hex.match(/^[0-9a-fA-F]{40}$/)) {\n\t\tthrow new Error(\"Invalid argument: not a hash160 hex string\");\n\t}\n\treturn `S${c32checkEncode(version, hash160hex)}`;\n}\n\nexport function c32addressDecode(c32addr: string): [number, string] {\n\tif (c32addr.length <= 5)\n\t\tthrow new Error(\"Invalid c32 address: invalid length\");\n\tif (c32addr[0] !== \"S\")\n\t\tthrow new Error('Invalid c32 address: must start with \"S\"');\n\treturn c32checkDecode(c32addr.slice(1));\n}\n",
|
|
9
|
-
"const hexes = Array.from({ length: 256 }, (_, i) =>\n\ti.toString(16).padStart(2, \"0\"),\n);\n\nexport function bytesToHex(bytes: Uint8Array): string {\n\tlet hex = \"\";\n\tfor (const b of bytes) {\n\t\thex += hexes[b];\n\t}\n\treturn hex;\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n\tlet h = without0x(hex);\n\tif (h.length % 2) h = `0${h}`;\n\n\tconst array = new Uint8Array(h.length / 2);\n\tfor (let i = 0; i < array.length; i++) {\n\t\tconst j = i * 2;\n\t\tconst byte = Number.parseInt(h.slice(j, j + 2), 16);\n\t\tif (Number.isNaN(byte) || byte < 0)\n\t\t\tthrow new Error(\"Invalid byte sequence\");\n\t\tarray[i] = byte;\n\t}\n\treturn array;\n}\n\nexport function with0x(value: string): string {\n\treturn /^0x/i.test(value) ? value : `0x${value}`;\n}\n\nexport function without0x(value: string): string {\n\treturn /^0x/i.test(value) ? value.slice(2) : value;\n}\n\nexport function utf8ToBytes(str: string): Uint8Array {\n\treturn new TextEncoder().encode(str);\n}\n\nexport function bytesToUtf8(bytes: Uint8Array): string {\n\treturn new TextDecoder().decode(bytes);\n}\n\nexport function asciiToBytes(str: string): Uint8Array {\n\tconst bytes = new Uint8Array(str.length);\n\tfor (let i = 0; i < str.length; i++) {\n\t\tbytes[i] = str.charCodeAt(i) & 0xff;\n\t}\n\treturn bytes;\n}\n\nexport function bytesToAscii(bytes: Uint8Array): string {\n\treturn String.fromCharCode(...bytes);\n}\n\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tif (arrays.length === 1) return arrays[0]!;\n\tconst length = arrays.reduce((a, arr) => a + arr.length, 0);\n\tconst result = new Uint8Array(length);\n\tlet pad = 0;\n\tfor (const arr of arrays) {\n\t\tresult.set(arr, pad);\n\t\tpad += arr.length;\n\t}\n\treturn result;\n}\n\nexport type IntegerType = number | string | bigint | Uint8Array;\n\nexport function intToBigInt(value: IntegerType): bigint {\n\tif (typeof value === \"bigint\") return value;\n\tif (typeof value === \"string\")
|
|
9
|
+
"const hexes = Array.from({ length: 256 }, (_, i) =>\n\ti.toString(16).padStart(2, \"0\"),\n);\n\nexport function bytesToHex(bytes: Uint8Array): string {\n\tlet hex = \"\";\n\tfor (const b of bytes) {\n\t\thex += hexes[b];\n\t}\n\treturn hex;\n}\n\nexport function hexToBytes(hex: string): Uint8Array {\n\tlet h = without0x(hex);\n\t// parseInt reads \"1g\" as 1, so the whole string is checked first.\n\tif (!/^[0-9a-fA-F]*$/.test(h)) throw new Error(\"Invalid byte sequence\");\n\tif (h.length % 2) h = `0${h}`;\n\n\tconst array = new Uint8Array(h.length / 2);\n\tfor (let i = 0; i < array.length; i++) {\n\t\tconst j = i * 2;\n\t\tconst byte = Number.parseInt(h.slice(j, j + 2), 16);\n\t\tif (Number.isNaN(byte) || byte < 0)\n\t\t\tthrow new Error(\"Invalid byte sequence\");\n\t\tarray[i] = byte;\n\t}\n\treturn array;\n}\n\nexport function with0x(value: string): string {\n\treturn /^0x/i.test(value) ? value : `0x${value}`;\n}\n\nexport function without0x(value: string): string {\n\treturn /^0x/i.test(value) ? value.slice(2) : value;\n}\n\nexport function utf8ToBytes(str: string): Uint8Array {\n\treturn new TextEncoder().encode(str);\n}\n\nexport function bytesToUtf8(bytes: Uint8Array): string {\n\treturn new TextDecoder().decode(bytes);\n}\n\nexport function asciiToBytes(str: string): Uint8Array {\n\tconst bytes = new Uint8Array(str.length);\n\tfor (let i = 0; i < str.length; i++) {\n\t\tbytes[i] = str.charCodeAt(i) & 0xff;\n\t}\n\treturn bytes;\n}\n\n/** Whether every character is 7-bit ASCII. */\nexport function isAscii(str: string): boolean {\n\tfor (let i = 0; i < str.length; i++) {\n\t\tif (str.charCodeAt(i) > 0x7f) return false;\n\t}\n\treturn true;\n}\n\nexport function bytesToAscii(bytes: Uint8Array): string {\n\treturn String.fromCharCode(...bytes);\n}\n\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\tif (arrays.length === 1) return arrays[0]!;\n\tconst length = arrays.reduce((a, arr) => a + arr.length, 0);\n\tconst result = new Uint8Array(length);\n\tlet pad = 0;\n\tfor (const arr of arrays) {\n\t\tresult.set(arr, pad);\n\t\tpad += arr.length;\n\t}\n\treturn result;\n}\n\nexport type IntegerType = number | string | bigint | Uint8Array;\n\nexport function intToBigInt(value: IntegerType): bigint {\n\tif (typeof value === \"bigint\") return value;\n\tif (typeof value === \"string\") {\n\t\t// BigInt(\"\") is 0n; an empty or blank string is not a number.\n\t\tif (value.trim() === \"\")\n\t\t\tthrow new SyntaxError(\"Cannot convert an empty string to an integer\");\n\t\treturn BigInt(value);\n\t}\n\tif (typeof value === \"number\") {\n\t\tif (!Number.isInteger(value))\n\t\t\tthrow new RangeError(\"Values of type 'number' must be an integer.\");\n\t\tif (value > Number.MAX_SAFE_INTEGER)\n\t\t\tthrow new RangeError(\n\t\t\t\t`Values of type 'number' must be <= ${Number.MAX_SAFE_INTEGER}. Use BigInt instead.`,\n\t\t\t);\n\t\treturn BigInt(value);\n\t}\n\tif (value instanceof Uint8Array) return BigInt(`0x${bytesToHex(value)}`);\n\tthrow new TypeError(\"Must be a number, bigint, string, or Uint8Array.\");\n}\n\nexport function intToBytes(value: IntegerType, byteLength: number): Uint8Array {\n\treturn bigIntToBytes(intToBigInt(value), byteLength);\n}\n\nexport function bigIntToBytes(value: bigint, length = 16): Uint8Array {\n\tconst hex = value.toString(16).padStart(length * 2, \"0\");\n\treturn hexToBytes(hex);\n}\n\nexport function intToHex(integer: IntegerType, byteLength = 8): string {\n\tconst value = typeof integer === \"bigint\" ? integer : intToBigInt(integer);\n\treturn value.toString(16).padStart(byteLength * 2, \"0\");\n}\n\nexport function toTwos(value: bigint, width: bigint): bigint {\n\tconst limit = BigInt(1) << (width - BigInt(1));\n\tif (value < -limit || value > limit - BigInt(1)) {\n\t\tthrow new Error(`Unable to represent integer in width: ${width}`);\n\t}\n\tif (value >= BigInt(0)) return value;\n\treturn value + (BigInt(1) << width);\n}\n\nexport function fromTwos(value: bigint, width: bigint): bigint {\n\tif (value & (BigInt(1) << (width - BigInt(1)))) {\n\t\treturn value - (BigInt(1) << width);\n\t}\n\treturn value;\n}\n\nexport function bytesToTwosBigInt(bytes: Uint8Array): bigint {\n\tif (bytes.length === 0) return 0n;\n\tconst hex = bytesToHex(bytes);\n\tif (hex.length === 0) return 0n;\n\treturn fromTwos(BigInt(`0x${hex}`), BigInt(bytes.byteLength * 8));\n}\n\nexport function writeUInt32BE(value: number): Uint8Array {\n\tconst buf = new Uint8Array(4);\n\tbuf[0] = (value >>> 24) & 0xff;\n\tbuf[1] = (value >>> 16) & 0xff;\n\tbuf[2] = (value >>> 8) & 0xff;\n\tbuf[3] = value & 0xff;\n\treturn buf;\n}\n\nexport function readUInt32BE(bytes: Uint8Array, offset = 0): number {\n\treturn (\n\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t((bytes[offset]! << 24) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t(bytes[offset + 1]! << 16) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\t(bytes[offset + 2]! << 8) |\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\t\t\tbytes[offset + 3]!) >>>\n\t\t0\n\t);\n}\n\nexport function writeUInt16BE(value: number): Uint8Array {\n\tconst buf = new Uint8Array(2);\n\tbuf[0] = (value >>> 8) & 0xff;\n\tbuf[1] = value & 0xff;\n\treturn buf;\n}\n\nexport function readUInt16BE(bytes: Uint8Array, offset = 0): number {\n\t// biome-ignore lint/style/noNonNullAssertion: bit-encoding routine where index is provably bounded by surrounding loop/length checks\n\treturn ((bytes[offset]! << 8) | bytes[offset + 1]!) >>> 0;\n}\n\nexport function writeUInt8(value: number): Uint8Array {\n\treturn new Uint8Array([value & 0xff]);\n}\n",
|
|
10
10
|
"export type ClarityType =\n\t| \"int\"\n\t| \"uint\"\n\t| \"buffer\"\n\t| \"true\"\n\t| \"false\"\n\t| \"address\"\n\t| \"contract\"\n\t| \"ok\"\n\t| \"err\"\n\t| \"none\"\n\t| \"some\"\n\t| \"list\"\n\t| \"tuple\"\n\t| \"ascii\"\n\t| \"utf8\";\n\n/** Wire type IDs matching the Stacks binary format (SIP-005) */\nexport const ClarityWireType = {\n\tint: 0x00,\n\tuint: 0x01,\n\tbuffer: 0x02,\n\ttrue: 0x03,\n\tfalse: 0x04,\n\taddress: 0x05,\n\tcontract: 0x06,\n\tok: 0x07,\n\terr: 0x08,\n\tnone: 0x09,\n\tsome: 0x0a,\n\tlist: 0x0b,\n\ttuple: 0x0c,\n\tascii: 0x0d,\n\tutf8: 0x0e,\n} as const satisfies Record<ClarityType, number>;\n\n/** Reverse lookup: wire byte → ClarityType string */\nconst wireTypeToClarity = Object.fromEntries(\n\tObject.entries(ClarityWireType).map(([k, v]) => [v, k]),\n) as Record<number, ClarityType>;\n\nexport function clarityTypeFromByte(byte: number): ClarityType {\n\tconst type = wireTypeToClarity[byte];\n\tif (!type) throw new Error(`Unknown clarity wire type: ${byte}`);\n\treturn type;\n}\n\n// CV types\n\nexport type IntCV = { readonly type: \"int\"; readonly value: bigint };\nexport type UIntCV = { readonly type: \"uint\"; readonly value: bigint };\nexport type BooleanCV = TrueCV | FalseCV;\nexport type TrueCV = { readonly type: \"true\" };\nexport type FalseCV = { readonly type: \"false\" };\nexport type BufferCV = { readonly type: \"buffer\"; readonly value: string }; // hex\nexport type NoneCV = { readonly type: \"none\" };\nexport type SomeCV = {\n\treadonly type: \"some\";\n\treadonly value: ClarityValue;\n};\nexport type OptionalCV = NoneCV | SomeCV;\nexport type ResponseOkCV = {\n\treadonly type: \"ok\";\n\treadonly value: ClarityValue;\n};\nexport type ResponseErrorCV = {\n\treadonly type: \"err\";\n\treadonly value: ClarityValue;\n};\nexport type ResponseCV = ResponseOkCV | ResponseErrorCV;\nexport type StandardPrincipalCV = {\n\treadonly type: \"address\";\n\treadonly value: string;\n};\nexport type ContractPrincipalCV = {\n\treadonly type: \"contract\";\n\treadonly value: string; // \"address.name\"\n};\nexport type PrincipalCV = StandardPrincipalCV | ContractPrincipalCV;\nexport type ListCV = {\n\ttype: \"list\";\n\tvalue: ClarityValue[];\n};\nexport type TupleData = {\n\t[key: string]: ClarityValue;\n};\nexport type TupleCV = {\n\ttype: \"tuple\";\n\tvalue: TupleData;\n};\nexport type StringAsciiCV = {\n\treadonly type: \"ascii\";\n\treadonly value: string;\n};\nexport type StringUtf8CV = {\n\treadonly type: \"utf8\";\n\treadonly value: string;\n};\n\nexport type ClarityValue =\n\t| IntCV\n\t| UIntCV\n\t| BooleanCV\n\t| BufferCV\n\t| NoneCV\n\t| SomeCV\n\t| ResponseOkCV\n\t| ResponseErrorCV\n\t| StandardPrincipalCV\n\t| ContractPrincipalCV\n\t| ListCV\n\t| TupleCV\n\t| StringAsciiCV\n\t| StringUtf8CV;\n",
|
|
11
|
-
"import { c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\tasciiToBytes,\n\tbigIntToBytes,\n\tbytesToHex,\n\tconcatBytes,\n\thexToBytes,\n\tintToHex,\n\ttoTwos,\n\tutf8ToBytes,\n\twriteUInt32BE,\n} from \"../utils/encoding.ts\";\nimport {\n\ttype ClarityType,\n\ttype ClarityValue,\n\tClarityWireType,\n} from \"./types.ts\";\n\nconst CLARITY_INT_SIZE = 128n;\nconst CLARITY_INT_BYTE_SIZE = 16;\n\nfunction typeIdByte(type: ClarityType): number {\n\treturn ClarityWireType[type];\n}\n\nfunction withTypeId(type: ClarityType, bytes: Uint8Array): Uint8Array {\n\treturn concatBytes(new Uint8Array([typeIdByte(type)]), bytes);\n}\n\nfunction serializeAddress(c32Address: string): Uint8Array {\n\tconst [version, hash160] = c32addressDecode(c32Address);\n\treturn concatBytes(new Uint8Array([version]), hexToBytes(hash160));\n}\n\nfunction serializeLPString(str: string, prefixBytes = 1): Uint8Array {\n\tconst content = utf8ToBytes(str);\n\tconst lengthPrefix = hexToBytes(intToHex(content.byteLength, prefixBytes));\n\treturn concatBytes(lengthPrefix, content);\n}\n\nexport function serializeCVBytes(value: ClarityValue): Uint8Array {\n\tswitch (value.type) {\n\t\tcase \"true\":\n\t\tcase \"false\":\n\t\t\treturn new Uint8Array([typeIdByte(value.type)]);\n\n\t\tcase \"int\": {\n\t\t\tconst bytes = bigIntToBytes(\n\t\t\t\ttoTwos(
|
|
11
|
+
"import { c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\tasciiToBytes,\n\tbigIntToBytes,\n\tbytesToHex,\n\tconcatBytes,\n\thexToBytes,\n\tintToHex,\n\tisAscii,\n\ttoTwos,\n\tutf8ToBytes,\n\twriteUInt32BE,\n} from \"../utils/encoding.ts\";\nimport {\n\ttype ClarityType,\n\ttype ClarityValue,\n\tClarityWireType,\n} from \"./types.ts\";\n\nconst CLARITY_INT_SIZE = 128n;\nconst CLARITY_INT_BYTE_SIZE = 16;\nconst MAX_U128 = (1n << 128n) - 1n;\nconst MAX_I128 = (1n << 127n) - 1n;\nconst MIN_I128 = -(1n << 127n);\n/** Largest string a Clarity value can hold (MAX_VALUE_SIZE). */\nexport const MAX_STRING_BYTES = 1_048_576;\n\nfunction typeIdByte(type: ClarityType): number {\n\treturn ClarityWireType[type];\n}\n\nfunction withTypeId(type: ClarityType, bytes: Uint8Array): Uint8Array {\n\treturn concatBytes(new Uint8Array([typeIdByte(type)]), bytes);\n}\n\nfunction serializeAddress(c32Address: string): Uint8Array {\n\tconst [version, hash160] = c32addressDecode(c32Address);\n\treturn concatBytes(new Uint8Array([version]), hexToBytes(hash160));\n}\n\nfunction serializeLPString(str: string, prefixBytes = 1): Uint8Array {\n\tconst content = utf8ToBytes(str);\n\tconst lengthPrefix = hexToBytes(intToHex(content.byteLength, prefixBytes));\n\treturn concatBytes(lengthPrefix, content);\n}\n\nexport function serializeCVBytes(value: ClarityValue): Uint8Array {\n\tswitch (value.type) {\n\t\tcase \"true\":\n\t\tcase \"false\":\n\t\t\treturn new Uint8Array([typeIdByte(value.type)]);\n\n\t\tcase \"int\": {\n\t\t\tconst n = BigInt(value.value);\n\t\t\tif (n > MAX_I128 || n < MIN_I128)\n\t\t\t\tthrow new RangeError(`Int is outside i128: ${n}`);\n\t\t\tconst bytes = bigIntToBytes(\n\t\t\t\ttoTwos(n, CLARITY_INT_SIZE),\n\t\t\t\tCLARITY_INT_BYTE_SIZE,\n\t\t\t);\n\t\t\treturn withTypeId(value.type, bytes);\n\t\t}\n\n\t\tcase \"uint\": {\n\t\t\tconst n = BigInt(value.value);\n\t\t\tif (n < 0n || n > MAX_U128)\n\t\t\t\tthrow new RangeError(`UInt is outside u128: ${n}`);\n\t\t\tconst bytes = bigIntToBytes(n, CLARITY_INT_BYTE_SIZE);\n\t\t\treturn withTypeId(value.type, bytes);\n\t\t}\n\n\t\tcase \"buffer\": {\n\t\t\tconst bufBytes = hexToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(bufBytes.length), bufBytes),\n\t\t\t);\n\t\t}\n\n\t\tcase \"none\":\n\t\t\treturn new Uint8Array([typeIdByte(value.type)]);\n\n\t\tcase \"some\":\n\t\t\treturn withTypeId(value.type, serializeCVBytes(value.value));\n\n\t\tcase \"ok\":\n\t\tcase \"err\":\n\t\t\treturn withTypeId(value.type, serializeCVBytes(value.value));\n\n\t\tcase \"address\":\n\t\t\treturn withTypeId(value.type, serializeAddress(value.value));\n\n\t\tcase \"contract\": {\n\t\t\tconst [addr, name] = value.value.split(\".\");\n\t\t\tif (!addr || !name)\n\t\t\t\tthrow new Error(`Invalid contract principal: ${value.value}`);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(serializeAddress(addr), serializeLPString(name)),\n\t\t\t);\n\t\t}\n\n\t\tcase \"list\": {\n\t\t\tconst parts: Uint8Array[] = [writeUInt32BE(value.value.length)];\n\t\t\tfor (const item of value.value) {\n\t\t\t\tparts.push(serializeCVBytes(item));\n\t\t\t}\n\t\t\treturn withTypeId(value.type, concatBytes(...parts));\n\t\t}\n\n\t\tcase \"tuple\": {\n\t\t\t// Clarity orders tuple fields as a BTreeMap over the raw name bytes.\n\t\t\t// Code-unit comparison equals byte order for the ASCII name grammar;\n\t\t\t// localeCompare does not, and would change the SIP-018 hash.\n\t\t\tconst keys = Object.keys(value.value).sort((a, b) =>\n\t\t\t\ta < b ? -1 : a > b ? 1 : 0,\n\t\t\t);\n\t\t\tconst parts: Uint8Array[] = [writeUInt32BE(keys.length)];\n\t\t\tfor (const key of keys) {\n\t\t\t\tparts.push(serializeLPString(key));\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: value is non-null after preceding check or by construction; TS narrowing limitation\n\t\t\t\tparts.push(serializeCVBytes(value.value[key]!));\n\t\t\t}\n\t\t\treturn withTypeId(value.type, concatBytes(...parts));\n\t\t}\n\n\t\tcase \"ascii\": {\n\t\t\tif (!isAscii(value.value))\n\t\t\t\tthrow new Error(\"string-ascii holds only ASCII characters\");\n\t\t\tconst strBytes = asciiToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(strBytes.length), strBytes),\n\t\t\t);\n\t\t}\n\n\t\tcase \"utf8\": {\n\t\t\tconst strBytes = utf8ToBytes(value.value);\n\t\t\treturn withTypeId(\n\t\t\t\tvalue.type,\n\t\t\t\tconcatBytes(writeUInt32BE(strBytes.length), strBytes),\n\t\t\t);\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error(\"Cannot serialize unknown clarity type\");\n\t}\n}\n\nexport function serializeCV(value: ClarityValue): string {\n\treturn bytesToHex(serializeCVBytes(value));\n}\n",
|
|
12
12
|
"import type { ClarityValue } from \"../clarity/types.ts\";\n\n// Auth types\nexport const AuthType = {\n\tStandard: 0x04,\n\tSponsored: 0x05,\n} as const;\nexport type AuthType = (typeof AuthType)[keyof typeof AuthType];\n\n// Payload types\nexport const PayloadType = {\n\tTokenTransfer: 0x00,\n\tSmartContract: 0x01,\n\tContractCall: 0x02,\n\tPoisonMicroblock: 0x03,\n\tCoinbase: 0x04,\n\tCoinbaseToAltRecipient: 0x05,\n\tVersionedSmartContract: 0x06,\n\tTenureChange: 0x07,\n\tNakamotoCoinbase: 0x08,\n} as const;\nexport type PayloadType = (typeof PayloadType)[keyof typeof PayloadType];\n\n// Clarity version\nexport const ClarityVersion = {\n\tClarity1: 1,\n\tClarity2: 2,\n\tClarity3: 3,\n\tClarity4: 4,\n\tClarity5: 5,\n\tClarity6: 6, // SIP-044, Epoch 4.0\n} as const;\nexport type ClarityVersion =\n\t(typeof ClarityVersion)[keyof typeof ClarityVersion];\n\n// Anchor mode (deprecated post-Nakamoto, but needed for wire format)\nexport const AnchorMode = {\n\tOnChainOnly: 0x01,\n\tOffChainOnly: 0x02,\n\tAny: 0x03,\n} as const;\nexport type AnchorMode = (typeof AnchorMode)[keyof typeof AnchorMode];\n\n// Post condition mode\nexport const PostConditionModeWire = {\n\tAllow: 0x01,\n\tDeny: 0x02,\n\tOriginator: 0x03, // SIP-040, Epoch 3.4\n} as const;\nexport type PostConditionModeWire =\n\t(typeof PostConditionModeWire)[keyof typeof PostConditionModeWire];\n\n// Address hash modes\nexport const AddressHashMode = {\n\tP2PKH: 0x00,\n\tP2SH: 0x01,\n\tP2WPKH: 0x02,\n\tP2WSH: 0x03,\n\tP2SH_NonSequential: 0x05, // SIP-027\n\tP2WSH_P2SH_NonSequential: 0x07, // SIP-027\n} as const;\nexport type AddressHashMode =\n\t(typeof AddressHashMode)[keyof typeof AddressHashMode];\n\n// Pub key encoding\nexport const PubKeyEncoding = {\n\tCompressed: 0x00,\n\tUncompressed: 0x01,\n} as const;\nexport type PubKeyEncoding =\n\t(typeof PubKeyEncoding)[keyof typeof PubKeyEncoding];\n\n// Fungible condition codes (wire format)\nexport const FungibleConditionCode = {\n\tEqual: 0x01,\n\tGreater: 0x02,\n\tGreaterEqual: 0x03,\n\tLess: 0x04,\n\tLessEqual: 0x05,\n} as const;\n\n// Non-fungible condition codes (wire format)\nexport const NonFungibleConditionCode = {\n\tSends: 0x10,\n\tDoesNotSend: 0x11,\n\tMaybeSent: 0x12, // SIP-040, Epoch 3.4\n} as const;\n\n// PoX condition codes (wire format, SIP-045)\nexport const PoxConditionCode = {\n\tWillNotPerform: 0x30,\n\tMayPerform: 0x31,\n\tWillPerform: 0x32,\n} as const;\nexport type PoxConditionCode =\n\t(typeof PoxConditionCode)[keyof typeof PoxConditionCode];\n\n// Post condition principal types\nexport const PostConditionPrincipalId = {\n\tOrigin: 0x01,\n\tStandard: 0x02,\n\tContract: 0x03,\n} as const;\n\n// Post condition asset types\nexport const AssetType = {\n\tSTX: 0x00,\n\tFungible: 0x01,\n\tNonFungible: 0x02,\n\tStaking: 0x03, // SIP-045\n\tPox: 0x04, // SIP-045\n} as const;\n\n// Auth field types\nexport const AuthFieldType = {\n\tPublicKeyCompressed: 0x00,\n\tPublicKeyUncompressed: 0x01,\n\tSignatureCompressed: 0x02,\n\tSignatureUncompressed: 0x03,\n} as const;\n\nexport const RECOVERABLE_ECDSA_SIG_LENGTH_BYTES = 65;\nexport const MEMO_MAX_LENGTH_BYTES = 34;\nexport const MAX_STRING_LENGTH_BYTES = 128;\nexport const COINBASE_BYTES_LENGTH = 32;\nexport const VRF_PROOF_BYTES_LENGTH = 80;\nexport const MICROBLOCK_HEADER_BYTES_LENGTH = 132; // 1 + 2 + 32 + 32 + 65\n\n// Tenure change cause\nexport const TenureChangeCause = {\n\tBlockFound: 0x00,\n\tExtended: 0x01,\n\tExtendedRuntime: 0x02,\n\tExtendedReadCount: 0x03,\n\tExtendedReadLength: 0x04,\n\tExtendedWriteCount: 0x05,\n\tExtendedWriteLength: 0x06,\n} as const;\nexport type TenureChangeCause =\n\t(typeof TenureChangeCause)[keyof typeof TenureChangeCause];\n\n// Token transfer payload\nexport type TokenTransferPayload = {\n\tpayloadType: typeof PayloadType.TokenTransfer;\n\trecipient: ClarityValue; // PrincipalCV\n\tamount: bigint;\n\tmemo: string;\n};\n\n// Contract call payload\nexport type ContractCallPayload = {\n\tpayloadType: typeof PayloadType.ContractCall;\n\tcontractAddress: string;\n\tcontractName: string;\n\tfunctionName: string;\n\tfunctionArgs: ClarityValue[];\n};\n\n// Smart contract deploy payload\nexport type SmartContractPayload = {\n\tpayloadType:\n\t\t| typeof PayloadType.SmartContract\n\t\t| typeof PayloadType.VersionedSmartContract;\n\tclarityVersion?: ClarityVersion;\n\tcontractName: string;\n\tcodeBody: string;\n};\n\n// Coinbase payload (appears in every pre-Nakamoto block)\nexport type CoinbasePayload = {\n\tpayloadType: typeof PayloadType.Coinbase;\n\tcoinbaseBuffer: string; // 32 bytes hex\n};\n\n// Coinbase to alt recipient payload\nexport type CoinbaseToAltRecipientPayload = {\n\tpayloadType: typeof PayloadType.CoinbaseToAltRecipient;\n\tcoinbaseBuffer: string; // 32 bytes hex\n\trecipient: ClarityValue; // PrincipalCV\n};\n\n// Poison microblock payload\nexport type PoisonMicroblockPayload = {\n\tpayloadType: typeof PayloadType.PoisonMicroblock;\n\theader1: string; // 132 bytes hex (raw microblock header)\n\theader2: string; // 132 bytes hex (raw microblock header)\n};\n\n// Tenure change payload (Nakamoto)\nexport type TenureChangePayload = {\n\tpayloadType: typeof PayloadType.TenureChange;\n\ttenureConsensusHash: string; // 20 bytes hex\n\tprevTenureConsensusHash: string; // 20 bytes hex\n\tburnViewConsensusHash: string; // 20 bytes hex\n\tpreviousTenureEnd: string; // 32 bytes hex\n\tpreviousTenureBlocks: number; // u32\n\tcause: TenureChangeCause;\n\tpubkeyHash: string; // 20 bytes hex\n};\n\n// Nakamoto coinbase payload\nexport type NakamotoCoinbasePayload = {\n\tpayloadType: typeof PayloadType.NakamotoCoinbase;\n\tcoinbaseBuffer: string; // 32 bytes hex\n\trecipient: ClarityValue | null; // Optional PrincipalCV\n\tvrfProof: string; // 80 bytes hex\n};\n\nexport type TransactionPayload =\n\t| TokenTransferPayload\n\t| ContractCallPayload\n\t| SmartContractPayload\n\t| CoinbasePayload\n\t| CoinbaseToAltRecipientPayload\n\t| PoisonMicroblockPayload\n\t| TenureChangePayload\n\t| NakamotoCoinbasePayload;\n\n// Spending condition\nexport type SingleSigSpendingCondition = {\n\thashMode: typeof AddressHashMode.P2PKH | typeof AddressHashMode.P2WPKH;\n\tsigner: string; // hash160 hex\n\tnonce: bigint;\n\tfee: bigint;\n\tkeyEncoding: PubKeyEncoding;\n\tsignature: string; // 65-byte recoverable sig hex\n};\n\nexport type TransactionAuthField = {\n\tpubKeyEncoding: PubKeyEncoding;\n\ttype: \"publicKey\" | \"signature\";\n\tdata: string; // hex\n};\n\nexport type MultiSigHashMode =\n\t| typeof AddressHashMode.P2SH\n\t| typeof AddressHashMode.P2WSH\n\t| typeof AddressHashMode.P2SH_NonSequential\n\t| typeof AddressHashMode.P2WSH_P2SH_NonSequential;\n\nexport type MultiSigSpendingCondition = {\n\thashMode: MultiSigHashMode;\n\tsigner: string;\n\tnonce: bigint;\n\tfee: bigint;\n\tfields: TransactionAuthField[];\n\tsignaturesRequired: number;\n};\n\nexport type SpendingCondition =\n\t| SingleSigSpendingCondition\n\t| MultiSigSpendingCondition;\n\nexport type StandardAuthorization = {\n\tauthType: typeof AuthType.Standard;\n\tspendingCondition: SpendingCondition;\n};\n\nexport type SponsoredAuthorization = {\n\tauthType: typeof AuthType.Sponsored;\n\tspendingCondition: SpendingCondition;\n\tsponsorSpendingCondition: SpendingCondition;\n};\n\nexport type Authorization = StandardAuthorization | SponsoredAuthorization;\n\n// Full transaction\nexport type StacksTransaction = {\n\tversion: number;\n\tchainId: number;\n\tauth: Authorization;\n\tanchorMode: AnchorMode;\n\tpostConditionMode: PostConditionModeWire;\n\tpostConditions: PostConditionWire[];\n\tpayload: TransactionPayload;\n\t/** Multi-sig signer metadata — not part of the wire format, preserved\n\t * through serialize/deserialize round-trip for auto-detection. */\n\t_multisig?: { publicKeys: string[] };\n};\n\n// Wire post condition types\nexport type PostConditionWire =\n\t| StxPostConditionWire\n\t| FtPostConditionWire\n\t| NftPostConditionWire\n\t| StakingPostConditionWire\n\t| PoxPostConditionWire;\n\nexport type StxPostConditionWire = {\n\ttype: \"stx\";\n\tprincipal: PostConditionPrincipalWire;\n\tconditionCode: number;\n\tamount: bigint;\n};\n\nexport type FtPostConditionWire = {\n\ttype: \"ft\";\n\tprincipal: PostConditionPrincipalWire;\n\tasset: AssetInfoWire;\n\tconditionCode: number;\n\tamount: bigint;\n};\n\nexport type NftPostConditionWire = {\n\ttype: \"nft\";\n\tprincipal: PostConditionPrincipalWire;\n\tasset: AssetInfoWire;\n\tconditionCode: number;\n\tassetId: ClarityValue;\n};\n\n// SIP-045: gates stake/register-for-bond/stake-update; same shape as STX\nexport type StakingPostConditionWire = {\n\ttype: \"staking\";\n\tprincipal: PostConditionPrincipalWire;\n\tconditionCode: number;\n\tamount: bigint;\n};\n\n// SIP-045: gates non-locking PoX state changes (unstake, announce-l1-early-exit, …); no amount\nexport type PoxPostConditionWire = {\n\ttype: \"pox\";\n\tprincipal: PostConditionPrincipalWire;\n\tconditionCode: PoxConditionCode;\n};\n\nexport type PostConditionPrincipalWire =\n\t| { type: \"origin\" }\n\t| { type: \"standard\"; address: string }\n\t| { type: \"contract\"; address: string; contractName: string };\n\nexport type AssetInfoWire = {\n\taddress: string;\n\tcontractName: string;\n\tassetName: string;\n};\n",
|
|
13
13
|
"import { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport { c32addressDecode } from \"../../utils/c32.ts\";\nimport {\n\tasciiToBytes,\n\tbytesToHex,\n\tconcatBytes,\n\thexToBytes,\n\tintToBytes,\n\tintToHex,\n\tutf8ToBytes,\n\twriteUInt8,\n\twriteUInt16BE,\n\twriteUInt32BE,\n} from \"../../utils/encoding.ts\";\nimport {\n\ttype AssetInfoWire,\n\tAssetType,\n\tAuthType,\n\ttype Authorization,\n\ttype CoinbasePayload,\n\ttype CoinbaseToAltRecipientPayload,\n\tMEMO_MAX_LENGTH_BYTES,\n\ttype MultiSigSpendingCondition,\n\ttype NakamotoCoinbasePayload,\n\tPayloadType,\n\ttype PoisonMicroblockPayload,\n\tPostConditionPrincipalId,\n\ttype PostConditionPrincipalWire,\n\ttype PostConditionWire,\n\ttype SingleSigSpendingCondition,\n\ttype SpendingCondition,\n\ttype StacksTransaction,\n\ttype TenureChangePayload as TenureChangePayloadType,\n\ttype TransactionAuthField,\n\ttype TransactionPayload,\n} from \"../types.ts\";\n\n// Address serialization: version (1 byte) + hash160 (20 bytes)\nfunction serializeAddress(c32Address: string): Uint8Array {\n\tconst [version, hash160] = c32addressDecode(c32Address);\n\treturn concatBytes(new Uint8Array([version]), hexToBytes(hash160));\n}\n\n// LP string: length prefix (n bytes) + content bytes\nfunction serializeLPString(str: string, prefixBytes = 1): Uint8Array {\n\tconst content = utf8ToBytes(str);\n\tconst prefix = hexToBytes(intToHex(content.byteLength, prefixBytes));\n\treturn concatBytes(prefix, content);\n}\n\n// LP string for code body (4-byte prefix)\nfunction serializeLPStringLong(str: string): Uint8Array {\n\treturn serializeLPString(str, 4);\n}\n\n// Memo: flat 34-byte field (no length prefix) per SIP-005\nfunction serializeMemo(memo: string): Uint8Array {\n\tconst content = asciiToBytes(memo);\n\tconst padded = new Uint8Array(MEMO_MAX_LENGTH_BYTES);\n\tpadded.set(content.slice(0, MEMO_MAX_LENGTH_BYTES));\n\treturn padded;\n}\n\nfunction serializeSpendingCondition(condition: SpendingCondition): Uint8Array {\n\tconst parts: Uint8Array[] = [\n\t\twriteUInt8(condition.hashMode),\n\t\thexToBytes(condition.signer), // 20 bytes\n\t\tintToBytes(condition.nonce, 8),\n\t\tintToBytes(condition.fee, 8),\n\t];\n\n\tif (\"signature\" in condition) {\n\t\t// Single sig\n\t\tconst sc = condition as SingleSigSpendingCondition;\n\t\tparts.push(writeUInt8(sc.keyEncoding));\n\t\tparts.push(hexToBytes(sc.signature)); // 65 bytes\n\t} else {\n\t\t// Multi sig\n\t\tconst mc = condition as MultiSigSpendingCondition;\n\t\t// Fields as LP list\n\t\tparts.push(writeUInt32BE(mc.fields.length));\n\t\tfor (const field of mc.fields) {\n\t\t\tparts.push(serializeAuthField(field));\n\t\t}\n\t\tparts.push(writeUInt16BE(mc.signaturesRequired));\n\t}\n\n\treturn concatBytes(...parts);\n}\n\nfunction serializeAuthField(field: TransactionAuthField): Uint8Array {\n\tif (field.type === \"publicKey\") {\n\t\tconst typeId = field.pubKeyEncoding === 0x00 ? 0x00 : 0x01;\n\t\treturn concatBytes(writeUInt8(typeId), hexToBytes(field.data));\n\t}\n\tconst typeId = field.pubKeyEncoding === 0x00 ? 0x02 : 0x03;\n\treturn concatBytes(writeUInt8(typeId), hexToBytes(field.data));\n}\n\nfunction serializeAuthorization(auth: Authorization): Uint8Array {\n\tconst parts: Uint8Array[] = [writeUInt8(auth.authType)];\n\tparts.push(serializeSpendingCondition(auth.spendingCondition));\n\tif (auth.authType === AuthType.Sponsored) {\n\t\tparts.push(serializeSpendingCondition(auth.sponsorSpendingCondition));\n\t}\n\treturn concatBytes(...parts);\n}\n\nfunction serializePrincipal(principal: PostConditionPrincipalWire): Uint8Array {\n\tswitch (principal.type) {\n\t\tcase \"origin\":\n\t\t\treturn writeUInt8(PostConditionPrincipalId.Origin);\n\t\tcase \"standard\":\n\t\t\treturn concatBytes(\n\t\t\t\twriteUInt8(PostConditionPrincipalId.Standard),\n\t\t\t\tserializeAddress(principal.address),\n\t\t\t);\n\t\tcase \"contract\":\n\t\t\treturn concatBytes(\n\t\t\t\twriteUInt8(PostConditionPrincipalId.Contract),\n\t\t\t\tserializeAddress(principal.address),\n\t\t\t\tserializeLPString(principal.contractName),\n\t\t\t);\n\t}\n}\n\nfunction serializeAssetInfo(asset: AssetInfoWire): Uint8Array {\n\treturn concatBytes(\n\t\tserializeAddress(asset.address),\n\t\tserializeLPString(asset.contractName),\n\t\tserializeLPString(asset.assetName),\n\t);\n}\n\nexport function serializePostConditionWire(pc: PostConditionWire): Uint8Array {\n\t// Wire order: asset_type first, then principal (per SIP-005)\n\tconst parts: Uint8Array[] = [];\n\n\tswitch (pc.type) {\n\t\tcase \"stx\":\n\t\t\tparts.push(writeUInt8(AssetType.STX));\n\t\t\tparts.push(serializePrincipal(pc.principal));\n\t\t\tparts.push(writeUInt8(pc.conditionCode));\n\t\t\tparts.push(intToBytes(pc.amount, 8));\n\t\t\tbreak;\n\t\tcase \"ft\":\n\t\t\tparts.push(writeUInt8(AssetType.Fungible));\n\t\t\tparts.push(serializePrincipal(pc.principal));\n\t\t\tparts.push(serializeAssetInfo(pc.asset));\n\t\t\tparts.push(writeUInt8(pc.conditionCode));\n\t\t\tparts.push(intToBytes(pc.amount, 8));\n\t\t\tbreak;\n\t\tcase \"nft\":\n\t\t\tparts.push(writeUInt8(AssetType.NonFungible));\n\t\t\tparts.push(serializePrincipal(pc.principal));\n\t\t\tparts.push(serializeAssetInfo(pc.asset));\n\t\t\tparts.push(serializeCVBytes(pc.assetId));\n\t\t\tparts.push(writeUInt8(pc.conditionCode));\n\t\t\tbreak;\n\t\tcase \"staking\":\n\t\t\t// SIP-045: same body as STX (fungible condition code + amount)\n\t\t\tparts.push(writeUInt8(AssetType.Staking));\n\t\t\tparts.push(serializePrincipal(pc.principal));\n\t\t\tparts.push(writeUInt8(pc.conditionCode));\n\t\t\tparts.push(intToBytes(pc.amount, 8));\n\t\t\tbreak;\n\t\tcase \"pox\":\n\t\t\t// SIP-045: PoX condition code only, no amount\n\t\t\tparts.push(writeUInt8(AssetType.Pox));\n\t\t\tparts.push(serializePrincipal(pc.principal));\n\t\t\tparts.push(writeUInt8(pc.conditionCode));\n\t\t\tbreak;\n\t}\n\n\treturn concatBytes(...parts);\n}\n\nfunction serializePostConditions(pcs: PostConditionWire[]): Uint8Array {\n\tconst parts: Uint8Array[] = [writeUInt32BE(pcs.length)];\n\tfor (const pc of pcs) parts.push(serializePostConditionWire(pc));\n\treturn concatBytes(...parts);\n}\n\nexport function serializePayload(payload: TransactionPayload): Uint8Array {\n\tconst parts: Uint8Array[] = [writeUInt8(payload.payloadType)];\n\n\tswitch (payload.payloadType) {\n\t\tcase PayloadType.TokenTransfer:\n\t\t\tparts.push(serializeCVBytes(payload.recipient));\n\t\t\tparts.push(intToBytes(payload.amount, 8));\n\t\t\tparts.push(serializeMemo(payload.memo));\n\t\t\tbreak;\n\n\t\tcase PayloadType.ContractCall:\n\t\t\tparts.push(serializeAddress(payload.contractAddress));\n\t\t\tparts.push(serializeLPString(payload.contractName));\n\t\t\tparts.push(serializeLPString(payload.functionName));\n\t\t\tparts.push(writeUInt32BE(payload.functionArgs.length));\n\t\t\tfor (const arg of payload.functionArgs) {\n\t\t\t\tparts.push(serializeCVBytes(arg));\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase PayloadType.SmartContract:\n\t\t\tparts.push(serializeLPString(payload.contractName));\n\t\t\tparts.push(serializeLPStringLong(payload.codeBody));\n\t\t\tbreak;\n\n\t\tcase PayloadType.VersionedSmartContract:\n\t\t\tparts.push(writeUInt8(payload.clarityVersion ?? 2));\n\t\t\tparts.push(serializeLPString(payload.contractName));\n\t\t\tparts.push(serializeLPStringLong(payload.codeBody));\n\t\t\tbreak;\n\n\t\tcase PayloadType.Coinbase:\n\t\t\tparts.push(hexToBytes((payload as CoinbasePayload).coinbaseBuffer));\n\t\t\tbreak;\n\n\t\tcase PayloadType.CoinbaseToAltRecipient: {\n\t\t\tconst cbAlt = payload as CoinbaseToAltRecipientPayload;\n\t\t\tparts.push(hexToBytes(cbAlt.coinbaseBuffer));\n\t\t\tparts.push(serializeCVBytes(cbAlt.recipient));\n\t\t\tbreak;\n\t\t}\n\n\t\tcase PayloadType.PoisonMicroblock: {\n\t\t\tconst pm = payload as PoisonMicroblockPayload;\n\t\t\tparts.push(hexToBytes(pm.header1));\n\t\t\tparts.push(hexToBytes(pm.header2));\n\t\t\tbreak;\n\t\t}\n\n\t\tcase PayloadType.TenureChange: {\n\t\t\tconst tc = payload as TenureChangePayloadType;\n\t\t\tparts.push(hexToBytes(tc.tenureConsensusHash));\n\t\t\tparts.push(hexToBytes(tc.prevTenureConsensusHash));\n\t\t\tparts.push(hexToBytes(tc.burnViewConsensusHash));\n\t\t\tparts.push(hexToBytes(tc.previousTenureEnd));\n\t\t\tparts.push(writeUInt32BE(tc.previousTenureBlocks));\n\t\t\tparts.push(writeUInt8(tc.cause));\n\t\t\tparts.push(hexToBytes(tc.pubkeyHash));\n\t\t\tbreak;\n\t\t}\n\n\t\tcase PayloadType.NakamotoCoinbase: {\n\t\t\tconst nc = payload as NakamotoCoinbasePayload;\n\t\t\tparts.push(hexToBytes(nc.coinbaseBuffer));\n\t\t\tif (nc.recipient) {\n\t\t\t\tparts.push(serializeCVBytes({ type: \"some\", value: nc.recipient }));\n\t\t\t} else {\n\t\t\t\tparts.push(serializeCVBytes({ type: \"none\" }));\n\t\t\t}\n\t\t\tparts.push(hexToBytes(nc.vrfProof));\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn concatBytes(...parts);\n}\n\n// Memoization cache: transactions are immutable in practice (fields are set\n// once during build/signing), so the serialized bytes for a given transaction\n// object never change. The signing flow serializes the same object several\n// times (txid, sighash, sponsor sighash); caching avoids that redundant work.\n// Any in-place mutation MUST call clearTxCache — see setUnsignedFee.\nconst _txCache = new WeakMap<StacksTransaction, Uint8Array>();\n\n/** Invalidate the memoized serialization of a mutated transaction */\nexport function clearTxCache(tx: StacksTransaction): void {\n\t_txCache.delete(tx);\n}\n\nexport function serializeTransaction(tx: StacksTransaction): Uint8Array {\n\tconst cached = _txCache.get(tx);\n\tif (cached) return cached;\n\tconst bytes = concatBytes(\n\t\twriteUInt8(tx.version),\n\t\twriteUInt32BE(tx.chainId),\n\t\tserializeAuthorization(tx.auth),\n\t\twriteUInt8(tx.anchorMode),\n\t\twriteUInt8(tx.postConditionMode),\n\t\tserializePostConditions(tx.postConditions),\n\t\tserializePayload(tx.payload),\n\t);\n\t_txCache.set(tx, bytes);\n\treturn bytes;\n}\n\nexport function serializeTransactionHex(tx: StacksTransaction): string {\n\treturn bytesToHex(serializeTransaction(tx));\n}\n\n/** Serialize a transaction, returning the wire bytes plus the out-of-band\n * `_multisig` metadata so callers can preserve it across a round-trip\n * (the wire format itself does not carry it). */\nexport function serializeTransactionWithMeta(tx: StacksTransaction): {\n\tbytes: Uint8Array;\n\t_multisig?: { publicKeys: string[] };\n} {\n\treturn { bytes: serializeTransaction(tx), _multisig: tx._multisig };\n}\n",
|
|
14
14
|
"import type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tserializePayload,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type EstimateFeeParams = {\n\ttransaction: StacksTransaction;\n};\n\nexport type FeeEstimation = {\n\tfeeRate: number;\n\tfee: number;\n};\n\nfunction isValidEstimation(\n\te: unknown,\n): e is { fee_rate: number | string; fee: number | string } {\n\treturn (\n\t\ttypeof e === \"object\" &&\n\t\te !== null &&\n\t\t\"fee_rate\" in e &&\n\t\t\"fee\" in e &&\n\t\t(typeof (e as Record<string, unknown>).fee_rate === \"number\" ||\n\t\t\ttypeof (e as Record<string, unknown>).fee_rate === \"string\") &&\n\t\t(typeof (e as Record<string, unknown>).fee === \"number\" ||\n\t\t\ttypeof (e as Record<string, unknown>).fee === \"string\")\n\t);\n}\n\nexport async function estimateFee(\n\tclient: Client,\n\tparams: EstimateFeeParams,\n): Promise<FeeEstimation[]> {\n\tconst payloadHex = bytesToHex(serializePayload(params.transaction.payload));\n\tconst txHex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst data = await client.request(\"/v2/fees/transaction\", {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\testimated_len: Math.ceil(txHex.length / 2),\n\t\t\ttransaction_payload: `0x${payloadHex}`,\n\t\t},\n\t});\n\n\tconst raw = (data as { estimations?: unknown[] })?.estimations ?? [];\n\treturn raw.map((e) => {\n\t\tif (!isValidEstimation(e)) {\n\t\t\tthrow new MalformedResponseError(\n\t\t\t\t\"estimateFee: node response contains invalid fee estimation entry\",\n\t\t\t);\n\t\t}\n\t\treturn {\n\t\t\tfeeRate: Number(e.fee_rate),\n\t\t\tfee: Number(e.fee),\n\t\t};\n\t});\n}\n",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"import type { Client } from \"../../clients/types.ts\";\nimport { HttpRequestError } from \"../../errors/http.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\n\nexport type GetContractSourceParams = {\n\tcontract: string; // \"address.name\"\n};\n\nexport type ContractSourceResponse = {\n\tsource: string;\n\tpublish_height: number;\n\tmarf_proof?: string;\n};\n\n/**\n * Fetch a deployed contract's Clarity source. Node-RPC only (`/v2/contracts/source`)\n * — not available through Hiro's extended API or a tenant proxy, so `client`\n * must be configured against a direct node transport. Returns `null` when the\n * node has no source for the contract.\n */\nexport async function getContractSource(\n\tclient: Client,\n\tparams: GetContractSourceParams,\n): Promise<ContractSourceResponse | null> {\n\tconst [address, name] = parseContractId(params.contract);\n\ttry {\n\t\tconst data = (await client.request(\n\t\t\t`/v2/contracts/source/${address}/${name}`,\n\t\t\t{ method: \"GET\" },\n\t\t)) as Partial<ContractSourceResponse> | undefined;\n\t\treturn data?.source ? (data as ContractSourceResponse) : null;\n\t} catch (error) {\n\t\tif (error instanceof HttpRequestError && error.status === 404) return null;\n\t\tthrow error;\n\t}\n}\n",
|
|
26
26
|
"import { BaseError } from \"./base.ts\";\n\nexport class TransactionError extends BaseError {\n\toverride name = \"TransactionError\";\n}\n\n/**\n * Rejection reasons a stacks-node returns from `POST /v2/transactions`.\n * Wire strings from stacks-core `MemPoolRejection::into_json`\n * (`stackslib/src/chainstate/stacks/db/blocks.rs`).\n */\nexport type TxRejectionReason =\n\t| \"Serialization\"\n\t| \"Deserialization\"\n\t| \"SignatureValidation\"\n\t| \"BadNonce\"\n\t| \"ConflictingNonceInMempool\"\n\t| \"TooMuchChaining\"\n\t| \"FeeTooLow\"\n\t| \"NotEnoughFunds\"\n\t| \"NoSuchContract\"\n\t| \"NoSuchPublicFunction\"\n\t| \"BadFunctionArgument\"\n\t| \"ContractAlreadyExists\"\n\t| \"BadTransactionVersion\"\n\t| \"TransferRecipientCannotEqualSender\"\n\t| \"TransferAmountMustBePositive\"\n\t| \"PoisonMicroblocksDoNotConflict\"\n\t| \"PoisonMicroblockHasUnknownPubKeyHash\"\n\t| \"PoisonMicroblockIsInvalid\"\n\t| \"BadAddressVersionByte\"\n\t| \"NoCoinbaseViaMempool\"\n\t| \"NoTenureChangeViaMempool\"\n\t| \"EstimatorError\"\n\t| \"TemporarilyBlacklisted\"\n\t| \"ServerFailureNoSuchChainTip\"\n\t| \"ServerFailureDatabase\"\n\t| \"ServerFailureOther\";\n\nexport class BroadcastError extends BaseError {\n\toverride name = \"BroadcastError\";\n\ttxid?: string;\n\t// `(string & {})` keeps forward-compat with reasons newer nodes may add\n\t// while preserving literal-union completions.\n\treason?: TxRejectionReason | (string & {});\n\t/** Node-provided detail; shape varies per reason (see stacks-core RPC docs). */\n\treasonData?: unknown;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions?: {\n\t\t\tcause?: Error;\n\t\t\ttxid?: string;\n\t\t\treason?: string;\n\t\t\treasonData?: unknown;\n\t\t},\n\t) {\n\t\tsuper(message, options);\n\t\tthis.txid = options?.txid;\n\t\tthis.reason = options?.reason;\n\t\tthis.reasonData = options?.reasonData;\n\t}\n}\n\n/** The transaction was mined but its execution aborted (runtime error or failed post-condition). */\nexport class TransactionAbortedError extends BaseError {\n\toverride name = \"TransactionAbortedError\";\n\t/** The abort receipt (status, block info, raw source response). */\n\treceipt: unknown;\n\n\tconstructor(message: string, options: { receipt: unknown; cause?: Error }) {\n\t\tsuper(message, options);\n\t\tthis.receipt = options.receipt;\n\t}\n}\n\n/** The transaction left the mempool without being mined (dropped/replaced). */\nexport class TransactionDroppedError extends BaseError {\n\toverride name = \"TransactionDroppedError\";\n\ttxid: string;\n\n\tconstructor(message: string, options: { txid: string; cause?: Error }) {\n\t\tsuper(message, options);\n\t\tthis.txid = options.txid;\n\t}\n}\n\n/** waitForTransactionReceipt gave up before the tx reached the requested state. */\nexport class WaitForTransactionTimeoutError extends BaseError {\n\toverride name = \"WaitForTransactionTimeoutError\";\n\ttxid: string;\n\n\tconstructor(message: string, options: { txid: string; cause?: Error }) {\n\t\tsuper(message, options);\n\t\tthis.txid = options.txid;\n\t}\n}\n\nexport class SerializationError extends BaseError {\n\toverride name = \"SerializationError\";\n}\n\nexport class SigningError extends BaseError {\n\toverride name = \"SigningError\";\n}\n",
|
|
27
27
|
"import { SerializationError } from \"../errors/transaction.ts\";\nimport { bytesToHex } from \"./encoding.ts\";\n\nexport class BytesReader {\n\tprivate data: Uint8Array;\n\tpublic offset = 0;\n\n\tconstructor(data: Uint8Array) {\n\t\tthis.data = data;\n\t}\n\n\t/** Bytes left after the cursor. */\n\tremaining(): number {\n\t\treturn this.data.length - this.offset;\n\t}\n\n\tprivate ensure(length: number): void {\n\t\tif (this.offset + length > this.data.length) {\n\t\t\tthrow new SerializationError(\n\t\t\t\t`Buffer underflow: need ${length} bytes at offset ${this.offset}, have ${this.data.length}`,\n\t\t\t);\n\t\t}\n\t}\n\n\treadUInt8(): number {\n\t\tthis.ensure(1);\n\t\t// biome-ignore lint/style/noNonNullAssertion: bounds checked by ensure()\n\t\treturn this.data[this.offset++]!;\n\t}\n\n\treadUInt16BE(): number {\n\t\tthis.ensure(2);\n\t\tconst val =\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bounds checked by ensure()\n\t\t\t((this.data[this.offset]! << 8) | this.data[this.offset + 1]!) >>> 0;\n\t\tthis.offset += 2;\n\t\treturn val;\n\t}\n\n\treadUInt32BE(): number {\n\t\tthis.ensure(4);\n\t\tconst val =\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: bounds checked by ensure()\n\t\t\t((this.data[this.offset]! << 24) |\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: bounds checked by ensure()\n\t\t\t\t(this.data[this.offset + 1]! << 16) |\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: bounds checked by ensure()\n\t\t\t\t(this.data[this.offset + 2]! << 8) |\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: bounds checked by ensure()\n\t\t\t\tthis.data[this.offset + 3]!) >>>\n\t\t\t0;\n\t\tthis.offset += 4;\n\t\treturn val;\n\t}\n\n\treadBytes(length: number): Uint8Array {\n\t\tthis.ensure(length);\n\t\tconst slice = this.data.slice(this.offset, this.offset + length);\n\t\tthis.offset += length;\n\t\treturn slice;\n\t}\n\n\treadBigUInt64BE(): bigint {\n\t\tconst hex = bytesToHex(this.readBytes(8));\n\t\treturn hex.length > 0 ? BigInt(`0x${hex}`) : 0n;\n\t}\n}\n",
|
|
28
|
-
"import { isClarityName, parsePrincipal } from \"../utils/address.ts\";\nimport { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\ttype IntegerType,\n\tasciiToBytes,\n\tbytesToHex,\n\tbytesToTwosBigInt,\n\thexToBytes,\n\tintToBigInt,\n\tutf8ToBytes,\n} from \"../utils/encoding.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport type {\n\tBooleanCV,\n\tBufferCV,\n\tClarityValue,\n\tContractPrincipalCV,\n\tFalseCV,\n\tIntCV,\n\tListCV,\n\tNoneCV,\n\tResponseErrorCV,\n\tResponseOkCV,\n\tSomeCV,\n\tStandardPrincipalCV,\n\tStringAsciiCV,\n\tStringUtf8CV,\n\tTrueCV,\n\tTupleCV,\n\tTupleData,\n\tUIntCV,\n} from \"./types.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n\tlet v: IntegerType = value;\n\tif (typeof v === \"string\" && v.toLowerCase().startsWith(\"0x\")) {\n\t\tv = bytesToTwosBigInt(hexToBytes(v));\n\t}\n\tif (v instanceof Uint8Array) v = bytesToTwosBigInt(v);\n\tconst n = intToBigInt(v);\n\tif (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n\tif (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n\treturn { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n\tconst n = intToBigInt(value);\n\tif (n < 0n)\n\t\tthrow new RangeError(\"Cannot construct unsigned int from negative value\");\n\tif (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n\treturn { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n\tif (buffer.byteLength > 1_048_576) {\n\t\tthrow new Error(\"Buffer exceeds max size of 1MB\");\n\t}\n\treturn { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n\t// Validate by decoding\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\treturn { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n\taddress: string,\n\tcontractName: string,\n): ContractPrincipalCV {\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\tif (utf8ToBytes(contractName).byteLength >= 128) {\n\t\tthrow new Error(\"Contract name must be less than 128 bytes\");\n\t}\n\treturn { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n\treturn { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n\treturn { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n\treturn { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n\treturn { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n\treturn { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n\tfor (const key in data) {\n\t\tif (!isClarityName(key)) {\n\t\t\tthrow new Error(`\"${key}\" is not a valid Clarity name`);\n\t\t}\n\t}\n\treturn { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n\treturn { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n\treturn { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl: {\n\treadonly int: (value: IntegerType) => IntCV;\n\treadonly uint: (value: IntegerType) => UIntCV;\n\treadonly bool: (v: boolean) => BooleanCV;\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\treadonly contractPrincipal: (\n\t\taddress: string,\n\t\tcontractName: string,\n\t) => ContractPrincipalCV;\n\treadonly standardPrincipal: (address: string) => StandardPrincipalCV;\n\treadonly buffer: (buffer: Uint8Array) => BufferCV;\n\treadonly bufferFromHex: (hex: string) => BufferCV;\n\treadonly bufferFromAscii: (ascii: string) => BufferCV;\n\treadonly bufferFromUtf8: (utf8: string) => BufferCV;\n\treadonly none: () => NoneCV;\n\treadonly some: (value: ClarityValue) => SomeCV;\n\treadonly ok: (value: ClarityValue) => ResponseOkCV;\n\treadonly error: (value: ClarityValue) => ResponseErrorCV;\n\treadonly list: (values: ClarityValue[]) => ListCV;\n\treadonly tuple: (data: TupleData) => TupleCV;\n\treadonly stringAscii: (value: string) => StringAsciiCV;\n\treadonly stringUtf8: (value: string) => StringUtf8CV;\n\tserialize(value: ClarityValue): string;\n\treadonly deserialize: (bytes: Uint8Array) => ClarityValue;\n} = {\n\tint: intCV,\n\tuint: uintCV,\n\tbool: boolCV,\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\tconst parsed = parsePrincipal(address);\n\t\tif (!parsed) throw new Error(`Invalid principal: ${address}`);\n\t\treturn parsed.contractName\n\t\t\t? contractPrincipalCV(parsed.address, parsed.contractName)\n\t\t\t: standardPrincipalCV(parsed.address);\n\t},\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\treturn Cl.principal(address);\n\t},\n\tcontractPrincipal: contractPrincipalCV,\n\tstandardPrincipal: standardPrincipalCV,\n\tbuffer: bufferCV,\n\tbufferFromHex: (hex: string): BufferCV => bufferCV(hexToBytes(hex)),\n\tbufferFromAscii: (ascii: string): BufferCV => bufferCV(asciiToBytes(ascii)),\n\tbufferFromUtf8: (utf8: string): BufferCV => bufferCV(utf8ToBytes(utf8)),\n\tnone: noneCV,\n\tsome: someCV,\n\tok: responseOkCV,\n\terror: responseErrorCV,\n\tlist: listCV,\n\ttuple: tupleCV,\n\tstringAscii: stringAsciiCV,\n\tstringUtf8: stringUtf8CV,\n\tserialize(value: ClarityValue): string {\n\t\treturn bytesToHex(serializeCVBytes(value));\n\t},\n\tdeserialize: deserializeCVBytes,\n} as const;\n",
|
|
28
|
+
"import { isClarityName, parsePrincipal } from \"../utils/address.ts\";\nimport { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport {\n\ttype IntegerType,\n\tasciiToBytes,\n\tbytesToHex,\n\tbytesToTwosBigInt,\n\thexToBytes,\n\tintToBigInt,\n\tisAscii,\n\tutf8ToBytes,\n} from \"../utils/encoding.ts\";\nimport { deserializeCVBytes } from \"./deserialize.ts\";\nimport { MAX_STRING_BYTES, serializeCVBytes } from \"./serialize.ts\";\nimport type {\n\tBooleanCV,\n\tBufferCV,\n\tClarityValue,\n\tContractPrincipalCV,\n\tFalseCV,\n\tIntCV,\n\tListCV,\n\tNoneCV,\n\tResponseErrorCV,\n\tResponseOkCV,\n\tSomeCV,\n\tStandardPrincipalCV,\n\tStringAsciiCV,\n\tStringUtf8CV,\n\tTrueCV,\n\tTupleCV,\n\tTupleData,\n\tUIntCV,\n} from \"./types.ts\";\n\nconst MAX_U128 = BigInt(\"0xffffffffffffffffffffffffffffffff\");\nconst MIN_I128 = BigInt(\"-170141183460469231731687303715884105728\");\nconst MAX_I128 = BigInt(\"0x7fffffffffffffffffffffffffffffff\");\n\n// Primitives\n\nexport function intCV(value: IntegerType): IntCV {\n\tlet v: IntegerType = value;\n\tif (typeof v === \"string\" && v.toLowerCase().startsWith(\"0x\")) {\n\t\tv = bytesToTwosBigInt(hexToBytes(v));\n\t}\n\tif (v instanceof Uint8Array) v = bytesToTwosBigInt(v);\n\tconst n = intToBigInt(v);\n\tif (n > MAX_I128) throw new RangeError(`Int exceeds max i128: ${MAX_I128}`);\n\tif (n < MIN_I128) throw new RangeError(`Int below min i128: ${MIN_I128}`);\n\treturn { type: \"int\", value: n };\n}\n\nexport function uintCV(value: IntegerType): UIntCV {\n\tconst n = intToBigInt(value);\n\tif (n < 0n)\n\t\tthrow new RangeError(\"Cannot construct unsigned int from negative value\");\n\tif (n > MAX_U128) throw new RangeError(`UInt exceeds max u128: ${MAX_U128}`);\n\treturn { type: \"uint\", value: n };\n}\n\nexport const trueCV = (): TrueCV => ({ type: \"true\" });\nexport const falseCV = (): FalseCV => ({ type: \"false\" });\nexport const boolCV = (v: boolean): BooleanCV => (v ? trueCV() : falseCV());\n\nexport function bufferCV(buffer: Uint8Array): BufferCV {\n\tif (buffer.byteLength > 1_048_576) {\n\t\tthrow new Error(\"Buffer exceeds max size of 1MB\");\n\t}\n\treturn { type: \"buffer\", value: bytesToHex(buffer) };\n}\n\nexport function standardPrincipalCV(address: string): StandardPrincipalCV {\n\t// Validate by decoding\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\treturn { type: \"address\", value: normalized };\n}\n\nexport function contractPrincipalCV(\n\taddress: string,\n\tcontractName: string,\n): ContractPrincipalCV {\n\tconst [version, hash160] = c32addressDecode(address);\n\tconst normalized = c32address(version, hash160);\n\tif (utf8ToBytes(contractName).byteLength >= 128) {\n\t\tthrow new Error(\"Contract name must be less than 128 bytes\");\n\t}\n\treturn { type: \"contract\", value: `${normalized}.${contractName}` };\n}\n\nexport function noneCV(): NoneCV {\n\treturn { type: \"none\" };\n}\n\nexport function someCV(value: ClarityValue): SomeCV {\n\treturn { type: \"some\", value };\n}\n\nexport function responseOkCV(value: ClarityValue): ResponseOkCV {\n\treturn { type: \"ok\", value };\n}\n\nexport function responseErrorCV(value: ClarityValue): ResponseErrorCV {\n\treturn { type: \"err\", value };\n}\n\nexport function listCV(values: ClarityValue[]): ListCV {\n\treturn { type: \"list\", value: values };\n}\n\nexport function tupleCV(data: TupleData): TupleCV {\n\tfor (const key in data) {\n\t\tif (!isClarityName(key)) {\n\t\t\tthrow new Error(`\"${key}\" is not a valid Clarity name`);\n\t\t}\n\t}\n\treturn { type: \"tuple\", value: data };\n}\n\nexport function stringAsciiCV(value: string): StringAsciiCV {\n\tif (!isAscii(value))\n\t\tthrow new Error(\"string-ascii holds only ASCII characters\");\n\tif (value.length > MAX_STRING_BYTES)\n\t\tthrow new Error(\n\t\t\t`string-ascii exceeds max size of ${MAX_STRING_BYTES} bytes`,\n\t\t);\n\treturn { type: \"ascii\", value };\n}\n\nexport function stringUtf8CV(value: string): StringUtf8CV {\n\treturn { type: \"utf8\", value };\n}\n\n// Cl namespace — clean API\n\nexport const Cl: {\n\treadonly int: (value: IntegerType) => IntCV;\n\treadonly uint: (value: IntegerType) => UIntCV;\n\treadonly bool: (v: boolean) => BooleanCV;\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV;\n\treadonly contractPrincipal: (\n\t\taddress: string,\n\t\tcontractName: string,\n\t) => ContractPrincipalCV;\n\treadonly standardPrincipal: (address: string) => StandardPrincipalCV;\n\treadonly buffer: (buffer: Uint8Array) => BufferCV;\n\treadonly bufferFromHex: (hex: string) => BufferCV;\n\treadonly bufferFromAscii: (ascii: string) => BufferCV;\n\treadonly bufferFromUtf8: (utf8: string) => BufferCV;\n\treadonly none: () => NoneCV;\n\treadonly some: (value: ClarityValue) => SomeCV;\n\treadonly ok: (value: ClarityValue) => ResponseOkCV;\n\treadonly error: (value: ClarityValue) => ResponseErrorCV;\n\treadonly list: (values: ClarityValue[]) => ListCV;\n\treadonly tuple: (data: TupleData) => TupleCV;\n\treadonly stringAscii: (value: string) => StringAsciiCV;\n\treadonly stringUtf8: (value: string) => StringUtf8CV;\n\tserialize(value: ClarityValue): string;\n\treadonly deserialize: (bytes: Uint8Array) => ClarityValue;\n} = {\n\tint: intCV,\n\tuint: uintCV,\n\tbool: boolCV,\n\tprincipal(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\tconst parsed = parsePrincipal(address);\n\t\tif (!parsed) throw new Error(`Invalid principal: ${address}`);\n\t\treturn parsed.contractName\n\t\t\t? contractPrincipalCV(parsed.address, parsed.contractName)\n\t\t\t: standardPrincipalCV(parsed.address);\n\t},\n\taddress(address: string): StandardPrincipalCV | ContractPrincipalCV {\n\t\treturn Cl.principal(address);\n\t},\n\tcontractPrincipal: contractPrincipalCV,\n\tstandardPrincipal: standardPrincipalCV,\n\tbuffer: bufferCV,\n\tbufferFromHex: (hex: string): BufferCV => bufferCV(hexToBytes(hex)),\n\tbufferFromAscii: (ascii: string): BufferCV => bufferCV(asciiToBytes(ascii)),\n\tbufferFromUtf8: (utf8: string): BufferCV => bufferCV(utf8ToBytes(utf8)),\n\tnone: noneCV,\n\tsome: someCV,\n\tok: responseOkCV,\n\terror: responseErrorCV,\n\tlist: listCV,\n\ttuple: tupleCV,\n\tstringAscii: stringAsciiCV,\n\tstringUtf8: stringUtf8CV,\n\tserialize(value: ClarityValue): string {\n\t\treturn bytesToHex(serializeCVBytes(value));\n\t},\n\tdeserialize: deserializeCVBytes,\n} as const;\n",
|
|
29
29
|
"import { SerializationError } from \"../errors/transaction.ts\";\nimport { BytesReader } from \"../utils/bytes-reader.ts\";\nimport { c32address } from \"../utils/c32.ts\";\nimport {\n\tbytesToAscii,\n\tbytesToHex,\n\tbytesToTwosBigInt,\n\tbytesToUtf8,\n\thexToBytes,\n\twithout0x,\n} from \"../utils/encoding.ts\";\nimport { type ClarityValue, clarityTypeFromByte } from \"./types.ts\";\nimport {\n\tbufferCV,\n\tfalseCV,\n\tintCV,\n\tlistCV,\n\tnoneCV,\n\tresponseErrorCV,\n\tresponseOkCV,\n\tsomeCV,\n\tstringAsciiCV,\n\tstringUtf8CV,\n\ttrueCV,\n\ttupleCV,\n\tuintCV,\n} from \"./values.ts\";\n\nexport function readAddress(reader: BytesReader): string {\n\tconst version = reader.readUInt8();\n\tconst hash160 = bytesToHex(reader.readBytes(20));\n\treturn c32address(version, hash160);\n}\n\nexport function readLPString(reader: BytesReader, prefixBytes = 1): string {\n\tlet length = 0;\n\tfor (let i = 0; i < prefixBytes; i++) {\n\t\tlength = (length << 8) | reader.readUInt8();\n\t}\n\treturn bytesToUtf8(reader.readBytes(length));\n}\n\n/** Deepest nesting the deserializer follows before refusing the input. Clarity\n * itself caps value nesting far below this, so honest data never hits it;\n * hostile bytes that repeat `some`/`ok`/`list` would otherwise blow the stack. */\nexport const MAX_CV_DEPTH = 64;\n\n/** Every list item and tuple entry costs at least this many bytes on the wire\n * (a type byte, plus a name-length byte for tuple entries), so a declared\n * count that outruns the remaining bytes is corrupt before any allocation. */\nconst MIN_LIST_ITEM_BYTES = 1;\nconst MIN_TUPLE_ENTRY_BYTES = 2;\n\nfunction checkCount(reader: BytesReader, count: number, minBytes: number) {\n\tif (count * minBytes > reader.remaining()) {\n\t\tthrow new SerializationError(\n\t\t\t`Clarity value declares ${count} elements but only ${reader.remaining()} bytes remain`,\n\t\t);\n\t}\n}\n\nexport function readCV(reader: BytesReader, depth = 0): ClarityValue {\n\tif (depth > MAX_CV_DEPTH) {\n\t\tthrow new SerializationError(\n\t\t\t`Clarity value nests deeper than ${MAX_CV_DEPTH} levels`,\n\t\t);\n\t}\n\tconst typeByte = reader.readUInt8();\n\tconst type = clarityTypeFromByte(typeByte);\n\n\tswitch (type) {\n\t\tcase \"int\":\n\t\t\treturn intCV(bytesToTwosBigInt(reader.readBytes(16)));\n\n\t\tcase \"uint\":\n\t\t\treturn uintCV(reader.readBytes(16));\n\n\t\tcase \"true\":\n\t\t\treturn trueCV();\n\n\t\tcase \"false\":\n\t\t\treturn falseCV();\n\n\t\tcase \"buffer\": {\n\t\t\tconst len = reader.readUInt32BE();\n\t\t\treturn bufferCV(reader.readBytes(len));\n\t\t}\n\n\t\tcase \"none\":\n\t\t\treturn noneCV();\n\n\t\tcase \"some\":\n\t\t\treturn someCV(readCV(reader, depth + 1));\n\n\t\tcase \"ok\":\n\t\t\treturn responseOkCV(readCV(reader, depth + 1));\n\n\t\tcase \"err\":\n\t\t\treturn responseErrorCV(readCV(reader, depth + 1));\n\n\t\t// readAddress c32-encodes canonical bytes, so the address is already\n\t\t// normalized. Building the CV directly skips the constructors'\n\t\t// decode→re-encode round trip (two more double-sha256 checksums per\n\t\t// principal), which dominated print decoding.\n\t\tcase \"address\":\n\t\t\treturn { type: \"address\", value: readAddress(reader) };\n\n\t\tcase \"contract\": {\n\t\t\tconst addr = readAddress(reader);\n\t\t\tconst name = readLPString(reader);\n\t\t\tif (new TextEncoder().encode(name).byteLength >= 128) {\n\t\t\t\tthrow new Error(\"Contract name must be less than 128 bytes\");\n\t\t\t}\n\t\t\treturn { type: \"contract\", value: `${addr}.${name}` };\n\t\t}\n\n\t\tcase \"list\": {\n\t\t\tconst len = reader.readUInt32BE();\n\t\t\tcheckCount(reader, len, MIN_LIST_ITEM_BYTES);\n\t\t\tconst items: ClarityValue[] = [];\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\titems.push(readCV(reader, depth + 1));\n\t\t\t}\n\t\t\treturn listCV(items);\n\t\t}\n\n\t\tcase \"tuple\": {\n\t\t\tconst len = reader.readUInt32BE();\n\t\t\tcheckCount(reader, len, MIN_TUPLE_ENTRY_BYTES);\n\t\t\tconst data: Record<string, ClarityValue> = {};\n\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\tconst key = readLPString(reader);\n\t\t\t\tdata[key] = readCV(reader, depth + 1);\n\t\t\t}\n\t\t\treturn tupleCV(data);\n\t\t}\n\n\t\tcase \"ascii\": {\n\t\t\tconst len = reader.readUInt32BE();\n\t\t\treturn stringAsciiCV(bytesToAscii(reader.readBytes(len)));\n\t\t}\n\n\t\tcase \"utf8\": {\n\t\t\tconst len = reader.readUInt32BE();\n\t\t\treturn stringUtf8CV(bytesToUtf8(reader.readBytes(len)));\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new SerializationError(\n\t\t\t\t`Cannot deserialize unknown clarity type: ${type}`,\n\t\t\t);\n\t}\n}\n\nexport function deserializeCVBytes<T extends ClarityValue = ClarityValue>(\n\tinput: Uint8Array | string,\n): T {\n\tconst bytes =\n\t\ttypeof input === \"string\" ? hexToBytes(without0x(input)) : input;\n\treturn readCV(new BytesReader(bytes)) as T;\n}\n\nexport function deserializeCV<T extends ClarityValue = ClarityValue>(\n\tinput: Uint8Array | string,\n): T {\n\treturn deserializeCVBytes(input);\n}\n",
|
|
30
30
|
"import { deserializeCVBytes } from \"../../clarity/deserialize.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\n\nexport type GetDataVarParams = {\n\tcontract: string; // \"address.name\"\n\tvarName: string;\n};\n\nexport async function getDataVar<T extends ClarityValue = ClarityValue>(\n\tclient: Client,\n\tparams: GetDataVarParams,\n): Promise<T> {\n\tconst [address, name] = parseContractId(params.contract);\n\tconst path = `/v2/data_var/${address}/${name}/${params.varName}?proof=0`;\n\n\tconst data = await client.request(path, { method: \"GET\" });\n\n\tif (typeof data?.data !== \"string\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t`getDataVar: /v2/data_var/${address}/${name}/${params.varName} response is missing \"data\"`,\n\t\t);\n\t}\n\treturn deserializeCVBytes<T>(data.data);\n}\n",
|
|
31
31
|
"import { deserializeCVBytes } from \"../../clarity/deserialize.ts\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { MalformedResponseError } from \"../../errors/response.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport { bytesToHex, with0x } from \"../../utils/encoding.ts\";\n\nexport type GetMapEntryParams = {\n\tcontract: string; // \"address.name\"\n\tmapName: string;\n\tkey: ClarityValue;\n};\n\nexport async function getMapEntry<T extends ClarityValue = ClarityValue>(\n\tclient: Client,\n\tparams: GetMapEntryParams,\n): Promise<T> {\n\tconst [address, name] = parseContractId(params.contract);\n\tconst serializedKey = with0x(bytesToHex(serializeCVBytes(params.key)));\n\n\tconst data = await client.request(\n\t\t`/v2/map_entry/${address}/${name}/${params.mapName}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\tbody: serializedKey,\n\t\t},\n\t);\n\n\tif (typeof data?.data !== \"string\") {\n\t\tthrow new MalformedResponseError(\n\t\t\t`getMapEntry: /v2/map_entry/${address}/${name}/${params.mapName} response is missing \"data\"`,\n\t\t);\n\t}\n\treturn deserializeCVBytes<T>(data.data);\n}\n",
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"import type { CustomAccount, LocalAccount } from \"../accounts/types.ts\";\nimport { bytesToHex, hexToBytes } from \"../utils/encoding.ts\";\nimport { txidFromBytes } from \"../utils/hash.ts\";\nimport {\n\tintoInitialSighashAuth,\n\tnextSignature,\n\tsigHashPostSign,\n\tsigHashPreSign,\n} from \"./authorization.ts\";\nimport { replayMultiSigSigHash } from \"./multisig.ts\";\nimport {\n\tAuthType,\n\ttype SingleSigSpendingCondition,\n\ttype SponsoredAuthorization,\n\ttype StacksTransaction,\n} from \"./types.ts\";\nimport { serializeTransaction } from \"./wire/serialize.ts\";\n\nfunction txid(tx: StacksTransaction): string {\n\treturn txidFromBytes(serializeTransaction(tx));\n}\n\n/** Compute the initial sighash for a transaction */\nexport function signBegin(tx: StacksTransaction): string {\n\tconst cleared: StacksTransaction = {\n\t\t...tx,\n\t\tauth: intoInitialSighashAuth(tx.auth),\n\t};\n\treturn txid(cleared);\n}\n\n/** Sign a single-sig transaction with a private key, returning the signed transaction */\nexport function signTransaction(\n\ttx: StacksTransaction,\n\tprivateKey: string,\n): StacksTransaction {\n\tconst sigHash = signBegin(tx);\n\tconst condition = tx.auth.spendingCondition as SingleSigSpendingCondition;\n\n\t// Origin always signs with AuthType.Standard (even for sponsored txs)\n\tconst { nextSig } = nextSignature(\n\t\tsigHash,\n\t\tAuthType.Standard,\n\t\tcondition.fee,\n\t\tcondition.nonce,\n\t\tprivateKey,\n\t);\n\n\treturn {\n\t\t...tx,\n\t\tauth: {\n\t\t\t...tx.auth,\n\t\t\tspendingCondition: {\n\t\t\t\t...condition,\n\t\t\t\tsignature: nextSig,\n\t\t\t},\n\t\t},\n\t};\n}\n\n/** Sign a single-sig transaction using an account (LocalAccount or CustomAccount) */\nexport async function signTransactionWithAccount(\n\ttx: StacksTransaction,\n\taccount: LocalAccount | CustomAccount,\n): Promise<StacksTransaction> {\n\tconst sigHash = signBegin(tx);\n\tconst condition = tx.auth.spendingCondition as SingleSigSpendingCondition;\n\n\t// Origin always signs with AuthType.Standard (even for sponsored txs)\n\tconst sigHashPre = sigHashPreSign(\n\t\tsigHash,\n\t\tAuthType.Standard,\n\t\tcondition.fee,\n\t\tcondition.nonce,\n\t);\n\n\t// account.sign returns 65-byte VRS (recovery + r + s)\n\tconst sigBytes = await account.sign(hexToBytes(sigHashPre));\n\tconst nextSig = bytesToHex(sigBytes);\n\n\treturn {\n\t\t...tx,\n\t\tauth: {\n\t\t\t...tx.auth,\n\t\t\tspendingCondition: {\n\t\t\t\t...condition,\n\t\t\t\tsignature: nextSig,\n\t\t\t},\n\t\t},\n\t};\n}\n\n/** Get the txid of a transaction */\nexport function getTransactionId(tx: StacksTransaction): string {\n\treturn txid(tx);\n}\n\n/** Reconstruct the sighash after origin signing (needed for sponsor signing) */\nexport function getOriginSigHash(tx: StacksTransaction): string {\n\tconst condition = tx.auth.spendingCondition;\n\n\t// Multi-sig: replay through all fields\n\tif (\"fields\" in condition) {\n\t\treturn replayMultiSigSigHash(tx);\n\t}\n\n\t// Single-sig\n\tconst initialSigHash = signBegin(tx);\n\tconst sc = condition as SingleSigSpendingCondition;\n\tconst preSign = sigHashPreSign(\n\t\tinitialSigHash,\n\t\tAuthType.Standard,\n\t\tsc.fee,\n\t\tsc.nonce,\n\t);\n\treturn sigHashPostSign(preSign, sc.keyEncoding, sc.signature);\n}\n\n/** Sign a sponsored transaction as the sponsor with a private key */\nexport function signSponsor(\n\ttx: StacksTransaction,\n\tprivateKey: string,\n): StacksTransaction {\n\tif (tx.auth.authType !== AuthType.Sponsored) {\n\t\tthrow new Error(\"Transaction must be sponsored\");\n\t}\n\tconst auth = tx.auth as SponsoredAuthorization;\n\tconst sponsorCondition =\n\t\tauth.sponsorSpendingCondition as SingleSigSpendingCondition;\n\tconst originSigHash = getOriginSigHash(tx);\n\n\tconst { nextSig } = nextSignature(\n\t\toriginSigHash,\n\t\tAuthType.Sponsored,\n\t\tsponsorCondition.fee,\n\t\tsponsorCondition.nonce,\n\t\tprivateKey,\n\t);\n\n\treturn {\n\t\t...tx,\n\t\tauth: {\n\t\t\t...auth,\n\t\t\tsponsorSpendingCondition: {\n\t\t\t\t...sponsorCondition,\n\t\t\t\tsignature: nextSig,\n\t\t\t},\n\t\t},\n\t};\n}\n\n/** Sign a sponsored transaction as the sponsor using an account */\nexport async function signSponsorWithAccount(\n\ttx: StacksTransaction,\n\taccount: LocalAccount | CustomAccount,\n): Promise<StacksTransaction> {\n\tif (tx.auth.authType !== AuthType.Sponsored) {\n\t\tthrow new Error(\"Transaction must be sponsored\");\n\t}\n\tconst auth = tx.auth as SponsoredAuthorization;\n\tconst sponsorCondition =\n\t\tauth.sponsorSpendingCondition as SingleSigSpendingCondition;\n\tconst originSigHash = getOriginSigHash(tx);\n\n\tconst sigHashPre = sigHashPreSign(\n\t\toriginSigHash,\n\t\tAuthType.Sponsored,\n\t\tsponsorCondition.fee,\n\t\tsponsorCondition.nonce,\n\t);\n\n\tconst sigBytes = await account.sign(hexToBytes(sigHashPre));\n\tconst nextSig = bytesToHex(sigBytes);\n\n\treturn {\n\t\t...tx,\n\t\tauth: {\n\t\t\t...auth,\n\t\t\tsponsorSpendingCondition: {\n\t\t\t\t...sponsorCondition,\n\t\t\t\tsignature: nextSig,\n\t\t\t},\n\t\t},\n\t};\n}\n",
|
|
56
56
|
"import { getTransaction } from \"../../actions/public/getTransaction.ts\";\nimport type { TransactionReceipt } from \"../../actions/public/txSources.ts\";\nimport { waitForTransactionReceipt } from \"../../actions/public/waitForTransactionReceipt.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { HttpRequestError } from \"../../errors/http.ts\";\nimport { BroadcastError } from \"../../errors/transaction.ts\";\nimport { TimeoutError } from \"../../errors/transport.ts\";\nimport { getTransactionId } from \"../../transactions/signer.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { serializeTransaction } from \"../../transactions/wire/serialize.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\n\nexport type SendTransactionParams = {\n\ttransaction: StacksTransaction;\n\tattachment?: Uint8Array | string;\n\t/**\n\t * Wait for the transaction to be mined before returning. `true` waits for\n\t * 1 confirmation; a number waits for that many. The receipt lands on the\n\t * result. Rejects if the tx aborts, is dropped, or the wait times out.\n\t */\n\twait?: boolean | number;\n};\n\nexport type SendTransactionResult = {\n\ttxid: string;\n\t/** Present when `wait` was requested. */\n\treceipt?: TransactionReceipt;\n};\n\n/** Broadcast a signed transaction to the network */\nexport async function sendTransaction(\n\tclient: Client,\n\tparams: SendTransactionParams,\n): Promise<SendTransactionResult> {\n\tconst hex = bytesToHex(serializeTransaction(params.transaction));\n\n\tconst body: Record<string, string> = { tx: hex };\n\tif (params.attachment) {\n\t\tbody.attachment =\n\t\t\ttypeof params.attachment === \"string\"\n\t\t\t\t? params.attachment\n\t\t\t\t: bytesToHex(params.attachment);\n\t}\n\n\t// A stacks-node responds to a rejected broadcast with a non-2xx status\n\t// (the transport throws for that) but the rejection JSON, the thing this\n\t// function actually needs, rides along as the error body. The broadcast\n\t// is never retried at the transport level: the node may already hold the\n\t// transaction, and a re-send would surface as a nonce conflict.\n\tlet data: Awaited<ReturnType<Client[\"request\"]>>;\n\ttry {\n\t\tdata = await client.request(\"/v2/transactions\", {\n\t\t\tmethod: \"POST\",\n\t\t\tbody,\n\t\t\tretryCount: 0,\n\t\t});\n\t} catch (error) {\n\t\tif (error instanceof HttpRequestError && error.details) {\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse(error.details);\n\t\t\t} catch {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} else if (error instanceof TimeoutError) {\n\t\t\t// The deadline passed after the node may have accepted the tx. Ask\n\t\t\t// before surfacing: a known tx means the broadcast succeeded.\n\t\t\tconst txid = getTransactionId(params.transaction);\n\t\t\tconst receipt = await getTransaction(client, { txid }).catch(() => null);\n\t\t\tif (receipt === null) throw error;\n\t\t\tdata = { txid };\n\t\t} else {\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tif (data.error) {\n\t\tthrow new BroadcastError(data.reason ?? data.error, {\n\t\t\treason: data.reason,\n\t\t\treasonData: data.reason_data,\n\t\t\ttxid: data.txid ?? getTransactionId(params.transaction),\n\t\t});\n\t}\n\n\tconst txid =\n\t\ttypeof data === \"string\"\n\t\t\t? data.replace(/\"/g, \"\")\n\t\t\t: (data.txid ?? getTransactionId(params.transaction));\n\n\tif (params.wait) {\n\t\tconst confirmations = params.wait === true ? 1 : params.wait;\n\t\tconst receipt = await waitForTransactionReceipt(client, {\n\t\t\ttxid,\n\t\t\tconfirmations,\n\t\t});\n\t\treturn { txid, receipt };\n\t}\n\n\treturn { txid };\n}\n",
|
|
57
57
|
"import type { Client } from \"../../clients/types.ts\";\nimport { BroadcastError } from \"../../errors/transaction.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport { sendTransaction } from \"./sendTransaction.ts\";\n\n/**\n * Provides the confirmed on-chain nonce floor for an address.\n *\n * The default {@link jsonRpcSource} reads the configured node's `/v2/accounts`\n * endpoint — node-agnostic, no Hiro dependency. Other sources (mempool-aware,\n * first-party Index) can be swapped in without touching the manager.\n */\nexport type NonceManagerSource = {\n\tget(params: { client: Client; address: string }): Promise<bigint>;\n};\n\n/**\n * Holds per-address allocation state and hands out the next nonce.\n *\n * `reserve` MUST be atomic per `key`: two concurrent reservations for the same\n * key must never return the same value. The in-memory {@link memoryStore}\n * serializes with a per-key promise chain; a persisted store (Redis `INCR`,\n * Postgres `SELECT ... FOR UPDATE`) becomes the cross-process lock for the\n * multi-builder / smart-wallet-as-a-service case.\n */\nexport type NonceStore = {\n\t/**\n\t * Reserve the next nonce for `key`. `getFloor` reads the confirmed on-chain\n\t * nonce; it is only invoked when the store has no tracked value (cold start\n\t * or after {@link NonceStore.reset}).\n\t */\n\treserve(key: string, getFloor: () => Promise<bigint>): Promise<bigint>;\n\t/** Forget tracked state for `key` so the next reserve re-syncs from the floor. */\n\treset(key: string): void | Promise<void>;\n\t/**\n\t * Hand back a nonce that {@link NonceStore.reserve} issued but that never\n\t * reached the mempool. Rolls the counter back ONLY when `nonce` is the\n\t * most recently issued value (`next - 1`); a stale release, or one that\n\t * races a newer reservation, is a no-op. Optional: stores that omit it\n\t * leave the gap for {@link reconcileNonce} to heal.\n\t */\n\trelease?(key: string, nonce: bigint): void | Promise<void>;\n\t/**\n\t * Return the next nonce that {@link NonceStore.reserve} would hand out for\n\t * `key` WITHOUT consuming it, or `undefined` if `key` is untracked. Used by\n\t * {@link reconcileNonce} to detect drift. Optional — stores that omit it\n\t * simply opt out of reconciliation.\n\t */\n\tpeek?(key: string): Promise<bigint | undefined> | bigint | undefined;\n};\n\n/** Allocates mempool-safe sequential nonces across rapid broadcasts from one account. */\nexport type NonceManager = {\n\tconsume(params: { client: Client; address: string }): Promise<bigint>;\n\treset(params: { client: Client; address: string }): void | Promise<void>;\n\t/**\n\t * Give back a nonce from {@link NonceManager.consume} whose transaction\n\t * was never accepted by the node. No-op unless it is the latest issued.\n\t */\n\trelease(params: {\n\t\tclient: Client;\n\t\taddress: string;\n\t\tnonce: bigint;\n\t}): void | Promise<void>;\n\t/** Next nonce that {@link NonceManager.consume} would return without consuming it, or `undefined` if untracked. */\n\tpeek(params: {\n\t\tclient: Client;\n\t\taddress: string;\n\t}): Promise<bigint | undefined>;\n};\n\nexport type CreateNonceManagerParams = {\n\tsource?: NonceManagerSource;\n\tstore?: NonceStore;\n};\n\n/** Confirmed-nonce source backed by the configured node's `/v2/accounts` RPC (no Hiro dependency). */\nexport function jsonRpcSource(): NonceManagerSource {\n\treturn {\n\t\tget: ({ client, address }) => getNonce(client, { address }),\n\t};\n}\n\n/**\n * In-memory, single-process store. Tracks the next nonce per key and serializes\n * concurrent reservations with a per-key promise chain.\n *\n * Correct only within one process — swap in a persisted store for multi-process\n * deployments that share a signing key.\n */\nexport function memoryStore(): NonceStore {\n\tconst next = new Map<string, bigint>();\n\tconst locks = new Map<string, Promise<unknown>>();\n\n\tfunction withLock<T>(key: string, fn: () => Promise<T>): Promise<T> {\n\t\tconst prev = locks.get(key) ?? Promise.resolve();\n\t\t// Chain onto the prior reservation regardless of how it settled, so a\n\t\t// rejected reserve never wedges the key.\n\t\tconst run = prev.then(fn, fn);\n\t\tlocks.set(\n\t\t\tkey,\n\t\t\trun.catch(() => {}),\n\t\t);\n\t\treturn run;\n\t}\n\n\treturn {\n\t\treserve(key, getFloor) {\n\t\t\treturn withLock(key, async () => {\n\t\t\t\tlet current = next.get(key);\n\t\t\t\tif (current === undefined) current = await getFloor();\n\t\t\t\tnext.set(key, current + 1n);\n\t\t\t\treturn current;\n\t\t\t});\n\t\t},\n\t\treset(key) {\n\t\t\tnext.delete(key);\n\t\t},\n\t\trelease(key, nonce) {\n\t\t\treturn withLock(key, async () => {\n\t\t\t\tif (next.get(key) === nonce + 1n) next.set(key, nonce);\n\t\t\t});\n\t\t},\n\t\tpeek(key) {\n\t\t\treturn next.get(key);\n\t\t},\n\t};\n}\n\nfunction nonceKey(client: Client, address: string): string {\n\treturn `${client.chain?.id ?? \"stacks\"}:${address}`;\n}\n\n/**\n * Create a nonce manager that floors on a confirmed-nonce {@link NonceManagerSource}\n * and increments a {@link NonceStore} on every {@link NonceManager.consume}.\n *\n * Defaults to {@link jsonRpcSource} + {@link memoryStore} — node-agnostic,\n * single-process, zero external dependencies.\n */\nexport function createNonceManager(\n\tparams: CreateNonceManagerParams = {},\n): NonceManager {\n\tconst source = params.source ?? jsonRpcSource();\n\tconst store = params.store ?? memoryStore();\n\n\treturn {\n\t\tconsume({ client, address }) {\n\t\t\treturn store.reserve(nonceKey(client, address), () =>\n\t\t\t\tsource.get({ client, address }),\n\t\t\t);\n\t\t},\n\t\treset({ client, address }) {\n\t\t\treturn store.reset(nonceKey(client, address));\n\t\t},\n\t\trelease({ client, address, nonce }) {\n\t\t\treturn store.release?.(nonceKey(client, address), nonce);\n\t\t},\n\t\tasync peek({ client, address }) {\n\t\t\treturn store.peek?.(nonceKey(client, address));\n\t\t},\n\t};\n}\n\n/** Resolve the next nonce via the client's nonce manager, falling back to a confirmed read. */\nexport async function resolveNonce(\n\tclient: Client,\n\taddress: string,\n): Promise<bigint> {\n\tif (client.nonceManager)\n\t\treturn client.nonceManager.consume({ client, address });\n\treturn getNonce(client, { address });\n}\n\n/**\n * Return `nonce` to the client's nonce manager after a send that never\n * reached the mempool. No-op without a manager. Never throws: a failed\n * release must not mask the error that caused it.\n */\nexport async function releaseNonce(\n\tclient: Client,\n\taddress: string,\n\tnonce: bigint,\n): Promise<void> {\n\tif (!client.nonceManager) return;\n\ttry {\n\t\tawait client.nonceManager.release({ client, address, nonce });\n\t} catch {\n\t\t// The store is unreachable; the reconciler heals the gap later.\n\t}\n}\n\nexport type ReconcileNonceParams = {\n\tclient: Client;\n\taddress: string;\n\t/** Authoritative (ideally mempool-aware) source to reconcile against. */\n\tsource: NonceManagerSource;\n\t/**\n\t * Allow resetting DOWNWARD when the source's next nonce is below what the\n\t * store tracks — i.e. a previously-allocated tx is no longer pending or\n\t * confirmed (dropped/GC'd), so its nonce should be reused. Default `true`.\n\t *\n\t * Downward resets rely on `source` being current: with a go-forward mempool\n\t * source that lags broadcast, run reconciliation on an interval comfortably\n\t * longer than mempool propagation so a still-missing tx is genuinely dropped.\n\t * Set `false` for upward-only reconciliation (always safe).\n\t */\n\tdownward?: boolean;\n};\n\nexport type ReconcileNonceResult = {\n\t/** Whether the manager was reset (drift detected). */\n\treset: boolean;\n\t/** Authoritative next nonce from `source`. */\n\tauthoritative: bigint;\n\t/** Next nonce the store tracked, or `undefined` if untracked. */\n\ttracked: bigint | undefined;\n};\n\n/**\n * Reconcile a tracked nonce against an authoritative source, healing silent\n * drift that produces no broadcast error (a dropped/GC'd mempool tx leaving the\n * counter overshot, or the chain advancing past the local view).\n *\n * When the source's next nonce differs from the tracked value, the manager is\n * {@link NonceManager.reset}; the next `consume` re-seeds from `source`. A no-op\n * if the store is untracked or does not implement `peek`.\n */\nexport async function reconcileNonce(\n\tmanager: NonceManager,\n\tparams: ReconcileNonceParams,\n): Promise<ReconcileNonceResult> {\n\tconst { client, address, source } = params;\n\tconst downward = params.downward ?? true;\n\n\tconst authoritative = await source.get({ client, address });\n\tconst tracked = await manager.peek({ client, address });\n\n\tif (tracked === undefined || authoritative === tracked) {\n\t\treturn { reset: false, authoritative, tracked };\n\t}\n\tif (authoritative < tracked && !downward) {\n\t\treturn { reset: false, authoritative, tracked };\n\t}\n\n\tawait manager.reset({ client, address });\n\treturn { reset: true, authoritative, tracked };\n}\n\nexport type StartNonceReconcilerParams = {\n\tclient: Client;\n\taddresses: string[];\n\tsource: NonceManagerSource;\n\t/** Reconcile interval in ms. Default 60_000. Keep well above mempool propagation. */\n\tintervalMs?: number;\n\tdownward?: boolean;\n\t/** Per-address callback after each reconcile (observability). */\n\tonReconcile?: (address: string, result: ReconcileNonceResult) => void;\n\t/** Per-address error callback; reconciliation continues on the next tick. */\n\tonError?: (address: string, error: unknown) => void;\n\t/** Optional test clock. If provided, the reconciler advances time via\n\t * `clock.advance(ms)` instead of real `setInterval`. */\n\tclock?: {\n\t\tadvance: (ms: number) => Promise<void>;\n\t\tnow: () => number;\n\t};\n};\n\n/**\n * Run {@link reconcileNonce} on a timer for a set of addresses.\n *\n * SINGLE-WRITER: run this in exactly ONE process. With a shared persisted store,\n * a reconciler resetting the counter while other workers allocate is racy — keep\n * reconciliation on one designated process and let the others only allocate.\n *\n * Returns a handle; call `stop()` to clear the timer.\n */\nexport function startNonceReconciler(\n\tmanager: NonceManager,\n\tparams: StartNonceReconcilerParams,\n): { stop: () => void } {\n\tconst { client, addresses, source, clock } = params;\n\tconst intervalMs = params.intervalMs ?? 60_000;\n\tlet running = true;\n\n\tconst tick = async () => {\n\t\tif (!running) return;\n\t\tfor (const address of addresses) {\n\t\t\ttry {\n\t\t\t\tconst result = await reconcileNonce(manager, {\n\t\t\t\t\tclient,\n\t\t\t\t\taddress,\n\t\t\t\t\tsource,\n\t\t\t\t\tdownward: params.downward,\n\t\t\t\t});\n\t\t\t\tparams.onReconcile?.(address, result);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\tparams.onError?.(address, error);\n\t\t\t\t} catch {\n\t\t\t\t\t// A throwing onError callback must not abort the reconcile loop\n\t\t\t\t\t// or surface as an unhandled rejection on the interval timer.\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (running && clock) {\n\t\t\tawait clock.advance(intervalMs);\n\t\t\ttick();\n\t\t}\n\t};\n\n\tif (clock) {\n\t\ttick();\n\t\treturn {\n\t\t\tstop: () => {\n\t\t\t\trunning = false;\n\t\t\t},\n\t\t};\n\t}\n\n\tconst timer = setInterval(tick, intervalMs);\n\t// Don't keep the event loop alive solely for reconciliation (Node/Bun).\n\t(timer as { unref?: () => void }).unref?.();\n\n\treturn {\n\t\tstop: () => clearInterval(timer),\n\t};\n}\n\n/** True when a broadcast was rejected for a nonce conflict (`ConflictingNonceInMempool`, `BadNonce`). */\nexport function isNonceConflictError(error: unknown): boolean {\n\tif (!(error instanceof BroadcastError)) return false;\n\tif (\n\t\terror.reason === \"ConflictingNonceInMempool\" ||\n\t\terror.reason === \"BadNonce\"\n\t) {\n\t\treturn true;\n\t}\n\t// Typed reason present but not nonce-related — trust it over the message\n\t// (e.g. a FeeTooLow message mentioning \"nonce\" must not trigger a reset).\n\tif (error.reason !== undefined) return false;\n\t// No structured reason (older nodes/proxies) — fall back to message match.\n\treturn error.message.toLowerCase().includes(\"nonce\");\n}\n\n/**\n * Broadcast a signed transaction; on a nonce-conflict rejection, reset the\n * manager so the next build re-syncs to the confirmed floor.\n */\nexport async function broadcastWithNonceReset(\n\tclient: Client,\n\tparams: { transaction: StacksTransaction; address: string },\n): Promise<string> {\n\ttry {\n\t\tconst result = await sendTransaction(client, {\n\t\t\ttransaction: params.transaction,\n\t\t});\n\t\treturn result.txid;\n\t} catch (error) {\n\t\tif (client.nonceManager && isNonceConflictError(error)) {\n\t\t\tawait client.nonceManager.reset({ client, address: params.address });\n\t\t}\n\t\tthrow error;\n\t}\n}\n",
|
|
58
|
-
"import type { ProviderAccount } from \"../../accounts/types.ts\";\nimport type { Account, Client } from \"../../clients/types.ts\";\nimport { HttpRequestError } from \"../../errors/http.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tclearTxCache,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { intToBigInt } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\n\nexport function isProviderAccount(\n\taccount: Account,\n): account is ProviderAccount {\n\treturn account.type === \"provider\";\n}\n\n/**\n * Named fee tiers. `'low' | 'mid' | 'high'` map to the node's three fee\n * estimations; `'min'` is the node's minimum relay fee — 1 uSTX per byte of\n * the serialized transaction, computable offline.\n */\nexport type FeeTier = \"min\" | \"low\" | \"mid\" | \"high\";\n\n/** Fee input accepted by wallet actions: an explicit amount or a named tier. */\nexport type FeeParam = IntegerType | FeeTier;\n\nconst FEE_TIERS: readonly FeeTier[] = [\"min\", \"low\", \"mid\", \"high\"];\nconst TIER_INDEX = { low: 0, mid: 1, high: 2 } as const;\n\nexport function isFeeTier(fee: FeeParam | undefined): fee is FeeTier {\n\treturn typeof fee === \"string\" && FEE_TIERS.includes(fee as FeeTier);\n}\n\n/**\n * Minimum relay fee: 1 uSTX per byte of the serialized transaction. The fee\n * field is fixed-width (8 bytes), so the size — and therefore this floor — is\n * stable regardless of the fee value later set on the spending condition.\n */\nexport function minimumFee(transaction: StacksTransaction): bigint {\n\treturn BigInt(serializeTransaction(transaction).length);\n}\n\n/** Outcome of {@link resolveFee}: the amount and which tier produced it. */\nexport type ResolvedFee = {\n\tfee: bigint;\n\t/**\n\t * Tier the amount came from. `'min'` when the estimator had no estimate\n\t * and the relay floor was used instead. Absent when the caller passed an\n\t * exact amount.\n\t */\n\ttier?: FeeTier;\n};\n\n/**\n * True when the node answered `POST /v2/fees/transaction` with 400\n * `NoEstimateAvailable`: it is healthy but has no fee history for this\n * payload (fresh devnet, quiet chain). Every other failure means the\n * estimate was never obtained and must surface to the caller.\n */\nexport function isNoEstimateAvailable(error: unknown): boolean {\n\treturn (\n\t\terror instanceof HttpRequestError &&\n\t\terror.status === 400 &&\n\t\t(error.details?.includes(\"NoEstimateAvailable\") ?? false)\n\t);\n}\n\n/**\n * Resolve a fee param to a concrete amount. Numeric input passes through.\n * Tiers `'low' | 'mid' | 'high'` index the node's estimations (nearest\n * available when fewer than three are returned); `'min'` resolves to\n * {@link minimumFee}, which needs no network round-trip.\n *\n * The relay floor is the fallback ONLY when the node reports\n * `NoEstimateAvailable` or returns no estimations. A transport timeout, 5xx,\n * or auth failure rethrows: silently under-paying because the node was\n * unreachable would strand the transaction in the mempool.\n */\nexport async function resolveFee(\n\tclient: Client,\n\ttransaction: StacksTransaction,\n\tfee: FeeParam | undefined,\n): Promise<ResolvedFee> {\n\tif (fee !== undefined && !isFeeTier(fee)) return { fee: intToBigInt(fee) };\n\n\tconst tier = fee ?? \"mid\";\n\tif (tier === \"min\") return { fee: minimumFee(transaction), tier };\n\n\tlet estimates: Awaited<ReturnType<typeof estimateFee>>;\n\ttry {\n\t\testimates = await estimateFee(client, { transaction });\n\t} catch (error) {\n\t\tif (!isNoEstimateAvailable(error)) throw error;\n\t\treturn { fee: minimumFee(transaction), tier: \"min\" };\n\t}\n\tconst pick = estimates[TIER_INDEX[tier]] ?? estimates[estimates.length - 1];\n\tif (pick) return { fee: BigInt(pick.fee), tier };\n\treturn { fee: minimumFee(transaction), tier: \"min\" };\n}\n\n/** Set the resolved fee on an unsigned transaction's origin spending condition. */\nexport function setUnsignedFee(\n\ttransaction: StacksTransaction,\n\tfee: bigint,\n): void {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t(transaction.auth.spendingCondition as any).fee = fee;\n\t// In-place mutation: invalidate the memoized serialization (resolveFee may\n\t// have already serialized this object via minimumFee/estimateFee).\n\tclearTxCache(transaction);\n}\n\n/** Throw when a named fee tier is used with a provider (wallet) account. */\nexport function assertNoFeeTierForProvider(fee: FeeParam | undefined): void {\n\tif (isFeeTier(fee)) {\n\t\tthrow new Error(\n\t\t\t`Fee tier '${fee}' requires local signing; provider (wallet) accounts set their own fee`,\n\t\t);\n\t}\n}\n",
|
|
59
|
-
"import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport { buildContractCall } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport {\n\tbroadcastWithNonceReset,\n\treleaseNonce,\n\tresolveNonce,\n} from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type CallContractParams = {\n\tcontract: string; // \"address.name\"\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\n/** Build, sign, and broadcast a contract call */\nexport async function callContract(\n\tclient: Client,\n\tparams: CallContractParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\t// Validate the contract id up front so both the provider and local paths\n\t// reject malformed input instead of forwarding it to the wallet.\n\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_callContract\", {\n\t\t\tcontract: params.contract,\n\t\t\tfunctionName: params.functionName,\n\t\t\tfunctionArgs:
|
|
58
|
+
"import type { ProviderAccount } from \"../../accounts/types.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Account, Client } from \"../../clients/types.ts\";\nimport { HttpRequestError } from \"../../errors/http.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport {\n\tclearTxCache,\n\tserializeTransaction,\n} from \"../../transactions/wire/serialize.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { intToBigInt } from \"../../utils/encoding.ts\";\nimport { estimateFee } from \"../public/estimateFee.ts\";\n\nexport function isProviderAccount(\n\taccount: Account,\n): account is ProviderAccount {\n\treturn account.type === \"provider\";\n}\n\n/**\n * Named fee tiers. `'low' | 'mid' | 'high'` map to the node's three fee\n * estimations; `'min'` is the node's minimum relay fee — 1 uSTX per byte of\n * the serialized transaction, computable offline.\n */\nexport type FeeTier = \"min\" | \"low\" | \"mid\" | \"high\";\n\n/** Fee input accepted by wallet actions: an explicit amount or a named tier. */\nexport type FeeParam = IntegerType | FeeTier;\n\nconst FEE_TIERS: readonly FeeTier[] = [\"min\", \"low\", \"mid\", \"high\"];\nconst TIER_INDEX = { low: 0, mid: 1, high: 2 } as const;\n\nexport function isFeeTier(fee: FeeParam | undefined): fee is FeeTier {\n\treturn typeof fee === \"string\" && FEE_TIERS.includes(fee as FeeTier);\n}\n\n/**\n * Minimum relay fee: 1 uSTX per byte of the serialized transaction. The fee\n * field is fixed-width (8 bytes), so the size — and therefore this floor — is\n * stable regardless of the fee value later set on the spending condition.\n */\nexport function minimumFee(transaction: StacksTransaction): bigint {\n\treturn BigInt(serializeTransaction(transaction).length);\n}\n\n/** Outcome of {@link resolveFee}: the amount and which tier produced it. */\nexport type ResolvedFee = {\n\tfee: bigint;\n\t/**\n\t * Tier the amount came from. `'min'` when the estimator had no estimate\n\t * and the relay floor was used instead. Absent when the caller passed an\n\t * exact amount.\n\t */\n\ttier?: FeeTier;\n};\n\n/**\n * True when the node answered `POST /v2/fees/transaction` with 400\n * `NoEstimateAvailable`: it is healthy but has no fee history for this\n * payload (fresh devnet, quiet chain). Every other failure means the\n * estimate was never obtained and must surface to the caller.\n */\nexport function isNoEstimateAvailable(error: unknown): boolean {\n\treturn (\n\t\terror instanceof HttpRequestError &&\n\t\terror.status === 400 &&\n\t\t(error.details?.includes(\"NoEstimateAvailable\") ?? false)\n\t);\n}\n\n/**\n * Resolve a fee param to a concrete amount. Numeric input passes through.\n * Tiers `'low' | 'mid' | 'high'` index the node's estimations (nearest\n * available when fewer than three are returned); `'min'` resolves to\n * {@link minimumFee}, which needs no network round-trip.\n *\n * The relay floor is the fallback ONLY when the node reports\n * `NoEstimateAvailable` or returns no estimations. A transport timeout, 5xx,\n * or auth failure rethrows: silently under-paying because the node was\n * unreachable would strand the transaction in the mempool.\n */\nexport async function resolveFee(\n\tclient: Client,\n\ttransaction: StacksTransaction,\n\tfee: FeeParam | undefined,\n): Promise<ResolvedFee> {\n\tif (fee !== undefined && !isFeeTier(fee)) return { fee: intToBigInt(fee) };\n\n\tconst tier = fee ?? \"mid\";\n\tif (tier === \"min\") return { fee: minimumFee(transaction), tier };\n\n\tlet estimates: Awaited<ReturnType<typeof estimateFee>>;\n\ttry {\n\t\testimates = await estimateFee(client, { transaction });\n\t} catch (error) {\n\t\tif (!isNoEstimateAvailable(error)) throw error;\n\t\treturn { fee: minimumFee(transaction), tier: \"min\" };\n\t}\n\tconst pick = estimates[TIER_INDEX[tier]] ?? estimates[estimates.length - 1];\n\tif (pick) return { fee: BigInt(pick.fee), tier };\n\treturn { fee: minimumFee(transaction), tier: \"min\" };\n}\n\n/** Set the resolved fee on an unsigned transaction's origin spending condition. */\nexport function setUnsignedFee(\n\ttransaction: StacksTransaction,\n\tfee: bigint,\n): void {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t(transaction.auth.spendingCondition as any).fee = fee;\n\t// In-place mutation: invalidate the memoized serialization (resolveFee may\n\t// have already serialized this object via minimumFee/estimateFee).\n\tclearTxCache(transaction);\n}\n\n/** Throw when a named fee tier is used with a provider (wallet) account. */\nexport function assertNoFeeTierForProvider(fee: FeeParam | undefined): void {\n\tif (isFeeTier(fee)) {\n\t\tthrow new Error(\n\t\t\t`Fee tier '${fee}' requires local signing; provider (wallet) accounts set their own fee`,\n\t\t);\n\t}\n}\n\n/** Resolve `args`, accepting the deprecated `functionArgs` alias. */\nexport function resolveCallArgs(params: {\n\targs?: ClarityValue[];\n\tfunctionArgs?: ClarityValue[];\n}): ClarityValue[] {\n\tconst { args, functionArgs } = params;\n\tif (args !== undefined && functionArgs !== undefined) {\n\t\tthrow new Error(\n\t\t\t\"Pass args or functionArgs, not both (functionArgs is deprecated)\",\n\t\t);\n\t}\n\treturn args ?? functionArgs ?? [];\n}\n",
|
|
59
|
+
"import type { ClarityValue } from \"../../clarity/types.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport { buildContractCall } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport {\n\tbroadcastWithNonceReset,\n\treleaseNonce,\n\tresolveNonce,\n} from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveCallArgs,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type CallContractParams = {\n\tcontract: string; // \"address.name\"\n\tfunctionName: string;\n\targs?: ClarityValue[];\n\t/** @deprecated Use `args` (same as readContract). */\n\tfunctionArgs?: ClarityValue[];\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\n/** Build, sign, and broadcast a contract call */\nexport async function callContract(\n\tclient: Client,\n\tparams: CallContractParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\t// Validate the contract id up front so both the provider and local paths\n\t// reject malformed input instead of forwarding it to the wallet.\n\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\tconst args = resolveCallArgs(params);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_callContract\", {\n\t\t\tcontract: params.contract,\n\t\t\tfunctionName: params.functionName,\n\t\t\tfunctionArgs: args,\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst managed =\n\t\tparams.nonce === undefined && client.nonceManager !== undefined;\n\tconst nonce = params.nonce ?? (await resolveNonce(client, account.address));\n\n\ttry {\n\t\tconst needsFeeResolution =\n\t\t\tparams.fee === undefined || isFeeTier(params.fee);\n\n\t\tconst unsigned = buildContractCall({\n\t\t\tcontractAddress,\n\t\t\tcontractName,\n\t\t\tfunctionName: params.functionName,\n\t\t\tfunctionArgs: args,\n\t\t\tfee: needsFeeResolution ? 0n : (params.fee as IntegerType),\n\t\t\tnonce,\n\t\t\tpublicKey: account.publicKey,\n\t\t\tchain: client.chain,\n\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\tpostConditions: params.postConditions,\n\t\t});\n\n\t\tif (needsFeeResolution) {\n\t\t\tconst { fee } = await resolveFee(client, unsigned, params.fee);\n\t\t\tsetUnsignedFee(unsigned, fee);\n\t\t}\n\n\t\tconst signed = await signTransactionWithAccount(unsigned, account);\n\t\treturn await broadcastWithNonceReset(client, {\n\t\t\ttransaction: signed,\n\t\t\taddress: account.address,\n\t\t});\n\t} catch (error) {\n\t\t// Anything that fails between reserving the nonce and a 2xx broadcast\n\t\t// (fee estimate, signing, FeeTooLow, transport) never reached the\n\t\t// mempool: hand the nonce back so the next send does not skip it.\n\t\tif (managed) await releaseNonce(client, account.address, nonce as bigint);\n\t\tthrow error;\n\t}\n}\n",
|
|
60
60
|
"import type { Client } from \"../../clients/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport { buildContractDeploy } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport type { ClarityVersion } from \"../../transactions/types.ts\";\nimport { isClarityName } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport {\n\tbroadcastWithNonceReset,\n\treleaseNonce,\n\tresolveNonce,\n} from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type DeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\n/** Build, sign, and broadcast a contract deploy */\nexport async function deployContract(\n\tclient: Client,\n\tparams: DeployContractParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\tif (!isClarityName(params.contractName))\n\t\tthrow new Error(`Invalid contract name: ${params.contractName}`);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_deployContract\", {\n\t\t\tcontractName: params.contractName,\n\t\t\tcodeBody: params.codeBody,\n\t\t\tclarityVersion: params.clarityVersion,\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst managed =\n\t\tparams.nonce === undefined && client.nonceManager !== undefined;\n\tconst nonce = params.nonce ?? (await resolveNonce(client, account.address));\n\n\ttry {\n\t\tconst needsFeeResolution =\n\t\t\tparams.fee === undefined || isFeeTier(params.fee);\n\n\t\tconst unsigned = buildContractDeploy({\n\t\t\tcontractName: params.contractName,\n\t\t\tcodeBody: params.codeBody,\n\t\t\tclarityVersion: params.clarityVersion,\n\t\t\tfee: needsFeeResolution ? 0n : (params.fee as IntegerType),\n\t\t\tnonce,\n\t\t\tpublicKey: account.publicKey,\n\t\t\tchain: client.chain,\n\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\tpostConditions: params.postConditions,\n\t\t});\n\n\t\tif (needsFeeResolution) {\n\t\t\tconst { fee } = await resolveFee(client, unsigned, params.fee);\n\t\t\tsetUnsignedFee(unsigned, fee);\n\t\t}\n\n\t\tconst signed = await signTransactionWithAccount(unsigned, account);\n\t\treturn await broadcastWithNonceReset(client, {\n\t\t\ttransaction: signed,\n\t\t\taddress: account.address,\n\t\t});\n\t} catch (error) {\n\t\t// Anything that fails between reserving the nonce and a 2xx broadcast\n\t\t// (fee estimate, signing, FeeTooLow, transport) never reached the\n\t\t// mempool: hand the nonce back so the next send does not skip it.\n\t\tif (managed) await releaseNonce(client, account.address, nonce as bigint);\n\t\tthrow error;\n\t}\n}\n",
|
|
61
61
|
"import { sha256 } from \"@noble/hashes/sha2.js\";\nimport { serializeCVBytes } from \"../../clarity/serialize.ts\";\nimport { structuredDataHash } from \"../../clarity/structuredData.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport { Cl } from \"../../clarity/values.ts\";\nimport type { Client } from \"../../clients/types.ts\";\nimport { bytesToHex } from \"../../utils/encoding.ts\";\nimport { isProviderAccount } from \"./utils.ts\";\n\nexport type SignMessageParams = {\n\tmessage: string | ClarityValue;\n\tdomain?: {\n\t\tname: string;\n\t\tversion: string;\n\t\tchainId: number;\n\t};\n};\n\n/** Sign a message. With `domain`, hashes per SIP-018; without, hashes the serialized CV. */\nexport async function signMessage(\n\tclient: Client,\n\tparams: SignMessageParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tconst method = params.domain\n\t\t\t? \"stx_signStructuredMessage\"\n\t\t\t: \"stx_signMessage\";\n\t\tconst result = await account.provider.request(method, {\n\t\t\tmessage: params.message,\n\t\t\tdomain: params.domain,\n\t\t});\n\t\treturn result.signature;\n\t}\n\n\tconst cv =\n\t\ttypeof params.message === \"string\"\n\t\t\t? Cl.stringAscii(params.message)\n\t\t\t: params.message;\n\n\tconst hash = params.domain\n\t\t? structuredDataHash({\n\t\t\t\tmessage: cv,\n\t\t\t\tdomain: Cl.tuple({\n\t\t\t\t\tname: Cl.stringAscii(params.domain.name),\n\t\t\t\t\tversion: Cl.stringAscii(params.domain.version),\n\t\t\t\t\t\"chain-id\": Cl.uint(params.domain.chainId),\n\t\t\t\t}),\n\t\t\t})\n\t\t: sha256(serializeCVBytes(cv));\n\n\tconst sigBytes = await account.sign(hash);\n\treturn bytesToHex(sigBytes);\n}\n",
|
|
62
62
|
"import { sha256 } from \"@noble/hashes/sha2.js\";\nimport type { LocalAccount } from \"../accounts/types.ts\";\nimport { bytesToHex, concatBytes } from \"../utils/encoding.ts\";\nimport { serializeCVBytes } from \"./serialize.ts\";\nimport type { ClarityValue, TupleCV } from \"./types.ts\";\n\n/** asciiToBytes(\"SIP018\") */\nexport const SIP018_PREFIX: Uint8Array = new Uint8Array([\n\t0x53, 0x49, 0x50, 0x30, 0x31, 0x38,\n]);\n\n/** sha256(serialize(cv)) — inner hash used by SIP-018. */\nexport function hashStructuredData(structuredData: ClarityValue): Uint8Array {\n\treturn sha256(serializeCVBytes(structuredData));\n}\n\nfunction isDomain(value: ClarityValue): value is TupleCV {\n\tif (value.type !== \"tuple\") return false;\n\tconst { name, version, \"chain-id\": chainId } = value.value;\n\treturn (\n\t\tname?.type === \"ascii\" &&\n\t\tversion?.type === \"ascii\" &&\n\t\tchainId?.type === \"uint\"\n\t);\n}\n\n/**\n * SIP-018 encoding: `\"SIP018\" || sha256(serialize(domain)) || sha256(serialize(message))`.\n * The signature is over `sha256` of this buffer.\n */\nexport function encodeStructuredData(opts: {\n\tmessage: ClarityValue;\n\tdomain: ClarityValue;\n}): Uint8Array {\n\tif (!isDomain(opts.domain)) {\n\t\tthrow new Error(\n\t\t\t\"domain must be a tuple { name: ascii, version: ascii, chain-id: uint }\",\n\t\t);\n\t}\n\treturn concatBytes(\n\t\tSIP018_PREFIX,\n\t\thashStructuredData(opts.domain),\n\t\thashStructuredData(opts.message),\n\t);\n}\n\n/** SIP-018 message hash: sha256(encodeStructuredData(...)). */\nexport function structuredDataHash(opts: {\n\tmessage: ClarityValue;\n\tdomain: ClarityValue;\n}): Uint8Array {\n\treturn sha256(encodeStructuredData(opts));\n}\n\n/**\n * Sign a SIP-018 structured message. Returns a 65-byte recoverable signature\n * in RSV order (recovery byte last) — the layout contracts expect.\n */\nexport async function signStructuredData(\n\taccount: LocalAccount,\n\topts: { message: ClarityValue; domain: ClarityValue },\n): Promise<string> {\n\tconst vrs = await account.sign(structuredDataHash(opts));\n\tif (vrs.length !== 65) {\n\t\tthrow new Error(\n\t\t\t`Expected 65-byte recoverable signature, got ${vrs.length}`,\n\t\t);\n\t}\n\treturn bytesToHex(concatBytes(vrs.slice(1), vrs.slice(0, 1)));\n}\n",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"import type { Client } from \"../../clients/types.ts\";\nimport { createSingleSigSpendingCondition } from \"../../transactions/authorization.ts\";\nimport { signSponsorWithAccount } from \"../../transactions/signer.ts\";\nimport {\n\tAuthType,\n\ttype SponsoredAuthorization,\n\ttype StacksTransaction,\n} from \"../../transactions/types.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport { intToBigInt } from \"../../utils/encoding.ts\";\nimport { releaseNonce, resolveNonce } from \"./nonceManager.ts\";\nimport { type FeeParam, isProviderAccount, resolveFee } from \"./utils.ts\";\n\nexport type SponsorTransactionParams = {\n\ttransaction: StacksTransaction;\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n};\n\n/** Sponsor a transaction: set sponsor spending condition, sign as sponsor */\nexport async function sponsorTransaction(\n\tclient: Client,\n\tparams: SponsorTransactionParams,\n): Promise<StacksTransaction> {\n\tconst { transaction } = params;\n\n\tif (transaction.auth.authType !== AuthType.Sponsored) {\n\t\tthrow new Error(\"Transaction must have sponsored authorization\");\n\t}\n\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\tif (isProviderAccount(account)) {\n\t\tthrow new Error(\"Provider accounts cannot sponsor transactions\");\n\t}\n\n\t// Resolve sponsor nonce\n\tconst managed = params.nonce == null && client.nonceManager !== undefined;\n\tconst nonce =\n\t\tparams.nonce != null\n\t\t\t? intToBigInt(params.nonce)\n\t\t\t: await resolveNonce(client, account.address);\n\n\t// Resolve sponsor fee. `NoEstimateAvailable` falls back to the minimum\n\t// relay fee instead of 0 (a 0-fee tx would be rejected at broadcast);\n\t// any other estimator failure surfaces and hands the nonce back.\n\tlet fee: bigint;\n\ttry {\n\t\t({ fee } = await resolveFee(client, transaction, params.fee));\n\t} catch (error) {\n\t\tif (managed) await releaseNonce(client, account.address, nonce);\n\t\tthrow error;\n\t}\n\n\t// Create sponsor spending condition\n\tconst sponsorCondition = createSingleSigSpendingCondition(\n\t\taccount.publicKey,\n\t\tnonce,\n\t\tfee,\n\t);\n\n\t// Set sponsor spending condition on the tx\n\tconst auth = transaction.auth as SponsoredAuthorization;\n\tconst sponsored: StacksTransaction = {\n\t\t...transaction,\n\t\tauth: {\n\t\t\t...auth,\n\t\t\tsponsorSpendingCondition: sponsorCondition,\n\t\t},\n\t};\n\n\t// Sign as sponsor\n\treturn signSponsorWithAccount(sponsored, account);\n}\n",
|
|
65
65
|
"import type { Client } from \"../../clients/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport { buildTokenTransfer } from \"../../transactions/build.ts\";\nimport { signTransactionWithAccount } from \"../../transactions/signer.ts\";\nimport { validateStacksAddress } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport {\n\tbroadcastWithNonceReset,\n\treleaseNonce,\n\tresolveNonce,\n} from \"./nonceManager.ts\";\nimport {\n\ttype FeeParam,\n\tassertNoFeeTierForProvider,\n\tisFeeTier,\n\tisProviderAccount,\n\tresolveFee,\n\tsetUnsignedFee,\n} from \"./utils.ts\";\n\nexport type TransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: FeeParam;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\n/** Build, sign, and broadcast an STX transfer */\nexport async function transferStx(\n\tclient: Client,\n\tparams: TransferStxParams,\n): Promise<string> {\n\tconst account = client.account;\n\tif (!account) throw new Error(\"Account required\");\n\n\tif (!validateStacksAddress(params.to))\n\t\tthrow new Error(`Invalid recipient address: ${params.to}`);\n\n\t// Provider: delegate to wallet\n\tif (isProviderAccount(account)) {\n\t\tassertNoFeeTierForProvider(params.fee);\n\t\tconst result = await account.provider.request(\"stx_transferStx\", {\n\t\t\trecipient: params.to,\n\t\t\tamount: String(params.amount),\n\t\t\tmemo: params.memo,\n\t\t});\n\t\treturn result.txid;\n\t}\n\n\t// Local/Custom: build → sign → broadcast\n\tconst managed =\n\t\tparams.nonce === undefined && client.nonceManager !== undefined;\n\tconst nonce = params.nonce ?? (await resolveNonce(client, account.address));\n\n\ttry {\n\t\tconst needsFeeResolution =\n\t\t\tparams.fee === undefined || isFeeTier(params.fee);\n\n\t\tconst unsigned = buildTokenTransfer({\n\t\t\trecipient: params.to,\n\t\t\tamount: params.amount,\n\t\t\tmemo: params.memo,\n\t\t\tfee: needsFeeResolution ? 0n : (params.fee as IntegerType),\n\t\t\tnonce,\n\t\t\tpublicKey: account.publicKey,\n\t\t\tchain: client.chain,\n\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\tpostConditions: params.postConditions,\n\t\t});\n\n\t\tif (needsFeeResolution) {\n\t\t\tconst { fee } = await resolveFee(client, unsigned, params.fee);\n\t\t\tsetUnsignedFee(unsigned, fee);\n\t\t}\n\n\t\tconst signed = await signTransactionWithAccount(unsigned, account);\n\t\treturn await broadcastWithNonceReset(client, {\n\t\t\ttransaction: signed,\n\t\t\taddress: account.address,\n\t\t});\n\t} catch (error) {\n\t\t// Anything that fails between reserving the nonce and a 2xx broadcast\n\t\t// (fee estimate, signing, FeeTooLow, transport) never reached the\n\t\t// mempool: hand the nonce back so the next send does not skip it.\n\t\tif (managed) await releaseNonce(client, account.address, nonce as bigint);\n\t\tthrow error;\n\t}\n}\n",
|
|
66
66
|
"import {\n\ttype CallContractParams,\n\tcallContract,\n} from \"../../actions/wallet/callContract.ts\";\nimport {\n\ttype DeployContractParams,\n\tdeployContract,\n} from \"../../actions/wallet/deployContract.ts\";\nimport {\n\ttype SendTransactionParams,\n\ttype SendTransactionResult,\n\tsendTransaction,\n} from \"../../actions/wallet/sendTransaction.ts\";\nimport {\n\ttype SignMessageParams,\n\tsignMessage,\n} from \"../../actions/wallet/signMessage.ts\";\nimport {\n\ttype SignTransactionParams,\n\tsignTransactionAction,\n} from \"../../actions/wallet/signTransaction.ts\";\nimport {\n\ttype SponsorTransactionParams,\n\tsponsorTransaction,\n} from \"../../actions/wallet/sponsorTransaction.ts\";\nimport {\n\ttype TransferStxParams,\n\ttransferStx,\n} from \"../../actions/wallet/transferStx.ts\";\nimport type { StacksTransaction } from \"../../transactions/types.ts\";\nimport type { Client } from \"../types.ts\";\n\n/** Signing actions: send transactions, transfer STX, call/deploy contracts, sign messages. */\nexport type WalletActions = {\n\tsendTransaction: (\n\t\tparams: SendTransactionParams,\n\t) => Promise<SendTransactionResult>;\n\tsignTransaction: (\n\t\tparams: SignTransactionParams,\n\t) => Promise<StacksTransaction>;\n\ttransferStx: (params: TransferStxParams) => Promise<string>;\n\tcallContract: (params: CallContractParams) => Promise<string>;\n\tdeployContract: (params: DeployContractParams) => Promise<string>;\n\tsignMessage: (params: SignMessageParams) => Promise<string>;\n\tsponsorTransaction: (\n\t\tparams: SponsorTransactionParams,\n\t) => Promise<StacksTransaction>;\n};\n\n/** Decorator that binds {@link WalletActions} to a client instance. */\nexport function walletActions(client: Client): WalletActions {\n\treturn {\n\t\tsendTransaction: (params) => sendTransaction(client, params),\n\t\tsignTransaction: (params) => signTransactionAction(client, params),\n\t\ttransferStx: (params) => transferStx(client, params),\n\t\tcallContract: (params) => callContract(client, params),\n\t\tdeployContract: (params) => deployContract(client, params),\n\t\tsignMessage: (params) => signMessage(client, params),\n\t\tsponsorTransaction: (params) => sponsorTransaction(client, params),\n\t};\n}\n",
|
|
67
|
-
"import { createClient } from \"./createClient.ts\";\nimport { type WalletActions, walletActions } from \"./decorators/wallet.ts\";\nimport type { Account, Client, ClientConfig } from \"./types.ts\";\n\n/** Configuration for {@link createWalletClient} — requires an account for signing. */\nexport type WalletClientConfig = ClientConfig & {\n\taccount: Account;\n};\n\n/**\n * Create a client pre-extended with {@link WalletActions} for signing and broadcasting transactions.\n */\nexport function createWalletClient(\n\tconfig: WalletClientConfig,\n): Client<WalletActions> & WalletActions & { account: Account } {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\
|
|
68
|
-
"import { estimateFee } from \"../../actions/public/estimateFee.ts\";\nimport { getNonce } from \"../../actions/public/getNonce.ts\";\nimport {\n\ttype SendTransactionResult,\n\tsendTransaction,\n} from \"../../actions/wallet/sendTransaction.ts\";\nimport { setUnsignedFee } from \"../../actions/wallet/utils.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport {\n\tbuildContractCall,\n\tbuildContractDeploy,\n\tbuildTokenTransfer,\n} from \"../../transactions/build.ts\";\nimport {\n\tfinalizeMultiSig,\n\tmakeMultiSigAddress,\n} from \"../../transactions/multisig.ts\";\nimport type {\n\tClarityVersion,\n\tMultiSigHashMode,\n\tStacksTransaction,\n} from \"../../transactions/types.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { Client } from \"../types.ts\";\n\nexport type MultiSigTransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\nexport type MultiSigCallContractParams = {\n\tcontract: string;\n\tfunctionName: string;\n\tfunctionArgs?: ClarityValue[];\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\nexport type MultiSigDeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\nexport type MultiSigSendTransactionParams = {\n\ttransaction: StacksTransaction;\n\tattachment?: Uint8Array | string;\n};\n\n/** Multi-sig transaction actions: build unsigned transactions and broadcast with auto-finalization. */\nexport type MultiSigActions = {\n\ttransferStx: (\n\t\tparams: MultiSigTransferStxParams,\n\t) => Promise<StacksTransaction>;\n\tcallContract: (\n\t\tparams: MultiSigCallContractParams,\n\t) => Promise<StacksTransaction>;\n\tdeployContract: (\n\t\tparams: MultiSigDeployContractParams,\n\t) => Promise<StacksTransaction>;\n\tsendTransaction: (\n\t\tparams: MultiSigSendTransactionParams,\n\t) => Promise<SendTransactionResult>;\n};\n\n/** Decorator that binds {@link MultiSigActions} to a multi-sig client. */\nexport function multisigActions(client: Client): MultiSigActions {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tconst msConfig = (client as any)._multisigConfig as {\n\t\tsigners: string[];\n\t\trequiredSignatures: number;\n\t\thashMode?: MultiSigHashMode;\n\t};\n\n\tif (!msConfig) throw new Error(\"multisigActions requires a multi-sig client\");\n\n\tconst { signers, requiredSignatures, hashMode } = msConfig;\n\n\t/** Resolve nonce from the multi-sig address */\n\tasync function resolveNonce(nonce?: IntegerType): Promise<IntegerType> {\n\t\tif (nonce !== undefined) return nonce;\n\t\tconst address = makeMultiSigAddress(\n\t\t\tsigners,\n\t\t\trequiredSignatures,\n\t\t\tclient.chain,\n\t\t);\n\t\tif (client.nonceManager)\n\t\t\treturn client.nonceManager.consume({ client, address });\n\t\treturn getNonce(client, { address });\n\t}\n\n\treturn {\n\t\tasync transferStx(params) {\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildTokenTransfer({\n\t\t\t\trecipient: params.to,\n\t\t\t\tamount: params.amount,\n\t\t\t\tmemo: params.memo,\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\tsetUnsignedFee(unsigned, BigInt(mid.fee));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync callContract(params) {\n\t\t\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildContractCall({\n\t\t\t\tcontractAddress,\n\t\t\t\tcontractName,\n\t\t\t\tfunctionName: params.functionName,\n\t\t\t\tfunctionArgs: params
|
|
67
|
+
"import type { StacksChain } from \"../chains/types.ts\";\nimport { c32address, c32addressDecode } from \"../utils/c32.ts\";\nimport { bytesToHex, hexToBytes } from \"../utils/encoding.ts\";\nimport { hash160 } from \"../utils/hash.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport { type WalletActions, walletActions } from \"./decorators/wallet.ts\";\nimport type { Account, Client, ClientConfig } from \"./types.ts\";\n\n/** Configuration for {@link createWalletClient} — requires an account for signing. */\nexport type WalletClientConfig = ClientConfig & {\n\taccount: Account;\n};\n\n/**\n * Give an account derived from a local key the single-sig address for `chain`.\n *\n * `privateKeyToAccount` defaults to mainnet (`SP…`), but a node on testnet or\n * devnet checks nonces and signatures against the `ST…` address of the same\n * key. Provider accounts keep the wallet's address, and addresses that are not\n * this key's single-sig (multi-sig, contract) are left alone. Returns the same\n * object when nothing changes.\n */\nexport function alignAccountToChain(\n\taccount: Account,\n\tchain: StacksChain | undefined,\n): Account {\n\tif (!chain || account.type === \"provider\") return account;\n\ttry {\n\t\tconst [version, hash] = c32addressDecode(account.address);\n\t\tconst keyHash = bytesToHex(hash160(hexToBytes(account.publicKey)));\n\t\tif (hash !== keyHash) return account;\n\t\tconst target = chain.addressVersion.singleSig;\n\t\tif (version === target) return account;\n\t\treturn { ...account, address: c32address(target, hash) };\n\t} catch {\n\t\treturn account;\n\t}\n}\n\n/**\n * Create a client pre-extended with {@link WalletActions} for signing and broadcasting transactions.\n *\n * An account from a local key gets the address for the client's chain, so\n * `privateKeyToAccount(key)` works on testnet and devnet without\n * `addressVersion`. Provider accounts keep the wallet's address.\n */\nexport function createWalletClient(\n\tconfig: WalletClientConfig,\n): Client<WalletActions> & WalletActions & { account: Account } {\n\treturn createClient({\n\t\t...config,\n\t\taccount: alignAccountToChain(config.account, config.chain),\n\t\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t}).extend(walletActions) as any;\n}\n",
|
|
68
|
+
"import { estimateFee } from \"../../actions/public/estimateFee.ts\";\nimport { getNonce } from \"../../actions/public/getNonce.ts\";\nimport {\n\ttype SendTransactionResult,\n\tsendTransaction,\n} from \"../../actions/wallet/sendTransaction.ts\";\nimport { resolveCallArgs, setUnsignedFee } from \"../../actions/wallet/utils.ts\";\nimport type { ClarityValue } from \"../../clarity/types.ts\";\nimport type {\n\tPostConditionInput,\n\tPostConditionMode,\n} from \"../../postconditions/types.ts\";\nimport {\n\tbuildContractCall,\n\tbuildContractDeploy,\n\tbuildTokenTransfer,\n} from \"../../transactions/build.ts\";\nimport {\n\tfinalizeMultiSig,\n\tmakeMultiSigAddress,\n} from \"../../transactions/multisig.ts\";\nimport type {\n\tClarityVersion,\n\tMultiSigHashMode,\n\tStacksTransaction,\n} from \"../../transactions/types.ts\";\nimport { parseContractId } from \"../../utils/address.ts\";\nimport type { IntegerType } from \"../../utils/encoding.ts\";\nimport type { Client } from \"../types.ts\";\n\nexport type MultiSigTransferStxParams = {\n\tto: string;\n\tamount: IntegerType;\n\tmemo?: string;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\nexport type MultiSigCallContractParams = {\n\tcontract: string;\n\tfunctionName: string;\n\targs?: ClarityValue[];\n\t/** @deprecated Use `args` (same as readContract). */\n\tfunctionArgs?: ClarityValue[];\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\nexport type MultiSigDeployContractParams = {\n\tcontractName: string;\n\tcodeBody: string;\n\tclarityVersion?: ClarityVersion;\n\tfee?: IntegerType;\n\tnonce?: IntegerType;\n\tpostConditionMode?: PostConditionMode;\n\tpostConditions?: PostConditionInput[];\n};\n\nexport type MultiSigSendTransactionParams = {\n\ttransaction: StacksTransaction;\n\tattachment?: Uint8Array | string;\n};\n\n/** Multi-sig transaction actions: build unsigned transactions and broadcast with auto-finalization. */\nexport type MultiSigActions = {\n\ttransferStx: (\n\t\tparams: MultiSigTransferStxParams,\n\t) => Promise<StacksTransaction>;\n\tcallContract: (\n\t\tparams: MultiSigCallContractParams,\n\t) => Promise<StacksTransaction>;\n\tdeployContract: (\n\t\tparams: MultiSigDeployContractParams,\n\t) => Promise<StacksTransaction>;\n\tsendTransaction: (\n\t\tparams: MultiSigSendTransactionParams,\n\t) => Promise<SendTransactionResult>;\n};\n\n/** Decorator that binds {@link MultiSigActions} to a multi-sig client. */\nexport function multisigActions(client: Client): MultiSigActions {\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\tconst msConfig = (client as any)._multisigConfig as {\n\t\tsigners: string[];\n\t\trequiredSignatures: number;\n\t\thashMode?: MultiSigHashMode;\n\t};\n\n\tif (!msConfig) throw new Error(\"multisigActions requires a multi-sig client\");\n\n\tconst { signers, requiredSignatures, hashMode } = msConfig;\n\n\t/** Resolve nonce from the multi-sig address */\n\tasync function resolveNonce(nonce?: IntegerType): Promise<IntegerType> {\n\t\tif (nonce !== undefined) return nonce;\n\t\tconst address = makeMultiSigAddress(\n\t\t\tsigners,\n\t\t\trequiredSignatures,\n\t\t\tclient.chain,\n\t\t);\n\t\tif (client.nonceManager)\n\t\t\treturn client.nonceManager.consume({ client, address });\n\t\treturn getNonce(client, { address });\n\t}\n\n\treturn {\n\t\tasync transferStx(params) {\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildTokenTransfer({\n\t\t\t\trecipient: params.to,\n\t\t\t\tamount: params.amount,\n\t\t\t\tmemo: params.memo,\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\tsetUnsignedFee(unsigned, BigInt(mid.fee));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync callContract(params) {\n\t\t\tconst [contractAddress, contractName] = parseContractId(params.contract);\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildContractCall({\n\t\t\t\tcontractAddress,\n\t\t\t\tcontractName,\n\t\t\t\tfunctionName: params.functionName,\n\t\t\t\tfunctionArgs: resolveCallArgs(params),\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\tsetUnsignedFee(unsigned, BigInt(mid.fee));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync deployContract(params) {\n\t\t\tconst nonce = await resolveNonce(params.nonce);\n\n\t\t\tconst unsigned = buildContractDeploy({\n\t\t\t\tcontractName: params.contractName,\n\t\t\t\tcodeBody: params.codeBody,\n\t\t\t\tclarityVersion: params.clarityVersion,\n\t\t\t\tfee: params.fee ?? 0n,\n\t\t\t\tnonce,\n\t\t\t\tpublicKeys: signers,\n\t\t\t\tsignaturesRequired: requiredSignatures,\n\t\t\t\thashMode,\n\t\t\t\tchain: client.chain,\n\t\t\t\tpostConditionMode: params.postConditionMode,\n\t\t\t\tpostConditions: params.postConditions,\n\t\t\t});\n\n\t\t\tif (params.fee === undefined) {\n\t\t\t\tconst estimates = await estimateFee(client, { transaction: unsigned });\n\t\t\t\tconst mid = estimates[1] ?? estimates[0];\n\t\t\t\tif (mid) {\n\t\t\t\t\tsetUnsignedFee(unsigned, BigInt(mid.fee));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unsigned;\n\t\t},\n\n\t\tasync sendTransaction(params) {\n\t\t\t// Auto-finalize before broadcast\n\t\t\tconst finalized = finalizeMultiSig(params.transaction, signers);\n\t\t\treturn sendTransaction(client, {\n\t\t\t\ttransaction: finalized,\n\t\t\t\tattachment: params.attachment,\n\t\t\t});\n\t\t},\n\t};\n}\n",
|
|
69
69
|
"import type { MultiSigHashMode } from \"../transactions/types.ts\";\nimport { createClient } from \"./createClient.ts\";\nimport {\n\ttype MultiSigActions,\n\tmultisigActions,\n} from \"./decorators/multisig.ts\";\nimport type { Client, ClientConfig } from \"./types.ts\";\n\n/** Configuration for {@link createMultiSigClient} — requires signer public keys and threshold. */\nexport type MultiSigClientConfig = Omit<ClientConfig, \"account\"> & {\n\tsigners: string[];\n\trequiredSignatures: number;\n\thashMode?: MultiSigHashMode;\n};\n\n/** A client pre-extended with {@link MultiSigActions} for m-of-n signing flows. */\nexport type MultiSigClient = Client<MultiSigActions> & MultiSigActions;\n\n/**\n * Create a client for multi-sig transaction flows.\n * Builds unsigned transactions that can be signed by each party then broadcast.\n */\nexport function createMultiSigClient(\n\tconfig: MultiSigClientConfig,\n): MultiSigClient {\n\tconst client = createClient(config);\n\n\t// Attach multi-sig config for the decorator to read\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\t(client as any)._multisigConfig = {\n\t\tsigners: config.signers,\n\t\trequiredSignatures: config.requiredSignatures,\n\t\thashMode: config.hashMode,\n\t};\n\n\t// biome-ignore lint/suspicious/noExplicitAny: interop boundary or dynamic-shape value where typing adds friction without runtime safety\n\treturn client.extend(multisigActions) as any;\n}\n",
|
|
70
70
|
"import type { NonceStore } from \"./nonceManager.ts\";\n\n/**\n * Persisted {@link NonceStore} adapters for multi-process / multi-builder\n * deployments (the smart-wallet-as-a-service case).\n *\n * The in-memory {@link memoryStore} is correct only within one process: two\n * workers sharing a signing key both read the same confirmed floor and collide.\n * These adapters move the atomic reserve into a shared datastore — Redis `INCR`\n * inside an `EVAL`, or a single Postgres upsert under a row lock — so the store\n * itself becomes the cross-process lock and the durable source of truth.\n *\n * Both are dependency-injected: pass your own `Bun.redis` / `Bun.sql` client.\n * No global `Bun` reference, so importing this module is runtime-agnostic.\n */\n\n/** Minimal structural shape of a `Bun.redis` client (the `send` escape hatch). */\nexport type RedisLike = {\n\tsend(command: string, args: string[]): Promise<unknown>;\n};\n\nexport type RedisStoreParams = {\n\tredis: RedisLike;\n\t/** Key prefix for stored nonce counters. Default `\"stacks:nonce:\"`. */\n\tprefix?: string;\n};\n\n// Warm path: counter exists → atomically hand out the current value and bump.\n// Returns the nonce (bulk string) or `false` (RESP nil) when the key is unset.\nconst TAKE_IF_PRESENT = `local v = redis.call('GET', KEYS[1])\nif v == false then return false end\nredis.call('INCR', KEYS[1])\nreturn v`;\n\n// Cold path: seed from the confirmed floor if still unset, then hand out and\n// bump. Atomic, so two racing cold reservers can never return the same nonce.\nconst SEED_OR_TAKE = `local v = redis.call('GET', KEYS[1])\nif v == false then redis.call('SET', KEYS[1], ARGV[1]); v = ARGV[1] end\nredis.call('INCR', KEYS[1])\nreturn v`;\n\n// Release path: roll back one step only if the counter still sits right\n// after the released nonce (ARGV[1] = nonce + 1, ARGV[2] = nonce). String\n// compare keeps bigint nonces exact without Lua number conversion.\nconst RELEASE_IF_LATEST = `local v = redis.call('GET', KEYS[1])\nif v ~= false and v == ARGV[1] then redis.call('SET', KEYS[1], ARGV[2]) end\nreturn v`;\n\n/**\n * Redis-backed nonce store. The atomic reserve lives in a Lua `EVAL`, so it is\n * safe across processes sharing one Redis. The confirmed floor (`getFloor`) is\n * read only once per key, on cold start.\n */\nexport function redisStore(params: RedisStoreParams): NonceStore {\n\tconst { redis } = params;\n\tconst prefix = params.prefix ?? \"stacks:nonce:\";\n\n\treturn {\n\t\tasync reserve(key, getFloor) {\n\t\t\tconst k = prefix + key;\n\t\t\tconst present = await redis.send(\"EVAL\", [TAKE_IF_PRESENT, \"1\", k]);\n\t\t\tif (present != null) return BigInt(present as string | number);\n\n\t\t\tconst floor = await getFloor();\n\t\t\tconst seeded = await redis.send(\"EVAL\", [\n\t\t\t\tSEED_OR_TAKE,\n\t\t\t\t\"1\",\n\t\t\t\tk,\n\t\t\t\tfloor.toString(),\n\t\t\t]);\n\t\t\treturn BigInt(seeded as string | number);\n\t\t},\n\t\tasync reset(key) {\n\t\t\tawait redis.send(\"DEL\", [prefix + key]);\n\t\t},\n\t\tasync release(key, nonce) {\n\t\t\tawait redis.send(\"EVAL\", [\n\t\t\t\tRELEASE_IF_LATEST,\n\t\t\t\t\"1\",\n\t\t\t\tprefix + key,\n\t\t\t\t(nonce + 1n).toString(),\n\t\t\t\tnonce.toString(),\n\t\t\t]);\n\t\t},\n\t\tasync peek(key) {\n\t\t\tconst v = await redis.send(\"GET\", [prefix + key]);\n\t\t\treturn v == null ? undefined : BigInt(v as string | number);\n\t\t},\n\t};\n}\n\n/** Minimal structural shape of a `Bun.sql` tagged-template client. */\nexport type SqlLike = (\n\tstrings: TemplateStringsArray,\n\t...values: unknown[]\n) => Promise<Array<Record<string, unknown>>>;\n\nexport type PostgresStoreParams = {\n\tsql: SqlLike;\n\t/**\n\t * Run `CREATE TABLE IF NOT EXISTS stacks_nonce_state` lazily on first use.\n\t * Default `true`. Set `false` if you manage the schema via migrations.\n\t */\n\tensureTable?: boolean;\n};\n\n/**\n * Postgres-backed nonce store. Each reserve is a single atomic statement under\n * a row lock, so concurrent reservers on the same key serialize and never\n * collide across processes. State is durable — survives restarts.\n *\n * Uses a fixed table `stacks_nonce_state (key text primary key, next numeric)`.\n */\nexport function postgresStore(params: PostgresStoreParams): NonceStore {\n\tconst { sql } = params;\n\tconst shouldEnsure = params.ensureTable ?? true;\n\tlet ensured = false;\n\n\tasync function ensureTable() {\n\t\tif (!shouldEnsure || ensured) return;\n\t\tawait sql`CREATE TABLE IF NOT EXISTS stacks_nonce_state (key text PRIMARY KEY, next numeric NOT NULL)`;\n\t\tensured = true;\n\t}\n\n\treturn {\n\t\tasync reserve(key, getFloor) {\n\t\t\tawait ensureTable();\n\n\t\t\t// Warm path: bump and return the pre-increment value atomically.\n\t\t\tconst updated =\n\t\t\t\tawait sql`UPDATE stacks_nonce_state SET next = next + 1 WHERE key = ${key} RETURNING next - 1 AS nonce`;\n\t\t\tconst warm = updated[0];\n\t\t\tif (warm) return BigInt(String(warm.nonce));\n\n\t\t\t// Cold path: seed from the confirmed floor. ON CONFLICT keeps the seed\n\t\t\t// atomic against a racing reserver.\n\t\t\tconst floor = await getFloor();\n\t\t\tconst seeded =\n\t\t\t\tawait sql`INSERT INTO stacks_nonce_state (key, next) VALUES (${key}, ${(floor + 1n).toString()}) ON CONFLICT (key) DO UPDATE SET next = stacks_nonce_state.next + 1 RETURNING next - 1 AS nonce`;\n\t\t\tconst cold = seeded[0];\n\t\t\tif (!cold) throw new Error(\"postgresStore: insert returned no row\");\n\t\t\treturn BigInt(String(cold.nonce));\n\t\t},\n\t\tasync reset(key) {\n\t\t\tawait ensureTable();\n\t\t\tawait sql`DELETE FROM stacks_nonce_state WHERE key = ${key}`;\n\t\t},\n\t\tasync release(key, nonce) {\n\t\t\tawait ensureTable();\n\t\t\t// Single conditional UPDATE: atomic under the row lock, no-op unless\n\t\t\t// the released nonce is the latest one issued.\n\t\t\tawait sql`UPDATE stacks_nonce_state SET next = ${nonce.toString()} WHERE key = ${key} AND next = ${(nonce + 1n).toString()}`;\n\t\t},\n\t\tasync peek(key) {\n\t\t\tawait ensureTable();\n\t\t\tconst rows =\n\t\t\t\tawait sql`SELECT next FROM stacks_nonce_state WHERE key = ${key}`;\n\t\t\tconst row = rows[0];\n\t\t\treturn row ? BigInt(String(row.next)) : undefined;\n\t\t},\n\t};\n}\n",
|
|
71
71
|
"import type { Client } from \"../../clients/types.ts\";\nimport { getNonce } from \"../public/getNonce.ts\";\nimport {\n\tIndexSourceConfigError,\n\tindexNotFound,\n\tindexRequestFn,\n} from \"../public/txSources.ts\";\nimport type { NonceManagerSource } from \"./nonceManager.ts\";\n\n/**\n * Mempool-aware {@link NonceManagerSource}s.\n *\n * The default {@link jsonRpcSource} reads only the confirmed nonce, so a tx\n * sitting in the mempool is invisible — broadcasting many quickly forces manual\n * tracking. These sources fold pending (mempool) txs into the next-nonce\n * computation. The gap-filling core is generic; where the pending set comes from\n * is pluggable, so you are never locked to any one provider:\n *\n * - {@link mempoolAwareSource} — bring your own `getPending`.\n * - {@link indexSource}: prebuilt over a Secondlayer instance's `/v1/index/mempool`.\n * - {@link hiroNonceSource} — prebuilt over Hiro's `/extended` nonces endpoint.\n */\n\ntype FetchImpl = typeof globalThis.fetch;\n\nfunction resolveFetch(fetchImpl?: FetchImpl): FetchImpl {\n\tconst f = fetchImpl ?? globalThis.fetch;\n\tif (!f)\n\t\tthrow new Error(\"No fetch implementation available; pass `fetchImpl`\");\n\treturn f;\n}\n\n/**\n * The next free nonce ≥ `confirmed` not already taken by a pending tx.\n *\n * Unlike Hiro's `possible_next_nonce` (which is `max(pending) + 1` and strands\n * higher txs when a lower nonce is missing), this FILLS gaps: it returns the\n * lowest unused slot, so a dropped-tx hole is reused instead of stranding the\n * chain.\n */\nexport function nextFreeNonce(confirmed: bigint, pending: bigint[]): bigint {\n\tconst taken = new Set(\n\t\tpending.filter((n) => n >= confirmed).map((n) => n.toString()),\n\t);\n\tlet n = confirmed;\n\twhile (taken.has(n.toString())) n += 1n;\n\treturn n;\n}\n\nexport type MempoolAwareSourceParams = {\n\t/** Pending (mempool) nonces for an address. */\n\tgetPending: (args: {\n\t\tclient: Client;\n\t\taddress: string;\n\t}) => Promise<bigint[]>;\n\t/**\n\t * Confirmed-nonce floor. Defaults to the node's `/v2/accounts` read — the\n\t * user's own node via the client transport, no provider dependency.\n\t */\n\tgetConfirmed?: (args: { client: Client; address: string }) => Promise<bigint>;\n};\n\n/**\n * Build a gap-filling, mempool-aware source from any `getPending`. The confirmed\n * floor defaults to the node read; if `getPending` throws, the source degrades\n * to confirmed-only rather than blocking a broadcast. A misconfigured pending\n * feed ({@link IndexSourceConfigError}) is rethrown: it would fail on every\n * read, and degrading silently would hide that the mempool is never consulted.\n */\nexport function mempoolAwareSource(\n\tparams: MempoolAwareSourceParams,\n): NonceManagerSource {\n\tconst getConfirmed =\n\t\tparams.getConfirmed ??\n\t\t(({ client, address }) => getNonce(client, { address }));\n\n\treturn {\n\t\tasync get({ client, address }) {\n\t\t\tconst confirmed = await getConfirmed({ client, address });\n\t\t\tlet pending: bigint[] = [];\n\t\t\ttry {\n\t\t\t\tpending = await params.getPending({ client, address });\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof IndexSourceConfigError) throw error;\n\t\t\t\t// Source unavailable: fall back to the confirmed floor. The local\n\t\t\t\t// increment in the manager still prevents same-process collisions.\n\t\t\t\treturn confirmed;\n\t\t\t}\n\t\t\treturn nextFreeNonce(confirmed, pending);\n\t\t},\n\t};\n}\n\nexport type IndexSourceParams = {\n\t/**\n\t * URL of your Secondlayer instance. Without it the client's transport\n\t * URL is assumed to be the instance: a transport on a Hiro host throws\n\t * up front, and a host that answers `/v1/index` with a non-JSON 404\n\t * (a bare stacks-node) throws on the first read. Neither is degraded\n\t * to the confirmed floor. Pass it whenever the transport is not the\n\t * instance.\n\t */\n\tbaseUrl?: string;\n\t/** Instance token, sent as `Authorization: Bearer`. */\n\tapiKey?: string;\n\t/** Max mempool pages to read per address. Default 10 (×200 = 2000 txs). */\n\tmaxPages?: number;\n\t/** Override the confirmed floor (defaults to the node read). */\n\tgetConfirmed?: (args: { client: Client; address: string }) => Promise<bigint>;\n};\n\ntype IndexMempoolResponse = {\n\tmempool?: Array<{ nonce?: string | number | null }>;\n\tnext_cursor?: string | null;\n};\n\n/**\n * Mempool-aware source backed by a Secondlayer instance's `/v1/index/mempool`.\n * Requests go through the transport layer (retries, timeout, typed errors).\n * The instance's mempool is a go-forward view observed by its own node, so\n * it can lag or miss transactions that node never saw; the manager's local\n * increment still prevents same-process collisions. Past `maxPages` the\n * pending set is truncated and the next free nonce may already be taken;\n * a nonce conflict at broadcast then resets the manager. Transient failures\n * (5xx, timeout) degrade to the confirmed floor; a missing or wrong instance\n * URL throws so the misconfiguration is visible on the first read.\n */\nexport function indexSource(\n\tparams: IndexSourceParams = {},\n): NonceManagerSource {\n\tconst maxPages = params.maxPages ?? 10;\n\tconst headers = params.apiKey\n\t\t? { authorization: `Bearer ${params.apiKey}` }\n\t\t: undefined;\n\n\tconst source = mempoolAwareSource({\n\t\tgetConfirmed: params.getConfirmed,\n\t\tasync getPending({ client, address }) {\n\t\t\tconst request = indexRequestFn(client, params.baseUrl, \"indexSource\");\n\t\t\tconst out: bigint[] = [];\n\t\t\tlet cursor: string | undefined;\n\t\t\tlet pages = 0;\n\n\t\t\tdo {\n\t\t\t\tconst query = new URLSearchParams({\n\t\t\t\t\tsender: address,\n\t\t\t\t\tlimit: \"200\",\n\t\t\t\t});\n\t\t\t\tif (cursor) query.set(\"from_cursor\", cursor);\n\n\t\t\t\tlet data: IndexMempoolResponse;\n\t\t\t\ttry {\n\t\t\t\t\tdata = (await request(`/v1/index/mempool?${query}`, {\n\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\theaders,\n\t\t\t\t\t})) as IndexMempoolResponse;\n\t\t\t\t} catch (error) {\n\t\t\t\t\t// A JSON 404 is an instance with nothing for this sender; a\n\t\t\t\t\t// non-JSON 404 is not an instance and throws a config error.\n\t\t\t\t\tif (indexNotFound(error, \"indexSource\")) break;\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tfor (const tx of data.mempool ?? []) {\n\t\t\t\t\tif (tx.nonce != null) out.push(BigInt(tx.nonce));\n\t\t\t\t}\n\t\t\t\tcursor = data.next_cursor ?? undefined;\n\t\t\t\tpages += 1;\n\t\t\t} while (cursor && pages < maxPages);\n\n\t\t\treturn out;\n\t\t},\n\t});\n\n\treturn {\n\t\tasync get(args) {\n\t\t\t// Resolve the instance before the degrade path so a missing or\n\t\t\t// Hiro-pointed transport URL rejects instead of returning the floor.\n\t\t\tindexRequestFn(args.client, params.baseUrl, \"indexSource\");\n\t\t\treturn source.get(args);\n\t\t},\n\t};\n}\n\nexport type HiroNonceSourceParams = {\n\t/** Hiro API base URL, e.g. `https://api.hiro.so` or `https://api.testnet.hiro.so`. */\n\tbaseUrl: string;\n\tapiKey?: string;\n\tfetchImpl?: FetchImpl;\n};\n\ntype HiroNoncesResponse = {\n\tlast_executed_tx_nonce?: number | null;\n\tlast_mempool_tx_nonce?: number | null;\n\tpossible_next_nonce?: number | null;\n\tdetected_missing_nonces?: number[];\n};\n\n/**\n * Off-the-shelf, non-Secondlayer mempool-aware source over Hiro's\n * `/extended/v1/address/{address}/nonces`. Fills the lowest detected gap first,\n * then falls back to `possible_next_nonce`. Requires a host that serves Hiro's\n * extended API (a bare stacks-node does not).\n */\nexport function hiroNonceSource(\n\tparams: HiroNonceSourceParams,\n): NonceManagerSource {\n\tconst baseUrl = params.baseUrl.replace(/\\/$/, \"\");\n\tconst fetchImpl = resolveFetch(params.fetchImpl);\n\n\treturn {\n\t\tasync get({ address }) {\n\t\t\tconst res = await fetchImpl(\n\t\t\t\t`${baseUrl}/extended/v1/address/${address}/nonces`,\n\t\t\t\t{\n\t\t\t\t\theaders: params.apiKey ? { \"x-api-key\": params.apiKey } : undefined,\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (!res.ok) {\n\t\t\t\tthrow new Error(`hiroNonceSource: /nonces ${res.status}`);\n\t\t\t}\n\t\t\tconst data = (await res.json()) as HiroNoncesResponse;\n\n\t\t\t// Fill the lowest gap first — possible_next_nonce ignores gaps and would\n\t\t\t// strand the missing slots.\n\t\t\tconst missing = (data.detected_missing_nonces ?? [])\n\t\t\t\t.map((n) => BigInt(n))\n\t\t\t\t.sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));\n\t\t\tif (missing[0] !== undefined) return missing[0];\n\n\t\t\treturn BigInt(data.possible_next_nonce ?? 0);\n\t\t},\n\t};\n}\n",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"import type { StacksChain } from \"./types.ts\";\n\n/** Identity helper for defining a custom {@link StacksChain} with full type inference. */\nexport function defineChain(chain: StacksChain): StacksChain {\n\treturn chain;\n}\n",
|
|
82
82
|
"/**\n * Format a bigint value with decimal places.\n * @example formatUnits(1000000n, 6) → \"1.0\"\n * @example formatUnits(1500000n, 6) → \"1.5\"\n */\nexport function formatUnits(\n\tvalue: bigint | number | string,\n\tdecimals: number,\n): string {\n\tlet v = BigInt(value);\n\n\tconst negative = v < 0n;\n\tif (negative) v = -v;\n\n\tconst divisor = 10n ** BigInt(decimals);\n\tconst integer = (v / divisor).toString();\n\tlet fraction = (v % divisor).toString().padStart(decimals, \"0\");\n\n\t// Trim trailing zeros, but keep at least one decimal\n\tfraction = fraction.replace(/0+$/, \"\") || \"0\";\n\n\tconst result = `${integer}.${fraction}`;\n\treturn negative ? `-${result}` : result;\n}\n\n/**\n * Parse a decimal string into a bigint with the given number of decimals.\n * @example parseUnits(\"1.5\", 6) → 1500000n\n * @example parseUnits(\"1\", 6) → 1000000n\n */\nconst DECIMAL_STRING = /^-?\\d+(\\.\\d+)?$/;\n\nexport function parseUnits(value: string | number, decimals: number): bigint {\n\tif (typeof value === \"number\" && !Number.isFinite(value)) {\n\t\tthrow new RangeError(`Cannot parse ${value} as a decimal amount`);\n\t}\n\t// Numbers small or large enough to print in exponent form (1e-7, 1e21)\n\t// go through toFixed so the digits survive. A number the fixed form\n\t// cannot hold exactly (too many decimals, or too small for one unit) is\n\t// refused rather than rounded, so amounts never shrink silently.\n\tlet str = typeof value === \"number\" ? value.toFixed(decimals) : value.trim();\n\tif (!DECIMAL_STRING.test(str)) {\n\t\tthrow new RangeError(\n\t\t\t`Cannot parse \"${value}\" as a decimal amount: expected digits with an optional fraction, like \"1.5\"`,\n\t\t);\n\t}\n\tif (typeof value === \"number\" && Number(str) !== value) {\n\t\tthrow new RangeError(\n\t\t\t`Cannot parse ${value} with ${decimals} decimals: pass the amount as a string to keep every digit`,\n\t\t);\n\t}\n\n\tconst negative = str.startsWith(\"-\");\n\tif (negative) str = str.slice(1);\n\n\tconst [integer = \"\", fraction = \"\"] = str.split(\".\");\n\n\tif (fraction.length > decimals) {\n\t\tthrow new Error(\n\t\t\t`Too many decimal places: \"${value}\" has ${fraction.length} decimals, max is ${decimals}`,\n\t\t);\n\t}\n\n\tconst padded = fraction.padEnd(decimals, \"0\");\n\tconst result = BigInt(integer + padded);\n\treturn negative ? -result : result;\n}\n\n/**\n * Format microSTX to STX string (6 decimals).\n * @example formatStx(1000000n) → \"1.0\"\n */\nexport function formatStx(microStx: bigint | number | string): string {\n\treturn formatUnits(microStx, 6);\n}\n\n/**\n * Parse STX string to microSTX bigint (6 decimals).\n * @example parseStx(\"1.5\") → 1500000n\n */\nexport function parseStx(stx: string | number): bigint {\n\treturn parseUnits(stx, 6);\n}\n"
|
|
83
83
|
],
|
|
84
|
-
"mappings": "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",
|
|
85
|
-
"debugId": "
|
|
84
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,YAAY,IAAI,IAAI;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,SAAS,UAAU,CAAC,MAAgC;AAAA,EAEnD,OAAQ,CAAC,OAAY;AAAA,IACpB,MAAM,aAAa,GAAG,IAAI;AAAA,IAC1B,MAAM,OAAO,KAAK,KAAK;AAAA,IACvB,YAAY,KAAK,UAAU,OAAO,QAAQ,UAAU,GAAG;AAAA,MACtD,IAAI,UAAU,IAAI,GAAG;AAAA,QAAG;AAAA,MAEvB,KAAa,OAAO;AAAA,IACtB;AAAA,IACA,KAAK,SAAS,WAAW,IAAI;AAAA,IAE7B,OAAO;AAAA;AAAA;AAQF,SAAS,YAEf,CAAC,QAAyC;AAAA,EAC1C,MAAM,YAAY,OAAO,UAAU,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,EAE1D,MAAM,SAAiB;AAAA,IACtB,OAAO,OAAO;AAAA,IACd,SAAS,OAAO;AAAA,IAChB;AAAA,IACA,SAAS,UAAU;AAAA,IACnB,cAAc,OAAO;AAAA,IAErB,QAAQ;AAAA,EACT;AAAA,EAEA,OAAO,SAAS,WAAW,MAAM;AAAA,EAEjC,OAAO;AAAA;;ACzCR,SAAS,YAAY,CAAC,MAAsB;AAAA,EAC3C,OAAO,KACL,QAAQ,sBAAsB,OAAO,EACrC,QAAQ,yBAAyB,OAAO,EACxC,YAAY;AAAA;AAAA;AAGR,MAAM,kBAAkB,MAAM;AAAA,EAC3B,OAAO;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EAEA,WAAW,CACV,cACA,SACC;AAAA,IACD,MAAM,UAAU;AAAA,MACf;AAAA,MACA,SAAS,UAAU;AAAA,EAAK,QAAQ,YAAY;AAAA,IAC7C,EAAE,KAAK,EAAE;AAAA,IAET,MAAM,SAAS,EAAE,OAAO,SAAS,MAAM,CAAC;AAAA,IACxC,IAAI,SAAS,SAAS;AAAA,MAAW,KAAK,QAAQ,QAAQ;AAAA,IACtD,KAAK,eAAe;AAAA,IACpB,KAAK,UAAU,SAAS;AAAA;AAAA,MAQrB,IAAI,GAAW;AAAA,IAClB,OAAO,KAAK,SAAS,aAAa,KAAK,IAAI;AAAA;AAAA,MAGxC,IAAI,CAAC,OAAe;AAAA,IACvB,KAAK,QAAQ;AAAA;AAAA,EAGd,MAAM,GAOJ;AAAA,IACD,OAAO;AAAA,MACN,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,cAAc,KAAK;AAAA,MACnB,SAAS,KAAK;AAAA,MACd,OAAO,KAAK,iBAAiB,QAAQ,KAAK,MAAM,UAAU;AAAA,IAC3D;AAAA;AAEF;;;AC9DO,MAAM,+BAA+B,UAAU;AAAA,EAC5C,OAAO;AACjB;AAAA;AAGO,MAAM,0BAA0B,UAAU;AAAA,EACvC,OAAO;AACjB;;;ACVuB,IAAvB;;;ACAA,IAAM,QAAQ,MAAM,KAAK,EAAE,QAAQ,IAAI,GAAG,CAAC,GAAG,MAC7C,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAC/B;AAEO,SAAS,UAAU,CAAC,OAA2B;AAAA,EACrD,IAAI,MAAM;AAAA,EACV,WAAW,KAAK,OAAO;AAAA,IACtB,OAAO,MAAM;AAAA,EACd;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,UAAU,CAAC,KAAyB;AAAA,EACnD,IAAI,IAAI,UAAU,GAAG;AAAA,EAErB,IAAI,CAAC,iBAAiB,KAAK,CAAC;AAAA,IAAG,MAAM,IAAI,MAAM,uBAAuB;AAAA,EACtE,IAAI,EAAE,SAAS;AAAA,IAAG,IAAI,IAAI;AAAA,EAE1B,MAAM,QAAQ,IAAI,WAAW,EAAE,SAAS,CAAC;AAAA,EACzC,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,IACtC,MAAM,IAAI,IAAI;AAAA,IACd,MAAM,OAAO,OAAO,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE;AAAA,IAClD,IAAI,OAAO,MAAM,IAAI,KAAK,OAAO;AAAA,MAChC,MAAM,IAAI,MAAM,uBAAuB;AAAA,IACxC,MAAM,KAAK;AAAA,EACZ;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,MAAM,CAAC,OAAuB;AAAA,EAC7C,OAAO,OAAO,KAAK,KAAK,IAAI,QAAQ,KAAK;AAAA;AAGnC,SAAS,SAAS,CAAC,OAAuB;AAAA,EAChD,OAAO,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAC,IAAI;AAAA;AAGvC,SAAS,WAAW,CAAC,KAAyB;AAAA,EACpD,OAAO,IAAI,YAAY,EAAE,OAAO,GAAG;AAAA;AAG7B,SAAS,WAAW,CAAC,OAA2B;AAAA,EACtD,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK;AAAA;AAG/B,SAAS,YAAY,CAAC,KAAyB;AAAA,EACrD,MAAM,QAAQ,IAAI,WAAW,IAAI,MAAM;AAAA,EACvC,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,IACpC,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI;AAAA,EAChC;AAAA,EACA,OAAO;AAAA;AAID,SAAS,OAAO,CAAC,KAAsB;AAAA,EAC7C,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,IACpC,IAAI,IAAI,WAAW,CAAC,IAAI;AAAA,MAAM,OAAO;AAAA,EACtC;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,YAAY,CAAC,OAA2B;AAAA,EACvD,OAAO,OAAO,aAAa,GAAG,KAAK;AAAA;AAG7B,SAAS,WAAW,IAAI,QAAkC;AAAA,EAEhE,IAAI,OAAO,WAAW;AAAA,IAAG,OAAO,OAAO;AAAA,EACvC,MAAM,SAAS,OAAO,OAAO,CAAC,GAAG,QAAQ,IAAI,IAAI,QAAQ,CAAC;AAAA,EAC1D,MAAM,SAAS,IAAI,WAAW,MAAM;AAAA,EACpC,IAAI,MAAM;AAAA,EACV,WAAW,OAAO,QAAQ;AAAA,IACzB,OAAO,IAAI,KAAK,GAAG;AAAA,IACnB,OAAO,IAAI;AAAA,EACZ;AAAA,EACA,OAAO;AAAA;AAKD,SAAS,WAAW,CAAC,OAA4B;AAAA,EACvD,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EACtC,IAAI,OAAO,UAAU,UAAU;AAAA,IAE9B,IAAI,MAAM,KAAK,MAAM;AAAA,MACpB,MAAM,IAAI,YAAY,8CAA8C;AAAA,IACrE,OAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,IAAI,CAAC,OAAO,UAAU,KAAK;AAAA,MAC1B,MAAM,IAAI,WAAW,6CAA6C;AAAA,IACnE,IAAI,QAAQ,OAAO;AAAA,MAClB,MAAM,IAAI,WACT,sCAAsC,OAAO,uCAC9C;AAAA,IACD,OAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EACA,IAAI,iBAAiB;AAAA,IAAY,OAAO,OAAO,KAAK,WAAW,KAAK,GAAG;AAAA,EACvE,MAAM,IAAI,UAAU,kDAAkD;AAAA;AAGhE,SAAS,UAAU,CAAC,OAAoB,YAAgC;AAAA,EAC9E,OAAO,cAAc,YAAY,KAAK,GAAG,UAAU;AAAA;AAG7C,SAAS,aAAa,CAAC,OAAe,SAAS,IAAgB;AAAA,EACrE,MAAM,MAAM,MAAM,SAAS,EAAE,EAAE,SAAS,SAAS,GAAG,GAAG;AAAA,EACvD,OAAO,WAAW,GAAG;AAAA;AAGf,SAAS,QAAQ,CAAC,SAAsB,aAAa,GAAW;AAAA,EACtE,MAAM,QAAQ,OAAO,YAAY,WAAW,UAAU,YAAY,OAAO;AAAA,EACzE,OAAO,MAAM,SAAS,EAAE,EAAE,SAAS,aAAa,GAAG,GAAG;AAAA;AAGhD,SAAS,MAAM,CAAC,OAAe,OAAuB;AAAA,EAC5D,MAAM,QAAQ,OAAO,CAAC,KAAM,QAAQ,OAAO,CAAC;AAAA,EAC5C,IAAI,QAAQ,CAAC,SAAS,QAAQ,QAAQ,OAAO,CAAC,GAAG;AAAA,IAChD,MAAM,IAAI,MAAM,yCAAyC,OAAO;AAAA,EACjE;AAAA,EACA,IAAI,SAAS,OAAO,CAAC;AAAA,IAAG,OAAO;AAAA,EAC/B,OAAO,SAAS,OAAO,CAAC,KAAK;AAAA;AAGvB,SAAS,QAAQ,CAAC,OAAe,OAAuB;AAAA,EAC9D,IAAI,QAAS,OAAO,CAAC,KAAM,QAAQ,OAAO,CAAC,GAAK;AAAA,IAC/C,OAAO,SAAS,OAAO,CAAC,KAAK;AAAA,EAC9B;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,iBAAiB,CAAC,OAA2B;AAAA,EAC5D,IAAI,MAAM,WAAW;AAAA,IAAG,OAAO;AAAA,EAC/B,MAAM,MAAM,WAAW,KAAK;AAAA,EAC5B,IAAI,IAAI,WAAW;AAAA,IAAG,OAAO;AAAA,EAC7B,OAAO,SAAS,OAAO,KAAK,KAAK,GAAG,OAAO,MAAM,aAAa,CAAC,CAAC;AAAA;AAG1D,SAAS,aAAa,CAAC,OAA2B;AAAA,EACxD,MAAM,MAAM,IAAI,WAAW,CAAC;AAAA,EAC5B,IAAI,KAAM,UAAU,KAAM;AAAA,EAC1B,IAAI,KAAM,UAAU,KAAM;AAAA,EAC1B,IAAI,KAAM,UAAU,IAAK;AAAA,EACzB,IAAI,KAAK,QAAQ;AAAA,EACjB,OAAO;AAAA;AAGD,SAAS,YAAY,CAAC,OAAmB,SAAS,GAAW;AAAA,EACnE,QAEG,MAAM,WAAY,KAElB,MAAM,SAAS,MAAO,KAEtB,MAAM,SAAS,MAAO,IAEvB,MAAM,SAAS,QAChB;AAAA;AAIK,SAAS,aAAa,CAAC,OAA2B;AAAA,EACxD,MAAM,MAAM,IAAI,WAAW,CAAC;AAAA,EAC5B,IAAI,KAAM,UAAU,IAAK;AAAA,EACzB,IAAI,KAAK,QAAQ;AAAA,EACjB,OAAO;AAAA;AAGD,SAAS,YAAY,CAAC,OAAmB,SAAS,GAAW;AAAA,EAEnE,QAAS,MAAM,WAAY,IAAK,MAAM,SAAS,QAAS;AAAA;AAGlD,SAAS,UAAU,CAAC,OAA2B;AAAA,EACrD,OAAO,IAAI,WAAW,CAAC,QAAQ,GAAI,CAAC;AAAA;;;AD3KrC,IAAM,MAAM;AACZ,IAAM,MAAM;AAEZ,SAAS,YAAY,CAAC,OAAuB;AAAA,EAC5C,OAAO,MAAM,YAAY,EAAE,QAAQ,MAAM,GAAG,EAAE,QAAQ,QAAQ,GAAG;AAAA;AAGlE,SAAS,SAAS,CAAC,UAA0B;AAAA,EAC5C,IAAI,MAAM;AAAA,EACV,IAAI,IAAI,SAAS,MAAM;AAAA,IAAG,MAAM,IAAI;AAAA,EACpC,MAAM,IAAI,YAAY;AAAA,EAEtB,MAAM,MAAgB,CAAC;AAAA,EACvB,IAAI,QAAQ;AAAA,EACZ,SAAS,IAAI,IAAI,SAAS,EAAG,KAAK,GAAG,KAAK;AAAA,IACzC,IAAI,QAAQ,GAAG;AAAA,MAEd,MAAM,cAAc,IAAI,QAAQ,IAAI,EAAG,KAAK;AAAA,MAE5C,MAAM,WAAW,MAAM,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAG,IAAI;AAAA,MACtD,MAAM,WAAW,IAAI;AAAA,MACrB,MAAM,cAAe,YAAY,KAAK,aAAe,IAAI;AAAA,MAEzD,IAAI,QAAQ,IAAI,cAAc,YAAa;AAAA,MAC3C,QAAQ;AAAA,IACT,EAAO;AAAA,MACN,QAAQ;AAAA;AAAA,EAEV;AAAA,EAGA,IAAI,eAAe;AAAA,EACnB,OAAO,eAAe,IAAI,UAAU,IAAI,kBAAkB;AAAA,IAAK;AAAA,EAC/D,MAAM,WAAW,IAAI,MAAM,YAAY;AAAA,EAGvC,MAAM,QAAQ,WAAW,GAAG;AAAA,EAC5B,IAAI,iBAAiB;AAAA,EACrB,OAAO,iBAAiB,MAAM,UAAU,MAAM,oBAAoB;AAAA,IACjE;AAAA,EACD,MAAM,SAAS,MAAM,cAAc,EAAE,KAAK,IAAI,EAAE;AAAA,EAEhD,OAAO,CAAC,GAAG,QAAQ,GAAG,QAAQ,EAAE,KAAK,EAAE;AAAA;AAGxC,SAAS,SAAS,CAAC,UAA0B;AAAA,EAC5C,MAAM,QAAQ,aAAa,QAAQ;AAAA,EACnC,IAAI,CAAC,MAAM,MAAM,KAAK,QAAQ;AAAA,IAAG,MAAM,IAAI,MAAM,0BAA0B;AAAA,EAE3E,MAAM,aAAa,MAAM,MAAM,IAAI,IAAI,KAAK;AAAA,EAC5C,MAAM,sBAAsB,aAAa,WAAW,IAAI,SAAS;AAAA,EAEjE,MAAM,MAAgB,CAAC;AAAA,EACvB,IAAI,QAAQ;AAAA,EACZ,IAAI,YAAY;AAAA,EAChB,SAAS,IAAI,MAAM,SAAS,EAAG,KAAK,GAAG,KAAK;AAAA,IAC3C,IAAI,cAAc,GAAG;AAAA,MAEpB,IAAI,QAAQ,IAAI,MAAO;AAAA,MACvB,YAAY;AAAA,MACZ,QAAQ;AAAA,IACT;AAAA,IAEA,MAAM,gBAAgB,IAAI,QAAQ,MAAM,EAAG,KAAK,aAAa;AAAA,IAE7D,IAAI,QAAQ,IAAI,eAAe,GAAI;AAAA,IACnC,aAAa;AAAA,IACb,QAAQ,gBAAgB;AAAA,IACxB,IAAI,QAAQ,KAAK;AAAA,MAAW,MAAM,IAAI,MAAM,6BAA6B;AAAA,EAC1E;AAAA,EAEA,IAAI,QAAQ,IAAI,MAAO;AAAA,EAEvB,IAAI,IAAI,SAAS,MAAM;AAAA,IAAG,IAAI,QAAQ,GAAG;AAAA,EAGzC,IAAI,kBAAkB;AAAA,EACtB,OAAO,kBAAkB,IAAI,UAAU,IAAI,qBAAqB;AAAA,IAC/D;AAAA,EACD,IAAI,SAAS,IAAI,MAAM,kBAAmB,kBAAkB,CAAE,EAAE,KAAK,EAAE;AAAA,EAEvE,SAAS,IAAI,EAAG,IAAI,qBAAqB;AAAA,IAAK,SAAS,KAAK;AAAA,EAE5D,OAAO;AAAA;AAGR,SAAS,WAAW,CAAC,SAAyB;AAAA,EAC7C,OAAO,WAAW,mBAAO,mBAAO,WAAW,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;AAAA;AAGlE,SAAS,cAAc,CAAC,SAAiB,MAAsB;AAAA,EAC9D,IAAI,UAAU,KAAK,WAAW;AAAA,IAC7B,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC7D,IAAI,CAAC,KAAK,MAAM,gBAAgB;AAAA,IAC/B,MAAM,IAAI,MAAM,iCAAiC;AAAA,EAElD,IAAI,IAAI,KAAK,YAAY;AAAA,EACzB,IAAI,EAAE,SAAS,MAAM;AAAA,IAAG,IAAI,IAAI;AAAA,EAEhC,IAAI,aAAa,QAAQ,SAAS,EAAE;AAAA,EACpC,IAAI,WAAW,WAAW;AAAA,IAAG,aAAa,IAAI;AAAA,EAE9C,MAAM,cAAc,YAAY,GAAG,aAAa,GAAG;AAAA,EACnD,OAAO,GAAG,IAAI,WAAW,UAAU,GAAG,IAAI,aAAa;AAAA;AAGxD,SAAS,cAAc,CAAC,SAAmC;AAAA,EAC1D,MAAM,aAAa,aAAa,OAAO;AAAA,EACvC,MAAM,UAAU,UAAU,WAAW,MAAM,CAAC,CAAC;AAAA,EAE7C,MAAM,UAAU,IAAI,QAAQ,WAAW,EAAG;AAAA,EAC1C,MAAM,WAAW,QAAQ,MAAM,EAAE;AAAA,EAEjC,IAAI,aAAa,QAAQ,SAAS,EAAE;AAAA,EACpC,IAAI,WAAW,WAAW;AAAA,IAAG,aAAa,IAAI;AAAA,EAE9C,IACC,YAAY,GAAG,aAAa,QAAQ,UAAU,GAAG,QAAQ,SAAS,CAAC,GAAG,MACtE,UACC;AAAA,IACD,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC7D;AAAA,EAEA,OAAO,CAAC,SAAS,QAAQ,UAAU,GAAG,QAAQ,SAAS,CAAC,CAAC;AAAA;AAGnD,SAAS,UAAU,CAAC,SAAiB,YAA4B;AAAA,EACvE,IAAI,CAAC,WAAW,MAAM,mBAAmB,GAAG;AAAA,IAC3C,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC7D;AAAA,EACA,OAAO,IAAI,eAAe,SAAS,UAAU;AAAA;AAGvC,SAAS,gBAAgB,CAAC,SAAmC;AAAA,EACnE,IAAI,QAAQ,UAAU;AAAA,IACrB,MAAM,IAAI,MAAM,qCAAqC;AAAA,EACtD,IAAI,QAAQ,OAAO;AAAA,IAClB,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D,OAAO,eAAe,QAAQ,MAAM,CAAC,CAAC;AAAA;;;AE3HhC,IAAM,kBAAkB;AAAA,EAC9B,KAAK;AAAA,EACL,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AACP;AAGA,IAAM,oBAAoB,OAAO,YAChC,OAAO,QAAQ,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CACvD;AAEO,SAAS,mBAAmB,CAAC,MAA2B;AAAA,EAC9D,MAAM,OAAO,kBAAkB;AAAA,EAC/B,IAAI,CAAC;AAAA,IAAM,MAAM,IAAI,MAAM,8BAA8B,MAAM;AAAA,EAC/D,OAAO;AAAA;;;ACzBR,IAAM,mBAAmB;AACzB,IAAM,wBAAwB;AAC9B,IAAM,YAAY,MAAM,QAAQ;AAChC,IAAM,YAAY,MAAM,QAAQ;AAChC,IAAM,WAAW,EAAE,MAAM;AAElB,IAAM,mBAAmB;AAEhC,SAAS,UAAU,CAAC,MAA2B;AAAA,EAC9C,OAAO,gBAAgB;AAAA;AAGxB,SAAS,UAAU,CAAC,MAAmB,OAA+B;AAAA,EACrE,OAAO,YAAY,IAAI,WAAW,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK;AAAA;AAG7D,SAAS,gBAAgB,CAAC,YAAgC;AAAA,EACzD,OAAO,SAAS,WAAW,iBAAiB,UAAU;AAAA,EACtD,OAAO,YAAY,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,OAAO,CAAC;AAAA;AAGlE,SAAS,iBAAiB,CAAC,KAAa,cAAc,GAAe;AAAA,EACpE,MAAM,UAAU,YAAY,GAAG;AAAA,EAC/B,MAAM,eAAe,WAAW,SAAS,QAAQ,YAAY,WAAW,CAAC;AAAA,EACzE,OAAO,YAAY,cAAc,OAAO;AAAA;AAGlC,SAAS,gBAAgB,CAAC,OAAiC;AAAA,EACjE,QAAQ,MAAM;AAAA,SACR;AAAA,SACA;AAAA,MACJ,OAAO,IAAI,WAAW,CAAC,WAAW,MAAM,IAAI,CAAC,CAAC;AAAA,SAE1C,OAAO;AAAA,MACX,MAAM,IAAI,OAAO,MAAM,KAAK;AAAA,MAC5B,IAAI,IAAI,YAAY,IAAI;AAAA,QACvB,MAAM,IAAI,WAAW,wBAAwB,GAAG;AAAA,MACjD,MAAM,QAAQ,cACb,OAAO,GAAG,gBAAgB,GAC1B,qBACD;AAAA,MACA,OAAO,WAAW,MAAM,MAAM,KAAK;AAAA,IACpC;AAAA,SAEK,QAAQ;AAAA,MACZ,MAAM,IAAI,OAAO,MAAM,KAAK;AAAA,MAC5B,IAAI,IAAI,MAAM,IAAI;AAAA,QACjB,MAAM,IAAI,WAAW,yBAAyB,GAAG;AAAA,MAClD,MAAM,QAAQ,cAAc,GAAG,qBAAqB;AAAA,MACpD,OAAO,WAAW,MAAM,MAAM,KAAK;AAAA,IACpC;AAAA,SAEK,UAAU;AAAA,MACd,MAAM,WAAW,WAAW,MAAM,KAAK;AAAA,MACvC,OAAO,WACN,MAAM,MACN,YAAY,cAAc,SAAS,MAAM,GAAG,QAAQ,CACrD;AAAA,IACD;AAAA,SAEK;AAAA,MACJ,OAAO,IAAI,WAAW,CAAC,WAAW,MAAM,IAAI,CAAC,CAAC;AAAA,SAE1C;AAAA,MACJ,OAAO,WAAW,MAAM,MAAM,iBAAiB,MAAM,KAAK,CAAC;AAAA,SAEvD;AAAA,SACA;AAAA,MACJ,OAAO,WAAW,MAAM,MAAM,iBAAiB,MAAM,KAAK,CAAC;AAAA,SAEvD;AAAA,MACJ,OAAO,WAAW,MAAM,MAAM,iBAAiB,MAAM,KAAK,CAAC;AAAA,SAEvD,YAAY;AAAA,MAChB,OAAO,MAAM,QAAQ,MAAM,MAAM,MAAM,GAAG;AAAA,MAC1C,IAAI,CAAC,QAAQ,CAAC;AAAA,QACb,MAAM,IAAI,MAAM,+BAA+B,MAAM,OAAO;AAAA,MAC7D,OAAO,WACN,MAAM,MACN,YAAY,iBAAiB,IAAI,GAAG,kBAAkB,IAAI,CAAC,CAC5D;AAAA,IACD;AAAA,SAEK,QAAQ;AAAA,MACZ,MAAM,QAAsB,CAAC,cAAc,MAAM,MAAM,MAAM,CAAC;AAAA,MAC9D,WAAW,QAAQ,MAAM,OAAO;AAAA,QAC/B,MAAM,KAAK,iBAAiB,IAAI,CAAC;AAAA,MAClC;AAAA,MACA,OAAO,WAAW,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC;AAAA,IACpD;AAAA,SAEK,SAAS;AAAA,MAIb,MAAM,OAAO,OAAO,KAAK,MAAM,KAAK,EAAE,KAAK,CAAC,GAAG,MAC9C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAC1B;AAAA,MACA,MAAM,QAAsB,CAAC,cAAc,KAAK,MAAM,CAAC;AAAA,MACvD,WAAW,OAAO,MAAM;AAAA,QACvB,MAAM,KAAK,kBAAkB,GAAG,CAAC;AAAA,QAEjC,MAAM,KAAK,iBAAiB,MAAM,MAAM,IAAK,CAAC;AAAA,MAC/C;AAAA,MACA,OAAO,WAAW,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC;AAAA,IACpD;AAAA,SAEK,SAAS;AAAA,MACb,IAAI,CAAC,QAAQ,MAAM,KAAK;AAAA,QACvB,MAAM,IAAI,MAAM,0CAA0C;AAAA,MAC3D,MAAM,WAAW,aAAa,MAAM,KAAK;AAAA,MACzC,OAAO,WACN,MAAM,MACN,YAAY,cAAc,SAAS,MAAM,GAAG,QAAQ,CACrD;AAAA,IACD;AAAA,SAEK,QAAQ;AAAA,MACZ,MAAM,WAAW,YAAY,MAAM,KAAK;AAAA,MACxC,OAAO,WACN,MAAM,MACN,YAAY,cAAc,SAAS,MAAM,GAAG,QAAQ,CACrD;AAAA,IACD;AAAA;AAAA,MAGC,MAAM,IAAI,MAAM,uCAAuC;AAAA;AAAA;AAInD,SAAS,WAAW,CAAC,OAA6B;AAAA,EACxD,OAAO,WAAW,iBAAiB,KAAK,CAAC;AAAA;;;ACnJnC,IAAM,WAAW;AAAA,EACvB,UAAU;AAAA,EACV,WAAW;AACZ;AAIO,IAAM,cAAc;AAAA,EAC1B,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,wBAAwB;AAAA,EACxB,wBAAwB;AAAA,EACxB,cAAc;AAAA,EACd,kBAAkB;AACnB;AAIO,IAAM,iBAAiB;AAAA,EAC7B,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AACX;AAKO,IAAM,aAAa;AAAA,EACzB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,KAAK;AACN;AAIO,IAAM,wBAAwB;AAAA,EACpC,OAAO;AAAA,EACP,MAAM;AAAA,EACN,YAAY;AACb;AAKO,IAAM,kBAAkB;AAAA,EAC9B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,oBAAoB;AAAA,EACpB,0BAA0B;AAC3B;AAKO,IAAM,iBAAiB;AAAA,EAC7B,YAAY;AAAA,EACZ,cAAc;AACf;AAKO,IAAM,wBAAwB;AAAA,EACpC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,cAAc;AAAA,EACd,MAAM;AAAA,EACN,WAAW;AACZ;AAGO,IAAM,2BAA2B;AAAA,EACvC,OAAO;AAAA,EACP,aAAa;AAAA,EACb,WAAW;AACZ;AAGO,IAAM,mBAAmB;AAAA,EAC/B,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,aAAa;AACd;AAKO,IAAM,2BAA2B;AAAA,EACvC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AACX;AAGO,IAAM,YAAY;AAAA,EACxB,KAAK;AAAA,EACL,UAAU;AAAA,EACV,aAAa;AAAA,EACb,SAAS;AAAA,EACT,KAAK;AACN;AAGO,IAAM,gBAAgB;AAAA,EAC5B,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,uBAAuB;AACxB;AAEO,IAAM,qCAAqC;AAC3C,IAAM,wBAAwB;AAC9B,IAAM,0BAA0B;AAChC,IAAM,wBAAwB;AAC9B,IAAM,yBAAyB;AAC/B,IAAM,iCAAiC;AAGvC,IAAM,oBAAoB;AAAA,EAChC,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,qBAAqB;AACtB;;;ACnGA,SAAS,iBAAgB,CAAC,YAAgC;AAAA,EACzD,OAAO,SAAS,WAAW,iBAAiB,UAAU;AAAA,EACtD,OAAO,YAAY,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,OAAO,CAAC;AAAA;AAIlE,SAAS,kBAAiB,CAAC,KAAa,cAAc,GAAe;AAAA,EACpE,MAAM,UAAU,YAAY,GAAG;AAAA,EAC/B,MAAM,SAAS,WAAW,SAAS,QAAQ,YAAY,WAAW,CAAC;AAAA,EACnE,OAAO,YAAY,QAAQ,OAAO;AAAA;AAInC,SAAS,qBAAqB,CAAC,KAAyB;AAAA,EACvD,OAAO,mBAAkB,KAAK,CAAC;AAAA;AAIhC,SAAS,aAAa,CAAC,MAA0B;AAAA,EAChD,MAAM,UAAU,aAAa,IAAI;AAAA,EACjC,MAAM,SAAS,IAAI,WAAW,qBAAqB;AAAA,EACnD,OAAO,IAAI,QAAQ,MAAM,GAAG,qBAAqB,CAAC;AAAA,EAClD,OAAO;AAAA;AAGR,SAAS,0BAA0B,CAAC,WAA0C;AAAA,EAC7E,MAAM,QAAsB;AAAA,IAC3B,WAAW,UAAU,QAAQ;AAAA,IAC7B,WAAW,UAAU,MAAM;AAAA,IAC3B,WAAW,UAAU,OAAO,CAAC;AAAA,IAC7B,WAAW,UAAU,KAAK,CAAC;AAAA,EAC5B;AAAA,EAEA,IAAI,eAAe,WAAW;AAAA,IAE7B,MAAM,KAAK;AAAA,IACX,MAAM,KAAK,WAAW,GAAG,WAAW,CAAC;AAAA,IACrC,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;AAAA,EACpC,EAAO;AAAA,IAEN,MAAM,KAAK;AAAA,IAEX,MAAM,KAAK,cAAc,GAAG,OAAO,MAAM,CAAC;AAAA,IAC1C,WAAW,SAAS,GAAG,QAAQ;AAAA,MAC9B,MAAM,KAAK,mBAAmB,KAAK,CAAC;AAAA,IACrC;AAAA,IACA,MAAM,KAAK,cAAc,GAAG,kBAAkB,CAAC;AAAA;AAAA,EAGhD,OAAO,YAAY,GAAG,KAAK;AAAA;AAG5B,SAAS,kBAAkB,CAAC,OAAyC;AAAA,EACpE,IAAI,MAAM,SAAS,aAAa;AAAA,IAC/B,MAAM,SAAS,MAAM,mBAAmB,IAAO,IAAO;AAAA,IACtD,OAAO,YAAY,WAAW,MAAM,GAAG,WAAW,MAAM,IAAI,CAAC;AAAA,EAC9D;AAAA,EACA,MAAM,SAAS,MAAM,mBAAmB,IAAO,IAAO;AAAA,EACtD,OAAO,YAAY,WAAW,MAAM,GAAG,WAAW,MAAM,IAAI,CAAC;AAAA;AAG9D,SAAS,sBAAsB,CAAC,MAAiC;AAAA,EAChE,MAAM,QAAsB,CAAC,WAAW,KAAK,QAAQ,CAAC;AAAA,EACtD,MAAM,KAAK,2BAA2B,KAAK,iBAAiB,CAAC;AAAA,EAC7D,IAAI,KAAK,aAAa,SAAS,WAAW;AAAA,IACzC,MAAM,KAAK,2BAA2B,KAAK,wBAAwB,CAAC;AAAA,EACrE;AAAA,EACA,OAAO,YAAY,GAAG,KAAK;AAAA;AAG5B,SAAS,kBAAkB,CAAC,WAAmD;AAAA,EAC9E,QAAQ,UAAU;AAAA,SACZ;AAAA,MACJ,OAAO,WAAW,yBAAyB,MAAM;AAAA,SAC7C;AAAA,MACJ,OAAO,YACN,WAAW,yBAAyB,QAAQ,GAC5C,kBAAiB,UAAU,OAAO,CACnC;AAAA,SACI;AAAA,MACJ,OAAO,YACN,WAAW,yBAAyB,QAAQ,GAC5C,kBAAiB,UAAU,OAAO,GAClC,mBAAkB,UAAU,YAAY,CACzC;AAAA;AAAA;AAIH,SAAS,kBAAkB,CAAC,OAAkC;AAAA,EAC7D,OAAO,YACN,kBAAiB,MAAM,OAAO,GAC9B,mBAAkB,MAAM,YAAY,GACpC,mBAAkB,MAAM,SAAS,CAClC;AAAA;AAGM,SAAS,0BAA0B,CAAC,IAAmC;AAAA,EAE7E,MAAM,QAAsB,CAAC;AAAA,EAE7B,QAAQ,GAAG;AAAA,SACL;AAAA,MACJ,MAAM,KAAK,WAAW,UAAU,GAAG,CAAC;AAAA,MACpC,MAAM,KAAK,mBAAmB,GAAG,SAAS,CAAC;AAAA,MAC3C,MAAM,KAAK,WAAW,GAAG,aAAa,CAAC;AAAA,MACvC,MAAM,KAAK,WAAW,GAAG,QAAQ,CAAC,CAAC;AAAA,MACnC;AAAA,SACI;AAAA,MACJ,MAAM,KAAK,WAAW,UAAU,QAAQ,CAAC;AAAA,MACzC,MAAM,KAAK,mBAAmB,GAAG,SAAS,CAAC;AAAA,MAC3C,MAAM,KAAK,mBAAmB,GAAG,KAAK,CAAC;AAAA,MACvC,MAAM,KAAK,WAAW,GAAG,aAAa,CAAC;AAAA,MACvC,MAAM,KAAK,WAAW,GAAG,QAAQ,CAAC,CAAC;AAAA,MACnC;AAAA,SACI;AAAA,MACJ,MAAM,KAAK,WAAW,UAAU,WAAW,CAAC;AAAA,MAC5C,MAAM,KAAK,mBAAmB,GAAG,SAAS,CAAC;AAAA,MAC3C,MAAM,KAAK,mBAAmB,GAAG,KAAK,CAAC;AAAA,MACvC,MAAM,KAAK,iBAAiB,GAAG,OAAO,CAAC;AAAA,MACvC,MAAM,KAAK,WAAW,GAAG,aAAa,CAAC;AAAA,MACvC;AAAA,SACI;AAAA,MAEJ,MAAM,KAAK,WAAW,UAAU,OAAO,CAAC;AAAA,MACxC,MAAM,KAAK,mBAAmB,GAAG,SAAS,CAAC;AAAA,MAC3C,MAAM,KAAK,WAAW,GAAG,aAAa,CAAC;AAAA,MACvC,MAAM,KAAK,WAAW,GAAG,QAAQ,CAAC,CAAC;AAAA,MACnC;AAAA,SACI;AAAA,MAEJ,MAAM,KAAK,WAAW,UAAU,GAAG,CAAC;AAAA,MACpC,MAAM,KAAK,mBAAmB,GAAG,SAAS,CAAC;AAAA,MAC3C,MAAM,KAAK,WAAW,GAAG,aAAa,CAAC;AAAA,MACvC;AAAA;AAAA,EAGF,OAAO,YAAY,GAAG,KAAK;AAAA;AAG5B,SAAS,uBAAuB,CAAC,KAAsC;AAAA,EACtE,MAAM,QAAsB,CAAC,cAAc,IAAI,MAAM,CAAC;AAAA,EACtD,WAAW,MAAM;AAAA,IAAK,MAAM,KAAK,2BAA2B,EAAE,CAAC;AAAA,EAC/D,OAAO,YAAY,GAAG,KAAK;AAAA;AAGrB,SAAS,gBAAgB,CAAC,SAAyC;AAAA,EACzE,MAAM,QAAsB,CAAC,WAAW,QAAQ,WAAW,CAAC;AAAA,EAE5D,QAAQ,QAAQ;AAAA,SACV,YAAY;AAAA,MAChB,MAAM,KAAK,iBAAiB,QAAQ,SAAS,CAAC;AAAA,MAC9C,MAAM,KAAK,WAAW,QAAQ,QAAQ,CAAC,CAAC;AAAA,MACxC,MAAM,KAAK,cAAc,QAAQ,IAAI,CAAC;AAAA,MACtC;AAAA,SAEI,YAAY;AAAA,MAChB,MAAM,KAAK,kBAAiB,QAAQ,eAAe,CAAC;AAAA,MACpD,MAAM,KAAK,mBAAkB,QAAQ,YAAY,CAAC;AAAA,MAClD,MAAM,KAAK,mBAAkB,QAAQ,YAAY,CAAC;AAAA,MAClD,MAAM,KAAK,cAAc,QAAQ,aAAa,MAAM,CAAC;AAAA,MACrD,WAAW,OAAO,QAAQ,cAAc;AAAA,QACvC,MAAM,KAAK,iBAAiB,GAAG,CAAC;AAAA,MACjC;AAAA,MACA;AAAA,SAEI,YAAY;AAAA,MAChB,MAAM,KAAK,mBAAkB,QAAQ,YAAY,CAAC;AAAA,MAClD,MAAM,KAAK,sBAAsB,QAAQ,QAAQ,CAAC;AAAA,MAClD;AAAA,SAEI,YAAY;AAAA,MAChB,MAAM,KAAK,WAAW,QAAQ,kBAAkB,CAAC,CAAC;AAAA,MAClD,MAAM,KAAK,mBAAkB,QAAQ,YAAY,CAAC;AAAA,MAClD,MAAM,KAAK,sBAAsB,QAAQ,QAAQ,CAAC;AAAA,MAClD;AAAA,SAEI,YAAY;AAAA,MAChB,MAAM,KAAK,WAAY,QAA4B,cAAc,CAAC;AAAA,MAClE;AAAA,SAEI,YAAY,wBAAwB;AAAA,MACxC,MAAM,QAAQ;AAAA,MACd,MAAM,KAAK,WAAW,MAAM,cAAc,CAAC;AAAA,MAC3C,MAAM,KAAK,iBAAiB,MAAM,SAAS,CAAC;AAAA,MAC5C;AAAA,IACD;AAAA,SAEK,YAAY,kBAAkB;AAAA,MAClC,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,WAAW,GAAG,OAAO,CAAC;AAAA,MACjC,MAAM,KAAK,WAAW,GAAG,OAAO,CAAC;AAAA,MACjC;AAAA,IACD;AAAA,SAEK,YAAY,cAAc;AAAA,MAC9B,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,WAAW,GAAG,mBAAmB,CAAC;AAAA,MAC7C,MAAM,KAAK,WAAW,GAAG,uBAAuB,CAAC;AAAA,MACjD,MAAM,KAAK,WAAW,GAAG,qBAAqB,CAAC;AAAA,MAC/C,MAAM,KAAK,WAAW,GAAG,iBAAiB,CAAC;AAAA,MAC3C,MAAM,KAAK,cAAc,GAAG,oBAAoB,CAAC;AAAA,MACjD,MAAM,KAAK,WAAW,GAAG,KAAK,CAAC;AAAA,MAC/B,MAAM,KAAK,WAAW,GAAG,UAAU,CAAC;AAAA,MACpC;AAAA,IACD;AAAA,SAEK,YAAY,kBAAkB;AAAA,MAClC,MAAM,KAAK;AAAA,MACX,MAAM,KAAK,WAAW,GAAG,cAAc,CAAC;AAAA,MACxC,IAAI,GAAG,WAAW;AAAA,QACjB,MAAM,KAAK,iBAAiB,EAAE,MAAM,QAAQ,OAAO,GAAG,UAAU,CAAC,CAAC;AAAA,MACnE,EAAO;AAAA,QACN,MAAM,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC,CAAC;AAAA;AAAA,MAE9C,MAAM,KAAK,WAAW,GAAG,QAAQ,CAAC;AAAA,MAClC;AAAA,IACD;AAAA;AAAA,EAGD,OAAO,YAAY,GAAG,KAAK;AAAA;AAQ5B,IAAM,WAAW,IAAI;AAGd,SAAS,YAAY,CAAC,IAA6B;AAAA,EACzD,SAAS,OAAO,EAAE;AAAA;AAGZ,SAAS,oBAAoB,CAAC,IAAmC;AAAA,EACvE,MAAM,SAAS,SAAS,IAAI,EAAE;AAAA,EAC9B,IAAI;AAAA,IAAQ,OAAO;AAAA,EACnB,MAAM,QAAQ,YACb,WAAW,GAAG,OAAO,GACrB,cAAc,GAAG,OAAO,GACxB,uBAAuB,GAAG,IAAI,GAC9B,WAAW,GAAG,UAAU,GACxB,WAAW,GAAG,iBAAiB,GAC/B,wBAAwB,GAAG,cAAc,GACzC,iBAAiB,GAAG,OAAO,CAC5B;AAAA,EACA,SAAS,IAAI,IAAI,KAAK;AAAA,EACtB,OAAO;AAAA;AAGD,SAAS,uBAAuB,CAAC,IAA+B;AAAA,EACtE,OAAO,WAAW,qBAAqB,EAAE,CAAC;AAAA;;;AC/Q3C,SAAS,iBAAiB,CACzB,GAC2D;AAAA,EAC3D,OACC,OAAO,MAAM,YACb,MAAM,QACN,cAAc,KACd,SAAS,MACR,OAAQ,EAA8B,aAAa,YACnD,OAAQ,EAA8B,aAAa,cACnD,OAAQ,EAA8B,QAAQ,YAC9C,OAAQ,EAA8B,QAAQ;AAAA;AAIjD,eAAsB,WAAW,CAChC,QACA,QAC2B;AAAA,EAC3B,MAAM,aAAa,WAAW,iBAAiB,OAAO,YAAY,OAAO,CAAC;AAAA,EAC1E,MAAM,QAAQ,WAAW,qBAAqB,OAAO,WAAW,CAAC;AAAA,EAEjE,MAAM,OAAO,MAAM,OAAO,QAAQ,wBAAwB;AAAA,IACzD,QAAQ;AAAA,IACR,MAAM;AAAA,MACL,eAAe,KAAK,KAAK,MAAM,SAAS,CAAC;AAAA,MACzC,qBAAqB,KAAK;AAAA,IAC3B;AAAA,EACD,CAAC;AAAA,EAED,MAAM,MAAO,MAAsC,eAAe,CAAC;AAAA,EACnE,OAAO,IAAI,IAAI,CAAC,MAAM;AAAA,IACrB,IAAI,CAAC,kBAAkB,CAAC,GAAG;AAAA,MAC1B,MAAM,IAAI,uBACT,kEACD;AAAA,IACD;AAAA,IACA,OAAO;AAAA,MACN,SAAS,OAAO,EAAE,QAAQ;AAAA,MAC1B,KAAK,OAAO,EAAE,GAAG;AAAA,IAClB;AAAA,GACA;AAAA;;;AC7CF,eAAsB,iBAAiB,CACtC,QACA,QACkC;AAAA,EAClC,MAAM,QAAQ,KAAK,IAAI,OAAO,SAAS,IAAI,EAAE;AAAA,EAC7C,OAAO,OAAO,QACb,0BAA0B,mBAAmB,OAAO,OAAO,wBAAwB,SACnF,EAAE,QAAQ,MAAM,CACjB;AAAA;;;ACRD,eAAsB,cAAc,CACnC,QACA,QACuB;AAAA,EACvB,MAAM,OAAO,MAAM,OAAO,QACzB,gBAAgB,mBAAmB,OAAO,OAAO,aACjD,EAAE,QAAQ,MAAM,CACjB;AAAA,EACA,MAAM,UAAW,MAAgC;AAAA,EACjD,MAAM,QAAS,MAA8B;AAAA,EAC7C,IACE,OAAO,YAAY,YAAY,OAAO,YAAY,YAClD,OAAO,UAAU,YAAY,OAAO,UAAU,UAC9C;AAAA,IACD,MAAM,IAAI,uBACT,gCAAgC,OAAO,kDACxC;AAAA,EACD;AAAA,EACA,OAAO;AAAA,IACN,SAAS,OAAO,OAAO;AAAA,IACvB,OAAO,OAAO,KAAK;AAAA,IACnB,cAAc,KAAK,iBAAiB;AAAA,IACpC,YAAY,KAAK,eAAe;AAAA,EACjC;AAAA;;;AC9BD,eAAsB,UAAU,CAC/B,QACA,QACkB;AAAA,EAClB,MAAM,OAAO,MAAM,OAAO,QACzB,gBAAgB,mBAAmB,OAAO,OAAO,KACjD;AAAA,IACC,QAAQ;AAAA,EACT,CACD;AAAA,EACA,MAAM,UAAW,MAAgC;AAAA,EACjD,IAAI,OAAO,YAAY,YAAY,OAAO,YAAY,UAAU;AAAA,IAC/D,MAAM,IAAI,uBACT,4BAA4B,OAAO,uCACpC;AAAA,EACD;AAAA,EACA,OAAO,OAAO,OAAO;AAAA;;;ACXtB,eAAsB,QAAQ,CAC7B,QACA,QAEe;AAAA,EACf,IAAI,QAAQ,MAAM;AAAA,IACjB,OAAO,OAAO,QACb,uBAAuB,mBAAmB,OAAO,IAAI,KACrD,EAAE,QAAQ,MAAM,CACjB;AAAA,EACD;AAAA,EACA,IAAI,QAAQ,WAAW,WAAW;AAAA,IACjC,OAAO,OAAO,QACb,uBAAuB,mBAAmB,OAAO,OAAO,MAAM,CAAC,KAC/D,EAAE,QAAQ,MAAM,CACjB;AAAA,EACD;AAAA,EACA,MAAM,OAAO,MAAM,OAAO,QAAQ,+BAA+B;AAAA,IAChE,QAAQ;AAAA,EACT,CAAC;AAAA,EACD,MAAM,UAAW,MAAyC;AAAA,EAC1D,OAAO,MAAM,QAAQ,OAAO,IAAK,QAAQ,MAAM,OAAQ;AAAA;;;AC9BxD,eAAsB,cAAc,CAAC,QAAiC;AAAA,EACrE,MAAM,OAAO,MAAM,OAAO,QAAQ,YAAY,EAAE,QAAQ,MAAM,CAAC;AAAA,EAC/D,IAAI,OAAO,MAAM,sBAAsB,UAAU;AAAA,IAChD,MAAM,IAAI,uBACT,kEACD;AAAA,EACD;AAAA,EACA,OAAO,KAAK;AAAA;;;ACTN,IAAM,aAAoB,MAAM,QAAQ;AACxC,IAAM,aAAoB,MAAM,QAAQ;AACxC,IAAM,YAAmB,EAAE,MAAM;AAGjC,IAAM,iBAAiB;AAAA,EAC7B,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,iBAAiB;AAClB;AAKO,IAAM,eAAe;AAErB,IAAM,uBAAuB;AAG7B,IAAM,mBAAmB;;;ACrBN,IAA1B;AACuB,IAAvB;AAC2B,IAA3B;AAMO,SAAS,OAAO,CAAC,OAA+B;AAAA,EACtD,OAAO,wBAAU,oBAAO,KAAK,CAAC;AAAA;AAIxB,SAAS,aAAa,CAAC,MAA0B;AAAA,EACvD,OAAO,WAAW,wBAAW,IAAI,CAAC;AAAA;AAI5B,SAAS,SAAS,CAAC,OAA2B;AAAA,EACpD,OAAO,WAAW,QAAQ,KAAK,CAAC;AAAA;;;ACT1B,SAAS,kBAAkB,CACjC,WACA,UAAiC,WACxB;AAAA,EACT,MAAM,QACL,OAAO,cAAc,WAClB,WAAW,UAAU,SAAS,CAAC,IAC/B;AAAA,EACJ,MAAM,UACL,YAAY,YACT,eAAe,mBACf,eAAe;AAAA,EACnB,OAAO,WAAW,SAAS,WAAW,QAAQ,KAAK,CAAC,CAAC;AAAA;AAM/C,IAAM,sBAA8B;AAEpC,SAAS,qBAAqB,CAAC,SAA0B;AAAA,EAC/D,IAAI;AAAA,IACH,iBAAiB,OAAO;AAAA,IACxB,OAAO;AAAA,IACN,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;AAKF,IAAM,iBACZ;AAMM,SAAS,cAAc,CAC7B,OACoD;AAAA,EACpD,MAAM,QAAQ,MAAM,MAAM,GAAG;AAAA,EAC7B,IAAI,MAAM,SAAS;AAAA,IAAG,OAAO;AAAA,EAC7B,OAAO,SAAS,gBAAgB;AAAA,EAChC,IAAI,CAAC,sBAAsB,OAAO;AAAA,IAAG,OAAO;AAAA,EAC5C,IAAI,iBAAiB;AAAA,IAAW,OAAO,EAAE,QAAQ;AAAA,EACjD,IAAI,CAAC,oBAAoB,KAAK,YAAY;AAAA,IAAG,OAAO;AAAA,EACpD,OAAO,EAAE,SAAS,aAAa;AAAA;AAKzB,SAAS,eAAe,CAAC,YAAsC;AAAA,EACrE,MAAM,SAAS,eAAe,UAAU;AAAA,EACxC,IAAI,CAAC,QAAQ;AAAA,IACZ,MAAM,IAAI,MAAM,gCAAgC,YAAY;AAAA,EAC7D,OAAO,CAAC,OAAO,SAAS,OAAO,YAAY;AAAA;AAGrC,SAAS,aAAa,CAAC,MAAuB;AAAA,EACpD,MAAM,QAAQ;AAAA,EACd,OAAO,MAAM,KAAK,IAAI,KAAK,KAAK,SAAS;AAAA;AAOnC,SAAS,cAAc,CAAC,GAAW,GAAoB;AAAA,EAC7D,OAAO,UAAU,SAAS,iBAAiB,CAAC;AAAA,EAC5C,OAAO,UAAU,SAAS,iBAAiB,CAAC;AAAA,EAC5C,OAAO,aAAa,YAAY,MAAM,YAAY,MAAM,MAAM,YAAY;AAAA;AAIpE,SAAS,gBAAgB,CAAC,SAAyB;AAAA,EACzD,OAAO,iBAAiB,OAAO,EAAE;AAAA;AAO3B,SAAS,kBAAkB,CACjC,UACA,cACS;AAAA,EACT,IAAI,CAAC,sBAAsB,QAAQ,GAAG;AAAA,IACrC,MAAM,IAAI,MAAM,6BAA6B,UAAU;AAAA,EACxD;AAAA,EACA,IAAI,CAAC,cAAc,YAAY,GAAG;AAAA,IACjC,MAAM,IAAI,MAAM,0BAA0B,cAAc;AAAA,EACzD;AAAA,EACA,OAAO,GAAG,YAAY;AAAA;;;AC/FvB,eAAsB,cAAc,CACnC,QACA,QAEe;AAAA,EACf,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,OAAO,OAAO,QAAQ,2BAA2B,WAAW,QAAQ;AAAA,IACnE,QAAQ;AAAA,EACT,CAAC;AAAA;;;ACZK,MAAM,yBAAyB,UAAU;AAAA,EACtC,OAAO;AAAA,EAChB;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA,WAAW,CACV,QACA,SAMC;AAAA,IACD,MAAM,QACL,SAAS,QAAQ,YACd,KAAK,QAAQ,UAAU,SAAS,QAAQ,SACxC;AAAA,IACJ,MAAM,mCAAmC,SAAS,SAAS,OAAO;AAAA,IAClE,KAAK,SAAS;AAAA,IACd,KAAK,MAAM,SAAS;AAAA,IACpB,KAAK,SAAS,SAAS;AAAA;AAEzB;;;ACTA,eAAsB,iBAAiB,CACtC,QACA,QACyC;AAAA,EACzC,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,IAAI;AAAA,IACH,MAAM,OAAQ,MAAM,OAAO,QAC1B,wBAAwB,WAAW,QACnC,EAAE,QAAQ,MAAM,CACjB;AAAA,IACA,OAAO,MAAM,SAAU,OAAkC;AAAA,IACxD,OAAO,OAAO;AAAA,IACf,IAAI,iBAAiB,oBAAoB,MAAM,WAAW;AAAA,MAAK,OAAO;AAAA,IACtE,MAAM;AAAA;AAAA;;;AC/BD,MAAM,yBAAyB,UAAU;AAAA,EACtC,OAAO;AACjB;AAAA;AAmCO,MAAM,uBAAuB,UAAU;AAAA,EACpC,OAAO;AAAA,EAChB;AAAA,EAGA;AAAA,EAEA;AAAA,EAEA,WAAW,CACV,SACA,SAMC;AAAA,IACD,MAAM,SAAS,OAAO;AAAA,IACtB,KAAK,OAAO,SAAS;AAAA,IACrB,KAAK,SAAS,SAAS;AAAA,IACvB,KAAK,aAAa,SAAS;AAAA;AAE7B;AAAA;AAGO,MAAM,gCAAgC,UAAU;AAAA,EAC7C,OAAO;AAAA,EAEhB;AAAA,EAEA,WAAW,CAAC,SAAiB,SAA8C;AAAA,IAC1E,MAAM,SAAS,OAAO;AAAA,IACtB,KAAK,UAAU,QAAQ;AAAA;AAEzB;AAAA;AAGO,MAAM,gCAAgC,UAAU;AAAA,EAC7C,OAAO;AAAA,EAChB;AAAA,EAEA,WAAW,CAAC,SAAiB,SAA0C;AAAA,IACtE,MAAM,SAAS,OAAO;AAAA,IACtB,KAAK,OAAO,QAAQ;AAAA;AAEtB;AAAA;AAGO,MAAM,uCAAuC,UAAU;AAAA,EACpD,OAAO;AAAA,EAChB;AAAA,EAEA,WAAW,CAAC,SAAiB,SAA0C;AAAA,IACtE,MAAM,SAAS,OAAO;AAAA,IACtB,KAAK,OAAO,QAAQ;AAAA;AAEtB;AAAA;AAEO,MAAM,2BAA2B,UAAU;AAAA,EACxC,OAAO;AACjB;AAAA;AAEO,MAAM,qBAAqB,UAAU;AAAA,EAClC,OAAO;AACjB;;;ACrGO,MAAM,YAAY;AAAA,EAChB;AAAA,EACD,SAAS;AAAA,EAEhB,WAAW,CAAC,MAAkB;AAAA,IAC7B,KAAK,OAAO;AAAA;AAAA,EAIb,SAAS,GAAW;AAAA,IACnB,OAAO,KAAK,KAAK,SAAS,KAAK;AAAA;AAAA,EAGxB,MAAM,CAAC,QAAsB;AAAA,IACpC,IAAI,KAAK,SAAS,SAAS,KAAK,KAAK,QAAQ;AAAA,MAC5C,MAAM,IAAI,mBACT,0BAA0B,0BAA0B,KAAK,gBAAgB,KAAK,KAAK,QACpF;AAAA,IACD;AAAA;AAAA,EAGD,SAAS,GAAW;AAAA,IACnB,KAAK,OAAO,CAAC;AAAA,IAEb,OAAO,KAAK,KAAK,KAAK;AAAA;AAAA,EAGvB,YAAY,GAAW;AAAA,IACtB,KAAK,OAAO,CAAC;AAAA,IACb,MAAM,OAEH,KAAK,KAAK,KAAK,WAAY,IAAK,KAAK,KAAK,KAAK,SAAS,QAAS;AAAA,IACpE,KAAK,UAAU;AAAA,IACf,OAAO;AAAA;AAAA,EAGR,YAAY,GAAW;AAAA,IACtB,KAAK,OAAO,CAAC;AAAA,IACb,MAAM,OAEH,KAAK,KAAK,KAAK,WAAY,KAE3B,KAAK,KAAK,KAAK,SAAS,MAAO,KAE/B,KAAK,KAAK,KAAK,SAAS,MAAO,IAEhC,KAAK,KAAK,KAAK,SAAS,QACzB;AAAA,IACD,KAAK,UAAU;AAAA,IACf,OAAO;AAAA;AAAA,EAGR,SAAS,CAAC,QAA4B;AAAA,IACrC,KAAK,OAAO,MAAM;AAAA,IAClB,MAAM,QAAQ,KAAK,KAAK,MAAM,KAAK,QAAQ,KAAK,SAAS,MAAM;AAAA,IAC/D,KAAK,UAAU;AAAA,IACf,OAAO;AAAA;AAAA,EAGR,eAAe,GAAW;AAAA,IACzB,MAAM,MAAM,WAAW,KAAK,UAAU,CAAC,CAAC;AAAA,IACxC,OAAO,IAAI,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI;AAAA;AAE/C;;;AC/BA,IAAM,YAAW,OAAO,oCAAoC;AAC5D,IAAM,YAAW,OAAO,0CAA0C;AAClE,IAAM,YAAW,OAAO,oCAAoC;AAIrD,SAAS,KAAK,CAAC,OAA2B;AAAA,EAChD,IAAI,IAAiB;AAAA,EACrB,IAAI,OAAO,MAAM,YAAY,EAAE,YAAY,EAAE,WAAW,IAAI,GAAG;AAAA,IAC9D,IAAI,kBAAkB,WAAW,CAAC,CAAC;AAAA,EACpC;AAAA,EACA,IAAI,aAAa;AAAA,IAAY,IAAI,kBAAkB,CAAC;AAAA,EACpD,MAAM,IAAI,YAAY,CAAC;AAAA,EACvB,IAAI,IAAI;AAAA,IAAU,MAAM,IAAI,WAAW,yBAAyB,WAAU;AAAA,EAC1E,IAAI,IAAI;AAAA,IAAU,MAAM,IAAI,WAAW,uBAAuB,WAAU;AAAA,EACxE,OAAO,EAAE,MAAM,OAAO,OAAO,EAAE;AAAA;AAGzB,SAAS,MAAM,CAAC,OAA4B;AAAA,EAClD,MAAM,IAAI,YAAY,KAAK;AAAA,EAC3B,IAAI,IAAI;AAAA,IACP,MAAM,IAAI,WAAW,mDAAmD;AAAA,EACzE,IAAI,IAAI;AAAA,IAAU,MAAM,IAAI,WAAW,0BAA0B,WAAU;AAAA,EAC3E,OAAO,EAAE,MAAM,QAAQ,OAAO,EAAE;AAAA;AAG1B,IAAM,SAAS,OAAe,EAAE,MAAM,OAAO;AAC7C,IAAM,UAAU,OAAgB,EAAE,MAAM,QAAQ;AAChD,IAAM,SAAS,CAAC,MAA2B,IAAI,OAAO,IAAI,QAAQ;AAElE,SAAS,QAAQ,CAAC,QAA8B;AAAA,EACtD,IAAI,OAAO,aAAa,SAAW;AAAA,IAClC,MAAM,IAAI,MAAM,gCAAgC;AAAA,EACjD;AAAA,EACA,OAAO,EAAE,MAAM,UAAU,OAAO,WAAW,MAAM,EAAE;AAAA;AAG7C,SAAS,mBAAmB,CAAC,SAAsC;AAAA,EAEzE,OAAO,SAAS,WAAW,iBAAiB,OAAO;AAAA,EACnD,MAAM,aAAa,WAAW,SAAS,OAAO;AAAA,EAC9C,OAAO,EAAE,MAAM,WAAW,OAAO,WAAW;AAAA;AAGtC,SAAS,mBAAmB,CAClC,SACA,cACsB;AAAA,EACtB,OAAO,SAAS,WAAW,iBAAiB,OAAO;AAAA,EACnD,MAAM,aAAa,WAAW,SAAS,OAAO;AAAA,EAC9C,IAAI,YAAY,YAAY,EAAE,cAAc,KAAK;AAAA,IAChD,MAAM,IAAI,MAAM,2CAA2C;AAAA,EAC5D;AAAA,EACA,OAAO,EAAE,MAAM,YAAY,OAAO,GAAG,cAAc,eAAe;AAAA;AAG5D,SAAS,MAAM,GAAW;AAAA,EAChC,OAAO,EAAE,MAAM,OAAO;AAAA;AAGhB,SAAS,MAAM,CAAC,OAA6B;AAAA,EACnD,OAAO,EAAE,MAAM,QAAQ,MAAM;AAAA;AAGvB,SAAS,YAAY,CAAC,OAAmC;AAAA,EAC/D,OAAO,EAAE,MAAM,MAAM,MAAM;AAAA;AAGrB,SAAS,eAAe,CAAC,OAAsC;AAAA,EACrE,OAAO,EAAE,MAAM,OAAO,MAAM;AAAA;AAGtB,SAAS,MAAM,CAAC,QAAgC;AAAA,EACtD,OAAO,EAAE,MAAM,QAAQ,OAAO,OAAO;AAAA;AAG/B,SAAS,OAAO,CAAC,MAA0B;AAAA,EACjD,WAAW,OAAO,MAAM;AAAA,IACvB,IAAI,CAAC,cAAc,GAAG,GAAG;AAAA,MACxB,MAAM,IAAI,MAAM,IAAI,kCAAkC;AAAA,IACvD;AAAA,EACD;AAAA,EACA,OAAO,EAAE,MAAM,SAAS,OAAO,KAAK;AAAA;AAG9B,SAAS,aAAa,CAAC,OAA8B;AAAA,EAC3D,IAAI,CAAC,QAAQ,KAAK;AAAA,IACjB,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D,IAAI,MAAM,SAAS;AAAA,IAClB,MAAM,IAAI,MACT,oCAAoC,wBACrC;AAAA,EACD,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA;AAGxB,SAAS,YAAY,CAAC,OAA6B;AAAA,EACzD,OAAO,EAAE,MAAM,QAAQ,MAAM;AAAA;AAKvB,IAAM,KAyBT;AAAA,EACH,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS,CAAC,SAA4D;AAAA,IACrE,MAAM,SAAS,eAAe,OAAO;AAAA,IACrC,IAAI,CAAC;AAAA,MAAQ,MAAM,IAAI,MAAM,sBAAsB,SAAS;AAAA,IAC5D,OAAO,OAAO,eACX,oBAAoB,OAAO,SAAS,OAAO,YAAY,IACvD,oBAAoB,OAAO,OAAO;AAAA;AAAA,EAEtC,OAAO,CAAC,SAA4D;AAAA,IACnE,OAAO,GAAG,UAAU,OAAO;AAAA;AAAA,EAE5B,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,eAAe,CAAC,QAA0B,SAAS,WAAW,GAAG,CAAC;AAAA,EAClE,iBAAiB,CAAC,UAA4B,SAAS,aAAa,KAAK,CAAC;AAAA,EAC1E,gBAAgB,CAAC,SAA2B,SAAS,YAAY,IAAI,CAAC;AAAA,EACtE,MAAM;AAAA,EACN,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS,CAAC,OAA6B;AAAA,IACtC,OAAO,WAAW,iBAAiB,KAAK,CAAC;AAAA;AAAA,EAE1C,aAAa;AACd;;;ACrKO,SAAS,WAAW,CAAC,QAA6B;AAAA,EACxD,MAAM,UAAU,OAAO,UAAU;AAAA,EACjC,MAAM,UAAU,WAAW,OAAO,UAAU,EAAE,CAAC;AAAA,EAC/C,OAAO,WAAW,SAAS,OAAO;AAAA;AAG5B,SAAS,YAAY,CAAC,QAAqB,cAAc,GAAW;AAAA,EAC1E,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,aAAa,KAAK;AAAA,IACrC,SAAU,UAAU,IAAK,OAAO,UAAU;AAAA,EAC3C;AAAA,EACA,OAAO,YAAY,OAAO,UAAU,MAAM,CAAC;AAAA;AAMrC,IAAM,eAAe;AAK5B,IAAM,sBAAsB;AAC5B,IAAM,wBAAwB;AAE9B,SAAS,UAAU,CAAC,QAAqB,OAAe,UAAkB;AAAA,EACzE,IAAI,QAAQ,WAAW,OAAO,UAAU,GAAG;AAAA,IAC1C,MAAM,IAAI,mBACT,0BAA0B,2BAA2B,OAAO,UAAU,gBACvE;AAAA,EACD;AAAA;AAGM,SAAS,MAAM,CAAC,QAAqB,QAAQ,GAAiB;AAAA,EACpE,IAAI,QAAQ,cAAc;AAAA,IACzB,MAAM,IAAI,mBACT,mCAAmC,qBACpC;AAAA,EACD;AAAA,EACA,MAAM,WAAW,OAAO,UAAU;AAAA,EAClC,MAAM,OAAO,oBAAoB,QAAQ;AAAA,EAEzC,QAAQ;AAAA,SACF;AAAA,MACJ,OAAO,MAAM,kBAAkB,OAAO,UAAU,EAAE,CAAC,CAAC;AAAA,SAEhD;AAAA,MACJ,OAAO,OAAO,OAAO,UAAU,EAAE,CAAC;AAAA,SAE9B;AAAA,MACJ,OAAO,OAAO;AAAA,SAEV;AAAA,MACJ,OAAO,QAAQ;AAAA,SAEX,UAAU;AAAA,MACd,MAAM,MAAM,OAAO,aAAa;AAAA,MAChC,OAAO,SAAS,OAAO,UAAU,GAAG,CAAC;AAAA,IACtC;AAAA,SAEK;AAAA,MACJ,OAAO,OAAO;AAAA,SAEV;AAAA,MACJ,OAAO,OAAO,OAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,SAEnC;AAAA,MACJ,OAAO,aAAa,OAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,SAEzC;AAAA,MACJ,OAAO,gBAAgB,OAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,SAM5C;AAAA,MACJ,OAAO,EAAE,MAAM,WAAW,OAAO,YAAY,MAAM,EAAE;AAAA,SAEjD,YAAY;AAAA,MAChB,MAAM,OAAO,YAAY,MAAM;AAAA,MAC/B,MAAM,OAAO,aAAa,MAAM;AAAA,MAChC,IAAI,IAAI,YAAY,EAAE,OAAO,IAAI,EAAE,cAAc,KAAK;AAAA,QACrD,MAAM,IAAI,MAAM,2CAA2C;AAAA,MAC5D;AAAA,MACA,OAAO,EAAE,MAAM,YAAY,OAAO,GAAG,QAAQ,OAAO;AAAA,IACrD;AAAA,SAEK,QAAQ;AAAA,MACZ,MAAM,MAAM,OAAO,aAAa;AAAA,MAChC,WAAW,QAAQ,KAAK,mBAAmB;AAAA,MAC3C,MAAM,QAAwB,CAAC;AAAA,MAC/B,SAAS,IAAI,EAAG,IAAI,KAAK,KAAK;AAAA,QAC7B,MAAM,KAAK,OAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,MACrC;AAAA,MACA,OAAO,OAAO,KAAK;AAAA,IACpB;AAAA,SAEK,SAAS;AAAA,MACb,MAAM,MAAM,OAAO,aAAa;AAAA,MAChC,WAAW,QAAQ,KAAK,qBAAqB;AAAA,MAC7C,MAAM,OAAqC,CAAC;AAAA,MAC5C,SAAS,IAAI,EAAG,IAAI,KAAK,KAAK;AAAA,QAC7B,MAAM,MAAM,aAAa,MAAM;AAAA,QAC/B,KAAK,OAAO,OAAO,QAAQ,QAAQ,CAAC;AAAA,MACrC;AAAA,MACA,OAAO,QAAQ,IAAI;AAAA,IACpB;AAAA,SAEK,SAAS;AAAA,MACb,MAAM,MAAM,OAAO,aAAa;AAAA,MAChC,OAAO,cAAc,aAAa,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,IACzD;AAAA,SAEK,QAAQ;AAAA,MACZ,MAAM,MAAM,OAAO,aAAa;AAAA,MAChC,OAAO,aAAa,YAAY,OAAO,UAAU,GAAG,CAAC,CAAC;AAAA,IACvD;AAAA;AAAA,MAGC,MAAM,IAAI,mBACT,4CAA4C,MAC7C;AAAA;AAAA;AAII,SAAS,kBAAyD,CACxE,OACI;AAAA,EACJ,MAAM,QACL,OAAO,UAAU,WAAW,WAAW,UAAU,KAAK,CAAC,IAAI;AAAA,EAC5D,OAAO,OAAO,IAAI,YAAY,KAAK,CAAC;AAAA;AAG9B,SAAS,aAAoD,CACnE,OACI;AAAA,EACJ,OAAO,mBAAmB,KAAK;AAAA;;;AC1JhC,eAAsB,UAAiD,CACtE,QACA,QACa;AAAA,EACb,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,MAAM,OAAO,gBAAgB,WAAW,QAAQ,OAAO;AAAA,EAEvD,MAAM,OAAO,MAAM,OAAO,QAAQ,MAAM,EAAE,QAAQ,MAAM,CAAC;AAAA,EAEzD,IAAI,OAAO,MAAM,SAAS,UAAU;AAAA,IACnC,MAAM,IAAI,uBACT,4BAA4B,WAAW,QAAQ,OAAO,oCACvD;AAAA,EACD;AAAA,EACA,OAAO,mBAAsB,KAAK,IAAI;AAAA;;;ACXvC,eAAsB,WAAkD,CACvE,QACA,QACa;AAAA,EACb,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,MAAM,gBAAgB,OAAO,WAAW,iBAAiB,OAAO,GAAG,CAAC,CAAC;AAAA,EAErE,MAAM,OAAO,MAAM,OAAO,QACzB,iBAAiB,WAAW,QAAQ,OAAO,WAC3C;AAAA,IACC,QAAQ;AAAA,IACR,MAAM;AAAA,EACP,CACD;AAAA,EAEA,IAAI,OAAO,MAAM,SAAS,UAAU;AAAA,IACnC,MAAM,IAAI,uBACT,8BAA8B,WAAW,QAAQ,OAAO,oCACzD;AAAA,EACD;AAAA,EACA,OAAO,mBAAsB,KAAK,IAAI;AAAA;;;AC5BvC,eAAsB,eAAe,CACpC,QAEe;AAAA,EACf,OAAO,OAAO,QAAQ,iCAAiC,EAAE,QAAQ,MAAM,CAAC;AAAA;;;ACIzE,eAAsB,cAAc,CACnC,QACA,QAC+B;AAAA,EAC/B,MAAM,QAAQ,KAAK,IAAI,OAAO,SAAS,IAAI,EAAE;AAAA,EAC7C,OAAO,OAAO,QACb,8CAA8C,mBAAmB,OAAO,OAAO,WAAW,SAC1F,EAAE,QAAQ,MAAM,CACjB;AAAA;;;ACVD,eAAsB,QAAQ,CAC7B,QACA,QACkB;AAAA,EAClB,MAAM,OAAO,MAAM,OAAO,QACzB,gBAAgB,mBAAmB,OAAO,OAAO,KACjD,EAAE,QAAQ,MAAM,CACjB;AAAA,EACA,MAAM,QAAS,MAA8B;AAAA,EAC7C,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;AAAA,IAC3D,MAAM,IAAI,uBACT,0BAA0B,OAAO,qCAClC;AAAA,EACD;AAAA,EACA,OAAO,OAAO,KAAK;AAAA;;;ACMpB,eAAsB,WAAW,CAChC,QACA,QACmC;AAAA,EACnC,IAAI;AAAA,IACH,MAAM,OAAQ,MAAM,OAAO,QAAQ,cAAc,OAAO,UAAU;AAAA,MACjE,QAAQ;AAAA,IACT,CAAC;AAAA,IACD,OAAO,MAAM,OAAQ,OAA4B;AAAA,IAChD,OAAO,OAAO;AAAA,IACf,IAAI,iBAAiB,oBAAoB,MAAM,WAAW;AAAA,MAAK,OAAO;AAAA,IACtE,MAAM;AAAA;AAAA;;;ACnCD,MAAM,qBAAqB,UAAU;AAAA,EAClC,OAAO;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAEA,WAAW,CAAC,QAKT;AAAA,IACF,MACC,GAAG,OAAO,UAAU,OAAO,+BAA+B,OAAO,sBAAsB,OAAO,UAAU,IACzG;AAAA,IACA,KAAK,SAAS,OAAO;AAAA,IACrB,KAAK,MAAM,OAAO;AAAA,IAClB,KAAK,UAAU,OAAO;AAAA,IACtB,KAAK,UAAU,OAAO;AAAA;AAExB;;;AClBO,SAAS,eAAe,CAC9B,MACA,QACY;AAAA,EACZ,QAAQ,SAAS,QAAQ,YAAY,YAAY;AAAA,EACjD,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACT;AAAA;AAMM,IAAM,0BAA0B;AAEvC,SAAS,UAAU,CAAC,MAA8C;AAAA,EACjE,IAAI,SAAS;AAAA,IAAW;AAAA,EACxB,MAAM,QAAQ,IAAI,YAAY,EAAE,OAAO,IAAI;AAAA,EAC3C,IAAI,MAAM,UAAU;AAAA,IAAyB,OAAO;AAAA,EACpD,MAAM,OAAO,IAAI,YAAY,EAAE,OAC9B,MAAM,SAAS,GAAG,uBAAuB,CAC1C;AAAA,EACA,OAAO,GAAG,sBAAsB,MAAM,SAAS;AAAA;AAIhD,SAAS,iBAAiB,CAAC,QAAyB;AAAA,EACnD,OAAO,WAAW,OAAO,UAAU;AAAA;AAKpC,IAAM,qBAAqB;AAI3B,SAAS,YAAY,CAAC,UAAwC;AAAA,EAC7D,MAAM,QAAQ,SAAS,QAAQ,IAAI,aAAa;AAAA,EAChD,IAAI,CAAC;AAAA,IAAO;AAAA,EACZ,MAAM,UAAU,OAAO,KAAK;AAAA,EAC5B,MAAM,KAAK,OAAO,SAAS,OAAO,IAC/B,UAAU,OACV,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI;AAAA,EAChC,IAAI,CAAC,OAAO,SAAS,EAAE,KAAK,KAAK,KAAK,KAAK;AAAA,IAC1C;AAAA,EACD,OAAO;AAAA;AAGR,SAAS,WAAW,CAAC,QAA4B;AAAA,EAChD,MAAM,SAAS,OAAO;AAAA,EACtB,IAAI,kBAAkB;AAAA,IAAO,OAAO;AAAA,EACpC,OAAO,IAAI,aACV,OAAO,WAAW,WAAW,SAAS,6BACtC,YACD;AAAA;AAID,SAAS,KAAK,CAAC,IAAY,QAAqC;AAAA,EAC/D,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,IACvC,IAAI,QAAQ;AAAA,MAAS,OAAO,OAAO,YAAY,MAAM,CAAC;AAAA,IACtD,MAAM,UAAU,MAAM;AAAA,MACrB,aAAa,EAAE;AAAA,MACf,OAAO,YAAY,MAAqB,CAAC;AAAA;AAAA,IAE1C,MAAM,KAAK,WAAW,MAAM;AAAA,MAC3B,QAAQ,oBAAoB,SAAS,OAAO;AAAA,MAC5C,QAAQ;AAAA,OACN,EAAE;AAAA,IACL,QAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,GACzD;AAAA;AAyBF,eAAsB,cAA4B,CACjD,KACA,SACA,YACA,YACA,SACA,QAAkC,CAAC,GACtB;AAAA,EACb,QAAQ,WAAW;AAAA,EACnB,MAAM,OACL,MAAM,SAAS,OAAO,aAAuB;AAAA,EAC9C,MAAM,SAAS,QAAQ,UAAU;AAAA,EACjC,IAAI;AAAA,EAEJ,SAAS,UAAU,EAAG,WAAW,YAAY,WAAW;AAAA,IACvD,IAAI,QAAQ;AAAA,MAAS,MAAM,YAAY,MAAM;AAAA,IAE7C,MAAM,aAAa,IAAI;AAAA,IACvB,IAAI,WAAW;AAAA,IACf,MAAM,YAAY,WAAW,MAAM;AAAA,MAClC,WAAW;AAAA,MACX,WAAW,MAAM,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,QAAQ,CAAC,CAAC;AAAA,OAClE,OAAO;AAAA,IACV,MAAM,gBAAgB,MACrB,WAAW,MAAM,YAAY,MAAqB,CAAC;AAAA,IACpD,QAAQ,iBAAiB,SAAS,eAAe,EAAE,MAAM,KAAK,CAAC;AAAA,IAK/D,MAAM,UAAU,IAAI,QAAe,CAAC,GAAG,WAAW;AAAA,MACjD,IAAI,WAAW,OAAO;AAAA,QAAS,OAAO,OAAO,WAAW,OAAO,MAAM;AAAA,MACrE,WAAW,OAAO,iBACjB,SACA,MAAM,OAAO,WAAW,OAAO,MAAM,GACrC,EAAE,MAAM,KAAK,CACd;AAAA,KACA;AAAA,IAED,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,IAAI;AAAA,QACH,WAAW,MAAM,QAAQ,KAAK;AAAA,UAC7B,MAAM,KAAK,KAAK,SAAS,QAAQ,WAAW,OAAO,CAAC;AAAA,UACpD;AAAA,QACD,CAAC;AAAA,QACA,OAAO,OAAO;AAAA,QACf,IAAI,QAAQ;AAAA,UAAS,MAAM,YAAY,MAAM;AAAA,QAC7C,YAAY,WACT,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,QAAQ,CAAC,IAClD,iBAAiB,QAChB,QACA,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,QAC3B,IAAI,UAAU,YAAY;AAAA,UACzB,aAAa,SAAS;AAAA,UACtB,MAAM,MAAM,cAAc,UAAU,IAAI,MAAM;AAAA,UAC9C;AAAA,QACD;AAAA,QACA,MAAM;AAAA;AAAA,MAGP,IAAI,SAAS,IAAI;AAAA,QAChB,IAAI;AAAA,UACH,OAAO,MAAM,QAAQ,KAAK,CAAC,KAAK,QAAQ,GAAG,OAAO,CAAC;AAAA,UAClD,OAAO,OAAO;AAAA,UACf,SAAS,MAAM,OAAO,EAAE,MAAM,MAAM,EAAE;AAAA,UACtC,IAAI,QAAQ;AAAA,YAAS,MAAM,YAAY,MAAM;AAAA,UAC7C,IAAI,CAAC;AAAA,YAAU,MAAM;AAAA,UACrB,YAAY,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS,QAAQ,CAAC;AAAA,UAC9D,IAAI,UAAU,YAAY;AAAA,YACzB,aAAa,SAAS;AAAA,YACtB,MAAM,MAAM,cAAc,UAAU,IAAI,MAAM;AAAA,YAC9C;AAAA,UACD;AAAA,UACA,MAAM;AAAA;AAAA,MAER;AAAA,MAEA,MAAM,YAAY,kBAAkB,SAAS,MAAM;AAAA,MACnD,IAAI,CAAC,aAAa,YAAY,YAAY;AAAA,QACzC,MAAM,OAAO,MAAM,QAAQ,KAAK;AAAA,UAC/B,SAAS,KAAK,EAAE,MAAM,MAAG;AAAA,YAAG;AAAA,WAAS;AAAA,UACrC,QAAQ,MAAM,MAAG;AAAA,YAAG;AAAA,WAAS;AAAA,QAC9B,CAAC;AAAA,QACD,MAAM,IAAI,iBAAiB,SAAS,QAAQ;AAAA,UAC3C,SAAS,WAAW,IAAI;AAAA,UACxB;AAAA,UACA;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MAEA,YAAY,IAAI,iBAAiB,SAAS,QAAQ,EAAE,KAAK,OAAO,CAAC;AAAA,MAEjE,MAAM,QAAQ,aAAa,QAAQ,KAAK,cAAc,UAAU;AAAA,MAChE,SAAS,MAAM,OAAO,EAAE,MAAM,MAAM,EAAE;AAAA,MAItC,aAAa,SAAS;AAAA,MACtB,MAAM,MAAM,OAAO,MAAM;AAAA,cACxB;AAAA,MACD,aAAa,SAAS;AAAA,MACtB,QAAQ,oBAAoB,SAAS,aAAa;AAAA;AAAA,EAEpD;AAAA,EAEA,MAAM,aAAa,IAAI,MAAM,gBAAgB;AAAA;AAI9C,eAAsB,QAAQ,CAAC,UAAsC;AAAA,EACpE,MAAM,cAAc,SAAS,QAAQ,IAAI,cAAc,KAAK;AAAA,EAC5D,IAAI,YAAY,SAAS,kBAAkB,GAAG;AAAA,IAC7C,OAAO,SAAS,KAAK;AAAA,EACtB;AAAA,EACA,OAAO,SAAS,KAAK;AAAA;AAGf,SAAS,cAAc,CAC7B,SACA,QACY;AAAA,EACZ;AAAA,IACC,UAAU;AAAA,IACV,aAAa;AAAA,IACb,aAAa;AAAA,IACb,eAAe,CAAC;AAAA,IAChB;AAAA,MACG;AAAA,EAEJ,OAAO,OAAO,MAAc,YAA6B;AAAA,IACxD,MAAM,MAAM,GAAG,QAAQ,QAAQ,OAAO,EAAE,IAAI;AAAA,IAC5C,MAAM,UAAkC;AAAA,MACvC,gBAAgB;AAAA,SACZ,aAAa;AAAA,SACd,SAAS;AAAA,IACb;AAAA,IAEA,IAAI,QAAQ;AAAA,MACX,QAAQ,eAAe;AAAA,IACxB;AAAA,IAEA,MAAM,OAAoB;AAAA,SACtB;AAAA,MACH,QAAQ,SAAS,UAAU;AAAA,MAC3B;AAAA,IACD;AAAA,IAEA,IAAI,SAAS,SAAS,WAAW;AAAA,MAChC,KAAK,OAAO,KAAK,UAAU,QAAQ,IAAI;AAAA,IACxC;AAAA,IAEA,OAAO,eACN,KACA,MACA,SAAS,cAAc,YACvB,YACA,SACA,EAAE,QAAQ,SAAS,QAAQ,MAAM,SAAS,CAC3C;AAAA;AAAA;;;ACzMK,MAAM,+BAA+B,MAAM;AAAA,EACxC,OAAO;AACjB;AAGA,SAAS,UAAU,CAAC,KAAa,QAAyB;AAAA,EACzD,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,WAAW,IAAI,IAAI,GAAG,EAAE;AAAA,IACvB,MAAM;AAAA,IACP,OAAO;AAAA;AAAA,EAER,IAAI,aAAa,aAAa,SAAS,SAAS,UAAU;AAAA,IAAG,OAAO;AAAA,EACpE,MAAM,WAAW,OAAO,OAAO,SAAS,SAAS,QAAQ,CAAC;AAAA,EAC1D,OAAO,SAAS,KAAK,CAAC,MAAM;AAAA,IAC3B,IAAI;AAAA,MACH,OAAO,IAAI,IAAI,CAAC,EAAE,aAAa,YAAY,aAAa;AAAA,MACvD,MAAM;AAAA,MACP,OAAO;AAAA;AAAA,GAER;AAAA;AAaK,SAAS,cAAc,CAC7B,QACA,SACA,YACY;AAAA,EACZ,MAAM,eAAe,OAAO,UAAU,OAAO,KAAK,QAAQ,OAAO,EAAE;AAAA,EACnE,IAAI,YAAY,WAAW;AAAA,IAC1B,IAAI,CAAC,cAAc;AAAA,MAClB,MAAM,IAAI,uBACT,GAAG,yHACJ;AAAA,IACD;AAAA,IACA,IAAI,WAAW,cAAc,MAAM,GAAG;AAAA,MACrC,MAAM,IAAI,uBACT,GAAG,6DAA6D,yEACjE;AAAA,IACD;AAAA,IACA,OAAO,OAAO;AAAA,EACf;AAAA,EACA,MAAM,SAAS,QAAQ,QAAQ,OAAO,EAAE;AAAA,EACxC,IAAI,WAAW;AAAA,IAAc,OAAO,OAAO;AAAA,EAC3C,QAAQ,SAAS,YAAY,eAAe,OAAO,UAAU;AAAA,EAC7D,OAAO,eAAe,QAAQ,EAAE,SAAS,YAAY,WAAW,CAAC;AAAA;AAS3D,SAAS,aAAa,CAC5B,OACA,YAC4B;AAAA,EAC5B,IAAI,EAAE,iBAAiB,qBAAqB,MAAM,WAAW,KAAK;AAAA,IACjE,OAAO;AAAA,EACR;AAAA,EACA,MAAM,OAAO,MAAM;AAAA,EACnB,IAAI,SAAS,WAAW;AAAA,IACvB,IAAI;AAAA,MACH,KAAK,MAAM,IAAI;AAAA,MACd,MAAM;AAAA,MACP,MAAM,IAAI,uBACT,GAAG,sCAAsC,MAAM,OAAO,6GACtD,EAAE,OAAO,MAAM,CAChB;AAAA;AAAA,EAEF;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,aAAa,CAAC,MAAsB;AAAA,EAC5C,OAAO,KAAK,WAAW,IAAI,IAAI,OAAO,KAAK;AAAA;AAG5C,SAAS,eAAe,CAAC,KAGvB;AAAA,EACD,IAAI,CAAC;AAAA,IAAK,OAAO,CAAC;AAAA,EAClB,IAAI;AAAA,IACH,OAAO,EAAE,QAAQ,mBAAmB,GAAG,GAAG,WAAW,IAAI;AAAA,IACxD,MAAM;AAAA,IACP,OAAO,EAAE,WAAW,IAAI;AAAA;AAAA;AAK1B,SAAS,eAAe,CAAC,UAAiD;AAAA,EACzE,QAAQ;AAAA,SACF;AAAA,SACA;AAAA,SACA;AAAA,SACA;AAAA,MACJ,OAAO;AAAA;AAAA,MAEP,OAAO,SAAS,WAAW,SAAS,IAAI,YAAY;AAAA;AAAA;AAUhD,SAAS,iBAAiB,GAA4B;AAAA,EAC5D,OAAO;AAAA,SACA,IAAG,GAAG,QAAQ,QAAQ;AAAA,MAC3B,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,OAAO,MAAM,OAAO,QACnB,mBAAmB,mBAAmB,cAAc,IAAI,CAAC,KACzD,EAAE,QAAQ,MAAM,CACjB;AAAA,QACC,OAAO,OAAO;AAAA,QACf,IAAI,iBAAiB,oBAAoB,MAAM,WAAW,KAAK;AAAA,UAC9D,OAAO,EAAE,SAAS,KAAK;AAAA,QACxB;AAAA,QACA,MAAM;AAAA;AAAA,MAGP,MAAM,WACL,OAAO,MAAM,cAAc,WAAW,KAAK,YAAY;AAAA,MACxD,IAAI,CAAC;AAAA,QAAU,OAAO,EAAE,SAAS,KAAK;AAAA,MAEtC,MAAM,SAAS,gBAAgB,QAAQ;AAAA,MACvC,IAAI,CAAC;AAAA,QAAQ,OAAO,EAAE,SAAS,KAAK;AAAA,MAEpC,OAAO;AAAA,QACN,SAAS;AAAA,UACR,MAAM,cAAc,IAAI;AAAA,UACxB;AAAA,UACA,aACC,OAAO,KAAK,iBAAiB,YAAY,KAAK,eAAe,IAC1D,KAAK,eACL;AAAA,UACJ,WAAW,KAAK,cAAc;AAAA,aAC3B,gBAAgB,KAAK,WAAW,GAAG;AAAA,UACtC,QAAQ,MAAM,QAAQ,KAAK,MAAM,IAAI,KAAK,SAAS,CAAC;AAAA,UACpD,KAAK;AAAA,QACN;AAAA,MACD;AAAA;AAAA,EAEF;AAAA;AAyBM,SAAS,aAAa,CAC5B,SAA8B,CAAC,GACL;AAAA,EAC1B,MAAM,UAAU,OAAO,SACpB,EAAE,eAAe,UAAU,OAAO,SAAS,IAC3C;AAAA,EAEH,OAAO;AAAA,IACN,eAAe;AAAA,SACT,IAAG,GAAG,QAAQ,QAAQ;AAAA,MAC3B,MAAM,UAAU,eAAe,QAAQ,OAAO,SAAS,eAAe;AAAA,MACtE,IAAI;AAAA,MASJ,IAAI;AAAA,QACH,OAAO,MAAM,QAAQ,0BAA0B,cAAc,IAAI,KAAK;AAAA,UACrE,QAAQ;AAAA,UACR;AAAA,QACD,CAAC;AAAA,QACA,OAAO,OAAO;AAAA,QACf,IAAI,cAAc,OAAO,eAAe;AAAA,UAAG,OAAO,EAAE,SAAS,KAAK;AAAA,QAClE,MAAM;AAAA;AAAA,MAEP,MAAM,KAAK,KAAK;AAAA,MAChB,MAAM,MAAM,KAAK,KAAK;AAAA,MACtB,IAAI,CAAC;AAAA,QAAI,OAAO,EAAE,SAAS,MAAM,IAAI;AAAA,MAErC,MAAM,SAAS,gBAAgB,GAAG,MAAM,KAAK;AAAA,MAC7C,OAAO;AAAA,QACN,SAAS;AAAA,UACR,MAAM,cAAc,GAAG,KAAK;AAAA,UAC5B;AAAA,UACA,aAAa,GAAG;AAAA,aACb,gBAAgB,GAAG,eAAe,UAAU;AAAA,UAC/C,QAAQ,CAAC;AAAA,UACT,KAAK;AAAA,QACN;AAAA,QACA;AAAA,MACD;AAAA;AAAA,EAEF;AAAA;;;ACvRD,eAAsB,cAAc,CACnC,QACA,QACqC;AAAA,EACrC,MAAM,SAAS,OAAO,UAAU,kBAAkB;AAAA,EAClD,QAAQ,YAAY,MAAM,OAAO,IAAI,EAAE,QAAQ,MAAM,OAAO,KAAK,CAAC;AAAA,EAClE,OAAO;AAAA;;;ACCR,eAAsB,YAAmD,CACxE,QACA,QACa;AAAA,EACb,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,MAAM,SAAS,OAAO,UAAU;AAAA,EAEhC,MAAM,kBAAkB,OAAO,QAAQ,CAAC,GAAG,IAAI,CAAC,QAC/C,OAAO,WAAW,iBAAiB,GAAG,CAAC,CAAC,CACzC;AAAA,EAEA,MAAM,OAAO,2BAA2B,mBAAmB,OAAO,KAAK,mBAAmB,IAAI,KAAK,mBAAmB,OAAO,YAAY;AAAA,EACzI,MAAM,OAAO,MAAM,OAAO,QACzB,OAAO,MAAM,GAAG,YAAY,mBAAmB,OAAO,GAAG,MAAM,MAC/D;AAAA,IACC,QAAQ;AAAA,IACR,MAAM;AAAA,MACL;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD,CACD;AAAA,EAEA,IAAI,KAAK,MAAM;AAAA,IACd,IAAI,OAAO,KAAK,WAAW,UAAU;AAAA,MACpC,MAAM,IAAI,uBACT,oEACD;AAAA,IACD;AAAA,IACA,OAAO,mBAAsB,KAAK,MAAM;AAAA,EACzC;AAAA,EACA,MAAM,IAAI,kBAAkB,KAAK,SAAS,uBAAuB;AAAA;;;ACrBlE,eAAe,kBAAwB,CACtC,OACA,OACA,IACqC;AAAA,EACrC,MAAM,UAAqC,IAAI,MAAM,MAAM,MAAM;AAAA,EACjE,IAAI,SAAS;AAAA,EACb,MAAM,SAAS,YAAY;AAAA,IAC1B,OAAO,SAAS,MAAM,QAAQ;AAAA,MAC7B,MAAM,QAAQ;AAAA,MACd,IAAI;AAAA,QACH,QAAQ,SAAS;AAAA,UAChB,QAAQ;AAAA,UACR,OAAO,MAAM,GAAG,MAAM,MAAW;AAAA,QAClC;AAAA,QACC,OAAO,QAAQ;AAAA,QAChB,QAAQ,SAAS,EAAE,QAAQ,YAAY,OAAO;AAAA;AAAA,IAEhD;AAAA;AAAA,EAED,MAAM,UAAU,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,MAAM,MAAM,CAAC;AAAA,EACzD,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,QAAQ,QAAQ,GAAG,MAAM,CAAC;AAAA,EACzD,OAAO;AAAA;AAGR,eAAsB,SAA+C,CACpE,QACA,QAC0C;AAAA,EAC1C,QAAQ,OAAO,eAAe,MAAM,cAAc,MAAM;AAAA,EACxD,IAAI,CAAC,OAAO,UAAU,WAAW,KAAK,cAAc,GAAG;AAAA,IACtD,MAAM,IAAI,WACT,yDAAyD,aAC1D;AAAA,EACD;AAAA,EAEA,MAAM,UAAU,MAAM,mBAAmB,OAAO,aAAa,CAAC,SAC7D,aAAa,QAAQ,IAAI,CAC1B;AAAA,EAEA,IAAI,cAAc;AAAA,IACjB,OAAO,QAAQ,IAAI,CAAC,MACnB,EAAE,WAAW,cACV,EAAE,QAAQ,WAAoB,QAAQ,EAAE,MAAM,IAC9C;AAAA,MACA,QAAQ;AAAA,MACR,OACC,EAAE,kBAAkB,QACjB,EAAE,SACF,IAAI,MAAM,OAAO,EAAE,MAAM,CAAC;AAAA,IAC/B,CACH;AAAA,EACD;AAAA,EAEA,MAAM,UAA0B,CAAC;AAAA,EACjC,WAAW,KAAK,SAAS;AAAA,IACxB,IAAI,EAAE,WAAW;AAAA,MAAY,MAAM,EAAE;AAAA,IACrC,QAAQ,KAAK,EAAE,KAAK;AAAA,EACrB;AAAA,EACA,OAAO;AAAA;;;AC3FD,MAAM,wBAAwB,UAAU;AAAA,EACrC,OAAO;AAAA,EAChB;AAAA,EAEA,WAAW,CACV,SACA,SACC;AAAA,IACD,MAAM,SAAS,EAAE,SAAS,QAAQ,QAAQ,CAAC;AAAA,IAC3C,KAAK,iBAAiB,QAAQ;AAAA;AAEhC;;;ACOA,eAAsB,YAAY,CACjC,QACA,QAC8B;AAAA,EAC9B,OAAO,SAAS,QAAQ,gBAAgB,OAAO,QAAQ;AAAA,EACvD,MAAM,SAAS,OAAO,UAAU;AAAA,EAEhC,MAAM,kBAAkB,OAAO,QAAQ,CAAC,GAAG,IAAI,CAAC,QAC/C,OAAO,WAAW,iBAAiB,GAAG,CAAC,CAAC,CACzC;AAAA,EAEA,IAAI,OAAO,2BAA2B,WAAW,QAAQ,OAAO;AAAA,EAChE,IAAI,OAAO,KAAK;AAAA,IACf,QAAQ,QAAQ,OAAO;AAAA,EACxB;AAAA,EAEA,MAAM,OAAO,MAAM,OAAO,QAAQ,MAAM;AAAA,IACvC,QAAQ;AAAA,IACR,MAAM;AAAA,MACL;AAAA,MACA,WAAW;AAAA,IACZ;AAAA,EACD,CAAC;AAAA,EAED,IAAI,KAAK,MAAM;AAAA,IACd,OAAO,EAAE,SAAS,MAAM,QAAQ,mBAAmB,KAAK,MAAM,EAAE;AAAA,EACjE;AAAA,EAEA,MAAM,QAAgB,KAAK,SAAS;AAAA,EACpC,MAAM,iBACL,MAAM,SAAS,aAAa,KAAK,MAAM,SAAS,qBAAqB;AAAA,EAEtE,OAAO;AAAA,IACN,SAAS;AAAA,IACT,OAAO,IAAI,gBACV,iBACG,mDACA,qBACH,EAAE,gBAAgB,SAAS,MAAM,CAClC;AAAA,EACD;AAAA;;;AC1BD,SAAS,UAAU,CAAC,UAA2B;AAAA,EAC9C,OACC,aAAa,gBAAgB,QAC7B,aAAa,gBAAgB,SAC7B,aAAa,gBAAgB,sBAC7B,aAAa,gBAAgB;AAAA;AAI/B,SAAS,aAAa,CAAC,IAAuB,QAAwB;AAAA,EACrE,QAAQ,UAAU,WAAW,GAAG,KAAK;AAAA,EACrC,MAAM,QAAQ,OAAO;AAAA,EACrB,MAAM,UAAU,WAAW,QAAQ,IAC/B,OAAO,eAAe,YAAY,KAClC,OAAO,eAAe,aAAa;AAAA,EACvC,OAAO,WAAW,SAAS,MAAM;AAAA;AAGlC,eAAsB,mBAAmB,CACxC,QACA,QACqC;AAAA,EACrC,QAAQ,aAAa,QAAQ;AAAA,EAC7B,QAAQ,YAAY;AAAA,EAEpB,IAAI,QAAQ,gBAAgB,YAAY,cAAc;AAAA,IACrD,MAAM,SAAS,OAAO,UAAU,cAAc,aAAa,MAAM;AAAA,IACjE,MAAM,WAAW,GAAG,QAAQ,mBAAmB,QAAQ;AAAA,IAEvD,OAAO,WAAW,QAAQ,MAAM,QAAQ,IAAI;AAAA,MAC3C,aAAa,QAAQ;AAAA,QACpB;AAAA,QACA,cAAc,QAAQ;AAAA,QACtB,MAAM,QAAQ;AAAA,QACd;AAAA,QACA;AAAA,MACD,CAAC;AAAA,MACD,YAAY,QAAQ,EAAE,YAAY,CAAC;AAAA,IACpC,CAAC;AAAA,IAED,OAAO,EAAE,MAAM,iBAAiB,WAAW,KAAK;AAAA,EACjD;AAAA,EAEA,MAAM,OAAO,MAAM,YAAY,QAAQ,EAAE,YAAY,CAAC;AAAA,EAEtD,IACC,QAAQ,gBAAgB,YAAY,iBACpC,QAAQ,gBAAgB,YAAY,wBACnC;AAAA,IACD,OAAO,EAAE,MAAM,mBAAmB,KAAK;AAAA,EACxC;AAAA,EAEA,OAAO,EAAE,MAAM,kBAAkB,KAAK;AAAA;;;ACtDvC,IAAM,SAAQ,CAAC,OAAe,IAAI,QAAQ,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAelE,eAAsB,yBAAyB,CAC9C,QACA,QAC8B;AAAA,EAC9B;AAAA,IACC;AAAA,IACA,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,kBAAkB;AAAA,MACf;AAAA,EACJ,MAAM,SAAS,OAAO,UAAU,kBAAkB;AAAA,EAClD,MAAM,qBACL,OAAO,uBAAuB,OAAO,gBAAgB,UAAU;AAAA,EAEhE,MAAM,YAAY,KAAK,IAAI;AAAA,EAC3B,IAAI,eAA8B;AAAA,EAClC,IAAI,cAAc;AAAA,EAElB,OAAO,MAAM;AAAA,IACZ,MAAM,WAAW,MAAM,OAAO,IAAI,EAAE,QAAQ,KAAK,CAAC;AAAA,IAClD,MAAM,UAAU,SAAS;AAAA,IAEzB,IAAI,YAAY,MAAM;AAAA,MAIrB,iBAAiB,KAAK,IAAI;AAAA,MAC1B,IAAI,KAAK,IAAI,IAAI,gBAAgB,oBAAoB;AAAA,QACpD,MAAM,IAAI,wBACT,cACG,eAAe,8CACf,eAAe,gDAClB,EAAE,KAAK,CACR;AAAA,MACD;AAAA,IACD,EAAO;AAAA,MACN,eAAe;AAAA,MAEf,QAAQ,QAAQ;AAAA,aACV;AAAA,UACJ,MAAM,IAAI,wBACT,eAAe,qCACf,EAAE,KAAK,CACR;AAAA,aACI;AAAA,aACA;AAAA,UACJ,MAAM,IAAI,wBACT,eAAe,iBAAiB,QAAQ,WACxC,EAAE,QAAQ,CACX;AAAA,aACI;AAAA,UACJ,cAAc;AAAA,UACd;AAAA,aACI,WAAW;AAAA,UACf,IAAI,iBAAiB;AAAA,YAAG,OAAO;AAAA,UAC/B,IAAI,QAAQ,gBAAgB,WAAW;AAAA,YACtC,MAAM,MAAM,SAAS,OAAQ,MAAM,eAAe,MAAM;AAAA,YACxD,IAAI,MAAM,QAAQ,cAAc,KAAK;AAAA,cAAe,OAAO;AAAA,UAC5D;AAAA,UACA;AAAA,QACD;AAAA;AAAA;AAAA,IAIF,IAAI,KAAK,IAAI,IAAI,aAAa,SAAS;AAAA,MACtC,MAAM,IAAI,+BACT,mBAAmB,qCAAqC,QACxD,EAAE,KAAK,CACR;AAAA,IACD;AAAA,IACA,MAAM,OAAM,eAAe;AAAA,EAC5B;AAAA;;;ACpHM,MAAM,uBAAuB,UAAU;AAAA,EACpC,OAAO;AACjB;;;ACSA,SAAS,cAAc,CAAC,QAAoC;AAAA,EAC3D,IAAI,OAAO,UAAU,SAAS,aAAa;AAAA,IAC1C,MAAM,IAAI,eACT,2FACD;AAAA,EACD;AAAA,EACA,OAAO,OAAO;AAAA;AAOf,eAAsB,WAAW,CAChC,QACA,QACwB;AAAA,EACxB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UAAU,EAAE,OAAO,QAAQ,GAAG,OAAO,OAAO;AAAA;AAO9D,eAAsB,YAAY,CACjC,QACA,QACwB;AAAA,EACxB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UAAU,EAAE,OAAO,UAAU,GAAG,OAAO,aAAa;AAAA;AAQtE,eAAsB,gBAAgB,CACrC,QACA,QACwB;AAAA,EACxB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UAChB,EAAE,OAAO,aAAa,OAAO,OAAO,KAAK,GACzC,OAAO,QACR;AAAA;AAQD,eAAsB,YAAY,CACjC,QACA,QACwB;AAAA,EACxB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UAChB,EAAE,OAAO,qBAAqB,SAAS,OAAO,QAAQ,GACtD,OAAO,aACR;AAAA;AAQD,eAAsB,mBAAmB,CACxC,QACA,QACwB;AAAA,EACxB,MAAM,YAAY,eAAe,MAAM;AAAA,EACvC,OAAO,UAAU,UAChB,EAAE,OAAO,0BAA0B,SAAS,OAAO,QAAQ,GAC3D,OAAO,SACR;AAAA;AASD,eAAsB,aAAa,CAClC,QACA,QACwB;AAAA,EACxB,MAAM,YAAY,eAAe,MAAM;AAAA,EAEvC,IAAI;AAAA,EACJ,IAAI,OAAO,mBAAmB,OAAO,OAAO;AAAA,IAC3C,QAAQ;AAAA,EACT,EAAO,SAAI,OAAO,iBAAiB;AAAA,IAClC,QAAQ;AAAA,EACT,EAAO;AAAA,IACN,QAAQ;AAAA;AAAA,EAGT,OAAO,UAAU,UAChB;AAAA,IACC;AAAA,IACA,kBAAkB,OAAO;AAAA,IACzB,OAAO,OAAO;AAAA,EACf,GACA,OAAO,OACR;AAAA;;;AC8BM,SAAS,aAAa,CAAC,QAA+B;AAAA,EAC5D,OAAO;AAAA,IACN,UAAU,CAAC,WAAW,SAAS,QAAQ,MAAM;AAAA,IAC7C,YAAY,CAAC,WAAW,WAAW,QAAQ,MAAM;AAAA,IACjD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,UAAU,CAAC,WAAW,SAAS,QAAQ,MAAM;AAAA,IAC7C,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,gBAAgB,MAAM,eAAe,MAAM;AAAA,IAC3C,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,mBAAmB,CAAC,WAAW,kBAAkB,QAAQ,MAAM;AAAA,IAC/D,YAAY,CAAC,WAAW,WAAW,QAAQ,MAAM;AAAA,IACjD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,WAAW,CAAC,WAAW,UAAU,QAAQ,MAAM;AAAA,IAC/C,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,qBAAqB,CAAC,WAAW,oBAAoB,QAAQ,MAAM;AAAA,IACnE,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,mBAAmB,CAAC,WAAW,kBAAkB,QAAQ,MAAM;AAAA,IAC/D,iBAAiB,MAAM,gBAAgB,MAAM;AAAA,IAC7C,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,2BAA2B,CAAC,WAC3B,0BAA0B,QAAQ,MAAM;AAAA,IACzC,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,kBAAkB,CAAC,WAAW,iBAAiB,QAAQ,MAAM;AAAA,IAC7D,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,qBAAqB,CAAC,WAAW,oBAAoB,QAAQ,MAAM;AAAA,IACnE,eAAe,CAAC,WAAW,cAAc,QAAQ,MAAM;AAAA,EACxD;AAAA;;;AC1KM,SAAS,kBAAkB,CACjC,QACwC;AAAA,EACxC,OAAO,aAAa,MAAM,EAAE,OAAO,aAAa;AAAA;;ACyBjD,SAAS,qBAAqB,CAAC,GAAmC;AAAA,EACjE,MAAM,WAAW,EAAE,UAAU;AAAA,EAC7B,MAAM,SAAS,WAAW,EAAE,UAAU,EAAE,CAAC;AAAA,EACzC,MAAM,QAAQ,EAAE,gBAAgB;AAAA,EAChC,MAAM,MAAM,EAAE,gBAAgB;AAAA,EAE9B,IACC,aAAa,gBAAgB,SAC7B,aAAa,gBAAgB,QAC5B;AAAA,IACD,MAAM,cAAc,EAAE,UAAU;AAAA,IAChC,MAAM,YAAY,WACjB,EAAE,UAAU,kCAAkC,CAC/C;AAAA,IACA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,aAAa,EAAE,aAAa;AAAA,EAClC,MAAM,SAAiC,CAAC;AAAA,EACxC,SAAS,IAAI,EAAG,IAAI,YAAY,KAAK;AAAA,IACpC,MAAM,YAAY,EAAE,UAAU;AAAA,IAC9B,IAAI,aAAa,GAAM;AAAA,MAGtB,OAAO,KAAK;AAAA,QACX,MAAM;AAAA,QACN,gBAAgB;AAAA,QAChB,MAAM,WAAW,EAAE,UAAU,EAAE,CAAC;AAAA,MACjC,CAAC;AAAA,IACF,EAAO;AAAA,MACN,OAAO,KAAK;AAAA,QACX,MAAM;AAAA,QACN,gBAAiB,cAAc,IAAO,IAAO;AAAA,QAC7C,MAAM,WAAW,EAAE,UAAU,kCAAkC,CAAC;AAAA,MACjE,CAAC;AAAA;AAAA,EAEH;AAAA,EACA,MAAM,qBAAqB,EAAE,aAAa;AAAA,EAE1C,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAGD,SAAS,iBAAiB,CAAC,GAA+B;AAAA,EACzD,MAAM,WAAW,EAAE,UAAU;AAAA,EAC7B,MAAM,oBAAoB,sBAAsB,CAAC;AAAA,EAEjD,IAAI,aAAa,SAAS,UAAU;AAAA,IACnC,OAAO,EAAE,UAAU,SAAS,UAAU,kBAAkB;AAAA,EACzD;AAAA,EAEA,MAAM,2BAA2B,sBAAsB,CAAC;AAAA,EACxD,OAAO;AAAA,IACN,UAAU,SAAS;AAAA,IACnB;AAAA,IACA;AAAA,EACD;AAAA;AAGD,SAAS,aAAa,CAAC,GAA+B;AAAA,EACrD,OAAO;AAAA,IACN,SAAS,YAAY,CAAC;AAAA,IACtB,cAAc,aAAa,CAAC;AAAA,IAC5B,WAAW,aAAa,CAAC;AAAA,EAC1B;AAAA;AAGD,SAAS,0BAA0B,CAClC,GAC6B;AAAA,EAC7B,MAAM,OAAO,EAAE,UAAU;AAAA,EACzB,QAAQ;AAAA,SACF,yBAAyB;AAAA,MAC7B,OAAO,EAAE,MAAM,SAAS;AAAA,SACpB,yBAAyB;AAAA,MAC7B,OAAO,EAAE,MAAM,YAAY,SAAS,YAAY,CAAC,EAAE;AAAA,SAC/C,yBAAyB;AAAA,MAC7B,OAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,YAAY,CAAC;AAAA,QACtB,cAAc,aAAa,CAAC;AAAA,MAC7B;AAAA;AAAA,MAIA,OAAO,EAAE,MAAM,SAAS;AAAA;AAAA;AAI3B,SAAS,iBAAiB,CAAC,GAAmC;AAAA,EAE7D,MAAM,YAAY,EAAE,UAAU;AAAA,EAC9B,MAAM,YAAY,2BAA2B,CAAC;AAAA,EAC9C,QAAQ;AAAA,SACF,UAAU;AAAA,MACd,OAAO;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,eAAe,EAAE,UAAU;AAAA,QAC3B,QAAQ,EAAE,gBAAgB;AAAA,MAC3B;AAAA,SACI,UAAU;AAAA,MACd,OAAO;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,OAAO,cAAc,CAAC;AAAA,QACtB,eAAe,EAAE,UAAU;AAAA,QAC3B,QAAQ,EAAE,gBAAgB;AAAA,MAC3B;AAAA,SACI,UAAU;AAAA,MACd,OAAO;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,OAAO,cAAc,CAAC;AAAA,QACtB,SAAS,OAAO,CAAC;AAAA,QACjB,eAAe,EAAE,UAAU;AAAA,MAC5B;AAAA,SACI,UAAU;AAAA,MACd,OAAO;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,eAAe,EAAE,UAAU;AAAA,QAC3B,QAAQ,EAAE,gBAAgB;AAAA,MAC3B;AAAA,SACI,UAAU;AAAA,MACd,OAAO;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,eAAe,EAAE,UAAU;AAAA,MAC5B;AAAA;AAAA,MAEA,MAAM,IAAI,MACT,wCAAwC,UAAU,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,GAC/E;AAAA;AAAA;AAIH,SAAS,kBAAkB,CAAC,GAAqC;AAAA,EAChE,MAAM,QAAQ,EAAE,aAAa;AAAA,EAC7B,MAAM,MAA2B,CAAC;AAAA,EAClC,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC/B,IAAI;AAAA,MACH,IAAI,KAAK,kBAAkB,CAAC,CAAC;AAAA,MAC5B,OAAO,GAAG;AAAA,MACX,IACC,aAAa,SACb,EAAE,QAAQ,WAAW,oCAAoC,GACxD;AAAA,QACD,MAAM,IAAI,MAAM,GAAG,EAAE,2BAA2B,IAAI,KAAK,QAAQ;AAAA,MAClE;AAAA,MACA,MAAM;AAAA;AAAA,EAER;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,WAAW,CAAC,GAAoC;AAAA,EACxD,MAAM,cAAc,EAAE,UAAU;AAAA,EAEhC,QAAQ;AAAA,SACF,YAAY,eAAe;AAAA,MAC/B,MAAM,YAAY,OAAO,CAAC;AAAA,MAC1B,MAAM,SAAS,EAAE,gBAAgB;AAAA,MAEjC,MAAM,YAAY,EAAE,UAAU,qBAAqB;AAAA,MACnD,MAAM,OAAO,aAAa,SAAS,EAAE,QAAQ,QAAQ,EAAE;AAAA,MACvD,OAAO;AAAA,QACN,aAAa,YAAY;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,SACK,YAAY,cAAc;AAAA,MAC9B,MAAM,kBAAkB,YAAY,CAAC;AAAA,MACrC,MAAM,eAAe,aAAa,CAAC;AAAA,MACnC,MAAM,eAAe,aAAa,CAAC;AAAA,MACnC,MAAM,UAAU,EAAE,aAAa;AAAA,MAC/B,MAAM,eAA+B,CAAC;AAAA,MACtC,SAAS,IAAI,EAAG,IAAI,SAAS;AAAA,QAAK,aAAa,KAAK,OAAO,CAAC,CAAC;AAAA,MAC7D,OAAO;AAAA,QACN,aAAa,YAAY;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,SACK,YAAY,eAAe;AAAA,MAC/B,MAAM,eAAe,aAAa,CAAC;AAAA,MACnC,MAAM,WAAW,aAAa,GAAG,CAAC;AAAA,MAClC,OAAO,EAAE,aAAa,YAAY,eAAe,cAAc,SAAS;AAAA,IACzE;AAAA,SACK,YAAY,wBAAwB;AAAA,MACxC,MAAM,iBAAiB,EAAE,UAAU;AAAA,MACnC,MAAM,eAAe,aAAa,CAAC;AAAA,MACnC,MAAM,WAAW,aAAa,GAAG,CAAC;AAAA,MAClC,OAAO;AAAA,QACN,aAAa,YAAY;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,SACK,YAAY,UAAU;AAAA,MAC1B,MAAM,iBAAiB,WAAW,EAAE,UAAU,qBAAqB,CAAC;AAAA,MACpE,OAAO,EAAE,aAAa,YAAY,UAAU,eAAe;AAAA,IAC5D;AAAA,SACK,YAAY,wBAAwB;AAAA,MACxC,MAAM,iBAAiB,WAAW,EAAE,UAAU,qBAAqB,CAAC;AAAA,MACpE,MAAM,YAAY,OAAO,CAAC;AAAA,MAC1B,OAAO;AAAA,QACN,aAAa,YAAY;AAAA,QACzB;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,SACK,YAAY,kBAAkB;AAAA,MAClC,MAAM,UAAU,WAAW,EAAE,UAAU,8BAA8B,CAAC;AAAA,MACtE,MAAM,UAAU,WAAW,EAAE,UAAU,8BAA8B,CAAC;AAAA,MACtE,OAAO,EAAE,aAAa,YAAY,kBAAkB,SAAS,QAAQ;AAAA,IACtE;AAAA,SACK,YAAY,cAAc;AAAA,MAC9B,MAAM,sBAAsB,WAAW,EAAE,UAAU,EAAE,CAAC;AAAA,MACtD,MAAM,0BAA0B,WAAW,EAAE,UAAU,EAAE,CAAC;AAAA,MAC1D,MAAM,wBAAwB,WAAW,EAAE,UAAU,EAAE,CAAC;AAAA,MACxD,MAAM,oBAAoB,WAAW,EAAE,UAAU,EAAE,CAAC;AAAA,MACpD,MAAM,uBAAuB,EAAE,aAAa;AAAA,MAC5C,MAAM,QAAQ,EAAE,UAAU;AAAA,MAC1B,MAAM,aAAa,WAAW,EAAE,UAAU,EAAE,CAAC;AAAA,MAC7C,OAAO;AAAA,QACN,aAAa,YAAY;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,SACK,YAAY,kBAAkB;AAAA,MAClC,MAAM,iBAAiB,WAAW,EAAE,UAAU,qBAAqB,CAAC;AAAA,MACpE,MAAM,aAAa,OAAO,CAAC;AAAA,MAC3B,MAAM,YACL,WAAW,SAAS,SACjB,OACA,WAAW,SAAS,SACnB,WAAW,QACX;AAAA,MACL,MAAM,WAAW,WAAW,EAAE,UAAU,sBAAsB,CAAC;AAAA,MAC/D,OAAO;AAAA,QACN,aAAa,YAAY;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA;AAAA,MAEC,MAAM,IAAI,MAAM,yBAAyB,aAAa;AAAA;AAAA;AAIlD,SAAS,4BAA4B,CAC3C,OACoB;AAAA,EACpB,MAAM,QACL,OAAO,UAAU,WAAW,WAAW,UAAU,KAAK,CAAC,IAAI;AAAA,EAC5D,OAAO,kBAAkB,IAAI,YAAY,KAAK,CAAC;AAAA;AAGzC,SAAS,sBAAsB,CACrC,OACA,MACoB;AAAA,EACpB,MAAM,QACL,OAAO,UAAU,WAAW,WAAW,UAAU,KAAK,CAAC,IAAI;AAAA,EAC5D,OAAO,gBAAgB,IAAI,YAAY,KAAK,GAAG,IAAI;AAAA;AAU7C,SAAS,iBAAiB,CAChC,OACA,OACe;AAAA,EACf,MAAM,IAAI,IAAI,YAAY,KAAK;AAAA,EAC/B,MAAM,MAAoB,CAAC;AAAA,EAC3B,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC/B,MAAM,QAAQ,EAAE;AAAA,IAChB,gBAAgB,CAAC;AAAA,IACjB,IAAI,KAAK,MAAM,SAAS,OAAO,EAAE,MAAM,CAAC;AAAA,EACzC;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,eAAe,CACvB,GACA,MACoB;AAAA,EACpB,MAAM,KAAwB;AAAA,IAC7B,SAAS,EAAE,UAAU;AAAA,IACrB,SAAS,EAAE,aAAa;AAAA,IACxB,MAAM,kBAAkB,CAAC;AAAA,IACzB,YAAY,EAAE,UAAU;AAAA,IACxB,mBAAmB,EAAE,UAAU;AAAA,IAC/B,gBAAgB,mBAAmB,CAAC;AAAA,IACpC,SAAS,YAAY,CAAC;AAAA,EACvB;AAAA,EACA,IAAI,MAAM,WAAW;AAAA,IACpB,GAAG,YAAY,KAAK;AAAA,EACrB;AAAA,EACA,OAAO;AAAA;;;AC3VR,IAAM,UAAU;AAGT,SAAS,wBAAwB,CAAC,QAA6B;AAAA,EACrE,MAAM,QAAQ,YAAY,MAAM;AAAA,EAChC,IAAI,QAAQ,MAAM,QAAQ,SAAS;AAAA,IAClC,MAAM,IAAI,WACT,+CAA+C,gCAAgC,OAChF;AAAA,EACD;AAAA,EACA,OAAO;AAAA;AAGD,IAAM,oBAAwD;AAAA,EACpE,IAAI,sBAAsB;AAAA,EAC1B,IAAI,sBAAsB;AAAA,EAC1B,KAAK,sBAAsB;AAAA,EAC3B,IAAI,sBAAsB;AAAA,EAC1B,KAAK,sBAAsB;AAC5B;AAEA,IAAM,wBAA4D;AAAA,GAChE,sBAAsB,QAAQ;AAAA,GAC9B,sBAAsB,UAAU;AAAA,GAChC,sBAAsB,eAAe;AAAA,GACrC,sBAAsB,OAAO;AAAA,GAC7B,sBAAsB,YAAY;AACpC;AAEO,IAAM,eAAsD;AAAA,EAClE,MAAM,yBAAyB;AAAA,EAC/B,YAAY,yBAAyB;AAAA,EACrC,cAAc,yBAAyB;AACxC;AAEA,IAAM,mBAA0D;AAAA,GAC9D,yBAAyB,QAAQ;AAAA,GACjC,yBAAyB,cAAc;AAAA,GACvC,yBAAyB,YAAY;AACvC;AAEO,IAAM,eAAwD;AAAA,EACpE,oBAAoB,iBAAiB;AAAA,EACrC,eAAe,iBAAiB;AAAA,EAChC,gBAAgB,iBAAiB;AAClC;AAEA,IAAM,mBAAkD;AAAA,GACtD,iBAAiB,iBAAiB;AAAA,GAClC,iBAAiB,aAAa;AAAA,GAC9B,iBAAiB,cAAc;AACjC;AAEO,SAAS,gBAAgB,CAAC,SAA6C;AAAA,EAC7E,IAAI,YAAY;AAAA,IAAU,OAAO,EAAE,MAAM,SAAS;AAAA,EAClD,OAAO,MAAM,QAAQ,QAAQ,MAAM,GAAG;AAAA,EACtC,IAAI,MAAM;AAAA,IAET,OAAO,EAAE,MAAM,YAAY,SAAS,MAAO,cAAc,KAAK;AAAA,EAC/D;AAAA,EAEA,OAAO,EAAE,MAAM,YAAY,SAAS,KAAM;AAAA;AAG3C,SAAS,iBAAiB,CAAC,WAA+C;AAAA,EACzE,IAAI,UAAU,SAAS;AAAA,IAAU,OAAO;AAAA,EACxC,IAAI,UAAU,SAAS,YAAY;AAAA,IAClC,OAAO,GAAG,UAAU,WAAW,UAAU;AAAA,EAC1C;AAAA,EACA,OAAO,UAAU;AAAA;AAGlB,SAAS,aAAa,CAAC,OAIZ;AAAA,EACV,OAAO,GAAG,MAAM,WAAW,MAAM,iBAAiB,MAAM;AAAA;AAGzD,SAAS,UAAU,CAAC,OAIlB;AAAA,EACD,OAAO,YAAY,aAAa,MAAM,MAAM,IAAI;AAAA,EAEhD,OAAO,MAAM,QAAQ,gBAAgB,UAAW;AAAA,EAEhD,OAAO,EAAE,SAAS,MAAM,cAAc,MAAM,WAAW,UAAW;AAAA;AAG5D,SAAS,oBAAoB,CAAC,IAAsC;AAAA,EAC1E,QAAQ,GAAG;AAAA,SACL;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,WAAW,iBAAiB,GAAG,OAAO;AAAA,QACtC,eAAe,kBAAkB,GAAG;AAAA,QACpC,QAAQ,yBAAyB,GAAG,MAAM;AAAA,MAC3C;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,WAAW,iBAAiB,GAAG,OAAO;AAAA,QACtC,OAAO,WAAW,GAAG,KAAK;AAAA,QAC1B,eAAe,kBAAkB,GAAG;AAAA,QACpC,QAAQ,yBAAyB,GAAG,MAAM;AAAA,MAC3C;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,WAAW,iBAAiB,GAAG,OAAO;AAAA,QACtC,OAAO,WAAW,GAAG,KAAK;AAAA,QAC1B,eAAe,aAAa,GAAG;AAAA,QAC/B,SAAS,GAAG;AAAA,MACb;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,WAAW,iBAAiB,GAAG,OAAO;AAAA,QACtC,eAAe,kBAAkB,GAAG;AAAA,QACpC,QAAQ,yBAAyB,GAAG,MAAM;AAAA,MAC3C;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,WAAW,iBAAiB,GAAG,OAAO;AAAA,QACtC,eAAe,aAAa,GAAG;AAAA,MAChC;AAAA;AAAA;AAII,SAAS,mBAAmB,CAAC,MAAwC;AAAA,EAC3E,QAAQ,KAAK;AAAA,SACP;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,kBAAkB,KAAK,SAAS;AAAA,QACzC,WAAW,aAAa,KAAK,aAAa;AAAA,QAC1C,QAAQ,KAAK,OAAO,SAAS;AAAA,MAC9B;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,kBAAkB,KAAK,SAAS;AAAA,QACzC,WAAW,aAAa,KAAK,aAAa;AAAA,QAC1C,QAAQ,KAAK,OAAO,SAAS;AAAA,QAC7B,OAAO,cAAc,KAAK,KAAK;AAAA,MAChC;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,kBAAkB,KAAK,SAAS;AAAA,QACzC,WAAW,QAAQ,KAAK,aAAa;AAAA,QACrC,OAAO,cAAc,KAAK,KAAK;AAAA,QAC/B,SAAS,KAAK;AAAA,MACf;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,kBAAkB,KAAK,SAAS;AAAA,QACzC,WAAW,aAAa,KAAK,aAAa;AAAA,QAC1C,QAAQ,KAAK,OAAO,SAAS;AAAA,MAC9B;AAAA,SACI;AAAA,MACJ,OAAO;AAAA,QACN,MAAM;AAAA,QACN,SAAS,kBAAkB,KAAK,SAAS;AAAA,QACzC,WAAW,QAAQ,KAAK,aAAa;AAAA,MACtC;AAAA;AAAA;AAIH,SAAS,YAAY,CAAC,MAAkC;AAAA,EACvD,MAAM,OAAO,sBAAsB;AAAA,EACnC,IAAI,CAAC;AAAA,IAAM,MAAM,IAAI,MAAM,yCAAyC,MAAM;AAAA,EAC1E,OAAO;AAAA;AAGR,SAAS,OAAO,CAAC,MAAqC;AAAA,EACrD,MAAM,OAAO,iBAAiB;AAAA,EAC9B,IAAI,CAAC;AAAA,IAAM,MAAM,IAAI,MAAM,oCAAoC,MAAM;AAAA,EACrE,OAAO;AAAA;AAGR,SAAS,OAAO,CAAC,MAA6B;AAAA,EAC7C,MAAM,OAAO,iBAAiB;AAAA,EAC9B,IAAI,CAAC;AAAA,IAAM,MAAM,IAAI,MAAM,oCAAoC,MAAM;AAAA,EACrE,OAAO;AAAA;AAID,SAAS,OAAO,CAAC,KAA4B;AAAA,EACnD,OAAO,oBAAoB,6BAA6B,GAAG,CAAC;AAAA;AAItD,SAAS,kBAAkB,CAAC,IAA2B;AAAA,EAC7D,OAAO,WAAW,2BAA2B,qBAAqB,EAAE,CAAC,CAAC;AAAA;;;AC7NlD,IAArB;AACuB,IAAvB;AAC6D,IAA7D;AAsBA,qBAAI,iBAAiB,CAAC,QAAoB,SAAuB;AAAA,EAChE,MAAM,IAAI,iBAAK,OAAO,qBAAQ,GAAG;AAAA,EACjC,WAAW,OAAO;AAAA,IAAM,EAAE,OAAO,GAAG;AAAA,EACpC,OAAO,EAAE,OAAO;AAAA;AAGjB,IAAM,YAAY,WACjB,IAAI,WAAW,kCAAkC,CAClD;AAEO,SAAS,gCAAgC,CAC/C,WACA,OACA,KAC6B;AAAA,EAC7B,MAAM,cAAc,WAAW,SAAS;AAAA,EACxC,MAAM,SAAS,UAAU,WAAW;AAAA,EACpC,MAAM,eAAe,YAAY,WAAW;AAAA,EAE5C,OAAO;AAAA,IACN,UAAU,gBAAgB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,eACV,eAAe,aACf,eAAe;AAAA,IAClB,WAAW;AAAA,EACZ;AAAA;AAGM,SAAS,kBAAkB,CACjC,mBACwB;AAAA,EACxB,OAAO,EAAE,UAAU,SAAS,UAAU,kBAAkB;AAAA;AAGlD,SAAS,mBAAmB,CAClC,mBACA,0BACyB;AAAA,EACzB,OAAO;AAAA,IACN,UAAU,SAAS;AAAA,IACnB;AAAA,IACA,0BACC,4BACA,iCAAiC,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE;AAAA,EACzD;AAAA;AAGD,SAAS,cAAc,CAAC,WAAiD;AAAA,EACxE,IAAI,eAAe,WAAW;AAAA,IAC7B,OAAO;AAAA,SACH;AAAA,MACH,OAAO;AAAA,MACP,KAAK;AAAA,MACL,WAAW;AAAA,IACZ;AAAA,EACD;AAAA,EACA,OAAO;AAAA,OACH;AAAA,IACH,OAAO;AAAA,IACP,KAAK;AAAA,IACL,QAAQ,CAAC;AAAA,EACV;AAAA;AAWD,SAAS,sBAAsB,GAA+B;AAAA,EAC7D,OAAO;AAAA,IACN,UAAU,gBAAgB;AAAA,IAC1B,QAAQ,KAAK,OAAO,EAAE;AAAA,IACtB,OAAO;AAAA,IACP,KAAK;AAAA,IACL,aAAa,eAAe;AAAA,IAC5B,WAAW;AAAA,EACZ;AAAA;AAGM,SAAS,sBAAsB,CAAC,MAAoC;AAAA,EAC1E,IAAI,KAAK,aAAa,SAAS,UAAU;AAAA,IACxC,OAAO,mBAAmB,eAAe,KAAK,iBAAiB,CAAC;AAAA,EACjE;AAAA,EACA,OAAO,oBACN,eAAe,KAAK,iBAAiB,GACrC,uBAAuB,CACxB;AAAA;AAIM,SAAS,cAAc,CAC7B,YACA,UACA,KACA,OACS;AAAA,EACT,MAAM,OAAO,YACZ,WAAW,UAAU,GACrB,IAAI,WAAW,CAAC,QAAQ,CAAC,GACzB,WAAW,KAAK,CAAC,GACjB,WAAW,OAAO,CAAC,CACpB;AAAA,EACA,OAAO,cAAc,IAAI;AAAA;AAInB,SAAS,eAAe,CAC9B,YACA,gBACA,WACS;AAAA,EACT,MAAM,OAAO,YACZ,WAAW,UAAU,GACrB,IAAI,WAAW,CAAC,cAAc,CAAC,GAC/B,WAAW,SAAS,CACrB;AAAA,EACA,OAAO,cAAc,IAAI;AAAA;AAI1B,SAAS,WAAW,CAAC,YAAoB,aAA6B;AAAA,EACrE,MAAM,WAAW,WAAW,UAAU,EAAE,MAAM,GAAG,EAAE;AAAA,EACnD,MAAM,MAAM,sBAAK,aAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAAA,EACtD,MAAM,gBAAgB,SAAS,IAAI,UAAU,CAAC;AAAA,EAC9C,OAAO,gBAAgB,IAAI,aAAa;AAAA;AAGlC,SAAS,aAAa,CAC5B,YACA,UACA,KACA,OACA,YAC2C;AAAA,EAC3C,MAAM,aAAa,eAAe,YAAY,UAAU,KAAK,KAAK;AAAA,EAElE,MAAM,WAAW,WAAW,UAAU,EAAE,MAAM,GAAG,EAAE;AAAA,EACnD,MAAM,SAAS,8BAAkB,UAAU,IAAI;AAAA,EAC/C,MAAM,eAAe,OAAO,WAAW;AAAA,EACvC,MAAM,iBAAiB,eACpB,eAAe,aACf,eAAe;AAAA,EAElB,MAAM,UAAU,YAAY,YAAY,UAAU;AAAA,EAClD,MAAM,cAAc,gBAAgB,YAAY,gBAAgB,OAAO;AAAA,EAEvE,OAAO,EAAE,SAAS,YAAY;AAAA;;;AC9KxB,IAHP;AAiCA,IAAM,mBAAmB;AAGlB,SAAS,eAAe,CAAC,UAA2B;AAAA,EAC1D,QAAQ,WAAW,OAAU;AAAA;AAI9B,SAAS,gBAAgB,CACxB,YACA,oBACa;AAAA,EACb,MAAM,QAAsB,CAAC;AAAA,EAC7B,MAAM,KAAK,IAAI,WAAW,CAAC,KAAO,kBAAkB,CAAC,CAAC;AAAA,EACtD,WAAW,MAAM,YAAY;AAAA,IAC5B,MAAM,UAAU,WAAW,EAAE;AAAA,IAC7B,MAAM,KAAK,IAAI,WAAW,CAAC,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC3C,MAAM,KAAK,OAAO;AAAA,EACnB;AAAA,EACA,MAAM,KAAK,IAAI,WAAW,CAAC,KAAO,WAAW,MAAM,CAAC,CAAC;AAAA,EACrD,MAAM,KAAK,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAAA,EAC7C,OAAO,YAAY,GAAG,KAAK;AAAA;AAIrB,SAAS,mBAAmB,CAClC,YACA,oBACA,OACS;AAAA,EACT,IAAI,qBAAqB,KAAK,qBAAqB,WAAW,QAAQ;AAAA,IACrE,MAAM,IAAI,MACT,4CAA4C,WAAW,QACxD;AAAA,EACD;AAAA,EACA,MAAM,eAAe,iBAAiB,YAAY,kBAAkB;AAAA,EACpE,MAAM,SAAS,QAAQ,YAAY;AAAA,EACnC,MAAM,UAAU,OAAO,gBAAgB,YAAY;AAAA,EACnD,OAAO,WAAW,SAAS,WAAW,MAAM,CAAC;AAAA;AAIvC,SAAS,+BAA+B,CAC9C,YACA,oBACA,OACA,KACA,WAA6B,gBAAgB,MACjB;AAAA,EAC5B,MAAM,eAAe,iBAAiB,YAAY,kBAAkB;AAAA,EACpE,MAAM,SAAS,WAAW,QAAQ,YAAY,CAAC;AAAA,EAE/C,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ,CAAC;AAAA,IACT;AAAA,EACD;AAAA;AAID,SAAS,cAAc,CAAC,IAA+B;AAAA,EACtD,MAAM,UAA6B;AAAA,OAC/B;AAAA,IACH,MAAM,uBAAuB,GAAG,IAAI;AAAA,EACrC;AAAA,EACA,OAAO,cAAc,qBAAqB,OAAO,CAAC;AAAA;AAInD,SAAS,wBAAwB,CAAC,IAA+B;AAAA,EAChE,MAAM,YAAY,GAAG,KAAK;AAAA,EAC1B,MAAM,WAAW,eAAe,EAAE;AAAA,EAClC,OAAO,eACN,UACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA;AAIM,SAAS,qBAAqB,CAAC,IAA+B;AAAA,EACpE,MAAM,YAAY,GAAG,KAAK;AAAA,EAG1B,IAAI,gBAAgB,UAAU,QAAQ,GAAG;AAAA,IACxC,MAAM,UAAU,yBAAyB,EAAE;AAAA,IAE3C,IAAI,aAAa;AAAA,IACjB,WAAW,SAAS,UAAU,QAAQ;AAAA,MACrC,aAAa,gBACZ,YACA,MAAM,gBACN,MAAM,IACP;AAAA,IACD;AAAA,IACA,OAAO;AAAA,EACR;AAAA,EAGA,IAAI,aAAa,eAAe,EAAE;AAAA,EAClC,WAAW,SAAS,UAAU,QAAQ;AAAA,IACrC,MAAM,UAAU,eACf,YACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,IACA,aAAa,gBAAgB,SAAS,MAAM,gBAAgB,MAAM,IAAI;AAAA,EACvE;AAAA,EACA,OAAO;AAAA;AAID,SAAS,YAAY,CAC3B,IACA,YACA,YACoB;AAAA,EACpB,MAAM,WAAW,WAAW,UAAU,EAAE,MAAM,GAAG,EAAE;AAAA,EACnD,MAAM,eAAe,WAAW,+BAAkB,UAAU,IAAI,CAAC;AAAA,EAEjE,MAAM,cAAc,WAAW,UAAU,CAAC,OAAO,OAAO,YAAY;AAAA,EACpE,IAAI,gBAAgB,IAAI;AAAA,IACvB,MAAM,IAAI,MACT,gEACD;AAAA,EACD;AAAA,EAEA,MAAM,YAAY;AAAA,OACb,GAAG,KAAK;AAAA,EACb;AAAA,EAGA,IAAI,gBAAgB,UAAU,QAAQ,GAAG;AAAA,IACxC,OAAO,kBAAkB,IAAI,WAAW,UAAU;AAAA,EACnD;AAAA,EAGA,OAAO,eAAe,IAAI,WAAW,YAAY,YAAY,WAAW;AAAA;AAIzE,SAAS,iBAAiB,CACzB,IACA,WACA,YACoB;AAAA,EACpB,MAAM,SAAS,CAAC,GAAG,UAAU,MAAM;AAAA,EACnC,MAAM,cAAc,yBAAyB,EAAE;AAAA,EAG/C,MAAM,WAAW,WAAW,UAAU,EAAE,MAAM,GAAG,EAAE;AAAA,EACnD,MAAM,MAAM,uBAAU,aAAa,UAAU,EAAE,MAAM,KAAK,CAAC;AAAA,EAC3D,MAAM,gBAAgB,SAAS,IAAI,UAAU,CAAC;AAAA,EAC9C,MAAM,UAAU,gBAAgB,IAAI,aAAa;AAAA,EAEjD,OAAO,KAAK;AAAA,IACX,MAAM;AAAA,IACN,gBAAgB,eAAe;AAAA,IAC/B,MAAM;AAAA,EACP,CAAC;AAAA,EAED,MAAM,eAA0C,KAAK,WAAW,OAAO;AAAA,EACvE,MAAM,WAAW,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE;AAAA,EAG9D,IAAI,YAAY,UAAU,oBAAoB;AAAA,IAC7C,OAAO;AAAA,SACH;AAAA,MACH,MAAM,KAAK,GAAG,MAAM,mBAAmB,aAAa;AAAA,IACrD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,MAAM,KAAK,GAAG,MAAM,mBAAmB,aAAa;AAAA,EACrD;AAAA;AAID,SAAS,cAAc,CACtB,IACA,WACA,YACA,YACA,aACoB;AAAA,EACpB,MAAM,SAAS,CAAC,GAAG,UAAU,MAAM;AAAA,EAGnC,IAAI,aAAa,eAAe,EAAE;AAAA,EAClC,WAAW,SAAS,QAAQ;AAAA,IAC3B,MAAM,UAAU,eACf,YACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,IACA,aAAa,gBAAgB,SAAS,MAAM,gBAAgB,MAAM,IAAI;AAAA,EACvE;AAAA,EAGA,SAAS,IAAI,OAAO,OAAQ,IAAI,aAAa,KAAK;AAAA,IACjD,MAAM,cAAoC;AAAA,MACzC,MAAM;AAAA,MACN,gBAAgB,eAAe;AAAA,MAE/B,MAAM,WAAW;AAAA,IAClB;AAAA,IACA,OAAO,KAAK,WAAW;AAAA,IACvB,MAAM,UAAU,eACf,YACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,IACA,aAAa,gBACZ,SACA,YAAY,gBACZ,YAAY,IACb;AAAA,EACD;AAAA,EAGA,QAAQ,SAAS,gBAAgB,cAChC,YACA,SAAS,UACT,UAAU,KACV,UAAU,OACV,UACD;AAAA,EAEA,OAAO,KAAK;AAAA,IACX,MAAM;AAAA,IACN,gBAAgB,eAAe;AAAA,IAC/B,MAAM;AAAA,EACP,CAAC;AAAA,EACD,aAAa;AAAA,EAEb,MAAM,eAA0C,KAAK,WAAW,OAAO;AAAA,EAGvE,MAAM,WAAW,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE;AAAA,EAC9D,IAAI,iBAAiB;AAAA,EAGrB,IAAI,YAAY,UAAU,oBAAoB;AAAA,IAC7C,iBAAiB,0BAChB,cACA,YACA,UACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,MAAM;AAAA,SACF,GAAG;AAAA,MACN,mBAAmB;AAAA,IACpB;AAAA,EACD;AAAA;AAID,eAAsB,uBAAuB,CAC5C,IACA,SACA,YAC6B;AAAA,EAC7B,MAAM,eAAe,QAAQ;AAAA,EAE7B,MAAM,cAAc,WAAW,UAAU,CAAC,OAAO,OAAO,YAAY;AAAA,EACpE,IAAI,gBAAgB,IAAI;AAAA,IACvB,MAAM,IAAI,MACT,4DACD;AAAA,EACD;AAAA,EAEA,MAAM,YAAY;AAAA,OACb,GAAG,KAAK;AAAA,EACb;AAAA,EAGA,IAAI,gBAAgB,UAAU,QAAQ,GAAG;AAAA,IACxC,OAAO,6BAA6B,IAAI,WAAW,OAAO;AAAA,EAC3D;AAAA,EAGA,OAAO,0BACN,IACA,WACA,SACA,YACA,WACD;AAAA;AAID,eAAe,4BAA4B,CAC1C,IACA,WACA,SAC6B;AAAA,EAC7B,MAAM,SAAS,CAAC,GAAG,UAAU,MAAM;AAAA,EACnC,MAAM,cAAc,yBAAyB,EAAE;AAAA,EAE/C,MAAM,WAAW,MAAM,QAAQ,KAAK,WAAW,WAAW,CAAC;AAAA,EAC3D,MAAM,UAAU,WAAW,QAAQ;AAAA,EAEnC,OAAO,KAAK;AAAA,IACX,MAAM;AAAA,IACN,gBAAgB,eAAe;AAAA,IAC/B,MAAM;AAAA,EACP,CAAC;AAAA,EAED,MAAM,eAA0C,KAAK,WAAW,OAAO;AAAA,EAEvE,OAAO;AAAA,OACH;AAAA,IACH,MAAM,KAAK,GAAG,MAAM,mBAAmB,aAAa;AAAA,EACrD;AAAA;AAID,eAAe,yBAAyB,CACvC,IACA,WACA,SACA,YACA,aAC6B;AAAA,EAC7B,MAAM,SAAS,CAAC,GAAG,UAAU,MAAM;AAAA,EAGnC,IAAI,aAAa,eAAe,EAAE;AAAA,EAClC,WAAW,SAAS,QAAQ;AAAA,IAC3B,MAAM,UAAU,eACf,YACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,IACA,aAAa,gBAAgB,SAAS,MAAM,gBAAgB,MAAM,IAAI;AAAA,EACvE;AAAA,EAGA,SAAS,IAAI,OAAO,OAAQ,IAAI,aAAa,KAAK;AAAA,IACjD,MAAM,cAAoC;AAAA,MACzC,MAAM;AAAA,MACN,gBAAgB,eAAe;AAAA,MAE/B,MAAM,WAAW;AAAA,IAClB;AAAA,IACA,OAAO,KAAK,WAAW;AAAA,IACvB,MAAM,UAAU,eACf,YACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,IACA,aAAa,gBACZ,SACA,YAAY,gBACZ,YAAY,IACb;AAAA,EACD;AAAA,EAGA,MAAM,UAAU,eACf,YACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,EACA,MAAM,WAAW,MAAM,QAAQ,KAAK,WAAW,OAAO,CAAC;AAAA,EACvD,MAAM,UAAU,WAAW,QAAQ;AAAA,EACnC,MAAM,cAAc,gBACnB,SACA,eAAe,YACf,OACD;AAAA,EAEA,OAAO,KAAK;AAAA,IACX,MAAM;AAAA,IACN,gBAAgB,eAAe;AAAA,IAC/B,MAAM;AAAA,EACP,CAAC;AAAA,EACD,aAAa;AAAA,EAEb,MAAM,eAA0C,KAAK,WAAW,OAAO;AAAA,EAGvE,MAAM,WAAW,OAAO,OAAO,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE;AAAA,EAC9D,IAAI,iBAAiB;AAAA,EAGrB,IAAI,YAAY,UAAU,oBAAoB;AAAA,IAC7C,iBAAiB,0BAChB,cACA,YACA,UACD;AAAA,EACD;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,MAAM;AAAA,SACF,GAAG;AAAA,MACN,mBAAmB;AAAA,IACpB;AAAA,EACD;AAAA;AAIM,SAAS,gBAAgB,CAC/B,IACA,YACoB;AAAA,EACpB,MAAM,YAAY,GAAG,KAAK;AAAA,EAG1B,IAAI,gBAAgB,UAAU,QAAQ,GAAG;AAAA,IACxC,OAAO;AAAA,EACR;AAAA,EAEA,MAAM,aAAa,sBAAsB,EAAE;AAAA,EAC3C,MAAM,iBAAiB,0BACtB,WACA,YACA,UACD;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,MAAM;AAAA,SACF,GAAG;AAAA,MACN,mBAAmB;AAAA,IACpB;AAAA,EACD;AAAA;AAID,SAAS,yBAAyB,CACjC,WACA,YACA,YAC4B;AAAA,EAC5B,MAAM,SAAS,CAAC,GAAG,UAAU,MAAM;AAAA,EACnC,IAAI,UAAU;AAAA,EAGd,SAAS,IAAI,OAAO,OAAQ,IAAI,WAAW,QAAQ,KAAK;AAAA,IACvD,MAAM,cAAoC;AAAA,MACzC,MAAM;AAAA,MACN,gBAAgB,eAAe;AAAA,MAE/B,MAAM,WAAW;AAAA,IAClB;AAAA,IACA,OAAO,KAAK,WAAW;AAAA,IACvB,MAAM,UAAU,eACf,SACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,IACA,UAAU,gBACT,SACA,YAAY,gBACZ,YAAY,IACb;AAAA,EACD;AAAA,EAEA,OAAO,KAAK,WAAW,OAAO;AAAA;AAIxB,SAAS,yBAAyB,CACxC,QACA,WACoB;AAAA,EACpB,MAAM,YAAY,OAAO,KAAK;AAAA,EAE9B,IAAI,CAAC,gBAAgB,UAAU,QAAQ,GAAG;AAAA,IACzC,MAAM,IAAI,MACT,+EACD;AAAA,EACD;AAAA,EAGA,MAAM,WAAW,IAAI;AAAA,EACrB,MAAM,aAAqC,CAAC;AAAA,EAE5C,WAAW,OAAO,WAAW;AAAA,IAC5B,MAAM,eAAe,IAAI,KACvB;AAAA,IACF,WAAW,SAAS,aAAa,QAAQ;AAAA,MACxC,IAAI,MAAM,SAAS,eAAe,CAAC,SAAS,IAAI,MAAM,IAAI,GAAG;AAAA,QAC5D,SAAS,IAAI,MAAM,IAAI;AAAA,QACvB,WAAW,KAAK,KAAK;AAAA,MACtB;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,WAAW,WAAW,GAAG;AAAA,IAC5B,MAAM,IAAI,MAAM,kDAAkD;AAAA,EACnE;AAAA,EAEA,MAAM,eAA0C;AAAA,OAC5C;AAAA,IACH,QAAQ;AAAA,EACT;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,MAAM,KAAK,OAAO,MAAM,mBAAmB,aAAa;AAAA,EACzD;AAAA;;;ACleD,SAAS,aAAa,CAAC,MAAiD;AAAA,EACvE,IAAI,SAAS;AAAA,IAAS,OAAO,sBAAsB;AAAA,EACnD,IAAI,SAAS;AAAA,IAAc,OAAO,sBAAsB;AAAA,EACxD,OAAO,sBAAsB;AAAA;AAG9B,SAAS,qBAAqB,CAC7B,KAC4C;AAAA,EAC5C,IAAI,CAAC,OAAO,IAAI,WAAW;AAAA,IAAG,OAAO,CAAC;AAAA,EACtC,OAAO,IAAI,IAAI,CAAC,OACf,qBAAqB,OAAO,OAAO,WAAW,QAAQ,EAAE,IAAI,EAAE,CAC/D;AAAA;AAKD,SAAS,wBAAwB,CAChC,MACA,OACA,KACoB;AAAA,EACpB,IAAI,KAAK,YAAY;AAAA,IACpB,OAAO,gCACN,KAAK,YAEL,KAAK,oBACL,OACA,KACA,KAAK,QACN;AAAA,EACD;AAAA,EAEA,OAAO,iCAAiC,KAAK,WAAY,OAAO,GAAG;AAAA;AAGpE,SAAS,WAAW,CAEnB,mBACA,WACgB;AAAA,EAChB,OAAO,YACJ,oBAAoB,iBAAiB,IACrC,mBAAmB,iBAAiB;AAAA;AAGxC,SAAS,wBAAwB,CAAC,OAGhC;AAAA,EACD,IAAI,CAAC;AAAA,IAAO,OAAO,EAAE,SAAS,GAAM,SAAS,EAAW;AAAA,EACxD,OAAO,EAAE,SAAS,MAAM,oBAAoB,SAAS,MAAM,GAAG;AAAA;AAGxD,SAAS,kBAAkB,CACjC,SACoB;AAAA,EACpB,QAAQ,SAAS,YAAY,yBAAyB,QAAQ,KAAK;AAAA,EACnE,MAAM,MAAM,YAAY,QAAQ,GAAG;AAAA,EACnC,MAAM,QAAQ,YAAY,QAAQ,KAAK;AAAA,EAEvC,MAAM,oBAAoB,yBAAyB,SAAS,OAAO,GAAG;AAAA,EACtE,MAAM,YAAY,GAAG,UAAU,QAAQ,SAAS;AAAA,EAEhD,MAAM,KAAwB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA,MAAM,YAAY,mBAAmB,QAAQ,SAAS;AAAA,IACtD,YAAY,WAAW;AAAA,IACvB,mBAAmB,cAAc,QAAQ,iBAAiB;AAAA,IAC1D,gBAAgB,sBAAsB,QAAQ,cAAc;AAAA,IAC5D,SAAS;AAAA,MACR,aAAa,YAAY;AAAA,MACzB;AAAA,MACA,QAAQ,YAAY,QAAQ,MAAM;AAAA,MAClC,MAAM,QAAQ,QAAQ;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,IAAI,QAAQ,YAAY;AAAA,IACvB,GAAG,YAAY,EAAE,YAAY,QAAQ,WAAW;AAAA,EACjD;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,iBAAiB,CAChC,SACoB;AAAA,EACpB,QAAQ,SAAS,YAAY,yBAAyB,QAAQ,KAAK;AAAA,EACnE,MAAM,MAAM,YAAY,QAAQ,GAAG;AAAA,EACnC,MAAM,QAAQ,YAAY,QAAQ,KAAK;AAAA,EAEvC,MAAM,oBAAoB,yBAAyB,SAAS,OAAO,GAAG;AAAA,EAEtE,MAAM,KAAwB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA,MAAM,YAAY,mBAAmB,QAAQ,SAAS;AAAA,IACtD,YAAY,WAAW;AAAA,IACvB,mBAAmB,cAAc,QAAQ,iBAAiB;AAAA,IAC1D,gBAAgB,sBAAsB,QAAQ,cAAc;AAAA,IAC5D,SAAS;AAAA,MACR,aAAa,YAAY;AAAA,MACzB,iBAAiB,QAAQ;AAAA,MACzB,cAAc,QAAQ;AAAA,MACtB,cAAc,QAAQ;AAAA,MACtB,cAAc,QAAQ;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,IAAI,QAAQ,YAAY;AAAA,IACvB,GAAG,YAAY,EAAE,YAAY,QAAQ,WAAW;AAAA,EACjD;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,mBAAmB,CAClC,SACoB;AAAA,EACpB,QAAQ,SAAS,YAAY,yBAAyB,QAAQ,KAAK;AAAA,EACnE,MAAM,MAAM,YAAY,QAAQ,GAAG;AAAA,EACnC,MAAM,QAAQ,YAAY,QAAQ,KAAK;AAAA,EAEvC,MAAM,oBAAoB,yBAAyB,SAAS,OAAO,GAAG;AAAA,EACtE,MAAM,iBAAiB,QAAQ,kBAAkB,eAAe;AAAA,EAEhE,MAAM,KAAwB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA,MAAM,YAAY,mBAAmB,QAAQ,SAAS;AAAA,IACtD,YAAY,WAAW;AAAA,IACvB,mBAAmB,cAAc,QAAQ,iBAAiB;AAAA,IAC1D,gBAAgB,sBAAsB,QAAQ,cAAc;AAAA,IAC5D,SAAS;AAAA,MACR,aAAa,YAAY;AAAA,MACzB;AAAA,MACA,cAAc,QAAQ;AAAA,MACtB,UAAU,QAAQ;AAAA,IACnB;AAAA,EACD;AAAA,EAEA,IAAI,QAAQ,YAAY;AAAA,IACvB,GAAG,YAAY,EAAE,YAAY,QAAQ,WAAW;AAAA,EACjD;AAAA,EACA,OAAO;AAAA;;;ACpMR,SAAS,IAAI,CAAC,IAA+B;AAAA,EAC5C,OAAO,cAAc,qBAAqB,EAAE,CAAC;AAAA;AAIvC,SAAS,SAAS,CAAC,IAA+B;AAAA,EACxD,MAAM,UAA6B;AAAA,OAC/B;AAAA,IACH,MAAM,uBAAuB,GAAG,IAAI;AAAA,EACrC;AAAA,EACA,OAAO,KAAK,OAAO;AAAA;AAIb,SAAS,eAAe,CAC9B,IACA,YACoB;AAAA,EACpB,MAAM,UAAU,UAAU,EAAE;AAAA,EAC5B,MAAM,YAAY,GAAG,KAAK;AAAA,EAG1B,QAAQ,YAAY,cACnB,SACA,SAAS,UACT,UAAU,KACV,UAAU,OACV,UACD;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,MAAM;AAAA,SACF,GAAG;AAAA,MACN,mBAAmB;AAAA,WACf;AAAA,QACH,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,EACD;AAAA;AAID,eAAsB,0BAA0B,CAC/C,IACA,SAC6B;AAAA,EAC7B,MAAM,UAAU,UAAU,EAAE;AAAA,EAC5B,MAAM,YAAY,GAAG,KAAK;AAAA,EAG1B,MAAM,aAAa,eAClB,SACA,SAAS,UACT,UAAU,KACV,UAAU,KACX;AAAA,EAGA,MAAM,WAAW,MAAM,QAAQ,KAAK,WAAW,UAAU,CAAC;AAAA,EAC1D,MAAM,UAAU,WAAW,QAAQ;AAAA,EAEnC,OAAO;AAAA,OACH;AAAA,IACH,MAAM;AAAA,SACF,GAAG;AAAA,MACN,mBAAmB;AAAA,WACf;AAAA,QACH,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,EACD;AAAA;AAIM,SAAS,gBAAgB,CAAC,IAA+B;AAAA,EAC/D,OAAO,KAAK,EAAE;AAAA;AAIR,SAAS,gBAAgB,CAAC,IAA+B;AAAA,EAC/D,MAAM,YAAY,GAAG,KAAK;AAAA,EAG1B,IAAI,YAAY,WAAW;AAAA,IAC1B,OAAO,sBAAsB,EAAE;AAAA,EAChC;AAAA,EAGA,MAAM,iBAAiB,UAAU,EAAE;AAAA,EACnC,MAAM,KAAK;AAAA,EACX,MAAM,UAAU,eACf,gBACA,SAAS,UACT,GAAG,KACH,GAAG,KACJ;AAAA,EACA,OAAO,gBAAgB,SAAS,GAAG,aAAa,GAAG,SAAS;AAAA;AAItD,SAAS,WAAW,CAC1B,IACA,YACoB;AAAA,EACpB,IAAI,GAAG,KAAK,aAAa,SAAS,WAAW;AAAA,IAC5C,MAAM,IAAI,MAAM,+BAA+B;AAAA,EAChD;AAAA,EACA,MAAM,OAAO,GAAG;AAAA,EAChB,MAAM,mBACL,KAAK;AAAA,EACN,MAAM,gBAAgB,iBAAiB,EAAE;AAAA,EAEzC,QAAQ,YAAY,cACnB,eACA,SAAS,WACT,iBAAiB,KACjB,iBAAiB,OACjB,UACD;AAAA,EAEA,OAAO;AAAA,OACH;AAAA,IACH,MAAM;AAAA,SACF;AAAA,MACH,0BAA0B;AAAA,WACtB;AAAA,QACH,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,EACD;AAAA;AAID,eAAsB,sBAAsB,CAC3C,IACA,SAC6B;AAAA,EAC7B,IAAI,GAAG,KAAK,aAAa,SAAS,WAAW;AAAA,IAC5C,MAAM,IAAI,MAAM,+BAA+B;AAAA,EAChD;AAAA,EACA,MAAM,OAAO,GAAG;AAAA,EAChB,MAAM,mBACL,KAAK;AAAA,EACN,MAAM,gBAAgB,iBAAiB,EAAE;AAAA,EAEzC,MAAM,aAAa,eAClB,eACA,SAAS,WACT,iBAAiB,KACjB,iBAAiB,KAClB;AAAA,EAEA,MAAM,WAAW,MAAM,QAAQ,KAAK,WAAW,UAAU,CAAC;AAAA,EAC1D,MAAM,UAAU,WAAW,QAAQ;AAAA,EAEnC,OAAO;AAAA,OACH;AAAA,IACH,MAAM;AAAA,SACF;AAAA,MACH,0BAA0B;AAAA,WACtB;AAAA,QACH,WAAW;AAAA,MACZ;AAAA,IACD;AAAA,EACD;AAAA;;;ACzJD,eAAsB,eAAe,CACpC,QACA,QACiC;AAAA,EACjC,MAAM,MAAM,WAAW,qBAAqB,OAAO,WAAW,CAAC;AAAA,EAE/D,MAAM,OAA+B,EAAE,IAAI,IAAI;AAAA,EAC/C,IAAI,OAAO,YAAY;AAAA,IACtB,KAAK,aACJ,OAAO,OAAO,eAAe,WAC1B,OAAO,aACP,WAAW,OAAO,UAAU;AAAA,EACjC;AAAA,EAOA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,OAAO,MAAM,OAAO,QAAQ,oBAAoB;AAAA,MAC/C,QAAQ;AAAA,MACR;AAAA,MACA,YAAY;AAAA,IACb,CAAC;AAAA,IACA,OAAO,OAAO;AAAA,IACf,IAAI,iBAAiB,oBAAoB,MAAM,SAAS;AAAA,MACvD,IAAI;AAAA,QACH,OAAO,KAAK,MAAM,MAAM,OAAO;AAAA,QAC9B,MAAM;AAAA,QACP,MAAM;AAAA;AAAA,IAER,EAAO,SAAI,iBAAiB,cAAc;AAAA,MAGzC,MAAM,OAAO,iBAAiB,OAAO,WAAW;AAAA,MAChD,MAAM,UAAU,MAAM,eAAe,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,MAAM,IAAI;AAAA,MACvE,IAAI,YAAY;AAAA,QAAM,MAAM;AAAA,MAC5B,OAAO,EAAE,KAAK;AAAA,IACf,EAAO;AAAA,MACN,MAAM;AAAA;AAAA;AAAA,EAIR,IAAI,KAAK,OAAO;AAAA,IACf,MAAM,IAAI,eAAe,KAAK,UAAU,KAAK,OAAO;AAAA,MACnD,QAAQ,KAAK;AAAA,MACb,YAAY,KAAK;AAAA,MACjB,MAAM,KAAK,QAAQ,iBAAiB,OAAO,WAAW;AAAA,IACvD,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,OACL,OAAO,SAAS,WACb,KAAK,QAAQ,MAAM,EAAE,IACpB,KAAK,QAAQ,iBAAiB,OAAO,WAAW;AAAA,EAErD,IAAI,OAAO,MAAM;AAAA,IAChB,MAAM,gBAAgB,OAAO,SAAS,OAAO,IAAI,OAAO;AAAA,IACxD,MAAM,UAAU,MAAM,0BAA0B,QAAQ;AAAA,MACvD;AAAA,MACA;AAAA,IACD,CAAC;AAAA,IACD,OAAO,EAAE,MAAM,QAAQ;AAAA,EACxB;AAAA,EAEA,OAAO,EAAE,KAAK;AAAA;;;ACnBR,SAAS,aAAa,GAAuB;AAAA,EACnD,OAAO;AAAA,IACN,KAAK,GAAG,QAAQ,cAAc,SAAS,QAAQ,EAAE,QAAQ,CAAC;AAAA,EAC3D;AAAA;AAUM,SAAS,WAAW,GAAe;AAAA,EACzC,MAAM,OAAO,IAAI;AAAA,EACjB,MAAM,QAAQ,IAAI;AAAA,EAElB,SAAS,QAAW,CAAC,KAAa,IAAkC;AAAA,IACnE,MAAM,OAAO,MAAM,IAAI,GAAG,KAAK,QAAQ,QAAQ;AAAA,IAG/C,MAAM,MAAM,KAAK,KAAK,IAAI,EAAE;AAAA,IAC5B,MAAM,IACL,KACA,IAAI,MAAM,MAAM,EAAE,CACnB;AAAA,IACA,OAAO;AAAA;AAAA,EAGR,OAAO;AAAA,IACN,OAAO,CAAC,KAAK,UAAU;AAAA,MACtB,OAAO,SAAS,KAAK,YAAY;AAAA,QAChC,IAAI,UAAU,KAAK,IAAI,GAAG;AAAA,QAC1B,IAAI,YAAY;AAAA,UAAW,UAAU,MAAM,SAAS;AAAA,QACpD,KAAK,IAAI,KAAK,UAAU,EAAE;AAAA,QAC1B,OAAO;AAAA,OACP;AAAA;AAAA,IAEF,KAAK,CAAC,KAAK;AAAA,MACV,KAAK,OAAO,GAAG;AAAA;AAAA,IAEhB,OAAO,CAAC,KAAK,OAAO;AAAA,MACnB,OAAO,SAAS,KAAK,YAAY;AAAA,QAChC,IAAI,KAAK,IAAI,GAAG,MAAM,QAAQ;AAAA,UAAI,KAAK,IAAI,KAAK,KAAK;AAAA,OACrD;AAAA;AAAA,IAEF,IAAI,CAAC,KAAK;AAAA,MACT,OAAO,KAAK,IAAI,GAAG;AAAA;AAAA,EAErB;AAAA;AAGD,SAAS,QAAQ,CAAC,QAAgB,SAAyB;AAAA,EAC1D,OAAO,GAAG,OAAO,OAAO,MAAM,YAAY;AAAA;AAUpC,SAAS,kBAAkB,CACjC,SAAmC,CAAC,GACrB;AAAA,EACf,MAAM,SAAS,OAAO,UAAU,cAAc;AAAA,EAC9C,MAAM,QAAQ,OAAO,SAAS,YAAY;AAAA,EAE1C,OAAO;AAAA,IACN,OAAO,GAAG,QAAQ,WAAW;AAAA,MAC5B,OAAO,MAAM,QAAQ,SAAS,QAAQ,OAAO,GAAG,MAC/C,OAAO,IAAI,EAAE,QAAQ,QAAQ,CAAC,CAC/B;AAAA;AAAA,IAED,KAAK,GAAG,QAAQ,WAAW;AAAA,MAC1B,OAAO,MAAM,MAAM,SAAS,QAAQ,OAAO,CAAC;AAAA;AAAA,IAE7C,OAAO,GAAG,QAAQ,SAAS,SAAS;AAAA,MACnC,OAAO,MAAM,UAAU,SAAS,QAAQ,OAAO,GAAG,KAAK;AAAA;AAAA,SAElD,KAAI,GAAG,QAAQ,WAAW;AAAA,MAC/B,OAAO,MAAM,OAAO,SAAS,QAAQ,OAAO,CAAC;AAAA;AAAA,EAE/C;AAAA;AAID,eAAsB,YAAY,CACjC,QACA,SACkB;AAAA,EAClB,IAAI,OAAO;AAAA,IACV,OAAO,OAAO,aAAa,QAAQ,EAAE,QAAQ,QAAQ,CAAC;AAAA,EACvD,OAAO,SAAS,QAAQ,EAAE,QAAQ,CAAC;AAAA;AAQpC,eAAsB,YAAY,CACjC,QACA,SACA,OACgB;AAAA,EAChB,IAAI,CAAC,OAAO;AAAA,IAAc;AAAA,EAC1B,IAAI;AAAA,IACH,MAAM,OAAO,aAAa,QAAQ,EAAE,QAAQ,SAAS,MAAM,CAAC;AAAA,IAC3D,MAAM;AAAA;AAyCT,eAAsB,cAAc,CACnC,SACA,QACgC;AAAA,EAChC,QAAQ,QAAQ,SAAS,WAAW;AAAA,EACpC,MAAM,WAAW,OAAO,YAAY;AAAA,EAEpC,MAAM,gBAAgB,MAAM,OAAO,IAAI,EAAE,QAAQ,QAAQ,CAAC;AAAA,EAC1D,MAAM,UAAU,MAAM,QAAQ,KAAK,EAAE,QAAQ,QAAQ,CAAC;AAAA,EAEtD,IAAI,YAAY,aAAa,kBAAkB,SAAS;AAAA,IACvD,OAAO,EAAE,OAAO,OAAO,eAAe,QAAQ;AAAA,EAC/C;AAAA,EACA,IAAI,gBAAgB,WAAW,CAAC,UAAU;AAAA,IACzC,OAAO,EAAE,OAAO,OAAO,eAAe,QAAQ;AAAA,EAC/C;AAAA,EAEA,MAAM,QAAQ,MAAM,EAAE,QAAQ,QAAQ,CAAC;AAAA,EACvC,OAAO,EAAE,OAAO,MAAM,eAAe,QAAQ;AAAA;AA+BvC,SAAS,oBAAoB,CACnC,SACA,QACuB;AAAA,EACvB,QAAQ,QAAQ,WAAW,QAAQ,UAAU;AAAA,EAC7C,MAAM,aAAa,OAAO,cAAc;AAAA,EACxC,IAAI,UAAU;AAAA,EAEd,MAAM,OAAO,YAAY;AAAA,IACxB,IAAI,CAAC;AAAA,MAAS;AAAA,IACd,WAAW,WAAW,WAAW;AAAA,MAChC,IAAI;AAAA,QACH,MAAM,SAAS,MAAM,eAAe,SAAS;AAAA,UAC5C;AAAA,UACA;AAAA,UACA;AAAA,UACA,UAAU,OAAO;AAAA,QAClB,CAAC;AAAA,QACD,OAAO,cAAc,SAAS,MAAM;AAAA,QACnC,OAAO,OAAO;AAAA,QACf,IAAI;AAAA,UACH,OAAO,UAAU,SAAS,KAAK;AAAA,UAC9B,MAAM;AAAA;AAAA,IAKV;AAAA,IACA,IAAI,WAAW,OAAO;AAAA,MACrB,MAAM,MAAM,QAAQ,UAAU;AAAA,MAC9B,KAAK;AAAA,IACN;AAAA;AAAA,EAGD,IAAI,OAAO;AAAA,IACV,KAAK;AAAA,IACL,OAAO;AAAA,MACN,MAAM,MAAM;AAAA,QACX,UAAU;AAAA;AAAA,IAEZ;AAAA,EACD;AAAA,EAEA,MAAM,QAAQ,YAAY,MAAM,UAAU;AAAA,EAEzC,MAAiC,QAAQ;AAAA,EAE1C,OAAO;AAAA,IACN,MAAM,MAAM,cAAc,KAAK;AAAA,EAChC;AAAA;AAIM,SAAS,oBAAoB,CAAC,OAAyB;AAAA,EAC7D,IAAI,EAAE,iBAAiB;AAAA,IAAiB,OAAO;AAAA,EAC/C,IACC,MAAM,WAAW,+BACjB,MAAM,WAAW,YAChB;AAAA,IACD,OAAO;AAAA,EACR;AAAA,EAGA,IAAI,MAAM,WAAW;AAAA,IAAW,OAAO;AAAA,EAEvC,OAAO,MAAM,QAAQ,YAAY,EAAE,SAAS,OAAO;AAAA;AAOpD,eAAsB,uBAAuB,CAC5C,QACA,QACkB;AAAA,EAClB,IAAI;AAAA,IACH,MAAM,SAAS,MAAM,gBAAgB,QAAQ;AAAA,MAC5C,aAAa,OAAO;AAAA,IACrB,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,IACb,OAAO,OAAO;AAAA,IACf,IAAI,OAAO,gBAAgB,qBAAqB,KAAK,GAAG;AAAA,MACvD,MAAM,OAAO,aAAa,MAAM,EAAE,QAAQ,SAAS,OAAO,QAAQ,CAAC;AAAA,IACpE;AAAA,IACA,MAAM;AAAA;AAAA;;;AC9VD,SAAS,iBAAiB,CAChC,SAC6B;AAAA,EAC7B,OAAO,QAAQ,SAAS;AAAA;AAazB,IAAM,YAAgC,CAAC,OAAO,OAAO,OAAO,MAAM;AAClE,IAAM,aAAa,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,EAAE;AAEtC,SAAS,SAAS,CAAC,KAA2C;AAAA,EACpE,OAAO,OAAO,QAAQ,YAAY,UAAU,SAAS,GAAc;AAAA;AAQ7D,SAAS,UAAU,CAAC,aAAwC;AAAA,EAClE,OAAO,OAAO,qBAAqB,WAAW,EAAE,MAAM;AAAA;AAoBhD,SAAS,qBAAqB,CAAC,OAAyB;AAAA,EAC9D,OACC,iBAAiB,oBACjB,MAAM,WAAW,QAChB,MAAM,SAAS,SAAS,qBAAqB,KAAK;AAAA;AAerD,eAAsB,UAAU,CAC/B,QACA,aACA,KACuB;AAAA,EACvB,IAAI,QAAQ,aAAa,CAAC,UAAU,GAAG;AAAA,IAAG,OAAO,EAAE,KAAK,YAAY,GAAG,EAAE;AAAA,EAEzE,MAAM,OAAO,OAAO;AAAA,EACpB,IAAI,SAAS;AAAA,IAAO,OAAO,EAAE,KAAK,WAAW,WAAW,GAAG,KAAK;AAAA,EAEhE,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,YAAY,MAAM,YAAY,QAAQ,EAAE,YAAY,CAAC;AAAA,IACpD,OAAO,OAAO;AAAA,IACf,IAAI,CAAC,sBAAsB,KAAK;AAAA,MAAG,MAAM;AAAA,IACzC,OAAO,EAAE,KAAK,WAAW,WAAW,GAAG,MAAM,MAAM;AAAA;AAAA,EAEpD,MAAM,OAAO,UAAU,WAAW,UAAU,UAAU,UAAU,SAAS;AAAA,EACzE,IAAI;AAAA,IAAM,OAAO,EAAE,KAAK,OAAO,KAAK,GAAG,GAAG,KAAK;AAAA,EAC/C,OAAO,EAAE,KAAK,WAAW,WAAW,GAAG,MAAM,MAAM;AAAA;AAI7C,SAAS,cAAc,CAC7B,aACA,KACO;AAAA,EAEN,YAAY,KAAK,kBAA0B,MAAM;AAAA,EAGlD,aAAa,WAAW;AAAA;AAIlB,SAAS,0BAA0B,CAAC,KAAiC;AAAA,EAC3E,IAAI,UAAU,GAAG,GAAG;AAAA,IACnB,MAAM,IAAI,MACT,aAAa,2EACd;AAAA,EACD;AAAA;AAIM,SAAS,eAAe,CAAC,QAGb;AAAA,EAClB,QAAQ,MAAM,iBAAiB;AAAA,EAC/B,IAAI,SAAS,aAAa,iBAAiB,WAAW;AAAA,IACrD,MAAM,IAAI,MACT,kEACD;AAAA,EACD;AAAA,EACA,OAAO,QAAQ,gBAAgB,CAAC;AAAA;;;ACjGjC,eAAsB,YAAY,CACjC,QACA,QACkB;AAAA,EAClB,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAIhD,OAAO,iBAAiB,gBAAgB,gBAAgB,OAAO,QAAQ;AAAA,EACvE,MAAM,OAAO,gBAAgB,MAAM;AAAA,EAGnC,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,2BAA2B,OAAO,GAAG;AAAA,IACrC,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ,oBAAoB;AAAA,MACjE,UAAU,OAAO;AAAA,MACjB,cAAc,OAAO;AAAA,MACrB,cAAc;AAAA,IACf,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,EACf;AAAA,EAGA,MAAM,UACL,OAAO,UAAU,aAAa,OAAO,iBAAiB;AAAA,EACvD,MAAM,QAAQ,OAAO,SAAU,MAAM,aAAa,QAAQ,QAAQ,OAAO;AAAA,EAEzE,IAAI;AAAA,IACH,MAAM,qBACL,OAAO,QAAQ,aAAa,UAAU,OAAO,GAAG;AAAA,IAEjD,MAAM,WAAW,kBAAkB;AAAA,MAClC;AAAA,MACA;AAAA,MACA,cAAc,OAAO;AAAA,MACrB,cAAc;AAAA,MACd,KAAK,qBAAqB,KAAM,OAAO;AAAA,MACvC;AAAA,MACA,WAAW,QAAQ;AAAA,MACnB,OAAO,OAAO;AAAA,MACd,mBAAmB,OAAO;AAAA,MAC1B,gBAAgB,OAAO;AAAA,IACxB,CAAC;AAAA,IAED,IAAI,oBAAoB;AAAA,MACvB,QAAQ,QAAQ,MAAM,WAAW,QAAQ,UAAU,OAAO,GAAG;AAAA,MAC7D,eAAe,UAAU,GAAG;AAAA,IAC7B;AAAA,IAEA,MAAM,SAAS,MAAM,2BAA2B,UAAU,OAAO;AAAA,IACjE,OAAO,MAAM,wBAAwB,QAAQ;AAAA,MAC5C,aAAa;AAAA,MACb,SAAS,QAAQ;AAAA,IAClB,CAAC;AAAA,IACA,OAAO,OAAO;AAAA,IAIf,IAAI;AAAA,MAAS,MAAM,aAAa,QAAQ,QAAQ,SAAS,KAAe;AAAA,IACxE,MAAM;AAAA;AAAA;;;AC/DR,eAAsB,cAAc,CACnC,QACA,QACkB;AAAA,EAClB,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAEhD,IAAI,CAAC,cAAc,OAAO,YAAY;AAAA,IACrC,MAAM,IAAI,MAAM,0BAA0B,OAAO,cAAc;AAAA,EAGhE,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,2BAA2B,OAAO,GAAG;AAAA,IACrC,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ,sBAAsB;AAAA,MACnE,cAAc,OAAO;AAAA,MACrB,UAAU,OAAO;AAAA,MACjB,gBAAgB,OAAO;AAAA,IACxB,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,EACf;AAAA,EAGA,MAAM,UACL,OAAO,UAAU,aAAa,OAAO,iBAAiB;AAAA,EACvD,MAAM,QAAQ,OAAO,SAAU,MAAM,aAAa,QAAQ,QAAQ,OAAO;AAAA,EAEzE,IAAI;AAAA,IACH,MAAM,qBACL,OAAO,QAAQ,aAAa,UAAU,OAAO,GAAG;AAAA,IAEjD,MAAM,WAAW,oBAAoB;AAAA,MACpC,cAAc,OAAO;AAAA,MACrB,UAAU,OAAO;AAAA,MACjB,gBAAgB,OAAO;AAAA,MACvB,KAAK,qBAAqB,KAAM,OAAO;AAAA,MACvC;AAAA,MACA,WAAW,QAAQ;AAAA,MACnB,OAAO,OAAO;AAAA,MACd,mBAAmB,OAAO;AAAA,MAC1B,gBAAgB,OAAO;AAAA,IACxB,CAAC;AAAA,IAED,IAAI,oBAAoB;AAAA,MACvB,QAAQ,QAAQ,MAAM,WAAW,QAAQ,UAAU,OAAO,GAAG;AAAA,MAC7D,eAAe,UAAU,GAAG;AAAA,IAC7B;AAAA,IAEA,MAAM,SAAS,MAAM,2BAA2B,UAAU,OAAO;AAAA,IACjE,OAAO,MAAM,wBAAwB,QAAQ;AAAA,MAC5C,aAAa;AAAA,MACb,SAAS,QAAQ;AAAA,IAClB,CAAC;AAAA,IACA,OAAO,OAAO;AAAA,IAIf,IAAI;AAAA,MAAS,MAAM,aAAa,QAAQ,QAAQ,SAAS,KAAe;AAAA,IACxE,MAAM;AAAA;AAAA;;;AC5Fe,IAAvB;;;ACAuB,IAAvB;AAOO,IAAM,gBAA4B,IAAI,WAAW;AAAA,EACvD;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAC/B,CAAC;AAGM,SAAS,kBAAkB,CAAC,gBAA0C;AAAA,EAC5E,OAAO,oBAAO,iBAAiB,cAAc,CAAC;AAAA;AAG/C,SAAS,QAAQ,CAAC,OAAuC;AAAA,EACxD,IAAI,MAAM,SAAS;AAAA,IAAS,OAAO;AAAA,EACnC,QAAQ,MAAM,SAAS,YAAY,YAAY,MAAM;AAAA,EACrD,OACC,MAAM,SAAS,WACf,SAAS,SAAS,WAClB,SAAS,SAAS;AAAA;AAQb,SAAS,oBAAoB,CAAC,MAGtB;AAAA,EACd,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG;AAAA,IAC3B,MAAM,IAAI,MACT,wEACD;AAAA,EACD;AAAA,EACA,OAAO,YACN,eACA,mBAAmB,KAAK,MAAM,GAC9B,mBAAmB,KAAK,OAAO,CAChC;AAAA;AAIM,SAAS,kBAAkB,CAAC,MAGpB;AAAA,EACd,OAAO,oBAAO,qBAAqB,IAAI,CAAC;AAAA;AAOzC,eAAsB,kBAAkB,CACvC,SACA,MACkB;AAAA,EAClB,MAAM,MAAM,MAAM,QAAQ,KAAK,mBAAmB,IAAI,CAAC;AAAA,EACvD,IAAI,IAAI,WAAW,IAAI;AAAA,IACtB,MAAM,IAAI,MACT,+CAA+C,IAAI,QACpD;AAAA,EACD;AAAA,EACA,OAAO,WAAW,YAAY,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;AAAA;;;ADjD7D,eAAsB,WAAW,CAChC,QACA,QACkB;AAAA,EAClB,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAGhD,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,MAAM,SAAS,OAAO,SACnB,8BACA;AAAA,IACH,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ,QAAQ;AAAA,MACrD,SAAS,OAAO;AAAA,MAChB,QAAQ,OAAO;AAAA,IAChB,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,EACf;AAAA,EAEA,MAAM,KACL,OAAO,OAAO,YAAY,WACvB,GAAG,YAAY,OAAO,OAAO,IAC7B,OAAO;AAAA,EAEX,MAAM,OAAO,OAAO,SACjB,mBAAmB;AAAA,IACnB,SAAS;AAAA,IACT,QAAQ,GAAG,MAAM;AAAA,MAChB,MAAM,GAAG,YAAY,OAAO,OAAO,IAAI;AAAA,MACvC,SAAS,GAAG,YAAY,OAAO,OAAO,OAAO;AAAA,MAC7C,YAAY,GAAG,KAAK,OAAO,OAAO,OAAO;AAAA,IAC1C,CAAC;AAAA,EACF,CAAC,IACA,oBAAO,iBAAiB,EAAE,CAAC;AAAA,EAE9B,MAAM,WAAW,MAAM,QAAQ,KAAK,IAAI;AAAA,EACxC,OAAO,WAAW,QAAQ;AAAA;;;AExC3B,eAAsB,qBAAqB,CAC1C,QACA,QAC6B;AAAA,EAC7B,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAGhD,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,MAAM,MAAM,wBAAwB,OAAO,WAAW;AAAA,IACtD,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ,uBAAuB;AAAA,MACpE,aAAa;AAAA,IACd,CAAC;AAAA,IACD,OAAO,uBAAuB,OAAO,aAAa;AAAA,MACjD,WAAW,OAAO,YAAY;AAAA,IAC/B,CAAC;AAAA,EACF;AAAA,EAGA,MAAM,YAAY,OAAO,YAAY,KAAK;AAAA,EAC1C,IAAI,YAAY,WAAW;AAAA,IAC1B,MAAM,aACL,OAAO,WAAW,OAAO,YAAY,WAAW;AAAA,IACjD,IAAI,CAAC;AAAA,MACJ,MAAM,IAAI,MAAM,iDAAiD;AAAA,IAClE,OAAO,wBAAwB,OAAO,aAAa,SAAS,UAAU;AAAA,EACvE;AAAA,EAGA,OAAO,2BAA2B,OAAO,aAAa,OAAO;AAAA;;;ACxB9D,eAAsB,kBAAkB,CACvC,QACA,QAC6B;AAAA,EAC7B,QAAQ,gBAAgB;AAAA,EAExB,IAAI,YAAY,KAAK,aAAa,SAAS,WAAW;AAAA,IACrD,MAAM,IAAI,MAAM,+CAA+C;AAAA,EAChE;AAAA,EAEA,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAChD,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,MAAM,IAAI,MAAM,+CAA+C;AAAA,EAChE;AAAA,EAGA,MAAM,UAAU,OAAO,SAAS,QAAQ,OAAO,iBAAiB;AAAA,EAChE,MAAM,QACL,OAAO,SAAS,OACb,YAAY,OAAO,KAAK,IACxB,MAAM,aAAa,QAAQ,QAAQ,OAAO;AAAA,EAK9C,IAAI;AAAA,EACJ,IAAI;AAAA,KACF,EAAE,IAAI,IAAI,MAAM,WAAW,QAAQ,aAAa,OAAO,GAAG;AAAA,IAC1D,OAAO,OAAO;AAAA,IACf,IAAI;AAAA,MAAS,MAAM,aAAa,QAAQ,QAAQ,SAAS,KAAK;AAAA,IAC9D,MAAM;AAAA;AAAA,EAIP,MAAM,mBAAmB,iCACxB,QAAQ,WACR,OACA,GACD;AAAA,EAGA,MAAM,OAAO,YAAY;AAAA,EACzB,MAAM,YAA+B;AAAA,OACjC;AAAA,IACH,MAAM;AAAA,SACF;AAAA,MACH,0BAA0B;AAAA,IAC3B;AAAA,EACD;AAAA,EAGA,OAAO,uBAAuB,WAAW,OAAO;AAAA;;;ACtCjD,eAAsB,WAAW,CAChC,QACA,QACkB;AAAA,EAClB,MAAM,UAAU,OAAO;AAAA,EACvB,IAAI,CAAC;AAAA,IAAS,MAAM,IAAI,MAAM,kBAAkB;AAAA,EAEhD,IAAI,CAAC,sBAAsB,OAAO,EAAE;AAAA,IACnC,MAAM,IAAI,MAAM,8BAA8B,OAAO,IAAI;AAAA,EAG1D,IAAI,kBAAkB,OAAO,GAAG;AAAA,IAC/B,2BAA2B,OAAO,GAAG;AAAA,IACrC,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ,mBAAmB;AAAA,MAChE,WAAW,OAAO;AAAA,MAClB,QAAQ,OAAO,OAAO,MAAM;AAAA,MAC5B,MAAM,OAAO;AAAA,IACd,CAAC;AAAA,IACD,OAAO,OAAO;AAAA,EACf;AAAA,EAGA,MAAM,UACL,OAAO,UAAU,aAAa,OAAO,iBAAiB;AAAA,EACvD,MAAM,QAAQ,OAAO,SAAU,MAAM,aAAa,QAAQ,QAAQ,OAAO;AAAA,EAEzE,IAAI;AAAA,IACH,MAAM,qBACL,OAAO,QAAQ,aAAa,UAAU,OAAO,GAAG;AAAA,IAEjD,MAAM,WAAW,mBAAmB;AAAA,MACnC,WAAW,OAAO;AAAA,MAClB,QAAQ,OAAO;AAAA,MACf,MAAM,OAAO;AAAA,MACb,KAAK,qBAAqB,KAAM,OAAO;AAAA,MACvC;AAAA,MACA,WAAW,QAAQ;AAAA,MACnB,OAAO,OAAO;AAAA,MACd,mBAAmB,OAAO;AAAA,MAC1B,gBAAgB,OAAO;AAAA,IACxB,CAAC;AAAA,IAED,IAAI,oBAAoB;AAAA,MACvB,QAAQ,QAAQ,MAAM,WAAW,QAAQ,UAAU,OAAO,GAAG;AAAA,MAC7D,eAAe,UAAU,GAAG;AAAA,IAC7B;AAAA,IAEA,MAAM,SAAS,MAAM,2BAA2B,UAAU,OAAO;AAAA,IACjE,OAAO,MAAM,wBAAwB,QAAQ;AAAA,MAC5C,aAAa;AAAA,MACb,SAAS,QAAQ;AAAA,IAClB,CAAC;AAAA,IACA,OAAO,OAAO;AAAA,IAIf,IAAI;AAAA,MAAS,MAAM,aAAa,QAAQ,QAAQ,SAAS,KAAe;AAAA,IACxE,MAAM;AAAA;AAAA;;;ACzCD,SAAS,aAAa,CAAC,QAA+B;AAAA,EAC5D,OAAO;AAAA,IACN,iBAAiB,CAAC,WAAW,gBAAgB,QAAQ,MAAM;AAAA,IAC3D,iBAAiB,CAAC,WAAW,sBAAsB,QAAQ,MAAM;AAAA,IACjE,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,cAAc,CAAC,WAAW,aAAa,QAAQ,MAAM;AAAA,IACrD,gBAAgB,CAAC,WAAW,eAAe,QAAQ,MAAM;AAAA,IACzD,aAAa,CAAC,WAAW,YAAY,QAAQ,MAAM;AAAA,IACnD,oBAAoB,CAAC,WAAW,mBAAmB,QAAQ,MAAM;AAAA,EAClE;AAAA;;;ACrCM,SAAS,mBAAmB,CAClC,SACA,OACU;AAAA,EACV,IAAI,CAAC,SAAS,QAAQ,SAAS;AAAA,IAAY,OAAO;AAAA,EAClD,IAAI;AAAA,IACH,OAAO,SAAS,QAAQ,iBAAiB,QAAQ,OAAO;AAAA,IACxD,MAAM,UAAU,WAAW,QAAQ,WAAW,QAAQ,SAAS,CAAC,CAAC;AAAA,IACjE,IAAI,SAAS;AAAA,MAAS,OAAO;AAAA,IAC7B,MAAM,SAAS,MAAM,eAAe;AAAA,IACpC,IAAI,YAAY;AAAA,MAAQ,OAAO;AAAA,IAC/B,OAAO,KAAK,SAAS,SAAS,WAAW,QAAQ,IAAI,EAAE;AAAA,IACtD,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;AAWF,SAAS,kBAAkB,CACjC,QAC+D;AAAA,EAC/D,OAAO,aAAa;AAAA,OAChB;AAAA,IACH,SAAS,oBAAoB,OAAO,SAAS,OAAO,KAAK;AAAA,EAE1D,CAAC,EAAE,OAAO,aAAa;AAAA;;AC+BjB,SAAS,eAAe,CAAC,QAAiC;AAAA,EAEhE,MAAM,WAAY,OAAe;AAAA,EAMjC,IAAI,CAAC;AAAA,IAAU,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAE5E,QAAQ,SAAS,oBAAoB,aAAa;AAAA,EAGlD,eAAe,YAAY,CAAC,OAA2C;AAAA,IACtE,IAAI,UAAU;AAAA,MAAW,OAAO;AAAA,IAChC,MAAM,UAAU,oBACf,SACA,oBACA,OAAO,KACR;AAAA,IACA,IAAI,OAAO;AAAA,MACV,OAAO,OAAO,aAAa,QAAQ,EAAE,QAAQ,QAAQ,CAAC;AAAA,IACvD,OAAO,SAAS,QAAQ,EAAE,QAAQ,CAAC;AAAA;AAAA,EAGpC,OAAO;AAAA,SACA,YAAW,CAAC,QAAQ;AAAA,MACzB,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,mBAAmB;AAAA,QACnC,WAAW,OAAO;AAAA,QAClB,QAAQ,OAAO;AAAA,QACf,MAAM,OAAO;AAAA,QACb,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACxB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC7B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACR,eAAe,UAAU,OAAO,IAAI,GAAG,CAAC;AAAA,QACzC;AAAA,MACD;AAAA,MAEA,OAAO;AAAA;AAAA,SAGF,aAAY,CAAC,QAAQ;AAAA,MAC1B,OAAO,iBAAiB,gBAAgB,gBAAgB,OAAO,QAAQ;AAAA,MACvE,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,kBAAkB;AAAA,QAClC;AAAA,QACA;AAAA,QACA,cAAc,OAAO;AAAA,QACrB,cAAc,gBAAgB,MAAM;AAAA,QACpC,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACxB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC7B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACR,eAAe,UAAU,OAAO,IAAI,GAAG,CAAC;AAAA,QACzC;AAAA,MACD;AAAA,MAEA,OAAO;AAAA;AAAA,SAGF,eAAc,CAAC,QAAQ;AAAA,MAC5B,MAAM,QAAQ,MAAM,aAAa,OAAO,KAAK;AAAA,MAE7C,MAAM,WAAW,oBAAoB;AAAA,QACpC,cAAc,OAAO;AAAA,QACrB,UAAU,OAAO;AAAA,QACjB,gBAAgB,OAAO;AAAA,QACvB,KAAK,OAAO,OAAO;AAAA,QACnB;AAAA,QACA,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB;AAAA,QACA,OAAO,OAAO;AAAA,QACd,mBAAmB,OAAO;AAAA,QAC1B,gBAAgB,OAAO;AAAA,MACxB,CAAC;AAAA,MAED,IAAI,OAAO,QAAQ,WAAW;AAAA,QAC7B,MAAM,YAAY,MAAM,YAAY,QAAQ,EAAE,aAAa,SAAS,CAAC;AAAA,QACrE,MAAM,MAAM,UAAU,MAAM,UAAU;AAAA,QACtC,IAAI,KAAK;AAAA,UACR,eAAe,UAAU,OAAO,IAAI,GAAG,CAAC;AAAA,QACzC;AAAA,MACD;AAAA,MAEA,OAAO;AAAA;AAAA,SAGF,gBAAe,CAAC,QAAQ;AAAA,MAE7B,MAAM,YAAY,iBAAiB,OAAO,aAAa,OAAO;AAAA,MAC9D,OAAO,gBAAgB,QAAQ;AAAA,QAC9B,aAAa;AAAA,QACb,YAAY,OAAO;AAAA,MACpB,CAAC;AAAA;AAAA,EAEH;AAAA;;;ACtLM,SAAS,oBAAoB,CACnC,QACiB;AAAA,EACjB,MAAM,SAAS,aAAa,MAAM;AAAA,EAIjC,OAAe,kBAAkB;AAAA,IACjC,SAAS,OAAO;AAAA,IAChB,oBAAoB,OAAO;AAAA,IAC3B,UAAU,OAAO;AAAA,EAClB;AAAA,EAGA,OAAO,OAAO,OAAO,eAAe;AAAA;;ACPrC,IAAM,kBAAkB;AAAA;AAAA;AAAA;AAOxB,IAAM,eAAe;AAAA;AAAA;AAAA;AAQrB,IAAM,oBAAoB;AAAA;AAAA;AASnB,SAAS,UAAU,CAAC,QAAsC;AAAA,EAChE,QAAQ,UAAU;AAAA,EAClB,MAAM,SAAS,OAAO,UAAU;AAAA,EAEhC,OAAO;AAAA,SACA,QAAO,CAAC,KAAK,UAAU;AAAA,MAC5B,MAAM,IAAI,SAAS;AAAA,MACnB,MAAM,UAAU,MAAM,MAAM,KAAK,QAAQ,CAAC,iBAAiB,KAAK,CAAC,CAAC;AAAA,MAClE,IAAI,WAAW;AAAA,QAAM,OAAO,OAAO,OAA0B;AAAA,MAE7D,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC7B,MAAM,SAAS,MAAM,MAAM,KAAK,QAAQ;AAAA,QACvC;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,SAAS;AAAA,MAChB,CAAC;AAAA,MACD,OAAO,OAAO,MAAyB;AAAA;AAAA,SAElC,MAAK,CAAC,KAAK;AAAA,MAChB,MAAM,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,CAAC;AAAA;AAAA,SAEjC,QAAO,CAAC,KAAK,OAAO;AAAA,MACzB,MAAM,MAAM,KAAK,QAAQ;AAAA,QACxB;AAAA,QACA;AAAA,QACA,SAAS;AAAA,SACR,QAAQ,IAAI,SAAS;AAAA,QACtB,MAAM,SAAS;AAAA,MAChB,CAAC;AAAA;AAAA,SAEI,KAAI,CAAC,KAAK;AAAA,MACf,MAAM,IAAI,MAAM,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,CAAC;AAAA,MAChD,OAAO,KAAK,OAAO,YAAY,OAAO,CAAoB;AAAA;AAAA,EAE5D;AAAA;AAyBM,SAAS,aAAa,CAAC,QAAyC;AAAA,EACtE,QAAQ,QAAQ;AAAA,EAChB,MAAM,eAAe,OAAO,eAAe;AAAA,EAC3C,IAAI,UAAU;AAAA,EAEd,eAAe,WAAW,GAAG;AAAA,IAC5B,IAAI,CAAC,gBAAgB;AAAA,MAAS;AAAA,IAC9B,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAGX,OAAO;AAAA,SACA,QAAO,CAAC,KAAK,UAAU;AAAA,MAC5B,MAAM,YAAY;AAAA,MAGlB,MAAM,UACL,MAAM,gEAAgE;AAAA,MACvE,MAAM,OAAO,QAAQ;AAAA,MACrB,IAAI;AAAA,QAAM,OAAO,OAAO,OAAO,KAAK,KAAK,CAAC;AAAA,MAI1C,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC7B,MAAM,SACL,MAAM,yDAAyD,SAAS,QAAQ,IAAI,SAAS;AAAA,MAC9F,MAAM,OAAO,OAAO;AAAA,MACpB,IAAI,CAAC;AAAA,QAAM,MAAM,IAAI,MAAM,uCAAuC;AAAA,MAClE,OAAO,OAAO,OAAO,KAAK,KAAK,CAAC;AAAA;AAAA,SAE3B,MAAK,CAAC,KAAK;AAAA,MAChB,MAAM,YAAY;AAAA,MAClB,MAAM,iDAAiD;AAAA;AAAA,SAElD,QAAO,CAAC,KAAK,OAAO;AAAA,MACzB,MAAM,YAAY;AAAA,MAGlB,MAAM,2CAA2C,MAAM,SAAS,iBAAiB,mBAAmB,QAAQ,IAAI,SAAS;AAAA;AAAA,SAEpH,KAAI,CAAC,KAAK;AAAA,MACf,MAAM,YAAY;AAAA,MAClB,MAAM,OACL,MAAM,sDAAsD;AAAA,MAC7D,MAAM,MAAM,KAAK;AAAA,MACjB,OAAO,MAAM,OAAO,OAAO,IAAI,IAAI,CAAC,IAAI;AAAA;AAAA,EAE1C;AAAA;;ACvID,SAAS,YAAY,CAAC,WAAkC;AAAA,EACvD,MAAM,IAAI,aAAa,WAAW;AAAA,EAClC,IAAI,CAAC;AAAA,IACJ,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE,OAAO;AAAA;AAWD,SAAS,aAAa,CAAC,WAAmB,SAA2B;AAAA,EAC3E,MAAM,QAAQ,IAAI,IACjB,QAAQ,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAC9D;AAAA,EACA,IAAI,IAAI;AAAA,EACR,OAAO,MAAM,IAAI,EAAE,SAAS,CAAC;AAAA,IAAG,KAAK;AAAA,EACrC,OAAO;AAAA;AAuBD,SAAS,kBAAkB,CACjC,QACqB;AAAA,EACrB,MAAM,eACL,OAAO,iBACN,GAAG,QAAQ,cAAc,SAAS,QAAQ,EAAE,QAAQ,CAAC;AAAA,EAEvD,OAAO;AAAA,SACA,IAAG,GAAG,QAAQ,WAAW;AAAA,MAC9B,MAAM,YAAY,MAAM,aAAa,EAAE,QAAQ,QAAQ,CAAC;AAAA,MACxD,IAAI,UAAoB,CAAC;AAAA,MACzB,IAAI;AAAA,QACH,UAAU,MAAM,OAAO,WAAW,EAAE,QAAQ,QAAQ,CAAC;AAAA,QACpD,OAAO,OAAO;AAAA,QACf,IAAI,iBAAiB;AAAA,UAAwB,MAAM;AAAA,QAGnD,OAAO;AAAA;AAAA,MAER,OAAO,cAAc,WAAW,OAAO;AAAA;AAAA,EAEzC;AAAA;AAqCM,SAAS,WAAW,CAC1B,SAA4B,CAAC,GACR;AAAA,EACrB,MAAM,WAAW,OAAO,YAAY;AAAA,EACpC,MAAM,UAAU,OAAO,SACpB,EAAE,eAAe,UAAU,OAAO,SAAS,IAC3C;AAAA,EAEH,MAAM,SAAS,mBAAmB;AAAA,IACjC,cAAc,OAAO;AAAA,SACf,WAAU,GAAG,QAAQ,WAAW;AAAA,MACrC,MAAM,UAAU,eAAe,QAAQ,OAAO,SAAS,aAAa;AAAA,MACpE,MAAM,MAAgB,CAAC;AAAA,MACvB,IAAI;AAAA,MACJ,IAAI,QAAQ;AAAA,MAEZ,GAAG;AAAA,QACF,MAAM,QAAQ,IAAI,gBAAgB;AAAA,UACjC,QAAQ;AAAA,UACR,OAAO;AAAA,QACR,CAAC;AAAA,QACD,IAAI;AAAA,UAAQ,MAAM,IAAI,eAAe,MAAM;AAAA,QAE3C,IAAI;AAAA,QACJ,IAAI;AAAA,UACH,OAAQ,MAAM,QAAQ,qBAAqB,SAAS;AAAA,YACnD,QAAQ;AAAA,YACR;AAAA,UACD,CAAC;AAAA,UACA,OAAO,OAAO;AAAA,UAGf,IAAI,cAAc,OAAO,aAAa;AAAA,YAAG;AAAA,UACzC,MAAM;AAAA;AAAA,QAEP,WAAW,MAAM,KAAK,WAAW,CAAC,GAAG;AAAA,UACpC,IAAI,GAAG,SAAS;AAAA,YAAM,IAAI,KAAK,OAAO,GAAG,KAAK,CAAC;AAAA,QAChD;AAAA,QACA,SAAS,KAAK,eAAe;AAAA,QAC7B,SAAS;AAAA,MACV,SAAS,UAAU,QAAQ;AAAA,MAE3B,OAAO;AAAA;AAAA,EAET,CAAC;AAAA,EAED,OAAO;AAAA,SACA,IAAG,CAAC,MAAM;AAAA,MAGf,eAAe,KAAK,QAAQ,OAAO,SAAS,aAAa;AAAA,MACzD,OAAO,OAAO,IAAI,IAAI;AAAA;AAAA,EAExB;AAAA;AAuBM,SAAS,eAAe,CAC9B,QACqB;AAAA,EACrB,MAAM,UAAU,OAAO,QAAQ,QAAQ,OAAO,EAAE;AAAA,EAChD,MAAM,YAAY,aAAa,OAAO,SAAS;AAAA,EAE/C,OAAO;AAAA,SACA,IAAG,GAAG,WAAW;AAAA,MACtB,MAAM,MAAM,MAAM,UACjB,GAAG,+BAA+B,kBAClC;AAAA,QACC,SAAS,OAAO,SAAS,EAAE,aAAa,OAAO,OAAO,IAAI;AAAA,MAC3D,CACD;AAAA,MACA,IAAI,CAAC,IAAI,IAAI;AAAA,QACZ,MAAM,IAAI,MAAM,4BAA4B,IAAI,QAAQ;AAAA,MACzD;AAAA,MACA,MAAM,OAAQ,MAAM,IAAI,KAAK;AAAA,MAI7B,MAAM,WAAW,KAAK,2BAA2B,CAAC,GAChD,IAAI,CAAC,MAAM,OAAO,CAAC,CAAC,EACpB,KAAK,CAAC,GAAG,MAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAE;AAAA,MAC7C,IAAI,QAAQ,OAAO;AAAA,QAAW,OAAO,QAAQ;AAAA,MAE7C,OAAO,OAAO,KAAK,uBAAuB,CAAC;AAAA;AAAA,EAE7C;AAAA;;AChOM,SAAS,IAAI,CAAC,KAAc,QAA4C;AAAA,EAC9E,OAAO,CAAC,WAAW;AAAA,IAClB,MAAM,cACL,OAAO,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MAAM;AAAA,IAElD,MAAM,eAAgC;AAAA,SAClC;AAAA,MACH,KAAK;AAAA,IACN;AAAA,IAEA,OAAO,gBAAgB,QAAQ;AAAA,SAC3B;AAAA,MACH,SAAS,eAAe,aAAa,YAAY;AAAA,IAClD,CAAC;AAAA;AAAA;;AChBI,SAAS,MAAM,CAAC,QAAkD;AAAA,EACxE,OAAO,MAAM,gBAAgB,UAAU,EAAE,SAAS,OAAO,QAAQ,CAAC;AAAA;;ACD5D,SAAS,QAAQ,CAAC,YAAkD;AAAA,EAC1E,OAAO,CAAC,WAAW;AAAA,IAClB,MAAM,WAAW,WAAW,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;AAAA,IAEhD,OAAO,gBAAgB,YAAY;AAAA,MAClC,SAAS,OAAO,MAAM,YAAY;AAAA,QACjC,IAAI;AAAA,QACJ,WAAW,aAAa,UAAU;AAAA,UACjC,IAAI;AAAA,YACH,OAAO,MAAM,UAAU,QAAQ,MAAM,OAAO;AAAA,YAC3C,OAAO,OAAO;AAAA,YACf,YACC,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA;AAAA,QAE3D;AAAA,QACA,MAAM,aAAa,IAAI,MAAM,uBAAuB;AAAA;AAAA,IAEtD,CAAC;AAAA;AAAA;;ACoCH,SAAS,MAAM,CAAC,QAAmC;AAAA,EAClD,MAAM,QAAkB,CAAC,OAAO,KAAK;AAAA,EACrC,IAAI,OAAO;AAAA,IAAO,MAAM,KAAK,SAAS,OAAO,OAAO;AAAA,EACpD,IAAI,OAAO;AAAA,IAAS,MAAM,KAAK,WAAW,OAAO,SAAS;AAAA,EAC1D,IAAI,OAAO;AAAA,IAAkB,MAAM,KAAK,SAAS,OAAO,kBAAkB;AAAA,EAC1E,IAAI,OAAO;AAAA,IAAO,MAAM,KAAK,SAAS,OAAO,OAAO;AAAA,EACpD,OAAO,MAAM,KAAK,GAAG;AAAA;AAAA;AAGf,MAAM,iBAAiB;AAAA,EACrB,KAAuB;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,EACT,UAAU,IAAI;AAAA,EAId,OAAO,IAAI;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,iBAAuD;AAAA,EAEvD;AAAA,EACA;AAAA,EACA;AAAA,EAER,WAAW,CAAC,KAAa,QAAmC;AAAA,IAC3D,KAAK,MAAM;AAAA,IACX,KAAK,YAAY,QAAQ,aAAa;AAAA,IACtC,KAAK,uBAAuB,QAAQ,wBAAwB;AAAA,IAC5D,KAAK,qBAAqB,QAAQ,sBAAsB;AAAA;AAAA,EAGjD,OAAO,GAAkB;AAAA,IAChC,IAAI,KAAK,IAAI,eAAe,UAAU;AAAA,MAAM,OAAO,QAAQ,QAAQ;AAAA,IACnE,IAAI,KAAK,IAAI,eAAe,UAAU,YAAY;AAAA,MACjD,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,QACvC,MAAM,SAAS,MAAM;AAAA,UACpB,KAAK,IAAI,oBAAoB,SAAS,OAAO;AAAA,UAC7C,QAAQ;AAAA;AAAA,QAET,MAAM,UAAU,CAAC,MAAa;AAAA,UAC7B,KAAK,IAAI,oBAAoB,QAAQ,MAAM;AAAA,UAC3C,OACC,IAAI,eAAe,+BAA+B;AAAA,YACjD,SAAS,OAAO,CAAC;AAAA,UAClB,CAAC,CACF;AAAA;AAAA,QAED,KAAK,IAAI,iBAAiB,QAAQ,QAAQ,EAAE,MAAM,KAAK,CAAC;AAAA,QACxD,KAAK,IAAI,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,OAC1D;AAAA,IACF;AAAA,IAEA,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACvC,KAAK,KAAK,IAAI,UAAU,KAAK,GAAG;AAAA,MAEhC,KAAK,GAAG,iBACP,QACA,MAAM;AAAA,QACL,KAAK,mBAAmB;AAAA,QACxB,KAAK,eAAe;AAAA,QACpB,QAAQ;AAAA,SAET,EAAE,MAAM,KAAK,CACd;AAAA,MAEA,KAAK,GAAG,iBACP,SACA,CAAC,MAAM;AAAA,QACN,OACC,IAAI,eAAe,+BAA+B;AAAA,UACjD,SAAS,OAAO,CAAC;AAAA,QAClB,CAAC,CACF;AAAA,SAED,EAAE,MAAM,KAAK,CACd;AAAA,MAEA,KAAK,GAAG,iBAAiB,WAAW,CAAC,UAAU;AAAA,QAC9C,KAAK,cAAc,MAAM,IAAI;AAAA,OAC7B;AAAA,MAED,KAAK,GAAG,iBAAiB,SAAS,MAAM;AAAA,QACvC,IAAI,CAAC,KAAK;AAAA,UAAW,KAAK,iBAAiB;AAAA,OAC3C;AAAA,KACD;AAAA;AAAA,EAGM,aAAa,CAAC,KAAkC;AAAA,IACvD,MAAM,OACL,OAAO,QAAQ,WACZ,MACA,IAAI,YAAY,EAAE,OAAO,GAAkB;AAAA,IAE/C,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,MAAM,KAAK,MAAM,IAAI;AAAA,MACpB,MAAM;AAAA,MACP;AAAA;AAAA,IAID,IAAI,QAAQ,OAAO,IAAI,MAAM,MAAM;AAAA,MAClC,MAAM,MAAM;AAAA,MACZ,MAAM,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE;AAAA,MACjC,IAAI,CAAC;AAAA,QAAG;AAAA,MACR,KAAK,QAAQ,OAAO,IAAI,EAAE;AAAA,MAC1B,IAAI,IAAI,OAAO;AAAA,QACd,EAAE,OACD,IAAI,eAAe,IAAI,MAAM,SAAS;AAAA,UACrC,SAAS,kBAAkB,IAAI,MAAM;AAAA,QACtC,CAAC,CACF;AAAA,MACD,EAAO;AAAA,QACN,EAAE,QAAQ,IAAI,MAAM;AAAA;AAAA,MAErB;AAAA,IACD;AAAA,IAGA,MAAM,QAAQ;AAAA,IACd,IAAI,CAAC,MAAM;AAAA,MAAQ;AAAA,IAEnB,cAAc,UAAU,KAAK,MAAM;AAAA,MAClC,IAAI,MAAM,OAAO,UAAU,MAAM,QAAQ;AAAA,QACxC,WAAW,MAAM,MAAM,WAAW;AAAA,UACjC,IAAI;AAAA,YACH,GAAG,MAAM,MAAM;AAAA,YACd,MAAM;AAAA,QAGT;AAAA,MACD;AAAA,IACD;AAAA;AAAA,EAGO,gBAAgB,GAAG;AAAA,IAC1B,KAAK,KAAK;AAAA,IAGV,cAAc,MAAM,KAAK,SAAS;AAAA,MACjC,EAAE,OAAO,IAAI,eAAe,wBAAwB,CAAC;AAAA,IACtD;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IAEnB,IACC,KAAK,aACL,KAAK,KAAK,OAAO,KACjB,KAAK,mBAAmB,KAAK,sBAC5B;AAAA,MACD,KAAK,kBAAkB;AAAA,IACxB;AAAA;AAAA,EAGO,iBAAiB,GAAG;AAAA,IAC3B,IAAI,KAAK,aAAa,KAAK;AAAA,MAAc;AAAA,IACzC,KAAK,eAAe;AAAA,IACpB,MAAM,QAAQ,KAAK,qBAAqB,KAAK,KAAK;AAAA,IAClD,KAAK;AAAA,IAEL,KAAK,iBAAiB,WAAW,YAAY;AAAA,MAC5C,KAAK,eAAe;AAAA,MACpB,IAAI;AAAA,QACH,MAAM,KAAK,QAAQ;AAAA,QACnB,MAAM,KAAK,eAAe;AAAA,QACzB,MAAM;AAAA,QACP,IAAI,CAAC,KAAK,aAAa,KAAK,KAAK,OAAO,GAAG;AAAA,UAC1C,KAAK,iBAAiB;AAAA,QACvB;AAAA;AAAA,OAEC,KAAK;AAAA;AAAA,OAGK,eAAc,GAAG;AAAA,IAC9B,cAAc,UAAU,KAAK,MAAM;AAAA,MAClC,MAAM,KAAK,QAAQ,aAAa,MAAM,MAAM;AAAA,IAC7C;AAAA;AAAA,EAGO,OAAO,CACd,QACA,QACmB;AAAA,IACnB,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,MACvC,IAAI,CAAC,KAAK,MAAM,KAAK,GAAG,eAAe,UAAU,MAAM;AAAA,QACtD,OAAO,OAAO,IAAI,eAAe,yBAAyB,CAAC;AAAA,MAC5D;AAAA,MAEA,MAAM,KAAK,KAAK;AAAA,MAChB,MAAM,MAAsB;AAAA,QAC3B,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MAEA,KAAK,QAAQ,IAAI,IAAI,EAAE,SAAS,OAAO,CAAC;AAAA,MACxC,KAAK,GAAG,KAAK,KAAK,UAAU,GAAG,CAAC;AAAA,KAChC;AAAA;AAAA,OAGI,UAAS,CACd,QAEA,UACwB;AAAA,IACxB,IAAI,KAAK,WAAW;AAAA,MACnB,MAAM,IAAI,eAAe,sCAAsC;AAAA,IAChE;AAAA,IAEA,MAAM,KAAK,QAAQ;AAAA,IAEnB,MAAM,MAAM,OAAO,MAAM;AAAA,IACzB,IAAI,QAAQ,KAAK,KAAK,IAAI,GAAG;AAAA,IAE7B,IAAI,OAAO;AAAA,MAEV,MAAM,UAAU,IAAI,QAAQ;AAAA,IAC7B,EAAO;AAAA,MAEN,QAAQ,EAAE,QAAQ,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE;AAAA,MACjD,KAAK,KAAK,IAAI,KAAK,KAAK;AAAA,MACxB,MAAM,KAAK,QAAQ,aAAa,MAAM;AAAA;AAAA,IAGvC,OAAO;AAAA,MACN,aAAa,MAAM;AAAA,QAClB,MAAM,IAAI,KAAK,KAAK,IAAI,GAAG;AAAA,QAC3B,IAAI,CAAC;AAAA,UAAG;AAAA,QACR,EAAE,UAAU,OAAO,QAAQ;AAAA,QAC3B,IAAI,EAAE,UAAU,SAAS,GAAG;AAAA,UAC3B,KAAK,KAAK,OAAO,GAAG;AAAA,UAEpB,IAAI,KAAK,IAAI,eAAe,UAAU,MAAM;AAAA,YAC3C,KAAK,QAAQ,eAAe,MAAM,EAAE,MAAM,MAAM,EAAE;AAAA,UACnD;AAAA,UAEA,IAAI,KAAK,KAAK,SAAS;AAAA,YAAG,KAAK,aAAa;AAAA,QAC7C;AAAA;AAAA,IAEF;AAAA;AAAA,EAGO,YAAY,GAAG;AAAA,IACtB,IAAI,KAAK,IAAI;AAAA,MACZ,KAAK,GAAG,MAAM;AAAA,MACd,KAAK,KAAK;AAAA,IACX;AAAA;AAAA,EAGD,OAAO,GAAS;AAAA,IACf,KAAK,YAAY;AAAA,IACjB,IAAI,KAAK;AAAA,MAAgB,aAAa,KAAK,cAAc;AAAA,IAEzD,cAAc,MAAM,KAAK,SAAS;AAAA,MACjC,EAAE,OAAO,IAAI,eAAe,6BAA6B,CAAC;AAAA,IAC3D;AAAA,IACA,KAAK,QAAQ,MAAM;AAAA,IACnB,KAAK,KAAK,MAAM;AAAA,IAEhB,IAAI,KAAK,IAAI;AAAA,MACZ,KAAK,GAAG,MAAM;AAAA,MACd,KAAK,KAAK;AAAA,IACX;AAAA;AAEF;AAEA,SAAS,WAAW,CAAC,SAAyB;AAAA,EAC7C,OAAO,GAAG,QAAQ,QAAQ,SAAS,IAAI,EAAE,QAAQ,OAAO,EAAE;AAAA;AAOpD,SAAS,SAAS,CACxB,KACA,QACmB;AAAA,EACnB,OAAO,CAAC,WAAW;AAAA,IAClB,MAAM,UACL,QAAQ,OACR,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MACpC;AAAA,IAED,MAAM,QACL,OAAO,QAAQ,OAAO,QAAQ,QAAQ,KAAK,MAAM,YAAY,OAAO;AAAA,IAErE,MAAM,qBAAsC;AAAA,SACxC;AAAA,MACH,KAAK;AAAA,IACN;AAAA,IAEA,MAAM,UAAU,IAAI,iBAAiB,OAAO,MAAM;AAAA,IAElD,QAAQ,QAAQ,YAAY,kBAAkB;AAAA,IAE9C,MAAM,YAAgC;AAAA,MACrC,MAAM;AAAA,MACN,SAAS,eAAe,SAAS,kBAAkB;AAAA,MACnD,QAAQ;AAAA,MACR,WAAW,CAAC,WAAW,aACtB,QAAQ,UAAU,WAAW,QAAQ;AAAA,MACtC,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAChC;AAAA,IAEA,OAAO;AAAA;AAAA;;ACvWF,IAAM,sBAAsB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAOO,IAAM,iBAAiB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAQO,IAAM,yBAAyB;AAAA,EACrC,qBAAqB;AAAA,EACrB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AACnB;AAQO,IAAM,2BAA2B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;;AC7CO,SAAS,OAAO,CAAC,OAAgC;AAAA,EACvD,sBAAsB,mBAAmB,KAAK;AAAA,EAC9C,OAAO;AAAA;AAMD,SAAS,WAAW,CAAC,OAAmC;AAAA,EAC9D,OAAO,eAAe,KAAK,MAAM;AAAA;AAS3B,SAAS,WAAW,CAAC,OAAwB;AAAA,EACnD,OAAO,MAAM,SAAS,GAAG;AAAA;AAMnB,SAAS,kBAAkB,CAAC,OAAe,OAAqB;AAAA,EACtE,IAAI,YAAY,KAAK;AAAA,IAAG;AAAA,EACxB,IAAI,CAAC,YAAY,KAAK,GAAG;AAAA,IACxB,MAAM,IAAI,MACT,GAAG,UAAU,8EACd;AAAA,EACD;AAAA;AAIM,SAAS,qBAAqB,CAAC,OAAe,OAAqB;AAAA,EACzE,IAAI,YAAY,KAAK;AAAA,IAAG;AAAA,EACxB,OAAO,YAAY,cAAc,QAAQ,MAAM,MAAM,IAAI;AAAA,EACzD,IACC,CAAC,cACD,CAAC,aACD,KAAK,SAAS,KACd,CAAC,WAAW,SAAS,GAAG,KACxB,CAAC,YAAY,UAAU,GACtB;AAAA,IACD,MAAM,IAAI,MACT,GAAG,UAAU,sJACd;AAAA,EACD;AAAA;AAIM,SAAS,gBAAgB,CAAC,OAAe,OAAqB;AAAA,EACpE,IAAI,YAAY,KAAK;AAAA,IAAG;AAAA,EACxB,IAAI,MAAM,SAAS,IAAI,GAAG;AAAA,IACzB,MAAM,IAAI,MACT,GAAG,UAAU,kFACd;AAAA,EACD;AAAA,EACA,IAAI,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,KAAK,GAAG;AAAA,IAChD,MAAM,IAAI,MACT,GAAG,UAAU,wDACd;AAAA,EACD;AAAA;;;ACxED,IAAM,mBAAmB,IAAI,IAAI;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AACD,IAAM,gBAAgB,IAAI,IAAI,CAAC,aAAa,WAAW,CAAC;AAExD,IAAM,oBAAoB,IAAI,IAAI,CAAC,OAAO,QAAQ,CAAC;AAEnD,SAAS,WAAW,CAAC,MAAsD;AAAA,EAC1E,OAAO,OAAO,QAAQ,IAAI,EAAE,OAC3B,EAAE,KAAK,WAAW,QAAQ,UAAU,UAAU,SAC/C;AAAA;AAGD,SAAS,YAAY,CAAC,MAAkC;AAAA,EACvD,YAAY,KAAK,UAAU,YAAY,IAAI,GAAG;AAAA,IAC7C,IAAI,iBAAiB,IAAI,GAAG,GAAG;AAAA,MAC9B,mBAAmB,KAAK,KAAe;AAAA,IACxC,EAAO,SAAI,QAAQ,mBAAmB;AAAA,MACrC,sBAAsB,KAAK,KAAe;AAAA,IAC3C,EAAO,SAAI,QAAQ,cAAc;AAAA,MAGhC,WAAW,MAAM,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG;AAAA,QACxD,iBAAiB,KAAK,EAAY;AAAA,MACnC;AAAA,IACD;AAAA,EACD;AAAA;AAMD,SAAS,WAAW,CAAC,SAAiB,OAAe,MAAqB;AAAA,EACzE,MAAM,IAAI,MACT,GAAG,gCAAgC,aAAa,2EACjD;AAAA;AAGD,SAAS,iBAAiB,CAAC,SAAiB,MAAkC;AAAA,EAC7E,YAAY,KAAK,UAAU,YAAY,IAAI,GAAG;AAAA,IAI7C,MAAM,aAAa,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAAA,IACxD,WAAW,aAAa,YAAY;AAAA,MACnC,IAAI,OAAO,cAAc,YAAY,YAAY,SAAS,GAAG;AAAA,QAC5D,YACC,SACA,GAAG,iBAAiB,cACpB,+CACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA;AAOD,SAAS,yBAAyB,CACjC,SACA,MACO;AAAA,EACP,MAAM,QAAQ,WAAW,OAAO,KAAK,QAAQ;AAAA,EAC7C,MAAM,WAAW,gBAAgB,OAAO,KAAK,aAAa;AAAA,EAC1D,IAAI,UAAU,aAAa,aAAa,WAAW;AAAA,IAClD,YACC,SACA,yBACA,uGACD;AAAA,EACD;AAAA;AAKD,SAAS,cAAc,CAAC,MAA+C;AAAA,EACtE,MAAM,MAAuC,CAAC;AAAA,EAC9C,YAAY,KAAK,UAAU,YAAY,IAAI,GAAG;AAAA,IAC7C,IAAI,kBAAkB,IAAI,GAAG;AAAA,MAAG;AAAA,IAChC,IAAI,QAAQ,WAAW;AAAA,MACtB,YACC,YACA,WACA,8GACD;AAAA,IACD;AAAA,IACA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,MAIzB,YACC,YACA,GAAG,WACH,0HACD;AAAA,IACD;AAAA,IAEA,IAAI,OACH,OAAO,UAAU,WAAW,MAAM,SAAS,IAAK;AAAA,EAClD;AAAA,EACA,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI;AAAA;AAGlC,SAAS,aAAa,CACrB,MACA,QAAiC,CAAC,GACT;AAAA,EACzB,kBAAkB,gBAAgB,IAAI;AAAA,EACtC,0BAA0B,gBAAgB,IAAI;AAAA,EAC9C,MAAM,MAA+B;AAAA,IACpC,WAAW,KAAK,SAAS,gBAAgB,UAAU,KAAK;AAAA,EACzD;AAAA,EACA,YAAY,KAAK,UAAU,YAAY,IAAI,GAAG;AAAA,IAC7C,IAAI,kBAAkB,IAAI,GAAG;AAAA,MAAG;AAAA,IAChC,IAAI,QAAQ,WAAW;AAAA,MACtB,YACC,gBACA,WACA,uDACD;AAAA,IACD;AAAA,IACA,IAAI,cAAc,IAAI,GAAG,GAAG;AAAA,MAC3B,YACC,gBACA,KACA,uFACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,WAAW,QAAQ,SAAS;AAAA,MACvC,YACC,gBACA,KACA,iHACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,iBAAiB;AAAA,MAG5B,IAAI,SAAS;AAAA,MACb;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,YAAY,KAAK,SAAS,wBAAwB;AAAA,MAC7D,YACC,gBACA,UACA,wDACD;AAAA,IACD;AAAA,IACA,IAAI,OAAO;AAAA,EACZ;AAAA,EACA,OAAO,KAAK,QAAQ,MAAM;AAAA;AAG3B,IAAM,aAAa,IAAI,IAA0B;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,IAAM,uBAAuB,IAAI,IAAI;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,SAAS,eAAe,CACvB,MACA,QAAiC,CAAC,GACU;AAAA,EAC5C,kBAAkB,WAAW,IAAI;AAAA,EACjC,MAAM,MAA+B;AAAA,IACpC,OAAO,CAAC,KAAK,SAAS,gBAAgB,UAAU,KAAK,IAAI;AAAA,EAC1D;AAAA,EACA,MAAM,OAAO,WAAW,IAAI,KAAK,IAAI;AAAA,EACrC,IAAI;AAAA,IAAM,IAAI,QAAQ;AAAA,EACtB,YAAY,KAAK,UAAU,YAAY,IAAI,GAAG;AAAA,IAC7C,IAAI,kBAAkB,IAAI,GAAG;AAAA,MAAG;AAAA,IAGhC,IAAI,QAAQ,qBAAqB,IAAI,GAAG,GAAG;AAAA,MAC1C,YACC,WACA,KACA,gHACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,WAAW;AAAA,MACtB,YACC,WACA,WACA,uDACD;AAAA,IACD;AAAA,IACA,IAAI,cAAc,IAAI,GAAG,GAAG;AAAA,MAC3B,YACC,WACA,KACA,+CACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,SAAS;AAAA,MACpB,YACC,WACA,SACA,0DACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,WAAW,QAAQ,SAAS;AAAA,MACvC,YACC,WACA,KACA,iDACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,iBAAiB;AAAA,MAC5B,YACC,WACA,iBACA,uDACD;AAAA,IACD;AAAA,IACA,IAAI,OAAO;AAAA,EACZ;AAAA,EACA,OAAO,KAAK,QAAQ,MAAM;AAAA;AAG3B,SAAS,qBAAqB,CAC7B,MACA,QAAiC,CAAC,GACP;AAAA,EAC3B,kBAAkB,wBAAwB,IAAI;AAAA,EAC9C,0BAA0B,wBAAwB,IAAI;AAAA,EACtD,MAAM,MAA+B,CAAC;AAAA,EACtC,YAAY,KAAK,UAAU,YAAY,IAAI,GAAG;AAAA,IAC7C,IAAI,kBAAkB,IAAI,GAAG;AAAA,MAAG;AAAA,IAChC,IAAI,QAAQ,WAAW;AAAA,MACtB,YACC,wBACA,WACA,uDACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,UAAU;AAAA,MAGrB,IAAI,SAAS;AAAA,MACb;AAAA,IACD;AAAA,IACA,IAAI,OAAO;AAAA,EACZ;AAAA,EACA,OAAO,KAAK,QAAQ,MAAM;AAAA;AAG3B,SAAS,gBAAgB,CAAC,MAAkD;AAAA,EAI3E,OAAO,OAAO,YAAY;AAAA,IACzB,CAAC,QAAQ,KAAK,IAAI;AAAA,IAClB,GAAG,YAAY,IAAI;AAAA,EACpB,CAAC;AAAA;AAKF,IAAM,kBAAkB,IAAI,IAA0B;AAAA,EACrD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAWM,SAAS,oBAGf,CAAC,MAAS,QAAiD;AAAA,EAC3D,MAAM,OAAO,EAAE,SAAS,OAAO;AAAA,EAC/B,aAAa,IAAI;AAAA,EAEjB,MAAM,SAAS,KAAK,KAAK;AAAA,EACzB,OAAO,iBAAiB,MAAM,eAAe,IAAI;AAAA,EACjD,IAAI,gBAAgB,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,GAAG;AAAA,IACtD,OAAO,gBAAgB,CAAC,UACvB,cAAc,MAAM,KAAK;AAAA,IAC1B,OAAO,kBAAkB,CAAC,UACzB,gBAAgB,MAAM,KAAK;AAAA,EAC7B;AAAA,EACA,IAAI,SAAS,iBAAiB;AAAA,IAC7B,OAAO,wBAAwB,CAAC,UAC/B,sBAAsB,MAAM,KAAK;AAAA,EACnC;AAAA,EACA,IAAI,CAAC,KAAK,WAAW,OAAO,GAAG;AAAA,IAC9B,OAAO,mBAAmB,MAAM,iBAAiB,IAAI;AAAA,EACtD;AAAA,EACA,OAAO;AAAA;AAUD,SAAS,kBAAkB,CACjC,QACuC;AAAA,EACvC,QAAQ,SAAS,WAAW;AAAA,EAC5B,OAAO,qBACN,MACA,MACD;AAAA;AAmOM,IAAM,KAAkB;AAAA,EAC9B,aAAa,CAAC,SAAiC,CAAC,MAC/C,qBAAqB,gBAAgB,MAAM;AAAA,EAC5C,SAAS,CAAC,SAA6B,CAAC,MACvC,qBAAqB,YAAY,MAAM;AAAA,EACxC,SAAS,CAAC,SAA6B,CAAC,MACvC,qBAAqB,YAAY,MAAM;AAAA,EACxC,SAAS,CAAC,SAA6B,CAAC,MACvC,qBAAqB,YAAY,MAAM;AAAA,EACxC,YAAY,CAAC,SAAgC,CAAC,MAC7C,qBAAqB,eAAe,MAAM;AAAA,EAC3C,QAAQ,CAAC,SAA4B,CAAC,MACrC,qBAAqB,WAAW,MAAM;AAAA,EACvC,QAAQ,CAAC,SAA4B,CAAC,MACrC,qBAAqB,WAAW,MAAM;AAAA,EACvC,aAAa,CAAC,SAAiC,CAAC,MAC/C,qBAAqB,gBAAgB,MAAM;AAAA,EAC5C,SAAS,CAAC,SAA6B,CAAC,MACvC,qBAAqB,YAAY,MAAM;AAAA,EACxC,SAAS,CAAC,SAA6B,CAAC,MACvC,qBAAqB,YAAY,MAAM;AAAA,EACxC,cAAc,CACb,SAAuE,CAAC,MACpE,qBAAqB,iBAAiB,MAAM;AAAA,EACjD,gBAAgB,CAAC,SAAoC,CAAC,MACrD,qBAAqB,mBAAmB,MAAM;AAAA,EAG/C,OAAO,CAKN,SAEI,CAAC,MACD,qBAAqB,eAAe,MAAM;AAAA,EAC/C,YAAY,CAAC,SAAyC,CAAC,MACtD,qBAAqB,wBAAwB,MAAM;AAAA,EACpD,QAAQ,CAAC,SAA4B,CAAC,MACrC,qBAAqB,WAAW,MAAM;AAAA,EACvC,QAAQ,CAAC,SAA4B,CAAC,MACrC,qBAAqB,WAAW,MAAM;AAAA,EACvC,WAAW,CAAC,SAA+B,CAAC,MAC3C,qBAAqB,cAAc,MAAM;AAAA,EAC1C,WAAW,CAAC,SAA+B,CAAC,MAC3C,qBAAqB,cAAc,MAAM;AAAA,EAC1C,aAAa,CAAC,SAAiC,CAAC,MAC/C,qBAAqB,gBAAgB,MAAM;AAAA,EAC5C,sBAAsB,CAAC,SAA2C,CAAC,MAClE,qBAAqB,0BAA0B,MAAM;AAAA,EACtD,sBAAsB,CAAC,SAA2C,CAAC,MAClE,qBAAqB,0BAA0B,MAAM;AAAA,EACtD,sBAAsB,CAAC,SAA2C,CAAC,MAClE,qBAAqB,0BAA0B,MAAM;AAAA,EACtD,8BAA8B,CAC7B,SAAoD,CAAC,MACjD,qBAAqB,mCAAmC,MAAM;AACpE;;ACloBA,eAAsB,iBAAiB,CACtC,UAC2B;AAAA,EAC3B,MAAM,SAAS,MAAM,SAAS,QAAQ,kBAAkB;AAAA,EAExD,MAAM,QAAQ,QAAQ,YAAY;AAAA,EAClC,IAAI,CAAC,OAAO,WAAW,CAAC,OAAO,WAAW;AAAA,IACzC,MAAM,IAAI,MAAM,yCAAyC;AAAA,EAC1D;AAAA,EAEA,OAAO;AAAA,IACN,MAAM;AAAA,IACN,SAAS,MAAM;AAAA,IACf,WAAW,MAAM;AAAA,IACjB;AAAA,EACD;AAAA;;ACfM,IAAM,UAAuB;AAAA,EACnC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,gBAAgB,EAAE,WAAW,IAAI,UAAU,GAAG;AAAA,EAC9C,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,gBAAgB,EAAE,MAAM,UAAU,QAAQ,OAAO,UAAU,EAAE;AAAA,EAC7D,SAAS;AAAA,IACR,SAAS;AAAA,MACR,MAAM,CAAC,6BAA6B;AAAA,MACpC,IAAI,CAAC,0CAA0C;AAAA,IAChD;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf,SAAS,EAAE,MAAM,iBAAiB,KAAK,2BAA2B;AAAA,EACnE;AACD;AAGO,IAAM,UAAuB;AAAA,EACnC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,gBAAgB,EAAE,WAAW,IAAI,UAAU,GAAG;AAAA,EAC9C,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,gBAAgB,EAAE,MAAM,UAAU,QAAQ,OAAO,UAAU,EAAE;AAAA,EAC7D,SAAS;AAAA,IACR,SAAS;AAAA,MACR,MAAM,CAAC,6BAA6B;AAAA,MACpC,IAAI,CAAC,0CAA0C;AAAA,IAChD;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf,SAAS;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,IACN;AAAA,EACD;AACD;AAGO,IAAM,SAAsB;AAAA,EAClC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,gBAAgB,EAAE,WAAW,IAAI,UAAU,GAAG;AAAA,EAC9C,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,gBAAgB,EAAE,MAAM,UAAU,QAAQ,OAAO,UAAU,EAAE;AAAA,EAC7D,SAAS;AAAA,IACR,SAAS;AAAA,MACR,MAAM,CAAC,uBAAuB;AAAA,MAC9B,IAAI,CAAC,oCAAoC;AAAA,IAC1C;AAAA,EACD;AACD;AAGO,IAAM,UAAuB;AAAA,KAChC;AAAA,EACH,MAAM;AAAA,EACN,gBAAgB,KAAK,OAAO,eAAe;AAC5C;;ACtEO,SAAS,WAAW,CAAC,OAAiC;AAAA,EAC5D,OAAO;AAAA;;ACCD,SAAS,WAAW,CAC1B,OACA,UACS;AAAA,EACT,IAAI,IAAI,OAAO,KAAK;AAAA,EAEpB,MAAM,WAAW,IAAI;AAAA,EACrB,IAAI;AAAA,IAAU,IAAI,CAAC;AAAA,EAEnB,MAAM,UAAU,OAAO,OAAO,QAAQ;AAAA,EACtC,MAAM,WAAW,IAAI,SAAS,SAAS;AAAA,EACvC,IAAI,YAAY,IAAI,SAAS,SAAS,EAAE,SAAS,UAAU,GAAG;AAAA,EAG9D,WAAW,SAAS,QAAQ,OAAO,EAAE,KAAK;AAAA,EAE1C,MAAM,SAAS,GAAG,WAAW;AAAA,EAC7B,OAAO,WAAW,IAAI,WAAW;AAAA;AAQlC,IAAM,iBAAiB;AAEhB,SAAS,UAAU,CAAC,OAAwB,UAA0B;AAAA,EAC5E,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,GAAG;AAAA,IACzD,MAAM,IAAI,WAAW,gBAAgB,2BAA2B;AAAA,EACjE;AAAA,EAKA,IAAI,MAAM,OAAO,UAAU,WAAW,MAAM,QAAQ,QAAQ,IAAI,MAAM,KAAK;AAAA,EAC3E,IAAI,CAAC,eAAe,KAAK,GAAG,GAAG;AAAA,IAC9B,MAAM,IAAI,WACT,iBAAiB,mFAClB;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,OAAO,GAAG,MAAM,OAAO;AAAA,IACvD,MAAM,IAAI,WACT,gBAAgB,cAAc,oEAC/B;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,IAAI,WAAW,GAAG;AAAA,EACnC,IAAI;AAAA,IAAU,MAAM,IAAI,MAAM,CAAC;AAAA,EAE/B,OAAO,UAAU,IAAI,WAAW,MAAM,IAAI,MAAM,GAAG;AAAA,EAEnD,IAAI,SAAS,SAAS,UAAU;AAAA,IAC/B,MAAM,IAAI,MACT,6BAA6B,cAAc,SAAS,2BAA2B,UAChF;AAAA,EACD;AAAA,EAEA,MAAM,SAAS,SAAS,OAAO,UAAU,GAAG;AAAA,EAC5C,MAAM,SAAS,OAAO,UAAU,MAAM;AAAA,EACtC,OAAO,WAAW,CAAC,SAAS;AAAA;AAOtB,SAAS,SAAS,CAAC,UAA4C;AAAA,EACrE,OAAO,YAAY,UAAU,CAAC;AAAA;AAOxB,SAAS,QAAQ,CAAC,KAA8B;AAAA,EACtD,OAAO,WAAW,KAAK,CAAC;AAAA;",
|
|
85
|
+
"debugId": "0E41631B1B55B42664756E2164756E21",
|
|
86
86
|
"names": []
|
|
87
87
|
}
|