@algorandfoundation/puya-ts 1.2.0-beta.21 → 1.2.0-beta.23

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.
Files changed (31) hide show
  1. package/{analyser-service-CGprVWba.js → analyser-service-BFKP7nFu.js} +3 -3
  2. package/{analyser-service-CGprVWba.js.map → analyser-service-BFKP7nFu.js.map} +1 -1
  3. package/analyserService.mjs +3 -3
  4. package/{arc4-clientgen-C7FQSt3R.js → arc4-clientgen-Tbipufvi.js} +2 -2
  5. package/{arc4-clientgen-C7FQSt3R.js.map → arc4-clientgen-Tbipufvi.js.map} +1 -1
  6. package/bin/puyats-clientgen.mjs +5 -5
  7. package/bin/puyats-ls.mjs +6 -6
  8. package/bin/run-cli.mjs +8 -8
  9. package/{check-node-version-DcMVGPC-.js → check-node-version-DHwzT8GC.js} +3 -3
  10. package/{check-node-version-DcMVGPC-.js.map → check-node-version-DHwzT8GC.js.map} +1 -1
  11. package/cli/build-command.d.ts +1 -0
  12. package/cli.mjs +14 -8
  13. package/cli.mjs.map +1 -1
  14. package/{compile-D0CpLiRh.js → compile-MzeR7I1-.js} +6 -6
  15. package/{compile-D0CpLiRh.js.map → compile-MzeR7I1-.js.map} +1 -1
  16. package/constants.d.ts +1 -1
  17. package/{contract-class-model-CLKobHyV.js → contract-class-model-CY9ZMyyU.js} +2 -2
  18. package/{contract-class-model-CLKobHyV.js.map → contract-class-model-CY9ZMyyU.js.map} +1 -1
  19. package/index.mjs +8 -8
  20. package/{options-B93nVWrL.js → options-D_9OI_e6.js} +7 -2
  21. package/{options-B93nVWrL.js.map → options-D_9OI_e6.js.map} +1 -1
  22. package/options.d.ts +2 -0
  23. package/package.json +2 -2
  24. package/puya/index.d.ts +14 -0
  25. package/puya/puya-service.d.ts +1 -1
  26. package/{resolve-puya-path-D7qDcdPx.js → resolve-puya-path-BnON0byV.js} +4 -4
  27. package/{resolve-puya-path-D7qDcdPx.js.map → resolve-puya-path-BnON0byV.js.map} +1 -1
  28. package/{semver-BPw8lYGI.js → semver-BlMeOfo8.js} +2 -2
  29. package/{semver-BPw8lYGI.js.map → semver-BlMeOfo8.js.map} +1 -1
  30. package/{util-BhM5b2cL.js → util-BmUgKp-7.js} +2 -2
  31. package/{util-BhM5b2cL.js.map → util-BmUgKp-7.js.map} +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"contract-class-model-CLKobHyV.js","sources":["../src/constants.ts","../src/errors.ts","../src/util/base-32.ts","../src/util/base-64.ts","../src/util/index.ts","../src/util/polyfills.ts","../src/util/absolute-path.ts","../src/awst/source-location.ts","../src/awst/models.ts","../src/awst/wtypes.ts","../src/awst_build/ptypes/base.ts","../src/awst_build/symbol-name.ts","../src/awst_build/ptypes/transient-type-errors.ts","../src/awst_build/ptypes/util.ts","../src/awst_build/ptypes/intrinsic-enum-type.ts","../src/awst_build/ptypes/op-ptypes.ts","../src/awst_build/ptypes/index.ts","../src/awst_build/eb/transactions/util.ts","../src/awst/nodes.ts","../src/awst/constant-evaluation.ts","../src/awst/node-factory.ts","../src/logger/index.ts","../src/util/custom-key-map.ts","../src/awst_build/models/logic-sig-class-model.ts","../src/awst_build/models/contract-class-model.ts"],"sourcesContent":["const algoTsPackage = '@algorandfoundation/algorand-typescript'\n\nexport const Constants = {\n algoTsPackage,\n moduleNames: {\n typescript: {\n es5: 'typescript/lib/lib.es5.d.ts',\n },\n polytype: 'polytype/lib/polytype-module.d.ts',\n algoTs: {\n arc28: `${algoTsPackage}/arc-28.d.ts`,\n arc4: {\n index: `${algoTsPackage}/arc4/index.d.ts`,\n encodedTypes: `${algoTsPackage}/arc4/encoded-types.d.ts`,\n c2c: `${algoTsPackage}/arc4/c2c.d.ts`,\n },\n arrays: `${algoTsPackage}/arrays.d.ts`,\n baseContract: `${algoTsPackage}/base-contract.d.ts`,\n box: `${algoTsPackage}/box.d.ts`,\n compiled: `${algoTsPackage}/compiled.d.ts`,\n itxn: `${algoTsPackage}/itxn.d.ts`,\n itxnCompose: `${algoTsPackage}/itxn-compose.d.ts`,\n gtxn: `${algoTsPackage}/gtxn.d.ts`,\n logicSig: `${algoTsPackage}/logic-sig.d.ts`,\n referenceArray: `${algoTsPackage}/reference-array.d.ts`,\n onCompleteAction: `${algoTsPackage}/on-complete-action.d.ts`,\n op: `${algoTsPackage}/op.d.ts`,\n primitives: `${algoTsPackage}/primitives.d.ts`,\n reference: `${algoTsPackage}/reference.d.ts`,\n state: `${algoTsPackage}/state.d.ts`,\n templateVar: `${algoTsPackage}/template-var.d.ts`,\n transactions: `${algoTsPackage}/transactions.d.ts`,\n util: `${algoTsPackage}/util.d.ts`,\n mutableObject: `${algoTsPackage}/mutable-object.d.ts`,\n },\n },\n\n symbolNames: {\n approvalProgramMethodName: 'approvalProgram',\n clearStateProgramMethodName: 'clearStateProgram',\n readonlyDecoratorName: 'arc4.readonly',\n arc4BareDecoratorName: 'arc4.baremethod',\n arc4AbiDecoratorName: 'arc4.abimethod',\n contractOptionsDecoratorName: 'contract',\n logicSigOptionsDecoratorName: 'logicsig',\n constructorMethodName: 'constructor',\n logicSigProgramMethodName: 'program',\n defaultCreateMethodName: '__algots__.defaultCreate',\n conventionalRouting: {\n closeOutOfApplicationMethodName: 'closeOutOfApplication',\n createApplicationMethodName: 'createApplication',\n deleteApplicationMethodName: 'deleteApplication',\n optInToApplicationMethodName: 'optInToApplication',\n updateApplicationMethodName: 'updateApplication',\n },\n },\n\n algo: {\n arc4: {\n logPrefixHex: '151F7C75',\n },\n addressLength: 32,\n encodedAddressLength: 58,\n maxTransactionGroupSize: 16,\n zeroAddressB32: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ',\n },\n\n supportedAvmVersions: [10n, 11n, 12n, 13n],\n targetedPuyaVersion: '5.8.0-rc.2',\n puyaGithubRepo: 'algorandfoundation/puya',\n minNodeVersion: '20.11.1',\n languageServerSource: 'puyats',\n} as const\n\nexport type SupportedAvmVersion = (typeof Constants.supportedAvmVersions)[number]\n","import type { SourceLocation } from './awst/source-location'\nimport type { PType, PTypeOrClass } from './awst_build/ptypes'\nimport type { CodeFix } from './code-fix/code-fix'\n\ntype PuyaErrorOptions = {\n cause?: Error\n sourceLocation?: SourceLocation\n}\n\nexport class PuyaError extends Error {\n readonly sourceLocation: SourceLocation | undefined\n constructor(message?: string, options?: PuyaErrorOptions) {\n super(message, options)\n this.sourceLocation = options?.sourceLocation\n }\n}\n\n/**\n * Any error that is 'caused' by a user of Puya\n */\nexport abstract class UserError extends PuyaError {}\n\n/**\n * Thrown when the user's code is invalid, or not supported\n */\nexport class CodeError extends UserError {\n static unexpectedUnhandledArgs({ sourceLocation }: { sourceLocation: SourceLocation }) {\n return new CodeError('Unexpected/unhandled args', {\n sourceLocation,\n })\n }\n static unexpectedTypeArgs({ sourceLocation }: { sourceLocation: SourceLocation }) {\n return new CodeError('Function does not accept type arguments', {\n sourceLocation,\n })\n }\n static expectedCompileTimeConstant({ sourceLocation }: { sourceLocation: SourceLocation }) {\n return new CodeError('Expected compile time constant', {\n sourceLocation,\n })\n }\n static invalidAssignmentTarget({ sourceLocation, name }: { sourceLocation: SourceLocation; name: string }) {\n return new CodeError(`${name} is not a valid assignment target`, {\n sourceLocation,\n })\n }\n static cannotResolveToType({\n sourceType,\n targetType,\n sourceLocation,\n }: {\n sourceLocation: SourceLocation\n sourceType: PType\n targetType: PTypeOrClass\n }) {\n return new CodeError(`Cannot resolve expression of type ${sourceType} to ${targetType}`, { sourceLocation })\n }\n}\n\nexport class FixableCodeError extends CodeError {\n readonly codeFix: CodeFix\n constructor(codeFix: CodeFix) {\n super(codeFix.errorMessage, { sourceLocation: codeFix.sourceLocation })\n this.codeFix = codeFix\n }\n}\n\n/**\n * Thrown when the compiler ends up in an unrecoverable state\n */\nexport class InternalError extends PuyaError {\n static shouldBeUnreachable() {\n return new InternalError('Code should be unreachable')\n }\n}\nexport class NotSupported extends CodeError {\n constructor(featureName: string, options?: PuyaErrorOptions) {\n super(`Not Supported: ${featureName}`, options)\n }\n}\n\n/**\n * Thrown when the user's environment is not set up correctly\n */\nexport class EnvironmentError extends UserError {}\n\nexport const throwError = (error: Error): never => {\n throw error\n}\nexport const wrapInCodeError = <T>(func: () => T, sourceLocation: SourceLocation) => {\n try {\n return func()\n } catch (e) {\n if (e instanceof Error) {\n throw new CodeError(e.message, { sourceLocation, cause: e })\n } else {\n throw new CodeError(String(e), { sourceLocation })\n }\n }\n}\n","const BASE32_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'.split('')\n\nconst CHAR_TO_NUM = BASE32_ALPHABET.reduce((acc, cur, index) => ((acc[cur] = index), acc), {} as Record<string, number>)\n\nexport const base32ToUint8Array = (value: string): Uint8Array => {\n let allChars = value\n .split('')\n .filter((c) => c !== '=')\n .map((c) => {\n const cUpper = c.toUpperCase()\n if (cUpper in CHAR_TO_NUM) return CHAR_TO_NUM[cUpper]\n throw new Error(`Invalid base32 char ${c}`)\n })\n const bytes = new Array<number>()\n while (allChars.length) {\n const [a, b, c, d, e, f, g, h, ...rest] = allChars\n if (a === undefined || b === undefined) break\n bytes.push(((a << 3) | (b >>> 2)) & 255)\n if (c === undefined || d === undefined) break\n bytes.push(((b << 6) | (c << 1) | (d >>> 4)) & 255)\n if (e === undefined) break\n bytes.push(((d << 4) | (e >>> 1)) & 255)\n if (f === undefined || g === undefined) break\n bytes.push(((e << 7) | (f << 2) | (g >>> 3)) & 255)\n if (h === undefined) break\n bytes.push(((g << 5) | h) & 255)\n allChars = rest\n }\n return new Uint8Array(bytes)\n}\n\nexport const uint8ArrayToBase32 = (value: Uint8Array): string => {\n let allBytes = Array.from(value)\n let base32str = ''\n while (allBytes.length) {\n const [a, b, c, d, e, ...rest] = allBytes ?? [0, 0, 0, 0, 0]\n\n if (allBytes.length < 1) break\n base32str += BASE32_ALPHABET[a >>> 3]\n base32str += BASE32_ALPHABET[((a << 2) | ((b || 0) >>> 6)) & 31]\n if (allBytes.length < 2) break\n base32str += BASE32_ALPHABET[(b >>> 1) & 31]\n base32str += BASE32_ALPHABET[((b << 4) | (c >>> 4)) & 31]\n if (allBytes.length < 3) break\n base32str += BASE32_ALPHABET[((c << 1) | (d >>> 7)) & 31]\n if (allBytes.length < 4) break\n base32str += BASE32_ALPHABET[(d >>> 2) & 31]\n base32str += BASE32_ALPHABET[((d << 3) | (e >>> 5)) & 31]\n if (allBytes.length < 5) break\n base32str += BASE32_ALPHABET[e & 31]\n allBytes = rest\n }\n return base32str\n}\n","/*\nBase 64 encode from/decode to Uint8Array.\n\nWe don't use Node's Uint8Array.from(Buffer.from(value, 'base64')) as it ignores invalid characters rather than erroring!\n\nAdapted from https://github.com/mathiasbynens/base64/blob/master/src/base64.js\n */\n\nimport { throwError } from '../errors'\n\nconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('')\n\nconst charToNum = new Map([...alphabet.entries()].map(([i, c]) => [c, i]))\nconst numToChar = new Map(alphabet.entries())\n\nfunction getCharForNum(n: number): string {\n return numToChar.get(n) ?? throwError(new Error(`${n} is outside of the base 64 char range`))\n}\n\nexport function base64ToUint8Array(input: string): Uint8Array {\n let length = input.length\n if (length % 4 === 0) {\n input = input.replace(/==?$/, '')\n length = input.length\n }\n if (length % 4 === 1) {\n throw new Error('Invalid length for base64 string.')\n }\n\n let bitCounter = 0\n let bitStorage = 0\n const output = new Uint8Array(Math.floor((length / 4) * 3))\n let outCounter = 0\n let position = -1\n while (++position < length) {\n const c = input.charAt(position)\n const buffer = charToNum.get(c) ?? throwError(new Error(`Invalid character ${c} at position ${position}`))\n bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer\n // Unless this is the first of a group of 4 characters…\n if (bitCounter++ % 4) {\n // convert the first 8 bits to a single ASCII character.\n output[outCounter++] = 0xff & (bitStorage >> ((-2 * bitCounter) & 6))\n }\n }\n return output\n}\n\nexport function uint8ArrayToBase64(input: Uint8Array) {\n const padding = input.length % 3\n let output = ''\n let position = -1\n let a\n let b\n let c\n let buffer\n // Make sure any padding is handled outside the loop.\n const length = input.length - padding\n\n while (++position < length) {\n // Read three bytes, i.e. 24 bits.\n a = input[position] << 16\n b = input[++position] << 8\n c = input[++position]\n buffer = a + b + c\n // Turn the 24 bits into four chunks of 6 bits each, and append the\n // matching character for each of them to the output.\n output +=\n getCharForNum((buffer >> 18) & 0x3f) +\n getCharForNum((buffer >> 12) & 0x3f) +\n getCharForNum((buffer >> 6) & 0x3f) +\n getCharForNum(buffer & 0x3f)\n }\n\n if (padding === 2) {\n a = input[position] << 8\n b = input[++position]\n buffer = a + b\n output += `${getCharForNum(buffer >> 10) + getCharForNum((buffer >> 4) & 0x3f) + getCharForNum((buffer << 2) & 0x3f)}=`\n } else if (padding === 1) {\n buffer = input[position]\n output += `${getCharForNum(buffer >> 2) + getCharForNum((buffer << 4) & 0x3f)}==`\n }\n\n return output\n}\n","import fs from 'node:fs'\nimport { TextDecoder } from 'node:util'\nimport pathe from 'pathe'\nimport type { SourceLocation } from '../awst/source-location'\nimport { Constants } from '../constants'\nimport { CodeError, InternalError } from '../errors'\nimport type { DeliberateAny } from '../typescript-helpers'\nimport type { AbsolutePath } from './absolute-path'\n\nexport { base32ToUint8Array, uint8ArrayToBase32 } from './base-32'\nexport { base64ToUint8Array, uint8ArrayToBase64 } from './base-64'\nexport { hexToUint8Array, uint8ArrayToHex } from './base-16'\n\nclass InvariantError extends InternalError {}\n\n/**\n * Checks an invariant condition hold true. If this check fails it indicates the compiler is in an unstable state. For invariants related to\n * user code, use codeInvariant below.\n *\n * @param condition\n * @param message\n * @param sourceLocation\n */\nexport function invariant(condition: unknown, message: string, sourceLocation?: SourceLocation): asserts condition {\n if (!condition) {\n throw new InvariantError(message, { sourceLocation })\n }\n}\n\n/**\n * Checks an invariant related to user code holds true. If this check fails it indicates the user code is not valid. For invariants the user\n * has no control over, use invariant above.\n * @param condition\n * @param message\n * @param sourceLocation\n */\nexport function codeInvariant(condition: unknown, message: string, sourceLocation?: SourceLocation): asserts condition {\n if (!condition) {\n throw new CodeError(message, {\n sourceLocation,\n })\n }\n}\n\nexport const enumFromValue = <TValue, TEnum extends TValue>(\n value: TValue,\n enumType: Record<string, TEnum | string>,\n message: string = 'Invalid enum value: ',\n) => {\n if (Object.values(enumType).some((v) => v === value)) {\n return value as TEnum\n }\n throw new Error(`${message} ${value}`)\n}\n\nexport const enumKeyFromValue = <TValue, TEnum extends TValue>(\n value: TValue,\n enumType: Record<string, TEnum>,\n message: string = 'Invalid enum value: ',\n) => {\n const key = Object.entries(enumType).find(([_, v]) => v === value)?.[0]\n if (key) {\n return key\n }\n throw new Error(`${message} ${value}`)\n}\n\nexport const convertEnum = <TEnumIn, TEnumOut, TKeys extends string>(\n value: TEnumIn,\n fromEnum: Record<TKeys, TEnumIn>,\n toEnum: Record<TKeys, TEnumOut>,\n): TEnumOut => {\n const keyOfValue = Object.entries(fromEnum).find(([, v]) => v === value)?.[0]\n if (!keyOfValue) {\n // missing value\n throw new Error(`key missing: ${value}`)\n }\n return toEnum[keyOfValue as keyof typeof toEnum]\n}\n\nexport const tryConvertEnum = <TEnumIn, TEnumOut, TKeys extends string>(\n value: TEnumIn,\n fromEnum: Record<TKeys, TEnumIn>,\n toEnum: Record<string, TEnumOut>,\n): TEnumOut | undefined => {\n const keyOfValue = Object.entries(fromEnum).find(([, v]) => v === value)?.[0]\n if (!keyOfValue) {\n return undefined\n }\n return toEnum[keyOfValue as keyof typeof toEnum]\n}\n\nexport const expandMaybeArray = <T>(maybeArray: T | T[]): T[] => {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray]\n}\n\nexport const utf8ToUint8Array = (value: string): Uint8Array => {\n const encoder = new TextEncoder()\n return encoder.encode(value)\n}\n\nexport const uint8ArrayToBigInt = (v: Uint8Array): bigint => {\n // Assume big-endian\n return Array.from(v)\n .toReversed()\n .map((byte_value, i): bigint => BigInt(byte_value) << BigInt(i * 8))\n .reduce((a, b) => a + b, 0n)\n}\n\nexport const uint8ArrayToUtf8 = (value: Uint8Array): string => {\n const decoder = new TextDecoder()\n return decoder.decode(value)\n}\n\nexport const bigIntToUint8Array = (val: bigint, fixedSize: number | 'dynamic' = 'dynamic'): Uint8Array => {\n if (val === 0n && fixedSize === 'dynamic') {\n return new Uint8Array(0)\n }\n const maxBytes = fixedSize === 'dynamic' ? 4096 : fixedSize\n\n let hex = val.toString(16)\n\n // Pad the hex with zeros so it matches the size in bytes\n if (fixedSize !== 'dynamic' && hex.length !== fixedSize * 2) {\n hex = hex.padStart(fixedSize * 2, '0')\n } else if (hex.length % 2 === 1) {\n // Pad to 'whole' byte\n hex = `0${hex}`\n }\n if (hex.length > maxBytes * 2) {\n throw new InternalError(`Cannot encode ${val} as ${maxBytes} bytes as it would overflow`)\n }\n const byteArray = new Uint8Array(hex.length / 2)\n for (let i = 0, j = 0; i < hex.length / 2; i++, j += 2) {\n byteArray[i] = parseInt(hex.slice(j, j + 2), 16)\n }\n return byteArray\n}\n\nexport const hasFlags = <T extends number>(value: T, flags: T): boolean => (value & flags) === flags\nexport const intersectsFlags = <T extends number>(value: T, flags: T): boolean => Boolean(value & flags)\n\nexport function toSubScript(num: number) {\n const subNumbers = ['\\u2080', '\\u2081', '\\u2082', '\\u2083', '\\u2084', '\\u2085', '\\u2086', '\\u2087', '\\u2088', '\\u2089']\n return num\n .toFixed(0)\n .split('')\n .map((x) => subNumbers[parseInt(x)])\n .join('')\n}\n\nexport function instanceOfAny<T extends Array<new (...args: DeliberateAny[]) => DeliberateAny>>(\n x: unknown,\n ...types: T\n): x is InstanceType<T[number]> {\n return types.some((t) => x instanceof t)\n}\n\n/**\n * Extract a module name from a file path\n *\n * - Anything in /node_modules/ is truncated to <package-name>/path.ext\n * - Anything in workingDirectory is truncated relative to the workingDirectory\n * - Forward slashes are used to segment paths\n * @param filePath\n * @param workingDirectory\n */\nexport function extractModuleName(filePath: string, workingDirectory: AbsolutePath): string {\n const localPackageName = /packages\\/algo-ts\\/dist\\/(.*)$/.exec(filePath)\n if (localPackageName) {\n return `${Constants.algoTsPackage}/${localPackageName[1]}`\n }\n const nodeModuleName = /.*\\/node_modules\\/(.*)$/.exec(filePath)\n if (nodeModuleName) {\n return nodeModuleName[1]\n }\n const cwd = pathe.normalize(`${workingDirectory}/`)\n const normalizedPath = pathe.normalize(filePath)\n const moduleName = normalizedPath.startsWith(cwd) ? normalizedPath.slice(cwd.length) : normalizedPath\n return moduleName.replaceAll('\\\\', '/')\n}\n\ntype SortFn<T> = (a: T, b: T) => number\n\ntype SortDir = 'asc' | 'desc'\nexport const sortBy =\n <T, TKey>(keySelector: (item: T) => TKey, dir: SortDir = 'asc') =>\n (a: T, b: T) => {\n const keyA = keySelector(a)\n const keyB = keySelector(b)\n return (dir === 'desc' ? -1 : 1) * (keyA < keyB ? -1 : keyA > keyB ? 1 : 0)\n }\n\n/**\n * Combine multiple sort functions to construct a more advanced sort by _this_ then by _that_ function.\n * @param sortFunctions one or more sort functions (the return type of sortBy, and sortByIgnoreCase)\n *\n * Usage:\n * ```\n * const users = allUsers.slice().sort(\n * combineSortFn(\n * sortByIgnoreCase(x => x.familyName),\n * sortByIgnoreCase(x => x.givenName),\n * sortBy(x => x.dateOfBirth)\n * )\n * )\n * ```\n */\nexport const combineSortFn =\n <T>(...sortFunctions: SortFn<T>[]): SortFn<T> =>\n (a, b) => {\n for (const fn of sortFunctions) {\n const res = fn(a, b)\n if (res !== 0) {\n return res\n }\n }\n return 0\n }\n\n/**\n * Can be used to filter a collection to a set of distinct items as determined by a specified key.\n * @param keySelector A lambda which when given an item, returns the items unique identifier\n *\n * Usage:\n *\n * ```\n * const distinctItems = nonDistinctItems.filter(distinct(x => x.uniqueId))\n * ```\n */\nexport const distinct = <T>(keySelector?: (item: T) => unknown) => {\n const ks = keySelector || ((x: T) => x)\n const set = new Set()\n return (item: T) => {\n if (set.has(ks(item))) {\n return false\n }\n\n set.add(ks(item))\n return true\n }\n}\n\nexport const distinctByEquality = <T>(areEqual: (a: T, b: T) => boolean) => {\n const set: T[] = []\n return (item: T) => {\n if (set.some((s) => areEqual(s, item))) return false\n set.push(item)\n return true\n }\n}\n\nexport function mkDirIfNotExists(dir: string) {\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n}\n\nexport function sameSets<T>(a: Iterable<T>, b: Iterable<T>) {\n const setA = new Set(a)\n const setB = new Set(b)\n return setA.intersection(setB).size === setA.size\n}\n\nexport const zipStrict = <T1, T2>(array1: T1[], array2: T2[]): [T1, T2][] => {\n invariant(array1.length === array2.length, 'Array lengths must match')\n return array1.map((t1, idx) => [t1, array2[idx]])\n}\n\nexport function isIn<TSubject, TItem extends TSubject>(subject: TSubject, items: readonly TItem[]): subject is TItem {\n return items.some((i) => i === subject)\n}\n\nexport function joinUint8Arrays(...arrays: Uint8Array[]): Uint8Array {\n const length = arrays.reduce((acc, cur) => acc + cur.length, 0)\n const result = new Uint8Array(length)\n let offset = 0\n for (const a of arrays) {\n result.set(a, offset)\n offset += a.length\n }\n return result\n}\n","/*\n Polyfills for Set methods that are not available on older versions of Node\n\n We only polyfill methods which are used in this codebase, polyfills should be removed as older\n versions of node are retired from LTS according to https://nodejs.org/en/about/previous-releases\n*/\n\n// Node < 22.11\nif (!Set.prototype.union) {\n Set.prototype.union = function (other) {\n // Convert ReadonlySetLike to iterable by checking if it's a Set or has values method\n let otherIterable: Iterable<unknown>\n if (other instanceof Set) {\n otherIterable = other\n } else if ('values' in other && typeof other.values === 'function') {\n otherIterable = other.values()\n } else {\n throw new TypeError('Argument must be a ReadonlySetLike')\n }\n\n return new Set([...this, ...otherIterable])\n }\n}\n\n// Node < 22.11\nif (!Set.prototype.intersection) {\n Set.prototype.intersection = function (other) {\n return new Set([...this].filter((e) => other.has(e)))\n }\n}\n\n// Node < 22.11\nif (!Set.prototype.difference) {\n Set.prototype.difference = function (other) {\n return new Set([...this].filter((e) => !other.has(e)))\n }\n}\n\n// Node < 22\nif (!Set.prototype.symmetricDifference) {\n Set.prototype.symmetricDifference = function (other) {\n const result = this.difference(other)\n for (let it = other.keys(), { value, done } = it.next(); !done; { value, done } = it.next()) {\n if (!this.has(value)) result.add(value)\n }\n return result\n }\n}\n\n// Node < 22.11\nif (!Promise.withResolvers) {\n Promise.withResolvers = function <T>() {\n let resolve: PromiseWithResolvers<T>['resolve'] = undefined!,\n reject: PromiseWithResolvers<T>['reject'] = undefined!\n const promise = new Promise<T>((res, rej) => {\n resolve = res\n reject = rej\n })\n return { promise, resolve, reject }\n }\n}\n\n// Node < 22.11\nconst MapIteratorPrototype = Object.getPrototypeOf(new Map().entries())\nif (!MapIteratorPrototype.map) {\n MapIteratorPrototype.map = function* <T, U>(\n this: IteratorObject<T>,\n callbackFn: (value: unknown, index: number) => U,\n ): IteratorObject<U, undefined, unknown> {\n let i = 0\n for (const item of this) {\n yield callbackFn(item, i++)\n }\n }\n}\n","import * as pathe from 'pathe'\n\nexport class AbsolutePath {\n constructor(private value: string) {}\n\n static resolve({ path, workingDirectory }: { path: string; workingDirectory?: AbsolutePath }) {\n const p = pathe.resolve(workingDirectory?.value ?? process.cwd(), path)\n\n return new AbsolutePath(p)\n }\n\n toString() {\n return this.value\n }\n\n basename(ext?: string) {\n return pathe.basename(this.value, ext)\n }\n\n replaceAll(searchValue: string, replaceValue: string) {\n return new AbsolutePath(this.value.replaceAll(searchValue, replaceValue))\n }\n\n join(...paths: string[]) {\n return new AbsolutePath(pathe.join(this.value, ...paths))\n }\n\n equals(other: AbsolutePath | string) {\n return getAbsolutePath(other).value === this.value\n }\n\n relativeTo(other: AbsolutePath | string) {\n return pathe.relative(getAbsolutePath(other).value, this.value)\n }\n\n /**\n * Resolve the specified relative path relative to this absolute path\n * @param relativePath\n */\n resolve(relativePath: string) {\n return new AbsolutePath(pathe.resolve(this.value, relativePath))\n }\n}\n\nfunction getAbsolutePath(path: AbsolutePath | string) {\n if (typeof path === 'string') {\n return AbsolutePath.resolve({ path })\n }\n return path\n}\n","import ts from 'typescript'\nimport { invariant } from '../util'\nimport { AbsolutePath } from '../util/absolute-path'\n\nexport class SourceLocation<TNode extends ts.Node | undefined = ts.Node | undefined> {\n file: AbsolutePath | null\n line: number\n endLine: number\n column: number\n endColumn: number\n scope: 'file' | 'range'\n node: TNode\n\n /**\n * Asserts this source location has a node and returns source location with updated typing\n */\n withNode(): SourceLocation<ts.Node> {\n invariant(this.node, 'Source location must have node', this)\n return this as SourceLocation<ts.Node>\n }\n\n constructor(props: {\n file?: AbsolutePath | null\n line: number\n endLine: number\n column: number\n endColumn: number\n scope: SourceLocation['scope']\n node: TNode\n }) {\n invariant(props.line <= props.endLine, 'Start line must be before end line')\n if (props.line === props.endLine) invariant(props.column <= props.endColumn, 'Start column must be before end column')\n this.file = props.file ?? null\n this.line = props.line\n this.endLine = props.endLine\n this.column = props.column\n this.endColumn = props.endColumn\n this.scope = props.scope\n this.node = props.node\n\n // Exclude scope from enumerable properties so it doesn't end up being serialized\n Object.defineProperty(this, 'scope', {\n enumerable: false,\n })\n Object.defineProperty(this, 'node', {\n enumerable: false,\n })\n }\n\n private static getStartAndEnd(node: ts.Node): { start: number; end: number } {\n if (ts.isClassDeclaration(node)) {\n return fromNodeTillStartOfNode(node, node.members.at(0))\n }\n if (ts.isMethodDeclaration(node) || ts.isFunctionDeclaration(node)) {\n return fromNodeTillStartOfNode(node, node.body)\n }\n if (ts.isForStatement(node) || ts.isForInStatement(node) || ts.isForOfStatement(node)) {\n return fromNodeTillStartOfNode(node, node.statement)\n }\n if (ts.isIfStatement(node)) {\n return fromNodeTillStartOfNode(node, node.thenStatement)\n }\n\n return {\n start: node.getStart(),\n end: node.getEnd(),\n }\n }\n\n static fromNode<TNode extends ts.Node>(node: TNode, programDirectory: AbsolutePath): SourceLocation<TNode> {\n const sourceFile = node.getSourceFile()\n\n const { start, end } = SourceLocation.getStartAndEnd(node)\n\n const startLoc = sourceFile.getLineAndCharacterOfPosition(start)\n const endLoc = sourceFile.getLineAndCharacterOfPosition(end)\n\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: sourceFile.fileName, workingDirectory: programDirectory }),\n line: startLoc.line + 1,\n endLine: endLoc.line + 1,\n column: startLoc.character,\n endColumn: endLoc.character,\n scope: 'range',\n node,\n })\n }\n\n static fromFile(sourceFile: ts.SourceFile, programDirectory: AbsolutePath): SourceLocation {\n const endPos = sourceFile.getEnd()\n const endLoc = sourceFile.getLineAndCharacterOfPosition(endPos)\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: sourceFile.fileName, workingDirectory: programDirectory }),\n line: 1,\n endLine: endLoc.line + 1,\n column: 0,\n endColumn: endLoc.character,\n scope: 'file',\n node: undefined,\n })\n }\n\n static fromTextRange(sourceFile: ts.SourceFile, textRange: ts.TextRange, programDirectory: AbsolutePath): SourceLocation {\n const startLoc = sourceFile.getLineAndCharacterOfPosition(textRange.pos)\n const endLoc = sourceFile.getLineAndCharacterOfPosition(textRange.end)\n\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: sourceFile.fileName, workingDirectory: programDirectory }),\n line: startLoc.line + 1,\n endLine: endLoc.line + 1,\n column: startLoc.character,\n endColumn: endLoc.character,\n scope: 'range',\n node: undefined,\n })\n }\n\n static fromDiagnostic(diagnostic: ts.DiagnosticWithLocation, programDirectory: AbsolutePath): SourceLocation {\n const startLoc = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start)\n\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: diagnostic.file.fileName, workingDirectory: programDirectory }),\n line: startLoc.line + 1,\n endLine: startLoc.line + 1,\n column: startLoc.character,\n endColumn: startLoc.character,\n scope: 'range',\n node: undefined,\n })\n }\n\n toString(options?: { pathsRelativeTo?: AbsolutePath }) {\n const filePath = options?.pathsRelativeTo ? this.file?.relativeTo(options.pathsRelativeTo) : this.file?.toString()\n return `${filePath}:${this.line}:${this.column + 1}`\n }\n\n static None = new SourceLocation({\n line: 1,\n endLine: 1,\n column: 0,\n endColumn: 1,\n scope: 'file',\n node: undefined,\n })\n}\n\nfunction fromNodeTillStartOfNode(n1: ts.Node, n2?: ts.Node): { start: number; end: number } {\n return {\n start: n1.getStart(),\n end: n2 ? n2.getStart() - n2.getLeadingTriviaWidth() : n1.getEnd(),\n }\n}\n","import type { ContractClassPType, LogicSigPType } from '../awst_build/ptypes'\n\nexport enum OnCompletionAction {\n NoOp = 0,\n OptIn = 1,\n CloseOut = 2,\n ClearState = 3,\n UpdateApplication = 4,\n DeleteApplication = 5,\n}\n\nclass ModelBase {\n /**\n * This field prevents us from accidentally passing an object literal with structural equality to\n * a model class instead of any instance of the class, which would stuff up the serialization\n * @private\n */\n #isModel = true\n}\n\nexport class ContractReference extends ModelBase {\n constructor({ className, moduleName }: { className: string; moduleName: string }) {\n super()\n this.className = className\n this.moduleName = moduleName\n }\n readonly className: string\n readonly moduleName: string\n\n get id() {\n return `${this.moduleName}::${this.className}`\n }\n\n toString(): string {\n return this.id\n }\n\n static fromPType(contractPType: ContractClassPType): ContractReference {\n return new ContractReference({\n className: contractPType.name,\n moduleName: contractPType.module,\n })\n }\n}\nexport class LogicSigReference extends ModelBase {\n constructor({ name, moduleName }: { name: string; moduleName: string }) {\n super()\n this.name = name\n this.moduleName = moduleName\n }\n readonly name: string\n readonly moduleName: string\n\n get id() {\n return `${this.moduleName}::${this.name}`\n }\n\n toString(): string {\n return this.id\n }\n\n static fromPType(logicSigPType: LogicSigPType): LogicSigReference {\n return new LogicSigReference({\n name: logicSigPType.name,\n moduleName: logicSigPType.module,\n })\n }\n}\n\nexport enum TransactionKind {\n pay = 1,\n keyreg = 2,\n acfg = 3,\n axfer = 4,\n afrz = 5,\n appl = 6,\n}\n","import { invariant } from '../util'\nimport { TransactionKind } from './models'\nimport type { SourceLocation } from './source-location'\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace wtypes {\n export class WType {\n constructor(props: { name: string; immutable?: boolean }) {\n this.name = props.name\n this.immutable = props.immutable ?? true\n }\n\n readonly name: string\n readonly immutable: boolean\n\n equals(other: WType): boolean {\n return other instanceof this.constructor && other.name === this.name\n }\n\n toString(): string {\n return this.name\n }\n }\n\n export const voidWType = new WType({\n name: 'void',\n })\n export const boolWType = new WType({\n name: 'bool',\n })\n export const uint64WType = new WType({\n name: 'uint64',\n })\n export const uint64RangeWType = new WType({\n name: 'uint64_range',\n })\n\n export const stateKeyWType = new WType({\n name: 'state_key',\n })\n export const boxKeyWType = new WType({\n name: 'box_key',\n })\n export const stringWType = new WType({\n name: 'string',\n })\n export const biguintWType = new WType({\n name: 'biguint',\n })\n export const assetWType = new WType({\n name: 'asset',\n })\n\n export const accountWType = new WType({\n name: 'account',\n })\n export const applicationWType = new WType({\n name: 'application',\n })\n\n export class BytesWType extends WType {\n readonly length: bigint | null\n\n constructor(args?: { length: bigint | null }) {\n const length = args?.length ?? null\n super({\n name: length === null ? 'bytes' : `bytes[${length}]`,\n immutable: true,\n })\n this.length = length\n }\n }\n export const bytesWType = new BytesWType()\n\n export class ARC4Type extends WType {\n /**\n * Override the default name of this type with a valid arc4 alias.\n *\n * eg uint8 can be aliased with byte, byte[32] can be aliased with address\n */\n readonly arc4Alias: string | null\n constructor({ arc4Alias, ...rest }: { arc4Alias?: string | null; name: string; immutable?: boolean }) {\n super({ ...rest })\n this.arc4Alias = arc4Alias ?? null\n }\n }\n\n export class WTuple extends WType {\n types: WType[]\n names: string[] | undefined\n constructor(props: { names?: string[]; types: WType[]; name?: string }) {\n super({\n name: props.name ?? 'tuple',\n immutable: true,\n })\n this.types = props.types\n if (props.names) {\n invariant(props.names.length === props.types.length, 'If names is provided, length must match types')\n this.names = props.names\n }\n }\n\n equals(other: WType): boolean {\n if (other instanceof WTuple) {\n return (\n this.name === other.name &&\n this.types.every((t, i) => t.equals(other.types[i])) &&\n (this.names?.every((n, i) => n === other.names?.[i]) ?? this.names === other.names)\n )\n }\n return false\n }\n\n toString(): string {\n const displayName = this.name.split('::').at(-1) ?? this.name\n if (this.names) {\n return `${displayName}{ ${this.names.map((n, i) => `${n}: ${this.types[i]}`).join(', ')} }`\n }\n return `${this.immutable ? 'readonly ' : ''}[${this.types.join(', ')}]`\n }\n }\n\n export abstract class NativeArray extends WType {\n readonly elementType: WType\n readonly sourceLocation: SourceLocation | null\n protected constructor(props: { name: string; itemType: WType; sourceLocation?: SourceLocation }) {\n super({\n name: props.name,\n })\n this.elementType = props.itemType\n this.sourceLocation = props.sourceLocation ?? null\n }\n }\n\n export class ReferenceArray extends NativeArray {\n readonly immutable = false\n constructor(props: { itemType: WType; immutable: boolean; sourceLocation?: SourceLocation }) {\n super({\n name: `ref_array<${props.itemType.name}>`,\n ...props,\n })\n }\n }\n\n export class WEnumeration extends WType {\n readonly sequenceType: WType\n constructor(props: { sequenceType: WType }) {\n super({\n name: `enumeration<${props.sequenceType.name}>`,\n immutable: true,\n })\n this.sequenceType = props.sequenceType\n }\n }\n export class WGroupTransaction extends WType {\n transactionType: TransactionKind | null\n constructor({ transactionType }: { transactionType?: TransactionKind }) {\n super({\n name: transactionType === undefined ? 'group_transaction' : `group_transaction_${TransactionKind[transactionType]}`,\n })\n this.transactionType = transactionType ?? null\n }\n }\n export class WInnerTransaction extends WType {\n transactionType: TransactionKind | null\n constructor({ transactionType }: { transactionType?: TransactionKind }) {\n super({\n name: transactionType === undefined ? 'inner_transaction' : `inner_transaction_${TransactionKind[transactionType]}`,\n })\n this.transactionType = transactionType ?? null\n }\n }\n export class WInnerTransactionFields extends WType {\n transactionType: TransactionKind | null\n constructor({ transactionType, name }: { transactionType?: TransactionKind; name?: string }) {\n super({\n name: transactionType === undefined ? 'inner_transaction_fields' : `inner_transaction_fields_${TransactionKind[transactionType]}`,\n })\n this.transactionType = transactionType ?? null\n }\n }\n\n export class WABICallInnerTransactionFields extends WInnerTransactionFields {\n resultType: WType\n constructor({ returnType }: { returnType?: WType }) {\n super({\n transactionType: TransactionKind.appl,\n name: 'abi_call_inner_transaction_fields',\n })\n this.resultType = returnType ?? voidWType\n }\n }\n\n export class ARC4UIntN extends ARC4Type {\n readonly n: bigint\n constructor({ n, arc4Alias }: { n: bigint; arc4Alias?: string }) {\n super({\n name: arc4Alias ? `arc4.${arc4Alias}` : `arc4.uint${n}`,\n arc4Alias,\n })\n invariant(n >= 8n && n <= 512n, 'Invalid uint: n must be between 8 and 512')\n invariant(n % 8n === 0n, 'Invalid uint: n must be multiple of 8')\n this.n = n\n }\n }\n\n export class ARC4UFixedNxM extends ARC4Type {\n readonly n: bigint\n readonly m: bigint\n constructor({ n, m }: { n: bigint; m: bigint }) {\n super({\n name: `arc4.ufixed${n}x${m}`,\n })\n\n invariant(n >= 8n && n <= 512n, 'Invalid ufixed: n must be between 8 and 512')\n invariant(n % 8n === 0n, 'Invalid ufixed: n must be multiple of 8')\n invariant(m >= 0n && m <= 160n, 'Invalid ufixed: m must be between 0 and 160')\n this.n = n\n this.m = m\n }\n }\n\n export class ARC4Struct extends ARC4Type {\n fields: Record<string, WType>\n sourceLocation: SourceLocation | null\n frozen: boolean\n desc: string | null\n\n constructor({\n fields,\n sourceLocation,\n name,\n desc,\n frozen,\n }: {\n frozen: boolean\n name: string\n desc: string | null\n fields: Record<string, WType>\n sourceLocation?: SourceLocation\n }) {\n super({\n name,\n immutable: frozen && Object.values(fields).every((t) => t.immutable),\n })\n this.sourceLocation = sourceLocation ?? null\n this.fields = fields\n this.frozen = frozen\n this.desc = desc\n }\n }\n export class ARC4Tuple extends ARC4Type {\n readonly types: WType[]\n readonly sourceLocation: SourceLocation | null\n readonly immutable: boolean\n\n constructor({ types, sourceLocation, immutable }: { types: WType[]; sourceLocation?: SourceLocation; immutable: boolean }) {\n const typesStr = types.map((t) => t.name).join(',')\n super({\n name: `arc4.tuple<${typesStr}>`,\n })\n this.sourceLocation = sourceLocation ?? null\n this.types = types\n this.immutable = immutable\n }\n }\n\n export abstract class ARC4Array extends ARC4Type {\n readonly elementType: WType\n protected constructor(props: { arc4Alias: string | null; name: string; elementType: WType; immutable?: boolean }) {\n super({\n ...props,\n immutable: props.immutable ?? false,\n })\n this.elementType = props.elementType\n }\n }\n\n export class ARC4DynamicArray extends ARC4Array {\n readonly sourceLocation: SourceLocation | null\n constructor({\n elementType,\n sourceLocation,\n arc4Alias,\n immutable,\n }: {\n elementType: WType\n sourceLocation?: SourceLocation\n arc4Alias?: string\n immutable?: boolean\n }) {\n super({\n elementType,\n name: `arc4.dynamic_array<${elementType.name}>`,\n arc4Alias: arc4Alias ?? null,\n immutable,\n })\n this.sourceLocation = sourceLocation ?? null\n }\n }\n export class ARC4StaticArray extends ARC4Array {\n readonly sourceLocation: SourceLocation | null\n readonly arraySize: bigint\n constructor({\n elementType,\n sourceLocation,\n arraySize,\n arc4Alias,\n immutable,\n }: {\n arraySize: bigint\n elementType: WType\n sourceLocation?: SourceLocation\n arc4Alias?: string\n immutable?: boolean\n }) {\n super({\n elementType,\n name: `arc4.static_array<${elementType.name},${arraySize}>`,\n arc4Alias: arc4Alias ?? null,\n immutable,\n })\n this.sourceLocation = sourceLocation ?? null\n this.arraySize = arraySize\n }\n }\n\n export const arc4ByteAliasWType = new ARC4UIntN({\n n: 8n,\n arc4Alias: 'byte',\n })\n export const arc4AddressAliasWType = new ARC4StaticArray({\n arraySize: 32n,\n immutable: true,\n elementType: arc4ByteAliasWType,\n arc4Alias: 'address',\n })\n\n export const arc4BooleanWType = new ARC4Type({\n name: 'arc4.bool',\n immutable: true,\n })\n\n export const arc4StringAliasWType = new ARC4DynamicArray({\n arc4Alias: 'string',\n elementType: arc4ByteAliasWType,\n immutable: true,\n })\n}\n","import { wtypes } from '../../awst/wtypes'\nimport { CodeError } from '../../errors'\nimport type { DeliberateAny } from '../../typescript-helpers'\nimport { zipStrict } from '../../util'\nimport type { PTypeVisitor } from './visitor'\n\nconst PTypeId = Symbol('PTypeId')\n\n/**\n * Represents a public type visible to a developer of AlgoTS\n */\nexport abstract class PType {\n static readonly IdSymbol: typeof PTypeId = PTypeId\n /**\n * Since TypeScript is structurally typed, different PTypes with compatible\n * structures will often be assignable to one and another and this is generally\n * not desirable. The PTypeId property should be used to declare a literal value\n * (usually the class name) on each distinct PType class to ensure they are\n * structurally different.\n */\n abstract readonly [PTypeId]: string\n\n /**\n * Get the associated wtype for this ptype if applicable\n */\n abstract readonly wtype: wtypes.WType | undefined\n\n /**\n * Get the unaliased name of this ptype\n */\n abstract readonly name: string\n\n /**\n * Get the declaring module of this ptype\n */\n abstract readonly module: string\n\n abstract readonly singleton: boolean\n\n abstract accept<T>(visitor: PTypeVisitor<T>): T\n\n get fullName() {\n return `${this.module}::${this.name}`\n }\n\n get wtypeOrThrow(): wtypes.WType {\n if (!this.wtype) {\n throw new CodeError(`${this.fullName} does not have a wtype`)\n }\n return this.wtype\n }\n\n equals(other: PType): boolean {\n return ptypesAreEqual(this, other)\n }\n\n equalsOneOf(...others: PType[]): boolean {\n return others.some((o) => ptypesAreEqual(this, o))\n }\n\n static equals(other: PType): boolean {\n return other.constructor === this\n }\n\n equalsOrInstanceOf(other: PTypeOrClass): boolean {\n if (other instanceof Function) {\n return this instanceof other\n }\n return this.equals(other)\n }\n\n toString(): string {\n return this.name\n }\n\n static typeDescription?: string\n\n static toString() {\n return this?.typeDescription ?? this.constructor.name\n }\n}\n\nexport interface ABICompatiblePType extends PType {\n readonly abiTypeSignature: string\n}\n\nexport class GenericPType<T extends PType = PType> extends PType {\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitGeneric(this)\n }\n readonly [PTypeId] = 'GenericPType'\n readonly name: string\n readonly module: string\n readonly singleton = true\n readonly wtype = undefined\n readonly parameterise: (typeArgs: readonly PType[]) => T\n constructor(props: { name: string; module: string; parameterise: (typeArgs: readonly PType[]) => T }) {\n super()\n this.name = props.name\n this.module = props.module\n this.parameterise = props.parameterise\n }\n}\n\nexport type PTypeOrClass = PType | { new (...args: DeliberateAny[]): PType; equals(other: PType): boolean }\n\nfunction ptypesAreEqual(left: PType, right: PType): boolean {\n if (right.constructor !== left.constructor) {\n return false\n }\n return compareProperties(left, right)\n}\n\nconst ignoredProperties = new Set(['sourceLocation', 'wtype'])\n\nfunction notIgnored(key: string): boolean {\n return !ignoredProperties.has(key)\n}\n\nfunction compareProperties(left: object, right: object) {\n const leftProps = Object.entries(left).filter(([key]) => notIgnored(key))\n const rightProps = Object.entries(right).filter(([key]) => notIgnored(key))\n if (leftProps.length !== rightProps.length) return false\n\n return zipStrict(leftProps, rightProps).every(([[lKey, lValue], [rKey, rValue]]) => {\n if (lKey !== rKey) return false\n return compareValues(lValue, rValue)\n })\n}\n\nfunction compareValues(left: unknown, right: unknown): boolean {\n // Handle primitive comparison\n if (typeof left !== 'object' || left === right) {\n return left === right\n }\n if (left === null) {\n return right === null\n }\n // Recursively compare array items\n if (Array.isArray(left)) {\n return Array.isArray(right) && left.length === right.length && left.every((v, i) => compareValues(v, right[i]))\n }\n // Recursively compare ptypes\n if (left instanceof PType) {\n return right instanceof PType && ptypesAreEqual(left, right)\n }\n if (left instanceof wtypes.WType) {\n return right instanceof wtypes.WType && left.equals(right)\n }\n return typeof right === 'object' && right !== null && compareProperties(left, right)\n}\n","export class SymbolName {\n public readonly module: string\n public readonly name: string\n\n constructor(props: { module: string; name: string }) {\n this.module = props.module\n this.name = props.name\n }\n\n get fullName() {\n return `${this.module}::${this.name}`\n }\n\n toString() {\n return this.fullName\n }\n}\n","type TransientTypeError = {\n usedAsType: string\n usedInExpression: string\n}\n\nexport const transientTypeErrors = {\n nativeNumeric: (typeName) => ({\n usedAsType: `\\`${typeName}\\` is not valid as a variable, parameter, return, or property type. Please use an algo-ts type such as \\`biguint\\` or \\`uint64\\``,\n usedInExpression: `Expression of type \\`${typeName}\\` must be explicitly converted to an algo-ts type, for example by wrapping the expression in \\`Uint64(...)\\` or \\`BigUint(...)\\``,\n }),\n unionTypes: (typeName) => ({\n usedAsType: `Union types are not valid as a variable, parameter, return, or property type. Expression type is ${typeName}`,\n usedInExpression: `Union types are only valid in boolean expressions. Expression type is ${typeName}`,\n }),\n intersectionTypes: (typeName) => ({\n usedAsType: `Intersection types are not valid as a variable, parameter, return, or property type. Expression type is ${typeName}`,\n usedInExpression: `Intersection types not valid here. Expression type is ${typeName}`,\n }),\n optionalFields: (typeName) => ({\n usedAsType: `${typeName} type should not be used explicitly as it contains optional fields which cannot be interrogated at runtime. Either remove the type annotation or use \\`EXPRESSION satisfies ${typeName}\\``,\n usedInExpression: `${typeName} type should not be used explicitly as it contains optional fields which cannot be interrogated at runtime.`,\n }),\n} satisfies Record<string, (typeName: string) => TransientTypeError>\n","import * as crypto from 'node:crypto'\nimport type { PType } from './base'\n\nexport const ptypeIn = (target: PType, ...ptypes: [PType, ...PType[]]): boolean => {\n return ptypes.some((t) => t.equals(target))\n}\n\nexport function generateObjectHash(objectProperties: Record<string, PType>) {\n const signature = Object.entries(objectProperties)\n .map(([k, v]) => `${k}:${v}`)\n .join(';')\n const hash = crypto.createHash('sha512')\n hash.update(signature, 'utf8')\n return hash.digest('hex').substring(0, 8).toUpperCase()\n}\n","import { PType } from './base'\nimport type { PTypeVisitor } from './visitor'\n\nexport class IntrinsicEnumType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicEnumType'\n readonly wtype: undefined\n readonly name: string\n readonly factory: undefined\n readonly module: string\n readonly members: Array<[string, string]>\n readonly singleton = true\n\n constructor({ name, module, members }: { name: string; module: string; members: Array<[string, string]> }) {\n super()\n this.members = members\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicEnumType(this)\n }\n}\n","/* THIS FILE IS GENERATED BY ~/scripts/generate-op-ptypes.ts - DO NOT MODIFY DIRECTLY */\nimport { IntrinsicEnumType } from './intrinsic-enum-type'\nimport { Constants } from '../../constants'\n\nexport const base64PType = new IntrinsicEnumType({\n name: 'Base64',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['URLEncoding', 'URLEncoding'],\n ['StdEncoding', 'StdEncoding'],\n ],\n})\nexport const ecPType = new IntrinsicEnumType({\n name: 'Ec',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['BN254g1', 'BN254g1'],\n ['BN254g2', 'BN254g2'],\n ['BLS12_381g1', 'BLS12_381g1'],\n ['BLS12_381g2', 'BLS12_381g2'],\n ],\n})\nexport const ecdsaPType = new IntrinsicEnumType({\n name: 'Ecdsa',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['Secp256k1', 'Secp256k1'],\n ['Secp256r1', 'Secp256r1'],\n ],\n})\nexport const mimcConfigurationsPType = new IntrinsicEnumType({\n name: 'MimcConfigurations',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['BN254Mp110', 'BN254Mp110'],\n ['BLS12_381Mp111', 'BLS12_381Mp111'],\n ],\n})\nexport const vrfVerifyPType = new IntrinsicEnumType({\n name: 'VrfVerify',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [['VrfAlgorand', 'VrfAlgorand']],\n})\nexport const ALL_OP_ENUMS = [base64PType, ecPType, ecdsaPType, mimcConfigurationsPType, vrfVerifyPType]\n","import { TransactionKind } from '../../awst/models'\nimport { SourceLocation } from '../../awst/source-location'\nimport { wtypes } from '../../awst/wtypes'\n\nimport { Constants } from '../../constants'\nimport { CodeError, InternalError, NotSupported, throwError } from '../../errors'\nimport { codeInvariant, distinctByEquality, instanceOfAny, invariant, sortBy, zipStrict } from '../../util'\nimport { SymbolName } from '../symbol-name'\nimport type { ABICompatiblePType, PTypeOrClass } from './base'\nimport { GenericPType, PType } from './base'\n\nimport { transientTypeErrors } from './transient-type-errors'\nimport { generateObjectHash } from './util'\nimport type { PTypeVisitor } from './visitor'\n\nexport * from './base'\nexport * from './intrinsic-enum-type'\nexport * from './op-ptypes'\n\n/**\n * Transient types can appear in expressions but should not be used as variable or return types\n */\nexport abstract class TransientType extends PType {\n readonly name: string\n readonly module: string\n readonly singleton: boolean\n readonly typeMessage: string\n readonly expressionMessage: string\n\n constructor({\n name,\n module,\n singleton,\n typeMessage,\n expressionMessage,\n }: {\n name: string\n module: string\n singleton: boolean\n typeMessage: string\n expressionMessage: string\n }) {\n super()\n this.name = name\n this.module = module\n this.singleton = singleton\n this.typeMessage = typeMessage\n this.expressionMessage = expressionMessage\n }\n\n get wtype(): wtypes.WType | undefined {\n return undefined\n }\n\n get wtypeOrThrow(): wtypes.WType {\n throw new CodeError(this.typeMessage)\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitTransientType(this)\n }\n}\n\nexport class UnsupportedType extends PType {\n readonly [PType.IdSymbol] = 'UnsupportedType'\n readonly wtype: undefined = undefined\n readonly name: string\n readonly module: string\n readonly singleton = false\n #fullName: string | undefined\n\n constructor({ name, module, fullName }: { name: string; module: string; fullName?: string }) {\n super()\n this.name = name\n this.module = module\n this.#fullName = fullName\n }\n\n get fullName() {\n return this.#fullName ?? super.fullName\n }\n\n get wtypeOrThrow(): wtypes.WType {\n throw new NotSupported(`The type ${this.fullName} is not supported`)\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitUnsupportedType(this)\n }\n}\n\nexport class ObjectWithOptionalFieldsType extends TransientType {\n readonly [PType.IdSymbol] = 'ObjectWithOptionalFieldsType'\n constructor({ name, module }: { name: string; module: string }) {\n const errors = transientTypeErrors.optionalFields(name)\n super({\n name,\n module,\n singleton: false,\n expressionMessage: errors.usedInExpression,\n typeMessage: errors.usedAsType,\n })\n }\n}\n\nexport class LogicSigPType extends PType {\n readonly [PType.IdSymbol] = 'LogicSigPType'\n readonly wtype = undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n readonly sourceLocation: SourceLocation\n readonly baseType: LogicSigPType | undefined\n constructor(props: { module: string; name: string; baseType?: LogicSigPType; sourceLocation: SourceLocation }) {\n super()\n this.name = props.name\n this.module = props.module\n this.baseType = props.baseType\n this.sourceLocation = props.sourceLocation\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLogicSigPType(this)\n }\n}\n\nexport const logicSigBaseType = new LogicSigPType({\n name: 'LogicSig',\n module: Constants.moduleNames.algoTs.logicSig,\n sourceLocation: SourceLocation.None,\n})\n\nexport class ContractClassPType extends PType {\n readonly [PType.IdSymbol] = 'ContractClassPType'\n readonly wtype = undefined\n readonly name: string\n readonly module: string\n readonly properties: Record<string, AppStorageType>\n readonly methods: Record<string, FunctionPType>\n readonly singleton = true\n readonly baseTypes: ContractClassPType[]\n readonly sourceLocation: SourceLocation\n\n constructor(props: {\n module: string\n name: string\n properties: Record<string, AppStorageType>\n methods: Record<string, FunctionPType>\n baseTypes: ContractClassPType[]\n sourceLocation: SourceLocation\n }) {\n super()\n this.name = props.name\n this.module = props.module\n this.properties = props.properties\n this.methods = props.methods\n this.baseTypes = props.baseTypes\n this.sourceLocation = props.sourceLocation\n }\n\n get isARC4(): boolean {\n return this.baseTypes.some((b) => b.isARC4)\n }\n\n *allBases(): IterableIterator<ContractClassPType> {\n for (const b of this.baseTypes) {\n yield b\n yield* b.allBases()\n }\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitContractClassPType(this)\n }\n}\n\nexport class ClusteredContractClassType extends ContractClassPType {\n constructor(props: { methods: Record<string, FunctionPType>; baseTypes: ContractClassPType[]; sourceLocation: SourceLocation }) {\n super({\n ...props,\n name: `ClusteredContract<${props.baseTypes.map((t) => t.fullName).join(',')}>`,\n module: Constants.moduleNames.polytype,\n methods: Object.assign({}, ...props.baseTypes.toReversed().map((t) => t.methods)),\n properties: Object.assign({}, ...props.baseTypes.toReversed().map((t) => t.properties)),\n })\n }\n}\n\nexport class BaseContractClassType extends ContractClassPType {\n readonly _isArc4: boolean\n get isARC4(): boolean {\n return this._isArc4\n }\n\n constructor({\n isArc4,\n ...rest\n }: {\n isArc4: boolean\n module: string\n name: string\n properties: Record<string, AppStorageType>\n methods: Record<string, FunctionPType>\n baseTypes: ContractClassPType[]\n sourceLocation: SourceLocation\n }) {\n super(rest)\n this._isArc4 = isArc4\n }\n}\n\nexport class IntersectionPType extends TransientType {\n readonly [PType.IdSymbol] = 'IntersectionPType'\n get fullName() {\n return this.types.map((t) => t).join(' & ')\n }\n readonly singleton = false\n readonly types: PType[]\n\n private constructor({ types }: { types: PType[] }) {\n const name = types.map((t) => t).join(' & ')\n super({\n name,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.intersectionTypes(name).usedAsType,\n expressionMessage: transientTypeErrors.intersectionTypes(name).usedInExpression,\n })\n this.types = types\n }\n\n static fromTypes(types: PType[]) {\n if (types.length === 0) {\n throw new InternalError('Cannot create intersection of zero types')\n }\n const distinctTypes = types.filter(distinctByEquality((a, b) => a.equals(b))).toSorted(sortBy((t) => t.fullName))\n if (distinctTypes.length === 1) {\n return distinctTypes[0]\n }\n return new IntersectionPType({\n types: distinctTypes,\n })\n }\n}\n\nexport class UnionPType extends TransientType {\n readonly [PType.IdSymbol] = 'UnionPType'\n get fullName() {\n return this.types.map((t) => t).join(' | ')\n }\n readonly singleton = false\n readonly types: PType[]\n\n private constructor({ types }: { types: PType[] }) {\n let typeMessage: string\n let expressionMessage: string\n const name = types.map((t) => t).join(' | ')\n const transientType = types.find((t) => t instanceof TransientType)\n if (transientType) {\n if (instanceOfAny(transientType, BigIntLiteralPType, NumericLiteralPType, BigIntPType, NumberPType)) {\n typeMessage = transientTypeErrors.nativeNumeric(name).usedAsType\n expressionMessage = transientTypeErrors.nativeNumeric(name).usedInExpression\n } else {\n typeMessage = transientType.typeMessage\n expressionMessage = transientType.expressionMessage\n }\n } else {\n typeMessage = transientTypeErrors.unionTypes(name).usedAsType\n expressionMessage = transientTypeErrors.unionTypes(name).usedInExpression\n }\n super({\n name,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage,\n expressionMessage,\n })\n this.types = types\n }\n\n static fromTypes(types: PType[]) {\n if (types.length === 0) {\n throw new InternalError('Cannot create union of zero types')\n }\n const distinctTypes = types.filter(distinctByEquality((a, b) => a.equals(b))).toSorted(sortBy((t) => t.fullName))\n if (distinctTypes.length === 1) {\n return distinctTypes[0]\n }\n return new UnionPType({\n types: distinctTypes,\n })\n }\n}\n\nabstract class StorageProxyPType extends PType {\n readonly wtype: wtypes.WType\n readonly contentType: PType\n readonly singleton = false\n\n protected constructor(props: { content: PType; keyWType: wtypes.WType }) {\n super()\n this.wtype = props.keyWType\n this.contentType = props.content\n }\n}\nexport const GlobalStateGeneric = new GenericPType({\n name: 'GlobalState',\n module: Constants.moduleNames.algoTs.state,\n parameterise(typeArgs: readonly PType[]): GlobalStateType {\n codeInvariant(typeArgs.length === 1, 'GlobalState type expects exactly one type parameter')\n return new GlobalStateType({\n content: typeArgs[0],\n })\n },\n})\nexport class GlobalStateType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'GlobalStateType'\n static readonly baseName = 'GlobalState'\n static readonly baseFullName = `${Constants.moduleNames.algoTs.state}::${GlobalStateType.baseName}`\n readonly module: string = Constants.moduleNames.algoTs.state\n get name() {\n return `${GlobalStateType.baseName}<${this.contentType.name}>`\n }\n get fullName() {\n return `${GlobalStateType.baseFullName}<${this.contentType.fullName}>`\n }\n constructor(props: { content: PType }) {\n super({ ...props, keyWType: wtypes.stateKeyWType })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitGlobalStateType(this)\n }\n}\nexport const LocalStateGeneric = new GenericPType({\n name: 'LocalState',\n module: Constants.moduleNames.algoTs.state,\n parameterise(typeArgs: readonly PType[]): LocalStateType {\n codeInvariant(typeArgs.length === 1, 'LocalState type expects exactly one type parameter')\n return new LocalStateType({\n content: typeArgs[0],\n })\n },\n})\nexport class LocalStateType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'LocalStateType'\n static readonly baseName = 'LocalState'\n static readonly baseFullName = `${Constants.moduleNames.algoTs.state}::${LocalStateType.baseName}`\n readonly module: string = Constants.moduleNames.algoTs.state\n get name() {\n return `${LocalStateType.baseName}<${this.contentType.name}>`\n }\n get fullName() {\n return `${LocalStateType.baseFullName}<${this.contentType.fullName}>`\n }\n constructor(props: { content: PType }) {\n super({ ...props, keyWType: wtypes.stateKeyWType })\n }\n static parameterise(typeArgs: PType[]): LocalStateType {\n codeInvariant(typeArgs.length === 1, 'LocalState type expects exactly one type parameter')\n return new LocalStateType({\n content: typeArgs[0],\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLocalStateType(this)\n }\n}\nexport const BoxGeneric = new GenericPType({\n name: 'Box',\n module: Constants.moduleNames.algoTs.box,\n parameterise(typeArgs: readonly PType[]): BoxPType {\n codeInvariant(typeArgs.length === 1, `${this.name} type expects exactly one type parameter`)\n return new BoxPType({\n content: typeArgs[0],\n })\n },\n})\nexport class BoxPType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'BoxPType'\n readonly module: string = Constants.moduleNames.algoTs.box\n get name() {\n return `Box<${this.contentType.name}>`\n }\n get fullName() {\n return `${this.module}::${this.name}<${this.contentType.fullName}>`\n }\n constructor(props: { content: PType }) {\n super({ ...props, keyWType: wtypes.boxKeyWType })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitBoxPType(this)\n }\n}\nexport const BoxMapGeneric = new GenericPType({\n name: 'BoxMap',\n module: Constants.moduleNames.algoTs.box,\n parameterise(typeArgs: readonly PType[]): BoxMapPType {\n codeInvariant(typeArgs.length === 2, `${this.name} type expects exactly two type parameters`)\n return new BoxMapPType({\n keyType: typeArgs[0],\n content: typeArgs[1],\n })\n },\n})\nexport class BoxMapPType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'BoxMapPType'\n readonly module: string = Constants.moduleNames.algoTs.box\n get name() {\n return `BoxMap<${this.keyType.name}, ${this.contentType.name}>`\n }\n get fullName() {\n return `${this.module}::${this.name}<${this.keyType.name}, ${this.contentType.fullName}>`\n }\n readonly keyType: PType\n constructor(props: { content: PType; keyType: PType }) {\n super({ ...props, keyWType: wtypes.boxKeyWType })\n this.keyType = props.keyType\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitBoxMapPType(this)\n }\n}\nexport type AppStorageType = GlobalStateType | LocalStateType | BoxPType | BoxMapPType\n\n/**\n * An open generic type parameter\n */\nexport class TypeParameterType extends PType {\n readonly [PType.IdSymbol] = 'TypeParameterType'\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly wtype = undefined\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitTypeParameterType(this)\n }\n}\n\n/**\n * A type from the typescript libs which might pop up in type reflection\n * but is not relevant to the output of the compiler\n */\nexport class InternalType extends PType {\n readonly [PType.IdSymbol] = 'InternalType'\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly wtype = undefined\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitInternalType(this)\n }\n}\nexport const ClassMethodDecoratorContext = new InternalType({\n module: 'typescript/lib/lib.decorators.d.ts',\n name: 'ClassMethodDecoratorContext',\n})\n\nexport class AnyPType extends PType {\n readonly [PType.IdSymbol] = 'AnyPType'\n get wtype(): never {\n throw new CodeError('`any` is not valid as a variable, parameter, return, or property type.')\n }\n readonly name = 'any'\n readonly module = 'lib.d.ts'\n readonly singleton = false\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitAnyPType(this)\n }\n}\n\nexport class InstanceType extends PType {\n readonly [PType.IdSymbol] = 'InstanceType'\n readonly wtype: wtypes.WType\n readonly name: string\n readonly module: string\n readonly singleton = false\n\n constructor({ name, module, wtype }: { name: string; module: string; wtype: wtypes.WType }) {\n super()\n this.name = name\n this.wtype = wtype\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitInstanceType(this)\n }\n}\n\nexport class ABICompatibleInstanceType extends InstanceType implements ABICompatiblePType {\n readonly abiTypeSignature: string\n constructor({ abiTypeSignature, ...props }: { name: string; module: string; wtype: wtypes.WType; abiTypeSignature: string }) {\n super(props)\n this.abiTypeSignature = abiTypeSignature\n }\n}\n\nexport class LibFunctionType extends PType {\n readonly [PType.IdSymbol] = 'LibFunctionType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLibFunctionType(this)\n }\n}\nexport class LibClassType extends PType {\n readonly [PType.IdSymbol] = 'LibClassType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLibClassType(this)\n }\n}\nexport class LibObjType extends PType {\n readonly [PType.IdSymbol] = 'LibObjType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLibObjType(this)\n }\n}\n\nexport class IntrinsicFunctionGroupType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionGroupType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = true\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionGroupType(this)\n }\n}\nexport class IntrinsicFunctionGroupTypeType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionGroupTypeType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = false\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionGroupTypeType(this)\n }\n}\nexport class IntrinsicFunctionType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = true\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionType(this)\n }\n}\nexport class IntrinsicFunctionTypeType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionTypeType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = false\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionTypeType(this)\n }\n}\n\nexport const bzeroFunction = new IntrinsicFunctionType({\n name: 'bzero',\n})\n\nexport class NamespacePType extends PType {\n readonly [PType.IdSymbol] = 'NamespacePType'\n readonly wtype: undefined\n readonly name: string\n readonly factory: undefined\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n get fullName() {\n return `${this.module}::*`\n }\n\n toString(): string {\n return this.module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitNamespacePType(this)\n }\n}\n\nexport class FunctionPType extends PType {\n readonly [PType.IdSymbol] = 'FunctionPType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly returnType: PType\n readonly parameters: Array<readonly [string, PType]>\n readonly singleton = true\n readonly sourceLocation: SourceLocation | undefined\n readonly declaredIn: SymbolName | undefined\n\n constructor(props: {\n name: string\n module: string\n returnType: PType\n parameters: Array<readonly [string, PType]>\n sourceLocation: SourceLocation | undefined\n declaredIn?: SymbolName\n }) {\n super()\n this.name = props.name\n this.module = props.module\n this.sourceLocation = props.sourceLocation\n this.returnType = props.returnType\n this.parameters = props.parameters\n this.declaredIn = props.declaredIn\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitFunctionPType(this)\n }\n}\nexport class ArrayLiteralPType extends PType {\n readonly [PType.IdSymbol] = 'ArrayLiteralPType'\n\n get fullName() {\n return `${this.module}::[${this.items.map((i) => i).join(', ')}]`\n }\n\n get elementType() {\n return this.items.length ? UnionPType.fromTypes(this.items) : neverPType\n }\n\n readonly singleton = false\n readonly name: string\n readonly module = Constants.moduleNames.typescript.es5\n readonly items: PType[]\n constructor(props: { items: PType[] }) {\n super()\n this.name = `[${props.items.map((i) => i.name).join(', ')}]`\n\n this.items = props.items\n }\n\n get wtype() {\n return this.getReadonlyTupleType().wtype\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitArrayLiteralPType(this)\n }\n\n getArrayType(): ArrayPType {\n return new ArrayPType({\n elementType: this.elementType,\n })\n }\n\n getReadonlyTupleType(): ReadonlyTuplePType {\n return new ReadonlyTuplePType({\n items: this.items,\n })\n }\n getMutableTupleType(): MutableTuplePType {\n return new MutableTuplePType({\n items: this.items,\n })\n }\n}\n\nexport class MutableTuplePType extends PType {\n readonly [PType.IdSymbol] = 'MutableTuplePType'\n readonly module: string = 'lib.d.ts'\n\n get name() {\n return `[${this.items.map((i) => i.name).join(', ')}]`\n }\n get fullName() {\n return `${this.module}::[${this.items.map((i) => i.fullName).join(', ')}]`\n }\n\n readonly items: PType[]\n readonly singleton = false\n constructor(props: { items: PType[] }) {\n super()\n this.items = props.items\n }\n\n get wtype(): wtypes.ARC4Tuple {\n return new wtypes.ARC4Tuple({\n types: this.items.map((i) => i.wtypeOrThrow),\n immutable: false,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitMutableTuplePType(this)\n }\n}\nexport class ReadonlyTuplePType extends PType {\n readonly [PType.IdSymbol] = 'ReadonlyTuplePType'\n readonly module: string = 'lib.d.ts'\n\n get name() {\n return `readonly [${this.items.map((i) => i.name).join(', ')}]`\n }\n get fullName() {\n return `${this.module}::readonly [${this.items.map((i) => i.fullName).join(', ')}]`\n }\n\n readonly items: PType[]\n readonly singleton = false\n constructor(props: { items: PType[] }) {\n super()\n this.items = props.items\n }\n\n get wtype(): wtypes.WTuple {\n return new wtypes.WTuple({\n types: this.items.map((i) => i.wtypeOrThrow),\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitReadonlyTuplePType(this)\n }\n}\nexport const ArrayGeneric = new GenericPType({\n name: 'Array',\n module: Constants.moduleNames.typescript.es5,\n parameterise(typeArgs) {\n codeInvariant(typeArgs.length === 1, 'Array expects exactly 1 type argument')\n return new ArrayPType({ elementType: typeArgs[0] })\n },\n})\nexport class ArrayPType extends PType {\n readonly [PType.IdSymbol] = 'ArrayPType'\n readonly elementType: PType\n readonly immutable = false\n readonly singleton = false\n readonly name: string\n readonly module: string = Constants.moduleNames.typescript.es5\n get fullName() {\n return `${this.module}::Array<${this.elementType.fullName}>`\n }\n constructor(props: { elementType: PType }) {\n super()\n this.name = `Array<${props.elementType.name}>`\n this.elementType = props.elementType\n }\n\n get wtype() {\n return new wtypes.ARC4DynamicArray({\n elementType: this.elementType.wtypeOrThrow,\n immutable: this.immutable,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitArrayPType(this)\n }\n}\nexport const ReadonlyArrayGeneric = new GenericPType({\n name: 'ReadonlyArray',\n module: Constants.moduleNames.typescript.es5,\n parameterise(typeArgs) {\n codeInvariant(typeArgs.length === 1, 'ReadonlyArray expects exactly 1 type argument')\n return new ReadonlyArrayPType({ elementType: typeArgs[0] })\n },\n})\nexport class ReadonlyArrayPType extends PType {\n readonly [PType.IdSymbol] = 'ReadonlyArrayPType'\n readonly elementType: PType\n readonly singleton = false\n readonly immutable = true\n readonly name: string\n readonly module: string = Constants.moduleNames.typescript.es5\n get fullName() {\n return `${this.module}::ReadonlyArray<${this.elementType.fullName}>`\n }\n constructor(props: { elementType: PType }) {\n super()\n this.elementType = props.elementType\n this.name = `ReadonlyArray<${props.elementType.name}>`\n }\n\n get wtype() {\n return new wtypes.ARC4DynamicArray({\n elementType: this.elementType.wtypeOrThrow,\n immutable: this.immutable,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitReadonlyArrayPType(this)\n }\n}\n\nexport const FixedArrayGeneric = new GenericPType({\n name: 'FixedArray',\n module: Constants.moduleNames.algoTs.arrays,\n parameterise(typeArgs) {\n codeInvariant(typeArgs.length === 2, 'FixedArray type expects exactly one type parameters')\n const [elementType, arraySize] = typeArgs\n codeInvariant(\n arraySize instanceof NumericLiteralPType,\n `Array size generic type param for FixedArray must be a literal number. Inferred type is ${arraySize.name}`,\n )\n if (elementType instanceof TransientType) {\n throw new CodeError(elementType.typeMessage)\n }\n return new FixedArrayPType({ elementType, arraySize: arraySize.literalValue })\n },\n})\n\nexport class FixedArrayPType extends PType {\n readonly [PType.IdSymbol] = 'FixedArrayPType'\n readonly elementType: PType\n readonly immutable: boolean = false\n readonly singleton = false\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.arrays\n readonly arraySize: bigint\n get fullName() {\n return `${this.module}::FixedArray<${this.elementType.fullName}>`\n }\n constructor(props: { elementType: PType; arraySize: bigint }) {\n super()\n this.elementType = props.elementType\n this.name = `FixedArray<${props.elementType.name}, ${props.arraySize}>`\n this.arraySize = props.arraySize\n }\n get wtype() {\n return new wtypes.ARC4StaticArray({\n elementType: this.elementType.wtypeOrThrow,\n arraySize: this.arraySize,\n immutable: false,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitFixedArrayPType(this)\n }\n}\nexport const ReadonlyGeneric = new GenericPType({\n name: 'Readonly',\n module: Constants.moduleNames.typescript.es5,\n parameterise([obj, ...rest]) {\n codeInvariant(obj instanceof MutableObjectPType && !rest.length, 'Readonly expects exactly 1 generic type arg that is an object type')\n\n return obj.toImmutable()\n },\n})\n\nabstract class ObjectPType extends PType {\n readonly name: string\n readonly module: string = 'lib.d.ts'\n readonly alias: SymbolName | null\n readonly description: string | undefined\n readonly properties: Record<string, PType>\n readonly singleton = false\n readonly immutable: boolean\n\n constructor(props: {\n alias?: SymbolName | null\n properties: Record<string, PType>\n description?: string\n namePrefix: string\n immutable: boolean\n }) {\n super()\n this.name = `${props.namePrefix}${generateObjectHash(props.properties)}`\n this.properties = props.properties\n this.description = props.description\n this.alias = props.alias ?? null\n this.immutable = props.immutable\n }\n\n orderedProperties() {\n return Object.entries(this.properties)\n }\n\n toString(): string {\n return `{${this.orderedProperties()\n .map((p) => `${this.immutable ? 'readonly ' : ''}${p[0]}:${p[1].name}`)\n .join(',')}}`\n }\n\n hasSameStructure(other: ObjectPType): boolean {\n return zipStrict(this.orderedProperties(), other.orderedProperties()).every(\n ([[leftProp, leftType], [rightProp, rightType]]) => leftProp === rightProp && leftType.equals(rightType),\n )\n }\n}\n\nexport class ObjectLiteralPType extends ObjectPType {\n readonly [PType.IdSymbol] = 'ObjectLiteralPType'\n\n constructor(props: { properties: Record<string, PType> }) {\n super({\n ...props,\n namePrefix: `ObjectLiteral`,\n immutable: false,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitObjectLiteralPType(this)\n }\n\n getImmutable(): ImmutableObjectPType {\n return new ImmutableObjectPType({\n alias: this.alias,\n properties: this.properties,\n description: this.description,\n })\n }\n getMutable(): MutableObjectPType {\n return new MutableObjectPType({\n alias: this.alias,\n properties: this.properties,\n description: this.description,\n })\n }\n\n get wtype(): wtypes.WTuple {\n const tupleTypes: wtypes.WType[] = []\n const tupleNames: string[] = []\n for (const [propName, propType] of this.orderedProperties()) {\n if (propType instanceof TransientType) {\n throw new CodeError(`Property '${propName}' of ${this.name} has an unsupported type: ${propType.typeMessage}`)\n }\n tupleTypes.push(propType.wtypeOrThrow)\n tupleNames.push(propName)\n }\n return new wtypes.WTuple({\n name: this.alias?.fullName ?? this.toString(),\n names: tupleNames,\n types: tupleTypes,\n })\n }\n}\n\nexport class ImmutableObjectPType extends ObjectPType {\n readonly [PType.IdSymbol] = 'ImmutableObjectPType'\n\n constructor(props: { alias?: SymbolName | null; properties: Record<string, PType>; description?: string }) {\n super({\n ...props,\n namePrefix: `ReadonlyObject`,\n immutable: true,\n })\n }\n\n get wtype(): wtypes.WTuple {\n const tupleTypes: wtypes.WType[] = []\n const tupleNames: string[] = []\n for (const [propName, propType] of this.orderedProperties()) {\n if (propType instanceof TransientType) {\n throw new CodeError(`Property '${propName}' of ${this.name} has an unsupported type: ${propType.typeMessage}`)\n }\n tupleTypes.push(propType.wtypeOrThrow)\n tupleNames.push(propName)\n }\n return new wtypes.WTuple({\n name: this.alias?.fullName ?? this.name,\n names: tupleNames,\n types: tupleTypes,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitImmutableObjectPType(this)\n }\n}\n\nexport class MutableObjectPType extends ObjectPType {\n readonly [PType.IdSymbol] = 'MutableObjectPType'\n\n constructor(props: { alias?: SymbolName | null; properties: Record<string, PType>; description?: string }) {\n super({\n ...props,\n namePrefix: `Object`,\n immutable: false,\n })\n }\n\n get wtype(): wtypes.ARC4Struct {\n return new wtypes.ARC4Struct({\n name: this.alias?.fullName ?? this.name,\n fields: Object.fromEntries(Object.entries(this.properties).map(([f, t]) => [f, t.wtypeOrThrow])),\n desc: this.description ?? null,\n frozen: false,\n })\n }\n\n toImmutable(): ImmutableObjectPType {\n return new ImmutableObjectPType({\n alias: this.alias,\n properties: this.properties,\n description: this.description,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitMutableObjectPType(this)\n }\n}\n\nexport function isObjectType(ptype: PTypeOrClass): ptype is MutableObjectPType | ImmutableObjectPType | ObjectLiteralPType {\n return instanceOfAny(ptype, MutableObjectPType, ImmutableObjectPType, ObjectLiteralPType)\n}\n\nexport function isArrayType(ptype: PTypeOrClass): ptype is ArrayPType | ReadonlyArrayPType {\n return instanceOfAny(ptype, ArrayPType, ReadonlyArrayPType)\n}\n\nexport function isTupleLike(ptype: PTypeOrClass): ptype is MutableTuplePType | ReadonlyTuplePType | ArrayLiteralPType {\n return instanceOfAny(ptype, ReadonlyTuplePType, MutableTuplePType, ArrayLiteralPType)\n}\n\nexport const voidPType = new ABICompatibleInstanceType({\n name: 'void',\n module: 'lib.d.ts',\n wtype: wtypes.voidWType,\n abiTypeSignature: 'void',\n})\nexport const neverPType = new InstanceType({\n name: 'never',\n module: 'lib.d.ts',\n wtype: wtypes.voidWType,\n})\nexport const unknownPType = new UnsupportedType({\n name: 'unknown',\n module: 'lib.d.ts',\n fullName: 'unknown',\n})\n\nexport const esSymbol = new UnsupportedType({\n name: 'symbol',\n module: 'lib.d.ts',\n fullName: 'symbol',\n})\n\nexport const nullPType = new UnsupportedType({\n name: 'null',\n module: 'lib.d.ts',\n fullName: 'null',\n})\nexport const undefinedPType = new UnsupportedType({\n name: 'undefined',\n module: 'lib.d.ts',\n fullName: 'undefined',\n})\nexport const PromiseGeneric = new GenericPType({\n name: 'Promise',\n module: 'typescript/lib/lib.es5.d.ts',\n parameterise(ptypes: readonly PType[]) {\n codeInvariant(ptypes.length === 1, 'Promise expects exactly 1 generic parameter')\n return new PromiseType({ resolveType: ptypes[0] })\n },\n})\nexport class PromiseType extends UnsupportedType {\n readonly resolveType: PType\n constructor({ resolveType }: { resolveType: PType }) {\n super({\n name: 'Promise',\n module: 'typescript/lib/lib.es5.d.ts',\n })\n this.resolveType = resolveType\n }\n}\nexport const anyPType = new AnyPType()\n\nexport const boolPType = new InstanceType({\n name: 'boolean',\n module: 'lib.d.ts',\n wtype: wtypes.boolWType,\n})\n\nexport const BooleanFunction = new LibFunctionType({\n name: 'Boolean',\n module: 'typescript/lib/lib.es5.d.ts',\n})\n\nexport class BigIntPType extends TransientType {\n readonly [PType.IdSymbol] = 'BigIntPType'\n}\n\nexport class NumberPType extends TransientType {\n readonly [PType.IdSymbol] = 'NumberPType'\n}\n\nexport const bigIntPType = new BigIntPType({\n name: 'bigint',\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric('bigint').usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric('bigint').usedInExpression,\n})\n\nexport const stringPType = new InstanceType({\n name: 'string',\n module: 'lib.d.ts',\n wtype: wtypes.stringWType,\n})\nexport const StringFunction = new LibFunctionType({\n name: 'String',\n module: 'typescript/lib/lib.es5.d.ts',\n})\n\nexport const uint64PType = new InstanceType({\n name: 'uint64',\n module: Constants.moduleNames.algoTs.primitives,\n wtype: wtypes.uint64WType,\n})\nexport const biguintPType = new InstanceType({\n name: 'biguint',\n module: Constants.moduleNames.algoTs.primitives,\n wtype: wtypes.biguintWType,\n})\nexport class NumericLiteralPType extends TransientType {\n readonly [PType.IdSymbol] = 'NumericLiteralPType'\n readonly literalValue: bigint\n constructor({ literalValue }: { literalValue: bigint }) {\n super({\n name: `${literalValue}`,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric(literalValue.toString()).usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric(literalValue.toString()).usedInExpression,\n })\n this.literalValue = literalValue\n }\n\n static typeDescription = 'numeric literal'\n}\nexport class BigIntLiteralPType extends TransientType {\n readonly [PType.IdSymbol] = 'BigIntLiteralPType'\n readonly literalValue: bigint\n constructor({ literalValue }: { literalValue: bigint }) {\n super({\n name: `${literalValue}n`,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric(`${literalValue}n`).usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric(`${literalValue}n`).usedInExpression,\n })\n this.literalValue = literalValue\n }\n\n static typeDescription = 'bigint literal'\n}\nexport const numberPType = new NumberPType({\n name: 'number',\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric('number').usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric('number').usedInExpression,\n})\nexport const Uint64Function = new LibFunctionType({\n name: 'Uint64',\n module: Constants.moduleNames.algoTs.primitives,\n})\n\nexport const BigUintFunction = new LibFunctionType({\n name: 'BigUint',\n module: Constants.moduleNames.algoTs.primitives,\n})\nexport class BytesPType extends PType {\n readonly [PType.IdSymbol] = 'BytesPType'\n readonly wtype: wtypes.WType\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly length: bigint | null\n\n constructor({ length }: { length: bigint | null }) {\n super()\n this.length = length\n this.name = length === null ? 'bytes' : `bytes<${length}>`\n this.wtype = new wtypes.BytesWType({ length })\n this.module = Constants.moduleNames.algoTs.primitives\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitBytesPType(this)\n }\n}\nexport const BytesGeneric = new GenericPType({\n name: 'bytes',\n module: Constants.moduleNames.algoTs.primitives,\n parameterise(typeArgs: readonly PType[]): BytesPType {\n codeInvariant(typeArgs.length === 1, `${this.name} type expects exactly one type parameter`)\n const bytesSize = typeArgs[0]\n if (\n bytesSize.equals(uint64PType) ||\n // A union of numeric literals and uint64, this can happen only for intrinsic calls like `ecdsaPkDecompress(v: Ecdsa, a: bytes<33> | bytes)`\n // union types are not allowed in user code\n (bytesSize instanceof UnionPType && bytesSize.types.every((t) => t.equals(uint64PType) || t instanceof NumericLiteralPType))\n ) {\n return new BytesPType({\n length: null,\n })\n }\n codeInvariant(\n bytesSize instanceof NumericLiteralPType,\n `Bytes size generic type param for bytes type must be a literal number. Inferred type is ${bytesSize.name}`,\n )\n return new BytesPType({\n length: bytesSize.literalValue,\n })\n },\n})\nexport const bytesPType = new BytesPType({ length: null })\nexport const BytesFunction = new LibFunctionType({\n name: 'Bytes',\n module: Constants.moduleNames.algoTs.primitives,\n})\n\nexport const logFunction = new LibFunctionType({\n name: 'log',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const assertFunction = new LibFunctionType({\n name: 'assert',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const errFunction = new LibFunctionType({\n name: 'err',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const loggedAssertFunction = new LibFunctionType({\n name: 'loggedAssert',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const loggedErrFunction = new LibFunctionType({\n name: 'loggedErr',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const assetPType = new ABICompatibleInstanceType({\n name: 'Asset',\n wtype: wtypes.assetWType,\n module: Constants.moduleNames.algoTs.reference,\n abiTypeSignature: 'asset',\n})\nexport const AssetFunction = new LibFunctionType({\n name: 'Asset',\n module: Constants.moduleNames.algoTs.reference,\n})\nexport const accountPType = new ABICompatibleInstanceType({\n name: 'Account',\n wtype: wtypes.accountWType,\n module: Constants.moduleNames.algoTs.reference,\n abiTypeSignature: 'account',\n})\nexport const AccountFunction = new LibFunctionType({\n name: 'Account',\n module: Constants.moduleNames.algoTs.reference,\n})\nexport const applicationPType = new ABICompatibleInstanceType({\n name: 'Application',\n wtype: wtypes.applicationWType,\n module: Constants.moduleNames.algoTs.reference,\n abiTypeSignature: 'application',\n})\nexport const ApplicationFunctionType = new LibFunctionType({\n name: 'Application',\n module: Constants.moduleNames.algoTs.reference,\n})\n\nexport const ClearStateProgram = new FunctionPType({\n name: Constants.symbolNames.clearStateProgramMethodName,\n module: Constants.moduleNames.algoTs.baseContract,\n returnType: uint64PType,\n parameters: [],\n sourceLocation: undefined,\n})\n\nexport const ApprovalProgram = new FunctionPType({\n name: Constants.symbolNames.approvalProgramMethodName,\n module: Constants.moduleNames.algoTs.arc4.index,\n returnType: boolPType,\n parameters: [],\n sourceLocation: undefined,\n})\n\nexport const baseContractType = new BaseContractClassType({\n module: Constants.moduleNames.algoTs.baseContract,\n name: 'BaseContract',\n methods: {\n clearStateProgram: ClearStateProgram,\n },\n properties: {},\n baseTypes: [],\n isArc4: false,\n sourceLocation: SourceLocation.None,\n})\nexport const arc4BaseContractType = new BaseContractClassType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'Contract',\n methods: {\n approvalProgram: ApprovalProgram,\n clearStateProgram: ClearStateProgram,\n },\n properties: {},\n baseTypes: [baseContractType],\n isArc4: true,\n sourceLocation: SourceLocation.None,\n})\nexport const itoaMethod = new LibFunctionType({\n module: 'puya-ts',\n name: 'itoa',\n})\nexport const arc4BareMethodDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'baremethod',\n})\nexport const arc4AbiMethodDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'abimethod',\n})\nexport const readonlyDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'readonly',\n})\n\nexport const contractOptionsDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.baseContract,\n name: 'contract',\n})\n\nexport const logicSigOptionsDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.logicSig,\n name: 'logicsig',\n})\n\nexport class GroupTransactionPType extends PType implements ABICompatiblePType {\n readonly [PType.IdSymbol] = 'GroupTransactionPType'\n get wtype() {\n return new wtypes.WGroupTransaction({\n transactionType: this.kind,\n })\n }\n readonly name: string\n readonly kind: TransactionKind | undefined\n readonly module = Constants.moduleNames.algoTs.gtxn\n readonly singleton = false\n readonly abiTypeSignature: string\n\n constructor({ kind, name }: { kind?: TransactionKind; name: string }) {\n super()\n this.name = name\n this.kind = kind\n this.abiTypeSignature = kind !== undefined ? TransactionKind[kind] : 'txn'\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitGroupTransactionPType(this)\n }\n}\n\nexport class TransactionFunctionType extends LibFunctionType {\n readonly kind: TransactionKind | undefined\n\n constructor({ name, module, kind }: { name: string; module: string; kind: TransactionKind | undefined }) {\n super({ name, module })\n this.kind = kind\n }\n}\n\nexport const paymentGtxnType = new GroupTransactionPType({\n name: 'PaymentTxn',\n kind: TransactionKind.pay,\n})\nexport const PaymentTxnFunction = new TransactionFunctionType({\n name: 'PaymentTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.pay,\n})\nexport const keyRegistrationGtxnType = new GroupTransactionPType({\n name: 'KeyRegistrationTxn',\n kind: TransactionKind.keyreg,\n})\nexport const KeyRegistrationTxnFunction = new TransactionFunctionType({\n name: 'KeyRegistrationTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.keyreg,\n})\nexport const assetConfigGtxnType = new GroupTransactionPType({\n name: 'AssetConfigTxn',\n kind: TransactionKind.acfg,\n})\nexport const AssetConfigTxnFunction = new TransactionFunctionType({\n name: 'AssetConfigTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.acfg,\n})\nexport const assetTransferGtxnType = new GroupTransactionPType({\n name: 'AssetTransferTxn',\n kind: TransactionKind.axfer,\n})\nexport const AssetTransferTxnFunction = new TransactionFunctionType({\n name: 'AssetTransferTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.axfer,\n})\nexport const assetFreezeGtxnType = new GroupTransactionPType({\n name: 'AssetFreezeTxn',\n kind: TransactionKind.afrz,\n})\nexport const AssetFreezeTxnFunction = new TransactionFunctionType({\n name: 'AssetFreezeTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.afrz,\n})\nexport const applicationCallGtxnType = new GroupTransactionPType({\n name: 'ApplicationCallTxn',\n kind: TransactionKind.appl,\n})\nexport const ApplicationTxnFunction = new TransactionFunctionType({\n name: 'ApplicationCallTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.appl,\n})\n\nexport const anyGtxnType = new GroupTransactionPType({\n name: 'Transaction',\n kind: undefined,\n})\nexport const TransactionFunction = new TransactionFunctionType({\n name: 'Transaction',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: undefined,\n})\n\nexport const assertMatchFunction = new LibFunctionType({\n name: 'assertMatch',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const matchFunction = new LibFunctionType({\n name: 'match',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport class Uint64EnumMemberType extends PType {\n readonly [PType.IdSymbol] = 'Uint64EnumMemberType'\n readonly wtype = wtypes.uint64WType\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly enumType: Uint64EnumType\n\n constructor(enumType: Uint64EnumType) {\n super()\n this.name = enumType.name\n this.module = enumType.module\n this.enumType = enumType\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitUint64EnumMemberType(this)\n }\n}\n\nexport class Uint64EnumMemberLiteralType extends Uint64EnumMemberType {\n readonly wtype = wtypes.uint64WType\n readonly member: string\n readonly value: bigint\n\n constructor(enumType: Uint64EnumType, member: string | bigint) {\n super(enumType)\n if (typeof member === 'bigint') {\n ;[this.member, this.value] =\n Object.entries(enumType.members).find(([n, v]) => v === member) ??\n throwError(new InternalError(`${member} is not a valid member for ${enumType.name}`))\n } else {\n invariant(member in enumType.members, `${member} is not a valid member for ${enumType.name}`)\n this.member = member\n this.value = enumType.members[member]\n }\n }\n}\n\nexport class Uint64EnumType extends PType {\n readonly [PType.IdSymbol] = 'Uint64EnumType'\n readonly memberType: Uint64EnumMemberType\n readonly wtype = wtypes.uint64WType\n readonly name: string\n readonly module: string\n readonly singleton = true\n readonly members: Record<string, bigint>\n\n constructor(props: { name: string; module: string; members: Record<string, bigint> }) {\n super()\n this.name = props.name\n this.module = props.module\n this.members = props.members\n this.memberType = new Uint64EnumMemberType(this)\n }\n\n getMemberLiteral(member: string | bigint) {\n return new Uint64EnumMemberLiteralType(this, member)\n }\n\n hasMember(member: string | bigint) {\n return Object.entries(this.members).some((m) => m[0] === member || m[1] === member)\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitUint64EnumType(this)\n }\n}\n\nexport const transactionTypeType = new Uint64EnumType({\n module: Constants.moduleNames.algoTs.transactions,\n name: 'TransactionType',\n members: {\n Payment: 1n,\n KeyRegistration: 2n,\n AssetConfig: 3n,\n AssetTransfer: 4n,\n AssetFreeze: 5n,\n ApplicationCall: 6n,\n },\n})\nexport const onCompleteActionType = new Uint64EnumType({\n module: Constants.moduleNames.algoTs.onCompleteAction,\n name: 'OnCompleteAction',\n members: {\n NoOp: 0n,\n OptIn: 1n,\n CloseOut: 2n,\n ClearState: 3n,\n UpdateApplication: 4n,\n DeleteApplication: 5n,\n },\n})\nexport const ensureBudgetFunction = new LibFunctionType({\n name: 'ensureBudget',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const opUpFeeSourceType = new Uint64EnumType({\n module: Constants.moduleNames.algoTs.util,\n name: 'OpUpFeeSource',\n members: {\n GroupCredit: 0n,\n AppAccount: 1n,\n Any: 2n,\n },\n})\n\nexport const urangeFunction = new LibFunctionType({\n name: 'urange',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const IterableIteratorGeneric = new GenericPType({\n name: 'IterableIterator',\n module: 'typescript/lib/lib.es2015.iterable.d.ts',\n parameterise(typeArgs: readonly PType[]): IterableIteratorType {\n codeInvariant(typeArgs.length >= 1 && typeArgs.length <= 3, 'IterableIterator type expects 1-3 type parameters')\n // Currently ignoring return and next types\n const [yieldType, _returnType, _nextType] = typeArgs\n return new IterableIteratorType({\n itemType: yieldType,\n })\n },\n})\nexport class IterableIteratorType extends TransientType {\n readonly [PType.IdSymbol] = 'IterableIteratorType'\n readonly itemType: PType\n constructor({ itemType }: { itemType: PType }) {\n super({\n name: `IterableIterator<${itemType.name}>`,\n module: 'typescript/lib/lib.es2015.iterable.d.ts',\n typeMessage: '`IterableIterator` is not valid as a variable, parameter, return, or property type. ',\n expressionMessage: 'IterableIterator expressions can only be used in for loops',\n singleton: false,\n })\n this.itemType = itemType\n }\n\n get wtype(): wtypes.WEnumeration {\n return new wtypes.WEnumeration({ sequenceType: this.itemType.wtypeOrThrow })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIterableIterator(this)\n }\n}\n\nexport const GeneratorGeneric = new GenericPType({\n name: 'Generator',\n module: 'typescript/lib/lib.es2015.generator.d.ts',\n parameterise(ptypes) {\n codeInvariant(ptypes.length === 3, 'Generator type expects exactly 3 type params')\n\n const [itemType, returnType, nextType] = ptypes\n return new GeneratorType({\n itemType,\n nextType,\n returnType,\n })\n },\n})\n\nexport class GeneratorType extends UnsupportedType {\n readonly itemType: PType\n readonly returnType: PType\n readonly nextType: PType\n constructor({ itemType, returnType, nextType }: { itemType: PType; returnType: PType; nextType: PType }) {\n super({\n name: 'Generator',\n module: 'typescript/lib/lib.es2015.generator.d.ts',\n })\n this.itemType = itemType\n this.returnType = returnType\n this.nextType = nextType\n }\n}\n\nexport const paymentItxnFn = new TransactionFunctionType({\n name: 'payment',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.pay,\n})\nexport const keyRegistrationItxnFn = new TransactionFunctionType({\n name: 'keyRegistration',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.keyreg,\n})\nexport const assetConfigItxnFn = new TransactionFunctionType({\n name: 'assetConfig',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.acfg,\n})\nexport const assetTransferItxnFn = new TransactionFunctionType({\n name: 'assetTransfer',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.axfer,\n})\nexport const assetFreezeItxnFn = new TransactionFunctionType({\n name: 'assetFreeze',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.afrz,\n})\nexport const applicationCallItxnFn = new TransactionFunctionType({\n name: 'applicationCall',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.appl,\n})\n\nexport class InnerTransactionPType extends PType {\n readonly [PType.IdSymbol] = 'InnerTransactionPType'\n get wtype() {\n return new wtypes.WInnerTransaction({\n transactionType: this.kind,\n })\n }\n readonly name: string\n readonly kind: TransactionKind | undefined\n readonly module = Constants.moduleNames.algoTs.itxn\n readonly singleton = false\n\n constructor({ kind, name }: { kind?: TransactionKind; name: string }) {\n super()\n this.name = name\n this.kind = kind\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitInnerTransactionPType(this)\n }\n}\nexport class ItxnParamsPType extends PType {\n readonly [PType.IdSymbol] = 'ItxnParamsPType'\n get wtype() {\n return new wtypes.WInnerTransactionFields({\n transactionType: this.kind,\n })\n }\n readonly name: string\n readonly kind: TransactionKind | undefined\n readonly module = Constants.moduleNames.algoTs.itxn\n readonly singleton = false\n\n constructor({ kind, name }: { kind?: TransactionKind; name: string }) {\n super()\n this.name = name\n this.kind = kind\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitItxnParamsPType(this)\n }\n}\nexport const paymentItxnParamsType = new ItxnParamsPType({\n name: 'PaymentItxnParams',\n kind: TransactionKind.pay,\n})\nexport const paymentItxnType = new InnerTransactionPType({\n name: 'PaymentInnerTxn',\n kind: TransactionKind.pay,\n})\nexport const keyRegistrationItxnParamsType = new ItxnParamsPType({\n name: 'KeyRegistrationItxnParams',\n kind: TransactionKind.keyreg,\n})\nexport const keyRegistrationItxnType = new InnerTransactionPType({\n name: 'KeyRegistrationInnerTxn',\n kind: TransactionKind.keyreg,\n})\nexport const assetConfigItxnParamsType = new ItxnParamsPType({\n name: 'AssetConfigItxnParams',\n kind: TransactionKind.acfg,\n})\nexport const assetConfigItxnType = new InnerTransactionPType({\n name: 'AssetConfigInnerTxn',\n kind: TransactionKind.acfg,\n})\nexport const assetTransferItxnParamsType = new ItxnParamsPType({\n name: 'AssetTransferItxnParams',\n kind: TransactionKind.axfer,\n})\nexport const assetTransferItxnType = new InnerTransactionPType({\n name: 'AssetTransferInnerTxn',\n kind: TransactionKind.axfer,\n})\nexport const assetFreezeItxnParamsType = new ItxnParamsPType({\n name: 'AssetFreezeItxnParams',\n kind: TransactionKind.afrz,\n})\nexport const assetFreezeItxnType = new InnerTransactionPType({\n name: 'AssetFreezeInnerTxn',\n kind: TransactionKind.afrz,\n})\nexport const applicationCallItxnParamsType = new ItxnParamsPType({\n name: 'ApplicationCallItxnParams',\n kind: TransactionKind.appl,\n})\nexport const applicationItxnType = new InnerTransactionPType({\n name: 'ApplicationCallInnerTxn',\n kind: TransactionKind.appl,\n})\nexport const anyItxnParamsType = new ItxnParamsPType({\n name: 'AnyItxnParams',\n})\n\nexport const anyItxnType = new InnerTransactionPType({\n name: 'InnerTxn',\n})\n\nexport const inputOnlyObjects = ['Payment', 'KeyRegistration', 'AssetConfig', 'AssetTransfer', 'AssetFreeze', 'ApplicationCall'].flatMap(\n (txnKind) => [\n new ObjectWithOptionalFieldsType({\n name: `${txnKind}Fields`,\n module: Constants.moduleNames.algoTs.itxn,\n }),\n new ObjectWithOptionalFieldsType({\n name: `${txnKind}ComposeFields`,\n module: Constants.moduleNames.algoTs.itxnCompose,\n }),\n ],\n)\n\nexport const submitGroupItxnFunction = new LibFunctionType({\n name: 'submitGroup',\n module: Constants.moduleNames.algoTs.itxn,\n})\n\nexport const TemplateVarFunction = new LibFunctionType({\n name: 'TemplateVar',\n module: Constants.moduleNames.algoTs.templateVar,\n})\n\nexport const compileFunctionType = new LibFunctionType({\n name: 'compile',\n module: Constants.moduleNames.algoTs.compiled,\n})\n\nexport const compiledContractType = new ImmutableObjectPType({\n alias: new SymbolName({\n name: 'CompiledContract',\n module: Constants.moduleNames.algoTs.compiled,\n }),\n description: 'Provides compiled programs and state allocation values for a Contract. Created by calling `compile(ExampleContractType)`',\n properties: {\n approvalProgram: new ReadonlyTuplePType({ items: [bytesPType, bytesPType] }),\n clearStateProgram: new ReadonlyTuplePType({ items: [bytesPType, bytesPType] }),\n extraProgramPages: uint64PType,\n globalUints: uint64PType,\n globalBytes: uint64PType,\n localUints: uint64PType,\n localBytes: uint64PType,\n },\n})\nexport const compiledLogicSigType = new ImmutableObjectPType({\n alias: new SymbolName({\n name: 'CompiledLogicSig',\n module: Constants.moduleNames.algoTs.compiled,\n }),\n description: 'Provides account for a Logic Signature. Created by calling `compile(LogicSigType)``',\n properties: {\n account: accountPType,\n },\n})\n\nexport const arc28EmitFunction = new LibFunctionType({\n name: 'emit',\n module: Constants.moduleNames.algoTs.arc28,\n})\n\nexport const SuperPrototypeSelectorGeneric = new GenericPType({\n name: 'SuperPrototypeSelector',\n module: Constants.moduleNames.polytype,\n parameterise(ptypes: readonly PType[]) {\n return new SuperPrototypeSelector({ bases: ptypes })\n },\n})\nexport class SuperPrototypeSelector extends PType {\n readonly [PType.IdSymbol] = 'SuperPrototypeSelector'\n readonly bases: readonly PType[]\n readonly name = 'SuperPrototypeSelector'\n readonly singleton = false\n readonly wtype = undefined\n readonly module = Constants.moduleNames.polytype\n constructor({ bases }: { bases: readonly PType[] }) {\n super()\n this.bases = bases\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitSuperPrototypeSelector(this)\n }\n}\nexport const ClusteredPrototype = new InternalType({\n name: 'ClusteredPrototype',\n module: Constants.moduleNames.polytype,\n})\nexport const PolytypeClassMethodHelper = new LibFunctionType({\n name: 'class',\n module: Constants.moduleNames.polytype,\n})\nexport const ReferenceArrayGeneric = new GenericPType({\n name: 'ReferenceArray',\n module: Constants.moduleNames.algoTs.referenceArray,\n parameterise: (typeArgs: readonly PType[]): ReferenceArrayType => {\n codeInvariant(typeArgs.length === 1, 'ReferenceArray type expects exactly one type parameter')\n const [elementType] = typeArgs\n\n return new ReferenceArrayType({ elementType: elementType })\n },\n})\nexport class ReferenceArrayType extends PType {\n readonly [PType.IdSymbol] = 'ReferenceArrayType'\n readonly module = Constants.moduleNames.algoTs.referenceArray\n readonly name: string\n readonly singleton = false\n readonly sourceLocation: SourceLocation | undefined\n readonly elementType: PType\n\n constructor({\n elementType,\n sourceLocation,\n name,\n }: {\n elementType: PType\n sourceLocation?: SourceLocation\n name?: string\n immutable?: boolean\n }) {\n super()\n this.name = name ?? `ReferenceArray<${elementType}>`\n this.sourceLocation = sourceLocation\n this.elementType = elementType\n }\n\n get wtype() {\n return new wtypes.ReferenceArray({\n itemType: this.elementType.wtypeOrThrow,\n sourceLocation: this.sourceLocation,\n immutable: false,\n })\n }\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitReferenceArrayType(this)\n }\n}\n\nexport const itxnComposePType = new LibObjType({\n module: Constants.moduleNames.algoTs.itxnCompose,\n name: 'itxnCompose',\n})\n\nexport const cloneFunctionPType = new LibFunctionType({\n name: 'clone',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const validateEncodingFunctionPType = new LibFunctionType({\n name: 'validateEncoding',\n module: Constants.moduleNames.algoTs.util,\n})\n","import { TransactionKind } from '../../../awst/models'\nimport type { GroupTransactionPType, InnerTransactionPType, ItxnParamsPType } from '../../ptypes'\nimport {\n anyGtxnType,\n applicationCallGtxnType,\n applicationCallItxnParamsType,\n applicationItxnType,\n assetConfigGtxnType,\n assetConfigItxnParamsType,\n assetConfigItxnType,\n assetFreezeGtxnType,\n assetFreezeItxnParamsType,\n assetFreezeItxnType,\n assetTransferGtxnType,\n assetTransferItxnParamsType,\n assetTransferItxnType,\n keyRegistrationGtxnType,\n keyRegistrationItxnParamsType,\n keyRegistrationItxnType,\n paymentGtxnType,\n paymentItxnParamsType,\n paymentItxnType,\n} from '../../ptypes'\n\nexport function getInnerTransactionType(kind: TransactionKind): InnerTransactionPType {\n switch (kind) {\n case TransactionKind.pay:\n return paymentItxnType\n case TransactionKind.keyreg:\n return keyRegistrationItxnType\n case TransactionKind.acfg:\n return assetConfigItxnType\n case TransactionKind.axfer:\n return assetTransferItxnType\n case TransactionKind.afrz:\n return assetFreezeItxnType\n case TransactionKind.appl:\n return applicationItxnType\n }\n}\nexport function getItxnParamsType(kind: TransactionKind): ItxnParamsPType {\n switch (kind) {\n case TransactionKind.pay:\n return paymentItxnParamsType\n case TransactionKind.keyreg:\n return keyRegistrationItxnParamsType\n case TransactionKind.acfg:\n return assetConfigItxnParamsType\n case TransactionKind.axfer:\n return assetTransferItxnParamsType\n case TransactionKind.afrz:\n return assetFreezeItxnParamsType\n case TransactionKind.appl:\n return applicationCallItxnParamsType\n }\n}\nexport function getGroupTransactionType(kind: TransactionKind | undefined): GroupTransactionPType {\n switch (kind) {\n case TransactionKind.pay:\n return paymentGtxnType\n case TransactionKind.keyreg:\n return keyRegistrationGtxnType\n case TransactionKind.acfg:\n return assetConfigGtxnType\n case TransactionKind.axfer:\n return assetTransferGtxnType\n case TransactionKind.afrz:\n return assetFreezeGtxnType\n case TransactionKind.appl:\n return applicationCallGtxnType\n default:\n return anyGtxnType\n }\n}\n","/* AUTOGENERATED FILE - DO NOT EDIT (see puya/scripts/generate_ts_nodes.py) */\nimport { classes } from 'polytype'\nimport type { Props } from '../typescript-helpers'\nimport type { ContractReference, LogicSigReference, OnCompletionAction } from './models'\nimport type { SourceLocation } from './source-location'\nimport type { TxnField } from './txn-fields'\nimport type { wtypes } from './wtypes'\nexport abstract class Node {\n constructor(props: Props<Node>) {\n this.sourceLocation = props.sourceLocation\n }\n readonly sourceLocation: SourceLocation\n}\nexport abstract class Statement extends Node {\n constructor(props: Props<Statement>) {\n super(props)\n }\n abstract accept<T>(visitor: StatementVisitor<T>): T\n}\nexport abstract class Expression extends Node {\n constructor(props: Props<Expression>) {\n super(props)\n this.wtype = props.wtype\n }\n readonly wtype: wtypes.WType\n abstract accept<T>(visitor: ExpressionVisitor<T>): T\n}\nexport class ExpressionStatement extends Statement {\n constructor(props: Props<ExpressionStatement>) {\n super(props)\n this.expr = props.expr\n this.sourceLocation = props.sourceLocation\n }\n readonly expr: Expression\n readonly sourceLocation: SourceLocation\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitExpressionStatement(this)\n }\n}\nexport class Block extends Statement {\n constructor(props: Props<Block>) {\n super(props)\n this.body = props.body\n this.label = props.label\n this.comment = props.comment\n }\n readonly body: Array<Statement>\n readonly label: string | null\n readonly comment: string | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitBlock(this)\n }\n}\nexport class Goto extends Statement {\n constructor(props: Props<Goto>) {\n super(props)\n this.target = props.target\n }\n readonly target: string\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitGoto(this)\n }\n}\nexport class IfElse extends Statement {\n constructor(props: Props<IfElse>) {\n super(props)\n this.condition = props.condition\n this.ifBranch = props.ifBranch\n this.elseBranch = props.elseBranch\n }\n readonly condition: Expression\n readonly ifBranch: Block\n readonly elseBranch: Block | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitIfElse(this)\n }\n}\nexport class Switch extends Statement {\n constructor(props: Props<Switch>) {\n super(props)\n this.value = props.value\n this.cases = props.cases\n this.defaultCase = props.defaultCase\n }\n readonly value: Expression\n readonly cases: Map<Expression, Block>\n readonly defaultCase: Block | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitSwitch(this)\n }\n}\nexport class WhileLoop extends Statement {\n constructor(props: Props<WhileLoop>) {\n super(props)\n this.condition = props.condition\n this.loopBody = props.loopBody\n }\n readonly condition: Expression\n readonly loopBody: Block\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitWhileLoop(this)\n }\n}\nexport class LoopExit extends Statement {\n constructor(props: Props<LoopExit>) {\n super(props)\n }\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitLoopExit(this)\n }\n}\nexport class LoopContinue extends Statement {\n constructor(props: Props<LoopContinue>) {\n super(props)\n }\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitLoopContinue(this)\n }\n}\nexport class ReturnStatement extends Statement {\n constructor(props: Props<ReturnStatement>) {\n super(props)\n this.value = props.value\n }\n readonly value: Expression | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitReturnStatement(this)\n }\n}\nexport class AssertExpression extends Expression {\n constructor(props: Props<AssertExpression>) {\n super(props)\n this.condition = props.condition\n this.errorMessage = props.errorMessage\n this.wtype = props.wtype\n this.explicit = props.explicit\n this.logError = props.logError\n }\n readonly condition: Expression | null\n readonly errorMessage: string | null\n readonly wtype: wtypes.WType\n readonly explicit: boolean\n readonly logError: boolean\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAssertExpression(this)\n }\n}\nexport class IntegerConstant extends Expression {\n constructor(props: Props<IntegerConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n this.tealAlias = props.tealAlias\n }\n readonly wtype: wtypes.WType\n readonly value: bigint\n readonly tealAlias: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIntegerConstant(this)\n }\n}\nexport class DecimalConstant extends Expression {\n constructor(props: Props<DecimalConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n }\n readonly wtype: wtypes.ARC4UFixedNxM\n readonly value: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitDecimalConstant(this)\n }\n}\nexport class BoolConstant extends Expression {\n constructor(props: Props<BoolConstant>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: boolean\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBoolConstant(this)\n }\n}\nexport enum BytesEncoding {\n unknown = 'unknown',\n base16 = 'base16',\n base32 = 'base32',\n base64 = 'base64',\n utf8 = 'utf8',\n}\nexport class BytesConstant extends Expression {\n constructor(props: Props<BytesConstant>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n this.encoding = props.encoding\n }\n readonly value: Uint8Array\n readonly wtype: wtypes.WType\n readonly encoding: BytesEncoding\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesConstant(this)\n }\n}\nexport class StringConstant extends Expression {\n constructor(props: Props<StringConstant>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: string\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStringConstant(this)\n }\n}\nexport class VoidConstant extends Expression {\n constructor(props: Props<VoidConstant>) {\n super(props)\n this.wtype = props.wtype\n }\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitVoidConstant(this)\n }\n}\nexport class TemplateVar extends Expression {\n constructor(props: Props<TemplateVar>) {\n super(props)\n this.wtype = props.wtype\n this.name = props.name\n }\n readonly wtype: wtypes.WType\n readonly name: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitTemplateVar(this)\n }\n}\nexport class MethodSignatureString extends Node {\n constructor(props: Props<MethodSignatureString>) {\n super(props)\n this.value = props.value\n }\n readonly value: string\n}\nexport class MethodSignature extends Node {\n constructor(props: Props<MethodSignature>) {\n super(props)\n this.name = props.name\n this.argTypes = props.argTypes\n this.returnType = props.returnType\n this.resourceEncoding = props.resourceEncoding\n }\n readonly name: string\n readonly argTypes: Array<wtypes.WType>\n readonly returnType: wtypes.WType\n readonly resourceEncoding: 'index' | 'value'\n}\nexport class MethodConstant extends Expression {\n constructor(props: Props<MethodConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n }\n readonly wtype: wtypes.WType\n readonly value: MethodSignature | MethodSignatureString\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitMethodConstant(this)\n }\n}\nexport class AddressConstant extends Expression {\n constructor(props: Props<AddressConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n }\n readonly wtype: wtypes.WType\n readonly value: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAddressConstant(this)\n }\n}\nexport class ARC4Encode extends Expression {\n constructor(props: Props<ARC4Encode>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n this.errorMessage = props.errorMessage\n }\n readonly value: Expression\n readonly wtype: wtypes.ARC4Type | wtypes.BytesWType\n readonly errorMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4Encode(this)\n }\n}\nexport class ARC4Decode extends Expression {\n constructor(props: Props<ARC4Decode>) {\n super(props)\n this.value = props.value\n this.errorMessage = props.errorMessage\n }\n readonly value: Expression\n readonly errorMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4Decode(this)\n }\n}\nexport class ARC4FromBytes extends Expression {\n constructor(props: Props<ARC4FromBytes>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n this.validate = props.validate\n }\n readonly value: Expression\n readonly wtype: wtypes.WType\n readonly validate: boolean\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4FromBytes(this)\n }\n}\nexport class ConvertArray extends Expression {\n constructor(props: Props<ConvertArray>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.ARC4DynamicArray | wtypes.ARC4StaticArray | wtypes.ReferenceArray\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitConvertArray(this)\n }\n}\nexport class Copy extends Expression {\n constructor(props: Props<Copy>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCopy(this)\n }\n}\nexport class ArrayConcat extends Expression {\n constructor(props: Props<ArrayConcat>) {\n super(props)\n this.left = props.left\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly right: Expression\n readonly wtype: wtypes.ARC4DynamicArray\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayConcat(this)\n }\n}\nexport class ArrayExtend extends Expression {\n constructor(props: Props<ArrayExtend>) {\n super(props)\n this.base = props.base\n this.other = props.other\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly other: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayExtend(this)\n }\n}\nexport class ArrayPop extends Expression {\n constructor(props: Props<ArrayPop>) {\n super(props)\n this.base = props.base\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayPop(this)\n }\n}\nexport class ArrayReplace extends Expression {\n constructor(props: Props<ArrayReplace>) {\n super(props)\n this.base = props.base\n this.index = props.index\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly index: Expression\n readonly value: Expression\n readonly wtype: wtypes.ARC4Array\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayReplace(this)\n }\n}\nexport class SizeOf extends Expression {\n constructor(props: Props<SizeOf>) {\n super(props)\n this.sizeWtype = props.sizeWtype\n this.wtype = props.wtype\n }\n readonly sizeWtype: wtypes.WType\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSizeOf(this)\n }\n}\nexport class IntrinsicCall extends Expression {\n constructor(props: Props<IntrinsicCall>) {\n super(props)\n this.opCode = props.opCode\n this.immediates = props.immediates\n this.stackArgs = props.stackArgs\n }\n readonly opCode: string\n readonly immediates: Array<string | bigint>\n readonly stackArgs: Array<Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIntrinsicCall(this)\n }\n}\nexport class CreateInnerTransaction extends Expression {\n constructor(props: Props<CreateInnerTransaction>) {\n super(props)\n this.wtype = props.wtype\n this.fields = props.fields\n }\n readonly wtype: wtypes.WInnerTransactionFields\n readonly fields: Map<TxnField, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCreateInnerTransaction(this)\n }\n}\nexport class UpdateInnerTransaction extends Expression {\n constructor(props: Props<UpdateInnerTransaction>) {\n super(props)\n this.itxn = props.itxn\n this.fields = props.fields\n this.wtype = props.wtype\n }\n readonly itxn: Expression\n readonly fields: Map<TxnField, Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUpdateInnerTransaction(this)\n }\n}\nexport class StageInnerTransactions extends Expression {\n constructor(props: Props<StageInnerTransactions>) {\n super(props)\n this.itxns = props.itxns\n this.startNewGroup = props.startNewGroup\n this.wtype = props.wtype\n }\n readonly itxns: Array<Expression>\n readonly startNewGroup: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStageInnerTransactions(this)\n }\n}\nexport class GroupTransactionReference extends Expression {\n constructor(props: Props<GroupTransactionReference>) {\n super(props)\n this.index = props.index\n this.wtype = props.wtype\n }\n readonly index: Expression\n readonly wtype: wtypes.WGroupTransaction\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitGroupTransactionReference(this)\n }\n}\nexport class CheckedMaybe extends Expression {\n constructor(props: Props<CheckedMaybe>) {\n super(props)\n this.expr = props.expr\n this.comment = props.comment\n this.wtype = props.wtype\n this.sourceLocation = props.sourceLocation\n }\n readonly expr: Expression\n readonly comment: string\n readonly wtype: wtypes.WType\n readonly sourceLocation: SourceLocation\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCheckedMaybe(this)\n }\n}\nexport class TupleExpression extends Expression {\n constructor(props: Props<TupleExpression>) {\n super(props)\n this.items = props.items\n this.wtype = props.wtype\n }\n readonly items: Array<Expression>\n readonly wtype: wtypes.WTuple\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitTupleExpression(this)\n }\n}\nexport class TupleItemExpression extends Expression {\n constructor(props: Props<TupleItemExpression>) {\n super(props)\n this.base = props.base\n this.index = props.index\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly index: bigint\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitTupleItemExpression(this)\n }\n}\nexport class NamedTupleExpression extends Expression {\n constructor(props: Props<NamedTupleExpression>) {\n super(props)\n this.wtype = props.wtype\n this.values = props.values\n }\n readonly wtype: wtypes.WTuple\n readonly values: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNamedTupleExpression(this)\n }\n}\nexport class VarExpression extends Expression {\n constructor(props: Props<VarExpression>) {\n super(props)\n this.name = props.name\n }\n readonly name: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitVarExpression(this)\n }\n}\nexport class InnerTransactionField extends Expression {\n constructor(props: Props<InnerTransactionField>) {\n super(props)\n this.itxn = props.itxn\n this.field = props.field\n this.arrayIndex = props.arrayIndex\n }\n readonly itxn: Expression\n readonly field: TxnField\n readonly arrayIndex: Expression | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitInnerTransactionField(this)\n }\n}\nexport class SetInnerTransactionFields extends Expression {\n constructor(props: Props<SetInnerTransactionFields>) {\n super(props)\n this.itxns = props.itxns\n this.startWithBegin = props.startWithBegin\n this.wtype = props.wtype\n }\n readonly itxns: Array<Expression>\n readonly startWithBegin: boolean\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSetInnerTransactionFields(this)\n }\n}\nexport class SubmitInnerTransaction extends Expression {\n constructor(props: Props<SubmitInnerTransaction>) {\n super(props)\n this.itxns = props.itxns\n this.wtype = props.wtype\n }\n readonly itxns: Array<Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSubmitInnerTransaction(this)\n }\n}\nexport class FieldExpression extends Expression {\n constructor(props: Props<FieldExpression>) {\n super(props)\n this.base = props.base\n this.name = props.name\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly name: string\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitFieldExpression(this)\n }\n}\nexport class IndexExpression extends Expression {\n constructor(props: Props<IndexExpression>) {\n super(props)\n this.base = props.base\n this.index = props.index\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly index: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIndexExpression(this)\n }\n}\nexport class SliceExpression extends Expression {\n constructor(props: Props<SliceExpression>) {\n super(props)\n this.base = props.base\n this.beginIndex = props.beginIndex\n this.endIndex = props.endIndex\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly beginIndex: Expression | null\n readonly endIndex: Expression | null\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSliceExpression(this)\n }\n}\nexport class IntersectionSliceExpression extends Expression {\n constructor(props: Props<IntersectionSliceExpression>) {\n super(props)\n this.base = props.base\n this.beginIndex = props.beginIndex\n this.endIndex = props.endIndex\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly beginIndex: Expression | bigint | null\n readonly endIndex: Expression | bigint | null\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIntersectionSliceExpression(this)\n }\n}\nexport enum AppStorageKind {\n appGlobal = 1,\n accountLocal = 2,\n box = 3,\n}\nexport class AppStateExpression extends Expression {\n constructor(props: Props<AppStateExpression>) {\n super(props)\n this.key = props.key\n this.existsAssertionMessage = props.existsAssertionMessage\n }\n readonly key: Expression\n readonly existsAssertionMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAppStateExpression(this)\n }\n}\nexport class AppAccountStateExpression extends Expression {\n constructor(props: Props<AppAccountStateExpression>) {\n super(props)\n this.key = props.key\n this.existsAssertionMessage = props.existsAssertionMessage\n this.account = props.account\n }\n readonly key: Expression\n readonly existsAssertionMessage: string | null\n readonly account: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAppAccountStateExpression(this)\n }\n}\nexport class BoxPrefixedKeyExpression extends Expression {\n constructor(props: Props<BoxPrefixedKeyExpression>) {\n super(props)\n this.prefix = props.prefix\n this.key = props.key\n this.wtype = props.wtype\n }\n readonly prefix: Expression\n readonly key: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBoxPrefixedKeyExpression(this)\n }\n}\nexport class BoxValueExpression extends Expression {\n constructor(props: Props<BoxValueExpression>) {\n super(props)\n this.key = props.key\n this.existsAssertionMessage = props.existsAssertionMessage\n }\n readonly key: Expression\n readonly existsAssertionMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBoxValueExpression(this)\n }\n}\nexport class SingleEvaluation extends Expression {\n constructor(props: Props<SingleEvaluation>) {\n super(props)\n this.source = props.source\n this.id = props.id\n this.wtype = props.wtype\n this.sourceLocation = props.sourceLocation\n }\n readonly source: Expression\n readonly id: symbol\n readonly wtype: wtypes.WType\n readonly sourceLocation: SourceLocation\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSingleEvaluation(this)\n }\n}\nexport class ReinterpretCast extends Expression {\n constructor(props: Props<ReinterpretCast>) {\n super(props)\n this.expr = props.expr\n }\n readonly expr: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitReinterpretCast(this)\n }\n}\nexport class NewArray extends Expression {\n constructor(props: Props<NewArray>) {\n super(props)\n this.wtype = props.wtype\n this.values = props.values\n }\n readonly wtype: wtypes.ARC4DynamicArray | wtypes.ARC4StaticArray | wtypes.ReferenceArray\n readonly values: Array<Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNewArray(this)\n }\n}\nexport class ArrayLength extends Expression {\n constructor(props: Props<ArrayLength>) {\n super(props)\n this.array = props.array\n this.wtype = props.wtype\n }\n readonly array: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayLength(this)\n }\n}\nexport class ConditionalExpression extends Expression {\n constructor(props: Props<ConditionalExpression>) {\n super(props)\n this.condition = props.condition\n this.trueExpr = props.trueExpr\n this.falseExpr = props.falseExpr\n this.wtype = props.wtype\n }\n readonly condition: Expression\n readonly trueExpr: Expression\n readonly falseExpr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitConditionalExpression(this)\n }\n}\nexport class AssignmentStatement extends Statement {\n constructor(props: Props<AssignmentStatement>) {\n super(props)\n this.target = props.target\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitAssignmentStatement(this)\n }\n}\nexport class AssignmentExpression extends Expression {\n constructor(props: Props<AssignmentExpression>) {\n super(props)\n this.target = props.target\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly value: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAssignmentExpression(this)\n }\n}\nexport class CommaExpression extends Expression {\n constructor(props: Props<CommaExpression>) {\n super(props)\n this.expressions = props.expressions\n this.wtype = props.wtype\n }\n readonly expressions: Array<Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCommaExpression(this)\n }\n}\nexport enum EqualityComparison {\n eq = '==',\n ne = '!=',\n}\nexport enum NumericComparison {\n eq = '==',\n ne = '!=',\n lt = '<',\n lte = '<=',\n gt = '>',\n gte = '>=',\n}\nexport class NumericComparisonExpression extends Expression {\n constructor(props: Props<NumericComparisonExpression>) {\n super(props)\n this.wtype = props.wtype\n this.lhs = props.lhs\n this.operator = props.operator\n this.rhs = props.rhs\n }\n readonly wtype: wtypes.WType\n readonly lhs: Expression\n readonly operator: NumericComparison\n readonly rhs: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNumericComparisonExpression(this)\n }\n}\nexport class BytesComparisonExpression extends Expression {\n constructor(props: Props<BytesComparisonExpression>) {\n super(props)\n this.wtype = props.wtype\n this.lhs = props.lhs\n this.operator = props.operator\n this.rhs = props.rhs\n }\n readonly wtype: wtypes.WType\n readonly lhs: Expression\n readonly operator: EqualityComparison\n readonly rhs: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesComparisonExpression(this)\n }\n}\nexport class SubroutineID {\n constructor(props: Props<SubroutineID>) {\n this.target = props.target\n }\n readonly target: string\n}\nexport class InstanceMethodTarget {\n constructor(props: Props<InstanceMethodTarget>) {\n this.memberName = props.memberName\n }\n readonly memberName: string\n}\nexport class InstanceSuperMethodTarget {\n constructor(props: Props<InstanceSuperMethodTarget>) {\n this.memberName = props.memberName\n }\n readonly memberName: string\n}\nexport class ContractMethodTarget {\n constructor(props: Props<ContractMethodTarget>) {\n this.cref = props.cref\n this.memberName = props.memberName\n }\n readonly cref: ContractReference\n readonly memberName: string\n}\nexport class CallArg {\n constructor(props: Props<CallArg>) {\n this.name = props.name\n this.value = props.value\n }\n readonly name: string | null\n readonly value: Expression\n}\nexport class SubroutineCallExpression extends Expression {\n constructor(props: Props<SubroutineCallExpression>) {\n super(props)\n this.target = props.target\n this.args = props.args\n }\n readonly target: SubroutineID | InstanceMethodTarget | InstanceSuperMethodTarget | ContractMethodTarget\n readonly args: Array<CallArg>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSubroutineCallExpression(this)\n }\n}\nexport class ABICall extends Expression {\n constructor(props: Props<ABICall>) {\n super(props)\n this.target = props.target\n this.args = props.args\n this.fields = props.fields\n this.wtype = props.wtype\n }\n readonly target: MethodSignature | MethodSignatureString | null\n readonly args: Array<Expression>\n readonly fields: Map<TxnField, Expression>\n readonly wtype: wtypes.WABICallInnerTransactionFields\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitABICall(this)\n }\n}\nexport class PuyaLibData {\n constructor(props: Props<PuyaLibData>) {\n this.id = props.id\n this.params = props.params\n this.wtype = props.wtype\n }\n readonly id: string\n readonly params: Map<string, wtypes.WType>\n readonly wtype: wtypes.WType\n}\nexport enum PuyaLibFunction {\n ensureBudget = 'ensure_budget',\n isSubstring = 'is_substring',\n}\nexport class PuyaLibCall extends Expression {\n constructor(props: Props<PuyaLibCall>) {\n super(props)\n this.func = props.func\n this.args = props.args\n this.wtype = props.wtype\n }\n readonly func: PuyaLibFunction\n readonly args: Array<CallArg>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitPuyaLibCall(this)\n }\n}\nexport enum UInt64BinaryOperator {\n add = '+',\n sub = '-',\n mult = '*',\n floorDiv = '//',\n mod = '%',\n pow = '**',\n lshift = '<<',\n rshift = '>>',\n bitOr = '|',\n bitXor = '^',\n bitAnd = '&',\n}\nexport enum BigUIntBinaryOperator {\n add = '+',\n sub = '-',\n mult = '*',\n floorDiv = '//',\n mod = '%',\n bitOr = '|',\n bitXor = '^',\n bitAnd = '&',\n}\nexport enum BytesBinaryOperator {\n add = '+',\n bitOr = '|',\n bitXor = '^',\n bitAnd = '&',\n}\nexport enum BytesUnaryOperator {\n bitInvert = '~',\n}\nexport enum UInt64UnaryOperator {\n bitInvert = '~',\n}\nexport enum UInt64PostfixUnaryOperator {\n increment = '++',\n decrement = '--',\n}\nexport class UInt64UnaryOperation extends Expression {\n constructor(props: Props<UInt64UnaryOperation>) {\n super(props)\n this.op = props.op\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly op: UInt64UnaryOperator\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUInt64UnaryOperation(this)\n }\n}\nexport class UInt64PostfixUnaryOperation extends Expression {\n constructor(props: Props<UInt64PostfixUnaryOperation>) {\n super(props)\n this.op = props.op\n this.target = props.target\n this.wtype = props.wtype\n }\n readonly op: UInt64PostfixUnaryOperator\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUInt64PostfixUnaryOperation(this)\n }\n}\nexport enum BigUIntPostfixUnaryOperator {\n increment = '++',\n decrement = '--',\n}\nexport class BigUIntPostfixUnaryOperation extends Expression {\n constructor(props: Props<BigUIntPostfixUnaryOperation>) {\n super(props)\n this.op = props.op\n this.target = props.target\n this.wtype = props.wtype\n }\n readonly op: BigUIntPostfixUnaryOperator\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBigUIntPostfixUnaryOperation(this)\n }\n}\nexport class BytesUnaryOperation extends Expression {\n constructor(props: Props<BytesUnaryOperation>) {\n super(props)\n this.op = props.op\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly op: BytesUnaryOperator\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesUnaryOperation(this)\n }\n}\nexport class UInt64BinaryOperation extends Expression {\n constructor(props: Props<UInt64BinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: UInt64BinaryOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUInt64BinaryOperation(this)\n }\n}\nexport class BigUIntBinaryOperation extends Expression {\n constructor(props: Props<BigUIntBinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: BigUIntBinaryOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBigUIntBinaryOperation(this)\n }\n}\nexport class BytesBinaryOperation extends Expression {\n constructor(props: Props<BytesBinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: BytesBinaryOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesBinaryOperation(this)\n }\n}\nexport enum BinaryBooleanOperator {\n and = 'and',\n or = 'or',\n}\nexport class BooleanBinaryOperation extends Expression {\n constructor(props: Props<BooleanBinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: BinaryBooleanOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBooleanBinaryOperation(this)\n }\n}\nexport class Not extends Expression {\n constructor(props: Props<Not>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNot(this)\n }\n}\nexport class UInt64AugmentedAssignment extends Statement {\n constructor(props: Props<UInt64AugmentedAssignment>) {\n super(props)\n this.target = props.target\n this.op = props.op\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly op: UInt64BinaryOperator\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitUInt64AugmentedAssignment(this)\n }\n}\nexport class BigUIntAugmentedAssignment extends Statement {\n constructor(props: Props<BigUIntAugmentedAssignment>) {\n super(props)\n this.target = props.target\n this.op = props.op\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly op: BigUIntBinaryOperator\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitBigUIntAugmentedAssignment(this)\n }\n}\nexport class BytesAugmentedAssignment extends Statement {\n constructor(props: Props<BytesAugmentedAssignment>) {\n super(props)\n this.target = props.target\n this.op = props.op\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly op: BytesBinaryOperator\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitBytesAugmentedAssignment(this)\n }\n}\nexport class EmitFields extends Expression {\n constructor(props: Props<EmitFields>) {\n super(props)\n this.signature = props.signature\n this.values = props.values\n this.wtype = props.wtype\n }\n readonly signature: string\n readonly values: Array<Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitEmitFields(this)\n }\n}\nexport class Emit extends Expression {\n constructor(props: Props<Emit>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitEmit(this)\n }\n}\nexport class Range extends Expression {\n constructor(props: Props<Range>) {\n super(props)\n this.wtype = props.wtype\n this.start = props.start\n this.stop = props.stop\n this.step = props.step\n }\n readonly wtype: wtypes.WType\n readonly start: Expression\n readonly stop: Expression\n readonly step: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitRange(this)\n }\n}\nexport class Enumeration extends Expression {\n constructor(props: Props<Enumeration>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.WEnumeration\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitEnumeration(this)\n }\n}\nexport class Reversed extends Expression {\n constructor(props: Props<Reversed>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitReversed(this)\n }\n}\nexport class ForInLoop extends Statement {\n constructor(props: Props<ForInLoop>) {\n super(props)\n this.sequence = props.sequence\n this.items = props.items\n this.loopBody = props.loopBody\n }\n readonly sequence: Expression\n readonly items:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly loopBody: Block\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitForInLoop(this)\n }\n}\nexport class StateGet extends Expression {\n constructor(props: Props<StateGet>) {\n super(props)\n this.field = props.field\n this.default = props.default\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly default: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateGet(this)\n }\n}\nexport class StateGetEx extends Expression {\n constructor(props: Props<StateGetEx>) {\n super(props)\n this.field = props.field\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly wtype: wtypes.WTuple\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateGetEx(this)\n }\n}\nexport class StateExists extends Expression {\n constructor(props: Props<StateExists>) {\n super(props)\n this.field = props.field\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateExists(this)\n }\n}\nexport class StateDelete extends Expression {\n constructor(props: Props<StateDelete>) {\n super(props)\n this.field = props.field\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateDelete(this)\n }\n}\nexport class NewStruct extends Expression {\n constructor(props: Props<NewStruct>) {\n super(props)\n this.wtype = props.wtype\n this.values = props.values\n }\n readonly wtype: wtypes.ARC4Struct\n readonly values: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNewStruct(this)\n }\n}\nexport abstract class RootNode extends Node {\n constructor(props: Props<RootNode>) {\n super(props)\n }\n abstract accept<T>(visitor: RootNodeVisitor<T>): T\n}\nexport class SubroutineArgument {\n constructor(props: Props<SubroutineArgument>) {\n this.name = props.name\n this.sourceLocation = props.sourceLocation\n this.wtype = props.wtype\n }\n readonly name: string\n readonly sourceLocation: SourceLocation\n readonly wtype: wtypes.WType\n}\nexport class MethodDocumentation {\n constructor(props: Props<MethodDocumentation>) {\n this.description = props.description\n this.args = props.args\n this.returns = props.returns\n }\n readonly description: string | null\n readonly args: Map<string, string>\n readonly returns: string | null\n}\nexport abstract class _Function extends Node {\n constructor(props: Props<_Function>) {\n super(props)\n this.args = props.args\n this.returnType = props.returnType\n this.body = props.body\n this.documentation = props.documentation\n this.inline = props.inline\n this.pure = props.pure\n }\n readonly args: Array<SubroutineArgument>\n readonly returnType: wtypes.WType\n readonly body: Block\n readonly documentation: MethodDocumentation\n readonly inline: boolean | null\n readonly pure: boolean\n}\nexport class Subroutine extends classes(_Function, RootNode) {\n constructor(props: Props<Subroutine>) {\n super([props], [props])\n this.id = props.id\n this.name = props.name\n }\n readonly id: string\n readonly name: string\n accept<T>(visitor: RootNodeVisitor<T>): T {\n return visitor.visitSubroutine(this)\n }\n}\nexport abstract class ContractMemberNode extends Node {\n constructor(props: Props<ContractMemberNode>) {\n super(props)\n }\n abstract accept<T>(visitor: ContractMemberNodeVisitor<T>): T\n}\nexport class ContractMethod extends classes(_Function, ContractMemberNode) {\n constructor(props: Props<ContractMethod>) {\n super([props], [props])\n this.cref = props.cref\n this.memberName = props.memberName\n this.arc4MethodConfig = props.arc4MethodConfig\n }\n readonly cref: ContractReference\n readonly memberName: string\n readonly arc4MethodConfig: ARC4BareMethodConfig | ARC4ABIMethodConfig | null\n accept<T>(visitor: ContractMemberNodeVisitor<T>): T {\n return visitor.visitContractMethod(this)\n }\n}\nexport class AppStorageDefinition extends ContractMemberNode {\n constructor(props: Props<AppStorageDefinition>) {\n super(props)\n this.memberName = props.memberName\n this.kind = props.kind\n this.storageWtype = props.storageWtype\n this.keyWtype = props.keyWtype\n this.key = props.key\n this.description = props.description\n }\n readonly memberName: string\n readonly kind: AppStorageKind\n readonly storageWtype: wtypes.WType\n readonly keyWtype: wtypes.WType | null\n readonly key: BytesConstant\n readonly description: string | null\n accept<T>(visitor: ContractMemberNodeVisitor<T>): T {\n return visitor.visitAppStorageDefinition(this)\n }\n}\nexport class LogicSignature extends RootNode {\n constructor(props: Props<LogicSignature>) {\n super(props)\n this.id = props.id\n this.shortName = props.shortName\n this.program = props.program\n this.docstring = props.docstring\n this.reservedScratchSpace = props.reservedScratchSpace\n this.avmVersion = props.avmVersion\n this.validateEncoding = props.validateEncoding\n }\n readonly id: LogicSigReference\n readonly shortName: string\n readonly program: Subroutine\n readonly docstring: string | null\n readonly reservedScratchSpace: Set<bigint>\n readonly avmVersion: bigint | null\n readonly validateEncoding: boolean | null\n accept<T>(visitor: RootNodeVisitor<T>): T {\n return visitor.visitLogicSignature(this)\n }\n}\nexport class CompiledContract extends Expression {\n constructor(props: Props<CompiledContract>) {\n super(props)\n this.contract = props.contract\n this.allocationOverrides = props.allocationOverrides\n this.prefix = props.prefix\n this.templateVariables = props.templateVariables\n }\n readonly contract: ContractReference\n readonly allocationOverrides: Map<TxnField, Expression>\n readonly prefix: string | null\n readonly templateVariables: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCompiledContract(this)\n }\n}\nexport class CompiledLogicSig extends Expression {\n constructor(props: Props<CompiledLogicSig>) {\n super(props)\n this.logicSig = props.logicSig\n this.prefix = props.prefix\n this.templateVariables = props.templateVariables\n }\n readonly logicSig: LogicSigReference\n readonly prefix: string | null\n readonly templateVariables: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCompiledLogicSig(this)\n }\n}\nexport class StateTotals {\n constructor(props: Props<StateTotals>) {\n this.globalUints = props.globalUints\n this.localUints = props.localUints\n this.globalBytes = props.globalBytes\n this.localBytes = props.localBytes\n }\n readonly globalUints: bigint | null\n readonly localUints: bigint | null\n readonly globalBytes: bigint | null\n readonly localBytes: bigint | null\n}\nexport class ARC4Router extends Expression {\n constructor(props: Props<ARC4Router>) {\n super(props)\n this.wtype = props.wtype\n }\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4Router(this)\n }\n}\nexport class Contract extends RootNode {\n constructor(props: Props<Contract>) {\n super(props)\n this.id = props.id\n this.name = props.name\n this.description = props.description\n this.methodResolutionOrder = props.methodResolutionOrder\n this.approvalProgram = props.approvalProgram\n this.clearProgram = props.clearProgram\n this.methods = props.methods\n this.appState = props.appState\n this.stateTotals = props.stateTotals\n this.reservedScratchSpace = props.reservedScratchSpace\n this.avmVersion = props.avmVersion\n }\n readonly id: ContractReference\n readonly name: string\n readonly description: string | null\n readonly methodResolutionOrder: Array<ContractReference>\n readonly approvalProgram: ContractMethod\n readonly clearProgram: ContractMethod\n readonly methods: Array<ContractMethod>\n readonly appState: Array<AppStorageDefinition>\n readonly stateTotals: StateTotals | null\n readonly reservedScratchSpace: Set<bigint>\n readonly avmVersion: bigint | null\n accept<T>(visitor: RootNodeVisitor<T>): T {\n return visitor.visitContract(this)\n }\n}\nexport enum ARC4CreateOption {\n allow = 1,\n require = 2,\n disallow = 3,\n}\nexport class ARC4BareMethodConfig {\n constructor(props: Props<ARC4BareMethodConfig>) {\n this.sourceLocation = props.sourceLocation\n this.allowedCompletionTypes = props.allowedCompletionTypes\n this.create = props.create\n }\n readonly sourceLocation: SourceLocation\n readonly allowedCompletionTypes: Array<OnCompletionAction>\n readonly create: ARC4CreateOption\n}\nexport class ABIMethodArgConstantDefault {\n constructor(props: Props<ABIMethodArgConstantDefault>) {\n this.value = props.value\n }\n readonly value: Expression\n}\nexport class ABIMethodArgMemberDefault {\n constructor(props: Props<ABIMethodArgMemberDefault>) {\n this.name = props.name\n }\n readonly name: string\n}\nexport class ARC4ABIMethodConfig {\n constructor(props: Props<ARC4ABIMethodConfig>) {\n this.sourceLocation = props.sourceLocation\n this.allowedCompletionTypes = props.allowedCompletionTypes\n this.create = props.create\n this.name = props.name\n this.resourceEncoding = props.resourceEncoding\n this.readonly = props.readonly\n this.defaultArgs = props.defaultArgs\n this.validateEncoding = props.validateEncoding\n }\n readonly sourceLocation: SourceLocation\n readonly allowedCompletionTypes: Array<OnCompletionAction>\n readonly create: ARC4CreateOption\n readonly name: string\n readonly resourceEncoding: 'index' | 'value'\n readonly readonly: boolean\n readonly defaultArgs: Map<string, ABIMethodArgMemberDefault | ABIMethodArgConstantDefault>\n readonly validateEncoding: boolean | null\n}\nexport type Constant = IntegerConstant | DecimalConstant | BoolConstant | BytesConstant | AddressConstant | MethodConstant\nexport type LValue =\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\nexport type ARC4MethodConfig = ARC4BareMethodConfig | ARC4ABIMethodConfig\nexport type AWST = Subroutine | LogicSignature | Contract\nexport const concreteNodes = {\n expressionStatement: ExpressionStatement,\n block: Block,\n goto: Goto,\n ifElse: IfElse,\n switch: Switch,\n whileLoop: WhileLoop,\n loopExit: LoopExit,\n loopContinue: LoopContinue,\n returnStatement: ReturnStatement,\n assertExpression: AssertExpression,\n integerConstant: IntegerConstant,\n decimalConstant: DecimalConstant,\n boolConstant: BoolConstant,\n bytesConstant: BytesConstant,\n stringConstant: StringConstant,\n voidConstant: VoidConstant,\n templateVar: TemplateVar,\n methodSignatureString: MethodSignatureString,\n methodSignature: MethodSignature,\n methodConstant: MethodConstant,\n addressConstant: AddressConstant,\n aRC4Encode: ARC4Encode,\n aRC4Decode: ARC4Decode,\n aRC4FromBytes: ARC4FromBytes,\n convertArray: ConvertArray,\n copy: Copy,\n arrayConcat: ArrayConcat,\n arrayExtend: ArrayExtend,\n arrayPop: ArrayPop,\n arrayReplace: ArrayReplace,\n sizeOf: SizeOf,\n intrinsicCall: IntrinsicCall,\n createInnerTransaction: CreateInnerTransaction,\n updateInnerTransaction: UpdateInnerTransaction,\n stageInnerTransactions: StageInnerTransactions,\n groupTransactionReference: GroupTransactionReference,\n checkedMaybe: CheckedMaybe,\n tupleExpression: TupleExpression,\n tupleItemExpression: TupleItemExpression,\n namedTupleExpression: NamedTupleExpression,\n varExpression: VarExpression,\n innerTransactionField: InnerTransactionField,\n setInnerTransactionFields: SetInnerTransactionFields,\n submitInnerTransaction: SubmitInnerTransaction,\n fieldExpression: FieldExpression,\n indexExpression: IndexExpression,\n sliceExpression: SliceExpression,\n intersectionSliceExpression: IntersectionSliceExpression,\n appStateExpression: AppStateExpression,\n appAccountStateExpression: AppAccountStateExpression,\n boxPrefixedKeyExpression: BoxPrefixedKeyExpression,\n boxValueExpression: BoxValueExpression,\n singleEvaluation: SingleEvaluation,\n reinterpretCast: ReinterpretCast,\n newArray: NewArray,\n arrayLength: ArrayLength,\n conditionalExpression: ConditionalExpression,\n assignmentStatement: AssignmentStatement,\n assignmentExpression: AssignmentExpression,\n commaExpression: CommaExpression,\n numericComparisonExpression: NumericComparisonExpression,\n bytesComparisonExpression: BytesComparisonExpression,\n subroutineID: SubroutineID,\n instanceMethodTarget: InstanceMethodTarget,\n instanceSuperMethodTarget: InstanceSuperMethodTarget,\n contractMethodTarget: ContractMethodTarget,\n callArg: CallArg,\n subroutineCallExpression: SubroutineCallExpression,\n aBICall: ABICall,\n puyaLibData: PuyaLibData,\n puyaLibCall: PuyaLibCall,\n uInt64UnaryOperation: UInt64UnaryOperation,\n uInt64PostfixUnaryOperation: UInt64PostfixUnaryOperation,\n bigUIntPostfixUnaryOperation: BigUIntPostfixUnaryOperation,\n bytesUnaryOperation: BytesUnaryOperation,\n uInt64BinaryOperation: UInt64BinaryOperation,\n bigUIntBinaryOperation: BigUIntBinaryOperation,\n bytesBinaryOperation: BytesBinaryOperation,\n booleanBinaryOperation: BooleanBinaryOperation,\n not: Not,\n uInt64AugmentedAssignment: UInt64AugmentedAssignment,\n bigUIntAugmentedAssignment: BigUIntAugmentedAssignment,\n bytesAugmentedAssignment: BytesAugmentedAssignment,\n emitFields: EmitFields,\n emit: Emit,\n range: Range,\n enumeration: Enumeration,\n reversed: Reversed,\n forInLoop: ForInLoop,\n stateGet: StateGet,\n stateGetEx: StateGetEx,\n stateExists: StateExists,\n stateDelete: StateDelete,\n newStruct: NewStruct,\n subroutineArgument: SubroutineArgument,\n methodDocumentation: MethodDocumentation,\n subroutine: Subroutine,\n contractMethod: ContractMethod,\n appStorageDefinition: AppStorageDefinition,\n logicSignature: LogicSignature,\n compiledContract: CompiledContract,\n compiledLogicSig: CompiledLogicSig,\n stateTotals: StateTotals,\n aRC4Router: ARC4Router,\n contract: Contract,\n aRC4BareMethodConfig: ARC4BareMethodConfig,\n aBIMethodArgConstantDefault: ABIMethodArgConstantDefault,\n aBIMethodArgMemberDefault: ABIMethodArgMemberDefault,\n aRC4ABIMethodConfig: ARC4ABIMethodConfig,\n uInt64Constant: IntegerConstant,\n bigUIntConstant: IntegerConstant,\n} as const\nexport interface StatementVisitor<T> {\n visitExpressionStatement(statement: ExpressionStatement): T\n visitBlock(statement: Block): T\n visitGoto(statement: Goto): T\n visitIfElse(statement: IfElse): T\n visitSwitch(statement: Switch): T\n visitWhileLoop(statement: WhileLoop): T\n visitLoopExit(statement: LoopExit): T\n visitLoopContinue(statement: LoopContinue): T\n visitReturnStatement(statement: ReturnStatement): T\n visitAssignmentStatement(statement: AssignmentStatement): T\n visitUInt64AugmentedAssignment(statement: UInt64AugmentedAssignment): T\n visitBigUIntAugmentedAssignment(statement: BigUIntAugmentedAssignment): T\n visitBytesAugmentedAssignment(statement: BytesAugmentedAssignment): T\n visitForInLoop(statement: ForInLoop): T\n}\nexport interface ExpressionVisitor<T> {\n visitAssertExpression(expression: AssertExpression): T\n visitIntegerConstant(expression: IntegerConstant): T\n visitDecimalConstant(expression: DecimalConstant): T\n visitBoolConstant(expression: BoolConstant): T\n visitBytesConstant(expression: BytesConstant): T\n visitStringConstant(expression: StringConstant): T\n visitVoidConstant(expression: VoidConstant): T\n visitTemplateVar(expression: TemplateVar): T\n visitMethodConstant(expression: MethodConstant): T\n visitAddressConstant(expression: AddressConstant): T\n visitARC4Encode(expression: ARC4Encode): T\n visitARC4Decode(expression: ARC4Decode): T\n visitARC4FromBytes(expression: ARC4FromBytes): T\n visitConvertArray(expression: ConvertArray): T\n visitCopy(expression: Copy): T\n visitArrayConcat(expression: ArrayConcat): T\n visitArrayExtend(expression: ArrayExtend): T\n visitArrayPop(expression: ArrayPop): T\n visitArrayReplace(expression: ArrayReplace): T\n visitSizeOf(expression: SizeOf): T\n visitIntrinsicCall(expression: IntrinsicCall): T\n visitCreateInnerTransaction(expression: CreateInnerTransaction): T\n visitUpdateInnerTransaction(expression: UpdateInnerTransaction): T\n visitStageInnerTransactions(expression: StageInnerTransactions): T\n visitGroupTransactionReference(expression: GroupTransactionReference): T\n visitCheckedMaybe(expression: CheckedMaybe): T\n visitTupleExpression(expression: TupleExpression): T\n visitTupleItemExpression(expression: TupleItemExpression): T\n visitNamedTupleExpression(expression: NamedTupleExpression): T\n visitVarExpression(expression: VarExpression): T\n visitInnerTransactionField(expression: InnerTransactionField): T\n visitSetInnerTransactionFields(expression: SetInnerTransactionFields): T\n visitSubmitInnerTransaction(expression: SubmitInnerTransaction): T\n visitFieldExpression(expression: FieldExpression): T\n visitIndexExpression(expression: IndexExpression): T\n visitSliceExpression(expression: SliceExpression): T\n visitIntersectionSliceExpression(expression: IntersectionSliceExpression): T\n visitAppStateExpression(expression: AppStateExpression): T\n visitAppAccountStateExpression(expression: AppAccountStateExpression): T\n visitBoxPrefixedKeyExpression(expression: BoxPrefixedKeyExpression): T\n visitBoxValueExpression(expression: BoxValueExpression): T\n visitSingleEvaluation(expression: SingleEvaluation): T\n visitReinterpretCast(expression: ReinterpretCast): T\n visitNewArray(expression: NewArray): T\n visitArrayLength(expression: ArrayLength): T\n visitConditionalExpression(expression: ConditionalExpression): T\n visitAssignmentExpression(expression: AssignmentExpression): T\n visitCommaExpression(expression: CommaExpression): T\n visitNumericComparisonExpression(expression: NumericComparisonExpression): T\n visitBytesComparisonExpression(expression: BytesComparisonExpression): T\n visitSubroutineCallExpression(expression: SubroutineCallExpression): T\n visitABICall(expression: ABICall): T\n visitPuyaLibCall(expression: PuyaLibCall): T\n visitUInt64UnaryOperation(expression: UInt64UnaryOperation): T\n visitUInt64PostfixUnaryOperation(expression: UInt64PostfixUnaryOperation): T\n visitBigUIntPostfixUnaryOperation(expression: BigUIntPostfixUnaryOperation): T\n visitBytesUnaryOperation(expression: BytesUnaryOperation): T\n visitUInt64BinaryOperation(expression: UInt64BinaryOperation): T\n visitBigUIntBinaryOperation(expression: BigUIntBinaryOperation): T\n visitBytesBinaryOperation(expression: BytesBinaryOperation): T\n visitBooleanBinaryOperation(expression: BooleanBinaryOperation): T\n visitNot(expression: Not): T\n visitEmitFields(expression: EmitFields): T\n visitEmit(expression: Emit): T\n visitRange(expression: Range): T\n visitEnumeration(expression: Enumeration): T\n visitReversed(expression: Reversed): T\n visitStateGet(expression: StateGet): T\n visitStateGetEx(expression: StateGetEx): T\n visitStateExists(expression: StateExists): T\n visitStateDelete(expression: StateDelete): T\n visitNewStruct(expression: NewStruct): T\n visitCompiledContract(expression: CompiledContract): T\n visitCompiledLogicSig(expression: CompiledLogicSig): T\n visitARC4Router(expression: ARC4Router): T\n}\nexport interface RootNodeVisitor<T> {\n visitSubroutine(rootNode: Subroutine): T\n visitLogicSignature(rootNode: LogicSignature): T\n visitContract(rootNode: Contract): T\n}\nexport interface ContractMemberNodeVisitor<T> {\n visitContractMethod(contractMemberNode: ContractMethod): T\n visitAppStorageDefinition(contractMemberNode: AppStorageDefinition): T\n}\n","import { BigUIntBinaryOperator, BinaryBooleanOperator, UInt64BinaryOperator } from './nodes'\n\nexport const constantEvaluation = {\n booleanBinary(op: BinaryBooleanOperator, left: boolean, right: boolean) {\n switch (op) {\n case BinaryBooleanOperator.and:\n return left && right\n case BinaryBooleanOperator.or:\n return left || right\n }\n },\n uint64Binary(op: UInt64BinaryOperator, left: bigint, right: bigint) {\n switch (op) {\n case UInt64BinaryOperator.add:\n return left + right\n case UInt64BinaryOperator.sub:\n return left - right\n case UInt64BinaryOperator.mult:\n return left * right\n case UInt64BinaryOperator.floorDiv:\n return left / right\n case UInt64BinaryOperator.mod:\n return left % right\n case UInt64BinaryOperator.pow:\n return left ** right\n case UInt64BinaryOperator.lshift:\n return left << right\n case UInt64BinaryOperator.rshift:\n return left >> right\n case UInt64BinaryOperator.bitOr:\n return left | right\n case UInt64BinaryOperator.bitXor:\n return left ^ right\n case UInt64BinaryOperator.bitAnd:\n return left & right\n }\n },\n biguintBinary(op: BigUIntBinaryOperator, left: bigint, right: bigint) {\n switch (op) {\n case BigUIntBinaryOperator.add:\n return left + right\n case BigUIntBinaryOperator.sub:\n return left - right\n case BigUIntBinaryOperator.mult:\n return left * right\n case BigUIntBinaryOperator.floorDiv:\n return left / right\n case BigUIntBinaryOperator.mod:\n return left % right\n case BigUIntBinaryOperator.bitOr:\n return left | right\n case BigUIntBinaryOperator.bitXor:\n return left ^ right\n case BigUIntBinaryOperator.bitAnd:\n return left & right\n }\n },\n}\n","import { getInnerTransactionType } from '../awst_build/eb/transactions/util'\nimport { anyItxnType } from '../awst_build/ptypes'\nimport { CodeError } from '../errors'\nimport type { DeliberateAny, Props } from '../typescript-helpers'\nimport { codeInvariant, instanceOfAny, invariant } from '../util'\nimport { constantEvaluation } from './constant-evaluation'\nimport type { Expression, Statement } from './nodes'\nimport {\n ARC4Decode,\n ARC4Encode,\n ArrayLength,\n ArrayReplace,\n AssertExpression,\n AssignmentExpression,\n AssignmentStatement,\n BigUIntBinaryOperation,\n Block,\n BoolConstant,\n BooleanBinaryOperation,\n BytesComparisonExpression,\n BytesConstant,\n BytesEncoding,\n CheckedMaybe,\n CommaExpression,\n concreteNodes,\n Copy,\n ExpressionStatement,\n IntegerConstant,\n MethodDocumentation,\n Not,\n NumericComparisonExpression,\n ReinterpretCast,\n SingleEvaluation,\n StringConstant,\n SubmitInnerTransaction,\n TupleExpression,\n TupleItemExpression,\n UInt64BinaryOperation,\n VoidConstant,\n} from './nodes'\nimport type { SourceLocation } from './source-location'\nimport { wtypes } from './wtypes'\nimport WInnerTransactionFields = wtypes.WInnerTransactionFields\nimport WTuple = wtypes.WTuple\n\ntype ConcreteNodes = typeof concreteNodes\n\nconst explicitNodeFactory = {\n assertExpression(props: {\n condition: Expression | null\n sourceLocation: SourceLocation\n wtype: wtypes.WType\n errorMessage: string | null\n logError?: boolean\n }) {\n return new AssertExpression({\n ...props,\n wtype: wtypes.voidWType,\n explicit: true,\n logError: props.logError ?? false,\n })\n },\n voidConstant(props: { sourceLocation: SourceLocation }): VoidConstant {\n return new VoidConstant({\n ...props,\n wtype: wtypes.voidWType,\n })\n },\n bytesConstant(props: {\n value: Uint8Array\n encoding?: BytesEncoding\n sourceLocation: SourceLocation\n wtype?: wtypes.WType\n }): BytesConstant {\n return new BytesConstant({\n encoding: BytesEncoding.unknown,\n wtype: wtypes.bytesWType,\n ...props,\n })\n },\n stringConstant(props: { value: string; sourceLocation: SourceLocation; wtype?: wtypes.WType }): StringConstant {\n return new StringConstant({\n ...props,\n wtype: props.wtype ?? wtypes.stringWType,\n })\n },\n uInt64Constant({\n value,\n tealAlias,\n sourceLocation,\n }: {\n value: bigint\n tealAlias?: string\n sourceLocation: SourceLocation\n }): IntegerConstant {\n if (value < 0n || value >= 2n ** 64n) {\n throw new CodeError(`uint64 overflow or underflow: ${value}`, { sourceLocation })\n }\n return new IntegerConstant({\n value,\n sourceLocation,\n wtype: wtypes.uint64WType,\n tealAlias: tealAlias ?? null,\n })\n },\n bigUIntConstant({\n value,\n sourceLocation,\n errorLocation,\n }: {\n value: bigint\n sourceLocation: SourceLocation\n errorLocation?: SourceLocation\n }): IntegerConstant {\n if (value < 0n || value >= 2n ** 512n) {\n throw new CodeError(`biguint overflow or underflow: ${value}`, { sourceLocation: errorLocation ?? sourceLocation })\n }\n return new IntegerConstant({\n value,\n sourceLocation,\n wtype: wtypes.biguintWType,\n tealAlias: null,\n })\n },\n not(props: { expr: Expression; sourceLocation: SourceLocation }): Not {\n return new Not({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n uInt64BinaryOperation(props: Omit<Props<UInt64BinaryOperation>, 'wtype'>): UInt64BinaryOperation | IntegerConstant {\n if (props.left instanceof IntegerConstant && props.right instanceof IntegerConstant) {\n invariant(props.left.wtype.equals(wtypes.uint64WType) && props.right.wtype.equals(wtypes.uint64WType), 'left & right must be uint64')\n return new IntegerConstant({\n value: constantEvaluation.uint64Binary(props.op, props.left.value, props.right.value),\n tealAlias: null,\n sourceLocation: props.sourceLocation,\n wtype: wtypes.uint64WType,\n })\n }\n return new UInt64BinaryOperation({\n ...props,\n wtype: wtypes.uint64WType,\n })\n },\n bigUIntBinaryOperation(props: Omit<Props<BigUIntBinaryOperation>, 'wtype'>): BigUIntBinaryOperation | IntegerConstant {\n if (props.left instanceof IntegerConstant && props.right instanceof IntegerConstant) {\n invariant(\n props.left.wtype.equals(wtypes.biguintWType) && props.right.wtype.equals(wtypes.biguintWType),\n 'left & right must be biguint',\n )\n return new IntegerConstant({\n value: constantEvaluation.biguintBinary(props.op, props.left.value, props.right.value),\n tealAlias: null,\n sourceLocation: props.sourceLocation,\n wtype: wtypes.biguintWType,\n })\n }\n return new BigUIntBinaryOperation({\n ...props,\n wtype: wtypes.biguintWType,\n })\n },\n numericComparisonExpression(props: Omit<Props<NumericComparisonExpression>, 'wtype'>): NumericComparisonExpression {\n return new NumericComparisonExpression({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n bytesComparisonExpression(props: Omit<Props<BytesComparisonExpression>, 'wtype'>): BytesComparisonExpression {\n codeInvariant(\n props.lhs.wtype.equals(props.rhs.wtype),\n `Operands type mismatch. lhs is ${props.lhs.wtype}, rhs is ${props.rhs.wtype}`,\n props.sourceLocation,\n )\n return new BytesComparisonExpression({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n boolConstant(props: { value: boolean; sourceLocation: SourceLocation; wtype?: wtypes.WType }): BoolConstant {\n return new BoolConstant({\n ...props,\n wtype: props.wtype ?? wtypes.boolWType,\n })\n },\n singleEvaluation({ source }: { source: Expression }) {\n return new SingleEvaluation({\n id: Symbol(),\n sourceLocation: source.sourceLocation,\n wtype: source.wtype,\n source,\n })\n },\n expressionStatement({ expr }: { expr: Expression }) {\n if (expr instanceof AssignmentExpression) {\n // Replace ExpressionStatement(AssignmentExpression) with AssignmentStatement\n return new AssignmentStatement({\n ...expr,\n })\n }\n\n return new ExpressionStatement({\n expr,\n sourceLocation: expr.sourceLocation,\n })\n },\n block(\n { sourceLocation, comment, label }: { sourceLocation: SourceLocation; comment?: string; label?: string },\n ...statements: Array<Statement | Statement[]>\n ) {\n return new Block({\n body: statements.flat(),\n sourceLocation,\n comment: comment ?? null,\n label: label ?? null,\n })\n },\n booleanBinaryOperation(props: Omit<Props<BooleanBinaryOperation>, 'wtype'>) {\n if (props.left instanceof BoolConstant && props.right instanceof BoolConstant) {\n return new BoolConstant({\n value: constantEvaluation.booleanBinary(props.op, props.left.value, props.right.value),\n sourceLocation: props.sourceLocation,\n wtype: wtypes.boolWType,\n })\n }\n return new BooleanBinaryOperation({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n assignmentExpression({\n target,\n value,\n sourceLocation,\n }: {\n target: AssignmentExpression['target']\n value: Expression\n sourceLocation: SourceLocation\n }) {\n codeInvariant(target.wtype.equals(value.wtype), `Assignment target type ${target.wtype} must match assigned value type ${value.wtype}`)\n return new AssignmentExpression({\n target,\n value,\n wtype: value.wtype,\n sourceLocation,\n })\n },\n assignmentStatement({\n target,\n value,\n sourceLocation,\n }: {\n target: AssignmentStatement['target']\n value: Expression\n sourceLocation: SourceLocation\n }) {\n codeInvariant(target.wtype.equals(value.wtype), `Assignment target type ${target.wtype} must match assigned value type ${value.wtype}`)\n return new AssignmentStatement({\n target,\n value,\n sourceLocation,\n })\n },\n tupleExpression(props: Omit<Props<TupleExpression>, 'wtype'> & { wtype?: wtypes.WTuple }) {\n return new TupleExpression({\n ...props,\n wtype: props.wtype ?? new wtypes.WTuple({ types: props.items.map((i) => i.wtype) }),\n })\n },\n methodDocumentation(props?: { description?: string | null; args?: Map<string, string>; returns?: string | null }) {\n return new MethodDocumentation({\n args: props?.args ?? new Map(),\n description: props?.description ?? null,\n returns: props?.returns ?? null,\n })\n },\n copy({ value, sourceLocation }: { value: Expression; sourceLocation: SourceLocation }) {\n return new Copy({\n value,\n sourceLocation,\n wtype: value.wtype,\n })\n },\n checkedMaybe({ expr, comment }: { expr: Expression; comment: string }) {\n invariant(expr.wtype instanceof wtypes.WTuple && expr.wtype.types.length === 2, 'expr WType must be WTuple of 2')\n invariant(expr.wtype.types[1].equals(wtypes.boolWType), '2nd tuple item type must be bool')\n return new CheckedMaybe({\n expr,\n comment,\n sourceLocation: expr.sourceLocation,\n wtype: expr.wtype.types[0],\n })\n },\n tupleItemExpression(props: Omit<Props<TupleItemExpression>, 'wtype'>) {\n invariant(\n instanceOfAny(props.base.wtype, wtypes.WTuple, wtypes.ARC4Tuple) && props.base.wtype.types.length > Number(props.index),\n 'expr.base must be tuple type with length greater than index',\n )\n return new TupleItemExpression({\n ...props,\n wtype: props.base.wtype.types[Number(props.index)],\n })\n },\n reinterpretCast({ expr, wtype, sourceLocation }: { expr: Expression; wtype: wtypes.WType; sourceLocation: SourceLocation }) {\n if (expr instanceof BytesConstant) {\n return new BytesConstant({\n ...expr,\n wtype,\n sourceLocation,\n })\n }\n\n return new ReinterpretCast({\n expr,\n wtype,\n sourceLocation,\n })\n },\n arrayLength({ array, sourceLocation }: { array: Expression; sourceLocation: SourceLocation }) {\n return new ArrayLength({\n array,\n sourceLocation,\n wtype: wtypes.uint64WType,\n })\n },\n arrayReplace({\n base,\n index,\n value,\n sourceLocation,\n }: {\n base: Expression\n index: Expression\n value: Expression\n sourceLocation: SourceLocation\n }) {\n invariant(base.wtype instanceof wtypes.ARC4DynamicArray, 'base must have wtype of ARC4DynamicArray', base.sourceLocation)\n return new ArrayReplace({\n base,\n index,\n value,\n sourceLocation,\n wtype: base.wtype,\n })\n },\n submitInnerTransaction({ itxns, sourceLocation }: Omit<Props<SubmitInnerTransaction>, 'wtype'>) {\n const itxnWTypes = itxns.map(({ wtype }, index) => {\n invariant(\n wtype instanceof WInnerTransactionFields,\n `WType at index ${index} must be WInnerTransactionFields with type`,\n sourceLocation,\n )\n return wtype.transactionType === null ? anyItxnType.wtype : getInnerTransactionType(wtype.transactionType).wtype\n })\n return new SubmitInnerTransaction({\n itxns,\n sourceLocation,\n wtype: itxnWTypes.length === 1 ? itxnWTypes[0] : new WTuple({ types: itxnWTypes }),\n })\n },\n commaExpression({ expressions, sourceLocation }: Omit<Props<CommaExpression>, 'wtype'>) {\n const wtype = expressions.at(-1)?.wtype\n\n invariant(wtype, 'Must have at least 1 expression')\n\n return new CommaExpression({\n expressions,\n sourceLocation,\n wtype,\n })\n },\n aRC4Encode(props: Omit<Props<ARC4Encode>, 'errorMessage'>) {\n return new ARC4Encode({\n ...props,\n errorMessage: null,\n })\n },\n aRC4Decode(props: Omit<Props<ARC4Decode>, 'errorMessage'>) {\n return new ARC4Decode({\n ...props,\n errorMessage: null,\n })\n },\n} satisfies { [key in keyof ConcreteNodes]?: (...args: DeliberateAny[]) => DeliberateAny }\n\ntype ExplicitNodeFactory = typeof explicitNodeFactory\n\ntype DefaultNodeFactory<TKey extends keyof ConcreteNodes> = (\n ...args: ConstructorParameters<ConcreteNodes[TKey]>\n) => InstanceType<ConcreteNodes[TKey]>\n\nexport type NodeFactory = {\n [key in keyof ConcreteNodes]: FactoryMethod<key>\n}\n\ntype FactoryMethod<TKey extends keyof ConcreteNodes> = TKey extends keyof ExplicitNodeFactory\n ? ExplicitNodeFactory[TKey]\n : DefaultNodeFactory<TKey>\n\nfunction isNodeName(value: string | symbol): value is keyof ConcreteNodes {\n return typeof value === 'string' && Object.hasOwn(concreteNodes, value)\n}\n\nfunction hasExplicitFactory(value: string): value is keyof typeof explicitNodeFactory {\n return Object.hasOwn(explicitNodeFactory, value)\n}\n\nexport const nodeFactory: NodeFactory = new Proxy({} as unknown as NodeFactory, {\n get(_, property) {\n invariant(isNodeName(property), 'Property must be the name of a concrete node')\n\n if (hasExplicitFactory(property)) {\n return explicitNodeFactory[property]\n }\n return (props: DeliberateAny) => new concreteNodes[property](props)\n },\n})\n","import { AsyncLocalStorage } from 'node:async_hooks'\nimport type { SourceLocation } from '../awst/source-location'\nimport type { CodeFix } from '../code-fix/code-fix'\nimport { FixableCodeError, PuyaError } from '../errors'\nimport { invariant } from '../util'\nimport type { LogSink } from './sinks'\n\ntype NodeOrSourceLocation = SourceLocation //| { sourceLocation: SourceLocation }\n\nexport enum LogLevel {\n Error = 'error',\n Info = 'info',\n Warning = 'warning',\n Debug = 'debug',\n Critical = 'critical',\n}\nexport const logLevelToInt = {\n // values match puya values\n [LogLevel.Critical]: 50,\n [LogLevel.Error]: 40,\n [LogLevel.Info]: 30,\n [LogLevel.Warning]: 20,\n [LogLevel.Debug]: 10,\n}\nexport enum LogSource {\n Unspecified,\n TypeScript,\n Puya,\n CodeFix,\n}\nexport const isMinLevel = (logLevel: LogLevel, minLevel: LogLevel): boolean => {\n return logLevelToInt[minLevel] <= logLevelToInt[logLevel]\n}\n\nconst errorOrCritical = new Set([LogLevel.Error, LogLevel.Critical])\n\nexport const isErrorOrCritical = (l: LogLevel) => errorOrCritical.has(l)\n\nexport type LogEvent = {\n level: LogLevel\n message: string\n sourceLocation: SourceLocation | undefined\n stack?: string\n logSource: LogSource\n codeFix?: CodeFix\n}\n\nclass PuyaLogger {\n private logSinks: LogSink[] = []\n public configure(sinks: LogSink[]) {\n this.logSinks = sinks\n }\n\n addCodeFix(codeFix: CodeFix) {\n invariant(codeFix.sourceLocation.file, 'Code fix cannot be added without a well-formed source location')\n this.addLog(codeFix.logData)\n }\n\n addLog(logEvent: LogEvent) {\n LoggingContext.current.addLog(logEvent)\n for (const sink of this.logSinks) {\n if (isMinLevel(logEvent.level, sink.minLogLevel)) {\n sink.add(logEvent)\n }\n }\n }\n\n error(error: Error): void\n error(source: NodeOrSourceLocation | undefined, message: string): void\n error(sourceOrError: NodeOrSourceLocation | undefined | Error, message?: string): void {\n if (sourceOrError instanceof FixableCodeError) {\n this.addCodeFix(sourceOrError.codeFix)\n } else if (sourceOrError instanceof Error) {\n // Don't include the stack for user errors as the message and source location is what's relevant\n this.addLog({\n level: LogLevel.Error,\n sourceLocation: tryGetSourceLocationFromError(sourceOrError),\n message: `${sourceOrError.message}`,\n stack: sourceOrError.stack,\n logSource: LogSource.Unspecified,\n })\n if (sourceOrError.cause) {\n this.addLog({\n level: LogLevel.Debug,\n sourceLocation: tryGetSourceLocationFromError(sourceOrError.cause),\n message: `Caused by: ${sourceOrError.cause}`,\n stack: (sourceOrError.cause as Error).stack,\n logSource: LogSource.Unspecified,\n })\n }\n } else {\n invariant(message, 'Log should include either a message or an error')\n this.addLog({\n level: LogLevel.Error,\n sourceLocation: sourceOrError,\n message,\n stack: new Error().stack,\n logSource: LogSource.Unspecified,\n })\n }\n }\n info(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Info, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n debug(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Debug, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n warn(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Warning, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n critical(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Critical, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n}\n\nconst tryGetSourceLocationFromError = (error: unknown): SourceLocation | undefined => {\n if (error instanceof PuyaError) {\n return error.sourceLocation\n }\n return undefined\n}\n\nexport const logger = new PuyaLogger()\n\nexport const patchErrorLocation = <TArgs extends unknown[], TReturn>(\n action: (...args: TArgs) => TReturn,\n sourceLocation: SourceLocation,\n) => {\n return (...args: TArgs) => {\n try {\n return action(...args)\n } catch (e) {\n if (e instanceof PuyaError && !e.sourceLocation) {\n Object.assign(e, { sourceLocation })\n }\n throw e\n }\n }\n}\n\nexport class LoggingContext {\n #logEvents: LogEvent[] = []\n #sourcesByPath: Record<string, string[]> = {}\n #logEventsByPath: Record<string, LogEvent[]> = {}\n treatWarningsAsErrors = false\n\n get logEvents(): readonly LogEvent[] {\n return this.#logEvents\n }\n get logEventsByPath(): { readonly [path: string]: readonly LogEvent[] } {\n return this.#logEventsByPath\n }\n\n get sourcesByPath(): { readonly [path: string]: readonly string[] } {\n return this.#sourcesByPath\n }\n\n setSourcesByPath(sourcesByPath: Record<string, string[]>) {\n this.#sourcesByPath = sourcesByPath\n // Ensure every source file has an entry in #logEventsByPath\n for (const filePath of Object.keys(sourcesByPath)) {\n if (filePath in this.#logEventsByPath) continue\n this.#logEventsByPath[filePath] = []\n }\n }\n\n addLog(log: LogEvent) {\n if (this.treatWarningsAsErrors && log.level === LogLevel.Warning) {\n log.level = LogLevel.Error\n }\n this.#logEvents.push(log)\n const filePath = log.sourceLocation?.file?.toString()\n if (filePath) {\n if (filePath in this.#logEventsByPath) {\n this.#logEventsByPath[filePath].push(log)\n } else {\n this.#logEventsByPath[filePath] = [log]\n }\n }\n }\n\n private constructor() {}\n\n hasErrors(): boolean {\n return this.logEvents.some((e) => isErrorOrCritical(e.level))\n }\n\n exitIfErrors(): void {\n if (this.hasErrors()) process.exit(1)\n }\n\n enterContext() {\n LoggingContext.asyncStore.enterWith(this)\n return this\n }\n\n run<R>(cb: () => R) {\n return LoggingContext.asyncStore.run(this, cb)\n }\n private static fallbackContext = new LoggingContext()\n private static asyncStore = new AsyncLocalStorage<LoggingContext>()\n\n static create(): LoggingContext {\n return new LoggingContext()\n }\n static get current() {\n const ctx = this.asyncStore.getStore()\n if (!ctx) {\n return this.fallbackContext\n }\n return ctx\n }\n}\n","import type { DeliberateAny } from '../typescript-helpers'\n\ntype Primitive = number | bigint | string | boolean\n\nexport abstract class CustomKeyMap<TKey, TValue> implements Map<TKey, TValue> {\n #keySerializer: (key: TKey) => Primitive\n #map = new Map<Primitive, [TKey, TValue]>()\n\n constructor(keySerializer: (key: TKey) => number | bigint | string) {\n this.#keySerializer = keySerializer\n }\n\n clear(): void {\n this.#map.clear()\n }\n delete(key: TKey): boolean {\n return this.#map.delete(this.#keySerializer(key))\n }\n forEach(callbackfn: (value: TValue, key: TKey, map: Map<TKey, TValue>) => void, thisArg?: DeliberateAny): void {\n for (const [key, value] of this.#map.values()) {\n callbackfn.call(thisArg ?? this, value, key, this)\n }\n }\n get(key: TKey): TValue | undefined {\n return this.#map.get(this.#keySerializer(key))?.[1]\n }\n has(key: TKey): boolean {\n return this.#map.has(this.#keySerializer(key))\n }\n set(key: TKey, value: TValue): this {\n this.#map.set(this.#keySerializer(key), [key, value])\n return this\n }\n get size(): number {\n return this.#map.size\n }\n entries(): MapIterator<[TKey, TValue]> {\n return this.#map.values()\n }\n *keys(): MapIterator<TKey> {\n for (const [key] of this.#map.values()) {\n yield key\n }\n }\n *values(): MapIterator<TValue> {\n for (const [, value] of this.#map.values()) {\n yield value\n }\n }\n [Symbol.iterator](): MapIterator<[TKey, TValue]> {\n return this.#map.values()\n }\n get [Symbol.toStringTag](): string {\n return this.constructor.name\n }\n}\n","import { LogicSigReference } from '../../awst/models'\nimport { nodeFactory } from '../../awst/node-factory'\nimport type { LogicSignature, Subroutine } from '../../awst/nodes'\nimport type { SourceLocation } from '../../awst/source-location'\nimport type { Props } from '../../typescript-helpers'\nimport type { LogicSigPType } from '../ptypes'\nimport type { LogicSigOptionsDecoratorData } from './decorator-data'\n\nexport class LogicSigClassModel {\n public readonly isAbstract = false\n public get id(): LogicSigReference {\n return LogicSigReference.fromPType(this.type)\n }\n public readonly type: LogicSigPType\n public get name(): string {\n return this.type.name\n }\n public readonly description: string | null\n public readonly bases: Array<LogicSigReference>\n public readonly options: LogicSigOptionsDecoratorData | undefined\n public readonly program: Subroutine\n public readonly sourceLocation: SourceLocation\n constructor(props: Props<Omit<LogicSigClassModel, 'name' | 'id' | 'isAbstract'>>) {\n this.type = props.type\n this.description = props.description\n this.program = props.program\n this.bases = props.bases\n this.sourceLocation = props.sourceLocation\n this.options = props.options\n }\n\n public buildLogicSignature(): LogicSignature {\n return nodeFactory.logicSignature({\n id: this.id,\n shortName: this.options?.name ?? this.name,\n program: this.program,\n sourceLocation: this.sourceLocation,\n docstring: this.description,\n avmVersion: this.options?.avmVersion ?? null,\n reservedScratchSpace: this.options?.scratchSlots ?? new Set(),\n validateEncoding: this.options?.validateEncoding ?? null,\n })\n }\n}\n","import type { awst } from '../../awst'\nimport type { LogicSigReference } from '../../awst/models'\nimport { ContractReference, OnCompletionAction } from '../../awst/models'\nimport { nodeFactory } from '../../awst/node-factory'\nimport type { AppStorageDefinition, ContractMethod, Statement } from '../../awst/nodes'\nimport { ARC4BareMethodConfig, ARC4CreateOption, StateTotals } from '../../awst/nodes'\nimport { SourceLocation } from '../../awst/source-location'\nimport { wtypes } from '../../awst/wtypes'\nimport { Constants } from '../../constants'\nimport { logger } from '../../logger'\nimport type { Props } from '../../typescript-helpers'\nimport { codeInvariant, invariant, isIn } from '../../util'\nimport { CustomKeyMap } from '../../util/custom-key-map'\nimport type { ContractClassPType } from '../ptypes'\nimport { ClusteredContractClassType } from '../ptypes'\nimport type { ContractOptionsDecoratorData } from './decorator-data'\nimport { LogicSigClassModel } from './logic-sig-class-model'\n\nexport class ContractClassModel {\n public readonly isAbstract: boolean\n public get id(): ContractReference {\n return ContractReference.fromPType(this.type)\n }\n public readonly type: ContractClassPType\n public get name(): string {\n return this.type.name\n }\n public readonly options: ContractOptionsDecoratorData | undefined\n public readonly description: string | null\n public readonly propertyInitialization: Array<Statement>\n public readonly approvalProgram: ContractMethod | null\n public readonly clearProgram: ContractMethod | null\n public readonly ctor: ContractMethod | null\n public readonly methods: Array<ContractMethod>\n public readonly appState: Array<AppStorageDefinition>\n public readonly sourceLocation: SourceLocation\n constructor(props: Props<Omit<ContractClassModel, 'name' | 'id'>>) {\n this.isAbstract = props.isAbstract\n this.type = props.type\n this.description = props.description\n this.propertyInitialization = props.propertyInitialization\n this.ctor = props.ctor\n this.approvalProgram = props.approvalProgram\n this.clearProgram = props.clearProgram\n this.methods = props.methods\n this.appState = props.appState\n this.sourceLocation = props.sourceLocation\n this.options = props.options\n }\n\n hasExplicitStateTotals() {\n return this.options?.stateTotals !== undefined\n }\n\n buildContract(compilationSet: CompilationSet): awst.Contract {\n let approvalProgram: ContractMethod | null = this.approvalProgram\n let clearProgram: ContractMethod | null = this.clearProgram\n const methods: ContractMethod[] = [...this.methods]\n const ctors: ContractMethod[] = this.ctor ? [this.ctor] : []\n const methodResolutionOrder: ContractReference[] = []\n let firstBaseWithStateTotals: ContractClassModel | undefined = undefined\n let reservedScratchSpace = new Set<bigint>()\n\n const seenContractIds = new Set<string>()\n\n for (const baseType of this.type.allBases()) {\n const baseClass = this.getModelForClass(compilationSet, baseType)\n if (baseClass.hasExplicitStateTotals() && firstBaseWithStateTotals === undefined) {\n firstBaseWithStateTotals = baseClass\n }\n if (baseClass.options?.scratchSlots) {\n reservedScratchSpace = reservedScratchSpace.union(baseClass.options.scratchSlots)\n }\n methodResolutionOrder.push(baseClass.id)\n if (seenContractIds.has(baseClass.id.toString())) {\n continue\n } else {\n seenContractIds.add(baseClass.id.toString())\n }\n approvalProgram ??= baseClass.approvalProgram\n clearProgram ??= baseClass.clearProgram\n if (baseClass.approvalProgram && baseClass.approvalProgram !== approvalProgram) methods.push(baseClass.approvalProgram)\n if (baseClass.clearProgram && baseClass.clearProgram !== clearProgram) methods.push(baseClass.clearProgram)\n for (const method of baseClass.methods) {\n // Maybe need validation??\n methods.push(method)\n }\n if (baseClass.ctor) ctors.push(baseClass.ctor)\n }\n if (this.type.isARC4) {\n const hasCreate = methods.some((m) => isIn(m.arc4MethodConfig?.create, [ARC4CreateOption.allow, ARC4CreateOption.require]))\n const hasBareNoop = methods.some(\n (m) =>\n m.arc4MethodConfig instanceof ARC4BareMethodConfig && isIn(OnCompletionAction.NoOp, m.arc4MethodConfig.allowedCompletionTypes),\n )\n\n if (!hasCreate) {\n if (hasBareNoop) {\n logger.error(\n this.sourceLocation,\n `Non-abstract ARC4 contract has no methods which can be called to create the contract. ` +\n `An implicit one could not be inserted as there is already a bare method handling the NoOp on completion action. ` +\n `In order to allow creating the contract specify { onCreate: 'allow' } or { onCreate: 'require' } in an @abimethod or @baremethod decorator above the chosen method.`,\n )\n } else {\n methods.push(this.makeDefaultCreate())\n }\n }\n }\n\n codeInvariant(approvalProgram, 'must have approval')\n codeInvariant(clearProgram, 'must have clear')\n\n if (!this.hasExplicitStateTotals && firstBaseWithStateTotals) {\n logger.warn(\n this.options?.sourceLocation ?? this.sourceLocation,\n `Contract extends base contract ${firstBaseWithStateTotals.id} with explicit stateTotals, but does not define its own stateTotals. This could result in insufficient reserved state at run time. An empty object may be provided in order to indicate that this contract should revert to the default behaviour`,\n )\n }\n\n const stateTotals = new StateTotals({\n globalBytes: this.options?.stateTotals?.globalBytes ?? null,\n globalUints: this.options?.stateTotals?.globalUints ?? null,\n localBytes: this.options?.stateTotals?.localBytes ?? null,\n localUints: this.options?.stateTotals?.localUints ?? null,\n })\n\n if (this.options?.scratchSlots) {\n reservedScratchSpace = reservedScratchSpace.union(this.options.scratchSlots)\n }\n\n const hasSignificantConstructor = ctors.length > 1\n\n return nodeFactory.contract({\n name: this.options?.name ?? this.name,\n id: this.id,\n description: this.description,\n approvalProgram: hasSignificantConstructor ? ContractClassModel.patchApprovalToCallCtor(approvalProgram, methods) : approvalProgram,\n clearProgram,\n methodResolutionOrder,\n methods: [...methods, ...(hasSignificantConstructor ? ctors : [])],\n appState: this.appState,\n stateTotals,\n reservedScratchSpace: reservedScratchSpace,\n sourceLocation: this.sourceLocation,\n avmVersion: this.options?.avmVersion ?? null,\n })\n }\n\n private getModelForClass(compilationSet: CompilationSet, contractType: ContractClassPType): ContractClassModel {\n if (contractType instanceof ClusteredContractClassType) {\n return this.buildClusteredMetaClass(compilationSet, contractType)\n } else {\n return compilationSet.getContractClass(ContractReference.fromPType(contractType))\n }\n }\n\n private buildClusteredMetaClass(compilationSet: CompilationSet, clusteredType: ClusteredContractClassType): ContractClassModel {\n const ctor = nodeFactory.contractMethod({\n memberName: Constants.symbolNames.constructorMethodName,\n cref: ContractReference.fromPType(clusteredType),\n documentation: nodeFactory.methodDocumentation({}),\n sourceLocation: SourceLocation.None,\n args: [],\n returnType: wtypes.voidWType,\n body: nodeFactory.block({\n sourceLocation: SourceLocation.None,\n }),\n arc4MethodConfig: null,\n inline: null, // TODO: Expose inline hint option\n pure: false,\n })\n const ctorTargets: awst.ContractMethod[] = []\n for (const baseType of clusteredType.baseTypes) {\n for (const b of [baseType, ...baseType.allBases()]) {\n const baseClassModel = this.getModelForClass(compilationSet, b)\n if (baseClassModel.ctor) {\n ctorTargets.push(baseClassModel.ctor)\n break\n }\n }\n }\n ctor.body.body.push(\n ...ctorTargets.map((ct) =>\n nodeFactory.expressionStatement({\n expr: nodeFactory.subroutineCallExpression({\n target: nodeFactory.contractMethodTarget({\n memberName: ct.memberName,\n cref: ct.cref,\n }),\n args: [],\n sourceLocation: SourceLocation.None,\n wtype: wtypes.voidWType,\n }),\n }),\n ),\n )\n return new ContractClassModel({\n appState: [],\n approvalProgram: null,\n clearProgram: null,\n isAbstract: true,\n sourceLocation: SourceLocation.None,\n propertyInitialization: [],\n description: null,\n ctor: ctor,\n methods: [],\n options: undefined,\n type: clusteredType,\n })\n }\n\n private static patchApprovalToCallCtor(approval: ContractMethod, methods: ContractMethod[]): ContractMethod {\n const callCtorIfNew = nodeFactory.ifElse({\n condition: nodeFactory.not({\n expr: nodeFactory.reinterpretCast({\n expr: nodeFactory.intrinsicCall({\n opCode: 'txn',\n immediates: ['ApplicationID'],\n stackArgs: [],\n sourceLocation: SourceLocation.None,\n wtype: wtypes.uint64WType,\n }),\n sourceLocation: SourceLocation.None,\n wtype: wtypes.boolWType,\n }),\n sourceLocation: SourceLocation.None,\n }),\n ifBranch: nodeFactory.block(\n { sourceLocation: SourceLocation.None },\n nodeFactory.expressionStatement({\n expr: nodeFactory.subroutineCallExpression({\n args: [],\n wtype: wtypes.voidWType,\n target: nodeFactory.instanceMethodTarget({\n memberName: Constants.symbolNames.constructorMethodName,\n }),\n sourceLocation: SourceLocation.None,\n }),\n }),\n ),\n sourceLocation: SourceLocation.None,\n elseBranch: null,\n })\n\n return nodeFactory.contractMethod({\n ...approval,\n body: nodeFactory.block({ sourceLocation: SourceLocation.None }, callCtorIfNew, approval.body),\n })\n }\n\n private makeDefaultCreate() {\n return nodeFactory.contractMethod({\n memberName: Constants.symbolNames.defaultCreateMethodName,\n cref: ContractReference.fromPType(this.type),\n args: [],\n arc4MethodConfig: new ARC4BareMethodConfig({\n allowedCompletionTypes: [OnCompletionAction.NoOp],\n create: ARC4CreateOption.require,\n sourceLocation: this.sourceLocation,\n }),\n returnType: wtypes.voidWType,\n documentation: nodeFactory.methodDocumentation({\n description: 'Implicitly generated create method',\n }),\n sourceLocation: this.sourceLocation,\n body: nodeFactory.block({\n sourceLocation: this.sourceLocation,\n }),\n inline: null, // TODO: Expose inline hint option?\n pure: false,\n })\n }\n}\n\nexport class CompilationSet extends CustomKeyMap<ContractReference | LogicSigReference, ContractClassModel | LogicSigClassModel> {\n constructor() {\n super((x) => x.toString())\n }\n\n get compilationOutputSet() {\n return Array.from(this.entries())\n .filter(([, meta]) => !meta.isAbstract)\n .map(([ref]) => ref)\n }\n\n getContractClass(cref: ContractReference) {\n const maybeClass = this.get(cref)\n invariant(maybeClass instanceof ContractClassModel, 'Contract reference must resolve to a contract class')\n return maybeClass\n }\n\n getLogicSig(lref: LogicSigReference) {\n const maybeLogicSig = this.get(lref)\n invariant(maybeLogicSig instanceof LogicSigClassModel, 'Logic sig reference must resolve to a logic signature class')\n return maybeLogicSig\n }\n}\n"],"names":["pathe","fs"],"mappings":";;;;;;;;;AAAA,MAAM,aAAa,GAAG,yCAAyC;AAExD,MAAM,SAAS,GAAG;IACvB,aAAa;AACb,IAAA,WAAW,EAAE;AACX,QAAA,UAAU,EAAE;AACV,YAAA,GAAG,EAAE,6BAA6B;AACnC,SAAA;AACD,QAAA,QAAQ,EAAE,mCAAmC;AAC7C,QAAA,MAAM,EAAE;YACN,KAAK,EAAE,CAAA,EAAG,aAAa,CAAA,YAAA,CAAc;AACrC,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,CAAA,EAAG,aAAa,CAAA,gBAAA,CAAkB;gBACzC,YAAY,EAAE,CAAA,EAAG,aAAa,CAAA,wBAAA,CAA0B;gBACxD,GAAG,EAAE,CAAA,EAAG,aAAa,CAAA,cAAA,CAAgB;AACtC,aAAA;YACD,MAAM,EAAE,CAAA,EAAG,aAAa,CAAA,YAAA,CAAc;YACtC,YAAY,EAAE,CAAA,EAAG,aAAa,CAAA,mBAAA,CAAqB;YACnD,GAAG,EAAE,CAAA,EAAG,aAAa,CAAA,SAAA,CAAW;YAChC,QAAQ,EAAE,CAAA,EAAG,aAAa,CAAA,cAAA,CAAgB;YAC1C,IAAI,EAAE,CAAA,EAAG,aAAa,CAAA,UAAA,CAAY;YAClC,WAAW,EAAE,CAAA,EAAG,aAAa,CAAA,kBAAA,CAAoB;YACjD,IAAI,EAAE,CAAA,EAAG,aAAa,CAAA,UAAA,CAAY;YAClC,QAAQ,EAAE,CAAA,EAAG,aAAa,CAAA,eAAA,CAAiB;YAC3C,cAAc,EAAE,CAAA,EAAG,aAAa,CAAA,qBAAA,CAAuB;YACvD,gBAAgB,EAAE,CAAA,EAAG,aAAa,CAAA,wBAAA,CAA0B;YAC5D,EAAE,EAAE,CAAA,EAAG,aAAa,CAAA,QAAA,CAAU;YAC9B,UAAU,EAAE,CAAA,EAAG,aAAa,CAAA,gBAAA,CAAkB;YAC9C,SAAS,EAAE,CAAA,EAAG,aAAa,CAAA,eAAA,CAAiB;YAC5C,KAAK,EAAE,CAAA,EAAG,aAAa,CAAA,WAAA,CAAa;YACpC,WAAW,EAAE,CAAA,EAAG,aAAa,CAAA,kBAAA,CAAoB;YACjD,YAAY,EAAE,CAAA,EAAG,aAAa,CAAA,kBAAA,CAAoB;YAClD,IAAI,EAAE,CAAA,EAAG,aAAa,CAAA,UAAA,CAAY;YAClC,aAAa,EAAE,CAAA,EAAG,aAAa,CAAA,oBAAA,CAAsB;AACtD,SAAA;AACF,KAAA;AAED,IAAA,WAAW,EAAE;AACX,QAAA,yBAAyB,EAAE,iBAAiB;AAC5C,QAAA,2BAA2B,EAAE,mBAAmB;AAChD,QAAA,qBAAqB,EAAE,eAAe;AACtC,QAAA,qBAAqB,EAAE,iBAAiB;AACxC,QAAA,oBAAoB,EAAE,gBAAgB;AACtC,QAAA,4BAA4B,EAAE,UAAU;AACxC,QAAA,4BAA4B,EAAE,UAAU;AACxC,QAAA,qBAAqB,EAAE,aAAa;AACpC,QAAA,yBAAyB,EAAE,SAAS;AACpC,QAAA,uBAAuB,EAAE,0BAA0B;AACnD,QAAA,mBAAmB,EAAE;AACnB,YAAA,+BAA+B,EAAE,uBAAuB;AACxD,YAAA,2BAA2B,EAAE,mBAAmB;AAChD,YAAA,2BAA2B,EAAE,mBAAmB;AAChD,YAAA,4BAA4B,EAAE,oBAAoB;AAClD,YAAA,2BAA2B,EAAE,mBAAmB;AACjD,SAAA;AACF,KAAA;AAED,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE;AACJ,YAAA,YAAY,EAAE,UAAU;AACzB,SAAA;AACD,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,oBAAoB,EAAE,EAAE;AACxB,QAAA,uBAAuB,EAAE,EAAE;AAC3B,QAAA,cAAc,EAAE,4DAA4D;AAC7E,KAAA;IAED,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC1C,IAAA,mBAAmB,EAAE,YAAY;AACjC,IAAA,cAAc,EAAE,yBAAyB;AACzC,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,oBAAoB,EAAE,QAAQ;;;AC9D1B,MAAO,SAAU,SAAQ,KAAK,CAAA;AACzB,IAAA,cAAc;IACvB,WAAA,CAAY,OAAgB,EAAE,OAA0B,EAAA;AACtD,QAAA,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc;IAC/C;AACD;AAED;;AAEG;AACG,MAAgB,SAAU,SAAQ,SAAS,CAAA;AAAG;AAEpD;;AAEG;AACG,MAAO,SAAU,SAAQ,SAAS,CAAA;AACtC,IAAA,OAAO,uBAAuB,CAAC,EAAE,cAAc,EAAsC,EAAA;AACnF,QAAA,OAAO,IAAI,SAAS,CAAC,2BAA2B,EAAE;YAChD,cAAc;AACf,SAAA,CAAC;IACJ;AACA,IAAA,OAAO,kBAAkB,CAAC,EAAE,cAAc,EAAsC,EAAA;AAC9E,QAAA,OAAO,IAAI,SAAS,CAAC,yCAAyC,EAAE;YAC9D,cAAc;AACf,SAAA,CAAC;IACJ;AACA,IAAA,OAAO,2BAA2B,CAAC,EAAE,cAAc,EAAsC,EAAA;AACvF,QAAA,OAAO,IAAI,SAAS,CAAC,gCAAgC,EAAE;YACrD,cAAc;AACf,SAAA,CAAC;IACJ;AACA,IAAA,OAAO,uBAAuB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAoD,EAAA;AACvG,QAAA,OAAO,IAAI,SAAS,CAAC,CAAA,EAAG,IAAI,mCAAmC,EAAE;YAC/D,cAAc;AACf,SAAA,CAAC;IACJ;IACA,OAAO,mBAAmB,CAAC,EACzB,UAAU,EACV,UAAU,EACV,cAAc,GAKf,EAAA;AACC,QAAA,OAAO,IAAI,SAAS,CAAC,CAAA,kCAAA,EAAqC,UAAU,CAAA,IAAA,EAAO,UAAU,CAAA,CAAE,EAAE,EAAE,cAAc,EAAE,CAAC;IAC9G;AACD;AAEK,MAAO,gBAAiB,SAAQ,SAAS,CAAA;AACpC,IAAA,OAAO;AAChB,IAAA,WAAA,CAAY,OAAgB,EAAA;AAC1B,QAAA,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;AACvE,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;AACD;AAED;;AAEG;AACG,MAAO,aAAc,SAAQ,SAAS,CAAA;AAC1C,IAAA,OAAO,mBAAmB,GAAA;AACxB,QAAA,OAAO,IAAI,aAAa,CAAC,4BAA4B,CAAC;IACxD;AACD;AACK,MAAO,YAAa,SAAQ,SAAS,CAAA;IACzC,WAAA,CAAY,WAAmB,EAAE,OAA0B,EAAA;AACzD,QAAA,KAAK,CAAC,CAAA,eAAA,EAAkB,WAAW,EAAE,EAAE,OAAO,CAAC;IACjD;AACD;AAOM,MAAM,UAAU,GAAG,CAAC,KAAY,KAAW;AAChD,IAAA,MAAM,KAAK;AACb;MACa,eAAe,GAAG,CAAI,IAAa,EAAE,cAA8B,KAAI;AAClF,IAAA,IAAI;QACF,OAAO,IAAI,EAAE;IACf;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,IAAI,CAAC,YAAY,KAAK,EAAE;AACtB,YAAA,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC9D;aAAO;AACL,YAAA,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC;QACpD;IACF;AACF;;ACnGA,MAAM,eAAe,GAAG,kCAAkC,CAAC,KAAK,CAAC,EAAE,CAAC;AAEpE,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,EAAE,EAA4B,CAAC;AAEjH,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAgB;IAC9D,IAAI,QAAQ,GAAG;SACZ,KAAK,CAAC,EAAE;SACR,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG;AACvB,SAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACT,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE;QAC9B,IAAI,MAAM,IAAI,WAAW;AAAE,YAAA,OAAO,WAAW,CAAC,MAAM,CAAC;AACrD,QAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA,CAAE,CAAC;AAC7C,IAAA,CAAC,CAAC;AACJ,IAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAU;AACjC,IAAA,OAAO,QAAQ,CAAC,MAAM,EAAE;QACtB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ;AAClD,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE;AACxC,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;QACnD,IAAI,CAAC,KAAK,SAAS;YAAE;AACrB,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE;QACxC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;QACnD,IAAI,CAAC,KAAK,SAAS;YAAE;AACrB,QAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QAChC,QAAQ,GAAG,IAAI;IACjB;AACA,IAAA,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;AAC9B;AAEO,MAAM,kBAAkB,GAAG,CAAC,KAAiB,KAAY;IAC9D,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC,IAAI,SAAS,GAAG,EAAE;AAClB,IAAA,OAAO,QAAQ,CAAC,MAAM,EAAE;AACtB,QAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAE5D,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE;AACzB,QAAA,SAAS,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC;QACrC,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAChE,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE;QACzB,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5C,QAAA,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACzD,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE;AACzB,QAAA,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACzD,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE;QACzB,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5C,QAAA,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACzD,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE;AACzB,QAAA,SAAS,IAAI,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;QACpC,QAAQ,GAAG,IAAI;IACjB;AACA,IAAA,OAAO,SAAS;AAClB;;ACrDA;;;;;;AAMG;AAIH,MAAM,QAAQ,GAAG,kEAAkE,CAAC,KAAK,CAAC,EAAE,CAAC;AAE7F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAE7C,SAAS,aAAa,CAAC,CAAS,EAAA;AAC9B,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,CAAA,EAAG,CAAC,CAAA,qCAAA,CAAuC,CAAC,CAAC;AAC/F;AAEM,SAAU,kBAAkB,CAAC,KAAa,EAAA;AAC9C,IAAA,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM;AACzB,IAAA,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;QACpB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACjC,QAAA,MAAM,GAAG,KAAK,CAAC,MAAM;IACvB;AACA,IAAA,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;IACtD;IAEA,IAAI,UAAU,GAAG,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC;AAClB,IAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,IAAI,UAAU,GAAG,CAAC;AAClB,IAAA,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAA,OAAO,EAAE,QAAQ,GAAG,MAAM,EAAE;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,CAAA,kBAAA,EAAqB,CAAC,gBAAgB,QAAQ,CAAA,CAAE,CAAC,CAAC;AAC1G,QAAA,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM;;AAE/D,QAAA,IAAI,UAAU,EAAE,GAAG,CAAC,EAAE;;YAEpB,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,IAAI,UAAU,KAAK,CAAC,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC;QACvE;IACF;AACA,IAAA,OAAO,MAAM;AACf;AAEM,SAAU,kBAAkB,CAAC,KAAiB,EAAA;AAClD,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;IAChC,IAAI,MAAM,GAAG,EAAE;AACf,IAAA,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAA,IAAI,CAAC;AACL,IAAA,IAAI,CAAC;AACL,IAAA,IAAI,CAAC;AACL,IAAA,IAAI,MAAM;;AAEV,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO;AAErC,IAAA,OAAO,EAAE,QAAQ,GAAG,MAAM,EAAE;;AAE1B,QAAA,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;QACzB,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC1B,QAAA,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC;AACrB,QAAA,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;;;QAGlB,MAAM;YACJ,aAAa,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC;gBACpC,aAAa,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC;gBACpC,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC;AACnC,gBAAA,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;IAChC;AAEA,IAAA,IAAI,OAAO,KAAK,CAAC,EAAE;AACjB,QAAA,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AACxB,QAAA,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC;AACrB,QAAA,MAAM,GAAG,CAAC,GAAG,CAAC;AACd,QAAA,MAAM,IAAI,CAAA,EAAG,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;IACzH;AAAO,SAAA,IAAI,OAAO,KAAK,CAAC,EAAE;AACxB,QAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;QACxB,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;IACnF;AAEA,IAAA,OAAO,MAAM;AACf;;ACvEA,MAAM,cAAe,SAAQ,aAAa,CAAA;AAAG;AAE7C;;;;;;;AAOG;SACa,SAAS,CAAC,SAAkB,EAAE,OAAe,EAAE,cAA+B,EAAA;IAC5F,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC;IACvD;AACF;AAEA;;;;;;AAMG;SACa,aAAa,CAAC,SAAkB,EAAE,OAAe,EAAE,cAA+B,EAAA;IAChG,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE;YAC3B,cAAc;AACf,SAAA,CAAC;IACJ;AACF;AAEO,MAAM,aAAa,GAAG,CAC3B,KAAa,EACb,QAAwC,EACxC,OAAA,GAAkB,sBAAsB,KACtC;AACF,IAAA,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;AACpD,QAAA,OAAO,KAAc;IACvB;IACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC;AACxC;AAEO,MAAM,gBAAgB,GAAG,CAC9B,KAAa,EACb,QAA+B,EAC/B,OAAA,GAAkB,sBAAsB,KACtC;AACF,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;IACvE,IAAI,GAAG,EAAE;AACP,QAAA,OAAO,GAAG;IACZ;IACA,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC;AACxC;AAeO,MAAM,cAAc,GAAG,CAC5B,KAAc,EACd,QAAgC,EAChC,MAAgC,KACR;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,OAAO,SAAS;IAClB;AACA,IAAA,OAAO,MAAM,CAAC,UAAiC,CAAC;AAClD;AAEO,MAAM,gBAAgB,GAAG,CAAI,UAAmB,KAAS;AAC9D,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,UAAU,CAAC;AAC9D;AAEO,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAgB;AAC5D,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACjC,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9B;AAEO,MAAM,kBAAkB,GAAG,CAAC,CAAa,KAAY;;AAE1D,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AAChB,SAAA,UAAU;AACV,SAAA,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,KAAa,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAClE,SAAA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAChC;AAEO,MAAM,gBAAgB,GAAG,CAAC,KAAiB,KAAY;AAC5D,IAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACjC,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9B;AAEO,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,SAAA,GAAgC,SAAS,KAAgB;IACvG,IAAI,GAAG,KAAK,EAAE,IAAI,SAAS,KAAK,SAAS,EAAE;AACzC,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC;IAC1B;AACA,IAAA,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS,GAAG,IAAI,GAAG,SAAS;IAE3D,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;;AAG1B,IAAA,IAAI,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,GAAG,CAAC,EAAE;QAC3D,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC;IACxC;SAAO,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;;AAE/B,QAAA,GAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE;IACjB;IACA,IAAI,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE;QAC7B,MAAM,IAAI,aAAa,CAAC,CAAA,cAAA,EAAiB,GAAG,CAAA,IAAA,EAAO,QAAQ,CAAA,2BAAA,CAA6B,CAAC;IAC3F;IACA,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;AACtD,QAAA,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;IAClD;AACA,IAAA,OAAO,SAAS;AAClB;AAEO,MAAM,QAAQ,GAAG,CAAmB,KAAQ,EAAE,KAAQ,KAAc,CAAC,KAAK,GAAG,KAAK,MAAM;AACxF,MAAM,eAAe,GAAG,CAAmB,KAAQ,EAAE,KAAQ,KAAc,OAAO,CAAC,KAAK,GAAG,KAAK;AAEjG,SAAU,WAAW,CAAC,GAAW,EAAA;IACrC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACvH,IAAA,OAAO;SACJ,OAAO,CAAC,CAAC;SACT,KAAK,CAAC,EAAE;AACR,SAAA,GAAG,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAClC,IAAI,CAAC,EAAE,CAAC;AACb;SAEgB,aAAa,CAC3B,CAAU,EACV,GAAG,KAAQ,EAAA;AAEX,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C;AAEA;;;;;;;;AAQG;AACG,SAAU,iBAAiB,CAAC,QAAgB,EAAE,gBAA8B,EAAA;IAChF,MAAM,gBAAgB,GAAG,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,IAAI,gBAAgB,EAAE;QACpB,OAAO,CAAA,EAAG,SAAS,CAAC,aAAa,CAAA,CAAA,EAAI,gBAAgB,CAAC,CAAC,CAAC,CAAA,CAAE;IAC5D;IACA,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC/D,IAAI,cAAc,EAAE;AAClB,QAAA,OAAO,cAAc,CAAC,CAAC,CAAC;IAC1B;IACA,MAAM,GAAG,GAAGA,cAAK,CAAC,SAAS,CAAC,CAAA,EAAG,gBAAgB,CAAA,CAAA,CAAG,CAAC;IACnD,MAAM,cAAc,GAAGA,cAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;IAChD,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,cAAc;IACrG,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC;AAKO,MAAM,MAAM,GACjB,CAAU,WAA8B,EAAE,GAAA,GAAe,KAAK,KAC9D,CAAC,CAAI,EAAE,CAAI,KAAI;AACb,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;AAC3B,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC;AAC3B,IAAA,OAAO,CAAC,GAAG,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7E,CAAC;AA6BH;;;;;;;;;AASG;AACI,MAAM,QAAQ,GAAG,CAAI,WAAkC,KAAI;AAChE,IAAA,MAAM,EAAE,GAAkB,CAAC,CAAC,CAAI,KAAK,CAAC,CAAC;AACvC,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE;IACrB,OAAO,CAAC,IAAO,KAAI;QACjB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;AACrB,YAAA,OAAO,KAAK;QACd;QAEA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACjB,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AACH;AAEO,MAAM,kBAAkB,GAAG,CAAI,QAAiC,KAAI;IACzE,MAAM,GAAG,GAAQ,EAAE;IACnB,OAAO,CAAC,IAAO,KAAI;AACjB,QAAA,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;AACpD,QAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACd,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AACH,CAAC;AAEK,SAAU,gBAAgB,CAAC,GAAW,EAAA;IAC1C,IAAI,CAACC,WAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACvBA,WAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACxC;AACF;AAEM,SAAU,QAAQ,CAAI,CAAc,EAAE,CAAc,EAAA;AACxD,IAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACvB,IAAA,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;AACvB,IAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;AACnD;MAEa,SAAS,GAAG,CAAS,MAAY,EAAE,MAAY,KAAgB;IAC1E,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC;IACtE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACnD;AAEM,SAAU,IAAI,CAAmC,OAAiB,EAAE,KAAuB,EAAA;AAC/F,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC;AACzC;;AC/QA;;;;;AAKE;AAEF;AACA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE;AACxB,IAAA,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,KAAK,EAAA;;AAEnC,QAAA,IAAI,aAAgC;AACpC,QAAA,IAAI,KAAK,YAAY,GAAG,EAAE;YACxB,aAAa,GAAG,KAAK;QACvB;aAAO,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE;AAClE,YAAA,aAAa,GAAG,KAAK,CAAC,MAAM,EAAE;QAChC;aAAO;AACL,YAAA,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC;QAC3D;QAEA,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC;AAC7C,IAAA,CAAC;AACH;AAEA;AACA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE;AAC/B,IAAA,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,KAAK,EAAA;QAC1C,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,IAAA,CAAC;AACH;AAEA;AACA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE;AAC7B,IAAA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAA;QACxC,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,IAAA,CAAC;AACH;AAEA;AACA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE;AACtC,IAAA,GAAG,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,KAAK,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACrC,QAAA,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;AAC3F,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AAAE,gBAAA,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC;AACA,QAAA,OAAO,MAAM;AACf,IAAA,CAAC;AACH;AAEA;AACA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;IAC1B,OAAO,CAAC,aAAa,GAAG,YAAA;AACtB,QAAA,IAAI,OAAO,GAAuC,SAAU,EAC1D,MAAM,GAAsC,SAAU;QACxD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,KAAI;YAC1C,OAAO,GAAG,GAAG;YACb,MAAM,GAAG,GAAG;AACd,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACrC,IAAA,CAAC;AACH;AAEA;AACA,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AACvE,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE;AAC7B,IAAA,oBAAoB,CAAC,GAAG,GAAG,WAEzB,UAAgD,EAAA;QAEhD,IAAI,CAAC,GAAG,CAAC;AACT,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACvB,YAAA,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7B;AACF,IAAA,CAAC;AACH;;MCxEa,YAAY,CAAA;AACH,IAAA,KAAA;AAApB,IAAA,WAAA,CAAoB,KAAa,EAAA;QAAb,IAAA,CAAA,KAAK,GAAL,KAAK;IAAW;AAEpC,IAAA,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAqD,EAAA;AAC1F,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;AAEvE,QAAA,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC;IAC5B;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;AAEA,IAAA,QAAQ,CAAC,GAAY,EAAA;QACnB,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;IACxC;IAEA,UAAU,CAAC,WAAmB,EAAE,YAAoB,EAAA;AAClD,QAAA,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3E;IAEA,IAAI,CAAC,GAAG,KAAe,EAAA;AACrB,QAAA,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;IAC3D;AAEA,IAAA,MAAM,CAAC,KAA4B,EAAA;QACjC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;IACpD;AAEA,IAAA,UAAU,CAAC,KAA4B,EAAA;AACrC,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;IACjE;AAEA;;;AAGG;AACH,IAAA,OAAO,CAAC,YAAoB,EAAA;AAC1B,QAAA,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAClE;AACD;AAED,SAAS,eAAe,CAAC,IAA2B,EAAA;AAClD,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IACvC;AACA,IAAA,OAAO,IAAI;AACb;;MC7Ca,cAAc,CAAA;AACzB,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,SAAS;AACT,IAAA,KAAK;AACL,IAAA,IAAI;AAEJ;;AAEG;IACH,QAAQ,GAAA;QACN,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAI,CAAC;AAC5D,QAAA,OAAO,IAA+B;IACxC;AAEA,IAAA,WAAA,CAAY,KAQX,EAAA;QACC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,oCAAoC,CAAC;AAC5E,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO;YAAE,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE,wCAAwC,CAAC;QACtH,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;;AAGtB,QAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;AACnC,YAAA,UAAU,EAAE,KAAK;AAClB,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AAClC,YAAA,UAAU,EAAE,KAAK;AAClB,SAAA,CAAC;IACJ;IAEQ,OAAO,cAAc,CAAC,IAAa,EAAA;AACzC,QAAA,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;AAC/B,YAAA,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D;AACA,QAAA,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE;YAClE,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;QACjD;QACA,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACrF,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;QACtD;AACA,QAAA,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC1B,OAAO,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC;QAC1D;QAEA,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACtB,YAAA,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;SACnB;IACH;AAEA,IAAA,OAAO,QAAQ,CAAwB,IAAW,EAAE,gBAA8B,EAAA;AAChF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE;AAEvC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC;QAE1D,MAAM,QAAQ,GAAG,UAAU,CAAC,6BAA6B,CAAC,KAAK,CAAC;QAChE,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,GAAG,CAAC;QAE5D,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAC7F,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;AACvB,YAAA,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;YACxB,MAAM,EAAE,QAAQ,CAAC,SAAS;YAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;AAC3B,YAAA,KAAK,EAAE,OAAO;YACd,IAAI;AACL,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,QAAQ,CAAC,UAAyB,EAAE,gBAA8B,EAAA;AACvE,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,MAAM,CAAC;QAC/D,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAC7F,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;AACxB,YAAA,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,MAAM,CAAC,SAAS;AAC3B,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,IAAI,EAAE,SAAS;AAChB,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,aAAa,CAAC,UAAyB,EAAE,SAAuB,EAAE,gBAA8B,EAAA;QACrG,MAAM,QAAQ,GAAG,UAAU,CAAC,6BAA6B,CAAC,SAAS,CAAC,GAAG,CAAC;QACxE,MAAM,MAAM,GAAG,UAAU,CAAC,6BAA6B,CAAC,SAAS,CAAC,GAAG,CAAC;QAEtE,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAC7F,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;AACvB,YAAA,OAAO,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;YACxB,MAAM,EAAE,QAAQ,CAAC,SAAS;YAC1B,SAAS,EAAE,MAAM,CAAC,SAAS;AAC3B,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,SAAS;AAChB,SAAA,CAAC;IACJ;AAEA,IAAA,OAAO,cAAc,CAAC,UAAqC,EAAE,gBAA8B,EAAA;AACzF,QAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,KAAK,CAAC;QAEhF,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;AAClG,YAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;AACvB,YAAA,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC;YAC1B,MAAM,EAAE,QAAQ,CAAC,SAAS;YAC1B,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC7B,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,IAAI,EAAE,SAAS;AAChB,SAAA,CAAC;IACJ;AAEA,IAAA,QAAQ,CAAC,OAA4C,EAAA;QACnD,MAAM,QAAQ,GAAG,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE;AAClH,QAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;IACtD;AAEA,IAAA,OAAO,IAAI,GAAG,IAAI,cAAc,CAAC;AAC/B,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,OAAO,EAAE,CAAC;AACV,QAAA,MAAM,EAAE,CAAC;AACT,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA,CAAC;;AAGJ,SAAS,uBAAuB,CAAC,EAAW,EAAE,EAAY,EAAA;IACxD,OAAO;AACL,QAAA,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE;QACpB,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;KACnE;AACH;;ICrJY;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,kBAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACZ,IAAA,kBAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;AACd,IAAA,kBAAA,CAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB;AACrB,IAAA,kBAAA,CAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAqB;AACvB,CAAC,EAPW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;AAS9B,MAAM,SAAS,CAAA;AACb;;;;AAIG;IACH,QAAQ,GAAG,IAAI;AAChB;AAEK,MAAO,iBAAkB,SAAQ,SAAS,CAAA;AAC9C,IAAA,WAAA,CAAY,EAAE,SAAS,EAAE,UAAU,EAA6C,EAAA;AAC9E,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAC9B;AACS,IAAA,SAAS;AACT,IAAA,UAAU;AAEnB,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAA,CAAE;IAChD;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,EAAE;IAChB;IAEA,OAAO,SAAS,CAAC,aAAiC,EAAA;QAChD,OAAO,IAAI,iBAAiB,CAAC;YAC3B,SAAS,EAAE,aAAa,CAAC,IAAI;YAC7B,UAAU,EAAE,aAAa,CAAC,MAAM;AACjC,SAAA,CAAC;IACJ;AACD;AACK,MAAO,iBAAkB,SAAQ,SAAS,CAAA;AAC9C,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,UAAU,EAAwC,EAAA;AACpE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;IAC9B;AACS,IAAA,IAAI;AACJ,IAAA,UAAU;AAEnB,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,CAAA,EAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;IAC3C;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,EAAE;IAChB;IAEA,OAAO,SAAS,CAAC,aAA4B,EAAA;QAC3C,OAAO,IAAI,iBAAiB,CAAC;YAC3B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,UAAU,EAAE,aAAa,CAAC,MAAM;AACjC,SAAA,CAAC;IACJ;AACD;IAEW;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,eAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO;AACP,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;AACV,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,eAAA,CAAA,eAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACV,CAAC,EAPW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACjE3B;AACM,IAAW;AAAjB,CAAA,UAAiB,MAAM,EAAA;AACrB,IAAA,MAAa,KAAK,CAAA;AAChB,QAAA,WAAA,CAAY,KAA4C,EAAA;AACtD,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;YACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI;QAC1C;AAES,QAAA,IAAI;AACJ,QAAA,SAAS;AAElB,QAAA,MAAM,CAAC,KAAY,EAAA;AACjB,YAAA,OAAO,KAAK,YAAY,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;QACtE;QAEA,QAAQ,GAAA;YACN,OAAO,IAAI,CAAC,IAAI;QAClB;AACD;AAhBY,IAAA,MAAA,CAAA,KAAK,QAgBjB;IAEY,MAAA,CAAA,SAAS,GAAG,IAAI,KAAK,CAAC;AACjC,QAAA,IAAI,EAAE,MAAM;AACb,KAAA,CAAC;IACW,MAAA,CAAA,SAAS,GAAG,IAAI,KAAK,CAAC;AACjC,QAAA,IAAI,EAAE,MAAM;AACb,KAAA,CAAC;IACW,MAAA,CAAA,WAAW,GAAG,IAAI,KAAK,CAAC;AACnC,QAAA,IAAI,EAAE,QAAQ;AACf,KAAA,CAAC;IACW,MAAA,CAAA,gBAAgB,GAAG,IAAI,KAAK,CAAC;AACxC,QAAA,IAAI,EAAE,cAAc;AACrB,KAAA,CAAC;IAEW,MAAA,CAAA,aAAa,GAAG,IAAI,KAAK,CAAC;AACrC,QAAA,IAAI,EAAE,WAAW;AAClB,KAAA,CAAC;IACW,MAAA,CAAA,WAAW,GAAG,IAAI,KAAK,CAAC;AACnC,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA,CAAC;IACW,MAAA,CAAA,WAAW,GAAG,IAAI,KAAK,CAAC;AACnC,QAAA,IAAI,EAAE,QAAQ;AACf,KAAA,CAAC;IACW,MAAA,CAAA,YAAY,GAAG,IAAI,KAAK,CAAC;AACpC,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA,CAAC;IACW,MAAA,CAAA,UAAU,GAAG,IAAI,KAAK,CAAC;AAClC,QAAA,IAAI,EAAE,OAAO;AACd,KAAA,CAAC;IAEW,MAAA,CAAA,YAAY,GAAG,IAAI,KAAK,CAAC;AACpC,QAAA,IAAI,EAAE,SAAS;AAChB,KAAA,CAAC;IACW,MAAA,CAAA,gBAAgB,GAAG,IAAI,KAAK,CAAC;AACxC,QAAA,IAAI,EAAE,aAAa;AACpB,KAAA,CAAC;IAEF,MAAa,UAAW,SAAQ,KAAK,CAAA;AAC1B,QAAA,MAAM;AAEf,QAAA,WAAA,CAAY,IAAgC,EAAA;AAC1C,YAAA,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI;AACnC,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,GAAG,CAAA,MAAA,EAAS,MAAM,CAAA,CAAA,CAAG;AACpD,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACtB;AACD;AAXY,IAAA,MAAA,CAAA,UAAU,aAWtB;AACY,IAAA,MAAA,CAAA,UAAU,GAAG,IAAI,UAAU,EAAE;IAE1C,MAAa,QAAS,SAAQ,KAAK,CAAA;AACjC;;;;AAIG;AACM,QAAA,SAAS;AAClB,QAAA,WAAA,CAAY,EAAE,SAAS,EAAE,GAAG,IAAI,EAAoE,EAAA;AAClG,YAAA,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI;QACpC;AACD;AAXY,IAAA,MAAA,CAAA,QAAQ,WAWpB;IAED,MAAa,MAAO,SAAQ,KAAK,CAAA;AAC/B,QAAA,KAAK;AACL,QAAA,KAAK;AACL,QAAA,WAAA,CAAY,KAA0D,EAAA;AACpE,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO;AAC3B,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,YAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AACf,gBAAA,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,+CAA+C,CAAC;AACrG,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;YAC1B;QACF;AAEA,QAAA,MAAM,CAAC,KAAY,EAAA;AACjB,YAAA,IAAI,KAAK,YAAY,MAAM,EAAE;AAC3B,gBAAA,QACE,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;oBACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,qBAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;YAEvF;AACA,YAAA,OAAO,KAAK;QACd;QAEA,QAAQ,GAAA;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI;AAC7D,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,OAAO,CAAA,EAAG,WAAW,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAA,EAAG,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC7F;YACA,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;QACzE;AACD;AAjCY,IAAA,MAAA,CAAA,MAAM,SAiClB;IAED,MAAsB,WAAY,SAAQ,KAAK,CAAA;AACpC,QAAA,WAAW;AACX,QAAA,cAAc;AACvB,QAAA,WAAA,CAAsB,KAAyE,EAAA;AAC7F,YAAA,KAAK,CAAC;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;AACjB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ;YACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI;QACpD;AACD;AAVqB,IAAA,MAAA,CAAA,WAAW,cAUhC;IAED,MAAa,cAAe,SAAQ,WAAW,CAAA;QACpC,SAAS,GAAG,KAAK;AAC1B,QAAA,WAAA,CAAY,KAA+E,EAAA;AACzF,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,CAAA,UAAA,EAAa,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAA,CAAA,CAAG;AACzC,gBAAA,GAAG,KAAK;AACT,aAAA,CAAC;QACJ;AACD;AARY,IAAA,MAAA,CAAA,cAAc,iBAQ1B;IAED,MAAa,YAAa,SAAQ,KAAK,CAAA;AAC5B,QAAA,YAAY;AACrB,QAAA,WAAA,CAAY,KAA8B,EAAA;AACxC,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,CAAA,YAAA,EAAe,KAAK,CAAC,YAAY,CAAC,IAAI,CAAA,CAAA,CAAG;AAC/C,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;QACxC;AACD;AATY,IAAA,MAAA,CAAA,YAAY,eASxB;IACD,MAAa,iBAAkB,SAAQ,KAAK,CAAA;AAC1C,QAAA,eAAe;QACf,WAAA,CAAY,EAAE,eAAe,EAAyC,EAAA;AACpE,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,eAAe,KAAK,SAAS,GAAG,mBAAmB,GAAG,CAAA,kBAAA,EAAqB,eAAe,CAAC,eAAe,CAAC,CAAA,CAAE;AACpH,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI;QAChD;AACD;AARY,IAAA,MAAA,CAAA,iBAAiB,oBAQ7B;IACD,MAAa,iBAAkB,SAAQ,KAAK,CAAA;AAC1C,QAAA,eAAe;QACf,WAAA,CAAY,EAAE,eAAe,EAAyC,EAAA;AACpE,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,eAAe,KAAK,SAAS,GAAG,mBAAmB,GAAG,CAAA,kBAAA,EAAqB,eAAe,CAAC,eAAe,CAAC,CAAA,CAAE;AACpH,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI;QAChD;AACD;AARY,IAAA,MAAA,CAAA,iBAAiB,oBAQ7B;IACD,MAAa,uBAAwB,SAAQ,KAAK,CAAA;AAChD,QAAA,eAAe;AACf,QAAA,WAAA,CAAY,EAAE,eAAe,EAAE,IAAI,EAAwD,EAAA;AACzF,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,eAAe,KAAK,SAAS,GAAG,0BAA0B,GAAG,CAAA,yBAAA,EAA4B,eAAe,CAAC,eAAe,CAAC,CAAA,CAAE;AAClI,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI;QAChD;AACD;AARY,IAAA,MAAA,CAAA,uBAAuB,0BAQnC;IAED,MAAa,8BAA+B,SAAQ,uBAAuB,CAAA;AACzE,QAAA,UAAU;QACV,WAAA,CAAY,EAAE,UAAU,EAA0B,EAAA;AAChD,YAAA,KAAK,CAAC;gBACJ,eAAe,EAAE,eAAe,CAAC,IAAI;AACrC,gBAAA,IAAI,EAAE,mCAAmC;AAC1C,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,MAAA,CAAA,SAAS;QAC3C;AACD;AATY,IAAA,MAAA,CAAA,8BAA8B,iCAS1C;IAED,MAAa,SAAU,SAAQ,QAAQ,CAAA;AAC5B,QAAA,CAAC;AACV,QAAA,WAAA,CAAY,EAAE,CAAC,EAAE,SAAS,EAAqC,EAAA;AAC7D,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,SAAS,GAAG,CAAA,KAAA,EAAQ,SAAS,CAAA,CAAE,GAAG,CAAA,SAAA,EAAY,CAAC,CAAA,CAAE;gBACvD,SAAS;AACV,aAAA,CAAC;YACF,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,2CAA2C,CAAC;YAC5E,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,uCAAuC,CAAC;AACjE,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC;QACZ;AACD;AAXY,IAAA,MAAA,CAAA,SAAS,YAWrB;IAED,MAAa,aAAc,SAAQ,QAAQ,CAAA;AAChC,QAAA,CAAC;AACD,QAAA,CAAC;AACV,QAAA,WAAA,CAAY,EAAE,CAAC,EAAE,CAAC,EAA4B,EAAA;AAC5C,YAAA,KAAK,CAAC;AACJ,gBAAA,IAAI,EAAE,CAAA,WAAA,EAAc,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE;AAC7B,aAAA,CAAC;YAEF,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,6CAA6C,CAAC;YAC9E,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,yCAAyC,CAAC;YACnE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,6CAA6C,CAAC;AAC9E,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC;AACV,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC;QACZ;AACD;AAdY,IAAA,MAAA,CAAA,aAAa,gBAczB;IAED,MAAa,UAAW,SAAQ,QAAQ,CAAA;AACtC,QAAA,MAAM;AACN,QAAA,cAAc;AACd,QAAA,MAAM;AACN,QAAA,IAAI;QAEJ,WAAA,CAAY,EACV,MAAM,EACN,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,MAAM,GAOP,EAAA;AACC,YAAA,KAAK,CAAC;gBACJ,IAAI;gBACJ,SAAS,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AACrE,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI;AAC5C,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAClB;AACD;AA5BY,IAAA,MAAA,CAAA,UAAU,aA4BtB;IACD,MAAa,SAAU,SAAQ,QAAQ,CAAA;AAC5B,QAAA,KAAK;AACL,QAAA,cAAc;AACd,QAAA,SAAS;AAElB,QAAA,WAAA,CAAY,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAA2E,EAAA;YACvH,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,YAAA,KAAK,CAAC;gBACJ,IAAI,EAAE,CAAA,WAAA,EAAc,QAAQ,CAAA,CAAA,CAAG;AAChC,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI;AAC5C,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;AACD;AAdY,IAAA,MAAA,CAAA,SAAS,YAcrB;IAED,MAAsB,SAAU,SAAQ,QAAQ,CAAA;AACrC,QAAA,WAAW;AACpB,QAAA,WAAA,CAAsB,KAA0F,EAAA;AAC9G,YAAA,KAAK,CAAC;AACJ,gBAAA,GAAG,KAAK;AACR,gBAAA,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK;AACpC,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QACtC;AACD;AATqB,IAAA,MAAA,CAAA,SAAS,YAS9B;IAED,MAAa,gBAAiB,SAAQ,SAAS,CAAA;AACpC,QAAA,cAAc;QACvB,WAAA,CAAY,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,SAAS,GAMV,EAAA;AACC,YAAA,KAAK,CAAC;gBACJ,WAAW;AACX,gBAAA,IAAI,EAAE,CAAA,mBAAA,EAAsB,WAAW,CAAC,IAAI,CAAA,CAAA,CAAG;gBAC/C,SAAS,EAAE,SAAS,IAAI,IAAI;gBAC5B,SAAS;AACV,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI;QAC9C;AACD;AArBY,IAAA,MAAA,CAAA,gBAAgB,mBAqB5B;IACD,MAAa,eAAgB,SAAQ,SAAS,CAAA;AACnC,QAAA,cAAc;AACd,QAAA,SAAS;QAClB,WAAA,CAAY,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,GAOV,EAAA;AACC,YAAA,KAAK,CAAC;gBACJ,WAAW;AACX,gBAAA,IAAI,EAAE,CAAA,kBAAA,EAAqB,WAAW,CAAC,IAAI,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,CAAG;gBAC3D,SAAS,EAAE,SAAS,IAAI,IAAI;gBAC5B,SAAS;AACV,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI;AAC5C,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;QAC5B;AACD;AAzBY,IAAA,MAAA,CAAA,eAAe,kBAyB3B;IAEY,MAAA,CAAA,kBAAkB,GAAG,IAAI,SAAS,CAAC;AAC9C,QAAA,CAAC,EAAE,EAAE;AACL,QAAA,SAAS,EAAE,MAAM;AAClB,KAAA,CAAC;IACW,MAAA,CAAA,qBAAqB,GAAG,IAAI,eAAe,CAAC;AACvD,QAAA,SAAS,EAAE,GAAG;AACd,QAAA,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,OAAA,kBAAkB;AAC/B,QAAA,SAAS,EAAE,SAAS;AACrB,KAAA,CAAC;IAEW,MAAA,CAAA,gBAAgB,GAAG,IAAI,QAAQ,CAAC;AAC3C,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,SAAS,EAAE,IAAI;AAChB,KAAA,CAAC;IAEW,MAAA,CAAA,oBAAoB,GAAG,IAAI,gBAAgB,CAAC;AACvD,QAAA,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,OAAA,kBAAkB;AAC/B,QAAA,SAAS,EAAE,IAAI;AAChB,KAAA,CAAC;AACJ,CAAC,EAvVgB,MAAM,KAAN,MAAM,GAAA,EAAA,CAAA,CAAA;;ACCvB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAEjC;;AAEG;MACmB,KAAK,CAAA;AACzB,IAAA,OAAgB,QAAQ,GAAmB,OAAO;AA6BlD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;IACvC;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,SAAS,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,sBAAA,CAAwB,CAAC;QAC/D;QACA,OAAO,IAAI,CAAC,KAAK;IACnB;AAEA,IAAA,MAAM,CAAC,KAAY,EAAA;AACjB,QAAA,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;IACpC;IAEA,WAAW,CAAC,GAAG,MAAe,EAAA;AAC5B,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD;IAEA,OAAO,MAAM,CAAC,KAAY,EAAA;AACxB,QAAA,OAAO,KAAK,CAAC,WAAW,KAAK,IAAI;IACnC;AAEA,IAAA,kBAAkB,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,KAAK,YAAY,QAAQ,EAAE;YAC7B,OAAO,IAAI,YAAY,KAAK;QAC9B;AACA,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,IAAI;IAClB;IAEA,OAAO,eAAe;AAEtB,IAAA,OAAO,QAAQ,GAAA;QACb,OAAO,IAAI,EAAE,eAAe,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;IACvD;;AAOI,MAAO,YAAsC,SAAQ,KAAK,CAAA;AAC9D,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;IACnC;AACS,IAAA,CAAC,OAAO,IAAI,cAAc;AAC1B,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,IAAI;IAChB,KAAK,GAAG,SAAS;AACjB,IAAA,YAAY;AACrB,IAAA,WAAA,CAAY,KAAwF,EAAA;AAClG,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;IACxC;AACD;AAID,SAAS,cAAc,CAAC,IAAW,EAAE,KAAY,EAAA;IAC/C,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE;AAC1C,QAAA,OAAO,KAAK;IACd;AACA,IAAA,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;AACvC;AAEA,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAE9D,SAAS,UAAU,CAAC,GAAW,EAAA;AAC7B,IAAA,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC;AAEA,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa,EAAA;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3E,IAAA,IAAI,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;AAAE,QAAA,OAAO,KAAK;IAExD,OAAO,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAI;QACjF,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK;AAC/B,QAAA,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;AACtC,IAAA,CAAC,CAAC;AACJ;AAEA,SAAS,aAAa,CAAC,IAAa,EAAE,KAAc,EAAA;;IAElD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE;QAC9C,OAAO,IAAI,KAAK,KAAK;IACvB;AACA,IAAA,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,OAAO,KAAK,KAAK,IAAI;IACvB;;AAEA,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjH;;AAEA,IAAA,IAAI,IAAI,YAAY,KAAK,EAAE;QACzB,OAAO,KAAK,YAAY,KAAK,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;IAC9D;AACA,IAAA,IAAI,IAAI,YAAY,MAAM,CAAC,KAAK,EAAE;AAChC,QAAA,OAAO,KAAK,YAAY,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC5D;AACA,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;AACtF;;MCtJa,UAAU,CAAA;AACL,IAAA,MAAM;AACN,IAAA,IAAI;AAEpB,IAAA,WAAA,CAAY,KAAuC,EAAA;AACjD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AAEA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAA,CAAE;IACvC;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,QAAQ;IACtB;AACD;;ACXM,MAAM,mBAAmB,GAAG;AACjC,IAAA,aAAa,EAAE,CAAC,QAAQ,MAAM;QAC5B,UAAU,EAAE,CAAA,EAAA,EAAK,QAAQ,CAAA,gIAAA,CAAkI;QAC3J,gBAAgB,EAAE,CAAA,qBAAA,EAAwB,QAAQ,CAAA,iIAAA,CAAmI;KACtL,CAAC;AACF,IAAA,UAAU,EAAE,CAAC,QAAQ,MAAM;QACzB,UAAU,EAAE,CAAA,iGAAA,EAAoG,QAAQ,CAAA,CAAE;QAC1H,gBAAgB,EAAE,CAAA,sEAAA,EAAyE,QAAQ,CAAA,CAAE;KACtG,CAAC;AACF,IAAA,iBAAiB,EAAE,CAAC,QAAQ,MAAM;QAChC,UAAU,EAAE,CAAA,wGAAA,EAA2G,QAAQ,CAAA,CAAE;QACjI,gBAAgB,EAAE,CAAA,sDAAA,EAAyD,QAAQ,CAAA,CAAE;KACtF,CAAC;AACF,IAAA,cAAc,EAAE,CAAC,QAAQ,MAAM;AAC7B,QAAA,UAAU,EAAE,CAAA,EAAG,QAAQ,CAAA,4KAAA,EAA+K,QAAQ,CAAA,EAAA,CAAI;QAClN,gBAAgB,EAAE,CAAA,EAAG,QAAQ,CAAA,2GAAA,CAA6G;KAC3I,CAAC;;;AClBG,MAAM,OAAO,GAAG,CAAC,MAAa,EAAE,GAAG,MAA2B,KAAa;AAChF,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C;AAEM,SAAU,kBAAkB,CAAC,gBAAuC,EAAA;AACxE,IAAA,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB;AAC9C,SAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,EAAE;SAC3B,IAAI,CAAC,GAAG,CAAC;IACZ,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AACxC,IAAA,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC;AAC9B,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE;AACzD;;ACXM,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AACjC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,mBAAmB;AACtC,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,OAAO;IACP,SAAS,GAAG,IAAI;AAEzB,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAsE,EAAA;AACvG,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC;IAC7C;AACD;;ACtBD;AAIO,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC;AAC/C,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,CAAA,EAAG,SAAS,CAAC,aAAa,CAAA,QAAA,CAAU;AAC5C,IAAA,OAAO,EAAE;QACP,CAAC,aAAa,EAAE,aAAa,CAAC;QAC9B,CAAC,aAAa,EAAE,aAAa,CAAC;AAC/B,KAAA;AACF,CAAA;AACM,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC;AAC3C,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,MAAM,EAAE,CAAA,EAAG,SAAS,CAAC,aAAa,CAAA,QAAA,CAAU;AAC5C,IAAA,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,aAAa,EAAE,aAAa,CAAC;QAC9B,CAAC,aAAa,EAAE,aAAa,CAAC;AAC/B,KAAA;AACF,CAAA;AACM,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC;AAC9C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,CAAA,EAAG,SAAS,CAAC,aAAa,CAAA,QAAA,CAAU;AAC5C,IAAA,OAAO,EAAE;QACP,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,WAAW,EAAE,WAAW,CAAC;AAC3B,KAAA;AACF,CAAA;AACM,MAAM,uBAAuB,GAAG,IAAI,iBAAiB,CAAC;AAC3D,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,MAAM,EAAE,CAAA,EAAG,SAAS,CAAC,aAAa,CAAA,QAAA,CAAU;AAC5C,IAAA,OAAO,EAAE;QACP,CAAC,YAAY,EAAE,YAAY,CAAC;QAC5B,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;AACrC,KAAA;AACF,CAAA;AACM,MAAM,cAAc,GAAG,IAAI,iBAAiB,CAAC;AAClD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,CAAA,EAAG,SAAS,CAAC,aAAa,CAAA,QAAA,CAAU;AAC5C,IAAA,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAA;AACM,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,cAAc;;ACxBtG;;AAEG;AACG,MAAgB,aAAc,SAAQ,KAAK,CAAA;AACtC,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,SAAS;AACT,IAAA,WAAW;AACX,IAAA,iBAAiB;IAE1B,WAAA,CAAY,EACV,IAAI,EACJ,MAAM,EACN,SAAS,EACT,WAAW,EACX,iBAAiB,GAOlB,EAAA;AACC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;IAC5C;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;IACvC;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACzC;AACD;AAEK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAC/B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,iBAAiB;IACpC,KAAK,GAAc,SAAS;AAC5B,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,KAAK;AAC1B,IAAA,SAAS;AAET,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAuD,EAAA;AACzF,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC3B;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ;IACzC;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,MAAM,IAAI,YAAY,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAA,iBAAA,CAAmB,CAAC;IACtE;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AAEK,MAAO,4BAA6B,SAAQ,aAAa,CAAA;AACpD,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,8BAA8B;AAC1D,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAoC,EAAA;QAC5D,MAAM,MAAM,GAAG,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC;AACvD,QAAA,KAAK,CAAC;YACJ,IAAI;YACJ,MAAM;AACN,YAAA,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,MAAM,CAAC,gBAAgB;YAC1C,WAAW,EAAE,MAAM,CAAC,UAAU;AAC/B,SAAA,CAAC;IACJ;AACD;AAEK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAC7B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,eAAe;IAClC,KAAK,GAAG,SAAS;AACjB,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,IAAI;AAChB,IAAA,cAAc;AACd,IAAA,QAAQ;AACjB,IAAA,WAAA,CAAY,KAAiG,EAAA;AAC3G,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;IAC5C;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACzC;AACD;AAEM,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC;AAChD,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ;IAC7C,cAAc,EAAE,cAAc,CAAC,IAAI;AACpC,CAAA;AAEK,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAClC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB;IACvC,KAAK,GAAG,SAAS;AACjB,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,OAAO;IACP,SAAS,GAAG,IAAI;AAChB,IAAA,SAAS;AACT,IAAA,cAAc;AAEvB,IAAA,WAAA,CAAY,KAOX,EAAA;AACC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;IAC5C;AAEA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC7C;AAEA,IAAA,CAAC,QAAQ,GAAA;AACP,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAA,MAAM,CAAC;AACP,YAAA,OAAO,CAAC,CAAC,QAAQ,EAAE;QACrB;IACF;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;AACD;AAEK,MAAO,0BAA2B,SAAQ,kBAAkB,CAAA;AAChE,IAAA,WAAA,CAAY,KAAkH,EAAA;AAC5H,QAAA,KAAK,CAAC;AACJ,YAAA,GAAG,KAAK;YACR,IAAI,EAAE,qBAAqB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AAC9E,YAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ;YACtC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YACjF,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AACxF,SAAA,CAAC;IACJ;AACD;AAEK,MAAO,qBAAsB,SAAQ,kBAAkB,CAAA;AAClD,IAAA,OAAO;AAChB,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,WAAA,CAAY,EACV,MAAM,EACN,GAAG,IAAI,EASR,EAAA;QACC,KAAK,CAAC,IAAI,CAAC;AACX,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;IACvB;AACD;AAEK,MAAO,iBAAkB,SAAQ,aAAa,CAAA;AACzC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,mBAAmB;AAC/C,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7C;IACS,SAAS,GAAG,KAAK;AACjB,IAAA,KAAK;IAEd,WAAA,CAAoB,EAAE,KAAK,EAAsB,EAAA;AAC/C,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,QAAA,KAAK,CAAC;YACJ,IAAI;AACJ,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,UAAU;YACnE,iBAAiB,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,gBAAgB;AAChF,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;IAEA,OAAO,SAAS,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,aAAa,CAAC,0CAA0C,CAAC;QACrE;AACA,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjH,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,aAAa,CAAC,CAAC,CAAC;QACzB;QACA,OAAO,IAAI,iBAAiB,CAAC;AAC3B,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC;IACJ;AACD;AAEK,MAAO,UAAW,SAAQ,aAAa,CAAA;AAClC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY;AACxC,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7C;IACS,SAAS,GAAG,KAAK;AACjB,IAAA,KAAK;IAEd,WAAA,CAAoB,EAAE,KAAK,EAAsB,EAAA;AAC/C,QAAA,IAAI,WAAmB;AACvB,QAAA,IAAI,iBAAyB;AAC7B,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5C,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,aAAa,CAAC;QACnE,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,aAAa,CAAC,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE;gBACnG,WAAW,GAAG,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,UAAU;gBAChE,iBAAiB,GAAG,mBAAmB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,gBAAgB;YAC9E;iBAAO;AACL,gBAAA,WAAW,GAAG,aAAa,CAAC,WAAW;AACvC,gBAAA,iBAAiB,GAAG,aAAa,CAAC,iBAAiB;YACrD;QACF;aAAO;YACL,WAAW,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU;YAC7D,iBAAiB,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB;QAC3E;AACA,QAAA,KAAK,CAAC;YACJ,IAAI;AACJ,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,SAAS,EAAE,KAAK;YAChB,WAAW;YACX,iBAAiB;AAClB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;IAEA,OAAO,SAAS,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,aAAa,CAAC,mCAAmC,CAAC;QAC9D;AACA,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjH,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,aAAa,CAAC,CAAC,CAAC;QACzB;QACA,OAAO,IAAI,UAAU,CAAC;AACpB,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC;IACJ;AACD;AAED,MAAe,iBAAkB,SAAQ,KAAK,CAAA;AACnC,IAAA,KAAK;AACL,IAAA,WAAW;IACX,SAAS,GAAG,KAAK;AAE1B,IAAA,WAAA,CAAsB,KAAiD,EAAA;AACrE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO;IAClC;AACD;AACM,MAAM,kBAAkB,GAAG,IAAI,YAAY,CAAC;AACjD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;AAC1C,IAAA,YAAY,CAAC,QAA0B,EAAA;QACrC,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,qDAAqD,CAAC;QAC3F,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrB,SAAA,CAAC;IACJ,CAAC;AACF,CAAA;AACK,MAAO,eAAgB,SAAQ,iBAAiB,CAAA;AAC3C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,iBAAiB;AAC7C,IAAA,OAAgB,QAAQ,GAAG,aAAa;AACxC,IAAA,OAAgB,YAAY,GAAG,CAAA,EAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA,EAAA,EAAK,eAAe,CAAC,QAAQ,EAAE;IAC1F,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;AAC5D,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,CAAA,EAAG,eAAe,CAAC,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAA,CAAG;IAChE;AACA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,eAAe,CAAC,YAAY,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IACxE;AACA,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;IACrD;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;;AAEK,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAAC;AAChD,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;AAC1C,IAAA,YAAY,CAAC,QAA0B,EAAA;QACrC,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,oDAAoD,CAAC;QAC1F,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrB,SAAA,CAAC;IACJ,CAAC;AACF,CAAA;AACK,MAAO,cAAe,SAAQ,iBAAiB,CAAA;AAC1C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,gBAAgB;AAC5C,IAAA,OAAgB,QAAQ,GAAG,YAAY;AACvC,IAAA,OAAgB,YAAY,GAAG,CAAA,EAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA,EAAA,EAAK,cAAc,CAAC,QAAQ,EAAE;IACzF,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;AAC5D,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,CAAA,EAAG,cAAc,CAAC,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAA,CAAG;IAC/D;AACA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,cAAc,CAAC,YAAY,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IACvE;AACA,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;IACrD;IACA,OAAO,YAAY,CAAC,QAAiB,EAAA;QACnC,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,oDAAoD,CAAC;QAC1F,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrB,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC1C;;AAEK,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC;AACzC,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG;AACxC,IAAA,YAAY,CAAC,QAA0B,EAAA;AACrC,QAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,wCAAA,CAA0C,CAAC;QAC5F,OAAO,IAAI,QAAQ,CAAC;AAClB,YAAA,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrB,SAAA,CAAC;IACJ,CAAC;AACF,CAAA;AACK,MAAO,QAAS,SAAQ,iBAAiB,CAAA;AACpC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,UAAU;IAC7B,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG;AAC1D,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG;IACxC;AACA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG;IACrE;AACA,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IACnD;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;AACM,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC;AAC5C,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG;AACxC,IAAA,YAAY,CAAC,QAA0B,EAAA;AACrC,QAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,yCAAA,CAA2C,CAAC;QAC7F,OAAO,IAAI,WAAW,CAAC;AACrB,YAAA,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACpB,YAAA,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrB,SAAA,CAAC;IACJ,CAAC;AACF,CAAA;AACK,MAAO,WAAY,SAAQ,iBAAiB,CAAA;AACvC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,aAAa;IAChC,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG;AAC1D,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,EAAK,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG;IACjE;AACA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAA,EAAA,EAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IAC3F;AACS,IAAA,OAAO;AAChB,IAAA,WAAA,CAAY,KAAyC,EAAA;AACnD,QAAA,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;AACjD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AAGD;;AAEG;AACG,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AACjC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,mBAAmB;AACtC,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,KAAK;IACjB,KAAK,GAAG,SAAS;AAC1B,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAoC,EAAA;AAC5D,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC;IAC7C;AACD;AAED;;;AAGG;AACG,MAAO,YAAa,SAAQ,KAAK,CAAA;AAC5B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,cAAc;AACjC,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,KAAK;IACjB,KAAK,GAAG,SAAS;AAC1B,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAoC,EAAA;AAC5D,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AACM,MAAM,2BAA2B,GAAG,IAAI,YAAY,CAAC;AAC1D,IAAA,MAAM,EAAE,oCAAoC;AAC5C,IAAA,IAAI,EAAE,6BAA6B;AACpC,CAAA;AAEK,MAAO,QAAS,SAAQ,KAAK,CAAA;AACxB,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,UAAU;AACtC,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,MAAM,IAAI,SAAS,CAAC,wEAAwE,CAAC;IAC/F;IACS,IAAI,GAAG,KAAK;IACZ,MAAM,GAAG,UAAU;IACnB,SAAS,GAAG,KAAK;AAE1B,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;AAEK,MAAO,YAAa,SAAQ,KAAK,CAAA;AAC5B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,cAAc;AACjC,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,KAAK;AAE1B,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAyD,EAAA;AACxF,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AAEK,MAAO,yBAA0B,SAAQ,YAAY,CAAA;AAChD,IAAA,gBAAgB;AACzB,IAAA,WAAA,CAAY,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAmF,EAAA;QACzH,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;IAC1C;AACD;AAEK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAC/B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,iBAAiB;AACpC,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,IAAI;AAEzB,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAoC,EAAA;AAC5D,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,YAAa,SAAQ,KAAK,CAAA;AAC5B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,cAAc;AACjC,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,IAAI;AAEzB,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAoC,EAAA;AAC5D,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AACK,MAAO,UAAW,SAAQ,KAAK,CAAA;AAC1B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY;AAC/B,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,IAAI;AAEzB,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAoC,EAAA;AAC5D,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AAEK,MAAO,0BAA2B,SAAQ,KAAK,CAAA;AAC1C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,4BAA4B;AAC/C,IAAA,KAAK;AACL,IAAA,IAAI;IACJ,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;IAChD,SAAS,GAAG,IAAI;IAEzB,WAAA,CAAY,EAAE,IAAI,EAAoB,EAAA;AACpC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC;IACtD;AACD;AACK,MAAO,8BAA+B,SAAQ,KAAK,CAAA;AAC9C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,gCAAgC;AACnD,IAAA,KAAK;AACL,IAAA,IAAI;IACJ,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;IAChD,SAAS,GAAG,KAAK;IAE1B,WAAA,CAAY,EAAE,IAAI,EAAoB,EAAA;AACpC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,mCAAmC,CAAC,IAAI,CAAC;IAC1D;AACD;AACK,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AACrC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,uBAAuB;AAC1C,IAAA,KAAK;AACL,IAAA,IAAI;IACJ,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;IAChD,SAAS,GAAG,IAAI;IAEzB,WAAA,CAAY,EAAE,IAAI,EAAoB,EAAA;AACpC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACjD;AACD;AACK,MAAO,yBAA0B,SAAQ,KAAK,CAAA;AACzC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,2BAA2B;AAC9C,IAAA,KAAK;AACL,IAAA,IAAI;IACJ,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;IAChD,SAAS,GAAG,KAAK;IAE1B,WAAA,CAAY,EAAE,IAAI,EAAoB,EAAA;AACpC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC;IACrD;AACD;AAEM,MAAM,aAAa,GAAG,IAAI,qBAAqB,CAAC;AACrD,IAAA,IAAI,EAAE,OAAO;AACd,CAAA;AAEK,MAAO,cAAe,SAAQ,KAAK,CAAA;AAC9B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,gBAAgB;AACnC,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,MAAM;IACN,SAAS,GAAG,IAAI;AAEzB,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAoC,EAAA;AAC5D,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,KAAK;IAC5B;IAEA,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC1C;AACD;AAEK,MAAO,aAAc,SAAQ,KAAK,CAAA;AAC7B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,eAAe;AAClC,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,UAAU;IACV,SAAS,GAAG,IAAI;AAChB,IAAA,cAAc;AACd,IAAA,UAAU;AAEnB,IAAA,WAAA,CAAY,KAOX,EAAA;AACC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACzC;AACD;AACK,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AACjC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,mBAAmB;AAE/C,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,GAAA,EAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;IACnE;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU;IAC1E;IAES,SAAS,GAAG,KAAK;AACjB,IAAA,IAAI;IACJ,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG;AAC7C,IAAA,KAAK;AACd,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,IAAI,GAAG,CAAA,CAAA,EAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;AAE5D,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,KAAK;IAC1C;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC;IAC7C;IAEA,YAAY,GAAA;QACV,OAAO,IAAI,UAAU,CAAC;YACpB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,SAAA,CAAC;IACJ;IAEA,oBAAoB,GAAA;QAClB,OAAO,IAAI,kBAAkB,CAAC;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,SAAA,CAAC;IACJ;IACA,mBAAmB,GAAA;QACjB,OAAO,IAAI,iBAAiB,CAAC;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,SAAA,CAAC;IACJ;AACD;AAEK,MAAO,iBAAkB,SAAQ,KAAK,CAAA;AACjC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,mBAAmB;IACtC,MAAM,GAAW,UAAU;AAEpC,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;IACxD;AACA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,GAAA,EAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;IAC5E;AAES,IAAA,KAAK;IACL,SAAS,GAAG,KAAK;AAC1B,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC;AAC1B,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC5C,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC;IAC7C;AACD;AACK,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAClC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB;IACvC,MAAM,GAAW,UAAU;AAEpC,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,CAAA,UAAA,EAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;IACjE;AACA,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG;IACrF;AAES,IAAA,KAAK;IACL,SAAS,GAAG,KAAK;AAC1B,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;AACvB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC7C,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;AACD;AACM,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;AAC3C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG;AAC5C,IAAA,YAAY,CAAC,QAAQ,EAAA;QACnB,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,uCAAuC,CAAC;AAC7E,QAAA,OAAO,IAAI,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC;AACF,CAAA;AACK,MAAO,UAAW,SAAQ,KAAK,CAAA;AAC1B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY;AAC/B,IAAA,WAAW;IACX,SAAS,GAAG,KAAK;IACjB,SAAS,GAAG,KAAK;AACjB,IAAA,IAAI;IACJ,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG;AAC9D,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,QAAA,EAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IAC9D;AACA,IAAA,WAAA,CAAY,KAA6B,EAAA;AACvC,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,IAAI,GAAG,CAAA,MAAA,EAAS,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA,CAAA,CAAG;AAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;IACtC;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,gBAAgB,CAAC;AACjC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;YAC1C,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACM,MAAM,oBAAoB,GAAG,IAAI,YAAY,CAAC;AACnD,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG;AAC5C,IAAA,YAAY,CAAC,QAAQ,EAAA;QACnB,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,+CAA+C,CAAC;AACrF,QAAA,OAAO,IAAI,kBAAkB,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC;AACF,CAAA;AACK,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAClC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB;AACvC,IAAA,WAAW;IACX,SAAS,GAAG,KAAK;IACjB,SAAS,GAAG,IAAI;AAChB,IAAA,IAAI;IACJ,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG;AAC9D,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,gBAAA,EAAmB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IACtE;AACA,IAAA,WAAA,CAAY,KAA6B,EAAA;AACvC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QACpC,IAAI,CAAC,IAAI,GAAG,CAAA,cAAA,EAAiB,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA,CAAA,CAAG;IACxD;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,gBAAgB,CAAC;AACjC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;YAC1C,SAAS,EAAE,IAAI,CAAC,SAAS;AAC1B,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;AACD;AAEM,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAAC;AAChD,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;AAC3C,IAAA,YAAY,CAAC,QAAQ,EAAA;QACnB,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,qDAAqD,CAAC;AAC3F,QAAA,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,QAAQ;QACzC,aAAa,CACX,SAAS,YAAY,mBAAmB,EACxC,CAAA,wFAAA,EAA2F,SAAS,CAAC,IAAI,CAAA,CAAE,CAC5G;AACD,QAAA,IAAI,WAAW,YAAY,aAAa,EAAE;AACxC,YAAA,MAAM,IAAI,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC;QAC9C;AACA,QAAA,OAAO,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC;IAChF,CAAC;AACF,CAAA;AAEK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAC/B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,iBAAiB;AACpC,IAAA,WAAW;IACX,SAAS,GAAY,KAAK;IAC1B,SAAS,GAAG,KAAK;AACjB,IAAA,IAAI;IACJ,MAAM,GAAW,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;AACpD,IAAA,SAAS;AAClB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,aAAA,EAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA,CAAA,CAAG;IACnE;AACA,IAAA,WAAA,CAAY,KAAgD,EAAA;AAC1D,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,WAAA,EAAc,KAAK,CAAC,WAAW,CAAC,IAAI,CAAA,EAAA,EAAK,KAAK,CAAC,SAAS,GAAG;AACvE,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;IAClC;AACA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC;AAChC,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;YAC1C,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACM,MAAM,eAAe,GAAG,IAAI,YAAY,CAAC;AAC9C,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG;AAC5C,IAAA,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAA;AACzB,QAAA,aAAa,CAAC,GAAG,YAAY,kBAAkB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oEAAoE,CAAC;AAEtI,QAAA,OAAO,GAAG,CAAC,WAAW,EAAE;IAC1B,CAAC;AACF,CAAA;AAED,MAAe,WAAY,SAAQ,KAAK,CAAA;AAC7B,IAAA,IAAI;IACJ,MAAM,GAAW,UAAU;AAC3B,IAAA,KAAK;AACL,IAAA,WAAW;AACX,IAAA,UAAU;IACV,SAAS,GAAG,KAAK;AACjB,IAAA,SAAS;AAElB,IAAA,WAAA,CAAY,KAMX,EAAA;AACC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,CAAC,UAAU,CAAA,EAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AACxE,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;IAClC;IAEA,iBAAiB,GAAA;QACf,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;IACxC;IAEA,QAAQ,GAAA;AACN,QAAA,OAAO,CAAA,CAAA,EAAI,IAAI,CAAC,iBAAiB;AAC9B,aAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,EAAG,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAA,EAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACrE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;IACjB;AAEA,IAAA,gBAAgB,CAAC,KAAkB,EAAA;AACjC,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CACzE,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,KAAK,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CACzG;IACH;AACD;AAEK,MAAO,kBAAmB,SAAQ,WAAW,CAAA;AACxC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB;AAEhD,IAAA,WAAA,CAAY,KAA4C,EAAA;AACtD,QAAA,KAAK,CAAC;AACJ,YAAA,GAAG,KAAK;AACR,YAAA,UAAU,EAAE,CAAA,aAAA,CAAe;AAC3B,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;IAEA,YAAY,GAAA;QACV,OAAO,IAAI,oBAAoB,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,SAAA,CAAC;IACJ;IACA,UAAU,GAAA;QACR,OAAO,IAAI,kBAAkB,CAAC;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,MAAM,UAAU,GAAmB,EAAE;QACrC,MAAM,UAAU,GAAa,EAAE;AAC/B,QAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC3D,YAAA,IAAI,QAAQ,YAAY,aAAa,EAAE;AACrC,gBAAA,MAAM,IAAI,SAAS,CAAC,CAAA,UAAA,EAAa,QAAQ,CAAA,KAAA,EAAQ,IAAI,CAAC,IAAI,6BAA6B,QAAQ,CAAC,WAAW,CAAA,CAAE,CAAC;YAChH;AACA,YAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AACtC,YAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3B;AACA,QAAA,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC7C,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,UAAU;AAClB,SAAA,CAAC;IACJ;AACD;AAEK,MAAO,oBAAqB,SAAQ,WAAW,CAAA;AAC1C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,sBAAsB;AAElD,IAAA,WAAA,CAAY,KAA6F,EAAA;AACvG,QAAA,KAAK,CAAC;AACJ,YAAA,GAAG,KAAK;AACR,YAAA,UAAU,EAAE,CAAA,cAAA,CAAgB;AAC5B,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,MAAM,UAAU,GAAmB,EAAE;QACrC,MAAM,UAAU,GAAa,EAAE;AAC/B,QAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC3D,YAAA,IAAI,QAAQ,YAAY,aAAa,EAAE;AACrC,gBAAA,MAAM,IAAI,SAAS,CAAC,CAAA,UAAA,EAAa,QAAQ,CAAA,KAAA,EAAQ,IAAI,CAAC,IAAI,6BAA6B,QAAQ,CAAC,WAAW,CAAA,CAAE,CAAC;YAChH;AACA,YAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AACtC,YAAA,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC3B;AACA,QAAA,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI;AACvC,YAAA,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,UAAU;AAClB,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChD;AACD;AAEK,MAAO,kBAAmB,SAAQ,WAAW,CAAA;AACxC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB;AAEhD,IAAA,WAAA,CAAY,KAA6F,EAAA;AACvG,QAAA,KAAK,CAAC;AACJ,YAAA,GAAG,KAAK;AACR,YAAA,UAAU,EAAE,CAAA,MAAA,CAAQ;AACpB,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA,CAAC;IACJ;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI;AACvC,YAAA,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAChG,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;AAC9B,YAAA,MAAM,EAAE,KAAK;AACd,SAAA,CAAC;IACJ;IAEA,WAAW,GAAA;QACT,OAAO,IAAI,oBAAoB,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;AACD;AAEK,SAAU,YAAY,CAAC,KAAmB,EAAA;IAC9C,OAAO,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;AAC3F;AAEM,SAAU,WAAW,CAAC,KAAmB,EAAA;IAC7C,OAAO,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,kBAAkB,CAAC;AAC7D;AAEM,SAAU,WAAW,CAAC,KAAmB,EAAA;IAC7C,OAAO,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;AACvF;AAEO,MAAM,SAAS,GAAG,IAAI,yBAAyB,CAAC;AACrD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC,SAAS;AACvB,IAAA,gBAAgB,EAAE,MAAM;AACzB,CAAA;AACM,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC;AACzC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,CAAA;AACM,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC;AAC9C,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,QAAQ,EAAE,SAAS;AACpB,CAAA;AAEM,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;AAC1C,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,QAAQ,EAAE,QAAQ;AACnB,CAAA;AAEM,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;AAC3C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,QAAQ,EAAE,MAAM;AACjB,CAAA;AACM,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC;AAChD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,QAAQ,EAAE,WAAW;AACtB,CAAA;AACM,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC;AAC7C,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,6BAA6B;AACrC,IAAA,YAAY,CAAC,MAAwB,EAAA;QACnC,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,6CAA6C,CAAC;AACjF,QAAA,OAAO,IAAI,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;AACF,CAAA;AACK,MAAO,WAAY,SAAQ,eAAe,CAAA;AACrC,IAAA,WAAW;IACpB,WAAA,CAAY,EAAE,WAAW,EAA0B,EAAA;AACjD,QAAA,KAAK,CAAC;AACJ,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,6BAA6B;AACtC,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;AACD;AACM,MAAM,QAAQ,GAAG,IAAI,QAAQ;AAE7B,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC;AACxC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,CAAA;AAEM,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;AACjD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,6BAA6B;AACtC,CAAA;AAEK,MAAO,WAAY,SAAQ,aAAa,CAAA;AACnC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,aAAa;AAC1C;AAEK,MAAO,WAAY,SAAQ,aAAa,CAAA;AACnC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,aAAa;AAC1C;AAEM,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;AACzC,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU;IACnE,iBAAiB,EAAE,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB;AAChF,CAAA;AAEM,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC;AAC1C,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC,WAAW;AAC1B,CAAA;AACM,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC;AAChD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,6BAA6B;AACtC,CAAA;AAEM,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC;AAC1C,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;IAC/C,KAAK,EAAE,MAAM,CAAC,WAAW;AAC1B,CAAA;AACM,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;AAC3C,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;IAC/C,KAAK,EAAE,MAAM,CAAC,YAAY;AAC3B,CAAA;AACK,MAAO,mBAAoB,SAAQ,aAAa,CAAA;AAC3C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,qBAAqB;AACxC,IAAA,YAAY;IACrB,WAAA,CAAY,EAAE,YAAY,EAA4B,EAAA;AACpD,QAAA,KAAK,CAAC;YACJ,IAAI,EAAE,CAAA,EAAG,YAAY,CAAA,CAAE;AACvB,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,UAAU;YAClF,iBAAiB,EAAE,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,gBAAgB;AAC/F,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IAClC;AAEA,IAAA,OAAO,eAAe,GAAG,iBAAiB;;AAEtC,MAAO,kBAAmB,SAAQ,aAAa,CAAA;AAC1C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB;AACvC,IAAA,YAAY;IACrB,WAAA,CAAY,EAAE,YAAY,EAA4B,EAAA;AACpD,QAAA,KAAK,CAAC;YACJ,IAAI,EAAE,CAAA,EAAG,YAAY,CAAA,CAAA,CAAG;AACxB,YAAA,MAAM,EAAE,UAAU;AAClB,YAAA,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,YAAY,CAAA,CAAA,CAAG,CAAC,CAAC,UAAU;YAC7E,iBAAiB,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAAG,YAAY,CAAA,CAAA,CAAG,CAAC,CAAC,gBAAgB;AAC1F,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;IAClC;AAEA,IAAA,OAAO,eAAe,GAAG,gBAAgB;;AAEpC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;AACzC,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU;IACnE,iBAAiB,EAAE,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,gBAAgB;AAChF,CAAA;AACM,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC;AAChD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;AAChD,CAAA;AAEM,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;AACjD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;AAChD,CAAA;AACK,MAAO,UAAW,SAAQ,KAAK,CAAA;AAC1B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY;AAC/B,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,KAAK;AACjB,IAAA,MAAM;IAEf,WAAA,CAAY,EAAE,MAAM,EAA6B,EAAA;AAC/C,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,KAAK,IAAI,GAAG,OAAO,GAAG,CAAA,MAAA,EAAS,MAAM,GAAG;AAC1D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;IACvD;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACM,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;AAC3C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;AAC/C,IAAA,YAAY,CAAC,QAA0B,EAAA;AACrC,QAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,wCAAA,CAA0C,CAAC;AAC5F,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC7B,QAAA,IACE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;;;AAG7B,aAAC,SAAS,YAAY,UAAU,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC,EAC5H;YACA,OAAO,IAAI,UAAU,CAAC;AACpB,gBAAA,MAAM,EAAE,IAAI;AACb,aAAA,CAAC;QACJ;QACA,aAAa,CACX,SAAS,YAAY,mBAAmB,EACxC,CAAA,wFAAA,EAA2F,SAAS,CAAC,IAAI,CAAA,CAAE,CAC5G;QACD,OAAO,IAAI,UAAU,CAAC;YACpB,MAAM,EAAE,SAAS,CAAC,YAAY;AAC/B,SAAA,CAAC;IACJ,CAAC;AACF,CAAA;AACM,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;AAClD,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC;AAC/C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU;AAChD,CAAA;AAEM,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;AAC7C,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AACM,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC;AAChD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AAEM,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC;AAC7C,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AAEM,MAAM,oBAAoB,GAAG,IAAI,eAAe,CAAC;AACtD,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AAEM,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC;AACnD,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AAEM,MAAM,UAAU,GAAG,IAAI,yBAAyB,CAAC;AACtD,IAAA,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,MAAM,CAAC,UAAU;AACxB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;AAC9C,IAAA,gBAAgB,EAAE,OAAO;AAC1B,CAAA;AACM,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC;AAC/C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;AAC/C,CAAA;AACM,MAAM,YAAY,GAAG,IAAI,yBAAyB,CAAC;AACxD,IAAA,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,MAAM,CAAC,YAAY;AAC1B,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;AAC9C,IAAA,gBAAgB,EAAE,SAAS;AAC5B,CAAA;AACM,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC;AACjD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;AAC/C,CAAA;AACM,MAAM,gBAAgB,GAAG,IAAI,yBAAyB,CAAC;AAC5D,IAAA,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,MAAM,CAAC,gBAAgB;AAC9B,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;AAC9C,IAAA,gBAAgB,EAAE,aAAa;AAChC,CAAA;AACM,MAAM,uBAAuB,GAAG,IAAI,eAAe,CAAC;AACzD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;AAC/C,CAAA;AAEM,MAAM,iBAAiB,GAAG,IAAI,aAAa,CAAC;AACjD,IAAA,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,2BAA2B;AACvD,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY;AACjD,IAAA,UAAU,EAAE,WAAW;AACvB,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,cAAc,EAAE,SAAS;AAC1B,CAAA;AAEM,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC;AAC/C,IAAA,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,yBAAyB;IACrD,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC/C,IAAA,UAAU,EAAE,SAAS;AACrB,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,cAAc,EAAE,SAAS;AAC1B,CAAA;AAEM,MAAM,gBAAgB,GAAG,IAAI,qBAAqB,CAAC;AACxD,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY;AACjD,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,OAAO,EAAE;AACP,QAAA,iBAAiB,EAAE,iBAAiB;AACrC,KAAA;AACD,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,cAAc,CAAC,IAAI;AACpC,CAAA;AACM,MAAM,oBAAoB,GAAG,IAAI,qBAAqB,CAAC;IAC5D,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC/C,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,OAAO,EAAE;AACP,QAAA,eAAe,EAAE,eAAe;AAChC,QAAA,iBAAiB,EAAE,iBAAiB;AACrC,KAAA;AACD,IAAA,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAC7B,IAAA,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,cAAc,CAAC,IAAI;AACpC,CAAA;AACM,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC;AAC5C,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,MAAM;AACb,CAAA;AACM,MAAM,uBAAuB,GAAG,IAAI,eAAe,CAAC;IACzD,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC/C,IAAA,IAAI,EAAE,YAAY;AACnB,CAAA;AACM,MAAM,sBAAsB,GAAG,IAAI,eAAe,CAAC;IACxD,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC/C,IAAA,IAAI,EAAE,WAAW;AAClB,CAAA;AACM,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC;IACnD,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AAC/C,IAAA,IAAI,EAAE,UAAU;AACjB,CAAA;AAEM,MAAM,wBAAwB,GAAG,IAAI,eAAe,CAAC;AAC1D,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY;AACjD,IAAA,IAAI,EAAE,UAAU;AACjB,CAAA;AAEM,MAAM,wBAAwB,GAAG,IAAI,eAAe,CAAC;AAC1D,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ;AAC7C,IAAA,IAAI,EAAE,UAAU;AACjB,CAAA;AAEK,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AACrC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,uBAAuB;AACnD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAC;YAClC,eAAe,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAA,CAAC;IACJ;AACS,IAAA,IAAI;AACJ,IAAA,IAAI;IACJ,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IAC1C,SAAS,GAAG,KAAK;AACjB,IAAA,gBAAgB;AAEzB,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,IAAI,EAA4C,EAAA;AAClE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK;IAC5E;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACjD;AACD;AAEK,MAAO,uBAAwB,SAAQ,eAAe,CAAA;AACjD,IAAA,IAAI;AAEb,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAuE,EAAA;AACrG,QAAA,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AACD;AAEM,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC;AACvD,IAAA,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,eAAe,CAAC,GAAG;AAC1B,CAAA;AACM,MAAM,kBAAkB,GAAG,IAAI,uBAAuB,CAAC;AAC5D,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,GAAG;AAC1B,CAAA;AACM,MAAM,uBAAuB,GAAG,IAAI,qBAAqB,CAAC;AAC/D,IAAA,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,eAAe,CAAC,MAAM;AAC7B,CAAA;AACM,MAAM,0BAA0B,GAAG,IAAI,uBAAuB,CAAC;AACpE,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,MAAM;AAC7B,CAAA;AACM,MAAM,mBAAmB,GAAG,IAAI,qBAAqB,CAAC;AAC3D,IAAA,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,sBAAsB,GAAG,IAAI,uBAAuB,CAAC;AAChE,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CAAC;AAC7D,IAAA,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,eAAe,CAAC,KAAK;AAC5B,CAAA;AACM,MAAM,wBAAwB,GAAG,IAAI,uBAAuB,CAAC;AAClE,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,KAAK;AAC5B,CAAA;AACM,MAAM,mBAAmB,GAAG,IAAI,qBAAqB,CAAC;AAC3D,IAAA,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,sBAAsB,GAAG,IAAI,uBAAuB,CAAC;AAChE,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,uBAAuB,GAAG,IAAI,qBAAqB,CAAC;AAC/D,IAAA,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,sBAAsB,GAAG,IAAI,uBAAuB,CAAC;AAChE,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AAEM,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC;AACnD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,IAAI,EAAE,SAAS;AAChB,CAAA;AACM,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,CAAC;AAC7D,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AACzC,IAAA,IAAI,EAAE,SAAS;AAChB,CAAA;AAEM,MAAM,mBAAmB,GAAG,IAAI,eAAe,CAAC;AACrD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AACM,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC;AAC/C,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AAEK,MAAO,oBAAqB,SAAQ,KAAK,CAAA;AACpC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,sBAAsB;AACzC,IAAA,KAAK,GAAG,MAAM,CAAC,WAAW;AAC1B,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,KAAK;AACjB,IAAA,QAAQ;AAEjB,IAAA,WAAA,CAAY,QAAwB,EAAA;AAClC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChD;AACD;AAEK,MAAO,2BAA4B,SAAQ,oBAAoB,CAAA;AAC1D,IAAA,KAAK,GAAG,MAAM,CAAC,WAAW;AAC1B,IAAA,MAAM;AACN,IAAA,KAAK;IAEd,WAAA,CAAY,QAAwB,EAAE,MAAuB,EAAA;QAC3D,KAAK,CAAC,QAAQ,CAAC;AACf,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC7B,YAAA,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;AAC/D,oBAAA,UAAU,CAAC,IAAI,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,2BAAA,EAA8B,QAAQ,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;QACzF;aAAO;AACL,YAAA,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAA,EAAG,MAAM,8BAA8B,QAAQ,CAAC,IAAI,CAAA,CAAE,CAAC;AAC7F,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;YACpB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC;IACF;AACD;AAEK,MAAO,cAAe,SAAQ,KAAK,CAAA;AAC9B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,gBAAgB;AACnC,IAAA,UAAU;AACV,IAAA,KAAK,GAAG,MAAM,CAAC,WAAW;AAC1B,IAAA,IAAI;AACJ,IAAA,MAAM;IACN,SAAS,GAAG,IAAI;AAChB,IAAA,OAAO;AAEhB,IAAA,WAAA,CAAY,KAAwE,EAAA;AAClF,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC;IAClD;AAEA,IAAA,gBAAgB,CAAC,MAAuB,EAAA;AACtC,QAAA,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC;IACtD;AAEA,IAAA,SAAS,CAAC,MAAuB,EAAA;AAC/B,QAAA,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACrF;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC1C;AACD;AAEM,MAAM,mBAAmB,GAAG,IAAI,cAAc,CAAC;AACpD,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY;AACjD,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,OAAO,EAAE;AACP,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,eAAe,EAAE,EAAE;AACpB,KAAA;AACF,CAAA;AACM,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAC;AACrD,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB;AACrD,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,OAAO,EAAE;AACP,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,iBAAiB,EAAE,EAAE;AACrB,QAAA,iBAAiB,EAAE,EAAE;AACtB,KAAA;AACF,CAAA;AACM,MAAM,oBAAoB,GAAG,IAAI,eAAe,CAAC;AACtD,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AACM,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC;AAClD,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AACzC,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,OAAO,EAAE;AACP,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,GAAG,EAAE,EAAE;AACR,KAAA;AACF,CAAA;AAEM,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC;AAChD,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AACM,MAAM,uBAAuB,GAAG,IAAI,YAAY,CAAC;AACtD,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,MAAM,EAAE,yCAAyC;AACjD,IAAA,YAAY,CAAC,QAA0B,EAAA;AACrC,QAAA,aAAa,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,mDAAmD,CAAC;;QAEhH,MAAM,CAAC,SAAiC,CAAC,GAAG,QAAQ;QACpD,OAAO,IAAI,oBAAoB,CAAC;AAC9B,YAAA,QAAQ,EAAE,SAAS;AACpB,SAAA,CAAC;IACJ,CAAC;AACF,CAAA;AACK,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AAC5C,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,sBAAsB;AACzC,IAAA,QAAQ;IACjB,WAAA,CAAY,EAAE,QAAQ,EAAuB,EAAA;AAC3C,QAAA,KAAK,CAAC;AACJ,YAAA,IAAI,EAAE,CAAA,iBAAA,EAAoB,QAAQ,CAAC,IAAI,CAAA,CAAA,CAAG;AAC1C,YAAA,MAAM,EAAE,yCAAyC;AACjD,YAAA,WAAW,EAAE,sFAAsF;AACnG,YAAA,iBAAiB,EAAE,4DAA4D;AAC/E,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC9E;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;IAC5C;AACD;AAEM,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC;AAC/C,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,EAAE,0CAA0C;AAClD,IAAA,YAAY,CAAC,MAAM,EAAA;QACjB,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,8CAA8C,CAAC;QAElF,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM;QAC/C,OAAO,IAAI,aAAa,CAAC;YACvB,QAAQ;YACR,QAAQ;YACR,UAAU;AACX,SAAA,CAAC;IACJ,CAAC;AACF,CAAA;AAEK,MAAO,aAAc,SAAQ,eAAe,CAAA;AACvC,IAAA,QAAQ;AACR,IAAA,UAAU;AACV,IAAA,QAAQ;AACjB,IAAA,WAAA,CAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAA2D,EAAA;AACrG,QAAA,KAAK,CAAC;AACJ,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,0CAA0C;AACnD,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AACD;AAEM,MAAM,aAAa,GAAG,IAAI,uBAAuB,CAAC;AACvD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,GAAG;AAC1B,CAAA;AACM,MAAM,qBAAqB,GAAG,IAAI,uBAAuB,CAAC;AAC/D,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,MAAM;AAC7B,CAAA;AACM,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC;AAC3D,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,CAAC;AAC7D,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,KAAK;AAC5B,CAAA;AACM,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC;AAC3D,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,qBAAqB,GAAG,IAAI,uBAAuB,CAAC;AAC/D,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IACzC,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AAEK,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AACrC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,uBAAuB;AACnD,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAC;YAClC,eAAe,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAA,CAAC;IACJ;AACS,IAAA,IAAI;AACJ,IAAA,IAAI;IACJ,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IAC1C,SAAS,GAAG,KAAK;AAE1B,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,IAAI,EAA4C,EAAA;AAClE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACjD;AACD;AACK,MAAO,eAAgB,SAAQ,KAAK,CAAA;AAC/B,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,iBAAiB;AAC7C,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,uBAAuB,CAAC;YACxC,eAAe,EAAE,IAAI,CAAC,IAAI;AAC3B,SAAA,CAAC;IACJ;AACS,IAAA,IAAI;AACJ,IAAA,IAAI;IACJ,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;IAC1C,SAAS,GAAG,KAAK;AAE1B,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,IAAI,EAA4C,EAAA;AAClE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACM,MAAM,qBAAqB,GAAG,IAAI,eAAe,CAAC;AACvD,IAAA,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,eAAe,CAAC,GAAG;AAC1B,CAAA;AACM,MAAM,eAAe,GAAG,IAAI,qBAAqB,CAAC;AACvD,IAAA,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,eAAe,CAAC,GAAG;AAC1B,CAAA;AACM,MAAM,6BAA6B,GAAG,IAAI,eAAe,CAAC;AAC/D,IAAA,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,eAAe,CAAC,MAAM;AAC7B,CAAA;AACM,MAAM,uBAAuB,GAAG,IAAI,qBAAqB,CAAC;AAC/D,IAAA,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,eAAe,CAAC,MAAM;AAC7B,CAAA;AACM,MAAM,yBAAyB,GAAG,IAAI,eAAe,CAAC;AAC3D,IAAA,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,mBAAmB,GAAG,IAAI,qBAAqB,CAAC;AAC3D,IAAA,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,2BAA2B,GAAG,IAAI,eAAe,CAAC;AAC7D,IAAA,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,eAAe,CAAC,KAAK;AAC5B,CAAA;AACM,MAAM,qBAAqB,GAAG,IAAI,qBAAqB,CAAC;AAC7D,IAAA,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,eAAe,CAAC,KAAK;AAC5B,CAAA;AACM,MAAM,yBAAyB,GAAG,IAAI,eAAe,CAAC;AAC3D,IAAA,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,mBAAmB,GAAG,IAAI,qBAAqB,CAAC;AAC3D,IAAA,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,6BAA6B,GAAG,IAAI,eAAe,CAAC;AAC/D,IAAA,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,mBAAmB,GAAG,IAAI,qBAAqB,CAAC;AAC3D,IAAA,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE,eAAe,CAAC,IAAI;AAC3B,CAAA;AACM,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC;AACnD,IAAA,IAAI,EAAE,eAAe;AACtB,CAAA;AAEM,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC;AACnD,IAAA,IAAI,EAAE,UAAU;AACjB,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,OAAO,CACtI,CAAC,OAAO,KAAK;AACX,IAAA,IAAI,4BAA4B,CAAC;QAC/B,IAAI,EAAE,CAAA,EAAG,OAAO,CAAA,MAAA,CAAQ;AACxB,QAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;KAC1C,CAAC;AACF,IAAA,IAAI,4BAA4B,CAAC;QAC/B,IAAI,EAAE,CAAA,EAAG,OAAO,CAAA,aAAA,CAAe;AAC/B,QAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW;KACjD,CAAC;AACH,CAAA;AAGI,MAAM,uBAAuB,GAAG,IAAI,eAAe,CAAC;AACzD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AAEM,MAAM,mBAAmB,GAAG,IAAI,eAAe,CAAC;AACrD,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW;AACjD,CAAA;AAEM,MAAM,mBAAmB,GAAG,IAAI,eAAe,CAAC;AACrD,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ;AAC9C,CAAA;AAEM,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC;IAC3D,KAAK,EAAE,IAAI,UAAU,CAAC;AACpB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ;KAC9C,CAAC;AACF,IAAA,WAAW,EAAE,0HAA0H;AACvI,IAAA,UAAU,EAAE;AACV,QAAA,eAAe,EAAE,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AAC5E,QAAA,iBAAiB,EAAE,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AAC9E,QAAA,iBAAiB,EAAE,WAAW;AAC9B,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,UAAU,EAAE,WAAW;AACxB,KAAA;AACF,CAAA;AACM,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC;IAC3D,KAAK,EAAE,IAAI,UAAU,CAAC;AACpB,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ;KAC9C,CAAC;AACF,IAAA,WAAW,EAAE,qFAAqF;AAClG,IAAA,UAAU,EAAE;AACV,QAAA,OAAO,EAAE,YAAY;AACtB,KAAA;AACF,CAAA;AAEM,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC;AACnD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;AAC3C,CAAA;AAEM,MAAM,6BAA6B,GAAG,IAAI,YAAY,CAAC;AAC5D,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ;AACtC,IAAA,YAAY,CAAC,MAAwB,EAAA;QACnC,OAAO,IAAI,sBAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACtD,CAAC;AACF,CAAA;AACK,MAAO,sBAAuB,SAAQ,KAAK,CAAA;AACtC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,wBAAwB;AAC3C,IAAA,KAAK;IACL,IAAI,GAAG,wBAAwB;IAC/B,SAAS,GAAG,KAAK;IACjB,KAAK,GAAG,SAAS;AACjB,IAAA,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ;IAChD,WAAA,CAAY,EAAE,KAAK,EAA+B,EAAA;AAChD,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;AAEA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC;IAClD;AACD;AACM,MAAM,kBAAkB,GAAG,IAAI,YAAY,CAAC;AACjD,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ;AACvC,CAAA;AACM,MAAM,yBAAyB,GAAG,IAAI,eAAe,CAAC;AAC3D,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,QAAQ;AACvC,CAAA;AACM,MAAM,qBAAqB,GAAG,IAAI,YAAY,CAAC;AACpD,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc;AACnD,IAAA,YAAY,EAAE,CAAC,QAA0B,KAAwB;QAC/D,aAAa,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,wDAAwD,CAAC;AAC9F,QAAA,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ;QAE9B,OAAO,IAAI,kBAAkB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IAC7D,CAAC;AACF,CAAA;AACK,MAAO,kBAAmB,SAAQ,KAAK,CAAA;AAClC,IAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,oBAAoB;IACvC,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc;AACpD,IAAA,IAAI;IACJ,SAAS,GAAG,KAAK;AACjB,IAAA,cAAc;AACd,IAAA,WAAW;AAEpB,IAAA,WAAA,CAAY,EACV,WAAW,EACX,cAAc,EACd,IAAI,GAML,EAAA;AACC,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAA,eAAA,EAAkB,WAAW,GAAG;AACpD,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,MAAM,CAAC,cAAc,CAAC;AAC/B,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;AACnC,YAAA,SAAS,EAAE,KAAK;AACjB,SAAA,CAAC;IACJ;AACA,IAAA,MAAM,CAAI,OAAwB,EAAA;AAChC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;AACD;AAEM,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC;AAC7C,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW;AAChD,IAAA,IAAI,EAAE,aAAa;AACpB,CAAA;AAEM,MAAM,kBAAkB,GAAG,IAAI,eAAe,CAAC;AACpD,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;AAEM,MAAM,6BAA6B,GAAG,IAAI,eAAe,CAAC;AAC/D,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI;AAC1C,CAAA;;ACl6DK,SAAU,uBAAuB,CAAC,IAAqB,EAAA;IAC3D,QAAQ,IAAI;QACV,KAAK,eAAe,CAAC,GAAG;AACtB,YAAA,OAAO,eAAe;QACxB,KAAK,eAAe,CAAC,MAAM;AACzB,YAAA,OAAO,uBAAuB;QAChC,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,mBAAmB;QAC5B,KAAK,eAAe,CAAC,KAAK;AACxB,YAAA,OAAO,qBAAqB;QAC9B,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,mBAAmB;QAC5B,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,mBAAmB;;AAEhC;AACM,SAAU,iBAAiB,CAAC,IAAqB,EAAA;IACrD,QAAQ,IAAI;QACV,KAAK,eAAe,CAAC,GAAG;AACtB,YAAA,OAAO,qBAAqB;QAC9B,KAAK,eAAe,CAAC,MAAM;AACzB,YAAA,OAAO,6BAA6B;QACtC,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,yBAAyB;QAClC,KAAK,eAAe,CAAC,KAAK;AACxB,YAAA,OAAO,2BAA2B;QACpC,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,yBAAyB;QAClC,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,6BAA6B;;AAE1C;AACM,SAAU,uBAAuB,CAAC,IAAiC,EAAA;IACvE,QAAQ,IAAI;QACV,KAAK,eAAe,CAAC,GAAG;AACtB,YAAA,OAAO,eAAe;QACxB,KAAK,eAAe,CAAC,MAAM;AACzB,YAAA,OAAO,uBAAuB;QAChC,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,mBAAmB;QAC5B,KAAK,eAAe,CAAC,KAAK;AACxB,YAAA,OAAO,qBAAqB;QAC9B,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,mBAAmB;QAC5B,KAAK,eAAe,CAAC,IAAI;AACvB,YAAA,OAAO,uBAAuB;AAChC,QAAA;AACE,YAAA,OAAO,WAAW;;AAExB;;ACzEA;MAOsB,IAAI,CAAA;AACxB,IAAA,WAAA,CAAY,KAAkB,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;IAC5C;AACS,IAAA,cAAc;AACxB;AACK,MAAgB,SAAU,SAAQ,IAAI,CAAA;AAC1C,IAAA,WAAA,CAAY,KAAuB,EAAA;QACjC,KAAK,CAAC,KAAK,CAAC;IACd;AAED;AACK,MAAgB,UAAW,SAAQ,IAAI,CAAA;AAC3C,IAAA,WAAA,CAAY,KAAwB,EAAA;QAClC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AAEf;AACK,MAAO,mBAAoB,SAAQ,SAAS,CAAA;AAChD,IAAA,WAAA,CAAY,KAAiC,EAAA;QAC3C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;IAC5C;AACS,IAAA,IAAI;AACJ,IAAA,cAAc;AACvB,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC;IAC/C;AACD;AACK,MAAO,KAAM,SAAQ,SAAS,CAAA;AAClC,IAAA,WAAA,CAAY,KAAmB,EAAA;QAC7B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,OAAO;AAChB,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;IACjC;AACD;AACK,MAAO,IAAK,SAAQ,SAAS,CAAA;AACjC,IAAA,WAAA,CAAY,KAAkB,EAAA;QAC5B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;IAC5B;AACS,IAAA,MAAM;AACf,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;IAChC;AACD;AACK,MAAO,MAAO,SAAQ,SAAS,CAAA;AACnC,IAAA,WAAA,CAAY,KAAoB,EAAA;QAC9B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AACS,IAAA,SAAS;AACT,IAAA,QAAQ;AACR,IAAA,UAAU;AACnB,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IAClC;AACD;AACK,MAAO,MAAO,SAAQ,SAAS,CAAA;AACnC,IAAA,WAAA,CAAY,KAAoB,EAAA;QAC9B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;IACtC;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,WAAW;AACpB,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IAClC;AACD;AACK,MAAO,SAAU,SAAQ,SAAS,CAAA;AACtC,IAAA,WAAA,CAAY,KAAuB,EAAA;QACjC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;IAChC;AACS,IAAA,SAAS;AACT,IAAA,QAAQ;AACjB,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;IACrC;AACD;AACK,MAAO,QAAS,SAAQ,SAAS,CAAA;AACrC,IAAA,WAAA,CAAY,KAAsB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC;IACd;AACA,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;AACK,MAAO,YAAa,SAAQ,SAAS,CAAA;AACzC,IAAA,WAAA,CAAY,KAA0B,EAAA;QACpC,KAAK,CAAC,KAAK,CAAC;IACd;AACA,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AACK,MAAO,eAAgB,SAAQ,SAAS,CAAA;AAC5C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,gBAAiB,SAAQ,UAAU,CAAA;AAC9C,IAAA,WAAA,CAAY,KAA8B,EAAA;QACxC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;IAChC;AACS,IAAA,SAAS;AACT,IAAA,YAAY;AACZ,IAAA,KAAK;AACL,IAAA,QAAQ;AACR,IAAA,QAAQ;AACjB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;IAC5C;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;IAClC;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,SAAS;AAClB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,YAAa,SAAQ,UAAU,CAAA;AAC1C,IAAA,WAAA,CAAY,KAA0B,EAAA;QACpC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;IACW;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACf,CAAC,EANW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;AAOnB,MAAO,aAAc,SAAQ,UAAU,CAAA;AAC3C,IAAA,WAAA,CAAY,KAA2B,EAAA;QACrC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;IAChC;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,QAAQ;AACjB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACzC;AACD;AACK,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC5C,IAAA,WAAA,CAAY,KAA4B,EAAA;QACtC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC1C;AACD;AACK,MAAO,YAAa,SAAQ,UAAU,CAAA;AAC1C,IAAA,WAAA,CAAY,KAA0B,EAAA;QACpC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AACK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,KAAK;AACL,IAAA,IAAI;AACb,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AACK,MAAO,qBAAsB,SAAQ,IAAI,CAAA;AAC7C,IAAA,WAAA,CAAY,KAAmC,EAAA;QAC7C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACf;AACK,MAAO,eAAgB,SAAQ,IAAI,CAAA;AACvC,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;IAChD;AACS,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,UAAU;AACV,IAAA,gBAAgB;AAC1B;AACK,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC5C,IAAA,WAAA,CAAY,KAA4B,EAAA;QACtC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC1C;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,UAAW,SAAQ,UAAU,CAAA;AACxC,IAAA,WAAA,CAAY,KAAwB,EAAA;QAClC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;IACxC;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,YAAY;AACrB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACK,MAAO,UAAW,SAAQ,UAAU,CAAA;AACxC,IAAA,WAAA,CAAY,KAAwB,EAAA;QAClC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;IACxC;AACS,IAAA,KAAK;AACL,IAAA,YAAY;AACrB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACK,MAAO,aAAc,SAAQ,UAAU,CAAA;AAC3C,IAAA,WAAA,CAAY,KAA2B,EAAA;QACrC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;IAChC;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,QAAQ;AACjB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACzC;AACD;AACK,MAAO,YAAa,SAAQ,UAAU,CAAA;AAC1C,IAAA,WAAA,CAAY,KAA0B,EAAA;QACpC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AACK,MAAO,IAAK,SAAQ,UAAU,CAAA;AAClC,IAAA,WAAA,CAAY,KAAkB,EAAA;QAC5B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;IAChC;AACD;AACK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AACK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AACK,MAAO,QAAS,SAAQ,UAAU,CAAA;AACtC,IAAA,WAAA,CAAY,KAAsB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;AACK,MAAO,YAAa,SAAQ,UAAU,CAAA;AAC1C,IAAA,WAAA,CAAY,KAA0B,EAAA;QACpC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AACK,MAAO,MAAO,SAAQ,UAAU,CAAA;AACpC,IAAA,WAAA,CAAY,KAAoB,EAAA;QAC9B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,SAAS;AACT,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IAClC;AACD;AACK,MAAO,aAAc,SAAQ,UAAU,CAAA;AAC3C,IAAA,WAAA,CAAY,KAA2B,EAAA;QACrC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;IAClC;AACS,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,SAAS;AAClB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACzC;AACD;AACK,MAAO,sBAAuB,SAAQ,UAAU,CAAA;AACpD,IAAA,WAAA,CAAY,KAAoC,EAAA;QAC9C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;IAC5B;AACS,IAAA,KAAK;AACL,IAAA,MAAM;AACf,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC;IAClD;AACD;AACK,MAAO,sBAAuB,SAAQ,UAAU,CAAA;AACpD,IAAA,WAAA,CAAY,KAAoC,EAAA;QAC9C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC;IAClD;AACD;AACK,MAAO,sBAAuB,SAAQ,UAAU,CAAA;AACpD,IAAA,WAAA,CAAY,KAAoC,EAAA;QAC9C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,aAAa;AACb,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC;IAClD;AACD;AACK,MAAO,yBAA0B,SAAQ,UAAU,CAAA;AACvD,IAAA,WAAA,CAAY,KAAuC,EAAA;QACjD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC;IACrD;AACD;AACK,MAAO,YAAa,SAAQ,UAAU,CAAA;AAC1C,IAAA,WAAA,CAAY,KAA0B,EAAA;QACpC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;IAC5C;AACS,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,KAAK;AACL,IAAA,cAAc;AACvB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACxC;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,mBAAoB,SAAQ,UAAU,CAAA;AACjD,IAAA,WAAA,CAAY,KAAiC,EAAA;QAC3C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC;IAC/C;AACD;AACK,MAAO,oBAAqB,SAAQ,UAAU,CAAA;AAClD,IAAA,WAAA,CAAY,KAAkC,EAAA;QAC5C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;IAC5B;AACS,IAAA,KAAK;AACL,IAAA,MAAM;AACf,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChD;AACD;AACK,MAAO,aAAc,SAAQ,UAAU,CAAA;AAC3C,IAAA,WAAA,CAAY,KAA2B,EAAA;QACrC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,IAAI;AACb,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;IACzC;AACD;AACK,MAAO,qBAAsB,SAAQ,UAAU,CAAA;AACnD,IAAA,WAAA,CAAY,KAAmC,EAAA;QAC7C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,UAAU;AACnB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACjD;AACD;AACK,MAAO,yBAA0B,SAAQ,UAAU,CAAA;AACvD,IAAA,WAAA,CAAY,KAAuC,EAAA;QACjD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,cAAc;AACd,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC;IACrD;AACD;AACK,MAAO,sBAAuB,SAAQ,UAAU,CAAA;AACpD,IAAA,WAAA,CAAY,KAAoC,EAAA;QAC9C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC;IAClD;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,UAAU;AACV,IAAA,QAAQ;AACR,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,2BAA4B,SAAQ,UAAU,CAAA;AACzD,IAAA,WAAA,CAAY,KAAyC,EAAA;QACnD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,UAAU;AACV,IAAA,QAAQ;AACR,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gCAAgC,CAAC,IAAI,CAAC;IACvD;AACD;IACW;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB;AAChB,IAAA,cAAA,CAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO;AACT,CAAC,EAJW,cAAc,KAAd,cAAc,GAAA,EAAA,CAAA,CAAA;AAKpB,MAAO,kBAAmB,SAAQ,UAAU,CAAA;AAChD,IAAA,WAAA,CAAY,KAAgC,EAAA;QAC1C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;IAC5D;AACS,IAAA,GAAG;AACH,IAAA,sBAAsB;AAC/B,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;AACD;AACK,MAAO,yBAA0B,SAAQ,UAAU,CAAA;AACvD,IAAA,WAAA,CAAY,KAAuC,EAAA;QACjD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;AAC1D,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;AACS,IAAA,GAAG;AACH,IAAA,sBAAsB;AACtB,IAAA,OAAO;AAChB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC;IACrD;AACD;AACK,MAAO,wBAAyB,SAAQ,UAAU,CAAA;AACtD,IAAA,WAAA,CAAY,KAAsC,EAAA;QAChD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,MAAM;AACN,IAAA,GAAG;AACH,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC;IACpD;AACD;AACK,MAAO,kBAAmB,SAAQ,UAAU,CAAA;AAChD,IAAA,WAAA,CAAY,KAAgC,EAAA;QAC1C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;IAC5D;AACS,IAAA,GAAG;AACH,IAAA,sBAAsB;AAC/B,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC9C;AACD;AACK,MAAO,gBAAiB,SAAQ,UAAU,CAAA;AAC9C,IAAA,WAAA,CAAY,KAA8B,EAAA;QACxC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;IAC5C;AACS,IAAA,MAAM;AACN,IAAA,EAAE;AACF,IAAA,KAAK;AACL,IAAA,cAAc;AACvB,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;IAC5C;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,IAAI;AACb,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;AACK,MAAO,QAAS,SAAQ,UAAU,CAAA;AACtC,IAAA,WAAA,CAAY,KAAsB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;IAC5B;AACS,IAAA,KAAK;AACL,IAAA,MAAM;AACf,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;AACK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AACK,MAAO,qBAAsB,SAAQ,UAAU,CAAA;AACnD,IAAA,WAAA,CAAY,KAAmC,EAAA;QAC7C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,SAAS;AACT,IAAA,QAAQ;AACR,IAAA,SAAS;AACT,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACjD;AACD;AACK,MAAO,mBAAoB,SAAQ,SAAS,CAAA;AAChD,IAAA,WAAA,CAAY,KAAiC,EAAA;QAC3C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,MAAM;AAQN,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC;IAC/C;AACD;AACK,MAAO,oBAAqB,SAAQ,UAAU,CAAA;AAClD,IAAA,WAAA,CAAY,KAAkC,EAAA;QAC5C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,MAAM;AAQN,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChD;AACD;AACK,MAAO,eAAgB,SAAQ,UAAU,CAAA;AAC7C,IAAA,WAAA,CAAY,KAA6B,EAAA;QACvC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,WAAW;AACX,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC3C;AACD;IACW;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,kBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;IAIlB;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ;AACR,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,IAAU;AACV,IAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,GAAQ;AACR,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,IAAU;AACZ,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;AAQvB,MAAO,2BAA4B,SAAQ,UAAU,CAAA;AACzD,IAAA,WAAA,CAAY,KAAyC,EAAA;QACnD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;IACtB;AACS,IAAA,KAAK;AACL,IAAA,GAAG;AACH,IAAA,QAAQ;AACR,IAAA,GAAG;AACZ,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gCAAgC,CAAC,IAAI,CAAC;IACvD;AACD;AACK,MAAO,yBAA0B,SAAQ,UAAU,CAAA;AACvD,IAAA,WAAA,CAAY,KAAuC,EAAA;QACjD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;IACtB;AACS,IAAA,KAAK;AACL,IAAA,GAAG;AACH,IAAA,QAAQ;AACR,IAAA,GAAG;AACZ,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC;IACrD;AACD;MACY,YAAY,CAAA;AACvB,IAAA,WAAA,CAAY,KAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;IAC5B;AACS,IAAA,MAAM;AAChB;MACY,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CAAY,KAAkC,EAAA;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AACS,IAAA,UAAU;AACpB;MACY,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAY,KAAuC,EAAA;AACjD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AACS,IAAA,UAAU;AACpB;MACY,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CAAY,KAAkC,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AACS,IAAA,IAAI;AACJ,IAAA,UAAU;AACpB;MACY,OAAO,CAAA;AAClB,IAAA,WAAA,CAAY,KAAqB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACf;AACK,MAAO,wBAAyB,SAAQ,UAAU,CAAA;AACtD,IAAA,WAAA,CAAY,KAAsC,EAAA;QAChD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,MAAM;AACN,IAAA,IAAI;AACb,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC;IACpD;AACD;AACK,MAAO,OAAQ,SAAQ,UAAU,CAAA;AACrC,IAAA,WAAA,CAAY,KAAqB,EAAA;QAC/B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,MAAM;AACN,IAAA,IAAI;AACJ,IAAA,MAAM;AACN,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;IACnC;AACD;MACY,WAAW,CAAA;AACtB,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,EAAE;AACF,IAAA,MAAM;AACN,IAAA,KAAK;AACf;IACW;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,eAA8B;AAC9B,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,cAA4B;AAC9B,CAAC,EAHW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;AAIrB,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;IACW;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACT,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACT,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,GAAU;AACV,IAAA,oBAAA,CAAA,UAAA,CAAA,GAAA,IAAe;AACf,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACT,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,IAAU;AACV,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,IAAa;AACb,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,IAAa;AACb,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,GAAW;AACX,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACZ,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACd,CAAC,EAZW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;IAapB;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACT,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACT,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,GAAU;AACV,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,IAAe;AACf,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACT,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,GAAW;AACX,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACZ,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACd,CAAC,EATW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;IAUrB;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,GAAS;AACT,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW;AACX,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACZ,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACd,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;IAMnB;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,GAAe;AACjB,CAAC,EAFW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;IAGlB;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,GAAe;AACjB,CAAC,EAFW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;IAGnB;AAAZ,CAAA,UAAY,0BAA0B,EAAA;AACpC,IAAA,0BAAA,CAAA,WAAA,CAAA,GAAA,IAAgB;AAChB,IAAA,0BAAA,CAAA,WAAA,CAAA,GAAA,IAAgB;AAClB,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,GAAA,EAAA,CAAA,CAAA;AAIhC,MAAO,oBAAqB,SAAQ,UAAU,CAAA;AAClD,IAAA,WAAA,CAAY,KAAkC,EAAA;QAC5C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,EAAE;AACF,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChD;AACD;AACK,MAAO,2BAA4B,SAAQ,UAAU,CAAA;AACzD,IAAA,WAAA,CAAY,KAAyC,EAAA;QACnD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,EAAE;AACF,IAAA,MAAM;AAQN,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gCAAgC,CAAC,IAAI,CAAC;IACvD;AACD;IACW;AAAZ,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,IAAgB;AAChB,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,IAAgB;AAClB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,GAAA,EAAA,CAAA,CAAA;AAIjC,MAAO,4BAA6B,SAAQ,UAAU,CAAA;AAC1D,IAAA,WAAA,CAAY,KAA0C,EAAA;QACpD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,EAAE;AACF,IAAA,MAAM;AAQN,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,iCAAiC,CAAC,IAAI,CAAC;IACxD;AACD;AACK,MAAO,mBAAoB,SAAQ,UAAU,CAAA;AACjD,IAAA,WAAA,CAAY,KAAiC,EAAA;QAC3C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,EAAE;AACF,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC;IAC/C;AACD;AACK,MAAO,qBAAsB,SAAQ,UAAU,CAAA;AACnD,IAAA,WAAA,CAAY,KAAmC,EAAA;QAC7C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,EAAE;AACF,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,0BAA0B,CAAC,IAAI,CAAC;IACjD;AACD;AACK,MAAO,sBAAuB,SAAQ,UAAU,CAAA;AACpD,IAAA,WAAA,CAAY,KAAoC,EAAA;QAC9C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,EAAE;AACF,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC;IAClD;AACD;AACK,MAAO,oBAAqB,SAAQ,UAAU,CAAA;AAClD,IAAA,WAAA,CAAY,KAAkC,EAAA;QAC5C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,EAAE;AACF,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChD;AACD;IACW;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,qBAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAAA,EAAA,CAAA,CAAA;AAI3B,MAAO,sBAAuB,SAAQ,UAAU,CAAA;AACpD,IAAA,WAAA,CAAY,KAAoC,EAAA;QAC9C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,EAAE;AACF,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC;IAClD;AACD;AACK,MAAO,GAAI,SAAQ,UAAU,CAAA;AACjC,IAAA,WAAA,CAAY,KAAiB,EAAA;QAC3B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC/B;AACD;AACK,MAAO,yBAA0B,SAAQ,SAAS,CAAA;AACtD,IAAA,WAAA,CAAY,KAAuC,EAAA;QACjD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,MAAM;AAQN,IAAA,EAAE;AACF,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,8BAA8B,CAAC,IAAI,CAAC;IACrD;AACD;AACK,MAAO,0BAA2B,SAAQ,SAAS,CAAA;AACvD,IAAA,WAAA,CAAY,KAAwC,EAAA;QAClD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,MAAM;AAQN,IAAA,EAAE;AACF,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,+BAA+B,CAAC,IAAI,CAAC;IACtD;AACD;AACK,MAAO,wBAAyB,SAAQ,SAAS,CAAA;AACrD,IAAA,WAAA,CAAY,KAAsC,EAAA;QAChD,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,MAAM;AAQN,IAAA,EAAE;AACF,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC;IACpD;AACD;AACK,MAAO,UAAW,SAAQ,UAAU,CAAA;AACxC,IAAA,WAAA,CAAY,KAAwB,EAAA;QAClC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,SAAS;AACT,IAAA,MAAM;AACN,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACK,MAAO,IAAK,SAAQ,UAAU,CAAA;AAClC,IAAA,WAAA,CAAY,KAAkB,EAAA;QAC5B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;IAChC;AACD;AACK,MAAO,KAAM,SAAQ,UAAU,CAAA;AACnC,IAAA,WAAA,CAAY,KAAmB,EAAA;QAC7B,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,IAAI;AACb,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;IACjC;AACD;AACK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AACK,MAAO,QAAS,SAAQ,UAAU,CAAA;AACtC,IAAA,WAAA,CAAY,KAAsB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;AACK,MAAO,SAAU,SAAQ,SAAS,CAAA;AACtC,IAAA,WAAA,CAAY,KAAuB,EAAA;QACjC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;IAChC;AACS,IAAA,QAAQ;AACR,IAAA,KAAK;AAQL,IAAA,QAAQ;AACjB,IAAA,MAAM,CAAI,OAA4B,EAAA;AACpC,QAAA,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;IACrC;AACD;AACK,MAAO,QAAS,SAAQ,UAAU,CAAA;AACtC,IAAA,WAAA,CAAY,KAAsB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;AACK,MAAO,UAAW,SAAQ,UAAU,CAAA;AACxC,IAAA,WAAA,CAAY,KAAwB,EAAA;QAClC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AACK,MAAO,WAAY,SAAQ,UAAU,CAAA;AACzC,IAAA,WAAA,CAAY,KAAyB,EAAA;QACnC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACL,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACvC;AACD;AACK,MAAO,SAAU,SAAQ,UAAU,CAAA;AACvC,IAAA,WAAA,CAAY,KAAuB,EAAA;QACjC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;IAC5B;AACS,IAAA,KAAK;AACL,IAAA,MAAM;AACf,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;IACrC;AACD;AACK,MAAgB,QAAS,SAAQ,IAAI,CAAA;AACzC,IAAA,WAAA,CAAY,KAAsB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC;IACd;AAED;MACY,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAY,KAAgC,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,IAAI;AACJ,IAAA,cAAc;AACd,IAAA,KAAK;AACf;MACY,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAY,KAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;AACS,IAAA,WAAW;AACX,IAAA,IAAI;AACJ,IAAA,OAAO;AACjB;AACK,MAAgB,SAAU,SAAQ,IAAI,CAAA;AAC1C,IAAA,WAAA,CAAY,KAAuB,EAAA;QACjC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa;AACxC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,IAAI;AACJ,IAAA,UAAU;AACV,IAAA,IAAI;AACJ,IAAA,aAAa;AACb,IAAA,MAAM;AACN,IAAA,IAAI;AACd;AACK,MAAO,UAAW,SAAQ,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAC1D,IAAA,WAAA,CAAY,KAAwB,EAAA;QAClC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,EAAE;AACF,IAAA,IAAI;AACb,IAAA,MAAM,CAAI,OAA2B,EAAA;AACnC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACK,MAAgB,kBAAmB,SAAQ,IAAI,CAAA;AACnD,IAAA,WAAA,CAAY,KAAgC,EAAA;QAC1C,KAAK,CAAC,KAAK,CAAC;IACd;AAED;AACK,MAAO,cAAe,SAAQ,OAAO,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;AACxE,IAAA,WAAA,CAAY,KAA4B,EAAA;QACtC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;IAChD;AACS,IAAA,IAAI;AACJ,IAAA,UAAU;AACV,IAAA,gBAAgB;AACzB,IAAA,MAAM,CAAI,OAAqC,EAAA;AAC7C,QAAA,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC1C;AACD;AACK,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AAC1D,IAAA,WAAA,CAAY,KAAkC,EAAA;QAC5C,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;IACtC;AACS,IAAA,UAAU;AACV,IAAA,IAAI;AACJ,IAAA,YAAY;AACZ,IAAA,QAAQ;AACR,IAAA,GAAG;AACH,IAAA,WAAW;AACpB,IAAA,MAAM,CAAI,OAAqC,EAAA;AAC7C,QAAA,OAAO,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC;IAChD;AACD;AACK,MAAO,cAAe,SAAQ,QAAQ,CAAA;AAC1C,IAAA,WAAA,CAAY,KAA4B,EAAA;QACtC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;AAChC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB;AACtD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;IAChD;AACS,IAAA,EAAE;AACF,IAAA,SAAS;AACT,IAAA,OAAO;AACP,IAAA,SAAS;AACT,IAAA,oBAAoB;AACpB,IAAA,UAAU;AACV,IAAA,gBAAgB;AACzB,IAAA,MAAM,CAAI,OAA2B,EAAA;AACnC,QAAA,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC1C;AACD;AACK,MAAO,gBAAiB,SAAQ,UAAU,CAAA;AAC9C,IAAA,WAAA,CAAY,KAA8B,EAAA;QACxC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB;AACpD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB;IAClD;AACS,IAAA,QAAQ;AACR,IAAA,mBAAmB;AACnB,IAAA,MAAM;AACN,IAAA,iBAAiB;AAC1B,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;IAC5C;AACD;AACK,MAAO,gBAAiB,SAAQ,UAAU,CAAA;AAC9C,IAAA,WAAA,CAAY,KAA8B,EAAA;QACxC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB;IAClD;AACS,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,iBAAiB;AAC1B,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;IAC5C;AACD;MACY,WAAW,CAAA;AACtB,IAAA,WAAA,CAAY,KAAyB,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AACS,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,WAAW;AACX,IAAA,UAAU;AACpB;AACK,MAAO,UAAW,SAAQ,UAAU,CAAA;AACxC,IAAA,WAAA,CAAY,KAAwB,EAAA;QAClC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACd,IAAA,MAAM,CAAI,OAA6B,EAAA;AACrC,QAAA,OAAO,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;IACtC;AACD;AACK,MAAO,QAAS,SAAQ,QAAQ,CAAA;AACpC,IAAA,WAAA,CAAY,KAAsB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC;AACZ,QAAA,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,qBAAqB;AACxD,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe;AAC5C,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,oBAAoB;AACtD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;IACpC;AACS,IAAA,EAAE;AACF,IAAA,IAAI;AACJ,IAAA,WAAW;AACX,IAAA,qBAAqB;AACrB,IAAA,eAAe;AACf,IAAA,YAAY;AACZ,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,oBAAoB;AACpB,IAAA,UAAU;AACnB,IAAA,MAAM,CAAI,OAA2B,EAAA;AACnC,QAAA,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;IACpC;AACD;IACW;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;AACd,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;MAKf,oBAAoB,CAAA;AAC/B,IAAA,WAAA,CAAY,KAAkC,EAAA;AAC5C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;AAC1D,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;IAC5B;AACS,IAAA,cAAc;AACd,IAAA,sBAAsB;AACtB,IAAA,MAAM;AAChB;MACY,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAAY,KAAyC,EAAA;AACnD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;IAC1B;AACS,IAAA,KAAK;AACf;MACY,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAAY,KAAuC,EAAA;AACjD,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;IACxB;AACS,IAAA,IAAI;AACd;MACY,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAY,KAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;AAC1D,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;AAC9C,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;IAChD;AACS,IAAA,cAAc;AACd,IAAA,sBAAsB;AACtB,IAAA,MAAM;AACN,IAAA,IAAI;AACJ,IAAA,gBAAgB;AAChB,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,gBAAgB;AAC1B;AAYM,MAAM,aAAa,GAAG;AAC3B,IAAA,mBAAmB,EAAE,mBAAmB;AACxC,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,qBAAqB,EAAE,qBAAqB;AAC5C,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,MAAM,EAAE,MAAM;AACd,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,sBAAsB,EAAE,sBAAsB;AAC9C,IAAA,sBAAsB,EAAE,sBAAsB;AAC9C,IAAA,sBAAsB,EAAE,sBAAsB;AAC9C,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,mBAAmB,EAAE,mBAAmB;AACxC,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,qBAAqB,EAAE,qBAAqB;AAC5C,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,sBAAsB,EAAE,sBAAsB;AAC9C,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,2BAA2B,EAAE,2BAA2B;AACxD,IAAA,kBAAkB,EAAE,kBAAkB;AACtC,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,wBAAwB,EAAE,wBAAwB;AAClD,IAAA,kBAAkB,EAAE,kBAAkB;AACtC,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,qBAAqB,EAAE,qBAAqB;AAC5C,IAAA,mBAAmB,EAAE,mBAAmB;AACxC,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,2BAA2B,EAAE,2BAA2B;AACxD,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,YAAY,EAAE,YAAY;AAC1B,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,wBAAwB,EAAE,wBAAwB;AAClD,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,2BAA2B,EAAE,2BAA2B;AACxD,IAAA,4BAA4B,EAAE,4BAA4B;AAC1D,IAAA,mBAAmB,EAAE,mBAAmB;AACxC,IAAA,qBAAqB,EAAE,qBAAqB;AAC5C,IAAA,sBAAsB,EAAE,sBAAsB;AAC9C,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,sBAAsB,EAAE,sBAAsB;AAC9C,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,0BAA0B,EAAE,0BAA0B;AACtD,IAAA,wBAAwB,EAAE,wBAAwB;AAClD,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,kBAAkB,EAAE,kBAAkB;AACtC,IAAA,mBAAmB,EAAE,mBAAmB;AACxC,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,gBAAgB,EAAE,gBAAgB;AAClC,IAAA,WAAW,EAAE,WAAW;AACxB,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,oBAAoB,EAAE,oBAAoB;AAC1C,IAAA,2BAA2B,EAAE,2BAA2B;AACxD,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,mBAAmB,EAAE,mBAAmB;AACxC,IAAA,cAAc,EAAE,eAAe;AAC/B,IAAA,eAAe,EAAE,eAAe;CACxB;;AC/rDH,MAAM,kBAAkB,GAAG;AAChC,IAAA,aAAa,CAAC,EAAyB,EAAE,IAAa,EAAE,KAAc,EAAA;QACpE,QAAQ,EAAE;YACR,KAAK,qBAAqB,CAAC,GAAG;gBAC5B,OAAO,IAAI,IAAI,KAAK;YACtB,KAAK,qBAAqB,CAAC,EAAE;gBAC3B,OAAO,IAAI,IAAI,KAAK;;IAE1B,CAAC;AACD,IAAA,YAAY,CAAC,EAAwB,EAAE,IAAY,EAAE,KAAa,EAAA;QAChE,QAAQ,EAAE;YACR,KAAK,oBAAoB,CAAC,GAAG;gBAC3B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,oBAAoB,CAAC,GAAG;gBAC3B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,oBAAoB,CAAC,IAAI;gBAC5B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,oBAAoB,CAAC,QAAQ;gBAChC,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,oBAAoB,CAAC,GAAG;gBAC3B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,oBAAoB,CAAC,GAAG;gBAC3B,OAAO,IAAI,IAAI,KAAK;YACtB,KAAK,oBAAoB,CAAC,MAAM;gBAC9B,OAAO,IAAI,IAAI,KAAK;YACtB,KAAK,oBAAoB,CAAC,MAAM;gBAC9B,OAAO,IAAI,IAAI,KAAK;YACtB,KAAK,oBAAoB,CAAC,KAAK;gBAC7B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,oBAAoB,CAAC,MAAM;gBAC9B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,oBAAoB,CAAC,MAAM;gBAC9B,OAAO,IAAI,GAAG,KAAK;;IAEzB,CAAC;AACD,IAAA,aAAa,CAAC,EAAyB,EAAE,IAAY,EAAE,KAAa,EAAA;QAClE,QAAQ,EAAE;YACR,KAAK,qBAAqB,CAAC,GAAG;gBAC5B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,qBAAqB,CAAC,GAAG;gBAC5B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,qBAAqB,CAAC,IAAI;gBAC7B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,qBAAqB,CAAC,QAAQ;gBACjC,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,qBAAqB,CAAC,GAAG;gBAC5B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,qBAAqB,CAAC,MAAM;gBAC/B,OAAO,IAAI,GAAG,KAAK;YACrB,KAAK,qBAAqB,CAAC,MAAM;gBAC/B,OAAO,IAAI,GAAG,KAAK;;IAEzB,CAAC;CACF;;ACfD,IAAO,uBAAuB,GAAG,MAAM,CAAC,uBAAuB;AAC/D,IAAO,MAAM,GAAG,MAAM,CAAC,MAAM;AAI7B,MAAM,mBAAmB,GAAG;AAC1B,IAAA,gBAAgB,CAAC,KAMhB,EAAA;QACC,OAAO,IAAI,gBAAgB,CAAC;AAC1B,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,SAAS;AACvB,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;AAClC,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,YAAY,CAAC,KAAyC,EAAA;QACpD,OAAO,IAAI,YAAY,CAAC;AACtB,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,aAAa,CAAC,KAKb,EAAA;QACC,OAAO,IAAI,aAAa,CAAC;YACvB,QAAQ,EAAE,aAAa,CAAC,OAAO;YAC/B,KAAK,EAAE,MAAM,CAAC,UAAU;AACxB,YAAA,GAAG,KAAK;AACT,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,cAAc,CAAC,KAA8E,EAAA;QAC3F,OAAO,IAAI,cAAc,CAAC;AACxB,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW;AACzC,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,cAAc,CAAC,EACb,KAAK,EACL,SAAS,EACT,cAAc,GAKf,EAAA;QACC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,EAAE;YACpC,MAAM,IAAI,SAAS,CAAC,CAAA,8BAAA,EAAiC,KAAK,CAAA,CAAE,EAAE,EAAE,cAAc,EAAE,CAAC;QACnF;QACA,OAAO,IAAI,eAAe,CAAC;YACzB,KAAK;YACL,cAAc;YACd,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,SAAS,EAAE,SAAS,IAAI,IAAI;AAC7B,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,eAAe,CAAC,EACd,KAAK,EACL,cAAc,EACd,aAAa,GAKd,EAAA;QACC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE;AACrC,YAAA,MAAM,IAAI,SAAS,CAAC,CAAA,+BAAA,EAAkC,KAAK,CAAA,CAAE,EAAE,EAAE,cAAc,EAAE,aAAa,IAAI,cAAc,EAAE,CAAC;QACrH;QACA,OAAO,IAAI,eAAe,CAAC;YACzB,KAAK;YACL,cAAc;YACd,KAAK,EAAE,MAAM,CAAC,YAAY;AAC1B,YAAA,SAAS,EAAE,IAAI;AAChB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,GAAG,CAAC,KAA2D,EAAA;QAC7D,OAAO,IAAI,GAAG,CAAC;AACb,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,qBAAqB,CAAC,KAAkD,EAAA;AACtE,QAAA,IAAI,KAAK,CAAC,IAAI,YAAY,eAAe,IAAI,KAAK,CAAC,KAAK,YAAY,eAAe,EAAE;AACnF,YAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,6BAA6B,CAAC;YACrI,OAAO,IAAI,eAAe,CAAC;gBACzB,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACrF,gBAAA,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,KAAK,EAAE,MAAM,CAAC,WAAW;AAC1B,aAAA,CAAC;QACJ;QACA,OAAO,IAAI,qBAAqB,CAAC;AAC/B,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,WAAW;AAC1B,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,sBAAsB,CAAC,KAAmD,EAAA;AACxE,QAAA,IAAI,KAAK,CAAC,IAAI,YAAY,eAAe,IAAI,KAAK,CAAC,KAAK,YAAY,eAAe,EAAE;AACnF,YAAA,SAAS,CACP,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAC7F,8BAA8B,CAC/B;YACD,OAAO,IAAI,eAAe,CAAC;gBACzB,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACtF,gBAAA,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,KAAK,EAAE,MAAM,CAAC,YAAY;AAC3B,aAAA,CAAC;QACJ;QACA,OAAO,IAAI,sBAAsB,CAAC;AAChC,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,YAAY;AAC3B,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,2BAA2B,CAAC,KAAwD,EAAA;QAClF,OAAO,IAAI,2BAA2B,CAAC;AACrC,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,yBAAyB,CAAC,KAAsD,EAAA;AAC9E,QAAA,aAAa,CACX,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EACvC,CAAA,+BAAA,EAAkC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAA,SAAA,EAAY,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAC9E,KAAK,CAAC,cAAc,CACrB;QACD,OAAO,IAAI,yBAAyB,CAAC;AACnC,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,YAAY,CAAC,KAA+E,EAAA;QAC1F,OAAO,IAAI,YAAY,CAAC;AACtB,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS;AACvC,SAAA,CAAC;IACJ,CAAC;IACD,gBAAgB,CAAC,EAAE,MAAM,EAA0B,EAAA;QACjD,OAAO,IAAI,gBAAgB,CAAC;YAC1B,EAAE,EAAE,MAAM,EAAE;YACZ,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM;AACP,SAAA,CAAC;IACJ,CAAC;IACD,mBAAmB,CAAC,EAAE,IAAI,EAAwB,EAAA;AAChD,QAAA,IAAI,IAAI,YAAY,oBAAoB,EAAE;;YAExC,OAAO,IAAI,mBAAmB,CAAC;AAC7B,gBAAA,GAAG,IAAI;AACR,aAAA,CAAC;QACJ;QAEA,OAAO,IAAI,mBAAmB,CAAC;YAC7B,IAAI;YACJ,cAAc,EAAE,IAAI,CAAC,cAAc;AACpC,SAAA,CAAC;IACJ,CAAC;IACD,KAAK,CACH,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAwE,EACxG,GAAG,UAA0C,EAAA;QAE7C,OAAO,IAAI,KAAK,CAAC;AACf,YAAA,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE;YACvB,cAAc;YACd,OAAO,EAAE,OAAO,IAAI,IAAI;YACxB,KAAK,EAAE,KAAK,IAAI,IAAI;AACrB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,sBAAsB,CAAC,KAAmD,EAAA;AACxE,QAAA,IAAI,KAAK,CAAC,IAAI,YAAY,YAAY,IAAI,KAAK,CAAC,KAAK,YAAY,YAAY,EAAE;YAC7E,OAAO,IAAI,YAAY,CAAC;gBACtB,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtF,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,aAAA,CAAC;QACJ;QACA,OAAO,IAAI,sBAAsB,CAAC;AAChC,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,oBAAoB,CAAC,EACnB,MAAM,EACN,KAAK,EACL,cAAc,GAKf,EAAA;QACC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAA,uBAAA,EAA0B,MAAM,CAAC,KAAK,CAAA,gCAAA,EAAmC,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;QACvI,OAAO,IAAI,oBAAoB,CAAC;YAC9B,MAAM;YACN,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,cAAc;AACf,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,mBAAmB,CAAC,EAClB,MAAM,EACN,KAAK,EACL,cAAc,GAKf,EAAA;QACC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAA,uBAAA,EAA0B,MAAM,CAAC,KAAK,CAAA,gCAAA,EAAmC,KAAK,CAAC,KAAK,CAAA,CAAE,CAAC;QACvI,OAAO,IAAI,mBAAmB,CAAC;YAC7B,MAAM;YACN,KAAK;YACL,cAAc;AACf,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,eAAe,CAAC,KAAwE,EAAA;QACtF,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;AACpF,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,mBAAmB,CAAC,KAA4F,EAAA;QAC9G,OAAO,IAAI,mBAAmB,CAAC;AAC7B,YAAA,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE;AAC9B,YAAA,WAAW,EAAE,KAAK,EAAE,WAAW,IAAI,IAAI;AACvC,YAAA,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI;AAChC,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAyD,EAAA;QACnF,OAAO,IAAI,IAAI,CAAC;YACd,KAAK;YACL,cAAc;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;AACnB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAyC,EAAA;QACnE,SAAS,CAAC,IAAI,CAAC,KAAK,YAAY,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,gCAAgC,CAAC;AACjH,QAAA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,kCAAkC,CAAC;QAC3F,OAAO,IAAI,YAAY,CAAC;YACtB,IAAI;YACJ,OAAO;YACP,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3B,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,mBAAmB,CAAC,KAAgD,EAAA;AAClE,QAAA,SAAS,CACP,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EACvH,6DAA6D,CAC9D;QACD,OAAO,IAAI,mBAAmB,CAAC;AAC7B,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnD,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAA6E,EAAA;AACxH,QAAA,IAAI,IAAI,YAAY,aAAa,EAAE;YACjC,OAAO,IAAI,aAAa,CAAC;AACvB,gBAAA,GAAG,IAAI;gBACP,KAAK;gBACL,cAAc;AACf,aAAA,CAAC;QACJ;QAEA,OAAO,IAAI,eAAe,CAAC;YACzB,IAAI;YACJ,KAAK;YACL,cAAc;AACf,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,WAAW,CAAC,EAAE,KAAK,EAAE,cAAc,EAAyD,EAAA;QAC1F,OAAO,IAAI,WAAW,CAAC;YACrB,KAAK;YACL,cAAc;YACd,KAAK,EAAE,MAAM,CAAC,WAAW;AAC1B,SAAA,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,EACX,IAAI,EACJ,KAAK,EACL,KAAK,EACL,cAAc,GAMf,EAAA;AACC,QAAA,SAAS,CAAC,IAAI,CAAC,KAAK,YAAY,MAAM,CAAC,gBAAgB,EAAE,0CAA0C,EAAE,IAAI,CAAC,cAAc,CAAC;QACzH,OAAO,IAAI,YAAY,CAAC;YACtB,IAAI;YACJ,KAAK;YACL,KAAK;YACL,cAAc;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,sBAAsB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAgD,EAAA;AAC5F,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,KAAI;YAChD,SAAS,CACP,KAAK,YAAY,uBAAuB,EACxC,CAAA,eAAA,EAAkB,KAAK,CAAA,0CAAA,CAA4C,EACnE,cAAc,CACf;YACD,OAAO,KAAK,CAAC,eAAe,KAAK,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK;AAClH,QAAA,CAAC,CAAC;QACF,OAAO,IAAI,sBAAsB,CAAC;YAChC,KAAK;YACL,cAAc;YACd,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACnF,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,eAAe,CAAC,EAAE,WAAW,EAAE,cAAc,EAAyC,EAAA;QACpF,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK;AAEvC,QAAA,SAAS,CAAC,KAAK,EAAE,iCAAiC,CAAC;QAEnD,OAAO,IAAI,eAAe,CAAC;YACzB,WAAW;YACX,cAAc;YACd,KAAK;AACN,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,UAAU,CAAC,KAA8C,EAAA;QACvD,OAAO,IAAI,UAAU,CAAC;AACpB,YAAA,GAAG,KAAK;AACR,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;IACJ,CAAC;AACD,IAAA,UAAU,CAAC,KAA8C,EAAA;QACvD,OAAO,IAAI,UAAU,CAAC;AACpB,YAAA,GAAG,KAAK;AACR,YAAA,YAAY,EAAE,IAAI;AACnB,SAAA,CAAC;IACJ,CAAC;CACuF;AAgB1F,SAAS,UAAU,CAAC,KAAsB,EAAA;AACxC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC;AACzE;AAEA,SAAS,kBAAkB,CAAC,KAAa,EAAA;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAClD;MAEa,WAAW,GAAgB,IAAI,KAAK,CAAC,EAA4B,EAAE;IAC9E,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAA;QACb,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,8CAA8C,CAAC;AAE/E,QAAA,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE;AAChC,YAAA,OAAO,mBAAmB,CAAC,QAAQ,CAAC;QACtC;AACA,QAAA,OAAO,CAAC,KAAoB,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC;IACrE,CAAC;AACF,CAAA;;ICxZW;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EANW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AAOb,MAAM,aAAa,GAAG;;AAE3B,IAAA,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE;AACvB,IAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;AACpB,IAAA,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE;AACnB,IAAA,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE;AACtB,IAAA,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE;CACrB;IACW;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW;AACX,IAAA,SAAA,CAAA,SAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU;AACV,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI;AACJ,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO;AACT,CAAC,EALW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;MAMR,UAAU,GAAG,CAAC,QAAkB,EAAE,QAAkB,KAAa;IAC5E,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC;AAC3D;AAEA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAE7D,MAAM,iBAAiB,GAAG,CAAC,CAAW,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAWxE,MAAM,UAAU,CAAA;IACN,QAAQ,GAAc,EAAE;AACzB,IAAA,SAAS,CAAC,KAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;IACvB;AAEA,IAAA,UAAU,CAAC,OAAgB,EAAA;QACzB,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,gEAAgE,CAAC;AACxG,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B;AAEA,IAAA,MAAM,CAAC,QAAkB,EAAA;AACvB,QAAA,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;AACvC,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpB;QACF;IACF;IAIA,KAAK,CAAC,aAAuD,EAAE,OAAgB,EAAA;AAC7E,QAAA,IAAI,aAAa,YAAY,gBAAgB,EAAE;AAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;QACxC;AAAO,aAAA,IAAI,aAAa,YAAY,KAAK,EAAE;;YAEzC,IAAI,CAAC,MAAM,CAAC;gBACV,KAAK,EAAE,QAAQ,CAAC,KAAK;AACrB,gBAAA,cAAc,EAAE,6BAA6B,CAAC,aAAa,CAAC;AAC5D,gBAAA,OAAO,EAAE,CAAA,EAAG,aAAa,CAAC,OAAO,CAAA,CAAE;gBACnC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,SAAS,EAAE,SAAS,CAAC,WAAW;AACjC,aAAA,CAAC;AACF,YAAA,IAAI,aAAa,CAAC,KAAK,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC;oBACV,KAAK,EAAE,QAAQ,CAAC,KAAK;AACrB,oBAAA,cAAc,EAAE,6BAA6B,CAAC,aAAa,CAAC,KAAK,CAAC;AAClE,oBAAA,OAAO,EAAE,CAAA,WAAA,EAAc,aAAa,CAAC,KAAK,CAAA,CAAE;AAC5C,oBAAA,KAAK,EAAG,aAAa,CAAC,KAAe,CAAC,KAAK;oBAC3C,SAAS,EAAE,SAAS,CAAC,WAAW;AACjC,iBAAA,CAAC;YACJ;QACF;aAAO;AACL,YAAA,SAAS,CAAC,OAAO,EAAE,iDAAiD,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC;gBACV,KAAK,EAAE,QAAQ,CAAC,KAAK;AACrB,gBAAA,cAAc,EAAE,aAAa;gBAC7B,OAAO;AACP,gBAAA,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;gBACxB,SAAS,EAAE,SAAS,CAAC,WAAW;AACjC,aAAA,CAAC;QACJ;IACF;IACA,IAAI,CAAC,MAAwC,EAAE,OAAe,EAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;IAC1G;IACA,KAAK,CAAC,MAAwC,EAAE,OAAe,EAAA;QAC7D,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;IAC3G;IACA,IAAI,CAAC,MAAwC,EAAE,OAAe,EAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;IAC7G;IACA,QAAQ,CAAC,MAAwC,EAAE,OAAe,EAAA;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;IAC9G;AACD;AAED,MAAM,6BAA6B,GAAG,CAAC,KAAc,KAAgC;AACnF,IAAA,IAAI,KAAK,YAAY,SAAS,EAAE;QAC9B,OAAO,KAAK,CAAC,cAAc;IAC7B;AACA,IAAA,OAAO,SAAS;AAClB,CAAC;AAEM,MAAM,MAAM,GAAG,IAAI,UAAU;MAEvB,kBAAkB,GAAG,CAChC,MAAmC,EACnC,cAA8B,KAC5B;AACF,IAAA,OAAO,CAAC,GAAG,IAAW,KAAI;AACxB,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC;QACxB;QAAE,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,SAAS,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE;gBAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC;YACtC;AACA,YAAA,MAAM,CAAC;QACT;AACF,IAAA,CAAC;AACH;MAEa,cAAc,CAAA;IACzB,UAAU,GAAe,EAAE;IAC3B,cAAc,GAA6B,EAAE;IAC7C,gBAAgB,GAA+B,EAAE;IACjD,qBAAqB,GAAG,KAAK;AAE7B,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;IACxB;AACA,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;AAEA,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc;IAC5B;AAEA,IAAA,gBAAgB,CAAC,aAAuC,EAAA;AACtD,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa;;QAEnC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;AACjD,YAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB;gBAAE;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE;QACtC;IACF;AAEA,IAAA,MAAM,CAAC,GAAa,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,OAAO,EAAE;AAChE,YAAA,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;QAC5B;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrD,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACrC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3C;iBAAO;gBACL,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YACzC;QACF;IACF;AAEA,IAAA,WAAA,GAAA,EAAuB;IAEvB,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D;IAEA,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,SAAS,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC;IAEA,YAAY,GAAA;AACV,QAAA,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;AACzC,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,GAAG,CAAI,EAAW,EAAA;QAChB,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;IAChD;AACQ,IAAA,OAAO,eAAe,GAAG,IAAI,cAAc,EAAE;AAC7C,IAAA,OAAO,UAAU,GAAG,IAAI,iBAAiB,EAAkB;AAEnE,IAAA,OAAO,MAAM,GAAA;QACX,OAAO,IAAI,cAAc,EAAE;IAC7B;AACA,IAAA,WAAW,OAAO,GAAA;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;QACtC,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,IAAI,CAAC,eAAe;QAC7B;AACA,QAAA,OAAO,GAAG;IACZ;;;MC/MoB,YAAY,CAAA;AAChC,IAAA,cAAc;AACd,IAAA,IAAI,GAAG,IAAI,GAAG,EAA6B;AAE3C,IAAA,WAAA,CAAY,aAAsD,EAAA;AAChE,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa;IACrC;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACnB;AACA,IAAA,MAAM,CAAC,GAAS,EAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACnD;IACA,OAAO,CAAC,UAAsE,EAAE,OAAuB,EAAA;AACrG,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAC7C,YAAA,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;QACpD;IACF;AACA,IAAA,GAAG,CAAC,GAAS,EAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrD;AACA,IAAA,GAAG,CAAC,GAAS,EAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD;IACA,GAAG,CAAC,GAAS,EAAE,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACrD,QAAA,OAAO,IAAI;IACb;AACA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;IACvB;IACA,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IAC3B;AACA,IAAA,CAAC,IAAI,GAAA;AACH,QAAA,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AACtC,YAAA,MAAM,GAAG;QACX;IACF;AACA,IAAA,CAAC,MAAM,GAAA;AACL,QAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAC1C,YAAA,MAAM,KAAK;QACb;IACF;IACA,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;IAC3B;AACA,IAAA,KAAK,MAAM,CAAC,WAAW,CAAC,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI;IAC9B;AACD;;MC/CY,kBAAkB,CAAA;IACb,UAAU,GAAG,KAAK;AAClC,IAAA,IAAW,EAAE,GAAA;QACX,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/C;AACgB,IAAA,IAAI;AACpB,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;IACvB;AACgB,IAAA,WAAW;AACX,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,cAAc;AAC9B,IAAA,WAAA,CAAY,KAAoE,EAAA;AAC9E,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;IAEO,mBAAmB,GAAA;QACxB,OAAO,WAAW,CAAC,cAAc,CAAC;YAChC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;YAC1C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,WAAW;AAC3B,YAAA,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI;YAC5C,oBAAoB,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI,GAAG,EAAE;AAC7D,YAAA,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,IAAI,IAAI;AACzD,SAAA,CAAC;IACJ;AACD;;MCzBY,kBAAkB,CAAA;AACb,IAAA,UAAU;AAC1B,IAAA,IAAW,EAAE,GAAA;QACX,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/C;AACgB,IAAA,IAAI;AACpB,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;IACvB;AACgB,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,sBAAsB;AACtB,IAAA,eAAe;AACf,IAAA,YAAY;AACZ,IAAA,IAAI;AACJ,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,cAAc;AAC9B,IAAA,WAAA,CAAY,KAAqD,EAAA;AAC/D,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW;AACpC,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,sBAAsB;AAC1D,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe;AAC5C,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;IAC9B;IAEA,sBAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,KAAK,SAAS;IAChD;AAEA,IAAA,aAAa,CAAC,cAA8B,EAAA;AAC1C,QAAA,IAAI,eAAe,GAA0B,IAAI,CAAC,eAAe;AACjE,QAAA,IAAI,YAAY,GAA0B,IAAI,CAAC,YAAY;QAC3D,MAAM,OAAO,GAAqB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACnD,QAAA,MAAM,KAAK,GAAqB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAC5D,MAAM,qBAAqB,GAAwB,EAAE;QACrD,IAAI,wBAAwB,GAAmC,SAAS;AACxE,QAAA,IAAI,oBAAoB,GAAG,IAAI,GAAG,EAAU;AAE5C,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU;QAEzC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC;YACjE,IAAI,SAAS,CAAC,sBAAsB,EAAE,IAAI,wBAAwB,KAAK,SAAS,EAAE;gBAChF,wBAAwB,GAAG,SAAS;YACtC;AACA,YAAA,IAAI,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE;gBACnC,oBAAoB,GAAG,oBAAoB,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;YACnF;AACA,YAAA,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AACxC,YAAA,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE;gBAChD;YACF;iBAAO;gBACL,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YAC9C;AACA,YAAA,eAAe,KAAK,SAAS,CAAC,eAAe;AAC7C,YAAA,YAAY,KAAK,SAAS,CAAC,YAAY;YACvC,IAAI,SAAS,CAAC,eAAe,IAAI,SAAS,CAAC,eAAe,KAAK,eAAe;AAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;YACvH,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,KAAK,YAAY;AAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AAC3G,YAAA,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE;;AAEtC,gBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YACtB;YACA,IAAI,SAAS,CAAC,IAAI;AAAE,gBAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAChD;AACA,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,YAAA,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3H,YAAA,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,CAAC,CAAC,KACA,CAAC,CAAC,gBAAgB,YAAY,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CACjI;YAED,IAAI,CAAC,SAAS,EAAE;gBACd,IAAI,WAAW,EAAE;AACf,oBAAA,MAAM,CAAC,KAAK,CACV,IAAI,CAAC,cAAc,EACnB,CAAA,sFAAA,CAAwF;wBACtF,CAAA,gHAAA,CAAkH;AAClH,wBAAA,CAAA,mKAAA,CAAqK,CACxK;gBACH;qBAAO;oBACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACxC;YACF;QACF;AAEA,QAAA,aAAa,CAAC,eAAe,EAAE,oBAAoB,CAAC;AACpD,QAAA,aAAa,CAAC,YAAY,EAAE,iBAAiB,CAAC;AAE9C,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,wBAAwB,EAAE;AAC5D,YAAA,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC,cAAc,EACnD,CAAA,+BAAA,EAAkC,wBAAwB,CAAC,EAAE,CAAA,iPAAA,CAAmP,CACjT;QACH;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;YAClC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI;YAC3D,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,IAAI;YAC3D,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,IAAI,IAAI;YACzD,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,IAAI,IAAI;AAC1D,SAAA,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE;YAC9B,oBAAoB,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9E;AAEA,QAAA,MAAM,yBAAyB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;QAElD,OAAO,WAAW,CAAC,QAAQ,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;YACrC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,eAAe,EAAE,yBAAyB,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,eAAe;YACnI,YAAY;YACZ,qBAAqB;AACrB,YAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,yBAAyB,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;YAClE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW;AACX,YAAA,oBAAoB,EAAE,oBAAoB;YAC1C,cAAc,EAAE,IAAI,CAAC,cAAc;AACnC,YAAA,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,IAAI;AAC7C,SAAA,CAAC;IACJ;IAEQ,gBAAgB,CAAC,cAA8B,EAAE,YAAgC,EAAA;AACvF,QAAA,IAAI,YAAY,YAAY,0BAA0B,EAAE;YACtD,OAAO,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,YAAY,CAAC;QACnE;aAAO;YACL,OAAO,cAAc,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACnF;IACF;IAEQ,uBAAuB,CAAC,cAA8B,EAAE,aAAyC,EAAA;AACvG,QAAA,MAAM,IAAI,GAAG,WAAW,CAAC,cAAc,CAAC;AACtC,YAAA,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,qBAAqB;AACvD,YAAA,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC;AAChD,YAAA,aAAa,EAAE,WAAW,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAClD,cAAc,EAAE,cAAc,CAAC,IAAI;AACnC,YAAA,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,MAAM,CAAC,SAAS;AAC5B,YAAA,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;gBACtB,cAAc,EAAE,cAAc,CAAC,IAAI;aACpC,CAAC;AACF,YAAA,gBAAgB,EAAE,IAAI;YACtB,MAAM,EAAE,IAAI;AACZ,YAAA,IAAI,EAAE,KAAK;AACZ,SAAA,CAAC;QACF,MAAM,WAAW,GAA0B,EAAE;AAC7C,QAAA,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,SAAS,EAAE;AAC9C,YAAA,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE;gBAClD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC;AAC/D,gBAAA,IAAI,cAAc,CAAC,IAAI,EAAE;AACvB,oBAAA,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;oBACrC;gBACF;YACF;QACF;QACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,KACpB,WAAW,CAAC,mBAAmB,CAAC;AAC9B,YAAA,IAAI,EAAE,WAAW,CAAC,wBAAwB,CAAC;AACzC,gBAAA,MAAM,EAAE,WAAW,CAAC,oBAAoB,CAAC;oBACvC,UAAU,EAAE,EAAE,CAAC,UAAU;oBACzB,IAAI,EAAE,EAAE,CAAC,IAAI;iBACd,CAAC;AACF,gBAAA,IAAI,EAAE,EAAE;gBACR,cAAc,EAAE,cAAc,CAAC,IAAI;gBACnC,KAAK,EAAE,MAAM,CAAC,SAAS;aACxB,CAAC;SACH,CAAC,CACH,CACF;QACD,OAAO,IAAI,kBAAkB,CAAC;AAC5B,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,cAAc,CAAC,IAAI;AACnC,YAAA,sBAAsB,EAAE,EAAE;AAC1B,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,IAAI,EAAE,aAAa;AACpB,SAAA,CAAC;IACJ;AAEQ,IAAA,OAAO,uBAAuB,CAAC,QAAwB,EAAE,OAAyB,EAAA;AACxF,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC;AACvC,YAAA,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC;AACzB,gBAAA,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC;AAChC,oBAAA,IAAI,EAAE,WAAW,CAAC,aAAa,CAAC;AAC9B,wBAAA,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,CAAC,eAAe,CAAC;AAC7B,wBAAA,SAAS,EAAE,EAAE;wBACb,cAAc,EAAE,cAAc,CAAC,IAAI;wBACnC,KAAK,EAAE,MAAM,CAAC,WAAW;qBAC1B,CAAC;oBACF,cAAc,EAAE,cAAc,CAAC,IAAI;oBACnC,KAAK,EAAE,MAAM,CAAC,SAAS;iBACxB,CAAC;gBACF,cAAc,EAAE,cAAc,CAAC,IAAI;aACpC,CAAC;AACF,YAAA,QAAQ,EAAE,WAAW,CAAC,KAAK,CACzB,EAAE,cAAc,EAAE,cAAc,CAAC,IAAI,EAAE,EACvC,WAAW,CAAC,mBAAmB,CAAC;AAC9B,gBAAA,IAAI,EAAE,WAAW,CAAC,wBAAwB,CAAC;AACzC,oBAAA,IAAI,EAAE,EAAE;oBACR,KAAK,EAAE,MAAM,CAAC,SAAS;AACvB,oBAAA,MAAM,EAAE,WAAW,CAAC,oBAAoB,CAAC;AACvC,wBAAA,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,qBAAqB;qBACxD,CAAC;oBACF,cAAc,EAAE,cAAc,CAAC,IAAI;iBACpC,CAAC;AACH,aAAA,CAAC,CACH;YACD,cAAc,EAAE,cAAc,CAAC,IAAI;AACnC,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA,CAAC;QAEF,OAAO,WAAW,CAAC,cAAc,CAAC;AAChC,YAAA,GAAG,QAAQ;AACX,YAAA,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC/F,SAAA,CAAC;IACJ;IAEQ,iBAAiB,GAAA;QACvB,OAAO,WAAW,CAAC,cAAc,CAAC;AAChC,YAAA,UAAU,EAAE,SAAS,CAAC,WAAW,CAAC,uBAAuB;YACzD,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,YAAA,IAAI,EAAE,EAAE;YACR,gBAAgB,EAAE,IAAI,oBAAoB,CAAC;AACzC,gBAAA,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBACjD,MAAM,EAAE,gBAAgB,CAAC,OAAO;gBAChC,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC;YACF,UAAU,EAAE,MAAM,CAAC,SAAS;AAC5B,YAAA,aAAa,EAAE,WAAW,CAAC,mBAAmB,CAAC;AAC7C,gBAAA,WAAW,EAAE,oCAAoC;aAClD,CAAC;YACF,cAAc,EAAE,IAAI,CAAC,cAAc;AACnC,YAAA,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;gBACtB,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC;YACF,MAAM,EAAE,IAAI;AACZ,YAAA,IAAI,EAAE,KAAK;AACZ,SAAA,CAAC;IACJ;AACD;AAEK,MAAO,cAAe,SAAQ,YAA4F,CAAA;AAC9H,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5B;AAEA,IAAA,IAAI,oBAAoB,GAAA;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC7B,aAAA,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU;aACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IACxB;AAEA,IAAA,gBAAgB,CAAC,IAAuB,EAAA;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACjC,QAAA,SAAS,CAAC,UAAU,YAAY,kBAAkB,EAAE,qDAAqD,CAAC;AAC1G,QAAA,OAAO,UAAU;IACnB;AAEA,IAAA,WAAW,CAAC,IAAuB,EAAA;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC,QAAA,SAAS,CAAC,aAAa,YAAY,kBAAkB,EAAE,6DAA6D,CAAC;AACrH,QAAA,OAAO,aAAa;IACtB;AACD;;;;"}
1
+ {"version":3,"file":"contract-class-model-CY9ZMyyU.js","sources":["../src/constants.ts","../src/errors.ts","../src/util/base-32.ts","../src/util/base-64.ts","../src/util/index.ts","../src/util/polyfills.ts","../src/util/absolute-path.ts","../src/awst/source-location.ts","../src/awst/models.ts","../src/awst/wtypes.ts","../src/awst_build/ptypes/base.ts","../src/awst_build/symbol-name.ts","../src/awst_build/ptypes/transient-type-errors.ts","../src/awst_build/ptypes/util.ts","../src/awst_build/ptypes/intrinsic-enum-type.ts","../src/awst_build/ptypes/op-ptypes.ts","../src/awst_build/ptypes/index.ts","../src/awst_build/eb/transactions/util.ts","../src/awst/nodes.ts","../src/awst/constant-evaluation.ts","../src/awst/node-factory.ts","../src/logger/index.ts","../src/util/custom-key-map.ts","../src/awst_build/models/logic-sig-class-model.ts","../src/awst_build/models/contract-class-model.ts"],"sourcesContent":["const algoTsPackage = '@algorandfoundation/algorand-typescript'\n\nexport const Constants = {\n algoTsPackage,\n moduleNames: {\n typescript: {\n es5: 'typescript/lib/lib.es5.d.ts',\n },\n polytype: 'polytype/lib/polytype-module.d.ts',\n algoTs: {\n arc28: `${algoTsPackage}/arc-28.d.ts`,\n arc4: {\n index: `${algoTsPackage}/arc4/index.d.ts`,\n encodedTypes: `${algoTsPackage}/arc4/encoded-types.d.ts`,\n c2c: `${algoTsPackage}/arc4/c2c.d.ts`,\n },\n arrays: `${algoTsPackage}/arrays.d.ts`,\n baseContract: `${algoTsPackage}/base-contract.d.ts`,\n box: `${algoTsPackage}/box.d.ts`,\n compiled: `${algoTsPackage}/compiled.d.ts`,\n itxn: `${algoTsPackage}/itxn.d.ts`,\n itxnCompose: `${algoTsPackage}/itxn-compose.d.ts`,\n gtxn: `${algoTsPackage}/gtxn.d.ts`,\n logicSig: `${algoTsPackage}/logic-sig.d.ts`,\n referenceArray: `${algoTsPackage}/reference-array.d.ts`,\n onCompleteAction: `${algoTsPackage}/on-complete-action.d.ts`,\n op: `${algoTsPackage}/op.d.ts`,\n primitives: `${algoTsPackage}/primitives.d.ts`,\n reference: `${algoTsPackage}/reference.d.ts`,\n state: `${algoTsPackage}/state.d.ts`,\n templateVar: `${algoTsPackage}/template-var.d.ts`,\n transactions: `${algoTsPackage}/transactions.d.ts`,\n util: `${algoTsPackage}/util.d.ts`,\n mutableObject: `${algoTsPackage}/mutable-object.d.ts`,\n },\n },\n\n symbolNames: {\n approvalProgramMethodName: 'approvalProgram',\n clearStateProgramMethodName: 'clearStateProgram',\n readonlyDecoratorName: 'arc4.readonly',\n arc4BareDecoratorName: 'arc4.baremethod',\n arc4AbiDecoratorName: 'arc4.abimethod',\n contractOptionsDecoratorName: 'contract',\n logicSigOptionsDecoratorName: 'logicsig',\n constructorMethodName: 'constructor',\n logicSigProgramMethodName: 'program',\n defaultCreateMethodName: '__algots__.defaultCreate',\n conventionalRouting: {\n closeOutOfApplicationMethodName: 'closeOutOfApplication',\n createApplicationMethodName: 'createApplication',\n deleteApplicationMethodName: 'deleteApplication',\n optInToApplicationMethodName: 'optInToApplication',\n updateApplicationMethodName: 'updateApplication',\n },\n },\n\n algo: {\n arc4: {\n logPrefixHex: '151F7C75',\n },\n addressLength: 32,\n encodedAddressLength: 58,\n maxTransactionGroupSize: 16,\n zeroAddressB32: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ',\n },\n\n supportedAvmVersions: [10n, 11n, 12n, 13n],\n targetedPuyaVersion: '5.8.0-rc.3',\n puyaGithubRepo: 'algorandfoundation/puya',\n minNodeVersion: '20.11.1',\n languageServerSource: 'puyats',\n} as const\n\nexport type SupportedAvmVersion = (typeof Constants.supportedAvmVersions)[number]\n","import type { SourceLocation } from './awst/source-location'\nimport type { PType, PTypeOrClass } from './awst_build/ptypes'\nimport type { CodeFix } from './code-fix/code-fix'\n\ntype PuyaErrorOptions = {\n cause?: Error\n sourceLocation?: SourceLocation\n}\n\nexport class PuyaError extends Error {\n readonly sourceLocation: SourceLocation | undefined\n constructor(message?: string, options?: PuyaErrorOptions) {\n super(message, options)\n this.sourceLocation = options?.sourceLocation\n }\n}\n\n/**\n * Any error that is 'caused' by a user of Puya\n */\nexport abstract class UserError extends PuyaError {}\n\n/**\n * Thrown when the user's code is invalid, or not supported\n */\nexport class CodeError extends UserError {\n static unexpectedUnhandledArgs({ sourceLocation }: { sourceLocation: SourceLocation }) {\n return new CodeError('Unexpected/unhandled args', {\n sourceLocation,\n })\n }\n static unexpectedTypeArgs({ sourceLocation }: { sourceLocation: SourceLocation }) {\n return new CodeError('Function does not accept type arguments', {\n sourceLocation,\n })\n }\n static expectedCompileTimeConstant({ sourceLocation }: { sourceLocation: SourceLocation }) {\n return new CodeError('Expected compile time constant', {\n sourceLocation,\n })\n }\n static invalidAssignmentTarget({ sourceLocation, name }: { sourceLocation: SourceLocation; name: string }) {\n return new CodeError(`${name} is not a valid assignment target`, {\n sourceLocation,\n })\n }\n static cannotResolveToType({\n sourceType,\n targetType,\n sourceLocation,\n }: {\n sourceLocation: SourceLocation\n sourceType: PType\n targetType: PTypeOrClass\n }) {\n return new CodeError(`Cannot resolve expression of type ${sourceType} to ${targetType}`, { sourceLocation })\n }\n}\n\nexport class FixableCodeError extends CodeError {\n readonly codeFix: CodeFix\n constructor(codeFix: CodeFix) {\n super(codeFix.errorMessage, { sourceLocation: codeFix.sourceLocation })\n this.codeFix = codeFix\n }\n}\n\n/**\n * Thrown when the compiler ends up in an unrecoverable state\n */\nexport class InternalError extends PuyaError {\n static shouldBeUnreachable() {\n return new InternalError('Code should be unreachable')\n }\n}\nexport class NotSupported extends CodeError {\n constructor(featureName: string, options?: PuyaErrorOptions) {\n super(`Not Supported: ${featureName}`, options)\n }\n}\n\n/**\n * Thrown when the user's environment is not set up correctly\n */\nexport class EnvironmentError extends UserError {}\n\nexport const throwError = (error: Error): never => {\n throw error\n}\nexport const wrapInCodeError = <T>(func: () => T, sourceLocation: SourceLocation) => {\n try {\n return func()\n } catch (e) {\n if (e instanceof Error) {\n throw new CodeError(e.message, { sourceLocation, cause: e })\n } else {\n throw new CodeError(String(e), { sourceLocation })\n }\n }\n}\n","const BASE32_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'.split('')\n\nconst CHAR_TO_NUM = BASE32_ALPHABET.reduce((acc, cur, index) => ((acc[cur] = index), acc), {} as Record<string, number>)\n\nexport const base32ToUint8Array = (value: string): Uint8Array => {\n let allChars = value\n .split('')\n .filter((c) => c !== '=')\n .map((c) => {\n const cUpper = c.toUpperCase()\n if (cUpper in CHAR_TO_NUM) return CHAR_TO_NUM[cUpper]\n throw new Error(`Invalid base32 char ${c}`)\n })\n const bytes = new Array<number>()\n while (allChars.length) {\n const [a, b, c, d, e, f, g, h, ...rest] = allChars\n if (a === undefined || b === undefined) break\n bytes.push(((a << 3) | (b >>> 2)) & 255)\n if (c === undefined || d === undefined) break\n bytes.push(((b << 6) | (c << 1) | (d >>> 4)) & 255)\n if (e === undefined) break\n bytes.push(((d << 4) | (e >>> 1)) & 255)\n if (f === undefined || g === undefined) break\n bytes.push(((e << 7) | (f << 2) | (g >>> 3)) & 255)\n if (h === undefined) break\n bytes.push(((g << 5) | h) & 255)\n allChars = rest\n }\n return new Uint8Array(bytes)\n}\n\nexport const uint8ArrayToBase32 = (value: Uint8Array): string => {\n let allBytes = Array.from(value)\n let base32str = ''\n while (allBytes.length) {\n const [a, b, c, d, e, ...rest] = allBytes ?? [0, 0, 0, 0, 0]\n\n if (allBytes.length < 1) break\n base32str += BASE32_ALPHABET[a >>> 3]\n base32str += BASE32_ALPHABET[((a << 2) | ((b || 0) >>> 6)) & 31]\n if (allBytes.length < 2) break\n base32str += BASE32_ALPHABET[(b >>> 1) & 31]\n base32str += BASE32_ALPHABET[((b << 4) | (c >>> 4)) & 31]\n if (allBytes.length < 3) break\n base32str += BASE32_ALPHABET[((c << 1) | (d >>> 7)) & 31]\n if (allBytes.length < 4) break\n base32str += BASE32_ALPHABET[(d >>> 2) & 31]\n base32str += BASE32_ALPHABET[((d << 3) | (e >>> 5)) & 31]\n if (allBytes.length < 5) break\n base32str += BASE32_ALPHABET[e & 31]\n allBytes = rest\n }\n return base32str\n}\n","/*\nBase 64 encode from/decode to Uint8Array.\n\nWe don't use Node's Uint8Array.from(Buffer.from(value, 'base64')) as it ignores invalid characters rather than erroring!\n\nAdapted from https://github.com/mathiasbynens/base64/blob/master/src/base64.js\n */\n\nimport { throwError } from '../errors'\n\nconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('')\n\nconst charToNum = new Map([...alphabet.entries()].map(([i, c]) => [c, i]))\nconst numToChar = new Map(alphabet.entries())\n\nfunction getCharForNum(n: number): string {\n return numToChar.get(n) ?? throwError(new Error(`${n} is outside of the base 64 char range`))\n}\n\nexport function base64ToUint8Array(input: string): Uint8Array {\n let length = input.length\n if (length % 4 === 0) {\n input = input.replace(/==?$/, '')\n length = input.length\n }\n if (length % 4 === 1) {\n throw new Error('Invalid length for base64 string.')\n }\n\n let bitCounter = 0\n let bitStorage = 0\n const output = new Uint8Array(Math.floor((length / 4) * 3))\n let outCounter = 0\n let position = -1\n while (++position < length) {\n const c = input.charAt(position)\n const buffer = charToNum.get(c) ?? throwError(new Error(`Invalid character ${c} at position ${position}`))\n bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer\n // Unless this is the first of a group of 4 characters…\n if (bitCounter++ % 4) {\n // convert the first 8 bits to a single ASCII character.\n output[outCounter++] = 0xff & (bitStorage >> ((-2 * bitCounter) & 6))\n }\n }\n return output\n}\n\nexport function uint8ArrayToBase64(input: Uint8Array) {\n const padding = input.length % 3\n let output = ''\n let position = -1\n let a\n let b\n let c\n let buffer\n // Make sure any padding is handled outside the loop.\n const length = input.length - padding\n\n while (++position < length) {\n // Read three bytes, i.e. 24 bits.\n a = input[position] << 16\n b = input[++position] << 8\n c = input[++position]\n buffer = a + b + c\n // Turn the 24 bits into four chunks of 6 bits each, and append the\n // matching character for each of them to the output.\n output +=\n getCharForNum((buffer >> 18) & 0x3f) +\n getCharForNum((buffer >> 12) & 0x3f) +\n getCharForNum((buffer >> 6) & 0x3f) +\n getCharForNum(buffer & 0x3f)\n }\n\n if (padding === 2) {\n a = input[position] << 8\n b = input[++position]\n buffer = a + b\n output += `${getCharForNum(buffer >> 10) + getCharForNum((buffer >> 4) & 0x3f) + getCharForNum((buffer << 2) & 0x3f)}=`\n } else if (padding === 1) {\n buffer = input[position]\n output += `${getCharForNum(buffer >> 2) + getCharForNum((buffer << 4) & 0x3f)}==`\n }\n\n return output\n}\n","import fs from 'node:fs'\nimport { TextDecoder } from 'node:util'\nimport pathe from 'pathe'\nimport type { SourceLocation } from '../awst/source-location'\nimport { Constants } from '../constants'\nimport { CodeError, InternalError } from '../errors'\nimport type { DeliberateAny } from '../typescript-helpers'\nimport type { AbsolutePath } from './absolute-path'\n\nexport { base32ToUint8Array, uint8ArrayToBase32 } from './base-32'\nexport { base64ToUint8Array, uint8ArrayToBase64 } from './base-64'\nexport { hexToUint8Array, uint8ArrayToHex } from './base-16'\n\nclass InvariantError extends InternalError {}\n\n/**\n * Checks an invariant condition hold true. If this check fails it indicates the compiler is in an unstable state. For invariants related to\n * user code, use codeInvariant below.\n *\n * @param condition\n * @param message\n * @param sourceLocation\n */\nexport function invariant(condition: unknown, message: string, sourceLocation?: SourceLocation): asserts condition {\n if (!condition) {\n throw new InvariantError(message, { sourceLocation })\n }\n}\n\n/**\n * Checks an invariant related to user code holds true. If this check fails it indicates the user code is not valid. For invariants the user\n * has no control over, use invariant above.\n * @param condition\n * @param message\n * @param sourceLocation\n */\nexport function codeInvariant(condition: unknown, message: string, sourceLocation?: SourceLocation): asserts condition {\n if (!condition) {\n throw new CodeError(message, {\n sourceLocation,\n })\n }\n}\n\nexport const enumFromValue = <TValue, TEnum extends TValue>(\n value: TValue,\n enumType: Record<string, TEnum | string>,\n message: string = 'Invalid enum value: ',\n) => {\n if (Object.values(enumType).some((v) => v === value)) {\n return value as TEnum\n }\n throw new Error(`${message} ${value}`)\n}\n\nexport const enumKeyFromValue = <TValue, TEnum extends TValue>(\n value: TValue,\n enumType: Record<string, TEnum>,\n message: string = 'Invalid enum value: ',\n) => {\n const key = Object.entries(enumType).find(([_, v]) => v === value)?.[0]\n if (key) {\n return key\n }\n throw new Error(`${message} ${value}`)\n}\n\nexport const convertEnum = <TEnumIn, TEnumOut, TKeys extends string>(\n value: TEnumIn,\n fromEnum: Record<TKeys, TEnumIn>,\n toEnum: Record<TKeys, TEnumOut>,\n): TEnumOut => {\n const keyOfValue = Object.entries(fromEnum).find(([, v]) => v === value)?.[0]\n if (!keyOfValue) {\n // missing value\n throw new Error(`key missing: ${value}`)\n }\n return toEnum[keyOfValue as keyof typeof toEnum]\n}\n\nexport const tryConvertEnum = <TEnumIn, TEnumOut, TKeys extends string>(\n value: TEnumIn,\n fromEnum: Record<TKeys, TEnumIn>,\n toEnum: Record<string, TEnumOut>,\n): TEnumOut | undefined => {\n const keyOfValue = Object.entries(fromEnum).find(([, v]) => v === value)?.[0]\n if (!keyOfValue) {\n return undefined\n }\n return toEnum[keyOfValue as keyof typeof toEnum]\n}\n\nexport const expandMaybeArray = <T>(maybeArray: T | T[]): T[] => {\n return Array.isArray(maybeArray) ? maybeArray : [maybeArray]\n}\n\nexport const utf8ToUint8Array = (value: string): Uint8Array => {\n const encoder = new TextEncoder()\n return encoder.encode(value)\n}\n\nexport const uint8ArrayToBigInt = (v: Uint8Array): bigint => {\n // Assume big-endian\n return Array.from(v)\n .toReversed()\n .map((byte_value, i): bigint => BigInt(byte_value) << BigInt(i * 8))\n .reduce((a, b) => a + b, 0n)\n}\n\nexport const uint8ArrayToUtf8 = (value: Uint8Array): string => {\n const decoder = new TextDecoder()\n return decoder.decode(value)\n}\n\nexport const bigIntToUint8Array = (val: bigint, fixedSize: number | 'dynamic' = 'dynamic'): Uint8Array => {\n if (val === 0n && fixedSize === 'dynamic') {\n return new Uint8Array(0)\n }\n const maxBytes = fixedSize === 'dynamic' ? 4096 : fixedSize\n\n let hex = val.toString(16)\n\n // Pad the hex with zeros so it matches the size in bytes\n if (fixedSize !== 'dynamic' && hex.length !== fixedSize * 2) {\n hex = hex.padStart(fixedSize * 2, '0')\n } else if (hex.length % 2 === 1) {\n // Pad to 'whole' byte\n hex = `0${hex}`\n }\n if (hex.length > maxBytes * 2) {\n throw new InternalError(`Cannot encode ${val} as ${maxBytes} bytes as it would overflow`)\n }\n const byteArray = new Uint8Array(hex.length / 2)\n for (let i = 0, j = 0; i < hex.length / 2; i++, j += 2) {\n byteArray[i] = parseInt(hex.slice(j, j + 2), 16)\n }\n return byteArray\n}\n\nexport const hasFlags = <T extends number>(value: T, flags: T): boolean => (value & flags) === flags\nexport const intersectsFlags = <T extends number>(value: T, flags: T): boolean => Boolean(value & flags)\n\nexport function toSubScript(num: number) {\n const subNumbers = ['\\u2080', '\\u2081', '\\u2082', '\\u2083', '\\u2084', '\\u2085', '\\u2086', '\\u2087', '\\u2088', '\\u2089']\n return num\n .toFixed(0)\n .split('')\n .map((x) => subNumbers[parseInt(x)])\n .join('')\n}\n\nexport function instanceOfAny<T extends Array<new (...args: DeliberateAny[]) => DeliberateAny>>(\n x: unknown,\n ...types: T\n): x is InstanceType<T[number]> {\n return types.some((t) => x instanceof t)\n}\n\n/**\n * Extract a module name from a file path\n *\n * - Anything in /node_modules/ is truncated to <package-name>/path.ext\n * - Anything in workingDirectory is truncated relative to the workingDirectory\n * - Forward slashes are used to segment paths\n * @param filePath\n * @param workingDirectory\n */\nexport function extractModuleName(filePath: string, workingDirectory: AbsolutePath): string {\n const localPackageName = /packages\\/algo-ts\\/dist\\/(.*)$/.exec(filePath)\n if (localPackageName) {\n return `${Constants.algoTsPackage}/${localPackageName[1]}`\n }\n const nodeModuleName = /.*\\/node_modules\\/(.*)$/.exec(filePath)\n if (nodeModuleName) {\n return nodeModuleName[1]\n }\n const cwd = pathe.normalize(`${workingDirectory}/`)\n const normalizedPath = pathe.normalize(filePath)\n const moduleName = normalizedPath.startsWith(cwd) ? normalizedPath.slice(cwd.length) : normalizedPath\n return moduleName.replaceAll('\\\\', '/')\n}\n\ntype SortFn<T> = (a: T, b: T) => number\n\ntype SortDir = 'asc' | 'desc'\nexport const sortBy =\n <T, TKey>(keySelector: (item: T) => TKey, dir: SortDir = 'asc') =>\n (a: T, b: T) => {\n const keyA = keySelector(a)\n const keyB = keySelector(b)\n return (dir === 'desc' ? -1 : 1) * (keyA < keyB ? -1 : keyA > keyB ? 1 : 0)\n }\n\n/**\n * Combine multiple sort functions to construct a more advanced sort by _this_ then by _that_ function.\n * @param sortFunctions one or more sort functions (the return type of sortBy, and sortByIgnoreCase)\n *\n * Usage:\n * ```\n * const users = allUsers.slice().sort(\n * combineSortFn(\n * sortByIgnoreCase(x => x.familyName),\n * sortByIgnoreCase(x => x.givenName),\n * sortBy(x => x.dateOfBirth)\n * )\n * )\n * ```\n */\nexport const combineSortFn =\n <T>(...sortFunctions: SortFn<T>[]): SortFn<T> =>\n (a, b) => {\n for (const fn of sortFunctions) {\n const res = fn(a, b)\n if (res !== 0) {\n return res\n }\n }\n return 0\n }\n\n/**\n * Can be used to filter a collection to a set of distinct items as determined by a specified key.\n * @param keySelector A lambda which when given an item, returns the items unique identifier\n *\n * Usage:\n *\n * ```\n * const distinctItems = nonDistinctItems.filter(distinct(x => x.uniqueId))\n * ```\n */\nexport const distinct = <T>(keySelector?: (item: T) => unknown) => {\n const ks = keySelector || ((x: T) => x)\n const set = new Set()\n return (item: T) => {\n if (set.has(ks(item))) {\n return false\n }\n\n set.add(ks(item))\n return true\n }\n}\n\nexport const distinctByEquality = <T>(areEqual: (a: T, b: T) => boolean) => {\n const set: T[] = []\n return (item: T) => {\n if (set.some((s) => areEqual(s, item))) return false\n set.push(item)\n return true\n }\n}\n\nexport function mkDirIfNotExists(dir: string) {\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n}\n\nexport function sameSets<T>(a: Iterable<T>, b: Iterable<T>) {\n const setA = new Set(a)\n const setB = new Set(b)\n return setA.intersection(setB).size === setA.size\n}\n\nexport const zipStrict = <T1, T2>(array1: T1[], array2: T2[]): [T1, T2][] => {\n invariant(array1.length === array2.length, 'Array lengths must match')\n return array1.map((t1, idx) => [t1, array2[idx]])\n}\n\nexport function isIn<TSubject, TItem extends TSubject>(subject: TSubject, items: readonly TItem[]): subject is TItem {\n return items.some((i) => i === subject)\n}\n\nexport function joinUint8Arrays(...arrays: Uint8Array[]): Uint8Array {\n const length = arrays.reduce((acc, cur) => acc + cur.length, 0)\n const result = new Uint8Array(length)\n let offset = 0\n for (const a of arrays) {\n result.set(a, offset)\n offset += a.length\n }\n return result\n}\n","/*\n Polyfills for Set methods that are not available on older versions of Node\n\n We only polyfill methods which are used in this codebase, polyfills should be removed as older\n versions of node are retired from LTS according to https://nodejs.org/en/about/previous-releases\n*/\n\n// Node < 22.11\nif (!Set.prototype.union) {\n Set.prototype.union = function (other) {\n // Convert ReadonlySetLike to iterable by checking if it's a Set or has values method\n let otherIterable: Iterable<unknown>\n if (other instanceof Set) {\n otherIterable = other\n } else if ('values' in other && typeof other.values === 'function') {\n otherIterable = other.values()\n } else {\n throw new TypeError('Argument must be a ReadonlySetLike')\n }\n\n return new Set([...this, ...otherIterable])\n }\n}\n\n// Node < 22.11\nif (!Set.prototype.intersection) {\n Set.prototype.intersection = function (other) {\n return new Set([...this].filter((e) => other.has(e)))\n }\n}\n\n// Node < 22.11\nif (!Set.prototype.difference) {\n Set.prototype.difference = function (other) {\n return new Set([...this].filter((e) => !other.has(e)))\n }\n}\n\n// Node < 22\nif (!Set.prototype.symmetricDifference) {\n Set.prototype.symmetricDifference = function (other) {\n const result = this.difference(other)\n for (let it = other.keys(), { value, done } = it.next(); !done; { value, done } = it.next()) {\n if (!this.has(value)) result.add(value)\n }\n return result\n }\n}\n\n// Node < 22.11\nif (!Promise.withResolvers) {\n Promise.withResolvers = function <T>() {\n let resolve: PromiseWithResolvers<T>['resolve'] = undefined!,\n reject: PromiseWithResolvers<T>['reject'] = undefined!\n const promise = new Promise<T>((res, rej) => {\n resolve = res\n reject = rej\n })\n return { promise, resolve, reject }\n }\n}\n\n// Node < 22.11\nconst MapIteratorPrototype = Object.getPrototypeOf(new Map().entries())\nif (!MapIteratorPrototype.map) {\n MapIteratorPrototype.map = function* <T, U>(\n this: IteratorObject<T>,\n callbackFn: (value: unknown, index: number) => U,\n ): IteratorObject<U, undefined, unknown> {\n let i = 0\n for (const item of this) {\n yield callbackFn(item, i++)\n }\n }\n}\n","import * as pathe from 'pathe'\n\nexport class AbsolutePath {\n constructor(private value: string) {}\n\n static resolve({ path, workingDirectory }: { path: string; workingDirectory?: AbsolutePath }) {\n const p = pathe.resolve(workingDirectory?.value ?? process.cwd(), path)\n\n return new AbsolutePath(p)\n }\n\n toString() {\n return this.value\n }\n\n basename(ext?: string) {\n return pathe.basename(this.value, ext)\n }\n\n replaceAll(searchValue: string, replaceValue: string) {\n return new AbsolutePath(this.value.replaceAll(searchValue, replaceValue))\n }\n\n join(...paths: string[]) {\n return new AbsolutePath(pathe.join(this.value, ...paths))\n }\n\n equals(other: AbsolutePath | string) {\n return getAbsolutePath(other).value === this.value\n }\n\n relativeTo(other: AbsolutePath | string) {\n return pathe.relative(getAbsolutePath(other).value, this.value)\n }\n\n /**\n * Resolve the specified relative path relative to this absolute path\n * @param relativePath\n */\n resolve(relativePath: string) {\n return new AbsolutePath(pathe.resolve(this.value, relativePath))\n }\n}\n\nfunction getAbsolutePath(path: AbsolutePath | string) {\n if (typeof path === 'string') {\n return AbsolutePath.resolve({ path })\n }\n return path\n}\n","import ts from 'typescript'\nimport { invariant } from '../util'\nimport { AbsolutePath } from '../util/absolute-path'\n\nexport class SourceLocation<TNode extends ts.Node | undefined = ts.Node | undefined> {\n file: AbsolutePath | null\n line: number\n endLine: number\n column: number\n endColumn: number\n scope: 'file' | 'range'\n node: TNode\n\n /**\n * Asserts this source location has a node and returns source location with updated typing\n */\n withNode(): SourceLocation<ts.Node> {\n invariant(this.node, 'Source location must have node', this)\n return this as SourceLocation<ts.Node>\n }\n\n constructor(props: {\n file?: AbsolutePath | null\n line: number\n endLine: number\n column: number\n endColumn: number\n scope: SourceLocation['scope']\n node: TNode\n }) {\n invariant(props.line <= props.endLine, 'Start line must be before end line')\n if (props.line === props.endLine) invariant(props.column <= props.endColumn, 'Start column must be before end column')\n this.file = props.file ?? null\n this.line = props.line\n this.endLine = props.endLine\n this.column = props.column\n this.endColumn = props.endColumn\n this.scope = props.scope\n this.node = props.node\n\n // Exclude scope from enumerable properties so it doesn't end up being serialized\n Object.defineProperty(this, 'scope', {\n enumerable: false,\n })\n Object.defineProperty(this, 'node', {\n enumerable: false,\n })\n }\n\n private static getStartAndEnd(node: ts.Node): { start: number; end: number } {\n if (ts.isClassDeclaration(node)) {\n return fromNodeTillStartOfNode(node, node.members.at(0))\n }\n if (ts.isMethodDeclaration(node) || ts.isFunctionDeclaration(node)) {\n return fromNodeTillStartOfNode(node, node.body)\n }\n if (ts.isForStatement(node) || ts.isForInStatement(node) || ts.isForOfStatement(node)) {\n return fromNodeTillStartOfNode(node, node.statement)\n }\n if (ts.isIfStatement(node)) {\n return fromNodeTillStartOfNode(node, node.thenStatement)\n }\n\n return {\n start: node.getStart(),\n end: node.getEnd(),\n }\n }\n\n static fromNode<TNode extends ts.Node>(node: TNode, programDirectory: AbsolutePath): SourceLocation<TNode> {\n const sourceFile = node.getSourceFile()\n\n const { start, end } = SourceLocation.getStartAndEnd(node)\n\n const startLoc = sourceFile.getLineAndCharacterOfPosition(start)\n const endLoc = sourceFile.getLineAndCharacterOfPosition(end)\n\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: sourceFile.fileName, workingDirectory: programDirectory }),\n line: startLoc.line + 1,\n endLine: endLoc.line + 1,\n column: startLoc.character,\n endColumn: endLoc.character,\n scope: 'range',\n node,\n })\n }\n\n static fromFile(sourceFile: ts.SourceFile, programDirectory: AbsolutePath): SourceLocation {\n const endPos = sourceFile.getEnd()\n const endLoc = sourceFile.getLineAndCharacterOfPosition(endPos)\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: sourceFile.fileName, workingDirectory: programDirectory }),\n line: 1,\n endLine: endLoc.line + 1,\n column: 0,\n endColumn: endLoc.character,\n scope: 'file',\n node: undefined,\n })\n }\n\n static fromTextRange(sourceFile: ts.SourceFile, textRange: ts.TextRange, programDirectory: AbsolutePath): SourceLocation {\n const startLoc = sourceFile.getLineAndCharacterOfPosition(textRange.pos)\n const endLoc = sourceFile.getLineAndCharacterOfPosition(textRange.end)\n\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: sourceFile.fileName, workingDirectory: programDirectory }),\n line: startLoc.line + 1,\n endLine: endLoc.line + 1,\n column: startLoc.character,\n endColumn: endLoc.character,\n scope: 'range',\n node: undefined,\n })\n }\n\n static fromDiagnostic(diagnostic: ts.DiagnosticWithLocation, programDirectory: AbsolutePath): SourceLocation {\n const startLoc = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start)\n\n return new SourceLocation({\n file: AbsolutePath.resolve({ path: diagnostic.file.fileName, workingDirectory: programDirectory }),\n line: startLoc.line + 1,\n endLine: startLoc.line + 1,\n column: startLoc.character,\n endColumn: startLoc.character,\n scope: 'range',\n node: undefined,\n })\n }\n\n toString(options?: { pathsRelativeTo?: AbsolutePath }) {\n const filePath = options?.pathsRelativeTo ? this.file?.relativeTo(options.pathsRelativeTo) : this.file?.toString()\n return `${filePath}:${this.line}:${this.column + 1}`\n }\n\n static None = new SourceLocation({\n line: 1,\n endLine: 1,\n column: 0,\n endColumn: 1,\n scope: 'file',\n node: undefined,\n })\n}\n\nfunction fromNodeTillStartOfNode(n1: ts.Node, n2?: ts.Node): { start: number; end: number } {\n return {\n start: n1.getStart(),\n end: n2 ? n2.getStart() - n2.getLeadingTriviaWidth() : n1.getEnd(),\n }\n}\n","import type { ContractClassPType, LogicSigPType } from '../awst_build/ptypes'\n\nexport enum OnCompletionAction {\n NoOp = 0,\n OptIn = 1,\n CloseOut = 2,\n ClearState = 3,\n UpdateApplication = 4,\n DeleteApplication = 5,\n}\n\nclass ModelBase {\n /**\n * This field prevents us from accidentally passing an object literal with structural equality to\n * a model class instead of any instance of the class, which would stuff up the serialization\n * @private\n */\n #isModel = true\n}\n\nexport class ContractReference extends ModelBase {\n constructor({ className, moduleName }: { className: string; moduleName: string }) {\n super()\n this.className = className\n this.moduleName = moduleName\n }\n readonly className: string\n readonly moduleName: string\n\n get id() {\n return `${this.moduleName}::${this.className}`\n }\n\n toString(): string {\n return this.id\n }\n\n static fromPType(contractPType: ContractClassPType): ContractReference {\n return new ContractReference({\n className: contractPType.name,\n moduleName: contractPType.module,\n })\n }\n}\nexport class LogicSigReference extends ModelBase {\n constructor({ name, moduleName }: { name: string; moduleName: string }) {\n super()\n this.name = name\n this.moduleName = moduleName\n }\n readonly name: string\n readonly moduleName: string\n\n get id() {\n return `${this.moduleName}::${this.name}`\n }\n\n toString(): string {\n return this.id\n }\n\n static fromPType(logicSigPType: LogicSigPType): LogicSigReference {\n return new LogicSigReference({\n name: logicSigPType.name,\n moduleName: logicSigPType.module,\n })\n }\n}\n\nexport enum TransactionKind {\n pay = 1,\n keyreg = 2,\n acfg = 3,\n axfer = 4,\n afrz = 5,\n appl = 6,\n}\n","import { invariant } from '../util'\nimport { TransactionKind } from './models'\nimport type { SourceLocation } from './source-location'\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace wtypes {\n export class WType {\n constructor(props: { name: string; immutable?: boolean }) {\n this.name = props.name\n this.immutable = props.immutable ?? true\n }\n\n readonly name: string\n readonly immutable: boolean\n\n equals(other: WType): boolean {\n return other instanceof this.constructor && other.name === this.name\n }\n\n toString(): string {\n return this.name\n }\n }\n\n export const voidWType = new WType({\n name: 'void',\n })\n export const boolWType = new WType({\n name: 'bool',\n })\n export const uint64WType = new WType({\n name: 'uint64',\n })\n export const uint64RangeWType = new WType({\n name: 'uint64_range',\n })\n\n export const stateKeyWType = new WType({\n name: 'state_key',\n })\n export const boxKeyWType = new WType({\n name: 'box_key',\n })\n export const stringWType = new WType({\n name: 'string',\n })\n export const biguintWType = new WType({\n name: 'biguint',\n })\n export const assetWType = new WType({\n name: 'asset',\n })\n\n export const accountWType = new WType({\n name: 'account',\n })\n export const applicationWType = new WType({\n name: 'application',\n })\n\n export class BytesWType extends WType {\n readonly length: bigint | null\n\n constructor(args?: { length: bigint | null }) {\n const length = args?.length ?? null\n super({\n name: length === null ? 'bytes' : `bytes[${length}]`,\n immutable: true,\n })\n this.length = length\n }\n }\n export const bytesWType = new BytesWType()\n\n export class ARC4Type extends WType {\n /**\n * Override the default name of this type with a valid arc4 alias.\n *\n * eg uint8 can be aliased with byte, byte[32] can be aliased with address\n */\n readonly arc4Alias: string | null\n constructor({ arc4Alias, ...rest }: { arc4Alias?: string | null; name: string; immutable?: boolean }) {\n super({ ...rest })\n this.arc4Alias = arc4Alias ?? null\n }\n }\n\n export class WTuple extends WType {\n types: WType[]\n names: string[] | undefined\n constructor(props: { names?: string[]; types: WType[]; name?: string }) {\n super({\n name: props.name ?? 'tuple',\n immutable: true,\n })\n this.types = props.types\n if (props.names) {\n invariant(props.names.length === props.types.length, 'If names is provided, length must match types')\n this.names = props.names\n }\n }\n\n equals(other: WType): boolean {\n if (other instanceof WTuple) {\n return (\n this.name === other.name &&\n this.types.every((t, i) => t.equals(other.types[i])) &&\n (this.names?.every((n, i) => n === other.names?.[i]) ?? this.names === other.names)\n )\n }\n return false\n }\n\n toString(): string {\n const displayName = this.name.split('::').at(-1) ?? this.name\n if (this.names) {\n return `${displayName}{ ${this.names.map((n, i) => `${n}: ${this.types[i]}`).join(', ')} }`\n }\n return `${this.immutable ? 'readonly ' : ''}[${this.types.join(', ')}]`\n }\n }\n\n export abstract class NativeArray extends WType {\n readonly elementType: WType\n readonly sourceLocation: SourceLocation | null\n protected constructor(props: { name: string; itemType: WType; sourceLocation?: SourceLocation }) {\n super({\n name: props.name,\n })\n this.elementType = props.itemType\n this.sourceLocation = props.sourceLocation ?? null\n }\n }\n\n export class ReferenceArray extends NativeArray {\n readonly immutable = false\n constructor(props: { itemType: WType; immutable: boolean; sourceLocation?: SourceLocation }) {\n super({\n name: `ref_array<${props.itemType.name}>`,\n ...props,\n })\n }\n }\n\n export class WEnumeration extends WType {\n readonly sequenceType: WType\n constructor(props: { sequenceType: WType }) {\n super({\n name: `enumeration<${props.sequenceType.name}>`,\n immutable: true,\n })\n this.sequenceType = props.sequenceType\n }\n }\n export class WGroupTransaction extends WType {\n transactionType: TransactionKind | null\n constructor({ transactionType }: { transactionType?: TransactionKind }) {\n super({\n name: transactionType === undefined ? 'group_transaction' : `group_transaction_${TransactionKind[transactionType]}`,\n })\n this.transactionType = transactionType ?? null\n }\n }\n export class WInnerTransaction extends WType {\n transactionType: TransactionKind | null\n constructor({ transactionType }: { transactionType?: TransactionKind }) {\n super({\n name: transactionType === undefined ? 'inner_transaction' : `inner_transaction_${TransactionKind[transactionType]}`,\n })\n this.transactionType = transactionType ?? null\n }\n }\n export class WInnerTransactionFields extends WType {\n transactionType: TransactionKind | null\n constructor({ transactionType, name }: { transactionType?: TransactionKind; name?: string }) {\n super({\n name: transactionType === undefined ? 'inner_transaction_fields' : `inner_transaction_fields_${TransactionKind[transactionType]}`,\n })\n this.transactionType = transactionType ?? null\n }\n }\n\n export class WABICallInnerTransactionFields extends WInnerTransactionFields {\n resultType: WType\n constructor({ returnType }: { returnType?: WType }) {\n super({\n transactionType: TransactionKind.appl,\n name: 'abi_call_inner_transaction_fields',\n })\n this.resultType = returnType ?? voidWType\n }\n }\n\n export class ARC4UIntN extends ARC4Type {\n readonly n: bigint\n constructor({ n, arc4Alias }: { n: bigint; arc4Alias?: string }) {\n super({\n name: arc4Alias ? `arc4.${arc4Alias}` : `arc4.uint${n}`,\n arc4Alias,\n })\n invariant(n >= 8n && n <= 512n, 'Invalid uint: n must be between 8 and 512')\n invariant(n % 8n === 0n, 'Invalid uint: n must be multiple of 8')\n this.n = n\n }\n }\n\n export class ARC4UFixedNxM extends ARC4Type {\n readonly n: bigint\n readonly m: bigint\n constructor({ n, m }: { n: bigint; m: bigint }) {\n super({\n name: `arc4.ufixed${n}x${m}`,\n })\n\n invariant(n >= 8n && n <= 512n, 'Invalid ufixed: n must be between 8 and 512')\n invariant(n % 8n === 0n, 'Invalid ufixed: n must be multiple of 8')\n invariant(m >= 0n && m <= 160n, 'Invalid ufixed: m must be between 0 and 160')\n this.n = n\n this.m = m\n }\n }\n\n export class ARC4Struct extends ARC4Type {\n fields: Record<string, WType>\n sourceLocation: SourceLocation | null\n frozen: boolean\n desc: string | null\n\n constructor({\n fields,\n sourceLocation,\n name,\n desc,\n frozen,\n }: {\n frozen: boolean\n name: string\n desc: string | null\n fields: Record<string, WType>\n sourceLocation?: SourceLocation\n }) {\n super({\n name,\n immutable: frozen && Object.values(fields).every((t) => t.immutable),\n })\n this.sourceLocation = sourceLocation ?? null\n this.fields = fields\n this.frozen = frozen\n this.desc = desc\n }\n }\n export class ARC4Tuple extends ARC4Type {\n readonly types: WType[]\n readonly sourceLocation: SourceLocation | null\n readonly immutable: boolean\n\n constructor({ types, sourceLocation, immutable }: { types: WType[]; sourceLocation?: SourceLocation; immutable: boolean }) {\n const typesStr = types.map((t) => t.name).join(',')\n super({\n name: `arc4.tuple<${typesStr}>`,\n })\n this.sourceLocation = sourceLocation ?? null\n this.types = types\n this.immutable = immutable\n }\n }\n\n export abstract class ARC4Array extends ARC4Type {\n readonly elementType: WType\n protected constructor(props: { arc4Alias: string | null; name: string; elementType: WType; immutable?: boolean }) {\n super({\n ...props,\n immutable: props.immutable ?? false,\n })\n this.elementType = props.elementType\n }\n }\n\n export class ARC4DynamicArray extends ARC4Array {\n readonly sourceLocation: SourceLocation | null\n constructor({\n elementType,\n sourceLocation,\n arc4Alias,\n immutable,\n }: {\n elementType: WType\n sourceLocation?: SourceLocation\n arc4Alias?: string\n immutable?: boolean\n }) {\n super({\n elementType,\n name: `arc4.dynamic_array<${elementType.name}>`,\n arc4Alias: arc4Alias ?? null,\n immutable,\n })\n this.sourceLocation = sourceLocation ?? null\n }\n }\n export class ARC4StaticArray extends ARC4Array {\n readonly sourceLocation: SourceLocation | null\n readonly arraySize: bigint\n constructor({\n elementType,\n sourceLocation,\n arraySize,\n arc4Alias,\n immutable,\n }: {\n arraySize: bigint\n elementType: WType\n sourceLocation?: SourceLocation\n arc4Alias?: string\n immutable?: boolean\n }) {\n super({\n elementType,\n name: `arc4.static_array<${elementType.name},${arraySize}>`,\n arc4Alias: arc4Alias ?? null,\n immutable,\n })\n this.sourceLocation = sourceLocation ?? null\n this.arraySize = arraySize\n }\n }\n\n export const arc4ByteAliasWType = new ARC4UIntN({\n n: 8n,\n arc4Alias: 'byte',\n })\n export const arc4AddressAliasWType = new ARC4StaticArray({\n arraySize: 32n,\n immutable: true,\n elementType: arc4ByteAliasWType,\n arc4Alias: 'address',\n })\n\n export const arc4BooleanWType = new ARC4Type({\n name: 'arc4.bool',\n immutable: true,\n })\n\n export const arc4StringAliasWType = new ARC4DynamicArray({\n arc4Alias: 'string',\n elementType: arc4ByteAliasWType,\n immutable: true,\n })\n}\n","import { wtypes } from '../../awst/wtypes'\nimport { CodeError } from '../../errors'\nimport type { DeliberateAny } from '../../typescript-helpers'\nimport { zipStrict } from '../../util'\nimport type { PTypeVisitor } from './visitor'\n\nconst PTypeId = Symbol('PTypeId')\n\n/**\n * Represents a public type visible to a developer of AlgoTS\n */\nexport abstract class PType {\n static readonly IdSymbol: typeof PTypeId = PTypeId\n /**\n * Since TypeScript is structurally typed, different PTypes with compatible\n * structures will often be assignable to one and another and this is generally\n * not desirable. The PTypeId property should be used to declare a literal value\n * (usually the class name) on each distinct PType class to ensure they are\n * structurally different.\n */\n abstract readonly [PTypeId]: string\n\n /**\n * Get the associated wtype for this ptype if applicable\n */\n abstract readonly wtype: wtypes.WType | undefined\n\n /**\n * Get the unaliased name of this ptype\n */\n abstract readonly name: string\n\n /**\n * Get the declaring module of this ptype\n */\n abstract readonly module: string\n\n abstract readonly singleton: boolean\n\n abstract accept<T>(visitor: PTypeVisitor<T>): T\n\n get fullName() {\n return `${this.module}::${this.name}`\n }\n\n get wtypeOrThrow(): wtypes.WType {\n if (!this.wtype) {\n throw new CodeError(`${this.fullName} does not have a wtype`)\n }\n return this.wtype\n }\n\n equals(other: PType): boolean {\n return ptypesAreEqual(this, other)\n }\n\n equalsOneOf(...others: PType[]): boolean {\n return others.some((o) => ptypesAreEqual(this, o))\n }\n\n static equals(other: PType): boolean {\n return other.constructor === this\n }\n\n equalsOrInstanceOf(other: PTypeOrClass): boolean {\n if (other instanceof Function) {\n return this instanceof other\n }\n return this.equals(other)\n }\n\n toString(): string {\n return this.name\n }\n\n static typeDescription?: string\n\n static toString() {\n return this?.typeDescription ?? this.constructor.name\n }\n}\n\nexport interface ABICompatiblePType extends PType {\n readonly abiTypeSignature: string\n}\n\nexport class GenericPType<T extends PType = PType> extends PType {\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitGeneric(this)\n }\n readonly [PTypeId] = 'GenericPType'\n readonly name: string\n readonly module: string\n readonly singleton = true\n readonly wtype = undefined\n readonly parameterise: (typeArgs: readonly PType[]) => T\n constructor(props: { name: string; module: string; parameterise: (typeArgs: readonly PType[]) => T }) {\n super()\n this.name = props.name\n this.module = props.module\n this.parameterise = props.parameterise\n }\n}\n\nexport type PTypeOrClass = PType | { new (...args: DeliberateAny[]): PType; equals(other: PType): boolean }\n\nfunction ptypesAreEqual(left: PType, right: PType): boolean {\n if (right.constructor !== left.constructor) {\n return false\n }\n return compareProperties(left, right)\n}\n\nconst ignoredProperties = new Set(['sourceLocation', 'wtype'])\n\nfunction notIgnored(key: string): boolean {\n return !ignoredProperties.has(key)\n}\n\nfunction compareProperties(left: object, right: object) {\n const leftProps = Object.entries(left).filter(([key]) => notIgnored(key))\n const rightProps = Object.entries(right).filter(([key]) => notIgnored(key))\n if (leftProps.length !== rightProps.length) return false\n\n return zipStrict(leftProps, rightProps).every(([[lKey, lValue], [rKey, rValue]]) => {\n if (lKey !== rKey) return false\n return compareValues(lValue, rValue)\n })\n}\n\nfunction compareValues(left: unknown, right: unknown): boolean {\n // Handle primitive comparison\n if (typeof left !== 'object' || left === right) {\n return left === right\n }\n if (left === null) {\n return right === null\n }\n // Recursively compare array items\n if (Array.isArray(left)) {\n return Array.isArray(right) && left.length === right.length && left.every((v, i) => compareValues(v, right[i]))\n }\n // Recursively compare ptypes\n if (left instanceof PType) {\n return right instanceof PType && ptypesAreEqual(left, right)\n }\n if (left instanceof wtypes.WType) {\n return right instanceof wtypes.WType && left.equals(right)\n }\n return typeof right === 'object' && right !== null && compareProperties(left, right)\n}\n","export class SymbolName {\n public readonly module: string\n public readonly name: string\n\n constructor(props: { module: string; name: string }) {\n this.module = props.module\n this.name = props.name\n }\n\n get fullName() {\n return `${this.module}::${this.name}`\n }\n\n toString() {\n return this.fullName\n }\n}\n","type TransientTypeError = {\n usedAsType: string\n usedInExpression: string\n}\n\nexport const transientTypeErrors = {\n nativeNumeric: (typeName) => ({\n usedAsType: `\\`${typeName}\\` is not valid as a variable, parameter, return, or property type. Please use an algo-ts type such as \\`biguint\\` or \\`uint64\\``,\n usedInExpression: `Expression of type \\`${typeName}\\` must be explicitly converted to an algo-ts type, for example by wrapping the expression in \\`Uint64(...)\\` or \\`BigUint(...)\\``,\n }),\n unionTypes: (typeName) => ({\n usedAsType: `Union types are not valid as a variable, parameter, return, or property type. Expression type is ${typeName}`,\n usedInExpression: `Union types are only valid in boolean expressions. Expression type is ${typeName}`,\n }),\n intersectionTypes: (typeName) => ({\n usedAsType: `Intersection types are not valid as a variable, parameter, return, or property type. Expression type is ${typeName}`,\n usedInExpression: `Intersection types not valid here. Expression type is ${typeName}`,\n }),\n optionalFields: (typeName) => ({\n usedAsType: `${typeName} type should not be used explicitly as it contains optional fields which cannot be interrogated at runtime. Either remove the type annotation or use \\`EXPRESSION satisfies ${typeName}\\``,\n usedInExpression: `${typeName} type should not be used explicitly as it contains optional fields which cannot be interrogated at runtime.`,\n }),\n} satisfies Record<string, (typeName: string) => TransientTypeError>\n","import * as crypto from 'node:crypto'\nimport type { PType } from './base'\n\nexport const ptypeIn = (target: PType, ...ptypes: [PType, ...PType[]]): boolean => {\n return ptypes.some((t) => t.equals(target))\n}\n\nexport function generateObjectHash(objectProperties: Record<string, PType>) {\n const signature = Object.entries(objectProperties)\n .map(([k, v]) => `${k}:${v}`)\n .join(';')\n const hash = crypto.createHash('sha512')\n hash.update(signature, 'utf8')\n return hash.digest('hex').substring(0, 8).toUpperCase()\n}\n","import { PType } from './base'\nimport type { PTypeVisitor } from './visitor'\n\nexport class IntrinsicEnumType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicEnumType'\n readonly wtype: undefined\n readonly name: string\n readonly factory: undefined\n readonly module: string\n readonly members: Array<[string, string]>\n readonly singleton = true\n\n constructor({ name, module, members }: { name: string; module: string; members: Array<[string, string]> }) {\n super()\n this.members = members\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicEnumType(this)\n }\n}\n","/* THIS FILE IS GENERATED BY ~/scripts/generate-op-ptypes.ts - DO NOT MODIFY DIRECTLY */\nimport { IntrinsicEnumType } from './intrinsic-enum-type'\nimport { Constants } from '../../constants'\n\nexport const base64PType = new IntrinsicEnumType({\n name: 'Base64',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['URLEncoding', 'URLEncoding'],\n ['StdEncoding', 'StdEncoding'],\n ],\n})\nexport const ecPType = new IntrinsicEnumType({\n name: 'Ec',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['BN254g1', 'BN254g1'],\n ['BN254g2', 'BN254g2'],\n ['BLS12_381g1', 'BLS12_381g1'],\n ['BLS12_381g2', 'BLS12_381g2'],\n ],\n})\nexport const ecdsaPType = new IntrinsicEnumType({\n name: 'Ecdsa',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['Secp256k1', 'Secp256k1'],\n ['Secp256r1', 'Secp256r1'],\n ],\n})\nexport const mimcConfigurationsPType = new IntrinsicEnumType({\n name: 'MimcConfigurations',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [\n ['BN254Mp110', 'BN254Mp110'],\n ['BLS12_381Mp111', 'BLS12_381Mp111'],\n ],\n})\nexport const vrfVerifyPType = new IntrinsicEnumType({\n name: 'VrfVerify',\n module: `${Constants.algoTsPackage}/op.d.ts`,\n members: [['VrfAlgorand', 'VrfAlgorand']],\n})\nexport const ALL_OP_ENUMS = [base64PType, ecPType, ecdsaPType, mimcConfigurationsPType, vrfVerifyPType]\n","import { TransactionKind } from '../../awst/models'\nimport { SourceLocation } from '../../awst/source-location'\nimport { wtypes } from '../../awst/wtypes'\n\nimport { Constants } from '../../constants'\nimport { CodeError, InternalError, NotSupported, throwError } from '../../errors'\nimport { codeInvariant, distinctByEquality, instanceOfAny, invariant, sortBy, zipStrict } from '../../util'\nimport { SymbolName } from '../symbol-name'\nimport type { ABICompatiblePType, PTypeOrClass } from './base'\nimport { GenericPType, PType } from './base'\n\nimport { transientTypeErrors } from './transient-type-errors'\nimport { generateObjectHash } from './util'\nimport type { PTypeVisitor } from './visitor'\n\nexport * from './base'\nexport * from './intrinsic-enum-type'\nexport * from './op-ptypes'\n\n/**\n * Transient types can appear in expressions but should not be used as variable or return types\n */\nexport abstract class TransientType extends PType {\n readonly name: string\n readonly module: string\n readonly singleton: boolean\n readonly typeMessage: string\n readonly expressionMessage: string\n\n constructor({\n name,\n module,\n singleton,\n typeMessage,\n expressionMessage,\n }: {\n name: string\n module: string\n singleton: boolean\n typeMessage: string\n expressionMessage: string\n }) {\n super()\n this.name = name\n this.module = module\n this.singleton = singleton\n this.typeMessage = typeMessage\n this.expressionMessage = expressionMessage\n }\n\n get wtype(): wtypes.WType | undefined {\n return undefined\n }\n\n get wtypeOrThrow(): wtypes.WType {\n throw new CodeError(this.typeMessage)\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitTransientType(this)\n }\n}\n\nexport class UnsupportedType extends PType {\n readonly [PType.IdSymbol] = 'UnsupportedType'\n readonly wtype: undefined = undefined\n readonly name: string\n readonly module: string\n readonly singleton = false\n #fullName: string | undefined\n\n constructor({ name, module, fullName }: { name: string; module: string; fullName?: string }) {\n super()\n this.name = name\n this.module = module\n this.#fullName = fullName\n }\n\n get fullName() {\n return this.#fullName ?? super.fullName\n }\n\n get wtypeOrThrow(): wtypes.WType {\n throw new NotSupported(`The type ${this.fullName} is not supported`)\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitUnsupportedType(this)\n }\n}\n\nexport class ObjectWithOptionalFieldsType extends TransientType {\n readonly [PType.IdSymbol] = 'ObjectWithOptionalFieldsType'\n constructor({ name, module }: { name: string; module: string }) {\n const errors = transientTypeErrors.optionalFields(name)\n super({\n name,\n module,\n singleton: false,\n expressionMessage: errors.usedInExpression,\n typeMessage: errors.usedAsType,\n })\n }\n}\n\nexport class LogicSigPType extends PType {\n readonly [PType.IdSymbol] = 'LogicSigPType'\n readonly wtype = undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n readonly sourceLocation: SourceLocation\n readonly baseType: LogicSigPType | undefined\n constructor(props: { module: string; name: string; baseType?: LogicSigPType; sourceLocation: SourceLocation }) {\n super()\n this.name = props.name\n this.module = props.module\n this.baseType = props.baseType\n this.sourceLocation = props.sourceLocation\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLogicSigPType(this)\n }\n}\n\nexport const logicSigBaseType = new LogicSigPType({\n name: 'LogicSig',\n module: Constants.moduleNames.algoTs.logicSig,\n sourceLocation: SourceLocation.None,\n})\n\nexport class ContractClassPType extends PType {\n readonly [PType.IdSymbol] = 'ContractClassPType'\n readonly wtype = undefined\n readonly name: string\n readonly module: string\n readonly properties: Record<string, AppStorageType>\n readonly methods: Record<string, FunctionPType>\n readonly singleton = true\n readonly baseTypes: ContractClassPType[]\n readonly sourceLocation: SourceLocation\n\n constructor(props: {\n module: string\n name: string\n properties: Record<string, AppStorageType>\n methods: Record<string, FunctionPType>\n baseTypes: ContractClassPType[]\n sourceLocation: SourceLocation\n }) {\n super()\n this.name = props.name\n this.module = props.module\n this.properties = props.properties\n this.methods = props.methods\n this.baseTypes = props.baseTypes\n this.sourceLocation = props.sourceLocation\n }\n\n get isARC4(): boolean {\n return this.baseTypes.some((b) => b.isARC4)\n }\n\n *allBases(): IterableIterator<ContractClassPType> {\n for (const b of this.baseTypes) {\n yield b\n yield* b.allBases()\n }\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitContractClassPType(this)\n }\n}\n\nexport class ClusteredContractClassType extends ContractClassPType {\n constructor(props: { methods: Record<string, FunctionPType>; baseTypes: ContractClassPType[]; sourceLocation: SourceLocation }) {\n super({\n ...props,\n name: `ClusteredContract<${props.baseTypes.map((t) => t.fullName).join(',')}>`,\n module: Constants.moduleNames.polytype,\n methods: Object.assign({}, ...props.baseTypes.toReversed().map((t) => t.methods)),\n properties: Object.assign({}, ...props.baseTypes.toReversed().map((t) => t.properties)),\n })\n }\n}\n\nexport class BaseContractClassType extends ContractClassPType {\n readonly _isArc4: boolean\n get isARC4(): boolean {\n return this._isArc4\n }\n\n constructor({\n isArc4,\n ...rest\n }: {\n isArc4: boolean\n module: string\n name: string\n properties: Record<string, AppStorageType>\n methods: Record<string, FunctionPType>\n baseTypes: ContractClassPType[]\n sourceLocation: SourceLocation\n }) {\n super(rest)\n this._isArc4 = isArc4\n }\n}\n\nexport class IntersectionPType extends TransientType {\n readonly [PType.IdSymbol] = 'IntersectionPType'\n get fullName() {\n return this.types.map((t) => t).join(' & ')\n }\n readonly singleton = false\n readonly types: PType[]\n\n private constructor({ types }: { types: PType[] }) {\n const name = types.map((t) => t).join(' & ')\n super({\n name,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.intersectionTypes(name).usedAsType,\n expressionMessage: transientTypeErrors.intersectionTypes(name).usedInExpression,\n })\n this.types = types\n }\n\n static fromTypes(types: PType[]) {\n if (types.length === 0) {\n throw new InternalError('Cannot create intersection of zero types')\n }\n const distinctTypes = types.filter(distinctByEquality((a, b) => a.equals(b))).toSorted(sortBy((t) => t.fullName))\n if (distinctTypes.length === 1) {\n return distinctTypes[0]\n }\n return new IntersectionPType({\n types: distinctTypes,\n })\n }\n}\n\nexport class UnionPType extends TransientType {\n readonly [PType.IdSymbol] = 'UnionPType'\n get fullName() {\n return this.types.map((t) => t).join(' | ')\n }\n readonly singleton = false\n readonly types: PType[]\n\n private constructor({ types }: { types: PType[] }) {\n let typeMessage: string\n let expressionMessage: string\n const name = types.map((t) => t).join(' | ')\n const transientType = types.find((t) => t instanceof TransientType)\n if (transientType) {\n if (instanceOfAny(transientType, BigIntLiteralPType, NumericLiteralPType, BigIntPType, NumberPType)) {\n typeMessage = transientTypeErrors.nativeNumeric(name).usedAsType\n expressionMessage = transientTypeErrors.nativeNumeric(name).usedInExpression\n } else {\n typeMessage = transientType.typeMessage\n expressionMessage = transientType.expressionMessage\n }\n } else {\n typeMessage = transientTypeErrors.unionTypes(name).usedAsType\n expressionMessage = transientTypeErrors.unionTypes(name).usedInExpression\n }\n super({\n name,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage,\n expressionMessage,\n })\n this.types = types\n }\n\n static fromTypes(types: PType[]) {\n if (types.length === 0) {\n throw new InternalError('Cannot create union of zero types')\n }\n const distinctTypes = types.filter(distinctByEquality((a, b) => a.equals(b))).toSorted(sortBy((t) => t.fullName))\n if (distinctTypes.length === 1) {\n return distinctTypes[0]\n }\n return new UnionPType({\n types: distinctTypes,\n })\n }\n}\n\nabstract class StorageProxyPType extends PType {\n readonly wtype: wtypes.WType\n readonly contentType: PType\n readonly singleton = false\n\n protected constructor(props: { content: PType; keyWType: wtypes.WType }) {\n super()\n this.wtype = props.keyWType\n this.contentType = props.content\n }\n}\nexport const GlobalStateGeneric = new GenericPType({\n name: 'GlobalState',\n module: Constants.moduleNames.algoTs.state,\n parameterise(typeArgs: readonly PType[]): GlobalStateType {\n codeInvariant(typeArgs.length === 1, 'GlobalState type expects exactly one type parameter')\n return new GlobalStateType({\n content: typeArgs[0],\n })\n },\n})\nexport class GlobalStateType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'GlobalStateType'\n static readonly baseName = 'GlobalState'\n static readonly baseFullName = `${Constants.moduleNames.algoTs.state}::${GlobalStateType.baseName}`\n readonly module: string = Constants.moduleNames.algoTs.state\n get name() {\n return `${GlobalStateType.baseName}<${this.contentType.name}>`\n }\n get fullName() {\n return `${GlobalStateType.baseFullName}<${this.contentType.fullName}>`\n }\n constructor(props: { content: PType }) {\n super({ ...props, keyWType: wtypes.stateKeyWType })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitGlobalStateType(this)\n }\n}\nexport const LocalStateGeneric = new GenericPType({\n name: 'LocalState',\n module: Constants.moduleNames.algoTs.state,\n parameterise(typeArgs: readonly PType[]): LocalStateType {\n codeInvariant(typeArgs.length === 1, 'LocalState type expects exactly one type parameter')\n return new LocalStateType({\n content: typeArgs[0],\n })\n },\n})\nexport class LocalStateType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'LocalStateType'\n static readonly baseName = 'LocalState'\n static readonly baseFullName = `${Constants.moduleNames.algoTs.state}::${LocalStateType.baseName}`\n readonly module: string = Constants.moduleNames.algoTs.state\n get name() {\n return `${LocalStateType.baseName}<${this.contentType.name}>`\n }\n get fullName() {\n return `${LocalStateType.baseFullName}<${this.contentType.fullName}>`\n }\n constructor(props: { content: PType }) {\n super({ ...props, keyWType: wtypes.stateKeyWType })\n }\n static parameterise(typeArgs: PType[]): LocalStateType {\n codeInvariant(typeArgs.length === 1, 'LocalState type expects exactly one type parameter')\n return new LocalStateType({\n content: typeArgs[0],\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLocalStateType(this)\n }\n}\nexport const BoxGeneric = new GenericPType({\n name: 'Box',\n module: Constants.moduleNames.algoTs.box,\n parameterise(typeArgs: readonly PType[]): BoxPType {\n codeInvariant(typeArgs.length === 1, `${this.name} type expects exactly one type parameter`)\n return new BoxPType({\n content: typeArgs[0],\n })\n },\n})\nexport class BoxPType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'BoxPType'\n readonly module: string = Constants.moduleNames.algoTs.box\n get name() {\n return `Box<${this.contentType.name}>`\n }\n get fullName() {\n return `${this.module}::${this.name}<${this.contentType.fullName}>`\n }\n constructor(props: { content: PType }) {\n super({ ...props, keyWType: wtypes.boxKeyWType })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitBoxPType(this)\n }\n}\nexport const BoxMapGeneric = new GenericPType({\n name: 'BoxMap',\n module: Constants.moduleNames.algoTs.box,\n parameterise(typeArgs: readonly PType[]): BoxMapPType {\n codeInvariant(typeArgs.length === 2, `${this.name} type expects exactly two type parameters`)\n return new BoxMapPType({\n keyType: typeArgs[0],\n content: typeArgs[1],\n })\n },\n})\nexport class BoxMapPType extends StorageProxyPType {\n readonly [PType.IdSymbol] = 'BoxMapPType'\n readonly module: string = Constants.moduleNames.algoTs.box\n get name() {\n return `BoxMap<${this.keyType.name}, ${this.contentType.name}>`\n }\n get fullName() {\n return `${this.module}::${this.name}<${this.keyType.name}, ${this.contentType.fullName}>`\n }\n readonly keyType: PType\n constructor(props: { content: PType; keyType: PType }) {\n super({ ...props, keyWType: wtypes.boxKeyWType })\n this.keyType = props.keyType\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitBoxMapPType(this)\n }\n}\nexport type AppStorageType = GlobalStateType | LocalStateType | BoxPType | BoxMapPType\n\n/**\n * An open generic type parameter\n */\nexport class TypeParameterType extends PType {\n readonly [PType.IdSymbol] = 'TypeParameterType'\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly wtype = undefined\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitTypeParameterType(this)\n }\n}\n\n/**\n * A type from the typescript libs which might pop up in type reflection\n * but is not relevant to the output of the compiler\n */\nexport class InternalType extends PType {\n readonly [PType.IdSymbol] = 'InternalType'\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly wtype = undefined\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitInternalType(this)\n }\n}\nexport const ClassMethodDecoratorContext = new InternalType({\n module: 'typescript/lib/lib.decorators.d.ts',\n name: 'ClassMethodDecoratorContext',\n})\n\nexport class AnyPType extends PType {\n readonly [PType.IdSymbol] = 'AnyPType'\n get wtype(): never {\n throw new CodeError('`any` is not valid as a variable, parameter, return, or property type.')\n }\n readonly name = 'any'\n readonly module = 'lib.d.ts'\n readonly singleton = false\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitAnyPType(this)\n }\n}\n\nexport class InstanceType extends PType {\n readonly [PType.IdSymbol] = 'InstanceType'\n readonly wtype: wtypes.WType\n readonly name: string\n readonly module: string\n readonly singleton = false\n\n constructor({ name, module, wtype }: { name: string; module: string; wtype: wtypes.WType }) {\n super()\n this.name = name\n this.wtype = wtype\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitInstanceType(this)\n }\n}\n\nexport class ABICompatibleInstanceType extends InstanceType implements ABICompatiblePType {\n readonly abiTypeSignature: string\n constructor({ abiTypeSignature, ...props }: { name: string; module: string; wtype: wtypes.WType; abiTypeSignature: string }) {\n super(props)\n this.abiTypeSignature = abiTypeSignature\n }\n}\n\nexport class LibFunctionType extends PType {\n readonly [PType.IdSymbol] = 'LibFunctionType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLibFunctionType(this)\n }\n}\nexport class LibClassType extends PType {\n readonly [PType.IdSymbol] = 'LibClassType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLibClassType(this)\n }\n}\nexport class LibObjType extends PType {\n readonly [PType.IdSymbol] = 'LibObjType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitLibObjType(this)\n }\n}\n\nexport class IntrinsicFunctionGroupType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionGroupType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = true\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionGroupType(this)\n }\n}\nexport class IntrinsicFunctionGroupTypeType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionGroupTypeType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = false\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionGroupTypeType(this)\n }\n}\nexport class IntrinsicFunctionType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = true\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionType(this)\n }\n}\nexport class IntrinsicFunctionTypeType extends PType {\n readonly [PType.IdSymbol] = 'IntrinsicFunctionTypeType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.op\n readonly singleton = false\n\n constructor({ name }: { name: string }) {\n super()\n this.name = name\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIntrinsicFunctionTypeType(this)\n }\n}\n\nexport const bzeroFunction = new IntrinsicFunctionType({\n name: 'bzero',\n})\n\nexport class NamespacePType extends PType {\n readonly [PType.IdSymbol] = 'NamespacePType'\n readonly wtype: undefined\n readonly name: string\n readonly factory: undefined\n readonly module: string\n readonly singleton = true\n\n constructor({ name, module }: { name: string; module: string }) {\n super()\n this.name = name\n this.module = module\n }\n\n get fullName() {\n return `${this.module}::*`\n }\n\n toString(): string {\n return this.module\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitNamespacePType(this)\n }\n}\n\nexport class FunctionPType extends PType {\n readonly [PType.IdSymbol] = 'FunctionPType'\n readonly wtype: undefined\n readonly name: string\n readonly module: string\n readonly returnType: PType\n readonly parameters: Array<readonly [string, PType]>\n readonly singleton = true\n readonly sourceLocation: SourceLocation | undefined\n readonly declaredIn: SymbolName | undefined\n\n constructor(props: {\n name: string\n module: string\n returnType: PType\n parameters: Array<readonly [string, PType]>\n sourceLocation: SourceLocation | undefined\n declaredIn?: SymbolName\n }) {\n super()\n this.name = props.name\n this.module = props.module\n this.sourceLocation = props.sourceLocation\n this.returnType = props.returnType\n this.parameters = props.parameters\n this.declaredIn = props.declaredIn\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitFunctionPType(this)\n }\n}\nexport class ArrayLiteralPType extends PType {\n readonly [PType.IdSymbol] = 'ArrayLiteralPType'\n\n get fullName() {\n return `${this.module}::[${this.items.map((i) => i).join(', ')}]`\n }\n\n get elementType() {\n return this.items.length ? UnionPType.fromTypes(this.items) : neverPType\n }\n\n readonly singleton = false\n readonly name: string\n readonly module = Constants.moduleNames.typescript.es5\n readonly items: PType[]\n constructor(props: { items: PType[] }) {\n super()\n this.name = `[${props.items.map((i) => i.name).join(', ')}]`\n\n this.items = props.items\n }\n\n get wtype() {\n return this.getReadonlyTupleType().wtype\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitArrayLiteralPType(this)\n }\n\n getArrayType(): ArrayPType {\n return new ArrayPType({\n elementType: this.elementType,\n })\n }\n\n getReadonlyTupleType(): ReadonlyTuplePType {\n return new ReadonlyTuplePType({\n items: this.items,\n })\n }\n getMutableTupleType(): MutableTuplePType {\n return new MutableTuplePType({\n items: this.items,\n })\n }\n}\n\nexport class MutableTuplePType extends PType {\n readonly [PType.IdSymbol] = 'MutableTuplePType'\n readonly module: string = 'lib.d.ts'\n\n get name() {\n return `[${this.items.map((i) => i.name).join(', ')}]`\n }\n get fullName() {\n return `${this.module}::[${this.items.map((i) => i.fullName).join(', ')}]`\n }\n\n readonly items: PType[]\n readonly singleton = false\n constructor(props: { items: PType[] }) {\n super()\n this.items = props.items\n }\n\n get wtype(): wtypes.ARC4Tuple {\n return new wtypes.ARC4Tuple({\n types: this.items.map((i) => i.wtypeOrThrow),\n immutable: false,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitMutableTuplePType(this)\n }\n}\nexport class ReadonlyTuplePType extends PType {\n readonly [PType.IdSymbol] = 'ReadonlyTuplePType'\n readonly module: string = 'lib.d.ts'\n\n get name() {\n return `readonly [${this.items.map((i) => i.name).join(', ')}]`\n }\n get fullName() {\n return `${this.module}::readonly [${this.items.map((i) => i.fullName).join(', ')}]`\n }\n\n readonly items: PType[]\n readonly singleton = false\n constructor(props: { items: PType[] }) {\n super()\n this.items = props.items\n }\n\n get wtype(): wtypes.WTuple {\n return new wtypes.WTuple({\n types: this.items.map((i) => i.wtypeOrThrow),\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitReadonlyTuplePType(this)\n }\n}\nexport const ArrayGeneric = new GenericPType({\n name: 'Array',\n module: Constants.moduleNames.typescript.es5,\n parameterise(typeArgs) {\n codeInvariant(typeArgs.length === 1, 'Array expects exactly 1 type argument')\n return new ArrayPType({ elementType: typeArgs[0] })\n },\n})\nexport class ArrayPType extends PType {\n readonly [PType.IdSymbol] = 'ArrayPType'\n readonly elementType: PType\n readonly immutable = false\n readonly singleton = false\n readonly name: string\n readonly module: string = Constants.moduleNames.typescript.es5\n get fullName() {\n return `${this.module}::Array<${this.elementType.fullName}>`\n }\n constructor(props: { elementType: PType }) {\n super()\n this.name = `Array<${props.elementType.name}>`\n this.elementType = props.elementType\n }\n\n get wtype() {\n return new wtypes.ARC4DynamicArray({\n elementType: this.elementType.wtypeOrThrow,\n immutable: this.immutable,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitArrayPType(this)\n }\n}\nexport const ReadonlyArrayGeneric = new GenericPType({\n name: 'ReadonlyArray',\n module: Constants.moduleNames.typescript.es5,\n parameterise(typeArgs) {\n codeInvariant(typeArgs.length === 1, 'ReadonlyArray expects exactly 1 type argument')\n return new ReadonlyArrayPType({ elementType: typeArgs[0] })\n },\n})\nexport class ReadonlyArrayPType extends PType {\n readonly [PType.IdSymbol] = 'ReadonlyArrayPType'\n readonly elementType: PType\n readonly singleton = false\n readonly immutable = true\n readonly name: string\n readonly module: string = Constants.moduleNames.typescript.es5\n get fullName() {\n return `${this.module}::ReadonlyArray<${this.elementType.fullName}>`\n }\n constructor(props: { elementType: PType }) {\n super()\n this.elementType = props.elementType\n this.name = `ReadonlyArray<${props.elementType.name}>`\n }\n\n get wtype() {\n return new wtypes.ARC4DynamicArray({\n elementType: this.elementType.wtypeOrThrow,\n immutable: this.immutable,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitReadonlyArrayPType(this)\n }\n}\n\nexport const FixedArrayGeneric = new GenericPType({\n name: 'FixedArray',\n module: Constants.moduleNames.algoTs.arrays,\n parameterise(typeArgs) {\n codeInvariant(typeArgs.length === 2, 'FixedArray type expects exactly one type parameters')\n const [elementType, arraySize] = typeArgs\n codeInvariant(\n arraySize instanceof NumericLiteralPType,\n `Array size generic type param for FixedArray must be a literal number. Inferred type is ${arraySize.name}`,\n )\n if (elementType instanceof TransientType) {\n throw new CodeError(elementType.typeMessage)\n }\n return new FixedArrayPType({ elementType, arraySize: arraySize.literalValue })\n },\n})\n\nexport class FixedArrayPType extends PType {\n readonly [PType.IdSymbol] = 'FixedArrayPType'\n readonly elementType: PType\n readonly immutable: boolean = false\n readonly singleton = false\n readonly name: string\n readonly module: string = Constants.moduleNames.algoTs.arrays\n readonly arraySize: bigint\n get fullName() {\n return `${this.module}::FixedArray<${this.elementType.fullName}>`\n }\n constructor(props: { elementType: PType; arraySize: bigint }) {\n super()\n this.elementType = props.elementType\n this.name = `FixedArray<${props.elementType.name}, ${props.arraySize}>`\n this.arraySize = props.arraySize\n }\n get wtype() {\n return new wtypes.ARC4StaticArray({\n elementType: this.elementType.wtypeOrThrow,\n arraySize: this.arraySize,\n immutable: false,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitFixedArrayPType(this)\n }\n}\nexport const ReadonlyGeneric = new GenericPType({\n name: 'Readonly',\n module: Constants.moduleNames.typescript.es5,\n parameterise([obj, ...rest]) {\n codeInvariant(obj instanceof MutableObjectPType && !rest.length, 'Readonly expects exactly 1 generic type arg that is an object type')\n\n return obj.toImmutable()\n },\n})\n\nabstract class ObjectPType extends PType {\n readonly name: string\n readonly module: string = 'lib.d.ts'\n readonly alias: SymbolName | null\n readonly description: string | undefined\n readonly properties: Record<string, PType>\n readonly singleton = false\n readonly immutable: boolean\n\n constructor(props: {\n alias?: SymbolName | null\n properties: Record<string, PType>\n description?: string\n namePrefix: string\n immutable: boolean\n }) {\n super()\n this.name = `${props.namePrefix}${generateObjectHash(props.properties)}`\n this.properties = props.properties\n this.description = props.description\n this.alias = props.alias ?? null\n this.immutable = props.immutable\n }\n\n orderedProperties() {\n return Object.entries(this.properties)\n }\n\n toString(): string {\n return `{${this.orderedProperties()\n .map((p) => `${this.immutable ? 'readonly ' : ''}${p[0]}:${p[1].name}`)\n .join(',')}}`\n }\n\n hasSameStructure(other: ObjectPType): boolean {\n return zipStrict(this.orderedProperties(), other.orderedProperties()).every(\n ([[leftProp, leftType], [rightProp, rightType]]) => leftProp === rightProp && leftType.equals(rightType),\n )\n }\n}\n\nexport class ObjectLiteralPType extends ObjectPType {\n readonly [PType.IdSymbol] = 'ObjectLiteralPType'\n\n constructor(props: { properties: Record<string, PType> }) {\n super({\n ...props,\n namePrefix: `ObjectLiteral`,\n immutable: false,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitObjectLiteralPType(this)\n }\n\n getImmutable(): ImmutableObjectPType {\n return new ImmutableObjectPType({\n alias: this.alias,\n properties: this.properties,\n description: this.description,\n })\n }\n getMutable(): MutableObjectPType {\n return new MutableObjectPType({\n alias: this.alias,\n properties: this.properties,\n description: this.description,\n })\n }\n\n get wtype(): wtypes.WTuple {\n const tupleTypes: wtypes.WType[] = []\n const tupleNames: string[] = []\n for (const [propName, propType] of this.orderedProperties()) {\n if (propType instanceof TransientType) {\n throw new CodeError(`Property '${propName}' of ${this.name} has an unsupported type: ${propType.typeMessage}`)\n }\n tupleTypes.push(propType.wtypeOrThrow)\n tupleNames.push(propName)\n }\n return new wtypes.WTuple({\n name: this.alias?.fullName ?? this.toString(),\n names: tupleNames,\n types: tupleTypes,\n })\n }\n}\n\nexport class ImmutableObjectPType extends ObjectPType {\n readonly [PType.IdSymbol] = 'ImmutableObjectPType'\n\n constructor(props: { alias?: SymbolName | null; properties: Record<string, PType>; description?: string }) {\n super({\n ...props,\n namePrefix: `ReadonlyObject`,\n immutable: true,\n })\n }\n\n get wtype(): wtypes.WTuple {\n const tupleTypes: wtypes.WType[] = []\n const tupleNames: string[] = []\n for (const [propName, propType] of this.orderedProperties()) {\n if (propType instanceof TransientType) {\n throw new CodeError(`Property '${propName}' of ${this.name} has an unsupported type: ${propType.typeMessage}`)\n }\n tupleTypes.push(propType.wtypeOrThrow)\n tupleNames.push(propName)\n }\n return new wtypes.WTuple({\n name: this.alias?.fullName ?? this.name,\n names: tupleNames,\n types: tupleTypes,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitImmutableObjectPType(this)\n }\n}\n\nexport class MutableObjectPType extends ObjectPType {\n readonly [PType.IdSymbol] = 'MutableObjectPType'\n\n constructor(props: { alias?: SymbolName | null; properties: Record<string, PType>; description?: string }) {\n super({\n ...props,\n namePrefix: `Object`,\n immutable: false,\n })\n }\n\n get wtype(): wtypes.ARC4Struct {\n return new wtypes.ARC4Struct({\n name: this.alias?.fullName ?? this.name,\n fields: Object.fromEntries(Object.entries(this.properties).map(([f, t]) => [f, t.wtypeOrThrow])),\n desc: this.description ?? null,\n frozen: false,\n })\n }\n\n toImmutable(): ImmutableObjectPType {\n return new ImmutableObjectPType({\n alias: this.alias,\n properties: this.properties,\n description: this.description,\n })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitMutableObjectPType(this)\n }\n}\n\nexport function isObjectType(ptype: PTypeOrClass): ptype is MutableObjectPType | ImmutableObjectPType | ObjectLiteralPType {\n return instanceOfAny(ptype, MutableObjectPType, ImmutableObjectPType, ObjectLiteralPType)\n}\n\nexport function isArrayType(ptype: PTypeOrClass): ptype is ArrayPType | ReadonlyArrayPType {\n return instanceOfAny(ptype, ArrayPType, ReadonlyArrayPType)\n}\n\nexport function isTupleLike(ptype: PTypeOrClass): ptype is MutableTuplePType | ReadonlyTuplePType | ArrayLiteralPType {\n return instanceOfAny(ptype, ReadonlyTuplePType, MutableTuplePType, ArrayLiteralPType)\n}\n\nexport const voidPType = new ABICompatibleInstanceType({\n name: 'void',\n module: 'lib.d.ts',\n wtype: wtypes.voidWType,\n abiTypeSignature: 'void',\n})\nexport const neverPType = new InstanceType({\n name: 'never',\n module: 'lib.d.ts',\n wtype: wtypes.voidWType,\n})\nexport const unknownPType = new UnsupportedType({\n name: 'unknown',\n module: 'lib.d.ts',\n fullName: 'unknown',\n})\n\nexport const esSymbol = new UnsupportedType({\n name: 'symbol',\n module: 'lib.d.ts',\n fullName: 'symbol',\n})\n\nexport const nullPType = new UnsupportedType({\n name: 'null',\n module: 'lib.d.ts',\n fullName: 'null',\n})\nexport const undefinedPType = new UnsupportedType({\n name: 'undefined',\n module: 'lib.d.ts',\n fullName: 'undefined',\n})\nexport const PromiseGeneric = new GenericPType({\n name: 'Promise',\n module: 'typescript/lib/lib.es5.d.ts',\n parameterise(ptypes: readonly PType[]) {\n codeInvariant(ptypes.length === 1, 'Promise expects exactly 1 generic parameter')\n return new PromiseType({ resolveType: ptypes[0] })\n },\n})\nexport class PromiseType extends UnsupportedType {\n readonly resolveType: PType\n constructor({ resolveType }: { resolveType: PType }) {\n super({\n name: 'Promise',\n module: 'typescript/lib/lib.es5.d.ts',\n })\n this.resolveType = resolveType\n }\n}\nexport const anyPType = new AnyPType()\n\nexport const boolPType = new InstanceType({\n name: 'boolean',\n module: 'lib.d.ts',\n wtype: wtypes.boolWType,\n})\n\nexport const BooleanFunction = new LibFunctionType({\n name: 'Boolean',\n module: 'typescript/lib/lib.es5.d.ts',\n})\n\nexport class BigIntPType extends TransientType {\n readonly [PType.IdSymbol] = 'BigIntPType'\n}\n\nexport class NumberPType extends TransientType {\n readonly [PType.IdSymbol] = 'NumberPType'\n}\n\nexport const bigIntPType = new BigIntPType({\n name: 'bigint',\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric('bigint').usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric('bigint').usedInExpression,\n})\n\nexport const stringPType = new InstanceType({\n name: 'string',\n module: 'lib.d.ts',\n wtype: wtypes.stringWType,\n})\nexport const StringFunction = new LibFunctionType({\n name: 'String',\n module: 'typescript/lib/lib.es5.d.ts',\n})\n\nexport const uint64PType = new InstanceType({\n name: 'uint64',\n module: Constants.moduleNames.algoTs.primitives,\n wtype: wtypes.uint64WType,\n})\nexport const biguintPType = new InstanceType({\n name: 'biguint',\n module: Constants.moduleNames.algoTs.primitives,\n wtype: wtypes.biguintWType,\n})\nexport class NumericLiteralPType extends TransientType {\n readonly [PType.IdSymbol] = 'NumericLiteralPType'\n readonly literalValue: bigint\n constructor({ literalValue }: { literalValue: bigint }) {\n super({\n name: `${literalValue}`,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric(literalValue.toString()).usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric(literalValue.toString()).usedInExpression,\n })\n this.literalValue = literalValue\n }\n\n static typeDescription = 'numeric literal'\n}\nexport class BigIntLiteralPType extends TransientType {\n readonly [PType.IdSymbol] = 'BigIntLiteralPType'\n readonly literalValue: bigint\n constructor({ literalValue }: { literalValue: bigint }) {\n super({\n name: `${literalValue}n`,\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric(`${literalValue}n`).usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric(`${literalValue}n`).usedInExpression,\n })\n this.literalValue = literalValue\n }\n\n static typeDescription = 'bigint literal'\n}\nexport const numberPType = new NumberPType({\n name: 'number',\n module: 'lib.d.ts',\n singleton: false,\n typeMessage: transientTypeErrors.nativeNumeric('number').usedAsType,\n expressionMessage: transientTypeErrors.nativeNumeric('number').usedInExpression,\n})\nexport const Uint64Function = new LibFunctionType({\n name: 'Uint64',\n module: Constants.moduleNames.algoTs.primitives,\n})\n\nexport const BigUintFunction = new LibFunctionType({\n name: 'BigUint',\n module: Constants.moduleNames.algoTs.primitives,\n})\nexport class BytesPType extends PType {\n readonly [PType.IdSymbol] = 'BytesPType'\n readonly wtype: wtypes.WType\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly length: bigint | null\n\n constructor({ length }: { length: bigint | null }) {\n super()\n this.length = length\n this.name = length === null ? 'bytes' : `bytes<${length}>`\n this.wtype = new wtypes.BytesWType({ length })\n this.module = Constants.moduleNames.algoTs.primitives\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitBytesPType(this)\n }\n}\nexport const BytesGeneric = new GenericPType({\n name: 'bytes',\n module: Constants.moduleNames.algoTs.primitives,\n parameterise(typeArgs: readonly PType[]): BytesPType {\n codeInvariant(typeArgs.length === 1, `${this.name} type expects exactly one type parameter`)\n const bytesSize = typeArgs[0]\n if (\n bytesSize.equals(uint64PType) ||\n // A union of numeric literals and uint64, this can happen only for intrinsic calls like `ecdsaPkDecompress(v: Ecdsa, a: bytes<33> | bytes)`\n // union types are not allowed in user code\n (bytesSize instanceof UnionPType && bytesSize.types.every((t) => t.equals(uint64PType) || t instanceof NumericLiteralPType))\n ) {\n return new BytesPType({\n length: null,\n })\n }\n codeInvariant(\n bytesSize instanceof NumericLiteralPType,\n `Bytes size generic type param for bytes type must be a literal number. Inferred type is ${bytesSize.name}`,\n )\n return new BytesPType({\n length: bytesSize.literalValue,\n })\n },\n})\nexport const bytesPType = new BytesPType({ length: null })\nexport const BytesFunction = new LibFunctionType({\n name: 'Bytes',\n module: Constants.moduleNames.algoTs.primitives,\n})\n\nexport const logFunction = new LibFunctionType({\n name: 'log',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const assertFunction = new LibFunctionType({\n name: 'assert',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const errFunction = new LibFunctionType({\n name: 'err',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const loggedAssertFunction = new LibFunctionType({\n name: 'loggedAssert',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const loggedErrFunction = new LibFunctionType({\n name: 'loggedErr',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const assetPType = new ABICompatibleInstanceType({\n name: 'Asset',\n wtype: wtypes.assetWType,\n module: Constants.moduleNames.algoTs.reference,\n abiTypeSignature: 'asset',\n})\nexport const AssetFunction = new LibFunctionType({\n name: 'Asset',\n module: Constants.moduleNames.algoTs.reference,\n})\nexport const accountPType = new ABICompatibleInstanceType({\n name: 'Account',\n wtype: wtypes.accountWType,\n module: Constants.moduleNames.algoTs.reference,\n abiTypeSignature: 'account',\n})\nexport const AccountFunction = new LibFunctionType({\n name: 'Account',\n module: Constants.moduleNames.algoTs.reference,\n})\nexport const applicationPType = new ABICompatibleInstanceType({\n name: 'Application',\n wtype: wtypes.applicationWType,\n module: Constants.moduleNames.algoTs.reference,\n abiTypeSignature: 'application',\n})\nexport const ApplicationFunctionType = new LibFunctionType({\n name: 'Application',\n module: Constants.moduleNames.algoTs.reference,\n})\n\nexport const ClearStateProgram = new FunctionPType({\n name: Constants.symbolNames.clearStateProgramMethodName,\n module: Constants.moduleNames.algoTs.baseContract,\n returnType: uint64PType,\n parameters: [],\n sourceLocation: undefined,\n})\n\nexport const ApprovalProgram = new FunctionPType({\n name: Constants.symbolNames.approvalProgramMethodName,\n module: Constants.moduleNames.algoTs.arc4.index,\n returnType: boolPType,\n parameters: [],\n sourceLocation: undefined,\n})\n\nexport const baseContractType = new BaseContractClassType({\n module: Constants.moduleNames.algoTs.baseContract,\n name: 'BaseContract',\n methods: {\n clearStateProgram: ClearStateProgram,\n },\n properties: {},\n baseTypes: [],\n isArc4: false,\n sourceLocation: SourceLocation.None,\n})\nexport const arc4BaseContractType = new BaseContractClassType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'Contract',\n methods: {\n approvalProgram: ApprovalProgram,\n clearStateProgram: ClearStateProgram,\n },\n properties: {},\n baseTypes: [baseContractType],\n isArc4: true,\n sourceLocation: SourceLocation.None,\n})\nexport const itoaMethod = new LibFunctionType({\n module: 'puya-ts',\n name: 'itoa',\n})\nexport const arc4BareMethodDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'baremethod',\n})\nexport const arc4AbiMethodDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'abimethod',\n})\nexport const readonlyDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.arc4.index,\n name: 'readonly',\n})\n\nexport const contractOptionsDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.baseContract,\n name: 'contract',\n})\n\nexport const logicSigOptionsDecorator = new LibFunctionType({\n module: Constants.moduleNames.algoTs.logicSig,\n name: 'logicsig',\n})\n\nexport class GroupTransactionPType extends PType implements ABICompatiblePType {\n readonly [PType.IdSymbol] = 'GroupTransactionPType'\n get wtype() {\n return new wtypes.WGroupTransaction({\n transactionType: this.kind,\n })\n }\n readonly name: string\n readonly kind: TransactionKind | undefined\n readonly module = Constants.moduleNames.algoTs.gtxn\n readonly singleton = false\n readonly abiTypeSignature: string\n\n constructor({ kind, name }: { kind?: TransactionKind; name: string }) {\n super()\n this.name = name\n this.kind = kind\n this.abiTypeSignature = kind !== undefined ? TransactionKind[kind] : 'txn'\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitGroupTransactionPType(this)\n }\n}\n\nexport class TransactionFunctionType extends LibFunctionType {\n readonly kind: TransactionKind | undefined\n\n constructor({ name, module, kind }: { name: string; module: string; kind: TransactionKind | undefined }) {\n super({ name, module })\n this.kind = kind\n }\n}\n\nexport const paymentGtxnType = new GroupTransactionPType({\n name: 'PaymentTxn',\n kind: TransactionKind.pay,\n})\nexport const PaymentTxnFunction = new TransactionFunctionType({\n name: 'PaymentTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.pay,\n})\nexport const keyRegistrationGtxnType = new GroupTransactionPType({\n name: 'KeyRegistrationTxn',\n kind: TransactionKind.keyreg,\n})\nexport const KeyRegistrationTxnFunction = new TransactionFunctionType({\n name: 'KeyRegistrationTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.keyreg,\n})\nexport const assetConfigGtxnType = new GroupTransactionPType({\n name: 'AssetConfigTxn',\n kind: TransactionKind.acfg,\n})\nexport const AssetConfigTxnFunction = new TransactionFunctionType({\n name: 'AssetConfigTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.acfg,\n})\nexport const assetTransferGtxnType = new GroupTransactionPType({\n name: 'AssetTransferTxn',\n kind: TransactionKind.axfer,\n})\nexport const AssetTransferTxnFunction = new TransactionFunctionType({\n name: 'AssetTransferTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.axfer,\n})\nexport const assetFreezeGtxnType = new GroupTransactionPType({\n name: 'AssetFreezeTxn',\n kind: TransactionKind.afrz,\n})\nexport const AssetFreezeTxnFunction = new TransactionFunctionType({\n name: 'AssetFreezeTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.afrz,\n})\nexport const applicationCallGtxnType = new GroupTransactionPType({\n name: 'ApplicationCallTxn',\n kind: TransactionKind.appl,\n})\nexport const ApplicationTxnFunction = new TransactionFunctionType({\n name: 'ApplicationCallTxn',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: TransactionKind.appl,\n})\n\nexport const anyGtxnType = new GroupTransactionPType({\n name: 'Transaction',\n kind: undefined,\n})\nexport const TransactionFunction = new TransactionFunctionType({\n name: 'Transaction',\n module: Constants.moduleNames.algoTs.gtxn,\n kind: undefined,\n})\n\nexport const assertMatchFunction = new LibFunctionType({\n name: 'assertMatch',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const matchFunction = new LibFunctionType({\n name: 'match',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport class Uint64EnumMemberType extends PType {\n readonly [PType.IdSymbol] = 'Uint64EnumMemberType'\n readonly wtype = wtypes.uint64WType\n readonly name: string\n readonly module: string\n readonly singleton = false\n readonly enumType: Uint64EnumType\n\n constructor(enumType: Uint64EnumType) {\n super()\n this.name = enumType.name\n this.module = enumType.module\n this.enumType = enumType\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitUint64EnumMemberType(this)\n }\n}\n\nexport class Uint64EnumMemberLiteralType extends Uint64EnumMemberType {\n readonly wtype = wtypes.uint64WType\n readonly member: string\n readonly value: bigint\n\n constructor(enumType: Uint64EnumType, member: string | bigint) {\n super(enumType)\n if (typeof member === 'bigint') {\n ;[this.member, this.value] =\n Object.entries(enumType.members).find(([n, v]) => v === member) ??\n throwError(new InternalError(`${member} is not a valid member for ${enumType.name}`))\n } else {\n invariant(member in enumType.members, `${member} is not a valid member for ${enumType.name}`)\n this.member = member\n this.value = enumType.members[member]\n }\n }\n}\n\nexport class Uint64EnumType extends PType {\n readonly [PType.IdSymbol] = 'Uint64EnumType'\n readonly memberType: Uint64EnumMemberType\n readonly wtype = wtypes.uint64WType\n readonly name: string\n readonly module: string\n readonly singleton = true\n readonly members: Record<string, bigint>\n\n constructor(props: { name: string; module: string; members: Record<string, bigint> }) {\n super()\n this.name = props.name\n this.module = props.module\n this.members = props.members\n this.memberType = new Uint64EnumMemberType(this)\n }\n\n getMemberLiteral(member: string | bigint) {\n return new Uint64EnumMemberLiteralType(this, member)\n }\n\n hasMember(member: string | bigint) {\n return Object.entries(this.members).some((m) => m[0] === member || m[1] === member)\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitUint64EnumType(this)\n }\n}\n\nexport const transactionTypeType = new Uint64EnumType({\n module: Constants.moduleNames.algoTs.transactions,\n name: 'TransactionType',\n members: {\n Payment: 1n,\n KeyRegistration: 2n,\n AssetConfig: 3n,\n AssetTransfer: 4n,\n AssetFreeze: 5n,\n ApplicationCall: 6n,\n },\n})\nexport const onCompleteActionType = new Uint64EnumType({\n module: Constants.moduleNames.algoTs.onCompleteAction,\n name: 'OnCompleteAction',\n members: {\n NoOp: 0n,\n OptIn: 1n,\n CloseOut: 2n,\n ClearState: 3n,\n UpdateApplication: 4n,\n DeleteApplication: 5n,\n },\n})\nexport const ensureBudgetFunction = new LibFunctionType({\n name: 'ensureBudget',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const opUpFeeSourceType = new Uint64EnumType({\n module: Constants.moduleNames.algoTs.util,\n name: 'OpUpFeeSource',\n members: {\n GroupCredit: 0n,\n AppAccount: 1n,\n Any: 2n,\n },\n})\n\nexport const urangeFunction = new LibFunctionType({\n name: 'urange',\n module: Constants.moduleNames.algoTs.util,\n})\nexport const IterableIteratorGeneric = new GenericPType({\n name: 'IterableIterator',\n module: 'typescript/lib/lib.es2015.iterable.d.ts',\n parameterise(typeArgs: readonly PType[]): IterableIteratorType {\n codeInvariant(typeArgs.length >= 1 && typeArgs.length <= 3, 'IterableIterator type expects 1-3 type parameters')\n // Currently ignoring return and next types\n const [yieldType, _returnType, _nextType] = typeArgs\n return new IterableIteratorType({\n itemType: yieldType,\n })\n },\n})\nexport class IterableIteratorType extends TransientType {\n readonly [PType.IdSymbol] = 'IterableIteratorType'\n readonly itemType: PType\n constructor({ itemType }: { itemType: PType }) {\n super({\n name: `IterableIterator<${itemType.name}>`,\n module: 'typescript/lib/lib.es2015.iterable.d.ts',\n typeMessage: '`IterableIterator` is not valid as a variable, parameter, return, or property type. ',\n expressionMessage: 'IterableIterator expressions can only be used in for loops',\n singleton: false,\n })\n this.itemType = itemType\n }\n\n get wtype(): wtypes.WEnumeration {\n return new wtypes.WEnumeration({ sequenceType: this.itemType.wtypeOrThrow })\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitIterableIterator(this)\n }\n}\n\nexport const GeneratorGeneric = new GenericPType({\n name: 'Generator',\n module: 'typescript/lib/lib.es2015.generator.d.ts',\n parameterise(ptypes) {\n codeInvariant(ptypes.length === 3, 'Generator type expects exactly 3 type params')\n\n const [itemType, returnType, nextType] = ptypes\n return new GeneratorType({\n itemType,\n nextType,\n returnType,\n })\n },\n})\n\nexport class GeneratorType extends UnsupportedType {\n readonly itemType: PType\n readonly returnType: PType\n readonly nextType: PType\n constructor({ itemType, returnType, nextType }: { itemType: PType; returnType: PType; nextType: PType }) {\n super({\n name: 'Generator',\n module: 'typescript/lib/lib.es2015.generator.d.ts',\n })\n this.itemType = itemType\n this.returnType = returnType\n this.nextType = nextType\n }\n}\n\nexport const paymentItxnFn = new TransactionFunctionType({\n name: 'payment',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.pay,\n})\nexport const keyRegistrationItxnFn = new TransactionFunctionType({\n name: 'keyRegistration',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.keyreg,\n})\nexport const assetConfigItxnFn = new TransactionFunctionType({\n name: 'assetConfig',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.acfg,\n})\nexport const assetTransferItxnFn = new TransactionFunctionType({\n name: 'assetTransfer',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.axfer,\n})\nexport const assetFreezeItxnFn = new TransactionFunctionType({\n name: 'assetFreeze',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.afrz,\n})\nexport const applicationCallItxnFn = new TransactionFunctionType({\n name: 'applicationCall',\n module: Constants.moduleNames.algoTs.itxn,\n kind: TransactionKind.appl,\n})\n\nexport class InnerTransactionPType extends PType {\n readonly [PType.IdSymbol] = 'InnerTransactionPType'\n get wtype() {\n return new wtypes.WInnerTransaction({\n transactionType: this.kind,\n })\n }\n readonly name: string\n readonly kind: TransactionKind | undefined\n readonly module = Constants.moduleNames.algoTs.itxn\n readonly singleton = false\n\n constructor({ kind, name }: { kind?: TransactionKind; name: string }) {\n super()\n this.name = name\n this.kind = kind\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitInnerTransactionPType(this)\n }\n}\nexport class ItxnParamsPType extends PType {\n readonly [PType.IdSymbol] = 'ItxnParamsPType'\n get wtype() {\n return new wtypes.WInnerTransactionFields({\n transactionType: this.kind,\n })\n }\n readonly name: string\n readonly kind: TransactionKind | undefined\n readonly module = Constants.moduleNames.algoTs.itxn\n readonly singleton = false\n\n constructor({ kind, name }: { kind?: TransactionKind; name: string }) {\n super()\n this.name = name\n this.kind = kind\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitItxnParamsPType(this)\n }\n}\nexport const paymentItxnParamsType = new ItxnParamsPType({\n name: 'PaymentItxnParams',\n kind: TransactionKind.pay,\n})\nexport const paymentItxnType = new InnerTransactionPType({\n name: 'PaymentInnerTxn',\n kind: TransactionKind.pay,\n})\nexport const keyRegistrationItxnParamsType = new ItxnParamsPType({\n name: 'KeyRegistrationItxnParams',\n kind: TransactionKind.keyreg,\n})\nexport const keyRegistrationItxnType = new InnerTransactionPType({\n name: 'KeyRegistrationInnerTxn',\n kind: TransactionKind.keyreg,\n})\nexport const assetConfigItxnParamsType = new ItxnParamsPType({\n name: 'AssetConfigItxnParams',\n kind: TransactionKind.acfg,\n})\nexport const assetConfigItxnType = new InnerTransactionPType({\n name: 'AssetConfigInnerTxn',\n kind: TransactionKind.acfg,\n})\nexport const assetTransferItxnParamsType = new ItxnParamsPType({\n name: 'AssetTransferItxnParams',\n kind: TransactionKind.axfer,\n})\nexport const assetTransferItxnType = new InnerTransactionPType({\n name: 'AssetTransferInnerTxn',\n kind: TransactionKind.axfer,\n})\nexport const assetFreezeItxnParamsType = new ItxnParamsPType({\n name: 'AssetFreezeItxnParams',\n kind: TransactionKind.afrz,\n})\nexport const assetFreezeItxnType = new InnerTransactionPType({\n name: 'AssetFreezeInnerTxn',\n kind: TransactionKind.afrz,\n})\nexport const applicationCallItxnParamsType = new ItxnParamsPType({\n name: 'ApplicationCallItxnParams',\n kind: TransactionKind.appl,\n})\nexport const applicationItxnType = new InnerTransactionPType({\n name: 'ApplicationCallInnerTxn',\n kind: TransactionKind.appl,\n})\nexport const anyItxnParamsType = new ItxnParamsPType({\n name: 'AnyItxnParams',\n})\n\nexport const anyItxnType = new InnerTransactionPType({\n name: 'InnerTxn',\n})\n\nexport const inputOnlyObjects = ['Payment', 'KeyRegistration', 'AssetConfig', 'AssetTransfer', 'AssetFreeze', 'ApplicationCall'].flatMap(\n (txnKind) => [\n new ObjectWithOptionalFieldsType({\n name: `${txnKind}Fields`,\n module: Constants.moduleNames.algoTs.itxn,\n }),\n new ObjectWithOptionalFieldsType({\n name: `${txnKind}ComposeFields`,\n module: Constants.moduleNames.algoTs.itxnCompose,\n }),\n ],\n)\n\nexport const submitGroupItxnFunction = new LibFunctionType({\n name: 'submitGroup',\n module: Constants.moduleNames.algoTs.itxn,\n})\n\nexport const TemplateVarFunction = new LibFunctionType({\n name: 'TemplateVar',\n module: Constants.moduleNames.algoTs.templateVar,\n})\n\nexport const compileFunctionType = new LibFunctionType({\n name: 'compile',\n module: Constants.moduleNames.algoTs.compiled,\n})\n\nexport const compiledContractType = new ImmutableObjectPType({\n alias: new SymbolName({\n name: 'CompiledContract',\n module: Constants.moduleNames.algoTs.compiled,\n }),\n description: 'Provides compiled programs and state allocation values for a Contract. Created by calling `compile(ExampleContractType)`',\n properties: {\n approvalProgram: new ReadonlyTuplePType({ items: [bytesPType, bytesPType] }),\n clearStateProgram: new ReadonlyTuplePType({ items: [bytesPType, bytesPType] }),\n extraProgramPages: uint64PType,\n globalUints: uint64PType,\n globalBytes: uint64PType,\n localUints: uint64PType,\n localBytes: uint64PType,\n },\n})\nexport const compiledLogicSigType = new ImmutableObjectPType({\n alias: new SymbolName({\n name: 'CompiledLogicSig',\n module: Constants.moduleNames.algoTs.compiled,\n }),\n description: 'Provides account for a Logic Signature. Created by calling `compile(LogicSigType)``',\n properties: {\n account: accountPType,\n },\n})\n\nexport const arc28EmitFunction = new LibFunctionType({\n name: 'emit',\n module: Constants.moduleNames.algoTs.arc28,\n})\n\nexport const SuperPrototypeSelectorGeneric = new GenericPType({\n name: 'SuperPrototypeSelector',\n module: Constants.moduleNames.polytype,\n parameterise(ptypes: readonly PType[]) {\n return new SuperPrototypeSelector({ bases: ptypes })\n },\n})\nexport class SuperPrototypeSelector extends PType {\n readonly [PType.IdSymbol] = 'SuperPrototypeSelector'\n readonly bases: readonly PType[]\n readonly name = 'SuperPrototypeSelector'\n readonly singleton = false\n readonly wtype = undefined\n readonly module = Constants.moduleNames.polytype\n constructor({ bases }: { bases: readonly PType[] }) {\n super()\n this.bases = bases\n }\n\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitSuperPrototypeSelector(this)\n }\n}\nexport const ClusteredPrototype = new InternalType({\n name: 'ClusteredPrototype',\n module: Constants.moduleNames.polytype,\n})\nexport const PolytypeClassMethodHelper = new LibFunctionType({\n name: 'class',\n module: Constants.moduleNames.polytype,\n})\nexport const ReferenceArrayGeneric = new GenericPType({\n name: 'ReferenceArray',\n module: Constants.moduleNames.algoTs.referenceArray,\n parameterise: (typeArgs: readonly PType[]): ReferenceArrayType => {\n codeInvariant(typeArgs.length === 1, 'ReferenceArray type expects exactly one type parameter')\n const [elementType] = typeArgs\n\n return new ReferenceArrayType({ elementType: elementType })\n },\n})\nexport class ReferenceArrayType extends PType {\n readonly [PType.IdSymbol] = 'ReferenceArrayType'\n readonly module = Constants.moduleNames.algoTs.referenceArray\n readonly name: string\n readonly singleton = false\n readonly sourceLocation: SourceLocation | undefined\n readonly elementType: PType\n\n constructor({\n elementType,\n sourceLocation,\n name,\n }: {\n elementType: PType\n sourceLocation?: SourceLocation\n name?: string\n immutable?: boolean\n }) {\n super()\n this.name = name ?? `ReferenceArray<${elementType}>`\n this.sourceLocation = sourceLocation\n this.elementType = elementType\n }\n\n get wtype() {\n return new wtypes.ReferenceArray({\n itemType: this.elementType.wtypeOrThrow,\n sourceLocation: this.sourceLocation,\n immutable: false,\n })\n }\n accept<T>(visitor: PTypeVisitor<T>): T {\n return visitor.visitReferenceArrayType(this)\n }\n}\n\nexport const itxnComposePType = new LibObjType({\n module: Constants.moduleNames.algoTs.itxnCompose,\n name: 'itxnCompose',\n})\n\nexport const cloneFunctionPType = new LibFunctionType({\n name: 'clone',\n module: Constants.moduleNames.algoTs.util,\n})\n\nexport const validateEncodingFunctionPType = new LibFunctionType({\n name: 'validateEncoding',\n module: Constants.moduleNames.algoTs.util,\n})\n","import { TransactionKind } from '../../../awst/models'\nimport type { GroupTransactionPType, InnerTransactionPType, ItxnParamsPType } from '../../ptypes'\nimport {\n anyGtxnType,\n applicationCallGtxnType,\n applicationCallItxnParamsType,\n applicationItxnType,\n assetConfigGtxnType,\n assetConfigItxnParamsType,\n assetConfigItxnType,\n assetFreezeGtxnType,\n assetFreezeItxnParamsType,\n assetFreezeItxnType,\n assetTransferGtxnType,\n assetTransferItxnParamsType,\n assetTransferItxnType,\n keyRegistrationGtxnType,\n keyRegistrationItxnParamsType,\n keyRegistrationItxnType,\n paymentGtxnType,\n paymentItxnParamsType,\n paymentItxnType,\n} from '../../ptypes'\n\nexport function getInnerTransactionType(kind: TransactionKind): InnerTransactionPType {\n switch (kind) {\n case TransactionKind.pay:\n return paymentItxnType\n case TransactionKind.keyreg:\n return keyRegistrationItxnType\n case TransactionKind.acfg:\n return assetConfigItxnType\n case TransactionKind.axfer:\n return assetTransferItxnType\n case TransactionKind.afrz:\n return assetFreezeItxnType\n case TransactionKind.appl:\n return applicationItxnType\n }\n}\nexport function getItxnParamsType(kind: TransactionKind): ItxnParamsPType {\n switch (kind) {\n case TransactionKind.pay:\n return paymentItxnParamsType\n case TransactionKind.keyreg:\n return keyRegistrationItxnParamsType\n case TransactionKind.acfg:\n return assetConfigItxnParamsType\n case TransactionKind.axfer:\n return assetTransferItxnParamsType\n case TransactionKind.afrz:\n return assetFreezeItxnParamsType\n case TransactionKind.appl:\n return applicationCallItxnParamsType\n }\n}\nexport function getGroupTransactionType(kind: TransactionKind | undefined): GroupTransactionPType {\n switch (kind) {\n case TransactionKind.pay:\n return paymentGtxnType\n case TransactionKind.keyreg:\n return keyRegistrationGtxnType\n case TransactionKind.acfg:\n return assetConfigGtxnType\n case TransactionKind.axfer:\n return assetTransferGtxnType\n case TransactionKind.afrz:\n return assetFreezeGtxnType\n case TransactionKind.appl:\n return applicationCallGtxnType\n default:\n return anyGtxnType\n }\n}\n","/* AUTOGENERATED FILE - DO NOT EDIT (see puya/scripts/generate_ts_nodes.py) */\nimport { classes } from 'polytype'\nimport type { Props } from '../typescript-helpers'\nimport type { ContractReference, LogicSigReference, OnCompletionAction } from './models'\nimport type { SourceLocation } from './source-location'\nimport type { TxnField } from './txn-fields'\nimport type { wtypes } from './wtypes'\nexport abstract class Node {\n constructor(props: Props<Node>) {\n this.sourceLocation = props.sourceLocation\n }\n readonly sourceLocation: SourceLocation\n}\nexport abstract class Statement extends Node {\n constructor(props: Props<Statement>) {\n super(props)\n }\n abstract accept<T>(visitor: StatementVisitor<T>): T\n}\nexport abstract class Expression extends Node {\n constructor(props: Props<Expression>) {\n super(props)\n this.wtype = props.wtype\n }\n readonly wtype: wtypes.WType\n abstract accept<T>(visitor: ExpressionVisitor<T>): T\n}\nexport class ExpressionStatement extends Statement {\n constructor(props: Props<ExpressionStatement>) {\n super(props)\n this.expr = props.expr\n this.sourceLocation = props.sourceLocation\n }\n readonly expr: Expression\n readonly sourceLocation: SourceLocation\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitExpressionStatement(this)\n }\n}\nexport class Block extends Statement {\n constructor(props: Props<Block>) {\n super(props)\n this.body = props.body\n this.label = props.label\n this.comment = props.comment\n }\n readonly body: Array<Statement>\n readonly label: string | null\n readonly comment: string | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitBlock(this)\n }\n}\nexport class Goto extends Statement {\n constructor(props: Props<Goto>) {\n super(props)\n this.target = props.target\n }\n readonly target: string\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitGoto(this)\n }\n}\nexport class IfElse extends Statement {\n constructor(props: Props<IfElse>) {\n super(props)\n this.condition = props.condition\n this.ifBranch = props.ifBranch\n this.elseBranch = props.elseBranch\n }\n readonly condition: Expression\n readonly ifBranch: Block\n readonly elseBranch: Block | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitIfElse(this)\n }\n}\nexport class Switch extends Statement {\n constructor(props: Props<Switch>) {\n super(props)\n this.value = props.value\n this.cases = props.cases\n this.defaultCase = props.defaultCase\n }\n readonly value: Expression\n readonly cases: Map<Expression, Block>\n readonly defaultCase: Block | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitSwitch(this)\n }\n}\nexport class WhileLoop extends Statement {\n constructor(props: Props<WhileLoop>) {\n super(props)\n this.condition = props.condition\n this.loopBody = props.loopBody\n }\n readonly condition: Expression\n readonly loopBody: Block\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitWhileLoop(this)\n }\n}\nexport class LoopExit extends Statement {\n constructor(props: Props<LoopExit>) {\n super(props)\n }\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitLoopExit(this)\n }\n}\nexport class LoopContinue extends Statement {\n constructor(props: Props<LoopContinue>) {\n super(props)\n }\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitLoopContinue(this)\n }\n}\nexport class ReturnStatement extends Statement {\n constructor(props: Props<ReturnStatement>) {\n super(props)\n this.value = props.value\n }\n readonly value: Expression | null\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitReturnStatement(this)\n }\n}\nexport class AssertExpression extends Expression {\n constructor(props: Props<AssertExpression>) {\n super(props)\n this.condition = props.condition\n this.errorMessage = props.errorMessage\n this.wtype = props.wtype\n this.explicit = props.explicit\n this.logError = props.logError\n }\n readonly condition: Expression | null\n readonly errorMessage: string | null\n readonly wtype: wtypes.WType\n readonly explicit: boolean\n readonly logError: boolean\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAssertExpression(this)\n }\n}\nexport class IntegerConstant extends Expression {\n constructor(props: Props<IntegerConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n this.tealAlias = props.tealAlias\n }\n readonly wtype: wtypes.WType\n readonly value: bigint\n readonly tealAlias: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIntegerConstant(this)\n }\n}\nexport class DecimalConstant extends Expression {\n constructor(props: Props<DecimalConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n }\n readonly wtype: wtypes.ARC4UFixedNxM\n readonly value: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitDecimalConstant(this)\n }\n}\nexport class BoolConstant extends Expression {\n constructor(props: Props<BoolConstant>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: boolean\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBoolConstant(this)\n }\n}\nexport enum BytesEncoding {\n unknown = 'unknown',\n base16 = 'base16',\n base32 = 'base32',\n base64 = 'base64',\n utf8 = 'utf8',\n}\nexport class BytesConstant extends Expression {\n constructor(props: Props<BytesConstant>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n this.encoding = props.encoding\n }\n readonly value: Uint8Array\n readonly wtype: wtypes.WType\n readonly encoding: BytesEncoding\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesConstant(this)\n }\n}\nexport class StringConstant extends Expression {\n constructor(props: Props<StringConstant>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: string\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStringConstant(this)\n }\n}\nexport class VoidConstant extends Expression {\n constructor(props: Props<VoidConstant>) {\n super(props)\n this.wtype = props.wtype\n }\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitVoidConstant(this)\n }\n}\nexport class TemplateVar extends Expression {\n constructor(props: Props<TemplateVar>) {\n super(props)\n this.wtype = props.wtype\n this.name = props.name\n }\n readonly wtype: wtypes.WType\n readonly name: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitTemplateVar(this)\n }\n}\nexport class MethodSignatureString extends Node {\n constructor(props: Props<MethodSignatureString>) {\n super(props)\n this.value = props.value\n }\n readonly value: string\n}\nexport class MethodSignature extends Node {\n constructor(props: Props<MethodSignature>) {\n super(props)\n this.name = props.name\n this.argTypes = props.argTypes\n this.returnType = props.returnType\n this.resourceEncoding = props.resourceEncoding\n }\n readonly name: string\n readonly argTypes: Array<wtypes.WType>\n readonly returnType: wtypes.WType\n readonly resourceEncoding: 'index' | 'value'\n}\nexport class MethodConstant extends Expression {\n constructor(props: Props<MethodConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n }\n readonly wtype: wtypes.WType\n readonly value: MethodSignature | MethodSignatureString\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitMethodConstant(this)\n }\n}\nexport class AddressConstant extends Expression {\n constructor(props: Props<AddressConstant>) {\n super(props)\n this.wtype = props.wtype\n this.value = props.value\n }\n readonly wtype: wtypes.WType\n readonly value: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAddressConstant(this)\n }\n}\nexport class ARC4Encode extends Expression {\n constructor(props: Props<ARC4Encode>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n this.errorMessage = props.errorMessage\n }\n readonly value: Expression\n readonly wtype: wtypes.ARC4Type | wtypes.BytesWType\n readonly errorMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4Encode(this)\n }\n}\nexport class ARC4Decode extends Expression {\n constructor(props: Props<ARC4Decode>) {\n super(props)\n this.value = props.value\n this.errorMessage = props.errorMessage\n }\n readonly value: Expression\n readonly errorMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4Decode(this)\n }\n}\nexport class ARC4FromBytes extends Expression {\n constructor(props: Props<ARC4FromBytes>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n this.validate = props.validate\n }\n readonly value: Expression\n readonly wtype: wtypes.WType\n readonly validate: boolean\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4FromBytes(this)\n }\n}\nexport class ConvertArray extends Expression {\n constructor(props: Props<ConvertArray>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.ARC4DynamicArray | wtypes.ARC4StaticArray | wtypes.ReferenceArray\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitConvertArray(this)\n }\n}\nexport class Copy extends Expression {\n constructor(props: Props<Copy>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCopy(this)\n }\n}\nexport class ArrayConcat extends Expression {\n constructor(props: Props<ArrayConcat>) {\n super(props)\n this.left = props.left\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly right: Expression\n readonly wtype: wtypes.ARC4DynamicArray\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayConcat(this)\n }\n}\nexport class ArrayExtend extends Expression {\n constructor(props: Props<ArrayExtend>) {\n super(props)\n this.base = props.base\n this.other = props.other\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly other: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayExtend(this)\n }\n}\nexport class ArrayPop extends Expression {\n constructor(props: Props<ArrayPop>) {\n super(props)\n this.base = props.base\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayPop(this)\n }\n}\nexport class ArrayReplace extends Expression {\n constructor(props: Props<ArrayReplace>) {\n super(props)\n this.base = props.base\n this.index = props.index\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly index: Expression\n readonly value: Expression\n readonly wtype: wtypes.ARC4Array\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayReplace(this)\n }\n}\nexport class SizeOf extends Expression {\n constructor(props: Props<SizeOf>) {\n super(props)\n this.sizeWtype = props.sizeWtype\n this.wtype = props.wtype\n }\n readonly sizeWtype: wtypes.WType\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSizeOf(this)\n }\n}\nexport class IntrinsicCall extends Expression {\n constructor(props: Props<IntrinsicCall>) {\n super(props)\n this.opCode = props.opCode\n this.immediates = props.immediates\n this.stackArgs = props.stackArgs\n }\n readonly opCode: string\n readonly immediates: Array<string | bigint>\n readonly stackArgs: Array<Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIntrinsicCall(this)\n }\n}\nexport class CreateInnerTransaction extends Expression {\n constructor(props: Props<CreateInnerTransaction>) {\n super(props)\n this.wtype = props.wtype\n this.fields = props.fields\n }\n readonly wtype: wtypes.WInnerTransactionFields\n readonly fields: Map<TxnField, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCreateInnerTransaction(this)\n }\n}\nexport class UpdateInnerTransaction extends Expression {\n constructor(props: Props<UpdateInnerTransaction>) {\n super(props)\n this.itxn = props.itxn\n this.fields = props.fields\n this.wtype = props.wtype\n }\n readonly itxn: Expression\n readonly fields: Map<TxnField, Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUpdateInnerTransaction(this)\n }\n}\nexport class StageInnerTransactions extends Expression {\n constructor(props: Props<StageInnerTransactions>) {\n super(props)\n this.itxns = props.itxns\n this.startNewGroup = props.startNewGroup\n this.wtype = props.wtype\n }\n readonly itxns: Array<Expression>\n readonly startNewGroup: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStageInnerTransactions(this)\n }\n}\nexport class GroupTransactionReference extends Expression {\n constructor(props: Props<GroupTransactionReference>) {\n super(props)\n this.index = props.index\n this.wtype = props.wtype\n }\n readonly index: Expression\n readonly wtype: wtypes.WGroupTransaction\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitGroupTransactionReference(this)\n }\n}\nexport class CheckedMaybe extends Expression {\n constructor(props: Props<CheckedMaybe>) {\n super(props)\n this.expr = props.expr\n this.comment = props.comment\n this.wtype = props.wtype\n this.sourceLocation = props.sourceLocation\n }\n readonly expr: Expression\n readonly comment: string\n readonly wtype: wtypes.WType\n readonly sourceLocation: SourceLocation\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCheckedMaybe(this)\n }\n}\nexport class TupleExpression extends Expression {\n constructor(props: Props<TupleExpression>) {\n super(props)\n this.items = props.items\n this.wtype = props.wtype\n }\n readonly items: Array<Expression>\n readonly wtype: wtypes.WTuple\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitTupleExpression(this)\n }\n}\nexport class TupleItemExpression extends Expression {\n constructor(props: Props<TupleItemExpression>) {\n super(props)\n this.base = props.base\n this.index = props.index\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly index: bigint\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitTupleItemExpression(this)\n }\n}\nexport class NamedTupleExpression extends Expression {\n constructor(props: Props<NamedTupleExpression>) {\n super(props)\n this.wtype = props.wtype\n this.values = props.values\n }\n readonly wtype: wtypes.WTuple\n readonly values: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNamedTupleExpression(this)\n }\n}\nexport class VarExpression extends Expression {\n constructor(props: Props<VarExpression>) {\n super(props)\n this.name = props.name\n }\n readonly name: string\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitVarExpression(this)\n }\n}\nexport class InnerTransactionField extends Expression {\n constructor(props: Props<InnerTransactionField>) {\n super(props)\n this.itxn = props.itxn\n this.field = props.field\n this.arrayIndex = props.arrayIndex\n }\n readonly itxn: Expression\n readonly field: TxnField\n readonly arrayIndex: Expression | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitInnerTransactionField(this)\n }\n}\nexport class SetInnerTransactionFields extends Expression {\n constructor(props: Props<SetInnerTransactionFields>) {\n super(props)\n this.itxns = props.itxns\n this.startWithBegin = props.startWithBegin\n this.wtype = props.wtype\n }\n readonly itxns: Array<Expression>\n readonly startWithBegin: boolean\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSetInnerTransactionFields(this)\n }\n}\nexport class SubmitInnerTransaction extends Expression {\n constructor(props: Props<SubmitInnerTransaction>) {\n super(props)\n this.itxns = props.itxns\n this.wtype = props.wtype\n }\n readonly itxns: Array<Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSubmitInnerTransaction(this)\n }\n}\nexport class FieldExpression extends Expression {\n constructor(props: Props<FieldExpression>) {\n super(props)\n this.base = props.base\n this.name = props.name\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly name: string\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitFieldExpression(this)\n }\n}\nexport class IndexExpression extends Expression {\n constructor(props: Props<IndexExpression>) {\n super(props)\n this.base = props.base\n this.index = props.index\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly index: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIndexExpression(this)\n }\n}\nexport class SliceExpression extends Expression {\n constructor(props: Props<SliceExpression>) {\n super(props)\n this.base = props.base\n this.beginIndex = props.beginIndex\n this.endIndex = props.endIndex\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly beginIndex: Expression | null\n readonly endIndex: Expression | null\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSliceExpression(this)\n }\n}\nexport class IntersectionSliceExpression extends Expression {\n constructor(props: Props<IntersectionSliceExpression>) {\n super(props)\n this.base = props.base\n this.beginIndex = props.beginIndex\n this.endIndex = props.endIndex\n this.wtype = props.wtype\n }\n readonly base: Expression\n readonly beginIndex: Expression | bigint | null\n readonly endIndex: Expression | bigint | null\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitIntersectionSliceExpression(this)\n }\n}\nexport enum AppStorageKind {\n appGlobal = 1,\n accountLocal = 2,\n box = 3,\n}\nexport class AppStateExpression extends Expression {\n constructor(props: Props<AppStateExpression>) {\n super(props)\n this.key = props.key\n this.existsAssertionMessage = props.existsAssertionMessage\n }\n readonly key: Expression\n readonly existsAssertionMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAppStateExpression(this)\n }\n}\nexport class AppAccountStateExpression extends Expression {\n constructor(props: Props<AppAccountStateExpression>) {\n super(props)\n this.key = props.key\n this.existsAssertionMessage = props.existsAssertionMessage\n this.account = props.account\n }\n readonly key: Expression\n readonly existsAssertionMessage: string | null\n readonly account: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAppAccountStateExpression(this)\n }\n}\nexport class BoxPrefixedKeyExpression extends Expression {\n constructor(props: Props<BoxPrefixedKeyExpression>) {\n super(props)\n this.prefix = props.prefix\n this.key = props.key\n this.wtype = props.wtype\n }\n readonly prefix: Expression\n readonly key: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBoxPrefixedKeyExpression(this)\n }\n}\nexport class BoxValueExpression extends Expression {\n constructor(props: Props<BoxValueExpression>) {\n super(props)\n this.key = props.key\n this.existsAssertionMessage = props.existsAssertionMessage\n }\n readonly key: Expression\n readonly existsAssertionMessage: string | null\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBoxValueExpression(this)\n }\n}\nexport class SingleEvaluation extends Expression {\n constructor(props: Props<SingleEvaluation>) {\n super(props)\n this.source = props.source\n this.id = props.id\n this.wtype = props.wtype\n this.sourceLocation = props.sourceLocation\n }\n readonly source: Expression\n readonly id: symbol\n readonly wtype: wtypes.WType\n readonly sourceLocation: SourceLocation\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSingleEvaluation(this)\n }\n}\nexport class ReinterpretCast extends Expression {\n constructor(props: Props<ReinterpretCast>) {\n super(props)\n this.expr = props.expr\n }\n readonly expr: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitReinterpretCast(this)\n }\n}\nexport class NewArray extends Expression {\n constructor(props: Props<NewArray>) {\n super(props)\n this.wtype = props.wtype\n this.values = props.values\n }\n readonly wtype: wtypes.ARC4DynamicArray | wtypes.ARC4StaticArray | wtypes.ReferenceArray\n readonly values: Array<Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNewArray(this)\n }\n}\nexport class ArrayLength extends Expression {\n constructor(props: Props<ArrayLength>) {\n super(props)\n this.array = props.array\n this.wtype = props.wtype\n }\n readonly array: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitArrayLength(this)\n }\n}\nexport class ConditionalExpression extends Expression {\n constructor(props: Props<ConditionalExpression>) {\n super(props)\n this.condition = props.condition\n this.trueExpr = props.trueExpr\n this.falseExpr = props.falseExpr\n this.wtype = props.wtype\n }\n readonly condition: Expression\n readonly trueExpr: Expression\n readonly falseExpr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitConditionalExpression(this)\n }\n}\nexport class AssignmentStatement extends Statement {\n constructor(props: Props<AssignmentStatement>) {\n super(props)\n this.target = props.target\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitAssignmentStatement(this)\n }\n}\nexport class AssignmentExpression extends Expression {\n constructor(props: Props<AssignmentExpression>) {\n super(props)\n this.target = props.target\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly value: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitAssignmentExpression(this)\n }\n}\nexport class CommaExpression extends Expression {\n constructor(props: Props<CommaExpression>) {\n super(props)\n this.expressions = props.expressions\n this.wtype = props.wtype\n }\n readonly expressions: Array<Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCommaExpression(this)\n }\n}\nexport enum EqualityComparison {\n eq = '==',\n ne = '!=',\n}\nexport enum NumericComparison {\n eq = '==',\n ne = '!=',\n lt = '<',\n lte = '<=',\n gt = '>',\n gte = '>=',\n}\nexport class NumericComparisonExpression extends Expression {\n constructor(props: Props<NumericComparisonExpression>) {\n super(props)\n this.wtype = props.wtype\n this.lhs = props.lhs\n this.operator = props.operator\n this.rhs = props.rhs\n }\n readonly wtype: wtypes.WType\n readonly lhs: Expression\n readonly operator: NumericComparison\n readonly rhs: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNumericComparisonExpression(this)\n }\n}\nexport class BytesComparisonExpression extends Expression {\n constructor(props: Props<BytesComparisonExpression>) {\n super(props)\n this.wtype = props.wtype\n this.lhs = props.lhs\n this.operator = props.operator\n this.rhs = props.rhs\n }\n readonly wtype: wtypes.WType\n readonly lhs: Expression\n readonly operator: EqualityComparison\n readonly rhs: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesComparisonExpression(this)\n }\n}\nexport class SubroutineID {\n constructor(props: Props<SubroutineID>) {\n this.target = props.target\n }\n readonly target: string\n}\nexport class InstanceMethodTarget {\n constructor(props: Props<InstanceMethodTarget>) {\n this.memberName = props.memberName\n }\n readonly memberName: string\n}\nexport class InstanceSuperMethodTarget {\n constructor(props: Props<InstanceSuperMethodTarget>) {\n this.memberName = props.memberName\n }\n readonly memberName: string\n}\nexport class ContractMethodTarget {\n constructor(props: Props<ContractMethodTarget>) {\n this.cref = props.cref\n this.memberName = props.memberName\n }\n readonly cref: ContractReference\n readonly memberName: string\n}\nexport class CallArg {\n constructor(props: Props<CallArg>) {\n this.name = props.name\n this.value = props.value\n }\n readonly name: string | null\n readonly value: Expression\n}\nexport class SubroutineCallExpression extends Expression {\n constructor(props: Props<SubroutineCallExpression>) {\n super(props)\n this.target = props.target\n this.args = props.args\n }\n readonly target: SubroutineID | InstanceMethodTarget | InstanceSuperMethodTarget | ContractMethodTarget\n readonly args: Array<CallArg>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitSubroutineCallExpression(this)\n }\n}\nexport class ABICall extends Expression {\n constructor(props: Props<ABICall>) {\n super(props)\n this.target = props.target\n this.args = props.args\n this.fields = props.fields\n this.wtype = props.wtype\n }\n readonly target: MethodSignature | MethodSignatureString | null\n readonly args: Array<Expression>\n readonly fields: Map<TxnField, Expression>\n readonly wtype: wtypes.WABICallInnerTransactionFields\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitABICall(this)\n }\n}\nexport class PuyaLibData {\n constructor(props: Props<PuyaLibData>) {\n this.id = props.id\n this.params = props.params\n this.wtype = props.wtype\n }\n readonly id: string\n readonly params: Map<string, wtypes.WType>\n readonly wtype: wtypes.WType\n}\nexport enum PuyaLibFunction {\n ensureBudget = 'ensure_budget',\n isSubstring = 'is_substring',\n}\nexport class PuyaLibCall extends Expression {\n constructor(props: Props<PuyaLibCall>) {\n super(props)\n this.func = props.func\n this.args = props.args\n this.wtype = props.wtype\n }\n readonly func: PuyaLibFunction\n readonly args: Array<CallArg>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitPuyaLibCall(this)\n }\n}\nexport enum UInt64BinaryOperator {\n add = '+',\n sub = '-',\n mult = '*',\n floorDiv = '//',\n mod = '%',\n pow = '**',\n lshift = '<<',\n rshift = '>>',\n bitOr = '|',\n bitXor = '^',\n bitAnd = '&',\n}\nexport enum BigUIntBinaryOperator {\n add = '+',\n sub = '-',\n mult = '*',\n floorDiv = '//',\n mod = '%',\n bitOr = '|',\n bitXor = '^',\n bitAnd = '&',\n}\nexport enum BytesBinaryOperator {\n add = '+',\n bitOr = '|',\n bitXor = '^',\n bitAnd = '&',\n}\nexport enum BytesUnaryOperator {\n bitInvert = '~',\n}\nexport enum UInt64UnaryOperator {\n bitInvert = '~',\n}\nexport enum UInt64PostfixUnaryOperator {\n increment = '++',\n decrement = '--',\n}\nexport class UInt64UnaryOperation extends Expression {\n constructor(props: Props<UInt64UnaryOperation>) {\n super(props)\n this.op = props.op\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly op: UInt64UnaryOperator\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUInt64UnaryOperation(this)\n }\n}\nexport class UInt64PostfixUnaryOperation extends Expression {\n constructor(props: Props<UInt64PostfixUnaryOperation>) {\n super(props)\n this.op = props.op\n this.target = props.target\n this.wtype = props.wtype\n }\n readonly op: UInt64PostfixUnaryOperator\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUInt64PostfixUnaryOperation(this)\n }\n}\nexport enum BigUIntPostfixUnaryOperator {\n increment = '++',\n decrement = '--',\n}\nexport class BigUIntPostfixUnaryOperation extends Expression {\n constructor(props: Props<BigUIntPostfixUnaryOperation>) {\n super(props)\n this.op = props.op\n this.target = props.target\n this.wtype = props.wtype\n }\n readonly op: BigUIntPostfixUnaryOperator\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBigUIntPostfixUnaryOperation(this)\n }\n}\nexport class BytesUnaryOperation extends Expression {\n constructor(props: Props<BytesUnaryOperation>) {\n super(props)\n this.op = props.op\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly op: BytesUnaryOperator\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesUnaryOperation(this)\n }\n}\nexport class UInt64BinaryOperation extends Expression {\n constructor(props: Props<UInt64BinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: UInt64BinaryOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitUInt64BinaryOperation(this)\n }\n}\nexport class BigUIntBinaryOperation extends Expression {\n constructor(props: Props<BigUIntBinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: BigUIntBinaryOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBigUIntBinaryOperation(this)\n }\n}\nexport class BytesBinaryOperation extends Expression {\n constructor(props: Props<BytesBinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: BytesBinaryOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBytesBinaryOperation(this)\n }\n}\nexport enum BinaryBooleanOperator {\n and = 'and',\n or = 'or',\n}\nexport class BooleanBinaryOperation extends Expression {\n constructor(props: Props<BooleanBinaryOperation>) {\n super(props)\n this.left = props.left\n this.op = props.op\n this.right = props.right\n this.wtype = props.wtype\n }\n readonly left: Expression\n readonly op: BinaryBooleanOperator\n readonly right: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitBooleanBinaryOperation(this)\n }\n}\nexport class Not extends Expression {\n constructor(props: Props<Not>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNot(this)\n }\n}\nexport class UInt64AugmentedAssignment extends Statement {\n constructor(props: Props<UInt64AugmentedAssignment>) {\n super(props)\n this.target = props.target\n this.op = props.op\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly op: UInt64BinaryOperator\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitUInt64AugmentedAssignment(this)\n }\n}\nexport class BigUIntAugmentedAssignment extends Statement {\n constructor(props: Props<BigUIntAugmentedAssignment>) {\n super(props)\n this.target = props.target\n this.op = props.op\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly op: BigUIntBinaryOperator\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitBigUIntAugmentedAssignment(this)\n }\n}\nexport class BytesAugmentedAssignment extends Statement {\n constructor(props: Props<BytesAugmentedAssignment>) {\n super(props)\n this.target = props.target\n this.op = props.op\n this.value = props.value\n }\n readonly target:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly op: BytesBinaryOperator\n readonly value: Expression\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitBytesAugmentedAssignment(this)\n }\n}\nexport class EmitFields extends Expression {\n constructor(props: Props<EmitFields>) {\n super(props)\n this.signature = props.signature\n this.values = props.values\n this.wtype = props.wtype\n }\n readonly signature: string\n readonly values: Array<Expression>\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitEmitFields(this)\n }\n}\nexport class Emit extends Expression {\n constructor(props: Props<Emit>) {\n super(props)\n this.value = props.value\n this.wtype = props.wtype\n }\n readonly value: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitEmit(this)\n }\n}\nexport class Range extends Expression {\n constructor(props: Props<Range>) {\n super(props)\n this.wtype = props.wtype\n this.start = props.start\n this.stop = props.stop\n this.step = props.step\n }\n readonly wtype: wtypes.WType\n readonly start: Expression\n readonly stop: Expression\n readonly step: Expression\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitRange(this)\n }\n}\nexport class Enumeration extends Expression {\n constructor(props: Props<Enumeration>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.WEnumeration\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitEnumeration(this)\n }\n}\nexport class Reversed extends Expression {\n constructor(props: Props<Reversed>) {\n super(props)\n this.expr = props.expr\n this.wtype = props.wtype\n }\n readonly expr: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitReversed(this)\n }\n}\nexport class ForInLoop extends Statement {\n constructor(props: Props<ForInLoop>) {\n super(props)\n this.sequence = props.sequence\n this.items = props.items\n this.loopBody = props.loopBody\n }\n readonly sequence: Expression\n readonly items:\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\n readonly loopBody: Block\n accept<T>(visitor: StatementVisitor<T>): T {\n return visitor.visitForInLoop(this)\n }\n}\nexport class StateGet extends Expression {\n constructor(props: Props<StateGet>) {\n super(props)\n this.field = props.field\n this.default = props.default\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly default: Expression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateGet(this)\n }\n}\nexport class StateGetEx extends Expression {\n constructor(props: Props<StateGetEx>) {\n super(props)\n this.field = props.field\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly wtype: wtypes.WTuple\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateGetEx(this)\n }\n}\nexport class StateExists extends Expression {\n constructor(props: Props<StateExists>) {\n super(props)\n this.field = props.field\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateExists(this)\n }\n}\nexport class StateDelete extends Expression {\n constructor(props: Props<StateDelete>) {\n super(props)\n this.field = props.field\n this.wtype = props.wtype\n }\n readonly field: AppStateExpression | AppAccountStateExpression | BoxValueExpression\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitStateDelete(this)\n }\n}\nexport class NewStruct extends Expression {\n constructor(props: Props<NewStruct>) {\n super(props)\n this.wtype = props.wtype\n this.values = props.values\n }\n readonly wtype: wtypes.ARC4Struct\n readonly values: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitNewStruct(this)\n }\n}\nexport abstract class RootNode extends Node {\n constructor(props: Props<RootNode>) {\n super(props)\n }\n abstract accept<T>(visitor: RootNodeVisitor<T>): T\n}\nexport class SubroutineArgument {\n constructor(props: Props<SubroutineArgument>) {\n this.name = props.name\n this.sourceLocation = props.sourceLocation\n this.wtype = props.wtype\n }\n readonly name: string\n readonly sourceLocation: SourceLocation\n readonly wtype: wtypes.WType\n}\nexport class MethodDocumentation {\n constructor(props: Props<MethodDocumentation>) {\n this.description = props.description\n this.args = props.args\n this.returns = props.returns\n }\n readonly description: string | null\n readonly args: Map<string, string>\n readonly returns: string | null\n}\nexport abstract class _Function extends Node {\n constructor(props: Props<_Function>) {\n super(props)\n this.args = props.args\n this.returnType = props.returnType\n this.body = props.body\n this.documentation = props.documentation\n this.inline = props.inline\n this.pure = props.pure\n }\n readonly args: Array<SubroutineArgument>\n readonly returnType: wtypes.WType\n readonly body: Block\n readonly documentation: MethodDocumentation\n readonly inline: boolean | null\n readonly pure: boolean\n}\nexport class Subroutine extends classes(_Function, RootNode) {\n constructor(props: Props<Subroutine>) {\n super([props], [props])\n this.id = props.id\n this.name = props.name\n }\n readonly id: string\n readonly name: string\n accept<T>(visitor: RootNodeVisitor<T>): T {\n return visitor.visitSubroutine(this)\n }\n}\nexport abstract class ContractMemberNode extends Node {\n constructor(props: Props<ContractMemberNode>) {\n super(props)\n }\n abstract accept<T>(visitor: ContractMemberNodeVisitor<T>): T\n}\nexport class ContractMethod extends classes(_Function, ContractMemberNode) {\n constructor(props: Props<ContractMethod>) {\n super([props], [props])\n this.cref = props.cref\n this.memberName = props.memberName\n this.arc4MethodConfig = props.arc4MethodConfig\n }\n readonly cref: ContractReference\n readonly memberName: string\n readonly arc4MethodConfig: ARC4BareMethodConfig | ARC4ABIMethodConfig | null\n accept<T>(visitor: ContractMemberNodeVisitor<T>): T {\n return visitor.visitContractMethod(this)\n }\n}\nexport class AppStorageDefinition extends ContractMemberNode {\n constructor(props: Props<AppStorageDefinition>) {\n super(props)\n this.memberName = props.memberName\n this.kind = props.kind\n this.storageWtype = props.storageWtype\n this.keyWtype = props.keyWtype\n this.key = props.key\n this.description = props.description\n }\n readonly memberName: string\n readonly kind: AppStorageKind\n readonly storageWtype: wtypes.WType\n readonly keyWtype: wtypes.WType | null\n readonly key: BytesConstant\n readonly description: string | null\n accept<T>(visitor: ContractMemberNodeVisitor<T>): T {\n return visitor.visitAppStorageDefinition(this)\n }\n}\nexport class LogicSignature extends RootNode {\n constructor(props: Props<LogicSignature>) {\n super(props)\n this.id = props.id\n this.shortName = props.shortName\n this.program = props.program\n this.docstring = props.docstring\n this.reservedScratchSpace = props.reservedScratchSpace\n this.avmVersion = props.avmVersion\n this.validateEncoding = props.validateEncoding\n }\n readonly id: LogicSigReference\n readonly shortName: string\n readonly program: Subroutine\n readonly docstring: string | null\n readonly reservedScratchSpace: Set<bigint>\n readonly avmVersion: bigint | null\n readonly validateEncoding: boolean | null\n accept<T>(visitor: RootNodeVisitor<T>): T {\n return visitor.visitLogicSignature(this)\n }\n}\nexport class CompiledContract extends Expression {\n constructor(props: Props<CompiledContract>) {\n super(props)\n this.contract = props.contract\n this.allocationOverrides = props.allocationOverrides\n this.prefix = props.prefix\n this.templateVariables = props.templateVariables\n }\n readonly contract: ContractReference\n readonly allocationOverrides: Map<TxnField, Expression>\n readonly prefix: string | null\n readonly templateVariables: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCompiledContract(this)\n }\n}\nexport class CompiledLogicSig extends Expression {\n constructor(props: Props<CompiledLogicSig>) {\n super(props)\n this.logicSig = props.logicSig\n this.prefix = props.prefix\n this.templateVariables = props.templateVariables\n }\n readonly logicSig: LogicSigReference\n readonly prefix: string | null\n readonly templateVariables: Map<string, Expression>\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitCompiledLogicSig(this)\n }\n}\nexport class StateTotals {\n constructor(props: Props<StateTotals>) {\n this.globalUints = props.globalUints\n this.localUints = props.localUints\n this.globalBytes = props.globalBytes\n this.localBytes = props.localBytes\n }\n readonly globalUints: bigint | null\n readonly localUints: bigint | null\n readonly globalBytes: bigint | null\n readonly localBytes: bigint | null\n}\nexport class ARC4Router extends Expression {\n constructor(props: Props<ARC4Router>) {\n super(props)\n this.wtype = props.wtype\n }\n readonly wtype: wtypes.WType\n accept<T>(visitor: ExpressionVisitor<T>): T {\n return visitor.visitARC4Router(this)\n }\n}\nexport class Contract extends RootNode {\n constructor(props: Props<Contract>) {\n super(props)\n this.id = props.id\n this.name = props.name\n this.description = props.description\n this.methodResolutionOrder = props.methodResolutionOrder\n this.approvalProgram = props.approvalProgram\n this.clearProgram = props.clearProgram\n this.methods = props.methods\n this.appState = props.appState\n this.stateTotals = props.stateTotals\n this.reservedScratchSpace = props.reservedScratchSpace\n this.avmVersion = props.avmVersion\n }\n readonly id: ContractReference\n readonly name: string\n readonly description: string | null\n readonly methodResolutionOrder: Array<ContractReference>\n readonly approvalProgram: ContractMethod\n readonly clearProgram: ContractMethod\n readonly methods: Array<ContractMethod>\n readonly appState: Array<AppStorageDefinition>\n readonly stateTotals: StateTotals | null\n readonly reservedScratchSpace: Set<bigint>\n readonly avmVersion: bigint | null\n accept<T>(visitor: RootNodeVisitor<T>): T {\n return visitor.visitContract(this)\n }\n}\nexport enum ARC4CreateOption {\n allow = 1,\n require = 2,\n disallow = 3,\n}\nexport class ARC4BareMethodConfig {\n constructor(props: Props<ARC4BareMethodConfig>) {\n this.sourceLocation = props.sourceLocation\n this.allowedCompletionTypes = props.allowedCompletionTypes\n this.create = props.create\n }\n readonly sourceLocation: SourceLocation\n readonly allowedCompletionTypes: Array<OnCompletionAction>\n readonly create: ARC4CreateOption\n}\nexport class ABIMethodArgConstantDefault {\n constructor(props: Props<ABIMethodArgConstantDefault>) {\n this.value = props.value\n }\n readonly value: Expression\n}\nexport class ABIMethodArgMemberDefault {\n constructor(props: Props<ABIMethodArgMemberDefault>) {\n this.name = props.name\n }\n readonly name: string\n}\nexport class ARC4ABIMethodConfig {\n constructor(props: Props<ARC4ABIMethodConfig>) {\n this.sourceLocation = props.sourceLocation\n this.allowedCompletionTypes = props.allowedCompletionTypes\n this.create = props.create\n this.name = props.name\n this.resourceEncoding = props.resourceEncoding\n this.readonly = props.readonly\n this.defaultArgs = props.defaultArgs\n this.validateEncoding = props.validateEncoding\n }\n readonly sourceLocation: SourceLocation\n readonly allowedCompletionTypes: Array<OnCompletionAction>\n readonly create: ARC4CreateOption\n readonly name: string\n readonly resourceEncoding: 'index' | 'value'\n readonly readonly: boolean\n readonly defaultArgs: Map<string, ABIMethodArgMemberDefault | ABIMethodArgConstantDefault>\n readonly validateEncoding: boolean | null\n}\nexport type Constant = IntegerConstant | DecimalConstant | BoolConstant | BytesConstant | AddressConstant | MethodConstant\nexport type LValue =\n | VarExpression\n | FieldExpression\n | IndexExpression\n | TupleExpression\n | AppStateExpression\n | AppAccountStateExpression\n | BoxValueExpression\nexport type ARC4MethodConfig = ARC4BareMethodConfig | ARC4ABIMethodConfig\nexport type AWST = Subroutine | LogicSignature | Contract\nexport const concreteNodes = {\n expressionStatement: ExpressionStatement,\n block: Block,\n goto: Goto,\n ifElse: IfElse,\n switch: Switch,\n whileLoop: WhileLoop,\n loopExit: LoopExit,\n loopContinue: LoopContinue,\n returnStatement: ReturnStatement,\n assertExpression: AssertExpression,\n integerConstant: IntegerConstant,\n decimalConstant: DecimalConstant,\n boolConstant: BoolConstant,\n bytesConstant: BytesConstant,\n stringConstant: StringConstant,\n voidConstant: VoidConstant,\n templateVar: TemplateVar,\n methodSignatureString: MethodSignatureString,\n methodSignature: MethodSignature,\n methodConstant: MethodConstant,\n addressConstant: AddressConstant,\n aRC4Encode: ARC4Encode,\n aRC4Decode: ARC4Decode,\n aRC4FromBytes: ARC4FromBytes,\n convertArray: ConvertArray,\n copy: Copy,\n arrayConcat: ArrayConcat,\n arrayExtend: ArrayExtend,\n arrayPop: ArrayPop,\n arrayReplace: ArrayReplace,\n sizeOf: SizeOf,\n intrinsicCall: IntrinsicCall,\n createInnerTransaction: CreateInnerTransaction,\n updateInnerTransaction: UpdateInnerTransaction,\n stageInnerTransactions: StageInnerTransactions,\n groupTransactionReference: GroupTransactionReference,\n checkedMaybe: CheckedMaybe,\n tupleExpression: TupleExpression,\n tupleItemExpression: TupleItemExpression,\n namedTupleExpression: NamedTupleExpression,\n varExpression: VarExpression,\n innerTransactionField: InnerTransactionField,\n setInnerTransactionFields: SetInnerTransactionFields,\n submitInnerTransaction: SubmitInnerTransaction,\n fieldExpression: FieldExpression,\n indexExpression: IndexExpression,\n sliceExpression: SliceExpression,\n intersectionSliceExpression: IntersectionSliceExpression,\n appStateExpression: AppStateExpression,\n appAccountStateExpression: AppAccountStateExpression,\n boxPrefixedKeyExpression: BoxPrefixedKeyExpression,\n boxValueExpression: BoxValueExpression,\n singleEvaluation: SingleEvaluation,\n reinterpretCast: ReinterpretCast,\n newArray: NewArray,\n arrayLength: ArrayLength,\n conditionalExpression: ConditionalExpression,\n assignmentStatement: AssignmentStatement,\n assignmentExpression: AssignmentExpression,\n commaExpression: CommaExpression,\n numericComparisonExpression: NumericComparisonExpression,\n bytesComparisonExpression: BytesComparisonExpression,\n subroutineID: SubroutineID,\n instanceMethodTarget: InstanceMethodTarget,\n instanceSuperMethodTarget: InstanceSuperMethodTarget,\n contractMethodTarget: ContractMethodTarget,\n callArg: CallArg,\n subroutineCallExpression: SubroutineCallExpression,\n aBICall: ABICall,\n puyaLibData: PuyaLibData,\n puyaLibCall: PuyaLibCall,\n uInt64UnaryOperation: UInt64UnaryOperation,\n uInt64PostfixUnaryOperation: UInt64PostfixUnaryOperation,\n bigUIntPostfixUnaryOperation: BigUIntPostfixUnaryOperation,\n bytesUnaryOperation: BytesUnaryOperation,\n uInt64BinaryOperation: UInt64BinaryOperation,\n bigUIntBinaryOperation: BigUIntBinaryOperation,\n bytesBinaryOperation: BytesBinaryOperation,\n booleanBinaryOperation: BooleanBinaryOperation,\n not: Not,\n uInt64AugmentedAssignment: UInt64AugmentedAssignment,\n bigUIntAugmentedAssignment: BigUIntAugmentedAssignment,\n bytesAugmentedAssignment: BytesAugmentedAssignment,\n emitFields: EmitFields,\n emit: Emit,\n range: Range,\n enumeration: Enumeration,\n reversed: Reversed,\n forInLoop: ForInLoop,\n stateGet: StateGet,\n stateGetEx: StateGetEx,\n stateExists: StateExists,\n stateDelete: StateDelete,\n newStruct: NewStruct,\n subroutineArgument: SubroutineArgument,\n methodDocumentation: MethodDocumentation,\n subroutine: Subroutine,\n contractMethod: ContractMethod,\n appStorageDefinition: AppStorageDefinition,\n logicSignature: LogicSignature,\n compiledContract: CompiledContract,\n compiledLogicSig: CompiledLogicSig,\n stateTotals: StateTotals,\n aRC4Router: ARC4Router,\n contract: Contract,\n aRC4BareMethodConfig: ARC4BareMethodConfig,\n aBIMethodArgConstantDefault: ABIMethodArgConstantDefault,\n aBIMethodArgMemberDefault: ABIMethodArgMemberDefault,\n aRC4ABIMethodConfig: ARC4ABIMethodConfig,\n uInt64Constant: IntegerConstant,\n bigUIntConstant: IntegerConstant,\n} as const\nexport interface StatementVisitor<T> {\n visitExpressionStatement(statement: ExpressionStatement): T\n visitBlock(statement: Block): T\n visitGoto(statement: Goto): T\n visitIfElse(statement: IfElse): T\n visitSwitch(statement: Switch): T\n visitWhileLoop(statement: WhileLoop): T\n visitLoopExit(statement: LoopExit): T\n visitLoopContinue(statement: LoopContinue): T\n visitReturnStatement(statement: ReturnStatement): T\n visitAssignmentStatement(statement: AssignmentStatement): T\n visitUInt64AugmentedAssignment(statement: UInt64AugmentedAssignment): T\n visitBigUIntAugmentedAssignment(statement: BigUIntAugmentedAssignment): T\n visitBytesAugmentedAssignment(statement: BytesAugmentedAssignment): T\n visitForInLoop(statement: ForInLoop): T\n}\nexport interface ExpressionVisitor<T> {\n visitAssertExpression(expression: AssertExpression): T\n visitIntegerConstant(expression: IntegerConstant): T\n visitDecimalConstant(expression: DecimalConstant): T\n visitBoolConstant(expression: BoolConstant): T\n visitBytesConstant(expression: BytesConstant): T\n visitStringConstant(expression: StringConstant): T\n visitVoidConstant(expression: VoidConstant): T\n visitTemplateVar(expression: TemplateVar): T\n visitMethodConstant(expression: MethodConstant): T\n visitAddressConstant(expression: AddressConstant): T\n visitARC4Encode(expression: ARC4Encode): T\n visitARC4Decode(expression: ARC4Decode): T\n visitARC4FromBytes(expression: ARC4FromBytes): T\n visitConvertArray(expression: ConvertArray): T\n visitCopy(expression: Copy): T\n visitArrayConcat(expression: ArrayConcat): T\n visitArrayExtend(expression: ArrayExtend): T\n visitArrayPop(expression: ArrayPop): T\n visitArrayReplace(expression: ArrayReplace): T\n visitSizeOf(expression: SizeOf): T\n visitIntrinsicCall(expression: IntrinsicCall): T\n visitCreateInnerTransaction(expression: CreateInnerTransaction): T\n visitUpdateInnerTransaction(expression: UpdateInnerTransaction): T\n visitStageInnerTransactions(expression: StageInnerTransactions): T\n visitGroupTransactionReference(expression: GroupTransactionReference): T\n visitCheckedMaybe(expression: CheckedMaybe): T\n visitTupleExpression(expression: TupleExpression): T\n visitTupleItemExpression(expression: TupleItemExpression): T\n visitNamedTupleExpression(expression: NamedTupleExpression): T\n visitVarExpression(expression: VarExpression): T\n visitInnerTransactionField(expression: InnerTransactionField): T\n visitSetInnerTransactionFields(expression: SetInnerTransactionFields): T\n visitSubmitInnerTransaction(expression: SubmitInnerTransaction): T\n visitFieldExpression(expression: FieldExpression): T\n visitIndexExpression(expression: IndexExpression): T\n visitSliceExpression(expression: SliceExpression): T\n visitIntersectionSliceExpression(expression: IntersectionSliceExpression): T\n visitAppStateExpression(expression: AppStateExpression): T\n visitAppAccountStateExpression(expression: AppAccountStateExpression): T\n visitBoxPrefixedKeyExpression(expression: BoxPrefixedKeyExpression): T\n visitBoxValueExpression(expression: BoxValueExpression): T\n visitSingleEvaluation(expression: SingleEvaluation): T\n visitReinterpretCast(expression: ReinterpretCast): T\n visitNewArray(expression: NewArray): T\n visitArrayLength(expression: ArrayLength): T\n visitConditionalExpression(expression: ConditionalExpression): T\n visitAssignmentExpression(expression: AssignmentExpression): T\n visitCommaExpression(expression: CommaExpression): T\n visitNumericComparisonExpression(expression: NumericComparisonExpression): T\n visitBytesComparisonExpression(expression: BytesComparisonExpression): T\n visitSubroutineCallExpression(expression: SubroutineCallExpression): T\n visitABICall(expression: ABICall): T\n visitPuyaLibCall(expression: PuyaLibCall): T\n visitUInt64UnaryOperation(expression: UInt64UnaryOperation): T\n visitUInt64PostfixUnaryOperation(expression: UInt64PostfixUnaryOperation): T\n visitBigUIntPostfixUnaryOperation(expression: BigUIntPostfixUnaryOperation): T\n visitBytesUnaryOperation(expression: BytesUnaryOperation): T\n visitUInt64BinaryOperation(expression: UInt64BinaryOperation): T\n visitBigUIntBinaryOperation(expression: BigUIntBinaryOperation): T\n visitBytesBinaryOperation(expression: BytesBinaryOperation): T\n visitBooleanBinaryOperation(expression: BooleanBinaryOperation): T\n visitNot(expression: Not): T\n visitEmitFields(expression: EmitFields): T\n visitEmit(expression: Emit): T\n visitRange(expression: Range): T\n visitEnumeration(expression: Enumeration): T\n visitReversed(expression: Reversed): T\n visitStateGet(expression: StateGet): T\n visitStateGetEx(expression: StateGetEx): T\n visitStateExists(expression: StateExists): T\n visitStateDelete(expression: StateDelete): T\n visitNewStruct(expression: NewStruct): T\n visitCompiledContract(expression: CompiledContract): T\n visitCompiledLogicSig(expression: CompiledLogicSig): T\n visitARC4Router(expression: ARC4Router): T\n}\nexport interface RootNodeVisitor<T> {\n visitSubroutine(rootNode: Subroutine): T\n visitLogicSignature(rootNode: LogicSignature): T\n visitContract(rootNode: Contract): T\n}\nexport interface ContractMemberNodeVisitor<T> {\n visitContractMethod(contractMemberNode: ContractMethod): T\n visitAppStorageDefinition(contractMemberNode: AppStorageDefinition): T\n}\n","import { BigUIntBinaryOperator, BinaryBooleanOperator, UInt64BinaryOperator } from './nodes'\n\nexport const constantEvaluation = {\n booleanBinary(op: BinaryBooleanOperator, left: boolean, right: boolean) {\n switch (op) {\n case BinaryBooleanOperator.and:\n return left && right\n case BinaryBooleanOperator.or:\n return left || right\n }\n },\n uint64Binary(op: UInt64BinaryOperator, left: bigint, right: bigint) {\n switch (op) {\n case UInt64BinaryOperator.add:\n return left + right\n case UInt64BinaryOperator.sub:\n return left - right\n case UInt64BinaryOperator.mult:\n return left * right\n case UInt64BinaryOperator.floorDiv:\n return left / right\n case UInt64BinaryOperator.mod:\n return left % right\n case UInt64BinaryOperator.pow:\n return left ** right\n case UInt64BinaryOperator.lshift:\n return left << right\n case UInt64BinaryOperator.rshift:\n return left >> right\n case UInt64BinaryOperator.bitOr:\n return left | right\n case UInt64BinaryOperator.bitXor:\n return left ^ right\n case UInt64BinaryOperator.bitAnd:\n return left & right\n }\n },\n biguintBinary(op: BigUIntBinaryOperator, left: bigint, right: bigint) {\n switch (op) {\n case BigUIntBinaryOperator.add:\n return left + right\n case BigUIntBinaryOperator.sub:\n return left - right\n case BigUIntBinaryOperator.mult:\n return left * right\n case BigUIntBinaryOperator.floorDiv:\n return left / right\n case BigUIntBinaryOperator.mod:\n return left % right\n case BigUIntBinaryOperator.bitOr:\n return left | right\n case BigUIntBinaryOperator.bitXor:\n return left ^ right\n case BigUIntBinaryOperator.bitAnd:\n return left & right\n }\n },\n}\n","import { getInnerTransactionType } from '../awst_build/eb/transactions/util'\nimport { anyItxnType } from '../awst_build/ptypes'\nimport { CodeError } from '../errors'\nimport type { DeliberateAny, Props } from '../typescript-helpers'\nimport { codeInvariant, instanceOfAny, invariant } from '../util'\nimport { constantEvaluation } from './constant-evaluation'\nimport type { Expression, Statement } from './nodes'\nimport {\n ARC4Decode,\n ARC4Encode,\n ArrayLength,\n ArrayReplace,\n AssertExpression,\n AssignmentExpression,\n AssignmentStatement,\n BigUIntBinaryOperation,\n Block,\n BoolConstant,\n BooleanBinaryOperation,\n BytesComparisonExpression,\n BytesConstant,\n BytesEncoding,\n CheckedMaybe,\n CommaExpression,\n concreteNodes,\n Copy,\n ExpressionStatement,\n IntegerConstant,\n MethodDocumentation,\n Not,\n NumericComparisonExpression,\n ReinterpretCast,\n SingleEvaluation,\n StringConstant,\n SubmitInnerTransaction,\n TupleExpression,\n TupleItemExpression,\n UInt64BinaryOperation,\n VoidConstant,\n} from './nodes'\nimport type { SourceLocation } from './source-location'\nimport { wtypes } from './wtypes'\nimport WInnerTransactionFields = wtypes.WInnerTransactionFields\nimport WTuple = wtypes.WTuple\n\ntype ConcreteNodes = typeof concreteNodes\n\nconst explicitNodeFactory = {\n assertExpression(props: {\n condition: Expression | null\n sourceLocation: SourceLocation\n wtype: wtypes.WType\n errorMessage: string | null\n logError?: boolean\n }) {\n return new AssertExpression({\n ...props,\n wtype: wtypes.voidWType,\n explicit: true,\n logError: props.logError ?? false,\n })\n },\n voidConstant(props: { sourceLocation: SourceLocation }): VoidConstant {\n return new VoidConstant({\n ...props,\n wtype: wtypes.voidWType,\n })\n },\n bytesConstant(props: {\n value: Uint8Array\n encoding?: BytesEncoding\n sourceLocation: SourceLocation\n wtype?: wtypes.WType\n }): BytesConstant {\n return new BytesConstant({\n encoding: BytesEncoding.unknown,\n wtype: wtypes.bytesWType,\n ...props,\n })\n },\n stringConstant(props: { value: string; sourceLocation: SourceLocation; wtype?: wtypes.WType }): StringConstant {\n return new StringConstant({\n ...props,\n wtype: props.wtype ?? wtypes.stringWType,\n })\n },\n uInt64Constant({\n value,\n tealAlias,\n sourceLocation,\n }: {\n value: bigint\n tealAlias?: string\n sourceLocation: SourceLocation\n }): IntegerConstant {\n if (value < 0n || value >= 2n ** 64n) {\n throw new CodeError(`uint64 overflow or underflow: ${value}`, { sourceLocation })\n }\n return new IntegerConstant({\n value,\n sourceLocation,\n wtype: wtypes.uint64WType,\n tealAlias: tealAlias ?? null,\n })\n },\n bigUIntConstant({\n value,\n sourceLocation,\n errorLocation,\n }: {\n value: bigint\n sourceLocation: SourceLocation\n errorLocation?: SourceLocation\n }): IntegerConstant {\n if (value < 0n || value >= 2n ** 512n) {\n throw new CodeError(`biguint overflow or underflow: ${value}`, { sourceLocation: errorLocation ?? sourceLocation })\n }\n return new IntegerConstant({\n value,\n sourceLocation,\n wtype: wtypes.biguintWType,\n tealAlias: null,\n })\n },\n not(props: { expr: Expression; sourceLocation: SourceLocation }): Not {\n return new Not({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n uInt64BinaryOperation(props: Omit<Props<UInt64BinaryOperation>, 'wtype'>): UInt64BinaryOperation | IntegerConstant {\n if (props.left instanceof IntegerConstant && props.right instanceof IntegerConstant) {\n invariant(props.left.wtype.equals(wtypes.uint64WType) && props.right.wtype.equals(wtypes.uint64WType), 'left & right must be uint64')\n return new IntegerConstant({\n value: constantEvaluation.uint64Binary(props.op, props.left.value, props.right.value),\n tealAlias: null,\n sourceLocation: props.sourceLocation,\n wtype: wtypes.uint64WType,\n })\n }\n return new UInt64BinaryOperation({\n ...props,\n wtype: wtypes.uint64WType,\n })\n },\n bigUIntBinaryOperation(props: Omit<Props<BigUIntBinaryOperation>, 'wtype'>): BigUIntBinaryOperation | IntegerConstant {\n if (props.left instanceof IntegerConstant && props.right instanceof IntegerConstant) {\n invariant(\n props.left.wtype.equals(wtypes.biguintWType) && props.right.wtype.equals(wtypes.biguintWType),\n 'left & right must be biguint',\n )\n return new IntegerConstant({\n value: constantEvaluation.biguintBinary(props.op, props.left.value, props.right.value),\n tealAlias: null,\n sourceLocation: props.sourceLocation,\n wtype: wtypes.biguintWType,\n })\n }\n return new BigUIntBinaryOperation({\n ...props,\n wtype: wtypes.biguintWType,\n })\n },\n numericComparisonExpression(props: Omit<Props<NumericComparisonExpression>, 'wtype'>): NumericComparisonExpression {\n return new NumericComparisonExpression({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n bytesComparisonExpression(props: Omit<Props<BytesComparisonExpression>, 'wtype'>): BytesComparisonExpression {\n codeInvariant(\n props.lhs.wtype.equals(props.rhs.wtype),\n `Operands type mismatch. lhs is ${props.lhs.wtype}, rhs is ${props.rhs.wtype}`,\n props.sourceLocation,\n )\n return new BytesComparisonExpression({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n boolConstant(props: { value: boolean; sourceLocation: SourceLocation; wtype?: wtypes.WType }): BoolConstant {\n return new BoolConstant({\n ...props,\n wtype: props.wtype ?? wtypes.boolWType,\n })\n },\n singleEvaluation({ source }: { source: Expression }) {\n return new SingleEvaluation({\n id: Symbol(),\n sourceLocation: source.sourceLocation,\n wtype: source.wtype,\n source,\n })\n },\n expressionStatement({ expr }: { expr: Expression }) {\n if (expr instanceof AssignmentExpression) {\n // Replace ExpressionStatement(AssignmentExpression) with AssignmentStatement\n return new AssignmentStatement({\n ...expr,\n })\n }\n\n return new ExpressionStatement({\n expr,\n sourceLocation: expr.sourceLocation,\n })\n },\n block(\n { sourceLocation, comment, label }: { sourceLocation: SourceLocation; comment?: string; label?: string },\n ...statements: Array<Statement | Statement[]>\n ) {\n return new Block({\n body: statements.flat(),\n sourceLocation,\n comment: comment ?? null,\n label: label ?? null,\n })\n },\n booleanBinaryOperation(props: Omit<Props<BooleanBinaryOperation>, 'wtype'>) {\n if (props.left instanceof BoolConstant && props.right instanceof BoolConstant) {\n return new BoolConstant({\n value: constantEvaluation.booleanBinary(props.op, props.left.value, props.right.value),\n sourceLocation: props.sourceLocation,\n wtype: wtypes.boolWType,\n })\n }\n return new BooleanBinaryOperation({\n ...props,\n wtype: wtypes.boolWType,\n })\n },\n assignmentExpression({\n target,\n value,\n sourceLocation,\n }: {\n target: AssignmentExpression['target']\n value: Expression\n sourceLocation: SourceLocation\n }) {\n codeInvariant(target.wtype.equals(value.wtype), `Assignment target type ${target.wtype} must match assigned value type ${value.wtype}`)\n return new AssignmentExpression({\n target,\n value,\n wtype: value.wtype,\n sourceLocation,\n })\n },\n assignmentStatement({\n target,\n value,\n sourceLocation,\n }: {\n target: AssignmentStatement['target']\n value: Expression\n sourceLocation: SourceLocation\n }) {\n codeInvariant(target.wtype.equals(value.wtype), `Assignment target type ${target.wtype} must match assigned value type ${value.wtype}`)\n return new AssignmentStatement({\n target,\n value,\n sourceLocation,\n })\n },\n tupleExpression(props: Omit<Props<TupleExpression>, 'wtype'> & { wtype?: wtypes.WTuple }) {\n return new TupleExpression({\n ...props,\n wtype: props.wtype ?? new wtypes.WTuple({ types: props.items.map((i) => i.wtype) }),\n })\n },\n methodDocumentation(props?: { description?: string | null; args?: Map<string, string>; returns?: string | null }) {\n return new MethodDocumentation({\n args: props?.args ?? new Map(),\n description: props?.description ?? null,\n returns: props?.returns ?? null,\n })\n },\n copy({ value, sourceLocation }: { value: Expression; sourceLocation: SourceLocation }) {\n return new Copy({\n value,\n sourceLocation,\n wtype: value.wtype,\n })\n },\n checkedMaybe({ expr, comment }: { expr: Expression; comment: string }) {\n invariant(expr.wtype instanceof wtypes.WTuple && expr.wtype.types.length === 2, 'expr WType must be WTuple of 2')\n invariant(expr.wtype.types[1].equals(wtypes.boolWType), '2nd tuple item type must be bool')\n return new CheckedMaybe({\n expr,\n comment,\n sourceLocation: expr.sourceLocation,\n wtype: expr.wtype.types[0],\n })\n },\n tupleItemExpression(props: Omit<Props<TupleItemExpression>, 'wtype'>) {\n invariant(\n instanceOfAny(props.base.wtype, wtypes.WTuple, wtypes.ARC4Tuple) && props.base.wtype.types.length > Number(props.index),\n 'expr.base must be tuple type with length greater than index',\n )\n return new TupleItemExpression({\n ...props,\n wtype: props.base.wtype.types[Number(props.index)],\n })\n },\n reinterpretCast({ expr, wtype, sourceLocation }: { expr: Expression; wtype: wtypes.WType; sourceLocation: SourceLocation }) {\n if (expr instanceof BytesConstant) {\n return new BytesConstant({\n ...expr,\n wtype,\n sourceLocation,\n })\n }\n\n return new ReinterpretCast({\n expr,\n wtype,\n sourceLocation,\n })\n },\n arrayLength({ array, sourceLocation }: { array: Expression; sourceLocation: SourceLocation }) {\n return new ArrayLength({\n array,\n sourceLocation,\n wtype: wtypes.uint64WType,\n })\n },\n arrayReplace({\n base,\n index,\n value,\n sourceLocation,\n }: {\n base: Expression\n index: Expression\n value: Expression\n sourceLocation: SourceLocation\n }) {\n invariant(base.wtype instanceof wtypes.ARC4DynamicArray, 'base must have wtype of ARC4DynamicArray', base.sourceLocation)\n return new ArrayReplace({\n base,\n index,\n value,\n sourceLocation,\n wtype: base.wtype,\n })\n },\n submitInnerTransaction({ itxns, sourceLocation }: Omit<Props<SubmitInnerTransaction>, 'wtype'>) {\n const itxnWTypes = itxns.map(({ wtype }, index) => {\n invariant(\n wtype instanceof WInnerTransactionFields,\n `WType at index ${index} must be WInnerTransactionFields with type`,\n sourceLocation,\n )\n return wtype.transactionType === null ? anyItxnType.wtype : getInnerTransactionType(wtype.transactionType).wtype\n })\n return new SubmitInnerTransaction({\n itxns,\n sourceLocation,\n wtype: itxnWTypes.length === 1 ? itxnWTypes[0] : new WTuple({ types: itxnWTypes }),\n })\n },\n commaExpression({ expressions, sourceLocation }: Omit<Props<CommaExpression>, 'wtype'>) {\n const wtype = expressions.at(-1)?.wtype\n\n invariant(wtype, 'Must have at least 1 expression')\n\n return new CommaExpression({\n expressions,\n sourceLocation,\n wtype,\n })\n },\n aRC4Encode(props: Omit<Props<ARC4Encode>, 'errorMessage'>) {\n return new ARC4Encode({\n ...props,\n errorMessage: null,\n })\n },\n aRC4Decode(props: Omit<Props<ARC4Decode>, 'errorMessage'>) {\n return new ARC4Decode({\n ...props,\n errorMessage: null,\n })\n },\n} satisfies { [key in keyof ConcreteNodes]?: (...args: DeliberateAny[]) => DeliberateAny }\n\ntype ExplicitNodeFactory = typeof explicitNodeFactory\n\ntype DefaultNodeFactory<TKey extends keyof ConcreteNodes> = (\n ...args: ConstructorParameters<ConcreteNodes[TKey]>\n) => InstanceType<ConcreteNodes[TKey]>\n\nexport type NodeFactory = {\n [key in keyof ConcreteNodes]: FactoryMethod<key>\n}\n\ntype FactoryMethod<TKey extends keyof ConcreteNodes> = TKey extends keyof ExplicitNodeFactory\n ? ExplicitNodeFactory[TKey]\n : DefaultNodeFactory<TKey>\n\nfunction isNodeName(value: string | symbol): value is keyof ConcreteNodes {\n return typeof value === 'string' && Object.hasOwn(concreteNodes, value)\n}\n\nfunction hasExplicitFactory(value: string): value is keyof typeof explicitNodeFactory {\n return Object.hasOwn(explicitNodeFactory, value)\n}\n\nexport const nodeFactory: NodeFactory = new Proxy({} as unknown as NodeFactory, {\n get(_, property) {\n invariant(isNodeName(property), 'Property must be the name of a concrete node')\n\n if (hasExplicitFactory(property)) {\n return explicitNodeFactory[property]\n }\n return (props: DeliberateAny) => new concreteNodes[property](props)\n },\n})\n","import { AsyncLocalStorage } from 'node:async_hooks'\nimport type { SourceLocation } from '../awst/source-location'\nimport type { CodeFix } from '../code-fix/code-fix'\nimport { FixableCodeError, PuyaError } from '../errors'\nimport { invariant } from '../util'\nimport type { LogSink } from './sinks'\n\ntype NodeOrSourceLocation = SourceLocation //| { sourceLocation: SourceLocation }\n\nexport enum LogLevel {\n Error = 'error',\n Info = 'info',\n Warning = 'warning',\n Debug = 'debug',\n Critical = 'critical',\n}\nexport const logLevelToInt = {\n // values match puya values\n [LogLevel.Critical]: 50,\n [LogLevel.Error]: 40,\n [LogLevel.Info]: 30,\n [LogLevel.Warning]: 20,\n [LogLevel.Debug]: 10,\n}\nexport enum LogSource {\n Unspecified,\n TypeScript,\n Puya,\n CodeFix,\n}\nexport const isMinLevel = (logLevel: LogLevel, minLevel: LogLevel): boolean => {\n return logLevelToInt[minLevel] <= logLevelToInt[logLevel]\n}\n\nconst errorOrCritical = new Set([LogLevel.Error, LogLevel.Critical])\n\nexport const isErrorOrCritical = (l: LogLevel) => errorOrCritical.has(l)\n\nexport type LogEvent = {\n level: LogLevel\n message: string\n sourceLocation: SourceLocation | undefined\n stack?: string\n logSource: LogSource\n codeFix?: CodeFix\n}\n\nclass PuyaLogger {\n private logSinks: LogSink[] = []\n public configure(sinks: LogSink[]) {\n this.logSinks = sinks\n }\n\n addCodeFix(codeFix: CodeFix) {\n invariant(codeFix.sourceLocation.file, 'Code fix cannot be added without a well-formed source location')\n this.addLog(codeFix.logData)\n }\n\n addLog(logEvent: LogEvent) {\n LoggingContext.current.addLog(logEvent)\n for (const sink of this.logSinks) {\n if (isMinLevel(logEvent.level, sink.minLogLevel)) {\n sink.add(logEvent)\n }\n }\n }\n\n error(error: Error): void\n error(source: NodeOrSourceLocation | undefined, message: string): void\n error(sourceOrError: NodeOrSourceLocation | undefined | Error, message?: string): void {\n if (sourceOrError instanceof FixableCodeError) {\n this.addCodeFix(sourceOrError.codeFix)\n } else if (sourceOrError instanceof Error) {\n // Don't include the stack for user errors as the message and source location is what's relevant\n this.addLog({\n level: LogLevel.Error,\n sourceLocation: tryGetSourceLocationFromError(sourceOrError),\n message: `${sourceOrError.message}`,\n stack: sourceOrError.stack,\n logSource: LogSource.Unspecified,\n })\n if (sourceOrError.cause) {\n this.addLog({\n level: LogLevel.Debug,\n sourceLocation: tryGetSourceLocationFromError(sourceOrError.cause),\n message: `Caused by: ${sourceOrError.cause}`,\n stack: (sourceOrError.cause as Error).stack,\n logSource: LogSource.Unspecified,\n })\n }\n } else {\n invariant(message, 'Log should include either a message or an error')\n this.addLog({\n level: LogLevel.Error,\n sourceLocation: sourceOrError,\n message,\n stack: new Error().stack,\n logSource: LogSource.Unspecified,\n })\n }\n }\n info(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Info, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n debug(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Debug, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n warn(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Warning, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n critical(source: NodeOrSourceLocation | undefined, message: string): void {\n this.addLog({ level: LogLevel.Critical, sourceLocation: source, message, logSource: LogSource.Unspecified })\n }\n}\n\nconst tryGetSourceLocationFromError = (error: unknown): SourceLocation | undefined => {\n if (error instanceof PuyaError) {\n return error.sourceLocation\n }\n return undefined\n}\n\nexport const logger = new PuyaLogger()\n\nexport const patchErrorLocation = <TArgs extends unknown[], TReturn>(\n action: (...args: TArgs) => TReturn,\n sourceLocation: SourceLocation,\n) => {\n return (...args: TArgs) => {\n try {\n return action(...args)\n } catch (e) {\n if (e instanceof PuyaError && !e.sourceLocation) {\n Object.assign(e, { sourceLocation })\n }\n throw e\n }\n }\n}\n\nexport class LoggingContext {\n #logEvents: LogEvent[] = []\n #sourcesByPath: Record<string, string[]> = {}\n #logEventsByPath: Record<string, LogEvent[]> = {}\n treatWarningsAsErrors = false\n\n get logEvents(): readonly LogEvent[] {\n return this.#logEvents\n }\n get logEventsByPath(): { readonly [path: string]: readonly LogEvent[] } {\n return this.#logEventsByPath\n }\n\n get sourcesByPath(): { readonly [path: string]: readonly string[] } {\n return this.#sourcesByPath\n }\n\n setSourcesByPath(sourcesByPath: Record<string, string[]>) {\n this.#sourcesByPath = sourcesByPath\n // Ensure every source file has an entry in #logEventsByPath\n for (const filePath of Object.keys(sourcesByPath)) {\n if (filePath in this.#logEventsByPath) continue\n this.#logEventsByPath[filePath] = []\n }\n }\n\n addLog(log: LogEvent) {\n if (this.treatWarningsAsErrors && log.level === LogLevel.Warning) {\n log.level = LogLevel.Error\n }\n this.#logEvents.push(log)\n const filePath = log.sourceLocation?.file?.toString()\n if (filePath) {\n if (filePath in this.#logEventsByPath) {\n this.#logEventsByPath[filePath].push(log)\n } else {\n this.#logEventsByPath[filePath] = [log]\n }\n }\n }\n\n private constructor() {}\n\n hasErrors(): boolean {\n return this.logEvents.some((e) => isErrorOrCritical(e.level))\n }\n\n exitIfErrors(): void {\n if (this.hasErrors()) process.exit(1)\n }\n\n enterContext() {\n LoggingContext.asyncStore.enterWith(this)\n return this\n }\n\n run<R>(cb: () => R) {\n return LoggingContext.asyncStore.run(this, cb)\n }\n private static fallbackContext = new LoggingContext()\n private static asyncStore = new AsyncLocalStorage<LoggingContext>()\n\n static create(): LoggingContext {\n return new LoggingContext()\n }\n static get current() {\n const ctx = this.asyncStore.getStore()\n if (!ctx) {\n return this.fallbackContext\n }\n return ctx\n }\n}\n","import type { DeliberateAny } from '../typescript-helpers'\n\ntype Primitive = number | bigint | string | boolean\n\nexport abstract class CustomKeyMap<TKey, TValue> implements Map<TKey, TValue> {\n #keySerializer: (key: TKey) => Primitive\n #map = new Map<Primitive, [TKey, TValue]>()\n\n constructor(keySerializer: (key: TKey) => number | bigint | string) {\n this.#keySerializer = keySerializer\n }\n\n clear(): void {\n this.#map.clear()\n }\n delete(key: TKey): boolean {\n return this.#map.delete(this.#keySerializer(key))\n }\n forEach(callbackfn: (value: TValue, key: TKey, map: Map<TKey, TValue>) => void, thisArg?: DeliberateAny): void {\n for (const [key, value] of this.#map.values()) {\n callbackfn.call(thisArg ?? this, value, key, this)\n }\n }\n get(key: TKey): TValue | undefined {\n return this.#map.get(this.#keySerializer(key))?.[1]\n }\n has(key: TKey): boolean {\n return this.#map.has(this.#keySerializer(key))\n }\n set(key: TKey, value: TValue): this {\n this.#map.set(this.#keySerializer(key), [key, value])\n return this\n }\n get size(): number {\n return this.#map.size\n }\n entries(): MapIterator<[TKey, TValue]> {\n return this.#map.values()\n }\n *keys(): MapIterator<TKey> {\n for (const [key] of this.#map.values()) {\n yield key\n }\n }\n *values(): MapIterator<TValue> {\n for (const [, value] of this.#map.values()) {\n yield value\n }\n }\n [Symbol.iterator](): MapIterator<[TKey, TValue]> {\n return this.#map.values()\n }\n get [Symbol.toStringTag](): string {\n return this.constructor.name\n }\n}\n","import { LogicSigReference } from '../../awst/models'\nimport { nodeFactory } from '../../awst/node-factory'\nimport type { LogicSignature, Subroutine } from '../../awst/nodes'\nimport type { SourceLocation } from '../../awst/source-location'\nimport type { Props } from '../../typescript-helpers'\nimport type { LogicSigPType } from '../ptypes'\nimport type { LogicSigOptionsDecoratorData } from './decorator-data'\n\nexport class LogicSigClassModel {\n public readonly isAbstract = false\n public get id(): LogicSigReference {\n return LogicSigReference.fromPType(this.type)\n }\n public readonly type: LogicSigPType\n public get name(): string {\n return this.type.name\n }\n public readonly description: string | null\n public readonly bases: Array<LogicSigReference>\n public readonly options: LogicSigOptionsDecoratorData | undefined\n public readonly program: Subroutine\n public readonly sourceLocation: SourceLocation\n constructor(props: Props<Omit<LogicSigClassModel, 'name' | 'id' | 'isAbstract'>>) {\n this.type = props.type\n this.description = props.description\n this.program = props.program\n this.bases = props.bases\n this.sourceLocation = props.sourceLocation\n this.options = props.options\n }\n\n public buildLogicSignature(): LogicSignature {\n return nodeFactory.logicSignature({\n id: this.id,\n shortName: this.options?.name ?? this.name,\n program: this.program,\n sourceLocation: this.sourceLocation,\n docstring: this.description,\n avmVersion: this.options?.avmVersion ?? null,\n reservedScratchSpace: this.options?.scratchSlots ?? new Set(),\n validateEncoding: this.options?.validateEncoding ?? null,\n })\n }\n}\n","import type { awst } from '../../awst'\nimport type { LogicSigReference } from '../../awst/models'\nimport { ContractReference, OnCompletionAction } from '../../awst/models'\nimport { nodeFactory } from '../../awst/node-factory'\nimport type { AppStorageDefinition, ContractMethod, Statement } from '../../awst/nodes'\nimport { ARC4BareMethodConfig, ARC4CreateOption, StateTotals } from '../../awst/nodes'\nimport { SourceLocation } from '../../awst/source-location'\nimport { wtypes } from '../../awst/wtypes'\nimport { Constants } from '../../constants'\nimport { logger } from '../../logger'\nimport type { Props } from '../../typescript-helpers'\nimport { codeInvariant, invariant, isIn } from '../../util'\nimport { CustomKeyMap } from '../../util/custom-key-map'\nimport type { ContractClassPType } from '../ptypes'\nimport { ClusteredContractClassType } from '../ptypes'\nimport type { ContractOptionsDecoratorData } from './decorator-data'\nimport { LogicSigClassModel } from './logic-sig-class-model'\n\nexport class ContractClassModel {\n public readonly isAbstract: boolean\n public get id(): ContractReference {\n return ContractReference.fromPType(this.type)\n }\n public readonly type: ContractClassPType\n public get name(): string {\n return this.type.name\n }\n public readonly options: ContractOptionsDecoratorData | undefined\n public readonly description: string | null\n public readonly propertyInitialization: Array<Statement>\n public readonly approvalProgram: ContractMethod | null\n public readonly clearProgram: ContractMethod | null\n public readonly ctor: ContractMethod | null\n public readonly methods: Array<ContractMethod>\n public readonly appState: Array<AppStorageDefinition>\n public readonly sourceLocation: SourceLocation\n constructor(props: Props<Omit<ContractClassModel, 'name' | 'id'>>) {\n this.isAbstract = props.isAbstract\n this.type = props.type\n this.description = props.description\n this.propertyInitialization = props.propertyInitialization\n this.ctor = props.ctor\n this.approvalProgram = props.approvalProgram\n this.clearProgram = props.clearProgram\n this.methods = props.methods\n this.appState = props.appState\n this.sourceLocation = props.sourceLocation\n this.options = props.options\n }\n\n hasExplicitStateTotals() {\n return this.options?.stateTotals !== undefined\n }\n\n buildContract(compilationSet: CompilationSet): awst.Contract {\n let approvalProgram: ContractMethod | null = this.approvalProgram\n let clearProgram: ContractMethod | null = this.clearProgram\n const methods: ContractMethod[] = [...this.methods]\n const ctors: ContractMethod[] = this.ctor ? [this.ctor] : []\n const methodResolutionOrder: ContractReference[] = []\n let firstBaseWithStateTotals: ContractClassModel | undefined = undefined\n let reservedScratchSpace = new Set<bigint>()\n\n const seenContractIds = new Set<string>()\n\n for (const baseType of this.type.allBases()) {\n const baseClass = this.getModelForClass(compilationSet, baseType)\n if (baseClass.hasExplicitStateTotals() && firstBaseWithStateTotals === undefined) {\n firstBaseWithStateTotals = baseClass\n }\n if (baseClass.options?.scratchSlots) {\n reservedScratchSpace = reservedScratchSpace.union(baseClass.options.scratchSlots)\n }\n methodResolutionOrder.push(baseClass.id)\n if (seenContractIds.has(baseClass.id.toString())) {\n continue\n } else {\n seenContractIds.add(baseClass.id.toString())\n }\n approvalProgram ??= baseClass.approvalProgram\n clearProgram ??= baseClass.clearProgram\n if (baseClass.approvalProgram && baseClass.approvalProgram !== approvalProgram) methods.push(baseClass.approvalProgram)\n if (baseClass.clearProgram && baseClass.clearProgram !== clearProgram) methods.push(baseClass.clearProgram)\n for (const method of baseClass.methods) {\n // Maybe need validation??\n methods.push(method)\n }\n if (baseClass.ctor) ctors.push(baseClass.ctor)\n }\n if (this.type.isARC4) {\n const hasCreate = methods.some((m) => isIn(m.arc4MethodConfig?.create, [ARC4CreateOption.allow, ARC4CreateOption.require]))\n const hasBareNoop = methods.some(\n (m) =>\n m.arc4MethodConfig instanceof ARC4BareMethodConfig && isIn(OnCompletionAction.NoOp, m.arc4MethodConfig.allowedCompletionTypes),\n )\n\n if (!hasCreate) {\n if (hasBareNoop) {\n logger.error(\n this.sourceLocation,\n `Non-abstract ARC4 contract has no methods which can be called to create the contract. ` +\n `An implicit one could not be inserted as there is already a bare method handling the NoOp on completion action. ` +\n `In order to allow creating the contract specify { onCreate: 'allow' } or { onCreate: 'require' } in an @abimethod or @baremethod decorator above the chosen method.`,\n )\n } else {\n methods.push(this.makeDefaultCreate())\n }\n }\n }\n\n codeInvariant(approvalProgram, 'must have approval')\n codeInvariant(clearProgram, 'must have clear')\n\n if (!this.hasExplicitStateTotals && firstBaseWithStateTotals) {\n logger.warn(\n this.options?.sourceLocation ?? this.sourceLocation,\n `Contract extends base contract ${firstBaseWithStateTotals.id} with explicit stateTotals, but does not define its own stateTotals. This could result in insufficient reserved state at run time. An empty object may be provided in order to indicate that this contract should revert to the default behaviour`,\n )\n }\n\n const stateTotals = new StateTotals({\n globalBytes: this.options?.stateTotals?.globalBytes ?? null,\n globalUints: this.options?.stateTotals?.globalUints ?? null,\n localBytes: this.options?.stateTotals?.localBytes ?? null,\n localUints: this.options?.stateTotals?.localUints ?? null,\n })\n\n if (this.options?.scratchSlots) {\n reservedScratchSpace = reservedScratchSpace.union(this.options.scratchSlots)\n }\n\n const hasSignificantConstructor = ctors.length > 1\n\n return nodeFactory.contract({\n name: this.options?.name ?? this.name,\n id: this.id,\n description: this.description,\n approvalProgram: hasSignificantConstructor ? ContractClassModel.patchApprovalToCallCtor(approvalProgram, methods) : approvalProgram,\n clearProgram,\n methodResolutionOrder,\n methods: [...methods, ...(hasSignificantConstructor ? ctors : [])],\n appState: this.appState,\n stateTotals,\n reservedScratchSpace: reservedScratchSpace,\n sourceLocation: this.sourceLocation,\n avmVersion: this.options?.avmVersion ?? null,\n })\n }\n\n private getModelForClass(compilationSet: CompilationSet, contractType: ContractClassPType): ContractClassModel {\n if (contractType instanceof ClusteredContractClassType) {\n return this.buildClusteredMetaClass(compilationSet, contractType)\n } else {\n return compilationSet.getContractClass(ContractReference.fromPType(contractType))\n }\n }\n\n private buildClusteredMetaClass(compilationSet: CompilationSet, clusteredType: ClusteredContractClassType): ContractClassModel {\n const ctor = nodeFactory.contractMethod({\n memberName: Constants.symbolNames.constructorMethodName,\n cref: ContractReference.fromPType(clusteredType),\n documentation: nodeFactory.methodDocumentation({}),\n sourceLocation: SourceLocation.None,\n args: [],\n returnType: wtypes.voidWType,\n body: nodeFactory.block({\n sourceLocation: SourceLocation.None,\n }),\n arc4MethodConfig: null,\n inline: null, // TODO: Expose inline hint option\n pure: false,\n })\n const ctorTargets: awst.ContractMethod[] = []\n for (const baseType of clusteredType.baseTypes) {\n for (const b of [baseType, ...baseType.allBases()]) {\n const baseClassModel = this.getModelForClass(compilationSet, b)\n if (baseClassModel.ctor) {\n ctorTargets.push(baseClassModel.ctor)\n break\n }\n }\n }\n ctor.body.body.push(\n ...ctorTargets.map((ct) =>\n nodeFactory.expressionStatement({\n expr: nodeFactory.subroutineCallExpression({\n target: nodeFactory.contractMethodTarget({\n memberName: ct.memberName,\n cref: ct.cref,\n }),\n args: [],\n sourceLocation: SourceLocation.None,\n wtype: wtypes.voidWType,\n }),\n }),\n ),\n )\n return new ContractClassModel({\n appState: [],\n approvalProgram: null,\n clearProgram: null,\n isAbstract: true,\n sourceLocation: SourceLocation.None,\n propertyInitialization: [],\n description: null,\n ctor: ctor,\n methods: [],\n options: undefined,\n type: clusteredType,\n })\n }\n\n private static patchApprovalToCallCtor(approval: ContractMethod, methods: ContractMethod[]): ContractMethod {\n const callCtorIfNew = nodeFactory.ifElse({\n condition: nodeFactory.not({\n expr: nodeFactory.reinterpretCast({\n expr: nodeFactory.intrinsicCall({\n opCode: 'txn',\n immediates: ['ApplicationID'],\n stackArgs: [],\n sourceLocation: SourceLocation.None,\n wtype: wtypes.uint64WType,\n }),\n sourceLocation: SourceLocation.None,\n wtype: wtypes.boolWType,\n }),\n sourceLocation: SourceLocation.None,\n }),\n ifBranch: nodeFactory.block(\n { sourceLocation: SourceLocation.None },\n nodeFactory.expressionStatement({\n expr: nodeFactory.subroutineCallExpression({\n args: [],\n wtype: wtypes.voidWType,\n target: nodeFactory.instanceMethodTarget({\n memberName: Constants.symbolNames.constructorMethodName,\n }),\n sourceLocation: SourceLocation.None,\n }),\n }),\n ),\n sourceLocation: SourceLocation.None,\n elseBranch: null,\n })\n\n return nodeFactory.contractMethod({\n ...approval,\n body: nodeFactory.block({ sourceLocation: SourceLocation.None }, callCtorIfNew, approval.body),\n })\n }\n\n private makeDefaultCreate() {\n return nodeFactory.contractMethod({\n memberName: Constants.symbolNames.defaultCreateMethodName,\n cref: ContractReference.fromPType(this.type),\n args: [],\n arc4MethodConfig: new ARC4BareMethodConfig({\n allowedCompletionTypes: [OnCompletionAction.NoOp],\n create: ARC4CreateOption.require,\n sourceLocation: this.sourceLocation,\n }),\n returnType: wtypes.voidWType,\n documentation: nodeFactory.methodDocumentation({\n description: 'Implicitly generated create method',\n }),\n sourceLocation: this.sourceLocation,\n body: nodeFactory.block({\n sourceLocation: this.sourceLocation,\n }),\n inline: null, // TODO: Expose inline hint option?\n pure: false,\n })\n }\n}\n\nexport class CompilationSet extends CustomKeyMap<ContractReference | LogicSigReference, ContractClassModel | LogicSigClassModel> {\n constructor() {\n super((x) => x.toString())\n }\n\n get compilationOutputSet() {\n return Array.from(this.entries())\n .filter(([, meta]) => !meta.isAbstract)\n .map(([ref]) => ref)\n }\n\n getContractClass(cref: ContractReference) {\n const maybeClass = this.get(cref)\n invariant(maybeClass instanceof ContractClassModel, 'Contract reference must resolve to a contract class')\n return maybeClass\n }\n\n getLogicSig(lref: LogicSigReference) {\n const maybeLogicSig = this.get(lref)\n invariant(maybeLogicSig instanceof LogicSigClassModel, 'Logic sig reference must resolve to a logic signature class')\n return maybeLogicSig\n }\n}\n"],"names":["pathe","fs"],"mappings":"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"}