@solana/rpc-graphql 2.0.0-experimental.fd11bd1 → 2.0.0-experimental.ffeddf6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1172 -30
- package/dist/index.browser.cjs +3002 -285
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.js +3000 -285
- package/dist/index.browser.js.map +1 -1
- package/dist/index.native.js +3000 -285
- package/dist/index.native.js.map +1 -1
- package/dist/index.node.cjs +3002 -285
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.js +3000 -285
- package/dist/index.node.js.map +1 -1
- package/dist/types/context.d.ts.map +1 -1
- package/dist/types/schema/program-accounts/query.d.ts +1 -1
- package/dist/types/schema/transaction/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/types/schema/program-accounts/types.d.ts +0 -3
- package/dist/types/schema/program-accounts/types.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rpc.ts","../src/cache.ts","../src/context.ts","../src/schema/inputs.ts","../src/schema/picks.ts","../src/schema/scalars.ts","../src/schema/account/types.ts","../src/schema/account/query.ts","../src/schema/block/types.ts","../src/schema/transaction/types.ts","../src/schema/transaction/query.ts","../src/schema/block/query.ts","../src/schema/program-accounts/query.ts","../src/schema/program-accounts/types.ts"],"names":["GraphQLObjectType","value","programAccount","GraphQLEnumType","GraphQLInputObjectType","GraphQLInterfaceType","GraphQLUnionType","GraphQLList"],"mappings":"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","sourcesContent":["import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { graphql, GraphQLObjectType, GraphQLSchema, Source } from 'graphql';\n\nimport { createSolanaGraphQLContext, RpcGraphQLContext } from './context';\nimport { accountQuery, accountTypes } from './schema/account';\nimport { blockQuery, blockTypes } from './schema/block';\nimport { programAccountsQuery } from './schema/program-accounts';\nimport { transactionQuery, transactionTypes } from './schema/transaction';\n\nexport interface RpcGraphQL {\n context: RpcGraphQLContext;\n query(\n source: string | Source,\n variableValues?: { readonly [variable: string]: unknown }\n ): ReturnType<typeof graphql>;\n schema: GraphQLSchema;\n}\n\nexport function createRpcGraphQL(rpc: Rpc<SolanaRpcMethods>): RpcGraphQL {\n const context = createSolanaGraphQLContext(rpc);\n const schema = new GraphQLSchema({\n query: new GraphQLObjectType({\n fields: {\n ...accountQuery(),\n ...blockQuery(),\n ...programAccountsQuery(),\n ...transactionQuery(),\n },\n name: 'RootQuery',\n }),\n types: [...accountTypes(), ...blockTypes(), ...transactionTypes()],\n });\n return {\n context,\n async query(source: string | Source, variableValues?: { readonly [variable: string]: unknown }) {\n const result = await graphql({\n contextValue: this.context,\n schema: this.schema,\n source,\n variableValues,\n });\n this.context.cache.flush();\n return result;\n },\n schema,\n };\n}\n","export interface GraphQLCache {\n flush(): void;\n get(key: string | bigint, variables: unknown): unknown | null;\n insert(key: string | bigint, variables: unknown, value: unknown): void;\n}\n\n// Basic in-memory cache for Node.js\nconst inMemoryCache: { [key: string]: string } = {};\n\nconst stringifyValue = (value: unknown) =>\n JSON.stringify(value, (_, value) => {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n });\n\nconst parseValue = (value: string) =>\n JSON.parse(value, (_, value) => {\n if (typeof value === 'string' && /\\d+n$/.test(value)) {\n return BigInt(value.slice(0, -1));\n }\n return value;\n });\n\nconst cacheKey = (key: string | bigint, variables: unknown): string =>\n `GraphQLCache:${stringifyValue(key)}:${stringifyValue(variables)}`;\n\nexport function createGraphQLCache(): GraphQLCache {\n return __BROWSER__\n ? {\n // Browser\n flush: () => {\n // Clear all entries from the localStorage related to this cache\n for (let i = localStorage.length - 1; i >= 0; i--) {\n const storageKey = localStorage.key(i);\n if (storageKey && storageKey.startsWith('GraphQLCache:')) {\n localStorage.removeItem(storageKey);\n }\n }\n },\n get: (key, variables) => {\n const value = localStorage.getItem(cacheKey(key, variables));\n return value === null ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n localStorage.setItem(cacheKey(key, variables), stringifyValue(value));\n },\n }\n : {\n // Node.js\n flush: () => {\n Object.keys(inMemoryCache).forEach(key => delete inMemoryCache[key]);\n },\n get: (key, variables) => {\n const value = inMemoryCache[cacheKey(key, variables)];\n return value === undefined ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n inMemoryCache[cacheKey(key, variables)] = stringifyValue(value);\n },\n };\n}\n","import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { createGraphQLCache, GraphQLCache } from './cache';\nimport { AccountQueryArgs } from './schema/account/query';\nimport { BlockQueryArgs } from './schema/block';\nimport { ProgramAccountsQueryArgs } from './schema/program-accounts';\nimport { TransactionQueryArgs } from './schema/transaction/query';\n\nexport interface RpcGraphQLContext {\n cache: GraphQLCache;\n resolveAccount(args: AccountQueryArgs, info?: GraphQLResolveInfo): ReturnType<typeof resolveAccount>;\n resolveBlock(args: BlockQueryArgs): ReturnType<typeof resolveBlock>;\n resolveProgramAccounts(args: ProgramAccountsQueryArgs): ReturnType<typeof resolveProgramAccounts>;\n resolveTransaction(args: TransactionQueryArgs): ReturnType<typeof resolveTransaction>;\n rpc: Rpc<SolanaRpcMethods>;\n}\n\n// Default to jsonParsed encoding if none is provided\nasync function resolveAccount(\n { address, encoding = 'jsonParsed', ...config }: AccountQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>,\n info?: GraphQLResolveInfo\n) {\n // If a user only requests the account's address, don't call the RPC\n if (info && info.fieldNodes[0].selectionSet) {\n const selectionSet = info.fieldNodes[0].selectionSet;\n const requestedFields = selectionSet.selections.map(field => {\n if (field.kind === 'Field') {\n return field.name.value;\n }\n return null;\n });\n if (requestedFields && requestedFields.length === 1 && requestedFields[0] === 'address') {\n return { address };\n }\n }\n\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(address, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const account = await rpc\n .getAccountInfo(address, requestConfig as Parameters<SolanaRpcMethods['getAccountInfo']>[1])\n .send()\n .then(res => res.value)\n .catch(e => {\n throw e;\n });\n\n if (account === null) {\n // Account does not exist\n // Return only the address\n return {\n address,\n };\n }\n\n const [data, responseEncoding] = Array.isArray(account.data)\n ? encoding === 'jsonParsed'\n ? [account.data[0], 'base64']\n : [account.data[0], encoding]\n : [account.data, 'jsonParsed'];\n const queryResponse = {\n ...account,\n address,\n data,\n encoding: responseEncoding,\n };\n\n cache.insert(address, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nasync function resolveBlock(\n { slot, encoding = 'jsonParsed', ...config }: BlockQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(slot, config);\n if (cached !== null) {\n return cached;\n }\n\n const block = await rpc.getBlock(slot, requestConfig as Parameters<SolanaRpcMethods['getBlock']>[1]).send();\n\n if (block === null) {\n return null;\n }\n\n cache.insert(slot, config, block);\n\n return block;\n}\n\nasync function resolveProgramAccounts(\n { programAddress, encoding = 'jsonParsed', ...config }: ProgramAccountsQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(programAddress, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const programAccounts = await rpc\n .getProgramAccounts(programAddress, requestConfig as Parameters<SolanaRpcMethods['getProgramAccounts']>[1])\n .send()\n .then(res => {\n if ('value' in res) {\n return res.value as ReturnType<SolanaRpcMethods['getProgramAccounts']>;\n }\n return res as ReturnType<SolanaRpcMethods['getProgramAccounts']>;\n })\n .catch(e => {\n throw e;\n });\n\n const queryResponse = programAccounts.map(programAccount => {\n const [data, responseEncoding] = Array.isArray(programAccount.account.data)\n ? encoding === 'jsonParsed'\n ? [programAccount.account.data[0], 'base64']\n : [programAccount.account.data[0], encoding]\n : [programAccount.account.data, 'jsonParsed'];\n const pubkey = programAccount.pubkey;\n const account = { ...programAccount.account, data, encoding: responseEncoding };\n return {\n account,\n pubkey,\n };\n });\n\n cache.insert(programAddress, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nasync function resolveTransaction(\n { signature, encoding = 'jsonParsed', ...config }: TransactionQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(signature, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const transaction = await rpc\n .getTransaction(signature, requestConfig as Parameters<SolanaRpcMethods['getTransaction']>[1])\n .send();\n\n if (transaction === null) {\n return null;\n }\n\n const [transactionData, responseEncoding, responseFormat] = Array.isArray(transaction.transaction)\n ? encoding === 'jsonParsed'\n ? [transaction.transaction[0], 'base64', 'unparsed']\n : [transaction.transaction[0], encoding, 'unparsed']\n : encoding === 'jsonParsed'\n ? [transaction.transaction, encoding, 'parsed']\n : [transaction.transaction, encoding, 'unparsed'];\n if (transaction.meta) {\n // Ugly, but tells TypeScript what's happening\n (transaction.meta as { format?: string } & { [key: string]: unknown })['format'] = responseFormat;\n }\n if (transactionData.message) {\n // Ugly, but tells TypeScript what's happening\n (transactionData.message as { format?: string } & { [key: string]: unknown })['format'] = responseFormat;\n }\n const queryResponse = {\n ...transaction,\n encoding: responseEncoding,\n transaction: transactionData,\n };\n\n cache.insert(signature, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nexport function createSolanaGraphQLContext(rpc: Rpc<SolanaRpcMethods>): RpcGraphQLContext {\n const cache = createGraphQLCache();\n return {\n cache,\n resolveAccount(args, info?) {\n return resolveAccount(args, this.cache, this.rpc, info);\n },\n resolveBlock(args) {\n return resolveBlock(args, this.cache, this.rpc);\n },\n resolveProgramAccounts(args) {\n return resolveProgramAccounts(args, this.cache, this.rpc);\n },\n resolveTransaction(args) {\n return resolveTransaction(args, this.cache, this.rpc);\n },\n rpc,\n };\n}\n","import { GraphQLEnumType, GraphQLInputObjectType } from 'graphql';\n\nimport { bigint, number, string } from './picks';\n\nlet memoisedAccountEncodingInputType: GraphQLEnumType | undefined;\nexport const accountEncodingInputType = () => {\n if (!memoisedAccountEncodingInputType)\n memoisedAccountEncodingInputType = new GraphQLEnumType({\n name: 'AccountEncoding',\n values: {\n base58: {\n value: 'base58',\n },\n base64: {\n value: 'base64',\n },\n base64Zstd: {\n value: 'base64+zstd',\n },\n jsonParsed: {\n value: 'jsonParsed',\n },\n },\n });\n return memoisedAccountEncodingInputType;\n};\n\nlet memoisedBlockTransactionDetailsInputType: GraphQLEnumType | undefined;\nexport const blockTransactionDetailsInputType = () => {\n if (!memoisedBlockTransactionDetailsInputType)\n memoisedBlockTransactionDetailsInputType = new GraphQLEnumType({\n name: 'BlockTransactionDetails',\n values: {\n accounts: {\n value: 'accounts',\n },\n full: {\n value: 'full',\n },\n none: {\n value: 'none',\n },\n signatures: {\n value: 'signatures',\n },\n },\n });\n return memoisedBlockTransactionDetailsInputType;\n};\n\nlet memoisedCommitmentInputType: GraphQLEnumType | undefined;\nexport const commitmentInputType = () => {\n if (!memoisedCommitmentInputType)\n memoisedCommitmentInputType = new GraphQLEnumType({\n name: 'Commitment',\n values: {\n confirmed: {\n value: 'confirmed',\n },\n finalized: {\n value: 'finalized',\n },\n processed: {\n value: 'processed',\n },\n },\n });\n return memoisedCommitmentInputType;\n};\n\nlet memoisedDataSliceInputType: GraphQLInputObjectType | undefined;\nexport const dataSliceInputType = () => {\n if (!memoisedDataSliceInputType)\n memoisedDataSliceInputType = new GraphQLInputObjectType({\n fields: {\n length: number(),\n offset: number(),\n },\n name: 'DataSliceConfig',\n });\n return memoisedDataSliceInputType;\n};\n\nlet memoisedMaxSupportedTransactionVersionInputType: GraphQLEnumType | undefined;\nexport const maxSupportedTransactionVersionInputType = () => {\n if (!memoisedMaxSupportedTransactionVersionInputType)\n memoisedMaxSupportedTransactionVersionInputType = new GraphQLEnumType({\n name: 'MaxSupportedTransactionVersion',\n values: {\n legacy: {\n value: 'legacy',\n },\n zero: {\n value: '0',\n },\n },\n });\n return memoisedMaxSupportedTransactionVersionInputType;\n};\n\nlet memoisedProgramAccountFilterInputType: GraphQLInputObjectType | undefined;\nexport const programAccountFilterInputType = () => {\n if (!memoisedProgramAccountFilterInputType)\n memoisedProgramAccountFilterInputType = new GraphQLInputObjectType({\n fields: {\n bytes: bigint(),\n dataSize: bigint(),\n encoding: string(),\n offset: bigint(),\n },\n name: 'ProgramAccountFilter',\n });\n return memoisedProgramAccountFilterInputType;\n};\n\nlet memoisedTransactionEncodingInputType: GraphQLEnumType | undefined;\nexport const transactionEncodingInputType = () => {\n if (!memoisedTransactionEncodingInputType)\n memoisedTransactionEncodingInputType = new GraphQLEnumType({\n name: 'TransactionEncoding',\n values: {\n base58: {\n value: 'base58',\n },\n base64: {\n value: 'base64',\n },\n json: {\n value: 'json',\n },\n jsonParsed: {\n value: 'jsonParsed',\n },\n },\n });\n return memoisedTransactionEncodingInputType;\n};\n","import {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql';\n\nimport { BigIntScalar } from './scalars';\n\ntype GraphQLType =\n | GraphQLEnumType\n | GraphQLInputObjectType\n | GraphQLInterfaceType\n | GraphQLObjectType\n | GraphQLScalarType\n | GraphQLUnionType;\n\nexport function boolean() {\n return { type: GraphQLBoolean };\n}\n\nlet memoisedBigint: { type: GraphQLScalarType } | undefined;\nexport function bigint() {\n if (!memoisedBigint) memoisedBigint = { type: BigIntScalar() };\n return memoisedBigint;\n}\n\nexport function float() {\n return { type: GraphQLFloat };\n}\nexport function number() {\n return { type: GraphQLInt };\n}\n\nexport function string() {\n return { type: GraphQLString };\n}\n\nexport function type<TFieldType extends GraphQLType>(\n fieldType: TFieldType\n): {\n type: TFieldType;\n} {\n return {\n type: fieldType,\n };\n}\n\nexport function nonNull<TFieldType extends GraphQLType>(fieldType: {\n type: TFieldType;\n}): {\n type: GraphQLList<TFieldType>;\n} {\n return {\n type: new GraphQLNonNull(fieldType.type),\n };\n}\n\nexport function list<TElementType extends GraphQLType>(elementType: {\n type: TElementType;\n}): {\n type: GraphQLList<TElementType>;\n} {\n return {\n type: new GraphQLList(elementType.type),\n };\n}\n\ntype ConstructorParametersOf<T> = T extends new (...args: infer P) => unknown ? P : never;\n\nexport function object(\n name: string,\n fields: ConstructorParametersOf<typeof GraphQLObjectType>[0]['fields']\n): { type: GraphQLObjectType } {\n return {\n type: new GraphQLObjectType({\n fields,\n name,\n }),\n };\n}\n","import { GraphQLScalarType, Kind } from 'graphql';\n\nexport const BigIntScalar = () =>\n new GraphQLScalarType({\n name: 'BigInt',\n\n parseLiteral(ast): bigint | null {\n if (ast.kind === Kind.STRING) {\n return BigInt(ast.value);\n }\n return null;\n },\n\n parseValue(value): bigint {\n return BigInt(value as string);\n },\n\n serialize(value): bigint {\n return BigInt(value as string);\n },\n });\n","import { GraphQLInterfaceType, GraphQLObjectType, GraphQLScalarType } from 'graphql';\n\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, boolean, list, number, object, string, type } from '../picks';\n\nlet memoisedTokenAmountType: GraphQLObjectType | undefined;\nexport const tokenAmountType = () => {\n if (!memoisedTokenAmountType) {\n memoisedTokenAmountType = new GraphQLObjectType({\n fields: {\n amount: string(),\n decimals: number(),\n uiAmount: bigint(),\n uiAmountString: string(),\n },\n name: 'TokenAmount',\n });\n }\n return memoisedTokenAmountType;\n};\n\n/**\n * The fields of the account interface\n */\nlet memoisedAccountInterfaceFields: object | undefined;\nconst accountInterfaceFields = () => {\n if (!memoisedAccountInterfaceFields) {\n memoisedAccountInterfaceFields = {\n address: string(),\n encoding: string(),\n executable: boolean(),\n lamports: bigint(),\n rentEpoch: bigint(),\n };\n }\n return memoisedAccountInterfaceFields;\n};\n\n/**\n * An account interface for GraphQL\n */\nlet memoisedAccountInterface: GraphQLInterfaceType | undefined;\nexport const accountInterface = (): GraphQLInterfaceType => {\n if (!memoisedAccountInterface) {\n memoisedAccountInterface = new GraphQLInterfaceType({\n description: 'A Solana account',\n fields: () => ({\n ...accountInterfaceFields(),\n owner: type(accountInterface()),\n }),\n name: 'Account',\n resolveType(account) {\n if (account.encoding === 'base58') {\n return 'AccountBase58';\n }\n if (account.encoding === 'base64') {\n return 'AccountBase64';\n }\n if (account.encoding === 'base64+zstd') {\n return 'AccountBase64Zstd';\n }\n if (account.encoding === 'jsonParsed') {\n if (account.data.parsed.type === 'mint' && account.data.program === 'spl-token') {\n return 'MintAccount';\n }\n if (account.data.parsed.type === 'account' && account.data.program === 'spl-token') {\n return 'TokenAccount';\n }\n if (account.data.program === 'nonce') {\n return 'NonceAccount';\n }\n if (account.data.program === 'stake') {\n return 'StakeAccount';\n }\n if (account.data.parsed.type === 'vote' && account.data.program === 'vote') {\n return 'VoteAccount';\n }\n if (account.data.parsed.type === 'lookupTable' && account.data.program === 'address-lookup-table') {\n return 'LookupTableAccount';\n }\n }\n return 'AccountBase64';\n },\n });\n }\n return memoisedAccountInterface;\n};\n\n/**\n * An account type implementing the account interface with a\n * specified data encoding structure\n * @param name The name of the account type\n * @param description The description of the account type\n * @param data The data structure of the account type\n * @returns The account type as a GraphQL object implementing the account interface\n */\nconst accountType = (\n name: string,\n description: string,\n data: { type: GraphQLScalarType | GraphQLObjectType }\n): GraphQLObjectType =>\n new GraphQLObjectType({\n description,\n fields: {\n ...accountInterfaceFields(),\n data,\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n resolve: (parent, args, context, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n },\n interfaces: [accountInterface()],\n name,\n });\n\n/**\n * Builds JSON parsed account data\n * Note: JSON parsed data is only available for account types with known schemas.\n * Any account with an unknown schema will return base64 encoded data.\n * @see https://docs.solana.com/api/http#parsed-responses\n * @param name The name of the account type\n * @param parsedInfoFields The fields of the parsed info object\n * @returns The JSON parsed account data as a GraphQL object\n */\nconst accountDataJsonParsed = (name: string, parsedInfoFields: Parameters<typeof object>[1]) =>\n object(name + 'Data', {\n parsed: object(name + 'DataParsed', {\n info: object(name + 'DataParsedInfo', parsedInfoFields),\n type: string(),\n }),\n program: string(),\n space: bigint(),\n });\n\nlet memoisedAccountBase58: GraphQLObjectType | undefined;\nconst accountBase58 = () => {\n if (!memoisedAccountBase58)\n memoisedAccountBase58 = accountType('AccountBase58', 'A Solana account with base58 encoded data', string());\n return memoisedAccountBase58;\n};\n\nlet memoisedAccountBase64: GraphQLObjectType | undefined;\nconst accountBase64 = () => {\n if (!memoisedAccountBase64)\n memoisedAccountBase64 = accountType('AccountBase64', 'A Solana account with base64 encoded data', string());\n return memoisedAccountBase64;\n};\n\nlet memoisedAccountBase64Zstd: GraphQLObjectType | undefined;\nconst accountBase64Zstd = () => {\n if (!memoisedAccountBase64Zstd)\n memoisedAccountBase64Zstd = accountType(\n 'AccountBase64Zstd',\n 'A Solana account with base64 encoded data compressed with zstd',\n string()\n );\n return memoisedAccountBase64Zstd;\n};\n\nlet memoisedAccountNonceAccount: GraphQLObjectType | undefined;\nconst accountNonceAccount = () => {\n if (!memoisedAccountNonceAccount)\n memoisedAccountNonceAccount = accountType(\n 'NonceAccount',\n 'A nonce account',\n accountDataJsonParsed('Nonce', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n blockhash: string(),\n feeCalculator: object('NonceFeeCalculator', {\n lamportsPerSignature: string(),\n }),\n })\n );\n return memoisedAccountNonceAccount;\n};\n\nlet memoisedAccountLookupTable: GraphQLObjectType | undefined;\nconst accountLookupTable = () => {\n if (!memoisedAccountLookupTable)\n memoisedAccountLookupTable = accountType(\n 'LookupTableAccount',\n 'An address lookup table account',\n accountDataJsonParsed('LookupTable', {\n addresses: list(string()),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n deactivationSlot: string(),\n lastExtendedSlot: string(),\n lastExtendedSlotStartIndex: number(),\n })\n );\n return memoisedAccountLookupTable;\n};\n\nlet memoisedAccountMint: GraphQLObjectType | undefined;\nconst accountMint = () => {\n if (!memoisedAccountMint)\n memoisedAccountMint = accountType(\n 'MintAccount',\n 'An SPL mint',\n accountDataJsonParsed('Mint', {\n decimals: number(),\n freezeAuthority: string(),\n isInitialized: boolean(),\n // Nested Account interface\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n supply: string(),\n })\n );\n return memoisedAccountMint;\n};\n\nlet memoisedAccountTokenAccount: GraphQLObjectType | undefined;\nconst accountTokenAccount = () => {\n if (!memoisedAccountTokenAccount)\n memoisedAccountTokenAccount = accountType(\n 'TokenAccount',\n 'An SPL token account',\n accountDataJsonParsed('TokenAccount', {\n isNative: boolean(),\n mint: string(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n state: string(),\n tokenAmount: type(tokenAmountType()),\n })\n );\n return memoisedAccountTokenAccount;\n};\n\nlet memoisedAccountStakeAccount: GraphQLObjectType | undefined;\nconst accountStakeAccount = () => {\n if (!memoisedAccountStakeAccount)\n memoisedAccountStakeAccount = accountType(\n 'StakeAccount',\n 'A stake account',\n accountDataJsonParsed('Stake', {\n meta: object('StakeMeta', {\n authorized: object('StakeMetaAuthorized', {\n // Nested Account interface\n staker: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.staker }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawer }, info),\n type: accountInterface(),\n },\n }),\n lockup: object('StakeMetaLockup', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n unixTimestamp: bigint(),\n }),\n rentExemptReserve: string(),\n }),\n stake: object('StakeStake', {\n creditsObserved: bigint(),\n delegation: object('StakeStakeDelegation', {\n activationEpoch: bigint(),\n deactivationEpoch: bigint(),\n stake: string(),\n // Nested Account interface\n voter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voter }, info),\n type: accountInterface(),\n },\n warmupCooldownRate: number(),\n }),\n }),\n })\n );\n return memoisedAccountStakeAccount;\n};\n\nlet memoisedAccountVoteAccount: GraphQLObjectType | undefined;\nconst accountVoteAccount = () => {\n if (!memoisedAccountVoteAccount)\n memoisedAccountVoteAccount = accountType(\n 'VoteAccount',\n 'A vote account',\n accountDataJsonParsed('Vote', {\n authorizedVoters: list(\n object('VoteAuthorizedVoter', {\n // Nested Account interface\n authorizedVoter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedVoter }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n })\n ),\n // Nested Account interface\n authorizedWithdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedWithdrawer }, info),\n type: accountInterface(),\n },\n commission: number(),\n epochCredits: list(\n object('VoteEpochCredits', {\n credits: string(),\n epoch: bigint(),\n previousCredits: string(),\n })\n ),\n lastTimestamp: object('VoteLastTimestamp', {\n slot: bigint(),\n timestamp: bigint(),\n }),\n // Nested Account interface\n node: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nodePubkey }, info),\n type: accountInterface(),\n },\n priorVoters: list(string()),\n rootSlot: bigint(),\n votes: list(\n object('VoteVote', {\n confirmationCount: number(),\n slot: bigint(),\n })\n ),\n })\n );\n return memoisedAccountVoteAccount;\n};\n\nlet memoisedAccountTypes: GraphQLObjectType[] | undefined;\nexport const accountTypes = () => {\n if (!memoisedAccountTypes)\n memoisedAccountTypes = [\n accountBase58(),\n accountBase64(),\n accountBase64Zstd(),\n accountNonceAccount(),\n accountLookupTable(),\n accountMint(),\n accountTokenAccount(),\n accountStakeAccount(),\n accountVoteAccount(),\n ];\n return memoisedAccountTypes;\n};\n","import { Base58EncodedAddress } from '@solana/addresses';\nimport { DataSlice, Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, nonNull, string, type } from '../picks';\nimport { accountInterface } from './types';\n\nexport type AccountQueryArgs = {\n address: Base58EncodedAddress;\n commitment?: Commitment;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n minContextSlot?: Slot;\n};\n\n/**\n * Account root query for GraphQL\n */\nexport const accountQuery = () => ({\n account: {\n args: {\n address: nonNull(string()),\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (_parent: unknown, args: AccountQueryArgs, context: RpcGraphQLContext, info: any) =>\n context.resolveAccount(args, info),\n type: accountInterface(),\n },\n});\n","import { GraphQLInterfaceType, GraphQLObjectType } from 'graphql';\n\nimport { bigint, list, object, string, type } from '../picks';\nimport {\n returnData,\n reward,\n tokenBalance,\n transactionInterface,\n transactionMetaLoadedAddresses,\n transactionStatus,\n} from '../transaction';\n\nlet memoisedTransactionForAccounts: GraphQLObjectType | undefined;\nconst transactionForAccounts = () => {\n if (!memoisedTransactionForAccounts)\n memoisedTransactionForAccounts = new GraphQLObjectType({\n fields: {\n meta: object('TransactionMetaForAccounts', {\n computeUnitsUsed: bigint(),\n err: string(),\n fee: bigint(),\n format: string(),\n loadedAddresses: type(transactionMetaLoadedAddresses()),\n logMessages: list(string()),\n postBalances: list(bigint()),\n postTokenBalances: list(type(tokenBalance())),\n preBalances: list(bigint()),\n preTokenBalances: list(type(tokenBalance())),\n returnData: type(returnData()),\n rewards: list(type(reward())),\n status: type(transactionStatus()),\n }),\n transaction: type(transactionInterface()), // TODO\n version: string(),\n },\n name: 'TransactionForAccounts',\n });\n return memoisedTransactionForAccounts;\n};\n\nlet memoisedBlockInterfaceFields: object | undefined;\n/**\n * The fields for the block interface\n */\nconst blockInterfaceFields = () => {\n if (!memoisedBlockInterfaceFields)\n memoisedBlockInterfaceFields = {\n blockHeight: bigint(),\n blockTime: bigint(),\n blockhash: string(),\n parentSlot: bigint(),\n previousBlockhash: string(),\n rewards: list(type(reward())),\n };\n return memoisedBlockInterfaceFields;\n};\n\nlet memoisedBlockInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a block\n */\nexport const blockInterface = () => {\n if (!memoisedBlockInterface)\n memoisedBlockInterface = new GraphQLInterfaceType({\n fields: {\n ...blockInterfaceFields(),\n },\n name: 'Block',\n resolveType(block) {\n if (block.transactionDetails === 'signatures') {\n return 'BlockWithSignatures';\n }\n if (block.transactionDetails === 'accounts') {\n return 'BlockWithAccounts';\n }\n if (block.transactionDetails === 'none') {\n return 'BlockWithNoTransactions';\n }\n return 'BlockWithTransactions';\n },\n });\n return memoisedBlockInterface;\n};\n\nlet memoisedBlockWithNoTransactions: GraphQLObjectType | undefined;\nconst blockWithNoTransactions = () => {\n if (!memoisedBlockWithNoTransactions)\n memoisedBlockWithNoTransactions = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithNoTransactions',\n });\n return memoisedBlockWithNoTransactions;\n};\n\nlet memoisedBlockWithSignatures: GraphQLObjectType | undefined;\nconst blockWithSignatures = () => {\n if (!memoisedBlockWithSignatures)\n memoisedBlockWithSignatures = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n signatures: list(string()),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithSignatures',\n });\n return memoisedBlockWithSignatures;\n};\n\nlet memoisedBlockWithAccounts: GraphQLObjectType | undefined;\nconst blockWithAccounts = () => {\n if (!memoisedBlockWithAccounts)\n memoisedBlockWithAccounts = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n transactions: list(type(transactionForAccounts())),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithAccounts',\n });\n return memoisedBlockWithAccounts;\n};\n\nlet memoisedBlockWithTransactions: GraphQLObjectType | undefined;\nconst blockWithTransactions = () => {\n if (!memoisedBlockWithTransactions)\n memoisedBlockWithTransactions = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n transactions: list(type(transactionInterface())),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithTransactions',\n });\n return memoisedBlockWithTransactions;\n};\n\nlet memoisedBlockTypes: GraphQLObjectType[] | undefined;\nexport const blockTypes = () => {\n if (!memoisedBlockTypes)\n memoisedBlockTypes = [\n blockWithNoTransactions(),\n blockWithSignatures(),\n blockWithAccounts(),\n blockWithTransactions(),\n ];\n return memoisedBlockTypes;\n};\n","import { GraphQLInterfaceType, GraphQLList, GraphQLObjectType, GraphQLScalarType, GraphQLUnionType } from 'graphql';\n\nimport { bigint, boolean, list, number, object, string, type } from '../picks';\n\nlet memoisedTokenBalance: GraphQLObjectType | undefined;\nexport const tokenBalance = () => {\n if (!memoisedTokenBalance)\n memoisedTokenBalance = new GraphQLObjectType({\n fields: {\n accountIndex: number(),\n mint: string(),\n owner: string(),\n programId: string(),\n uiAmountString: string(),\n },\n name: 'TokenBalance',\n });\n return memoisedTokenBalance;\n};\n\nlet memoisedTransactionStatus: GraphQLUnionType | undefined;\nexport const transactionStatus = () => {\n if (!memoisedTransactionStatus)\n memoisedTransactionStatus = new GraphQLUnionType({\n name: 'TransactionStatus',\n types: [\n new GraphQLObjectType({\n fields: {\n Err: string(),\n },\n name: 'TransactionStatusError',\n }),\n new GraphQLObjectType({\n fields: {\n Ok: string(),\n },\n name: 'TransactionStatusOk',\n }),\n ],\n });\n return memoisedTransactionStatus;\n};\n\nlet memoisedReward: GraphQLObjectType | undefined;\nexport const reward = () => {\n if (!memoisedReward)\n memoisedReward = new GraphQLObjectType({\n fields: {\n commission: number(),\n lamports: bigint(),\n postBalance: bigint(),\n pubkey: string(),\n rewardType: string(),\n },\n name: 'Reward',\n });\n return memoisedReward;\n};\n\nlet memoisedAddressTableLookup: GraphQLObjectType | undefined;\nconst addressTableLookup = () => {\n if (!memoisedAddressTableLookup)\n memoisedAddressTableLookup = new GraphQLObjectType({\n fields: {\n accountKey: string(),\n readableIndexes: list(number()),\n writableIndexes: list(number()),\n },\n name: 'AddressTableLookup',\n });\n return memoisedAddressTableLookup;\n};\n\nlet memoisedReturnData: GraphQLObjectType | undefined;\nexport const returnData = () => {\n if (!memoisedReturnData)\n memoisedReturnData = new GraphQLObjectType({\n fields: {\n data: string(),\n programId: string(),\n },\n name: 'ReturnData',\n });\n return memoisedReturnData;\n};\n\nlet memoisedTransactionInstruction: GraphQLObjectType | undefined;\nconst transactionInstruction = () => {\n if (!memoisedTransactionInstruction)\n memoisedTransactionInstruction = new GraphQLObjectType({\n fields: {\n accounts: list(number()),\n data: string(),\n programIdIndex: number(),\n },\n name: 'TransactionInstruction',\n });\n return memoisedTransactionInstruction;\n};\n\nlet memoisedTransactionMetaLoadedAddresses: GraphQLObjectType | undefined;\nexport const transactionMetaLoadedAddresses = () => {\n if (!memoisedTransactionMetaLoadedAddresses)\n memoisedTransactionMetaLoadedAddresses = new GraphQLObjectType({\n fields: {\n readonly: list(string()), // Base58 encoded addresses\n writable: list(string()), // Base58 encoded addresses\n },\n name: 'TransactionMetaLoadedAddresses',\n });\n return memoisedTransactionMetaLoadedAddresses;\n};\n\nlet memoisedParsedTransactionInstructionInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a parsed transaction instruction\n */\nconst parsedTransactionInstructionInterface = () => {\n if (!memoisedParsedTransactionInstructionInterface)\n memoisedParsedTransactionInstructionInterface = new GraphQLInterfaceType({\n fields: {\n programId: string(),\n },\n name: 'ParsedTransactionInstruction',\n resolveType(instruction) {\n if (instruction.program === 'address-lookup-table') {\n if (instruction.info.type === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (instruction.info.type === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (instruction.info.type === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (instruction.info.type === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (instruction.info.type === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (instruction.program === 'bpf-loader') {\n if (instruction.info.type === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (instruction.info.type === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (instruction.program === 'bpf-upgradeable-loader') {\n if (instruction.info.type === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (instruction.info.type === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (instruction.info.type === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (instruction.info.type === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (instruction.info.type === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (instruction.info.type === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (instruction.info.type === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (instruction.info.type === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (instruction.program === 'spl-associated-token-account') {\n if (instruction.info.type === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (instruction.info.type === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (instruction.info.type === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (instruction.program === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (instruction.program === 'spl-token') {\n if (instruction.info.type === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (instruction.info.type === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (instruction.info.type === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (instruction.info.type === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (instruction.info.type === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (instruction.info.type === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (instruction.info.type === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (instruction.info.type === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (instruction.info.type === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (instruction.info.type === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (instruction.info.type === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (instruction.info.type === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (instruction.info.type === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (instruction.info.type === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (instruction.info.type === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (instruction.info.type === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (instruction.info.type === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (instruction.info.type === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (instruction.info.type === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (instruction.info.type === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (instruction.info.type === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (instruction.info.type === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (instruction.info.type === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (instruction.info.type === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (instruction.info.type === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (instruction.info.type === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n }\n if (instruction.program === 'stake') {\n if (instruction.info.type === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (instruction.info.type === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (instruction.info.type === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (instruction.info.type === 'split') {\n return 'StakeSplitInstruction';\n }\n if (instruction.info.type === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (instruction.info.type === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (instruction.info.type === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (instruction.info.type === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (instruction.info.type === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (instruction.info.type === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (instruction.info.type === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (instruction.info.type === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.info.type === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (instruction.info.type === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (instruction.info.type === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (instruction.program === 'system') {\n if (instruction.info.type === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (instruction.info.type === 'assign') {\n return 'AssignInstruction';\n }\n if (instruction.info.type === 'transfer') {\n return 'TransferInstruction';\n }\n if (instruction.info.type === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (instruction.info.type === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (instruction.info.type === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (instruction.info.type === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (instruction.info.type === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (instruction.info.type === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (instruction.info.type === 'allocate') {\n return 'AllocateInstruction';\n }\n if (instruction.info.type === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (instruction.info.type === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (instruction.info.type === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (instruction.program === 'vote') {\n if (instruction.info.type === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (instruction.info.type === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (instruction.info.type === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (instruction.info.type === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.info.type === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (instruction.info.type === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (instruction.info.type === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (instruction.info.type === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (instruction.info.type === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (instruction.info.type === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (instruction.info.type === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (instruction.info.type === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (instruction.info.type === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (instruction.info.type === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n return 'PartiallyDecodedInstruction';\n },\n });\n return memoisedParsedTransactionInstructionInterface;\n};\n\n/**\n * Builds JSON parsed instruction\n * Note: JSON parsed data is only available for instructions with known schemas.\n * Any instruction with an unknown schema will return as a partially decoded transaction\n * with base64 encoded data.\n * @see https://docs.solana.com/api/http#parsed-responses\n * @param name The name of the instruction type\n * @param parsedInfoFields The fields of the parsed info object\n * @returns The JSON parsed instruction as a GraphQL object\n */\nconst parsedTransactionInstructionType = (name: string, parsedInfoFields: Parameters<typeof object>[1]) =>\n new GraphQLObjectType({\n fields: {\n parsed: object(name + 'Parsed', {\n info: object(name + 'ParsedInfo', parsedInfoFields),\n type: string(),\n }),\n program: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name,\n });\n\nlet memoisedPartiallyDecodedTransactionInstruction: GraphQLObjectType | undefined;\nconst partiallyDecodedTransactionInstruction = () => {\n if (!memoisedPartiallyDecodedTransactionInstruction)\n memoisedPartiallyDecodedTransactionInstruction = new GraphQLObjectType({\n fields: {\n accounts: list(string()),\n data: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name: 'PartiallyDecodedInstruction',\n });\n return memoisedPartiallyDecodedTransactionInstruction;\n};\n\nlet memoisedParsedInstructionsAddressLookupTable: GraphQLObjectType[] | undefined;\n/**\n * Address Lookup Table program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_address_lookup_table.rs#L13\n */\nconst parsedInstructionsAddressLookupTable = () => {\n if (!memoisedParsedInstructionsAddressLookupTable)\n memoisedParsedInstructionsAddressLookupTable = [\n parsedTransactionInstructionType('CreateLookupTableInstruction', {\n bumpSeed: number(),\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n payerAccount: string(),\n recentSlot: bigint(),\n systemProgram: string(),\n }),\n parsedTransactionInstructionType('FreezeLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n }),\n parsedTransactionInstructionType('ExtendLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n newAddresses: list(string()),\n payerAccount: string(),\n systemProgram: string(),\n }),\n parsedTransactionInstructionType('DeactivateLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n }),\n parsedTransactionInstructionType('CloseLookupTableInstruction', {\n lookupTableAccount: string(),\n lookupTableAuthority: string(),\n recipient: string(),\n }),\n ];\n return memoisedParsedInstructionsAddressLookupTable;\n};\n\nlet memoisedParsedInstructionsBpfLoader: GraphQLObjectType[] | undefined;\n/**\n * BPF Loader program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_bpf_loader.rs#L14\n */\nconst parsedInstructionsBpfLoader = () => {\n if (!memoisedParsedInstructionsBpfLoader)\n memoisedParsedInstructionsBpfLoader = [\n parsedTransactionInstructionType('BpfLoaderWriteInstruction', {\n account: string(),\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfLoaderFinalizeInstruction', {\n account: string(),\n }),\n ];\n return memoisedParsedInstructionsBpfLoader;\n};\n\nlet memoisedParsedInstructionsBpfUpgradeableLoader: GraphQLObjectType[] | undefined;\n/**\n * BPF Upgradeable Loader program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_bpf_loader.rs#L49\n */\nconst parsedInstructionsBpfUpgradeableLoader = () => {\n if (!memoisedParsedInstructionsBpfUpgradeableLoader)\n memoisedParsedInstructionsBpfUpgradeableLoader = [\n parsedTransactionInstructionType('BpfUpgradeableLoaderInitializeBufferInstruction', {\n account: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderWriteInstruction', {\n account: string(),\n authority: string(),\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderDeployWithMaxDataLenInstruction', {\n authority: string(),\n bufferAccount: string(),\n clockSysvar: string(),\n maxDataLen: bigint(),\n payerAccount: string(),\n programAccount: string(),\n programDataAccount: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderUpgradeInstruction', {\n authority: string(),\n bufferAccount: string(),\n clockSysvar: string(),\n programAccount: string(),\n programDataAccount: string(),\n rentSysvar: string(),\n spillAccount: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityInstruction', {\n account: string(),\n authority: string(),\n newAuthority: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityCheckedInstruction', {\n account: string(),\n authority: string(),\n newAuthority: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderCloseInstruction', {\n account: string(),\n authority: string(),\n programAccount: string(),\n recipient: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderExtendProgramInstruction', {\n additionalBytes: bigint(),\n payerAccount: string(),\n programAccount: string(),\n programDataAccount: string(),\n systemProgram: string(),\n }),\n ];\n return memoisedParsedInstructionsBpfUpgradeableLoader;\n};\n\nlet memoisedParsedInstructionsSplAssociatedToken: GraphQLObjectType[] | undefined;\n/**\n * SPL Associated Token Account program\n * @see https://github.com/solana-labs/solana/blob/1a2c0943db6519dc9519bfc74c2426332ba26850/transaction-status/src/parse_associated_token.rs#L17\n */\nconst parsedInstructionsSplAssociatedToken = () => {\n if (!memoisedParsedInstructionsSplAssociatedToken)\n memoisedParsedInstructionsSplAssociatedToken = [\n parsedTransactionInstructionType('SplAssociatedTokenCreateInstruction', {\n account: string(),\n mint: string(),\n source: string(),\n systemProgram: string(),\n tokenProgram: string(),\n wallet: string(),\n }),\n parsedTransactionInstructionType('SplAssociatedTokenCreateIdempotentInstruction', {\n account: string(),\n mint: string(),\n source: string(),\n systemProgram: string(),\n tokenProgram: string(),\n wallet: string(),\n }),\n parsedTransactionInstructionType('SplAssociatedTokenRecoverNestedInstruction', {\n destination: string(),\n nestedMint: string(),\n nestedOwner: string(),\n nestedSource: string(),\n ownerMint: string(),\n tokenProgram: string(),\n wallet: string(),\n }),\n ];\n return memoisedParsedInstructionsSplAssociatedToken;\n};\n\nlet memoisedParsedInstructionSplMemo: GraphQLObjectType | undefined;\n/**\n * SPL Memo program\n * @see https://github.com/solana-labs/solana/blob/1a2c0943db6519dc9519bfc74c2426332ba26850/transaction-status/src/parse_instruction.rs#L146\n */\nconst parsedInstructionSplMemo = () => {\n if (!memoisedParsedInstructionSplMemo)\n memoisedParsedInstructionSplMemo = new GraphQLObjectType({\n fields: {\n parsed: string(),\n program: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name: 'SplMemoInstruction',\n });\n return memoisedParsedInstructionSplMemo;\n};\n\nlet memoisedParsedInstructionsSplToken: GraphQLObjectType[] | undefined;\n/**\n * SPL Token program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_token.rs#L29\n */\nconst parsedInstructionsSplToken = () => {\n if (!memoisedParsedInstructionsSplToken)\n memoisedParsedInstructionsSplToken = [\n parsedTransactionInstructionType('SplTokenInitializeMintInstruction', {\n decimals: number(),\n freezeAuthority: string(),\n mint: string(),\n mintAuthority: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMint2Instruction', {\n decimals: number(),\n freezeAuthority: string(),\n mint: string(),\n mintAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccountInstruction', {\n account: string(),\n mint: string(),\n owner: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount2Instruction', {\n account: string(),\n mint: string(),\n owner: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount3Instruction', {\n account: string(),\n mint: string(),\n owner: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisigInstruction', {\n m: number(),\n multisig: string(),\n rentSysvar: string(),\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisig2Instruction', {\n m: number(),\n multisig: string(),\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenTransferInstruction', {\n amount: string(),\n authority: string(),\n destination: string(),\n multisigAuthority: string(),\n source: string(),\n }),\n parsedTransactionInstructionType('SplTokenApproveInstruction', {\n amount: string(),\n delegate: string(),\n multisigOwner: string(),\n owner: string(),\n source: string(),\n }),\n parsedTransactionInstructionType('SplTokenRevokeInstruction', {\n multisigOwner: string(),\n owner: string(),\n source: string(),\n }),\n parsedTransactionInstructionType('SplTokenSetAuthorityInstruction', {\n authority: string(),\n authorityType: string(),\n multisigAuthority: string(),\n newAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenMintToInstruction', {\n account: string(),\n amount: string(),\n authority: string(),\n mint: string(),\n mintAuthority: string(),\n multisigMintAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenBurnInstruction', {\n account: string(),\n amount: string(),\n authority: string(),\n mint: string(),\n multisigAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenCloseAccountInstruction', {\n account: string(),\n destination: string(),\n multisigOwner: string(),\n owner: string(),\n }),\n parsedTransactionInstructionType('SplTokenFreezeAccountInstruction', {\n account: string(),\n freezeAuthority: string(),\n mint: string(),\n multisigFreezeAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenThawAccountInstruction', {\n account: string(),\n freezeAuthority: string(),\n mint: string(),\n multisigFreezeAuthority: string(),\n }),\n parsedTransactionInstructionType('SplTokenTransferCheckedInstruction', {\n authority: string(),\n destination: string(),\n mint: string(),\n multisigAuthority: string(),\n source: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenApproveCheckedInstruction', {\n delegate: string(),\n mint: string(),\n multisigOwner: string(),\n owner: string(),\n source: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenMintToCheckedInstruction', {\n account: string(),\n authority: string(),\n mint: string(),\n mintAuthority: string(),\n multisigMintAuthority: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenBurnCheckedInstruction', {\n account: string(),\n authority: string(),\n mint: string(),\n multisigAuthority: string(),\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenSyncNativeInstruction', {\n account: string(),\n }),\n parsedTransactionInstructionType('SplTokenGetAccountDataSizeInstruction', {\n extensionTypes: list(string()),\n mint: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeImmutableOwnerInstruction', {\n account: string(),\n }),\n parsedTransactionInstructionType('SplTokenAmountToUiAmountInstruction', {\n amount: string(),\n mint: string(),\n }),\n parsedTransactionInstructionType('SplTokenUiAmountToAmountInstruction', {\n mint: string(),\n uiAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMintCloseAuthorityInstruction', {\n mint: string(),\n newAuthority: string(),\n }),\n // TODO: Extensions!\n // - TransferFeeExtension\n // - ConfidentialTransferFeeExtension\n // - DefaultAccountStateExtension\n // - Reallocate\n // - MemoTransferExtension\n // - CreateNativeMint\n // - InitializeNonTransferableMint\n // - InterestBearingMintExtension\n // - CpiGuardExtension\n // - InitializePermanentDelegate\n // - TransferHookExtension\n // - ConfidentialTransferFeeExtension\n // - WithdrawExcessLamports\n // - MetadataPointerExtension\n ];\n return memoisedParsedInstructionsSplToken;\n};\n\nlet memoisedLockup: GraphQLObjectType | undefined;\nconst lockup = () => {\n if (!memoisedLockup)\n memoisedLockup = new GraphQLObjectType({\n fields: {\n custodian: string(),\n epoch: bigint(),\n unixTimestamp: bigint(),\n },\n name: 'Lockup',\n });\n return memoisedLockup;\n};\n\nlet memoisedParsedInstructionsStake: GraphQLObjectType[] | undefined;\n/**\n * Stake program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_stake.rs#L13\n */\nconst parsedInstructionsStake = () => {\n if (!memoisedParsedInstructionsStake)\n memoisedParsedInstructionsStake = [\n parsedTransactionInstructionType('StakeInitializeInstruction', {\n authorized: object('StakeInitializeInstructionAuthorized', {\n staker: string(),\n withdrawer: string(),\n }),\n lockup: object('StakeInitializeInstructionLockup', {\n custodian: string(),\n epoch: bigint(),\n unixTimestamp: bigint(),\n }),\n rentSysvar: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthority: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeDelegateStakeInstruction', {\n clockSysvar: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n stakeConfigAccount: string(),\n stakeHistorySysvar: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('StakeSplitInstruction', {\n lamports: bigint(),\n newSplitAccount: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n }),\n parsedTransactionInstructionType('StakeWithdrawInstruction', {\n clockSysvar: string(),\n destination: string(),\n lamports: bigint(),\n stakeAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('StakeDeactivateInstruction', {\n clockSysvar: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n }),\n parsedTransactionInstructionType('StakeSetLockupInstruction', {\n custodian: string(),\n lockup: type(lockup()),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeMergeInstruction', {\n clockSysvar: string(),\n destination: string(),\n source: string(),\n stakeAuthority: string(),\n stakeHistorySysvar: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeWithSeedInstruction', {\n authorityBase: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthorized: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeInitializeCheckedInstruction', {\n rentSysvar: string(),\n stakeAccount: string(),\n staker: string(),\n withdrawer: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthority: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedWithSeedInstruction', {\n authorityBase: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n custodian: string(),\n newAuthorized: string(),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeSetLockupCheckedInstruction', {\n custodian: string(),\n lockup: type(lockup()),\n stakeAccount: string(),\n }),\n parsedTransactionInstructionType('StakeDeactivateDelinquentInstruction', {\n referenceVoteAccount: string(),\n stakeAccount: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('StakeRedelegateInstruction', {\n newStakeAccount: string(),\n stakeAccount: string(),\n stakeAuthority: string(),\n stakeConfigAccount: string(),\n voteAccount: string(),\n }),\n ];\n return memoisedParsedInstructionsStake;\n};\n\nlet memoisedParsedInstructionsSystem: GraphQLObjectType[] | undefined;\n/**\n * System program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_system.rs#L13\n */\nconst parsedInstructionsSystem = () => {\n if (!memoisedParsedInstructionsSystem)\n memoisedParsedInstructionsSystem = [\n parsedTransactionInstructionType('CreateAccountInstruction', {\n lamports: bigint(),\n newAccount: string(),\n owner: string(),\n source: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignInstruction', {\n owner: string(),\n }),\n parsedTransactionInstructionType('TransferInstruction', {\n amount: string(),\n lamports: number(),\n source: string(),\n }),\n parsedTransactionInstructionType('CreateAccountWithSeedInstruction', {\n base: string(),\n lamports: bigint(),\n owner: string(),\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AdvanceNonceAccountInstruction', {\n nonceAccount: string(),\n nonceAuthority: string(),\n recentBlockhashesSysvar: string(),\n }),\n parsedTransactionInstructionType('WithdrawNonceAccountInstruction', {\n destination: string(),\n lamports: bigint(),\n nonceAccount: string(),\n nonceAuthority: string(),\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('InitializeNonceAccountInstruction', {\n nonceAccount: string(),\n nonceAuthority: string(),\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('AuthorizeNonceAccountInstruction', {\n newAuthorized: string(),\n nonceAccount: string(),\n nonceAuthority: string(),\n }),\n parsedTransactionInstructionType('UpgradeNonceAccountInstruction', {\n nonceAccount: string(),\n }),\n parsedTransactionInstructionType('AllocateInstruction', {\n account: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AllocateWithSeedInstruction', {\n account: string(),\n base: string(),\n owner: string(),\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignWithSeedInstruction', {\n account: string(),\n base: string(),\n owner: string(),\n seed: string(),\n }),\n parsedTransactionInstructionType('TransferWithSeedInstruction', {\n destination: string(),\n lamports: bigint(),\n source: string(),\n sourceBase: string(),\n sourceOwner: string(),\n sourceSeed: string(),\n }),\n ];\n return memoisedParsedInstructionsSystem;\n};\n\nlet memoisedVote: GraphQLObjectType | undefined;\nconst vote = () => {\n if (!memoisedVote)\n memoisedVote = new GraphQLObjectType({\n fields: {\n hash: string(),\n slots: list(bigint()),\n timestamp: bigint(),\n },\n name: 'Vote',\n });\n return memoisedVote;\n};\n\nlet memoisedVoteStateUpdate: GraphQLObjectType | undefined;\nconst voteStateUpdate = () => {\n if (!memoisedVoteStateUpdate)\n memoisedVoteStateUpdate = new GraphQLObjectType({\n fields: {\n hash: string(),\n lockouts: list(\n object('VoteStateUpdateLockout', {\n confirmationCount: number(),\n slot: bigint(),\n })\n ),\n root: bigint(),\n timestamp: bigint(),\n },\n name: 'VoteStateUpdate',\n });\n return memoisedVoteStateUpdate;\n};\n\nlet memoisedParsedInstructionsVote: GraphQLObjectType[] | undefined;\n/**\n * Vote program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_vote.rs#L12\n */\nconst parsedInstructionsVote = () => {\n if (!memoisedParsedInstructionsVote)\n memoisedParsedInstructionsVote = [\n parsedTransactionInstructionType('VoteInitializeAccountInstruction', {\n authorizedVoter: string(),\n authorizedWithdrawer: string(),\n clockSysvar: string(),\n commission: number(),\n node: string(),\n rentSysvar: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeWithSeedInstruction', {\n authorityBaseKey: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedWithSeedInstruction', {\n authorityBaseKey: string(),\n authorityOwner: string(),\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\n }),\n parsedTransactionInstructionType('VoteVoteInstruction', {\n clockSysvar: string(),\n slotHashedSysvar: string(),\n vote: type(vote()),\n voteAccount: string(),\n voteAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateSwitchInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateSwitchInstruction', {\n hash: string(),\n voteAccount: string(),\n voteAuthority: string(),\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteWithdrawInstruction', {\n destination: string(),\n lamports: bigint(),\n voteAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteUpdateValidatorIdentityInstruction', {\n newValidatorIdentity: string(),\n voteAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteUpdateCommissionInstruction', {\n commission: string(),\n voteAccount: string(),\n withdrawAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteVoteSwitchInstruction', {\n clockSysvar: string(),\n hash: string(),\n slotHashesSysvar: string(),\n vote: type(vote()),\n voteAccount: string(),\n voteAuthority: string(),\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedInstruction', {\n authority: string(),\n authorityType: string(),\n clockSysvar: string(),\n newAuthority: string(),\n voteAccount: string(),\n }),\n ];\n return memoisedParsedInstructionsVote;\n};\n\nlet memoisedTransactionMetaInterfaceFields: object | undefined;\n/**\n * The fields for the transaction meta interface\n */\nconst transactionMetaInterfaceFields = () => {\n if (!memoisedTransactionMetaInterfaceFields)\n memoisedTransactionMetaInterfaceFields = {\n computeUnitsConsumed: bigint(),\n err: string(),\n fee: bigint(),\n format: string(),\n loadedAddresses: type(transactionMetaLoadedAddresses()),\n logMessages: list(string()),\n postBalances: list(bigint()),\n postTokenBalances: list(type(tokenBalance())),\n preBalances: list(bigint()),\n preTokenBalances: list(type(tokenBalance())),\n returnData: type(returnData()),\n rewards: list(type(reward())),\n status: type(transactionStatus()),\n };\n return memoisedTransactionMetaInterfaceFields;\n};\n\nlet memoisedTransactionMetaInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction meta\n */\nconst transactionMetaInterface = () => {\n if (!memoisedTransactionMetaInterface)\n memoisedTransactionMetaInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionMetaInterfaceFields(),\n },\n name: 'TransactionMeta',\n resolveType(meta) {\n if (meta.format === 'parsed') {\n return 'TransactionMetaParsed';\n }\n return 'TransactionMetaUnparsed';\n },\n });\n return memoisedTransactionMetaInterface;\n};\n\n/**\n * Builds a transaction meta type\n * @param name The name of the transaction meta type\n * @param description The description of the transaction meta type\n * @param innerInstructions The inner instructions of the transaction meta type\n * @returns The transaction meta type as a GraphQL object\n */\nconst transactionMetaType = (\n name: string,\n description: string,\n innerInstructions: { type: GraphQLList<GraphQLObjectType | GraphQLScalarType> }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionMetaInterfaceFields(),\n innerInstructions,\n },\n interfaces: [transactionMetaInterface()],\n name,\n });\n\nlet memoisedTransactionMetaUnparsed: GraphQLObjectType | undefined;\nconst transactionMetaUnparsed = () => {\n if (!memoisedTransactionMetaUnparsed)\n memoisedTransactionMetaUnparsed = transactionMetaType(\n 'TransactionMetaUnparsed',\n 'Non-parsed transaction meta',\n list(\n object('TransactionMetaInnerInstructionsUnparsed', {\n index: number(),\n instructions: list(\n object('TransactionMetaInnerInstructionsUnparsedInstruction', {\n index: number(),\n instructions: list(type(transactionInstruction())),\n })\n ),\n })\n )\n );\n return memoisedTransactionMetaUnparsed;\n};\n\nlet memoisedTransactionMetaParsed: GraphQLObjectType | undefined;\nconst transactionMetaParsed = () => {\n if (!memoisedTransactionMetaParsed)\n memoisedTransactionMetaParsed = transactionMetaType(\n 'TransactionMetaParsed',\n 'Parsed transaction meta',\n list(\n object('TransactionMetaInnerInstructionsParsed', {\n index: number(),\n instructions: list(type(parsedTransactionInstructionInterface())),\n })\n )\n );\n return memoisedTransactionMetaParsed;\n};\n\nlet memoisedTransactionMessageInterfaceFields: object | undefined;\n/**\n * The fields for the transaction message interface\n */\nconst transactionMessageInterfaceFields = () => {\n if (!memoisedTransactionMessageInterfaceFields)\n memoisedTransactionMessageInterfaceFields = {\n addressTableLookups: list(type(addressTableLookup())),\n format: string(),\n header: object('TransactionJsonTransactionHeader', {\n numReadonlySignedAccounts: number(),\n numReadonlyUnsignedAccounts: number(),\n numRequiredSignatures: number(),\n }),\n recentBlockhash: string(),\n };\n return memoisedTransactionMessageInterfaceFields;\n};\n\nlet memoisedTransactionMessageInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction message\n */\nconst transactionMessageInterface = () => {\n if (!memoisedTransactionMessageInterface)\n memoisedTransactionMessageInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionMessageInterfaceFields(),\n },\n name: 'TransactionMessage',\n resolveType(message) {\n if (message.format === 'parsed') {\n return 'TransactionMessageParsed';\n }\n return 'TransactionMessageUnparsed';\n },\n });\n return memoisedTransactionMessageInterface;\n};\n\n/**\n * Builds a transaction message type\n * @param name The name of the transaction message type\n * @param description The description of the transaction message type\n * @param accountKeys The account keys of the transaction message type\n * @param instructions The instructions of the transaction message type\n * @returns The transaction message type as a GraphQL object\n */\nconst transactionMessageType = (\n name: string,\n description: string,\n accountKeys: { type: GraphQLList<GraphQLObjectType | GraphQLScalarType> },\n instructions: { type: GraphQLList<GraphQLInterfaceType | GraphQLObjectType | GraphQLScalarType> }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionMessageInterfaceFields(),\n accountKeys,\n instructions,\n },\n interfaces: [transactionMessageInterface()],\n name,\n });\n\nlet memoisedTransactionMessageUnparsed: GraphQLObjectType | undefined;\nconst transactionMessageUnparsed = () => {\n if (!memoisedTransactionMessageUnparsed)\n memoisedTransactionMessageUnparsed = transactionMessageType(\n 'TransactionMessageUnparsed',\n 'Non-parsed transaction message',\n list(string()),\n list(type(transactionInstruction()))\n );\n return memoisedTransactionMessageUnparsed;\n};\n\nlet memoisedTransactionMessageParsed: GraphQLObjectType | undefined;\nconst transactionMessageParsed = () => {\n if (!memoisedTransactionMessageParsed)\n memoisedTransactionMessageParsed = transactionMessageType(\n 'TransactionMessageParsed',\n 'Parsed transaction message',\n list(\n object('transactionMessageParsedAccountKey', {\n pubkey: string(),\n signer: boolean(),\n source: string(),\n writable: boolean(),\n })\n ),\n list(type(parsedTransactionInstructionInterface()))\n );\n return memoisedTransactionMessageParsed;\n};\n\nlet memoisedTransactionTransaction: GraphQLObjectType | undefined;\n/**\n * The standard transaction type, comprised of all the interfaces\n */\nconst transactionTransaction = () => {\n if (!memoisedTransactionTransaction)\n memoisedTransactionTransaction = new GraphQLObjectType({\n fields: {\n message: type(transactionMessageInterface()),\n signatures: list(string()),\n },\n name: 'TransactionTransaction',\n });\n return memoisedTransactionTransaction;\n};\n\nlet memoisedTransactionInterfaceFields: object | undefined;\n/**\n * The fields for the transaction interface\n */\nconst transactionInterfaceFields = () => {\n if (!memoisedTransactionInterfaceFields)\n memoisedTransactionInterfaceFields = {\n blockTime: bigint(),\n encoding: string(),\n meta: type(transactionMetaInterface()),\n slot: bigint(),\n };\n return memoisedTransactionInterfaceFields;\n};\n\nlet memoisedTransactionInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction\n */\nexport const transactionInterface = () => {\n if (!memoisedTransactionInterface)\n memoisedTransactionInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionInterfaceFields(),\n },\n name: 'Transaction',\n resolveType(transaction) {\n if (transaction.encoding === 'base58') {\n return 'TransactionBase58';\n }\n if (transaction.encoding === 'base64') {\n return 'TransactionBase64';\n }\n if (transaction.encoding === 'json') {\n return 'TransactionJson';\n }\n return 'TransactionJsonParsed';\n },\n });\n return memoisedTransactionInterface;\n};\n\n/**\n * Builds a transaction type\n * @param name The name of the transaction type\n * @param description The description of the transaction type\n * @param transaction The transaction of the transaction type\n * @returns The transaction type as a GraphQL object\n */\nconst transactionType = (\n name: string,\n description: string,\n transaction: { type: GraphQLScalarType | GraphQLObjectType }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionInterfaceFields(),\n transaction,\n },\n interfaces: [transactionInterface()],\n name,\n });\n\nlet memoisedTransactionBase58: GraphQLObjectType | undefined;\nconst transactionBase58 = () => {\n if (!memoisedTransactionBase58)\n memoisedTransactionBase58 = transactionType(\n 'TransactionBase58',\n 'A Solana transaction as base58 encoded data',\n string()\n );\n return memoisedTransactionBase58;\n};\n\nlet memoisedTransactionBase64: GraphQLObjectType | undefined;\nconst transactionBase64 = () => {\n if (!memoisedTransactionBase64)\n memoisedTransactionBase64 = transactionType(\n 'TransactionBase64',\n 'A Solana transaction as base64 encoded data',\n string()\n );\n return memoisedTransactionBase64;\n};\n\nlet memoisedTransactionJson: GraphQLObjectType | undefined;\nconst transactionJson = () => {\n if (!memoisedTransactionJson)\n memoisedTransactionJson = transactionType(\n 'TransactionJson',\n 'A Solana transaction as a JSON object',\n type(transactionTransaction())\n );\n return memoisedTransactionJson;\n};\n\nlet memoisedTransactionJsonParsed: GraphQLObjectType | undefined;\nconst transactionJsonParsed = () => {\n if (!memoisedTransactionJsonParsed)\n memoisedTransactionJsonParsed = transactionType(\n 'TransactionJsonParsed',\n 'A Solana transaction as a parsed JSON object',\n type(transactionTransaction())\n );\n return memoisedTransactionJsonParsed;\n};\n\nlet memoisedTransactionTypes: GraphQLObjectType[] | undefined;\nexport const transactionTypes = () => {\n if (!memoisedTransactionTypes)\n memoisedTransactionTypes = [\n partiallyDecodedTransactionInstruction(),\n ...parsedInstructionsAddressLookupTable(),\n ...parsedInstructionsBpfLoader(),\n ...parsedInstructionsBpfUpgradeableLoader(),\n ...parsedInstructionsStake(),\n ...parsedInstructionsSplAssociatedToken(),\n parsedInstructionSplMemo(),\n ...parsedInstructionsSplToken(),\n ...parsedInstructionsSystem(),\n ...parsedInstructionsVote(),\n transactionMetaUnparsed(),\n transactionMetaParsed(),\n transactionMessageUnparsed(),\n transactionMessageParsed(),\n transactionBase58(),\n transactionBase64(),\n transactionJson(),\n transactionJsonParsed(),\n ];\n return memoisedTransactionTypes;\n};\n","import { Commitment } from '@solana/rpc-types';\nimport { TransactionSignature, TransactionVersion } from '@solana/transactions';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { commitmentInputType, maxSupportedTransactionVersionInputType, transactionEncodingInputType } from '../inputs';\nimport { nonNull, string, type } from '../picks';\nimport { transactionInterface } from './types';\n\nexport type TransactionQueryArgs = {\n signature: TransactionSignature;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: Exclude<TransactionVersion, 'legacy'>;\n};\n\n/**\n * Transaction root query for GraphQL\n */\nexport const transactionQuery = () => ({\n transaction: {\n args: {\n commitment: type(commitmentInputType()),\n encoding: type(transactionEncodingInputType()),\n maxSupportedTransactionVersion: type(maxSupportedTransactionVersionInputType()),\n signature: nonNull(string()),\n },\n resolve: (_parent: unknown, args: TransactionQueryArgs, context: RpcGraphQLContext) =>\n context.resolveTransaction(args),\n type: transactionInterface(),\n },\n});\n","import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\nimport { TransactionVersion } from '@solana/transactions';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { blockTransactionDetailsInputType, commitmentInputType, transactionEncodingInputType } from '../inputs';\nimport { bigint, boolean, nonNull, string, type } from '../picks';\nimport { blockInterface } from './types';\n\nexport type BlockQueryArgs = {\n slot: Slot;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: Exclude<TransactionVersion, 'legacy'>;\n rewards?: boolean;\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\n\n/**\n * Block root query for GraphQL\n */\nexport const blockQuery = () => ({\n block: {\n args: {\n commitment: type(commitmentInputType()),\n encoding: type(transactionEncodingInputType()),\n maxSupportedTransactionVersion: string(),\n rewards: boolean(),\n slot: nonNull(bigint()),\n transactionDetails: type(blockTransactionDetailsInputType()),\n },\n resolve: (_parent: unknown, args: BlockQueryArgs, context: RpcGraphQLContext) => context.resolveBlock(args),\n type: blockInterface(),\n },\n});\n","import { Base58EncodedAddress } from '@solana/addresses';\nimport {\n DataSlice,\n GetProgramAccountsDatasizeFilter,\n GetProgramAccountsMemcmpFilter,\n Slot,\n} from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\nimport { GraphQLList } from 'graphql';\n\nimport { RpcGraphQLContext } from '../../context';\nimport {\n accountEncodingInputType,\n commitmentInputType,\n dataSliceInputType,\n programAccountFilterInputType,\n} from '../inputs';\nimport { bigint, list, nonNull, string, type } from '../picks';\nimport { programAccount } from './types';\n\nexport type ProgramAccountsQueryArgs = {\n programAddress: Base58EncodedAddress;\n commitment?: Commitment;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters: (GetProgramAccountsMemcmpFilter | GetProgramAccountsDatasizeFilter)[];\n minContextSlot?: Slot;\n withContext?: boolean;\n};\n\n/**\n * Program accounts root query for GraphQL\n */\nexport const programAccountsQuery = () => ({\n programAccounts: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n filters: list(type(programAccountFilterInputType())),\n minContextSlot: bigint(),\n programAddress: nonNull(string()),\n withContext: string(),\n },\n resolve: (_parent: unknown, args: ProgramAccountsQueryArgs, context: RpcGraphQLContext) =>\n context.resolveProgramAccounts(args),\n type: new GraphQLList(programAccount()),\n },\n});\n","import { GraphQLObjectType } from 'graphql';\n\nimport { accountInterface } from '../account';\nimport { string, type } from '../picks';\n\nexport const programAccount = () =>\n new GraphQLObjectType({\n fields: {\n account: type(accountInterface()),\n pubkey: string(),\n },\n name: 'ProgramAccount',\n });\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/rpc.ts","../src/cache.ts","../src/context.ts","../src/schema/inputs.ts","../src/schema/picks.ts","../src/schema/scalars.ts","../src/schema/account/types.ts","../src/schema/account/query.ts","../src/schema/block/types.ts","../src/schema/transaction/types.ts","../src/schema/transaction/query.ts","../src/schema/block/query.ts","../src/schema/program-accounts/query.ts"],"names":["GraphQLObjectType","value","GraphQLEnumType","GraphQLInputObjectType","GraphQLInterfaceType","GraphQLUnionType","GraphQLList"],"mappings":";AAEA,SAAS,SAAS,qBAAAA,oBAAmB,qBAA6B;;;ACOlE,IAAM,iBAAiB,CAAC,UACpB,KAAK,UAAU,OAAO,CAAC,GAAGC,WAAU;AAChC,MAAI,OAAOA,WAAU,UAAU;AAC3B,WAAOA,OAAM,SAAS,IAAI;AAAA,EAC9B;AACA,SAAOA;AACX,CAAC;AAEL,IAAM,aAAa,CAAC,UAChB,KAAK,MAAM,OAAO,CAAC,GAAGA,WAAU;AAC5B,MAAI,OAAOA,WAAU,YAAY,QAAQ,KAAKA,MAAK,GAAG;AAClD,WAAO,OAAOA,OAAM,MAAM,GAAG,EAAE,CAAC;AAAA,EACpC;AACA,SAAOA;AACX,CAAC;AAEL,IAAM,WAAW,CAAC,KAAsB,cACpC,gBAAgB,eAAe,GAAG,CAAC,IAAI,eAAe,SAAS,CAAC;AAE7D,SAAS,qBAAmC;AAC/C,SAAO,OACD;AAAA;AAAA,IAEI,OAAO,MAAM;AAET,eAAS,IAAI,aAAa,SAAS,GAAG,KAAK,GAAG,KAAK;AAC/C,cAAM,aAAa,aAAa,IAAI,CAAC;AACrC,YAAI,cAAc,WAAW,WAAW,eAAe,GAAG;AACtD,uBAAa,WAAW,UAAU;AAAA,QACtC;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,KAAK,CAAC,KAAK,cAAc;AACrB,YAAM,QAAQ,aAAa,QAAQ,SAAS,KAAK,SAAS,CAAC;AAC3D,aAAO,UAAU,OAAO,OAAO,WAAW,KAAK;AAAA,IACnD;AAAA,IACA,QAAQ,CAAC,KAAK,WAAW,UAAU;AAC/B,mBAAa,QAAQ,SAAS,KAAK,SAAS,GAAG,eAAe,KAAK,CAAC;AAAA,IACxE;AAAA,EACJ,IACA;AAAA;AAAA,IAEI,OAAO,MAAM;AACT,aAAO,KAAK,aAAa,EAAE,QAAQ,SAAO,OAAO,cAAc,GAAG,CAAC;AAAA,IACvE;AAAA,IACA,KAAK,CAAC,KAAK,cAAc;AACrB,YAAM,QAAQ,cAAc,SAAS,KAAK,SAAS,CAAC;AACpD,aAAO,UAAU,SAAY,OAAO,WAAW,KAAK;AAAA,IACxD;AAAA,IACA,QAAQ,CAAC,KAAK,WAAW,UAAU;AAC/B,oBAAc,SAAS,KAAK,SAAS,CAAC,IAAI,eAAe,KAAK;AAAA,IAClE;AAAA,EACJ;AACV;;;AC1CA,eAAe,eACX,EAAE,SAAS,WAAW,cAAc,GAAG,OAAO,GAC9C,OACA,KACA,MACF;AAEE,MAAI,QAAQ,KAAK,WAAW,CAAC,EAAE,cAAc;AACzC,UAAM,eAAe,KAAK,WAAW,CAAC,EAAE;AACxC,UAAM,kBAAkB,aAAa,WAAW,IAAI,WAAS;AACzD,UAAI,MAAM,SAAS,SAAS;AACxB,eAAO,MAAM,KAAK;AAAA,MACtB;AACA,aAAO;AAAA,IACX,CAAC;AACD,QAAI,mBAAmB,gBAAgB,WAAW,KAAK,gBAAgB,CAAC,MAAM,WAAW;AACrF,aAAO,EAAE,QAAQ;AAAA,IACrB;AAAA,EACJ;AAEA,QAAM,gBAAgB,EAAE,UAAU,GAAG,OAAO;AAE5C,QAAM,SAAS,MAAM,IAAI,SAAS,aAAa;AAC/C,MAAI,WAAW,MAAM;AACjB,WAAO;AAAA,EACX;AAEA,QAAM,UAAU,MAAM,IACjB,eAAe,SAAS,aAAkE,EAC1F,KAAK,EACL,KAAK,SAAO,IAAI,KAAK,EACrB,MAAM,OAAK;AACR,UAAM;AAAA,EACV,CAAC;AAEL,MAAI,YAAY,MAAM;AAGlB,WAAO;AAAA,MACH;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,CAAC,MAAM,gBAAgB,IAAI,MAAM,QAAQ,QAAQ,IAAI,IACrD,aAAa,eACT,CAAC,QAAQ,KAAK,CAAC,GAAG,QAAQ,IAC1B,CAAC,QAAQ,KAAK,CAAC,GAAG,QAAQ,IAC9B,CAAC,QAAQ,MAAM,YAAY;AACjC,QAAM,gBAAgB;AAAA,IAClB,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACd;AAEA,QAAM,OAAO,SAAS,eAAe,aAAa;AAElD,SAAO;AACX;AAEA,eAAe,aACX,EAAE,MAAM,WAAW,cAAc,GAAG,OAAO,GAC3C,OACA,KACF;AACE,QAAM,gBAAgB,EAAE,UAAU,GAAG,OAAO;AAE5C,QAAM,SAAS,MAAM,IAAI,MAAM,MAAM;AACrC,MAAI,WAAW,MAAM;AACjB,WAAO;AAAA,EACX;AAEA,QAAM,QAAQ,MAAM,IAAI,SAAS,MAAM,aAA4D,EAAE,KAAK;AAE1G,MAAI,UAAU,MAAM;AAChB,WAAO;AAAA,EACX;AAEA,QAAM,OAAO,MAAM,QAAQ,KAAK;AAEhC,SAAO;AACX;AAEA,eAAe,uBACX,EAAE,gBAAgB,WAAW,cAAc,GAAG,OAAO,GACrD,OACA,KACF;AACE,QAAM,gBAAgB,EAAE,UAAU,GAAG,OAAO;AAE5C,QAAM,SAAS,MAAM,IAAI,gBAAgB,aAAa;AACtD,MAAI,WAAW,MAAM;AACjB,WAAO;AAAA,EACX;AAEA,QAAM,kBAAkB,MAAM,IACzB,mBAAmB,gBAAgB,aAAsE,EACzG,KAAK,EACL,KAAK,SAAO;AACT,QAAI,WAAW,KAAK;AAChB,aAAO,IAAI;AAAA,IACf;AACA,WAAO;AAAA,EACX,CAAC,EACA,MAAM,OAAK;AACR,UAAM;AAAA,EACV,CAAC;AAEL,QAAM,gBAAgB,gBAAgB,IAAI,oBAAkB;AACxD,UAAM,CAAC,MAAM,gBAAgB,IAAI,MAAM,QAAQ,eAAe,QAAQ,IAAI,IACpE,aAAa,eACT,CAAC,eAAe,QAAQ,KAAK,CAAC,GAAG,QAAQ,IACzC,CAAC,eAAe,QAAQ,KAAK,CAAC,GAAG,QAAQ,IAC7C,CAAC,eAAe,QAAQ,MAAM,YAAY;AAChD,UAAM,SAAS,eAAe;AAC9B,WAAO;AAAA,MACH,GAAG,eAAe;AAAA,MAClB,SAAS;AAAA,MACT;AAAA,MACA,UAAU;AAAA,IACd;AAAA,EACJ,CAAC;AAED,QAAM,OAAO,gBAAgB,eAAe,aAAa;AAEzD,SAAO;AACX;AAEA,eAAe,mBACX,EAAE,WAAW,WAAW,cAAc,GAAG,OAAO,GAChD,OACA,KACF;AACE,QAAM,gBAAgB,EAAE,UAAU,GAAG,OAAO;AAE5C,QAAM,SAAS,MAAM,IAAI,WAAW,aAAa;AACjD,MAAI,WAAW,MAAM;AACjB,WAAO;AAAA,EACX;AAEA,QAAM,cAAc,MAAM,IACrB,eAAe,WAAW,aAAkE,EAC5F,KAAK;AAEV,MAAI,gBAAgB,MAAM;AACtB,WAAO;AAAA,EACX;AAEA,QAAM,CAAC,iBAAiB,kBAAkB,cAAc,IAAI,MAAM,QAAQ,YAAY,WAAW,IAC3F,aAAa,eACT,CAAC,YAAY,YAAY,CAAC,GAAG,UAAU,UAAU,IACjD,CAAC,YAAY,YAAY,CAAC,GAAG,UAAU,UAAU,IACrD,aAAa,eACb,CAAC,YAAY,aAAa,UAAU,QAAQ,IAC5C,CAAC,YAAY,aAAa,UAAU,UAAU;AACpD,MAAI,YAAY,MAAM;AAElB,IAAC,YAAY,KAA0D,QAAQ,IAAI;AAAA,EACvF;AACA,MAAI,gBAAgB,SAAS;AAEzB,IAAC,gBAAgB,QAA6D,QAAQ,IAAI;AAAA,EAC9F;AACA,QAAM,gBAAgB;AAAA,IAClB,GAAG;AAAA,IACH,UAAU;AAAA,IACV,aAAa;AAAA,EACjB;AAEA,QAAM,OAAO,WAAW,eAAe,aAAa;AAEpD,SAAO;AACX;AAEO,SAAS,2BAA2B,KAA+C;AACtF,QAAM,QAAQ,mBAAmB;AACjC,SAAO;AAAA,IACH;AAAA,IACA,eAAe,MAAM,MAAO;AACxB,aAAO,eAAe,MAAM,KAAK,OAAO,KAAK,KAAK,IAAI;AAAA,IAC1D;AAAA,IACA,aAAa,MAAM;AACf,aAAO,aAAa,MAAM,KAAK,OAAO,KAAK,GAAG;AAAA,IAClD;AAAA,IACA,uBAAuB,MAAM;AACzB,aAAO,uBAAuB,MAAM,KAAK,OAAO,KAAK,GAAG;AAAA,IAC5D;AAAA,IACA,mBAAmB,MAAM;AACrB,aAAO,mBAAmB,MAAM,KAAK,OAAO,KAAK,GAAG;AAAA,IACxD;AAAA,IACA;AAAA,EACJ;AACJ;;;ACpNA,SAAS,mBAAAC,kBAAiB,0BAAAC,+BAA8B;;;ACAxD;AAAA,EACI;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OAEG;;;ACbP,SAAS,mBAAmB,YAAY;AAEjC,IAAM,eAAe,MACxB,IAAI,kBAAkB;AAAA,EAClB,MAAM;AAAA,EAEN,aAAa,KAAoB;AAC7B,QAAI,IAAI,SAAS,KAAK,QAAQ;AAC1B,aAAO,OAAO,IAAI,KAAK;AAAA,IAC3B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,WAAW,OAAe;AACtB,WAAO,OAAO,KAAe;AAAA,EACjC;AAAA,EAEA,UAAU,OAAe;AACrB,WAAO,OAAO,KAAe;AAAA,EACjC;AACJ,CAAC;;;ADKE,SAAS,UAAU;AACtB,SAAO,EAAE,MAAM,eAAe;AAClC;AAEA,IAAI;AACG,SAAS,SAAS;AACrB,MAAI,CAAC;AAAgB,qBAAiB,EAAE,MAAM,aAAa,EAAE;AAC7D,SAAO;AACX;AAKO,SAAS,SAAS;AACrB,SAAO,EAAE,MAAM,WAAW;AAC9B;AAEO,SAAS,SAAS;AACrB,SAAO,EAAE,MAAM,cAAc;AACjC;AAEO,SAAS,KACZ,WAGF;AACE,SAAO;AAAA,IACH,MAAM;AAAA,EACV;AACJ;AAEO,SAAS,QAAwC,WAItD;AACE,SAAO;AAAA,IACH,MAAM,IAAI,eAAe,UAAU,IAAI;AAAA,EAC3C;AACJ;AAEO,SAAS,KAAuC,aAIrD;AACE,SAAO;AAAA,IACH,MAAM,IAAI,YAAY,YAAY,IAAI;AAAA,EAC1C;AACJ;AAIO,SAAS,OACZ,MACA,QAC2B;AAC3B,SAAO;AAAA,IACH,MAAM,IAAI,kBAAkB;AAAA,MACxB;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;;;ADpFA,IAAI;AACG,IAAM,2BAA2B,MAAM;AAC1C,MAAI,CAAC;AACD,uCAAmC,IAAID,iBAAgB;AAAA,MACnD,MAAM;AAAA,MACN,QAAQ;AAAA,QACJ,QAAQ;AAAA,UACJ,OAAO;AAAA,QACX;AAAA,QACA,QAAQ;AAAA,UACJ,OAAO;AAAA,QACX;AAAA,QACA,YAAY;AAAA,UACR,OAAO;AAAA,QACX;AAAA,QACA,YAAY;AAAA,UACR,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,mCAAmC,MAAM;AAClD,MAAI,CAAC;AACD,+CAA2C,IAAIA,iBAAgB;AAAA,MAC3D,MAAM;AAAA,MACN,QAAQ;AAAA,QACJ,UAAU;AAAA,UACN,OAAO;AAAA,QACX;AAAA,QACA,MAAM;AAAA,UACF,OAAO;AAAA,QACX;AAAA,QACA,MAAM;AAAA,UACF,OAAO;AAAA,QACX;AAAA,QACA,YAAY;AAAA,UACR,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,sBAAsB,MAAM;AACrC,MAAI,CAAC;AACD,kCAA8B,IAAIA,iBAAgB;AAAA,MAC9C,MAAM;AAAA,MACN,QAAQ;AAAA,QACJ,WAAW;AAAA,UACP,OAAO;AAAA,QACX;AAAA,QACA,WAAW;AAAA,UACP,OAAO;AAAA,QACX;AAAA,QACA,WAAW;AAAA,UACP,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,qBAAqB,MAAM;AACpC,MAAI,CAAC;AACD,iCAA6B,IAAIC,wBAAuB;AAAA,MACpD,QAAQ;AAAA,QACJ,QAAQ,OAAO;AAAA,QACf,QAAQ,OAAO;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,0CAA0C,MAAM;AACzD,MAAI,CAAC;AACD,sDAAkD,IAAID,iBAAgB;AAAA,MAClE,MAAM;AAAA,MACN,QAAQ;AAAA,QACJ,QAAQ;AAAA,UACJ,OAAO;AAAA,QACX;AAAA,QACA,MAAM;AAAA,UACF,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,gCAAgC,MAAM;AAC/C,MAAI,CAAC;AACD,4CAAwC,IAAIC,wBAAuB;AAAA,MAC/D,QAAQ;AAAA,QACJ,OAAO,OAAO;AAAA,QACd,UAAU,OAAO;AAAA,QACjB,UAAU,OAAO;AAAA,QACjB,QAAQ,OAAO;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,+BAA+B,MAAM;AAC9C,MAAI,CAAC;AACD,2CAAuC,IAAID,iBAAgB;AAAA,MACvD,MAAM;AAAA,MACN,QAAQ;AAAA,QACJ,QAAQ;AAAA,UACJ,OAAO;AAAA,QACX;AAAA,QACA,QAAQ;AAAA,UACJ,OAAO;AAAA,QACX;AAAA,QACA,MAAM;AAAA,UACF,OAAO;AAAA,QACX;AAAA,QACA,YAAY;AAAA,UACR,OAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,CAAC;AACL,SAAO;AACX;;;AGxIA,SAAS,wBAAAE,uBAAsB,qBAAAJ,0BAA4C;AAK3E,IAAI;AACG,IAAM,kBAAkB,MAAM;AACjC,MAAI,CAAC,yBAAyB;AAC1B,8BAA0B,IAAIA,mBAAkB;AAAA,MAC5C,QAAQ;AAAA,QACJ,QAAQ,OAAO;AAAA,QACf,UAAU,OAAO;AAAA,QACjB,UAAU,OAAO;AAAA,QACjB,gBAAgB,OAAO;AAAA,MAC3B;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AAAA,EACL;AACA,SAAO;AACX;AAKA,IAAI;AACJ,IAAM,yBAAyB,MAAM;AACjC,MAAI,CAAC,gCAAgC;AACjC,qCAAiC;AAAA,MAC7B,SAAS,OAAO;AAAA,MAChB,UAAU,OAAO;AAAA,MACjB,YAAY,QAAQ;AAAA,MACpB,UAAU,OAAO;AAAA,MACjB,WAAW,OAAO;AAAA,IACtB;AAAA,EACJ;AACA,SAAO;AACX;AAKA,IAAI;AACG,IAAM,mBAAmB,MAA4B;AACxD,MAAI,CAAC,0BAA0B;AAC3B,+BAA2B,IAAII,sBAAqB;AAAA,MAChD,aAAa;AAAA,MACb,QAAQ,OAAO;AAAA,QACX,GAAG,uBAAuB;AAAA,QAC1B,OAAO,KAAK,iBAAiB,CAAC;AAAA,MAClC;AAAA,MACA,MAAM;AAAA,MACN,YAAY,SAAS;AACjB,YAAI,QAAQ,aAAa,UAAU;AAC/B,iBAAO;AAAA,QACX;AACA,YAAI,QAAQ,aAAa,UAAU;AAC/B,iBAAO;AAAA,QACX;AACA,YAAI,QAAQ,aAAa,eAAe;AACpC,iBAAO;AAAA,QACX;AACA,YAAI,QAAQ,aAAa,cAAc;AACnC,cAAI,QAAQ,KAAK,OAAO,SAAS,UAAU,QAAQ,KAAK,YAAY,aAAa;AAC7E,mBAAO;AAAA,UACX;AACA,cAAI,QAAQ,KAAK,OAAO,SAAS,aAAa,QAAQ,KAAK,YAAY,aAAa;AAChF,mBAAO;AAAA,UACX;AACA,cAAI,QAAQ,KAAK,YAAY,SAAS;AAClC,mBAAO;AAAA,UACX;AACA,cAAI,QAAQ,KAAK,YAAY,SAAS;AAClC,mBAAO;AAAA,UACX;AACA,cAAI,QAAQ,KAAK,OAAO,SAAS,UAAU,QAAQ,KAAK,YAAY,QAAQ;AACxE,mBAAO;AAAA,UACX;AACA,cAAI,QAAQ,KAAK,OAAO,SAAS,iBAAiB,QAAQ,KAAK,YAAY,wBAAwB;AAC/F,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AAAA,EACL;AACA,SAAO;AACX;AAUA,IAAM,cAAc,CAChB,MACA,aACA,SAEA,IAAIJ,mBAAkB;AAAA,EAClB;AAAA,EACA,QAAQ;AAAA,IACJ,GAAG,uBAAuB;AAAA,IAC1B;AAAA;AAAA,IAEA,OAAO;AAAA,MACH,MAAM;AAAA,QACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,QACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,QACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,QACzC,gBAAgB,OAAO;AAAA,MAC3B;AAAA,MACA,SAAS,CAAC,QAAQ,MAAM,SAAS,SAC7B,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,MACnE,MAAM,iBAAiB;AAAA,IAC3B;AAAA,EACJ;AAAA,EACA,YAAY,CAAC,iBAAiB,CAAC;AAAA,EAC/B;AACJ,CAAC;AAWL,IAAM,wBAAwB,CAAC,MAAc,qBACzC,OAAO,OAAO,QAAQ;AAAA,EAClB,QAAQ,OAAO,OAAO,cAAc;AAAA,IAChC,MAAM,OAAO,OAAO,kBAAkB,gBAAgB;AAAA,IACtD,MAAM,OAAO;AAAA,EACjB,CAAC;AAAA,EACD,SAAS,OAAO;AAAA,EAChB,OAAO,OAAO;AAClB,CAAC;AAEL,IAAI;AACJ,IAAM,gBAAgB,MAAM;AACxB,MAAI,CAAC;AACD,4BAAwB,YAAY,iBAAiB,6CAA6C,OAAO,CAAC;AAC9G,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,gBAAgB,MAAM;AACxB,MAAI,CAAC;AACD,4BAAwB,YAAY,iBAAiB,6CAA6C,OAAO,CAAC;AAC9G,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,oBAAoB,MAAM;AAC5B,MAAI,CAAC;AACD,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACX;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,sBAAsB,MAAM;AAC9B,MAAI,CAAC;AACD,kCAA8B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,sBAAsB,SAAS;AAAA;AAAA,QAE3B,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,WAAW,OAAO;AAAA,QAClB,eAAe,OAAO,sBAAsB;AAAA,UACxC,sBAAsB,OAAO;AAAA,QACjC,CAAC;AAAA,MACL,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,qBAAqB,MAAM;AAC7B,MAAI,CAAC;AACD,iCAA6B;AAAA,MACzB;AAAA,MACA;AAAA,MACA,sBAAsB,eAAe;AAAA,QACjC,WAAW,KAAK,OAAO,CAAC;AAAA;AAAA,QAExB,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,kBAAkB,OAAO;AAAA,QACzB,kBAAkB,OAAO;AAAA,QACzB,4BAA4B,OAAO;AAAA,MACvC,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,cAAc,MAAM;AACtB,MAAI,CAAC;AACD,0BAAsB;AAAA,MAClB;AAAA,MACA;AAAA,MACA,sBAAsB,QAAQ;AAAA,QAC1B,UAAU,OAAO;AAAA,QACjB,iBAAiB,OAAO;AAAA,QACxB,eAAe,QAAQ;AAAA;AAAA,QAEvB,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ,OAAO;AAAA,MACnB,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,sBAAsB,MAAM;AAC9B,MAAI,CAAC;AACD,kCAA8B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,sBAAsB,gBAAgB;AAAA,QAClC,UAAU,QAAQ;AAAA,QAClB,MAAM,OAAO;AAAA;AAAA,QAEb,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,OAAO,OAAO;AAAA,QACd,aAAa,KAAK,gBAAgB,CAAC;AAAA,MACvC,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,sBAAsB,MAAM;AAC9B,MAAI,CAAC;AACD,kCAA8B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA,sBAAsB,SAAS;AAAA,QAC3B,MAAM,OAAO,aAAa;AAAA,UACtB,YAAY,OAAO,uBAAuB;AAAA;AAAA,YAEtC,QAAQ;AAAA,cACJ,MAAM;AAAA,gBACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,gBACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,gBACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,gBACzC,gBAAgB,OAAO;AAAA,cAC3B;AAAA;AAAA,cAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,cACpE,MAAM,iBAAiB;AAAA,YAC3B;AAAA;AAAA,YAEA,YAAY;AAAA,cACR,MAAM;AAAA,gBACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,gBACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,gBACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,gBACzC,gBAAgB,OAAO;AAAA,cAC3B;AAAA;AAAA,cAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,WAAW,GAAG,IAAI;AAAA,cACxE,MAAM,iBAAiB;AAAA,YAC3B;AAAA,UACJ,CAAC;AAAA,UACD,QAAQ,OAAO,mBAAmB;AAAA;AAAA,YAE9B,WAAW;AAAA,cACP,MAAM;AAAA,gBACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,gBACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,gBACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,gBACzC,gBAAgB,OAAO;AAAA,cAC3B;AAAA;AAAA,cAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,cACvE,MAAM,iBAAiB;AAAA,YAC3B;AAAA,YACA,OAAO,OAAO;AAAA,YACd,eAAe,OAAO;AAAA,UAC1B,CAAC;AAAA,UACD,mBAAmB,OAAO;AAAA,QAC9B,CAAC;AAAA,QACD,OAAO,OAAO,cAAc;AAAA,UACxB,iBAAiB,OAAO;AAAA,UACxB,YAAY,OAAO,wBAAwB;AAAA,YACvC,iBAAiB,OAAO;AAAA,YACxB,mBAAmB,OAAO;AAAA,YAC1B,OAAO,OAAO;AAAA;AAAA,YAEd,OAAO;AAAA,cACH,MAAM;AAAA,gBACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,gBACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,gBACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,gBACzC,gBAAgB,OAAO;AAAA,cAC3B;AAAA;AAAA,cAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,cACnE,MAAM,iBAAiB;AAAA,YAC3B;AAAA,YACA,oBAAoB,OAAO;AAAA,UAC/B,CAAC;AAAA,QACL,CAAC;AAAA,MACL,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,qBAAqB,MAAM;AAC7B,MAAI,CAAC;AACD,iCAA6B;AAAA,MACzB;AAAA,MACA;AAAA,MACA,sBAAsB,QAAQ;AAAA,QAC1B,kBAAkB;AAAA,UACd,OAAO,uBAAuB;AAAA;AAAA,YAE1B,iBAAiB;AAAA,cACb,MAAM;AAAA,gBACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,gBACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,gBACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,gBACzC,gBAAgB,OAAO;AAAA,cAC3B;AAAA;AAAA,cAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,gBAAgB,GAAG,IAAI;AAAA,cAC7E,MAAM,iBAAiB;AAAA,YAC3B;AAAA,YACA,OAAO,OAAO;AAAA,UAClB,CAAC;AAAA,QACL;AAAA;AAAA,QAEA,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA,QACnB,cAAc;AAAA,UACV,OAAO,oBAAoB;AAAA,YACvB,SAAS,OAAO;AAAA,YAChB,OAAO,OAAO;AAAA,YACd,iBAAiB,OAAO;AAAA,UAC5B,CAAC;AAAA,QACL;AAAA,QACA,eAAe,OAAO,qBAAqB;AAAA,UACvC,MAAM,OAAO;AAAA,UACb,WAAW,OAAO;AAAA,QACtB,CAAC;AAAA;AAAA,QAED,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,WAAW,GAAG,IAAI;AAAA,UACxE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,KAAK,OAAO,CAAC;AAAA,QAC1B,UAAU,OAAO;AAAA,QACjB,OAAO;AAAA,UACH,OAAO,YAAY;AAAA,YACf,mBAAmB,OAAO;AAAA,YAC1B,MAAM,OAAO;AAAA,UACjB,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AACG,IAAM,eAAe,MAAM;AAC9B,MAAI,CAAC;AACD,2BAAuB;AAAA,MACnB,cAAc;AAAA,MACd,cAAc;AAAA,MACd,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,MACnB,YAAY;AAAA,MACZ,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,IACvB;AACJ,SAAO;AACX;;;ACpbO,IAAM,eAAe,OAAO;AAAA,EAC/B,SAAS;AAAA,IACL,MAAM;AAAA,MACF,SAAS,QAAQ,OAAO,CAAC;AAAA,MACzB,YAAY,KAAK,oBAAoB,CAAC;AAAA,MACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,MACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,MACzC,gBAAgB,OAAO;AAAA,IAC3B;AAAA;AAAA,IAEA,SAAS,CAAC,SAAkB,MAAwB,SAA4B,SAC5E,QAAQ,eAAe,MAAM,IAAI;AAAA,IACrC,MAAM,iBAAiB;AAAA,EAC3B;AACJ;;;AClCA,SAAS,wBAAAI,uBAAsB,qBAAAJ,0BAAyB;;;ACAxD,SAAS,wBAAAI,uBAAmC,qBAAAJ,oBAAsC,oBAAAK,yBAAwB;AAM1G,IAAI;AACG,IAAM,eAAe,MAAM;AAC9B,MAAI,CAAC;AACD,2BAAuB,IAAIL,mBAAkB;AAAA,MACzC,QAAQ;AAAA,QACJ,cAAc,OAAO;AAAA;AAAA,QAErB,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,WAAW,OAAO;AAAA,QAClB,gBAAgB,OAAO;AAAA,MAC3B;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,oBAAoB,MAAM;AACnC,MAAI,CAAC;AACD,gCAA4B,IAAIK,kBAAiB;AAAA,MAC7C,MAAM;AAAA,MACN,OAAO;AAAA,QACH,IAAIL,mBAAkB;AAAA,UAClB,QAAQ;AAAA,YACJ,KAAK,OAAO;AAAA,UAChB;AAAA,UACA,MAAM;AAAA,QACV,CAAC;AAAA,QACD,IAAIA,mBAAkB;AAAA,UAClB,QAAQ;AAAA,YACJ,IAAI,OAAO;AAAA,UACf;AAAA,UACA,MAAM;AAAA,QACV,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,SAAS,MAAM;AACxB,MAAI,CAAC;AACD,qBAAiB,IAAIA,mBAAkB;AAAA,MACnC,QAAQ;AAAA,QACJ,YAAY,OAAO;AAAA,QACnB,UAAU,OAAO;AAAA,QACjB,aAAa,OAAO;AAAA,QACpB,QAAQ,OAAO;AAAA,QACf,YAAY,OAAO;AAAA,MACvB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,qBAAqB,MAAM;AAC7B,MAAI,CAAC;AACD,iCAA6B,IAAIA,mBAAkB;AAAA,MAC/C,QAAQ;AAAA,QACJ,YAAY,OAAO;AAAA,QACnB,iBAAiB,KAAK,OAAO,CAAC;AAAA,QAC9B,iBAAiB,KAAK,OAAO,CAAC;AAAA,MAClC;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,aAAa,MAAM;AAC5B,MAAI,CAAC;AACD,yBAAqB,IAAIA,mBAAkB;AAAA,MACvC,QAAQ;AAAA,QACJ,MAAM,OAAO;AAAA,QACb,WAAW,OAAO;AAAA,MACtB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,yBAAyB,MAAM;AACjC,MAAI,CAAC;AACD,qCAAiC,IAAIA,mBAAkB;AAAA,MACnD,QAAQ;AAAA,QACJ,UAAU,KAAK,OAAO,CAAC;AAAA,QACvB,MAAM,OAAO;AAAA,QACb,gBAAgB,OAAO;AAAA,MAC3B;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,iCAAiC,MAAM;AAChD,MAAI,CAAC;AACD,6CAAyC,IAAIA,mBAAkB;AAAA,MAC3D,QAAQ;AAAA,QACJ,UAAU,KAAK,OAAO,CAAC;AAAA;AAAA,QACvB,UAAU,KAAK,OAAO,CAAC;AAAA;AAAA,MAC3B;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,wCAAwC,MAAM;AAChD,MAAI,CAAC;AACD,oDAAgD,IAAII,sBAAqB;AAAA,MACrE,QAAQ;AAAA,QACJ,WAAW,OAAO;AAAA,MACtB;AAAA,MACA,MAAM;AAAA,MACN,YAAY,aAAa;AACrB,YAAI,YAAY,YAAY,wBAAwB;AAChD,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,YAAY,cAAc;AACtC,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,YAAY,0BAA0B;AAClD,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,wBAAwB;AAClD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,WAAW;AACrC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gBAAgB;AAC1C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,YAAY,gCAAgC;AACxD,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,YAAY,YAAY;AACpC,iBAAO;AAAA,QACX;AACA,YAAI,YAAY,YAAY,aAAa;AACrC,cAAI,YAAY,KAAK,SAAS,kBAAkB;AAC5C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,mBAAmB;AAC7C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,WAAW;AACrC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gBAAgB;AAC1C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,QAAQ;AAClC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gBAAgB;AAC1C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,eAAe;AACzC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,mBAAmB;AAC7C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,kBAAkB;AAC5C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,eAAe;AACzC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,sBAAsB;AAChD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,4BAA4B;AACtD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gCAAgC;AAC1D,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,YAAY,SAAS;AACjC,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,aAAa;AACvC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,aAAa;AACvC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,SAAS;AACnC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,4BAA4B;AACtD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,wBAAwB;AAClD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,YAAY,UAAU;AAClC,cAAI,YAAY,KAAK,SAAS,iBAAiB;AAC3C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,UAAU;AACpC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,wBAAwB;AAClD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,0BAA0B;AACpD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,uBAAuB;AACjD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,kBAAkB;AAC5C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,YAAI,YAAY,YAAY,QAAQ;AAChC,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,aAAa;AACvC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,qBAAqB;AAC/C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,4BAA4B;AACtD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,QAAQ;AAClC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,mBAAmB;AAC7C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,yBAAyB;AACnD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,0BAA0B;AACpD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,gCAAgC;AAC1D,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,YAAY;AACtC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,2BAA2B;AACrD,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,cAAc;AACxC,mBAAO;AAAA,UACX;AACA,cAAI,YAAY,KAAK,SAAS,oBAAoB;AAC9C,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAYA,IAAM,mCAAmC,CAAC,MAAc,qBACpD,IAAIJ,mBAAkB;AAAA,EAClB,QAAQ;AAAA,IACJ,QAAQ,OAAO,OAAO,UAAU;AAAA,MAC5B,MAAM,OAAO,OAAO,cAAc,gBAAgB;AAAA,MAClD,MAAM,OAAO;AAAA,IACjB,CAAC;AAAA,IACD,SAAS,OAAO;AAAA,IAChB,WAAW,OAAO;AAAA,EACtB;AAAA,EACA,YAAY,CAAC,sCAAsC,CAAC;AAAA,EACpD;AACJ,CAAC;AAEL,IAAI;AACJ,IAAM,yCAAyC,MAAM;AACjD,MAAI,CAAC;AACD,qDAAiD,IAAIA,mBAAkB;AAAA,MACnE,QAAQ;AAAA,QACJ,UAAU,KAAK,OAAO,CAAC;AAAA,QACvB,MAAM,OAAO;AAAA,QACb,WAAW,OAAO;AAAA,MACtB;AAAA,MACA,YAAY,CAAC,sCAAsC,CAAC;AAAA,MACpD,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,uCAAuC,MAAM;AAC/C,MAAI,CAAC;AACD,mDAA+C;AAAA,MAC3C,iCAAiC,gCAAgC;AAAA,QAC7D,UAAU,OAAO;AAAA;AAAA,QAEjB,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA;AAAA,QAEnB,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,gCAAgC;AAAA;AAAA,QAE7D,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,gCAAgC;AAAA;AAAA,QAE7D,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,cAAc,KAAK,OAAO,CAAC;AAAA;AAAA,QAE3B,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,+BAA+B;AAAA;AAAA,QAE5D,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,WAAW,OAAO;AAAA,MACtB,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,8BAA8B,MAAM;AACtC,MAAI,CAAC;AACD,0CAAsC;AAAA,MAClC,iCAAiC,6BAA6B;AAAA;AAAA,QAE1D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MACnB,CAAC;AAAA,MACD,iCAAiC,gCAAgC;AAAA;AAAA,QAE7D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,yCAAyC,MAAM;AACjD,MAAI,CAAC;AACD,qDAAiD;AAAA,MAC7C,iCAAiC,mDAAmD;AAAA;AAAA,QAEhF,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,wCAAwC;AAAA;AAAA,QAErE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,OAAO,OAAO;AAAA,QACd,QAAQ,OAAO;AAAA,MACnB,CAAC;AAAA,MACD,iCAAiC,uDAAuD;AAAA;AAAA,QAEpF,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,OAAO;AAAA,QACpB,YAAY,OAAO;AAAA;AAAA,QAEnB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,iCAAiC,0CAA0C;AAAA;AAAA,QAEvE,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,OAAO;AAAA;AAAA,QAEpB,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA;AAAA,QAEnB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,+CAA+C;AAAA,QAC5E,SAAS,OAAO;AAAA;AAAA,QAEhB,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,sDAAsD;AAAA;AAAA,QAEnF,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,wCAAwC;AAAA;AAAA,QAErE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,WAAW,OAAO;AAAA,MACtB,CAAC;AAAA,MACD,iCAAiC,gDAAgD;AAAA,QAC7E,iBAAiB,OAAO;AAAA,QACxB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,uCAAuC,MAAM;AAC/C,MAAI,CAAC;AACD,mDAA+C;AAAA,MAC3C,iCAAiC,uCAAuC;AAAA;AAAA,QAEpE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,iDAAiD;AAAA;AAAA,QAE9E,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,8CAA8C;AAAA,QAC3E,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY;AAAA,UACR,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,WAAW,GAAG,IAAI;AAAA,UACxE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,2BAA2B,MAAM;AACnC,MAAI,CAAC;AACD,uCAAmC,IAAIA,mBAAkB;AAAA,MACrD,QAAQ;AAAA,QACJ,QAAQ,OAAO;AAAA,QACf,SAAS,OAAO;AAAA,QAChB,WAAW,OAAO;AAAA,MACtB;AAAA,MACA,YAAY,CAAC,sCAAsC,CAAC;AAAA,MACpD,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,6BAA6B,MAAM;AACrC,MAAI,CAAC;AACD,yCAAqC;AAAA,MACjC,iCAAiC,qCAAqC;AAAA,QAClE,UAAU,OAAO;AAAA,QACjB,iBAAiB;AAAA,UACb,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,gBAAgB,GAAG,IAAI;AAAA,UAC7E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,iCAAiC,sCAAsC;AAAA,QACnE,UAAU,OAAO;AAAA,QACjB,iBAAiB;AAAA,UACb,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,gBAAgB,GAAG,IAAI;AAAA,UAC7E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,wCAAwC;AAAA;AAAA,QAErE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,iCAAiC,yCAAyC;AAAA;AAAA,QAEtE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,iCAAiC,yCAAyC;AAAA;AAAA,QAEtE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,yCAAyC;AAAA,QACtE,GAAG,OAAO;AAAA;AAAA,QAEV,UAAU;AAAA,UACN,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,SAAS,GAAG,IAAI;AAAA,UACtE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA,QACnB,SAAS,KAAK,OAAO,CAAC;AAAA,MAC1B,CAAC;AAAA,MACD,iCAAiC,0CAA0C;AAAA,QACvE,GAAG,OAAO;AAAA;AAAA,QAEV,UAAU;AAAA,UACN,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,SAAS,GAAG,IAAI;AAAA,UACtE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,SAAS,KAAK,OAAO,CAAC;AAAA,MAC1B,CAAC;AAAA,MACD,iCAAiC,+BAA+B;AAAA,QAC5D,QAAQ,OAAO;AAAA;AAAA,QAEf,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,8BAA8B;AAAA,QAC3D,QAAQ,OAAO;AAAA;AAAA,QAEf,UAAU;AAAA,UACN,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,SAAS,GAAG,IAAI;AAAA,UACtE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,6BAA6B;AAAA;AAAA,QAE1D,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,mCAAmC;AAAA;AAAA,QAEhE,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA;AAAA,QAEtB,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,6BAA6B;AAAA;AAAA,QAE1D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ,OAAO;AAAA;AAAA,QAEf,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,uBAAuB;AAAA,UACnB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,sBAAsB,GAAG,IAAI;AAAA,UACnF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,2BAA2B;AAAA;AAAA,QAExD,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ,OAAO;AAAA;AAAA,QAEf,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,mCAAmC;AAAA;AAAA,QAEhE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,iBAAiB;AAAA,UACb,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,gBAAgB,GAAG,IAAI;AAAA,UAC7E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,yBAAyB;AAAA,UACrB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,wBAAwB,GAAG,IAAI;AAAA,UACrF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,kCAAkC;AAAA;AAAA,QAE/D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,iBAAiB;AAAA,UACb,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,gBAAgB,GAAG,IAAI;AAAA,UAC7E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,yBAAyB;AAAA,UACrB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,wBAAwB,GAAG,IAAI;AAAA,UACrF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,sCAAsC;AAAA;AAAA,QAEnE,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,OAAO;AAAA,MACxB,CAAC;AAAA,MACD,iCAAiC,qCAAqC;AAAA;AAAA,QAElE,UAAU;AAAA,UACN,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,SAAS,GAAG,IAAI;AAAA,UACtE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,OAAO;AAAA,MACxB,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,uBAAuB;AAAA,UACnB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,sBAAsB,GAAG,IAAI;AAAA,UACnF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,OAAO;AAAA,MACxB,CAAC;AAAA,MACD,iCAAiC,kCAAkC;AAAA;AAAA,QAE/D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,OAAO;AAAA,MACxB,CAAC;AAAA,MACD,iCAAiC,iCAAiC;AAAA;AAAA,QAE9D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,yCAAyC;AAAA,QACtE,gBAAgB,KAAK,OAAO,CAAC;AAAA,QAC7B,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,+CAA+C;AAAA;AAAA,QAE5E,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,uCAAuC;AAAA,QACpE,QAAQ,OAAO;AAAA,QACf,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,uCAAuC;AAAA,QACpE,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,UAAU,OAAO;AAAA,MACrB,CAAC;AAAA,MACD,iCAAiC,mDAAmD;AAAA,QAChF,MAAM;AAAA,UACF,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,KAAK,GAAG,IAAI;AAAA,UAClE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBL;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,SAAS,MAAM;AACjB,MAAI,CAAC;AACD,qBAAiB,IAAIA,mBAAkB;AAAA,MACnC,QAAQ;AAAA;AAAA,QAEJ,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,OAAO,OAAO;AAAA,QACd,eAAe,OAAO;AAAA,MAC1B;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,0BAA0B,MAAM;AAClC,MAAI,CAAC;AACD,sCAAkC;AAAA,MAC9B,iCAAiC,8BAA8B;AAAA,QAC3D,YAAY,OAAO,wCAAwC;AAAA;AAAA,UAEvD,QAAQ;AAAA,YACJ,MAAM;AAAA,cACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,cACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,cACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,cACzC,gBAAgB,OAAO;AAAA,YAC3B;AAAA;AAAA,YAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,YACpE,MAAM,iBAAiB;AAAA,UAC3B;AAAA;AAAA,UAEA,YAAY;AAAA,YACR,MAAM;AAAA,cACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,cACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,cACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,cACzC,gBAAgB,OAAO;AAAA,YAC3B;AAAA;AAAA,YAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,WAAW,GAAG,IAAI;AAAA,YACxE,MAAM,iBAAiB;AAAA,UAC3B;AAAA,QACJ,CAAC;AAAA,QACD,QAAQ,OAAO,oCAAoC;AAAA;AAAA,UAE/C,WAAW;AAAA,YACP,MAAM;AAAA,cACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,cACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,cACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,cACzC,gBAAgB,OAAO;AAAA,YAC3B;AAAA;AAAA,YAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,YACvE,MAAM,iBAAiB;AAAA,UAC3B;AAAA,UACA,OAAO,OAAO;AAAA,UACd,eAAe,OAAO;AAAA,QAC1B,CAAC;AAAA,QACD,YAAY,OAAO;AAAA;AAAA,QAEnB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,6BAA6B;AAAA;AAAA,QAE1D,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,iCAAiC;AAAA,QAC9D,aAAa,OAAO;AAAA;AAAA,QAEpB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,oBAAoB,OAAO;AAAA;AAAA,QAE3B,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,yBAAyB;AAAA,QACtD,UAAU,OAAO;AAAA,QACjB,iBAAiB,OAAO;AAAA;AAAA,QAExB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,4BAA4B;AAAA,QACzD,aAAa,OAAO;AAAA,QACpB,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,UAAU,OAAO;AAAA;AAAA,QAEjB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,8BAA8B;AAAA,QAC3D,aAAa,OAAO;AAAA;AAAA,QAEpB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,6BAA6B;AAAA;AAAA,QAE1D,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ,KAAK,OAAO,CAAC;AAAA;AAAA,QAErB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,yBAAyB;AAAA,QACtD,aAAa,OAAO;AAAA,QACpB,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,oBAAoB,OAAO;AAAA,MAC/B,CAAC;AAAA,MACD,iCAAiC,qCAAqC;AAAA;AAAA,QAElE,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,qCAAqC;AAAA,QAClE,YAAY,OAAO;AAAA;AAAA,QAEnB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,YAAY;AAAA,UACR,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,WAAW,GAAG,IAAI;AAAA,UACxE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,4CAA4C;AAAA;AAAA,QAEzE,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ,KAAK,OAAO,CAAC;AAAA;AAAA,QAErB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,wCAAwC;AAAA,QACrE,sBAAsB,OAAO;AAAA;AAAA,QAE7B,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,8BAA8B;AAAA,QAC3D,iBAAiB,OAAO;AAAA;AAAA,QAExB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,oBAAoB;AAAA,UAChB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,mBAAmB,GAAG,IAAI;AAAA,UAChF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,2BAA2B,MAAM;AACnC,MAAI,CAAC;AACD,uCAAmC;AAAA,MAC/B,iCAAiC,4BAA4B;AAAA,QACzD,UAAU,OAAO;AAAA;AAAA,QAEjB,YAAY;AAAA,UACR,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,WAAW,GAAG,IAAI;AAAA,UACxE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,OAAO,OAAO;AAAA,MAClB,CAAC;AAAA,MACD,iCAAiC,qBAAqB;AAAA;AAAA,QAElD,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,uBAAuB;AAAA,QACpD,QAAQ,OAAO;AAAA,QACf,UAAU,OAAO;AAAA,QACjB,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA,QACjE,MAAM,OAAO;AAAA,QACb,UAAU,OAAO;AAAA;AAAA,QAEjB,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM,OAAO;AAAA,QACb,OAAO,OAAO;AAAA,MAClB,CAAC;AAAA,MACD,iCAAiC,kCAAkC;AAAA;AAAA,QAE/D,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,yBAAyB,OAAO;AAAA,MACpC,CAAC;AAAA,MACD,iCAAiC,mCAAmC;AAAA,QAChE,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,UAAU,OAAO;AAAA;AAAA,QAEjB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,yBAAyB,OAAO;AAAA,QAChC,YAAY,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,iCAAiC,qCAAqC;AAAA;AAAA,QAElE,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,yBAAyB,OAAO;AAAA,QAChC,YAAY,OAAO;AAAA,MACvB,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,kCAAkC;AAAA;AAAA,QAE/D,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,uBAAuB;AAAA;AAAA,QAEpD,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,OAAO,OAAO;AAAA,MAClB,CAAC;AAAA,MACD,iCAAiC,+BAA+B;AAAA;AAAA,QAE5D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM,OAAO;AAAA;AAAA,QAEb,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM,OAAO;AAAA,QACb,OAAO,OAAO;AAAA,MAClB,CAAC;AAAA,MACD,iCAAiC,6BAA6B;AAAA;AAAA,QAE1D,SAAS;AAAA,UACL,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,QAAQ,GAAG,IAAI;AAAA,UACrE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM,OAAO;AAAA;AAAA,QAEb,OAAO;AAAA,UACH,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,MAAM,GAAG,IAAI;AAAA,UACnE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,MAAM,OAAO;AAAA,MACjB,CAAC;AAAA,MACD,iCAAiC,+BAA+B;AAAA,QAC5D,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,UAAU,OAAO;AAAA,QACjB,QAAQ;AAAA,UACJ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,OAAO,GAAG,IAAI;AAAA,UACpE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,YAAY;AAAA,UACR,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,WAAW,GAAG,IAAI;AAAA,UACxE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,YAAY,OAAO;AAAA,MACvB,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,OAAO,MAAM;AACf,MAAI,CAAC;AACD,mBAAe,IAAIA,mBAAkB;AAAA,MACjC,QAAQ;AAAA,QACJ,MAAM,OAAO;AAAA,QACb,OAAO,KAAK,OAAO,CAAC;AAAA,QACpB,WAAW,OAAO;AAAA,MACtB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,kBAAkB,MAAM;AAC1B,MAAI,CAAC;AACD,8BAA0B,IAAIA,mBAAkB;AAAA,MAC5C,QAAQ;AAAA,QACJ,MAAM,OAAO;AAAA,QACb,UAAU;AAAA,UACN,OAAO,0BAA0B;AAAA,YAC7B,mBAAmB,OAAO;AAAA,YAC1B,MAAM,OAAO;AAAA,UACjB,CAAC;AAAA,QACL;AAAA,QACA,MAAM,OAAO;AAAA,QACb,WAAW,OAAO;AAAA,MACtB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AAKJ,IAAM,yBAAyB,MAAM;AACjC,MAAI,CAAC;AACD,qCAAiC;AAAA,MAC7B,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,iBAAiB;AAAA,UACb,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,gBAAgB,GAAG,IAAI;AAAA,UAC7E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,aAAa,OAAO;AAAA,QACpB,YAAY,OAAO;AAAA,QACnB,MAAM,OAAO;AAAA,QACb,YAAY,OAAO;AAAA;AAAA,QAEnB,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,4BAA4B;AAAA;AAAA,QAEzD,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,oCAAoC;AAAA;AAAA,QAEjE,kBAAkB;AAAA,UACd,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,iBAAiB,GAAG,IAAI;AAAA,UAC9E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,2CAA2C;AAAA;AAAA,QAExE,kBAAkB;AAAA,UACd,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,iBAAiB,GAAG,IAAI;AAAA,UAC9E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,gBAAgB;AAAA,UACZ,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,eAAe,GAAG,IAAI;AAAA,UAC5E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,uBAAuB;AAAA,QACpD,aAAa,OAAO;AAAA,QACpB,kBAAkB,OAAO;AAAA,QACzB,MAAM,KAAK,KAAK,CAAC;AAAA;AAAA,QAEjB,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,kCAAkC;AAAA,QAC/D,MAAM,OAAO;AAAA;AAAA,QAEb,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,iBAAiB,KAAK,gBAAgB,CAAC;AAAA,MAC3C,CAAC;AAAA,MACD,iCAAiC,wCAAwC;AAAA,QACrE,MAAM,OAAO;AAAA;AAAA,QAEb,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,iBAAiB,KAAK,gBAAgB,CAAC;AAAA,MAC3C,CAAC;AAAA,MACD,iCAAiC,yCAAyC;AAAA,QACtE,MAAM,OAAO;AAAA;AAAA,QAEb,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,iBAAiB,KAAK,gBAAgB,CAAC;AAAA,MAC3C,CAAC;AAAA,MACD,iCAAiC,+CAA+C;AAAA,QAC5E,MAAM,OAAO;AAAA;AAAA,QAEb,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,iBAAiB,KAAK,gBAAgB,CAAC;AAAA,MAC3C,CAAC;AAAA,MACD,iCAAiC,2BAA2B;AAAA,QACxD,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,UAAU,OAAO;AAAA;AAAA,QAEjB,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,0CAA0C;AAAA;AAAA,QAEvE,sBAAsB;AAAA,UAClB,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,qBAAqB,GAAG,IAAI;AAAA,UAClF,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,mCAAmC;AAAA,QAChE,YAAY,OAAO;AAAA;AAAA,QAEnB,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,mBAAmB;AAAA,UACf,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,kBAAkB,GAAG,IAAI;AAAA,UAC/E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,6BAA6B;AAAA,QAC1D,aAAa,OAAO;AAAA,QACpB,MAAM,OAAO;AAAA,QACb,kBAAkB,OAAO;AAAA,QACzB,MAAM,KAAK,KAAK,CAAC;AAAA;AAAA,QAEjB,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,eAAe;AAAA,UACX,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,cAAc,GAAG,IAAI;AAAA,UAC3E,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,MACD,iCAAiC,mCAAmC;AAAA;AAAA,QAEhE,WAAW;AAAA,UACP,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,UAAU,GAAG,IAAI;AAAA,UACvE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,QACA,eAAe,OAAO;AAAA,QACtB,aAAa,OAAO;AAAA;AAAA,QAEpB,cAAc;AAAA,UACV,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,aAAa,GAAG,IAAI;AAAA,UAC1E,MAAM,iBAAiB;AAAA,QAC3B;AAAA;AAAA,QAEA,aAAa;AAAA,UACT,MAAM;AAAA,YACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,YACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,YACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,YACzC,gBAAgB,OAAO;AAAA,UAC3B;AAAA;AAAA,UAEA,SAAS,CAAC,QAAa,MAAM,SAAc,SACvC,QAAQ,eAAe,EAAE,GAAG,MAAM,SAAS,OAAO,YAAY,GAAG,IAAI;AAAA,UACzE,MAAM,iBAAiB;AAAA,QAC3B;AAAA,MACJ,CAAC;AAAA,IACL;AACJ,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,iCAAiC,MAAM;AACzC,MAAI,CAAC;AACD,6CAAyC;AAAA,MACrC,sBAAsB,OAAO;AAAA,MAC7B,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO;AAAA,MACZ,QAAQ,OAAO;AAAA,MACf,iBAAiB,KAAK,+BAA+B,CAAC;AAAA,MACtD,aAAa,KAAK,OAAO,CAAC;AAAA,MAC1B,cAAc,KAAK,OAAO,CAAC;AAAA,MAC3B,mBAAmB,KAAK,KAAK,aAAa,CAAC,CAAC;AAAA,MAC5C,aAAa,KAAK,OAAO,CAAC;AAAA,MAC1B,kBAAkB,KAAK,KAAK,aAAa,CAAC,CAAC;AAAA,MAC3C,YAAY,KAAK,WAAW,CAAC;AAAA,MAC7B,SAAS,KAAK,KAAK,OAAO,CAAC,CAAC;AAAA,MAC5B,QAAQ,KAAK,kBAAkB,CAAC;AAAA,IACpC;AACJ,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,2BAA2B,MAAM;AACnC,MAAI,CAAC;AACD,uCAAmC,IAAII,sBAAqB;AAAA,MACxD,QAAQ;AAAA,QACJ,GAAG,+BAA+B;AAAA,MACtC;AAAA,MACA,MAAM;AAAA,MACN,YAAY,MAAM;AACd,YAAI,KAAK,WAAW,UAAU;AAC1B,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AASA,IAAM,sBAAsB,CACxB,MACA,aACA,sBAEA,IAAIJ,mBAAkB;AAAA,EAClB;AAAA,EACA,QAAQ;AAAA,IACJ,GAAG,+BAA+B;AAAA,IAClC;AAAA,EACJ;AAAA,EACA,YAAY,CAAC,yBAAyB,CAAC;AAAA,EACvC;AACJ,CAAC;AAEL,IAAI;AACJ,IAAM,0BAA0B,MAAM;AAClC,MAAI,CAAC;AACD,sCAAkC;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,QACI,OAAO,4CAA4C;AAAA,UAC/C,OAAO,OAAO;AAAA,UACd,cAAc;AAAA,YACV,OAAO,uDAAuD;AAAA,cAC1D,OAAO,OAAO;AAAA,cACd,cAAc,KAAK,KAAK,uBAAuB,CAAC,CAAC;AAAA,YACrD,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,wBAAwB,MAAM;AAChC,MAAI,CAAC;AACD,oCAAgC;AAAA,MAC5B;AAAA,MACA;AAAA,MACA;AAAA,QACI,OAAO,0CAA0C;AAAA,UAC7C,OAAO,OAAO;AAAA,UACd,cAAc,KAAK,KAAK,sCAAsC,CAAC,CAAC;AAAA,QACpE,CAAC;AAAA,MACL;AAAA,IACJ;AACJ,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,oCAAoC,MAAM;AAC5C,MAAI,CAAC;AACD,gDAA4C;AAAA,MACxC,qBAAqB,KAAK,KAAK,mBAAmB,CAAC,CAAC;AAAA,MACpD,QAAQ,OAAO;AAAA,MACf,QAAQ,OAAO,oCAAoC;AAAA,QAC/C,2BAA2B,OAAO;AAAA,QAClC,6BAA6B,OAAO;AAAA,QACpC,uBAAuB,OAAO;AAAA,MAClC,CAAC;AAAA,MACD,iBAAiB,OAAO;AAAA,IAC5B;AACJ,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,8BAA8B,MAAM;AACtC,MAAI,CAAC;AACD,0CAAsC,IAAII,sBAAqB;AAAA,MAC3D,QAAQ;AAAA,QACJ,GAAG,kCAAkC;AAAA,MACzC;AAAA,MACA,MAAM;AAAA,MACN,YAAY,SAAS;AACjB,YAAI,QAAQ,WAAW,UAAU;AAC7B,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAUA,IAAM,yBAAyB,CAC3B,MACA,aACA,aACA,iBAEA,IAAIJ,mBAAkB;AAAA,EAClB;AAAA,EACA,QAAQ;AAAA,IACJ,GAAG,kCAAkC;AAAA,IACrC;AAAA,IACA;AAAA,EACJ;AAAA,EACA,YAAY,CAAC,4BAA4B,CAAC;AAAA,EAC1C;AACJ,CAAC;AAEL,IAAI;AACJ,IAAM,6BAA6B,MAAM;AACrC,MAAI,CAAC;AACD,yCAAqC;AAAA,MACjC;AAAA,MACA;AAAA,MACA,KAAK,OAAO,CAAC;AAAA,MACb,KAAK,KAAK,uBAAuB,CAAC,CAAC;AAAA,IACvC;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,2BAA2B,MAAM;AACnC,MAAI,CAAC;AACD,uCAAmC;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,QACI,OAAO,sCAAsC;AAAA,UACzC,QAAQ,OAAO;AAAA,UACf,QAAQ,QAAQ;AAAA,UAChB,QAAQ,OAAO;AAAA,UACf,UAAU,QAAQ;AAAA,QACtB,CAAC;AAAA,MACL;AAAA,MACA,KAAK,KAAK,sCAAsC,CAAC,CAAC;AAAA,IACtD;AACJ,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,yBAAyB,MAAM;AACjC,MAAI,CAAC;AACD,qCAAiC,IAAIA,mBAAkB;AAAA,MACnD,QAAQ;AAAA,QACJ,SAAS,KAAK,4BAA4B,CAAC;AAAA,QAC3C,YAAY,KAAK,OAAO,CAAC;AAAA,MAC7B;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,6BAA6B,MAAM;AACrC,MAAI,CAAC;AACD,yCAAqC;AAAA,MACjC,WAAW,OAAO;AAAA,MAClB,UAAU,OAAO;AAAA,MACjB,MAAM,KAAK,yBAAyB,CAAC;AAAA,MACrC,MAAM,OAAO;AAAA,IACjB;AACJ,SAAO;AACX;AAEA,IAAI;AAIG,IAAM,uBAAuB,MAAM;AACtC,MAAI,CAAC;AACD,mCAA+B,IAAII,sBAAqB;AAAA,MACpD,QAAQ;AAAA,QACJ,GAAG,2BAA2B;AAAA,MAClC;AAAA,MACA,MAAM;AAAA,MACN,YAAY,aAAa;AACrB,YAAI,YAAY,aAAa,UAAU;AACnC,iBAAO;AAAA,QACX;AACA,YAAI,YAAY,aAAa,UAAU;AACnC,iBAAO;AAAA,QACX;AACA,YAAI,YAAY,aAAa,QAAQ;AACjC,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AASA,IAAM,kBAAkB,CACpB,MACA,aACA,gBAEA,IAAIJ,mBAAkB;AAAA,EAClB;AAAA,EACA,QAAQ;AAAA,IACJ,GAAG,2BAA2B;AAAA,IAC9B;AAAA,EACJ;AAAA,EACA,YAAY,CAAC,qBAAqB,CAAC;AAAA,EACnC;AACJ,CAAC;AAEL,IAAI;AACJ,IAAM,oBAAoB,MAAM;AAC5B,MAAI,CAAC;AACD,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACX;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,oBAAoB,MAAM;AAC5B,MAAI,CAAC;AACD,gCAA4B;AAAA,MACxB;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACX;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,kBAAkB,MAAM;AAC1B,MAAI,CAAC;AACD,8BAA0B;AAAA,MACtB;AAAA,MACA;AAAA,MACA,KAAK,uBAAuB,CAAC;AAAA,IACjC;AACJ,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,wBAAwB,MAAM;AAChC,MAAI,CAAC;AACD,oCAAgC;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,KAAK,uBAAuB,CAAC;AAAA,IACjC;AACJ,SAAO;AACX;AAEA,IAAI;AACG,IAAM,mBAAmB,MAAM;AAClC,MAAI,CAAC;AACD,+BAA2B;AAAA,MACvB,uCAAuC;AAAA,MACvC,GAAG,qCAAqC;AAAA,MACxC,GAAG,4BAA4B;AAAA,MAC/B,GAAG,uCAAuC;AAAA,MAC1C,GAAG,wBAAwB;AAAA,MAC3B,GAAG,qCAAqC;AAAA,MACxC,yBAAyB;AAAA,MACzB,GAAG,2BAA2B;AAAA,MAC9B,GAAG,yBAAyB;AAAA,MAC5B,GAAG,uBAAuB;AAAA,MAC1B,wBAAwB;AAAA,MACxB,sBAAsB;AAAA,MACtB,2BAA2B;AAAA,MAC3B,yBAAyB;AAAA,MACzB,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,IAC1B;AACJ,SAAO;AACX;;;AC73IO,IAAM,mBAAmB,OAAO;AAAA,EACnC,aAAa;AAAA,IACT,MAAM;AAAA,MACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,MACtC,UAAU,KAAK,6BAA6B,CAAC;AAAA,MAC7C,gCAAgC,KAAK,wCAAwC,CAAC;AAAA,MAC9E,WAAW,QAAQ,OAAO,CAAC;AAAA,IAC/B;AAAA,IACA,SAAS,CAAC,SAAkB,MAA4B,YACpD,QAAQ,mBAAmB,IAAI;AAAA,IACnC,MAAM,qBAAqB;AAAA,EAC/B;AACJ;;;AFlBA,IAAI;AACJ,IAAM,yBAAyB,MAAM;AACjC,MAAI,CAAC;AACD,qCAAiC,IAAIA,mBAAkB;AAAA,MACnD,QAAQ;AAAA,QACJ,MAAM,OAAO,8BAA8B;AAAA,UACvC,kBAAkB,OAAO;AAAA,UACzB,KAAK,OAAO;AAAA,UACZ,KAAK,OAAO;AAAA,UACZ,QAAQ,OAAO;AAAA,UACf,iBAAiB,KAAK,+BAA+B,CAAC;AAAA,UACtD,aAAa,KAAK,OAAO,CAAC;AAAA,UAC1B,cAAc,KAAK,OAAO,CAAC;AAAA,UAC3B,mBAAmB,KAAK,KAAK,aAAa,CAAC,CAAC;AAAA,UAC5C,aAAa,KAAK,OAAO,CAAC;AAAA,UAC1B,kBAAkB,KAAK,KAAK,aAAa,CAAC,CAAC;AAAA,UAC3C,YAAY,KAAK,WAAW,CAAC;AAAA,UAC7B,SAAS,KAAK,KAAK,OAAO,CAAC,CAAC;AAAA,UAC5B,QAAQ,KAAK,kBAAkB,CAAC;AAAA,QACpC,CAAC;AAAA,QACD,aAAa,KAAK,qBAAqB,CAAC;AAAA;AAAA,QACxC,SAAS,OAAO;AAAA,MACpB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AAIJ,IAAM,uBAAuB,MAAM;AAC/B,MAAI,CAAC;AACD,mCAA+B;AAAA,MAC3B,aAAa,OAAO;AAAA,MACpB,WAAW,OAAO;AAAA,MAClB,WAAW,OAAO;AAAA,MAClB,YAAY,OAAO;AAAA,MACnB,mBAAmB,OAAO;AAAA,MAC1B,SAAS,KAAK,KAAK,OAAO,CAAC,CAAC;AAAA,IAChC;AACJ,SAAO;AACX;AAEA,IAAI;AAIG,IAAM,iBAAiB,MAAM;AAChC,MAAI,CAAC;AACD,6BAAyB,IAAII,sBAAqB;AAAA,MAC9C,QAAQ;AAAA,QACJ,GAAG,qBAAqB;AAAA,MAC5B;AAAA,MACA,MAAM;AAAA,MACN,YAAY,OAAO;AACf,YAAI,MAAM,uBAAuB,cAAc;AAC3C,iBAAO;AAAA,QACX;AACA,YAAI,MAAM,uBAAuB,YAAY;AACzC,iBAAO;AAAA,QACX;AACA,YAAI,MAAM,uBAAuB,QAAQ;AACrC,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,IACJ,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,0BAA0B,MAAM;AAClC,MAAI,CAAC;AACD,sCAAkC,IAAIJ,mBAAkB;AAAA,MACpD,QAAQ;AAAA,QACJ,GAAG,qBAAqB;AAAA,MAC5B;AAAA,MACA,YAAY,CAAC,eAAe,CAAC;AAAA,MAC7B,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,sBAAsB,MAAM;AAC9B,MAAI,CAAC;AACD,kCAA8B,IAAIA,mBAAkB;AAAA,MAChD,QAAQ;AAAA,QACJ,GAAG,qBAAqB;AAAA,QACxB,YAAY,KAAK,OAAO,CAAC;AAAA,MAC7B;AAAA,MACA,YAAY,CAAC,eAAe,CAAC;AAAA,MAC7B,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,oBAAoB,MAAM;AAC5B,MAAI,CAAC;AACD,gCAA4B,IAAIA,mBAAkB;AAAA,MAC9C,QAAQ;AAAA,QACJ,GAAG,qBAAqB;AAAA,QACxB,cAAc,KAAK,KAAK,uBAAuB,CAAC,CAAC;AAAA,MACrD;AAAA,MACA,YAAY,CAAC,eAAe,CAAC;AAAA,MAC7B,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACJ,IAAM,wBAAwB,MAAM;AAChC,MAAI,CAAC;AACD,oCAAgC,IAAIA,mBAAkB;AAAA,MAClD,QAAQ;AAAA,QACJ,GAAG,qBAAqB;AAAA,QACxB,cAAc,KAAK,KAAK,qBAAqB,CAAC,CAAC;AAAA,MACnD;AAAA,MACA,YAAY,CAAC,eAAe,CAAC;AAAA,MAC7B,MAAM;AAAA,IACV,CAAC;AACL,SAAO;AACX;AAEA,IAAI;AACG,IAAM,aAAa,MAAM;AAC5B,MAAI,CAAC;AACD,yBAAqB;AAAA,MACjB,wBAAwB;AAAA,MACxB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,sBAAsB;AAAA,IAC1B;AACJ,SAAO;AACX;;;AGhIO,IAAM,aAAa,OAAO;AAAA,EAC7B,OAAO;AAAA,IACH,MAAM;AAAA,MACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,MACtC,UAAU,KAAK,6BAA6B,CAAC;AAAA,MAC7C,gCAAgC,OAAO;AAAA,MACvC,SAAS,QAAQ;AAAA,MACjB,MAAM,QAAQ,OAAO,CAAC;AAAA,MACtB,oBAAoB,KAAK,iCAAiC,CAAC;AAAA,IAC/D;AAAA,IACA,SAAS,CAAC,SAAkB,MAAsB,YAA+B,QAAQ,aAAa,IAAI;AAAA,IAC1G,MAAM,eAAe;AAAA,EACzB;AACJ;;;AC1BA,SAAS,eAAAM,oBAAmB;AAyBrB,IAAM,uBAAuB,OAAO;AAAA,EACvC,iBAAiB;AAAA,IACb,MAAM;AAAA,MACF,YAAY,KAAK,oBAAoB,CAAC;AAAA,MACtC,WAAW,KAAK,mBAAmB,CAAC;AAAA,MACpC,UAAU,KAAK,yBAAyB,CAAC;AAAA,MACzC,SAAS,KAAK,KAAK,8BAA8B,CAAC,CAAC;AAAA,MACnD,gBAAgB,OAAO;AAAA,MACvB,gBAAgB,QAAQ,OAAO,CAAC;AAAA,MAChC,aAAa,OAAO;AAAA,IACxB;AAAA,IACA,SAAS,CAAC,SAAkB,MAAgC,YACxD,QAAQ,uBAAuB,IAAI;AAAA,IACvC,MAAM,IAAIA,aAAY,iBAAiB,CAAC;AAAA,EAC5C;AACJ;;;AZ7BO,SAAS,iBAAiB,KAAwC;AACrE,QAAM,UAAU,2BAA2B,GAAG;AAC9C,QAAM,SAAS,IAAI,cAAc;AAAA,IAC7B,OAAO,IAAIN,mBAAkB;AAAA,MACzB,QAAQ;AAAA,QACJ,GAAG,aAAa;AAAA,QAChB,GAAG,WAAW;AAAA,QACd,GAAG,qBAAqB;AAAA,QACxB,GAAG,iBAAiB;AAAA,MACxB;AAAA,MACA,MAAM;AAAA,IACV,CAAC;AAAA,IACD,OAAO,CAAC,GAAG,aAAa,GAAG,GAAG,WAAW,GAAG,GAAG,iBAAiB,CAAC;AAAA,EACrE,CAAC;AACD,SAAO;AAAA,IACH;AAAA,IACA,MAAM,MAAM,QAAyB,gBAA2D;AAC5F,YAAM,SAAS,MAAM,QAAQ;AAAA,QACzB,cAAc,KAAK;AAAA,QACnB,QAAQ,KAAK;AAAA,QACb;AAAA,QACA;AAAA,MACJ,CAAC;AACD,WAAK,QAAQ,MAAM,MAAM;AACzB,aAAO;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AACJ","sourcesContent":["import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { graphql, GraphQLObjectType, GraphQLSchema, Source } from 'graphql';\n\nimport { createSolanaGraphQLContext, RpcGraphQLContext } from './context';\nimport { accountQuery, accountTypes } from './schema/account';\nimport { blockQuery, blockTypes } from './schema/block';\nimport { programAccountsQuery } from './schema/program-accounts';\nimport { transactionQuery, transactionTypes } from './schema/transaction';\n\nexport interface RpcGraphQL {\n context: RpcGraphQLContext;\n query(\n source: string | Source,\n variableValues?: { readonly [variable: string]: unknown }\n ): ReturnType<typeof graphql>;\n schema: GraphQLSchema;\n}\n\nexport function createRpcGraphQL(rpc: Rpc<SolanaRpcMethods>): RpcGraphQL {\n const context = createSolanaGraphQLContext(rpc);\n const schema = new GraphQLSchema({\n query: new GraphQLObjectType({\n fields: {\n ...accountQuery(),\n ...blockQuery(),\n ...programAccountsQuery(),\n ...transactionQuery(),\n },\n name: 'RootQuery',\n }),\n types: [...accountTypes(), ...blockTypes(), ...transactionTypes()],\n });\n return {\n context,\n async query(source: string | Source, variableValues?: { readonly [variable: string]: unknown }) {\n const result = await graphql({\n contextValue: this.context,\n schema: this.schema,\n source,\n variableValues,\n });\n this.context.cache.flush();\n return result;\n },\n schema,\n };\n}\n","export interface GraphQLCache {\n flush(): void;\n get(key: string | bigint, variables: unknown): unknown | null;\n insert(key: string | bigint, variables: unknown, value: unknown): void;\n}\n\n// Basic in-memory cache for Node.js\nconst inMemoryCache: { [key: string]: string } = {};\n\nconst stringifyValue = (value: unknown) =>\n JSON.stringify(value, (_, value) => {\n if (typeof value === 'bigint') {\n return value.toString() + 'n';\n }\n return value;\n });\n\nconst parseValue = (value: string) =>\n JSON.parse(value, (_, value) => {\n if (typeof value === 'string' && /\\d+n$/.test(value)) {\n return BigInt(value.slice(0, -1));\n }\n return value;\n });\n\nconst cacheKey = (key: string | bigint, variables: unknown): string =>\n `GraphQLCache:${stringifyValue(key)}:${stringifyValue(variables)}`;\n\nexport function createGraphQLCache(): GraphQLCache {\n return __BROWSER__\n ? {\n // Browser\n flush: () => {\n // Clear all entries from the localStorage related to this cache\n for (let i = localStorage.length - 1; i >= 0; i--) {\n const storageKey = localStorage.key(i);\n if (storageKey && storageKey.startsWith('GraphQLCache:')) {\n localStorage.removeItem(storageKey);\n }\n }\n },\n get: (key, variables) => {\n const value = localStorage.getItem(cacheKey(key, variables));\n return value === null ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n localStorage.setItem(cacheKey(key, variables), stringifyValue(value));\n },\n }\n : {\n // Node.js\n flush: () => {\n Object.keys(inMemoryCache).forEach(key => delete inMemoryCache[key]);\n },\n get: (key, variables) => {\n const value = inMemoryCache[cacheKey(key, variables)];\n return value === undefined ? null : parseValue(value);\n },\n insert: (key, variables, value) => {\n inMemoryCache[cacheKey(key, variables)] = stringifyValue(value);\n },\n };\n}\n","import { SolanaRpcMethods } from '@solana/rpc-core';\nimport { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\nimport { GraphQLResolveInfo } from 'graphql';\n\nimport { createGraphQLCache, GraphQLCache } from './cache';\nimport { AccountQueryArgs } from './schema/account/query';\nimport { BlockQueryArgs } from './schema/block';\nimport { ProgramAccountsQueryArgs } from './schema/program-accounts';\nimport { TransactionQueryArgs } from './schema/transaction/query';\n\nexport interface RpcGraphQLContext {\n cache: GraphQLCache;\n resolveAccount(args: AccountQueryArgs, info?: GraphQLResolveInfo): ReturnType<typeof resolveAccount>;\n resolveBlock(args: BlockQueryArgs): ReturnType<typeof resolveBlock>;\n resolveProgramAccounts(args: ProgramAccountsQueryArgs): ReturnType<typeof resolveProgramAccounts>;\n resolveTransaction(args: TransactionQueryArgs): ReturnType<typeof resolveTransaction>;\n rpc: Rpc<SolanaRpcMethods>;\n}\n\n// Default to jsonParsed encoding if none is provided\nasync function resolveAccount(\n { address, encoding = 'jsonParsed', ...config }: AccountQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>,\n info?: GraphQLResolveInfo\n) {\n // If a user only requests the account's address, don't call the RPC\n if (info && info.fieldNodes[0].selectionSet) {\n const selectionSet = info.fieldNodes[0].selectionSet;\n const requestedFields = selectionSet.selections.map(field => {\n if (field.kind === 'Field') {\n return field.name.value;\n }\n return null;\n });\n if (requestedFields && requestedFields.length === 1 && requestedFields[0] === 'address') {\n return { address };\n }\n }\n\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(address, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const account = await rpc\n .getAccountInfo(address, requestConfig as Parameters<SolanaRpcMethods['getAccountInfo']>[1])\n .send()\n .then(res => res.value)\n .catch(e => {\n throw e;\n });\n\n if (account === null) {\n // Account does not exist\n // Return only the address\n return {\n address,\n };\n }\n\n const [data, responseEncoding] = Array.isArray(account.data)\n ? encoding === 'jsonParsed'\n ? [account.data[0], 'base64']\n : [account.data[0], encoding]\n : [account.data, 'jsonParsed'];\n const queryResponse = {\n ...account,\n address,\n data,\n encoding: responseEncoding,\n };\n\n cache.insert(address, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nasync function resolveBlock(\n { slot, encoding = 'jsonParsed', ...config }: BlockQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(slot, config);\n if (cached !== null) {\n return cached;\n }\n\n const block = await rpc.getBlock(slot, requestConfig as Parameters<SolanaRpcMethods['getBlock']>[1]).send();\n\n if (block === null) {\n return null;\n }\n\n cache.insert(slot, config, block);\n\n return block;\n}\n\nasync function resolveProgramAccounts(\n { programAddress, encoding = 'jsonParsed', ...config }: ProgramAccountsQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(programAddress, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const programAccounts = await rpc\n .getProgramAccounts(programAddress, requestConfig as Parameters<SolanaRpcMethods['getProgramAccounts']>[1])\n .send()\n .then(res => {\n if ('value' in res) {\n return res.value as ReturnType<SolanaRpcMethods['getProgramAccounts']>;\n }\n return res as ReturnType<SolanaRpcMethods['getProgramAccounts']>;\n })\n .catch(e => {\n throw e;\n });\n\n const queryResponse = programAccounts.map(programAccount => {\n const [data, responseEncoding] = Array.isArray(programAccount.account.data)\n ? encoding === 'jsonParsed'\n ? [programAccount.account.data[0], 'base64']\n : [programAccount.account.data[0], encoding]\n : [programAccount.account.data, 'jsonParsed'];\n const pubkey = programAccount.pubkey;\n return {\n ...programAccount.account,\n address: pubkey,\n data,\n encoding: responseEncoding,\n };\n });\n\n cache.insert(programAddress, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nasync function resolveTransaction(\n { signature, encoding = 'jsonParsed', ...config }: TransactionQueryArgs,\n cache: GraphQLCache,\n rpc: Rpc<SolanaRpcMethods>\n) {\n const requestConfig = { encoding, ...config };\n\n const cached = cache.get(signature, requestConfig);\n if (cached !== null) {\n return cached;\n }\n\n const transaction = await rpc\n .getTransaction(signature, requestConfig as Parameters<SolanaRpcMethods['getTransaction']>[1])\n .send();\n\n if (transaction === null) {\n return null;\n }\n\n const [transactionData, responseEncoding, responseFormat] = Array.isArray(transaction.transaction)\n ? encoding === 'jsonParsed'\n ? [transaction.transaction[0], 'base64', 'unparsed']\n : [transaction.transaction[0], encoding, 'unparsed']\n : encoding === 'jsonParsed'\n ? [transaction.transaction, encoding, 'parsed']\n : [transaction.transaction, encoding, 'unparsed'];\n if (transaction.meta) {\n // Ugly, but tells TypeScript what's happening\n (transaction.meta as { format?: string } & { [key: string]: unknown })['format'] = responseFormat;\n }\n if (transactionData.message) {\n // Ugly, but tells TypeScript what's happening\n (transactionData.message as { format?: string } & { [key: string]: unknown })['format'] = responseFormat;\n }\n const queryResponse = {\n ...transaction,\n encoding: responseEncoding,\n transaction: transactionData,\n };\n\n cache.insert(signature, requestConfig, queryResponse);\n\n return queryResponse;\n}\n\nexport function createSolanaGraphQLContext(rpc: Rpc<SolanaRpcMethods>): RpcGraphQLContext {\n const cache = createGraphQLCache();\n return {\n cache,\n resolveAccount(args, info?) {\n return resolveAccount(args, this.cache, this.rpc, info);\n },\n resolveBlock(args) {\n return resolveBlock(args, this.cache, this.rpc);\n },\n resolveProgramAccounts(args) {\n return resolveProgramAccounts(args, this.cache, this.rpc);\n },\n resolveTransaction(args) {\n return resolveTransaction(args, this.cache, this.rpc);\n },\n rpc,\n };\n}\n","import { GraphQLEnumType, GraphQLInputObjectType } from 'graphql';\n\nimport { bigint, number, string } from './picks';\n\nlet memoisedAccountEncodingInputType: GraphQLEnumType | undefined;\nexport const accountEncodingInputType = () => {\n if (!memoisedAccountEncodingInputType)\n memoisedAccountEncodingInputType = new GraphQLEnumType({\n name: 'AccountEncoding',\n values: {\n base58: {\n value: 'base58',\n },\n base64: {\n value: 'base64',\n },\n base64Zstd: {\n value: 'base64+zstd',\n },\n jsonParsed: {\n value: 'jsonParsed',\n },\n },\n });\n return memoisedAccountEncodingInputType;\n};\n\nlet memoisedBlockTransactionDetailsInputType: GraphQLEnumType | undefined;\nexport const blockTransactionDetailsInputType = () => {\n if (!memoisedBlockTransactionDetailsInputType)\n memoisedBlockTransactionDetailsInputType = new GraphQLEnumType({\n name: 'BlockTransactionDetails',\n values: {\n accounts: {\n value: 'accounts',\n },\n full: {\n value: 'full',\n },\n none: {\n value: 'none',\n },\n signatures: {\n value: 'signatures',\n },\n },\n });\n return memoisedBlockTransactionDetailsInputType;\n};\n\nlet memoisedCommitmentInputType: GraphQLEnumType | undefined;\nexport const commitmentInputType = () => {\n if (!memoisedCommitmentInputType)\n memoisedCommitmentInputType = new GraphQLEnumType({\n name: 'Commitment',\n values: {\n confirmed: {\n value: 'confirmed',\n },\n finalized: {\n value: 'finalized',\n },\n processed: {\n value: 'processed',\n },\n },\n });\n return memoisedCommitmentInputType;\n};\n\nlet memoisedDataSliceInputType: GraphQLInputObjectType | undefined;\nexport const dataSliceInputType = () => {\n if (!memoisedDataSliceInputType)\n memoisedDataSliceInputType = new GraphQLInputObjectType({\n fields: {\n length: number(),\n offset: number(),\n },\n name: 'DataSlice',\n });\n return memoisedDataSliceInputType;\n};\n\nlet memoisedMaxSupportedTransactionVersionInputType: GraphQLEnumType | undefined;\nexport const maxSupportedTransactionVersionInputType = () => {\n if (!memoisedMaxSupportedTransactionVersionInputType)\n memoisedMaxSupportedTransactionVersionInputType = new GraphQLEnumType({\n name: 'MaxSupportedTransactionVersion',\n values: {\n legacy: {\n value: 'legacy',\n },\n zero: {\n value: '0',\n },\n },\n });\n return memoisedMaxSupportedTransactionVersionInputType;\n};\n\nlet memoisedProgramAccountFilterInputType: GraphQLInputObjectType | undefined;\nexport const programAccountFilterInputType = () => {\n if (!memoisedProgramAccountFilterInputType)\n memoisedProgramAccountFilterInputType = new GraphQLInputObjectType({\n fields: {\n bytes: bigint(),\n dataSize: bigint(),\n encoding: string(),\n offset: bigint(),\n },\n name: 'ProgramAccountFilter',\n });\n return memoisedProgramAccountFilterInputType;\n};\n\nlet memoisedTransactionEncodingInputType: GraphQLEnumType | undefined;\nexport const transactionEncodingInputType = () => {\n if (!memoisedTransactionEncodingInputType)\n memoisedTransactionEncodingInputType = new GraphQLEnumType({\n name: 'TransactionEncoding',\n values: {\n base58: {\n value: 'base58',\n },\n base64: {\n value: 'base64',\n },\n json: {\n value: 'json',\n },\n jsonParsed: {\n value: 'jsonParsed',\n },\n },\n });\n return memoisedTransactionEncodingInputType;\n};\n","import {\n GraphQLBoolean,\n GraphQLEnumType,\n GraphQLFloat,\n GraphQLInputObjectType,\n GraphQLInt,\n GraphQLInterfaceType,\n GraphQLList,\n GraphQLNonNull,\n GraphQLObjectType,\n GraphQLScalarType,\n GraphQLString,\n GraphQLUnionType,\n} from 'graphql';\n\nimport { BigIntScalar } from './scalars';\n\ntype GraphQLType =\n | GraphQLEnumType\n | GraphQLInputObjectType\n | GraphQLInterfaceType\n | GraphQLObjectType\n | GraphQLScalarType\n | GraphQLUnionType;\n\nexport function boolean() {\n return { type: GraphQLBoolean };\n}\n\nlet memoisedBigint: { type: GraphQLScalarType } | undefined;\nexport function bigint() {\n if (!memoisedBigint) memoisedBigint = { type: BigIntScalar() };\n return memoisedBigint;\n}\n\nexport function float() {\n return { type: GraphQLFloat };\n}\nexport function number() {\n return { type: GraphQLInt };\n}\n\nexport function string() {\n return { type: GraphQLString };\n}\n\nexport function type<TFieldType extends GraphQLType>(\n fieldType: TFieldType\n): {\n type: TFieldType;\n} {\n return {\n type: fieldType,\n };\n}\n\nexport function nonNull<TFieldType extends GraphQLType>(fieldType: {\n type: TFieldType;\n}): {\n type: GraphQLList<TFieldType>;\n} {\n return {\n type: new GraphQLNonNull(fieldType.type),\n };\n}\n\nexport function list<TElementType extends GraphQLType>(elementType: {\n type: TElementType;\n}): {\n type: GraphQLList<TElementType>;\n} {\n return {\n type: new GraphQLList(elementType.type),\n };\n}\n\ntype ConstructorParametersOf<T> = T extends new (...args: infer P) => unknown ? P : never;\n\nexport function object(\n name: string,\n fields: ConstructorParametersOf<typeof GraphQLObjectType>[0]['fields']\n): { type: GraphQLObjectType } {\n return {\n type: new GraphQLObjectType({\n fields,\n name,\n }),\n };\n}\n","import { GraphQLScalarType, Kind } from 'graphql';\n\nexport const BigIntScalar = () =>\n new GraphQLScalarType({\n name: 'BigInt',\n\n parseLiteral(ast): bigint | null {\n if (ast.kind === Kind.STRING) {\n return BigInt(ast.value);\n }\n return null;\n },\n\n parseValue(value): bigint {\n return BigInt(value as string);\n },\n\n serialize(value): bigint {\n return BigInt(value as string);\n },\n });\n","import { GraphQLInterfaceType, GraphQLObjectType, GraphQLScalarType } from 'graphql';\n\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, boolean, list, number, object, string, type } from '../picks';\n\nlet memoisedTokenAmountType: GraphQLObjectType | undefined;\nexport const tokenAmountType = () => {\n if (!memoisedTokenAmountType) {\n memoisedTokenAmountType = new GraphQLObjectType({\n fields: {\n amount: string(),\n decimals: number(),\n uiAmount: bigint(),\n uiAmountString: string(),\n },\n name: 'TokenAmount',\n });\n }\n return memoisedTokenAmountType;\n};\n\n/**\n * The fields of the account interface\n */\nlet memoisedAccountInterfaceFields: object | undefined;\nconst accountInterfaceFields = () => {\n if (!memoisedAccountInterfaceFields) {\n memoisedAccountInterfaceFields = {\n address: string(),\n encoding: string(),\n executable: boolean(),\n lamports: bigint(),\n rentEpoch: bigint(),\n };\n }\n return memoisedAccountInterfaceFields;\n};\n\n/**\n * An account interface for GraphQL\n */\nlet memoisedAccountInterface: GraphQLInterfaceType | undefined;\nexport const accountInterface = (): GraphQLInterfaceType => {\n if (!memoisedAccountInterface) {\n memoisedAccountInterface = new GraphQLInterfaceType({\n description: 'A Solana account',\n fields: () => ({\n ...accountInterfaceFields(),\n owner: type(accountInterface()),\n }),\n name: 'Account',\n resolveType(account) {\n if (account.encoding === 'base58') {\n return 'AccountBase58';\n }\n if (account.encoding === 'base64') {\n return 'AccountBase64';\n }\n if (account.encoding === 'base64+zstd') {\n return 'AccountBase64Zstd';\n }\n if (account.encoding === 'jsonParsed') {\n if (account.data.parsed.type === 'mint' && account.data.program === 'spl-token') {\n return 'MintAccount';\n }\n if (account.data.parsed.type === 'account' && account.data.program === 'spl-token') {\n return 'TokenAccount';\n }\n if (account.data.program === 'nonce') {\n return 'NonceAccount';\n }\n if (account.data.program === 'stake') {\n return 'StakeAccount';\n }\n if (account.data.parsed.type === 'vote' && account.data.program === 'vote') {\n return 'VoteAccount';\n }\n if (account.data.parsed.type === 'lookupTable' && account.data.program === 'address-lookup-table') {\n return 'LookupTableAccount';\n }\n }\n return 'AccountBase64';\n },\n });\n }\n return memoisedAccountInterface;\n};\n\n/**\n * An account type implementing the account interface with a\n * specified data encoding structure\n * @param name The name of the account type\n * @param description The description of the account type\n * @param data The data structure of the account type\n * @returns The account type as a GraphQL object implementing the account interface\n */\nconst accountType = (\n name: string,\n description: string,\n data: { type: GraphQLScalarType | GraphQLObjectType }\n): GraphQLObjectType =>\n new GraphQLObjectType({\n description,\n fields: {\n ...accountInterfaceFields(),\n data,\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n resolve: (parent, args, context, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n },\n interfaces: [accountInterface()],\n name,\n });\n\n/**\n * Builds JSON parsed account data\n * Note: JSON parsed data is only available for account types with known schemas.\n * Any account with an unknown schema will return base64 encoded data.\n * @see https://docs.solana.com/api/http#parsed-responses\n * @param name The name of the account type\n * @param parsedInfoFields The fields of the parsed info object\n * @returns The JSON parsed account data as a GraphQL object\n */\nconst accountDataJsonParsed = (name: string, parsedInfoFields: Parameters<typeof object>[1]) =>\n object(name + 'Data', {\n parsed: object(name + 'DataParsed', {\n info: object(name + 'DataParsedInfo', parsedInfoFields),\n type: string(),\n }),\n program: string(),\n space: bigint(),\n });\n\nlet memoisedAccountBase58: GraphQLObjectType | undefined;\nconst accountBase58 = () => {\n if (!memoisedAccountBase58)\n memoisedAccountBase58 = accountType('AccountBase58', 'A Solana account with base58 encoded data', string());\n return memoisedAccountBase58;\n};\n\nlet memoisedAccountBase64: GraphQLObjectType | undefined;\nconst accountBase64 = () => {\n if (!memoisedAccountBase64)\n memoisedAccountBase64 = accountType('AccountBase64', 'A Solana account with base64 encoded data', string());\n return memoisedAccountBase64;\n};\n\nlet memoisedAccountBase64Zstd: GraphQLObjectType | undefined;\nconst accountBase64Zstd = () => {\n if (!memoisedAccountBase64Zstd)\n memoisedAccountBase64Zstd = accountType(\n 'AccountBase64Zstd',\n 'A Solana account with base64 encoded data compressed with zstd',\n string()\n );\n return memoisedAccountBase64Zstd;\n};\n\nlet memoisedAccountNonceAccount: GraphQLObjectType | undefined;\nconst accountNonceAccount = () => {\n if (!memoisedAccountNonceAccount)\n memoisedAccountNonceAccount = accountType(\n 'NonceAccount',\n 'A nonce account',\n accountDataJsonParsed('Nonce', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n blockhash: string(),\n feeCalculator: object('NonceFeeCalculator', {\n lamportsPerSignature: string(),\n }),\n })\n );\n return memoisedAccountNonceAccount;\n};\n\nlet memoisedAccountLookupTable: GraphQLObjectType | undefined;\nconst accountLookupTable = () => {\n if (!memoisedAccountLookupTable)\n memoisedAccountLookupTable = accountType(\n 'LookupTableAccount',\n 'An address lookup table account',\n accountDataJsonParsed('LookupTable', {\n addresses: list(string()),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n deactivationSlot: string(),\n lastExtendedSlot: string(),\n lastExtendedSlotStartIndex: number(),\n })\n );\n return memoisedAccountLookupTable;\n};\n\nlet memoisedAccountMint: GraphQLObjectType | undefined;\nconst accountMint = () => {\n if (!memoisedAccountMint)\n memoisedAccountMint = accountType(\n 'MintAccount',\n 'An SPL mint',\n accountDataJsonParsed('Mint', {\n decimals: number(),\n freezeAuthority: string(),\n isInitialized: boolean(),\n // Nested Account interface\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n supply: string(),\n })\n );\n return memoisedAccountMint;\n};\n\nlet memoisedAccountTokenAccount: GraphQLObjectType | undefined;\nconst accountTokenAccount = () => {\n if (!memoisedAccountTokenAccount)\n memoisedAccountTokenAccount = accountType(\n 'TokenAccount',\n 'An SPL token account',\n accountDataJsonParsed('TokenAccount', {\n isNative: boolean(),\n mint: string(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n state: string(),\n tokenAmount: type(tokenAmountType()),\n })\n );\n return memoisedAccountTokenAccount;\n};\n\nlet memoisedAccountStakeAccount: GraphQLObjectType | undefined;\nconst accountStakeAccount = () => {\n if (!memoisedAccountStakeAccount)\n memoisedAccountStakeAccount = accountType(\n 'StakeAccount',\n 'A stake account',\n accountDataJsonParsed('Stake', {\n meta: object('StakeMeta', {\n authorized: object('StakeMetaAuthorized', {\n // Nested Account interface\n staker: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.staker }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawer }, info),\n type: accountInterface(),\n },\n }),\n lockup: object('StakeMetaLockup', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n unixTimestamp: bigint(),\n }),\n rentExemptReserve: string(),\n }),\n stake: object('StakeStake', {\n creditsObserved: bigint(),\n delegation: object('StakeStakeDelegation', {\n activationEpoch: bigint(),\n deactivationEpoch: bigint(),\n stake: string(),\n // Nested Account interface\n voter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voter }, info),\n type: accountInterface(),\n },\n warmupCooldownRate: number(),\n }),\n }),\n })\n );\n return memoisedAccountStakeAccount;\n};\n\nlet memoisedAccountVoteAccount: GraphQLObjectType | undefined;\nconst accountVoteAccount = () => {\n if (!memoisedAccountVoteAccount)\n memoisedAccountVoteAccount = accountType(\n 'VoteAccount',\n 'A vote account',\n accountDataJsonParsed('Vote', {\n authorizedVoters: list(\n object('VoteAuthorizedVoter', {\n // Nested Account interface\n authorizedVoter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedVoter }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n })\n ),\n // Nested Account interface\n authorizedWithdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedWithdrawer }, info),\n type: accountInterface(),\n },\n commission: number(),\n epochCredits: list(\n object('VoteEpochCredits', {\n credits: string(),\n epoch: bigint(),\n previousCredits: string(),\n })\n ),\n lastTimestamp: object('VoteLastTimestamp', {\n slot: bigint(),\n timestamp: bigint(),\n }),\n // Nested Account interface\n node: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nodePubkey }, info),\n type: accountInterface(),\n },\n priorVoters: list(string()),\n rootSlot: bigint(),\n votes: list(\n object('VoteVote', {\n confirmationCount: number(),\n slot: bigint(),\n })\n ),\n })\n );\n return memoisedAccountVoteAccount;\n};\n\nlet memoisedAccountTypes: GraphQLObjectType[] | undefined;\nexport const accountTypes = () => {\n if (!memoisedAccountTypes)\n memoisedAccountTypes = [\n accountBase58(),\n accountBase64(),\n accountBase64Zstd(),\n accountNonceAccount(),\n accountLookupTable(),\n accountMint(),\n accountTokenAccount(),\n accountStakeAccount(),\n accountVoteAccount(),\n ];\n return memoisedAccountTypes;\n};\n","import { Base58EncodedAddress } from '@solana/addresses';\nimport { DataSlice, Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, nonNull, string, type } from '../picks';\nimport { accountInterface } from './types';\n\nexport type AccountQueryArgs = {\n address: Base58EncodedAddress;\n commitment?: Commitment;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n minContextSlot?: Slot;\n};\n\n/**\n * Account root query for GraphQL\n */\nexport const accountQuery = () => ({\n account: {\n args: {\n address: nonNull(string()),\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (_parent: unknown, args: AccountQueryArgs, context: RpcGraphQLContext, info: any) =>\n context.resolveAccount(args, info),\n type: accountInterface(),\n },\n});\n","import { GraphQLInterfaceType, GraphQLObjectType } from 'graphql';\n\nimport { bigint, list, object, string, type } from '../picks';\nimport {\n returnData,\n reward,\n tokenBalance,\n transactionInterface,\n transactionMetaLoadedAddresses,\n transactionStatus,\n} from '../transaction';\n\nlet memoisedTransactionForAccounts: GraphQLObjectType | undefined;\nconst transactionForAccounts = () => {\n if (!memoisedTransactionForAccounts)\n memoisedTransactionForAccounts = new GraphQLObjectType({\n fields: {\n meta: object('TransactionMetaForAccounts', {\n computeUnitsUsed: bigint(),\n err: string(),\n fee: bigint(),\n format: string(),\n loadedAddresses: type(transactionMetaLoadedAddresses()),\n logMessages: list(string()),\n postBalances: list(bigint()),\n postTokenBalances: list(type(tokenBalance())),\n preBalances: list(bigint()),\n preTokenBalances: list(type(tokenBalance())),\n returnData: type(returnData()),\n rewards: list(type(reward())),\n status: type(transactionStatus()),\n }),\n transaction: type(transactionInterface()), // TODO\n version: string(),\n },\n name: 'TransactionForAccounts',\n });\n return memoisedTransactionForAccounts;\n};\n\nlet memoisedBlockInterfaceFields: object | undefined;\n/**\n * The fields for the block interface\n */\nconst blockInterfaceFields = () => {\n if (!memoisedBlockInterfaceFields)\n memoisedBlockInterfaceFields = {\n blockHeight: bigint(),\n blockTime: bigint(),\n blockhash: string(),\n parentSlot: bigint(),\n previousBlockhash: string(),\n rewards: list(type(reward())),\n };\n return memoisedBlockInterfaceFields;\n};\n\nlet memoisedBlockInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a block\n */\nexport const blockInterface = () => {\n if (!memoisedBlockInterface)\n memoisedBlockInterface = new GraphQLInterfaceType({\n fields: {\n ...blockInterfaceFields(),\n },\n name: 'Block',\n resolveType(block) {\n if (block.transactionDetails === 'signatures') {\n return 'BlockWithSignatures';\n }\n if (block.transactionDetails === 'accounts') {\n return 'BlockWithAccounts';\n }\n if (block.transactionDetails === 'none') {\n return 'BlockWithNoTransactions';\n }\n return 'BlockWithTransactions';\n },\n });\n return memoisedBlockInterface;\n};\n\nlet memoisedBlockWithNoTransactions: GraphQLObjectType | undefined;\nconst blockWithNoTransactions = () => {\n if (!memoisedBlockWithNoTransactions)\n memoisedBlockWithNoTransactions = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithNoTransactions',\n });\n return memoisedBlockWithNoTransactions;\n};\n\nlet memoisedBlockWithSignatures: GraphQLObjectType | undefined;\nconst blockWithSignatures = () => {\n if (!memoisedBlockWithSignatures)\n memoisedBlockWithSignatures = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n signatures: list(string()),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithSignatures',\n });\n return memoisedBlockWithSignatures;\n};\n\nlet memoisedBlockWithAccounts: GraphQLObjectType | undefined;\nconst blockWithAccounts = () => {\n if (!memoisedBlockWithAccounts)\n memoisedBlockWithAccounts = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n transactions: list(type(transactionForAccounts())),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithAccounts',\n });\n return memoisedBlockWithAccounts;\n};\n\nlet memoisedBlockWithTransactions: GraphQLObjectType | undefined;\nconst blockWithTransactions = () => {\n if (!memoisedBlockWithTransactions)\n memoisedBlockWithTransactions = new GraphQLObjectType({\n fields: {\n ...blockInterfaceFields(),\n transactions: list(type(transactionInterface())),\n },\n interfaces: [blockInterface()],\n name: 'BlockWithTransactions',\n });\n return memoisedBlockWithTransactions;\n};\n\nlet memoisedBlockTypes: GraphQLObjectType[] | undefined;\nexport const blockTypes = () => {\n if (!memoisedBlockTypes)\n memoisedBlockTypes = [\n blockWithNoTransactions(),\n blockWithSignatures(),\n blockWithAccounts(),\n blockWithTransactions(),\n ];\n return memoisedBlockTypes;\n};\n","import { GraphQLInterfaceType, GraphQLList, GraphQLObjectType, GraphQLScalarType, GraphQLUnionType } from 'graphql';\n\nimport { accountInterface } from '../account';\nimport { accountEncodingInputType, commitmentInputType, dataSliceInputType } from '../inputs';\nimport { bigint, boolean, list, number, object, string, type } from '../picks';\n\nlet memoisedTokenBalance: GraphQLObjectType | undefined;\nexport const tokenBalance = () => {\n if (!memoisedTokenBalance)\n memoisedTokenBalance = new GraphQLObjectType({\n fields: {\n accountIndex: number(),\n // Nested Account interface\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n programId: string(),\n uiAmountString: string(),\n },\n name: 'TokenBalance',\n });\n return memoisedTokenBalance;\n};\n\nlet memoisedTransactionStatus: GraphQLUnionType | undefined;\nexport const transactionStatus = () => {\n if (!memoisedTransactionStatus)\n memoisedTransactionStatus = new GraphQLUnionType({\n name: 'TransactionStatus',\n types: [\n new GraphQLObjectType({\n fields: {\n Err: string(),\n },\n name: 'TransactionStatusError',\n }),\n new GraphQLObjectType({\n fields: {\n Ok: string(),\n },\n name: 'TransactionStatusOk',\n }),\n ],\n });\n return memoisedTransactionStatus;\n};\n\nlet memoisedReward: GraphQLObjectType | undefined;\nexport const reward = () => {\n if (!memoisedReward)\n memoisedReward = new GraphQLObjectType({\n fields: {\n commission: number(),\n lamports: bigint(),\n postBalance: bigint(),\n pubkey: string(),\n rewardType: string(),\n },\n name: 'Reward',\n });\n return memoisedReward;\n};\n\nlet memoisedAddressTableLookup: GraphQLObjectType | undefined;\nconst addressTableLookup = () => {\n if (!memoisedAddressTableLookup)\n memoisedAddressTableLookup = new GraphQLObjectType({\n fields: {\n accountKey: string(),\n readableIndexes: list(number()),\n writableIndexes: list(number()),\n },\n name: 'AddressTableLookup',\n });\n return memoisedAddressTableLookup;\n};\n\nlet memoisedReturnData: GraphQLObjectType | undefined;\nexport const returnData = () => {\n if (!memoisedReturnData)\n memoisedReturnData = new GraphQLObjectType({\n fields: {\n data: string(),\n programId: string(),\n },\n name: 'ReturnData',\n });\n return memoisedReturnData;\n};\n\nlet memoisedTransactionInstruction: GraphQLObjectType | undefined;\nconst transactionInstruction = () => {\n if (!memoisedTransactionInstruction)\n memoisedTransactionInstruction = new GraphQLObjectType({\n fields: {\n accounts: list(number()),\n data: string(),\n programIdIndex: number(),\n },\n name: 'TransactionInstruction',\n });\n return memoisedTransactionInstruction;\n};\n\nlet memoisedTransactionMetaLoadedAddresses: GraphQLObjectType | undefined;\nexport const transactionMetaLoadedAddresses = () => {\n if (!memoisedTransactionMetaLoadedAddresses)\n memoisedTransactionMetaLoadedAddresses = new GraphQLObjectType({\n fields: {\n readonly: list(string()), // Base58 encoded addresses\n writable: list(string()), // Base58 encoded addresses\n },\n name: 'TransactionMetaLoadedAddresses',\n });\n return memoisedTransactionMetaLoadedAddresses;\n};\n\nlet memoisedParsedTransactionInstructionInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a parsed transaction instruction\n */\nconst parsedTransactionInstructionInterface = () => {\n if (!memoisedParsedTransactionInstructionInterface)\n memoisedParsedTransactionInstructionInterface = new GraphQLInterfaceType({\n fields: {\n programId: string(),\n },\n name: 'ParsedTransactionInstruction',\n resolveType(instruction) {\n if (instruction.program === 'address-lookup-table') {\n if (instruction.info.type === 'createLookupTable') {\n return 'CreateLookupTableInstruction';\n }\n if (instruction.info.type === 'freezeLookupTable') {\n return 'FreezeLookupTableInstruction';\n }\n if (instruction.info.type === 'extendLookupTable') {\n return 'ExtendLookupTableInstruction';\n }\n if (instruction.info.type === 'deactivateLookupTable') {\n return 'DeactivateLookupTableInstruction';\n }\n if (instruction.info.type === 'closeLookupTable') {\n return 'CloseLookupTableInstruction';\n }\n }\n if (instruction.program === 'bpf-loader') {\n if (instruction.info.type === 'write') {\n return 'BpfLoaderWriteInstruction';\n }\n if (instruction.info.type === 'finalize') {\n return 'BpfLoaderFinalizeInstruction';\n }\n }\n if (instruction.program === 'bpf-upgradeable-loader') {\n if (instruction.info.type === 'initializeBuffer') {\n return 'BpfUpgradeableLoaderInitializeBufferInstruction';\n }\n if (instruction.info.type === 'write') {\n return 'BpfUpgradeableLoaderWriteInstruction';\n }\n if (instruction.info.type === 'deployWithMaxDataLen') {\n return 'BpfUpgradeableLoaderDeployWithMaxDataLenInstruction';\n }\n if (instruction.info.type === 'upgrade') {\n return 'BpfUpgradeableLoaderUpgradeInstruction';\n }\n if (instruction.info.type === 'setAuthority') {\n return 'BpfUpgradeableLoaderSetAuthorityInstruction';\n }\n if (instruction.info.type === 'setAuthorityChecked') {\n return 'BpfUpgradeableLoaderSetAuthorityCheckedInstruction';\n }\n if (instruction.info.type === 'close') {\n return 'BpfUpgradeableLoaderCloseInstruction';\n }\n if (instruction.info.type === 'extendProgram') {\n return 'BpfUpgradeableLoaderExtendProgramInstruction';\n }\n }\n if (instruction.program === 'spl-associated-token-account') {\n if (instruction.info.type === 'create') {\n return 'SplAssociatedTokenCreateInstruction';\n }\n if (instruction.info.type === 'createIdempotent') {\n return 'SplAssociatedTokenCreateIdempotentInstruction';\n }\n if (instruction.info.type === 'recoverNested') {\n return 'SplAssociatedTokenRecoverNestedInstruction';\n }\n }\n if (instruction.program === 'spl-memo') {\n return 'SplMemoInstruction';\n }\n if (instruction.program === 'spl-token') {\n if (instruction.info.type === 'initializeMint') {\n return 'SplTokenInitializeMintInstruction';\n }\n if (instruction.info.type === 'initializeMint2') {\n return 'SplTokenInitializeMint2Instruction';\n }\n if (instruction.info.type === 'initializeAccount') {\n return 'SplTokenInitializeAccountInstruction';\n }\n if (instruction.info.type === 'initializeAccount2') {\n return 'SplTokenInitializeAccount2Instruction';\n }\n if (instruction.info.type === 'initializeAccount3') {\n return 'SplTokenInitializeAccount3Instruction';\n }\n if (instruction.info.type === 'initializeMultisig') {\n return 'SplTokenInitializeMultisigInstruction';\n }\n if (instruction.info.type === 'initializeMultisig2') {\n return 'SplTokenInitializeMultisig2Instruction';\n }\n if (instruction.info.type === 'transfer') {\n return 'SplTokenTransferInstruction';\n }\n if (instruction.info.type === 'approve') {\n return 'SplTokenApproveInstruction';\n }\n if (instruction.info.type === 'revoke') {\n return 'SplTokenRevokeInstruction';\n }\n if (instruction.info.type === 'setAuthority') {\n return 'SplTokenSetAuthorityInstruction';\n }\n if (instruction.info.type === 'mintTo') {\n return 'SplTokenMintToInstruction';\n }\n if (instruction.info.type === 'burn') {\n return 'SplTokenBurnInstruction';\n }\n if (instruction.info.type === 'closeAccount') {\n return 'SplTokenCloseAccountInstruction';\n }\n if (instruction.info.type === 'freezeAccount') {\n return 'SplTokenFreezeAccountInstruction';\n }\n if (instruction.info.type === 'thawAccount') {\n return 'SplTokenThawAccountInstruction';\n }\n if (instruction.info.type === 'transferChecked') {\n return 'SplTokenTransferCheckedInstruction';\n }\n if (instruction.info.type === 'approveChecked') {\n return 'SplTokenApproveCheckedInstruction';\n }\n if (instruction.info.type === 'mintToChecked') {\n return 'SplTokenMintToCheckedInstruction';\n }\n if (instruction.info.type === 'burnChecked') {\n return 'SplTokenBurnCheckedInstruction';\n }\n if (instruction.info.type === 'syncNative') {\n return 'SplTokenSyncNativeInstruction';\n }\n if (instruction.info.type === 'getAccountDataSize') {\n return 'SplTokenGetAccountDataSizeInstruction';\n }\n if (instruction.info.type === 'initializeImmutableOwner') {\n return 'SplTokenInitializeImmutableOwnerInstruction';\n }\n if (instruction.info.type === 'amountToUiAmount') {\n return 'SplTokenAmountToUiAmountInstruction';\n }\n if (instruction.info.type === 'uiAmountToAmount') {\n return 'SplTokenUiAmountToAmountInstruction';\n }\n if (instruction.info.type === 'initializeMintCloseAuthority') {\n return 'SplTokenInitializeMintCloseAuthorityInstruction';\n }\n }\n if (instruction.program === 'stake') {\n if (instruction.info.type === 'initialize') {\n return 'StakeInitializeInstruction';\n }\n if (instruction.info.type === 'authorize') {\n return 'StakeAuthorizeInstruction';\n }\n if (instruction.info.type === 'delegate') {\n return 'StakeDelegateStakeInstruction';\n }\n if (instruction.info.type === 'split') {\n return 'StakeSplitInstruction';\n }\n if (instruction.info.type === 'withdraw') {\n return 'StakeWithdrawInstruction';\n }\n if (instruction.info.type === 'deactivate') {\n return 'StakeDeactivateInstruction';\n }\n if (instruction.info.type === 'setLockup') {\n return 'StakeSetLockupInstruction';\n }\n if (instruction.info.type === 'merge') {\n return 'StakeMergeInstruction';\n }\n if (instruction.info.type === 'authorizeWithSeed') {\n return 'StakeAuthorizeWithSeedInstruction';\n }\n if (instruction.info.type === 'initializeChecked') {\n return 'StakeInitializeCheckedInstruction';\n }\n if (instruction.info.type === 'authorizeChecked') {\n return 'StakeAuthorizeCheckedInstruction';\n }\n if (instruction.info.type === 'authorizeCheckedWithSeed') {\n return 'StakeAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.info.type === 'setLockupChecked') {\n return 'StakeSetLockupCheckedInstruction';\n }\n if (instruction.info.type === 'deactivateDelinquent') {\n return 'StakeDeactivateDelinquentInstruction';\n }\n if (instruction.info.type === 'redelegate') {\n return 'StakeRedelegateInstruction';\n }\n }\n if (instruction.program === 'system') {\n if (instruction.info.type === 'createAccount') {\n return 'CreateAccountInstruction';\n }\n if (instruction.info.type === 'assign') {\n return 'AssignInstruction';\n }\n if (instruction.info.type === 'transfer') {\n return 'TransferInstruction';\n }\n if (instruction.info.type === 'createAccountWithSeed') {\n return 'CreateAccountWithSeedInstruction';\n }\n if (instruction.info.type === 'advanceNonceAccount') {\n return 'AdvanceNonceAccountInstruction';\n }\n if (instruction.info.type === 'withdrawNonceAccount') {\n return 'WithdrawNonceAccountInstruction';\n }\n if (instruction.info.type === 'initializeNonceAccount') {\n return 'InitializeNonceAccountInstruction';\n }\n if (instruction.info.type === 'authorizeNonceAccount') {\n return 'AuthorizeNonceAccountInstruction';\n }\n if (instruction.info.type === 'upgradeNonceAccount') {\n return 'UpgradeNonceAccountInstruction';\n }\n if (instruction.info.type === 'allocate') {\n return 'AllocateInstruction';\n }\n if (instruction.info.type === 'allocateWithSeed') {\n return 'AllocateWithSeedInstruction';\n }\n if (instruction.info.type === 'assignWithSeed') {\n return 'AssignWithSeedInstruction';\n }\n if (instruction.info.type === 'transferWithSeed') {\n return 'TransferWithSeedInstruction';\n }\n }\n if (instruction.program === 'vote') {\n if (instruction.info.type === 'initialize') {\n return 'VoteInitializeAccountInstruction';\n }\n if (instruction.info.type === 'authorize') {\n return 'VoteAuthorizeInstruction';\n }\n if (instruction.info.type === 'authorizeWithSeed') {\n return 'VoteAuthorizeWithSeedInstruction';\n }\n if (instruction.info.type === 'authorizeCheckedWithSeed') {\n return 'VoteAuthorizeCheckedWithSeedInstruction';\n }\n if (instruction.info.type === 'vote') {\n return 'VoteVoteInstruction';\n }\n if (instruction.info.type === 'updatevotestate') {\n return 'VoteUpdateVoteStateInstruction';\n }\n if (instruction.info.type === 'updatevotestateswitch') {\n return 'VoteUpdateVoteStateSwitchInstruction';\n }\n if (instruction.info.type === 'compactupdatevotestate') {\n return 'VoteCompactUpdateVoteStateInstruction';\n }\n if (instruction.info.type === 'compactupdatevotestateswitch') {\n return 'VoteCompactUpdateVoteStateSwitchInstruction';\n }\n if (instruction.info.type === 'withdraw') {\n return 'VoteWithdrawInstruction';\n }\n if (instruction.info.type === 'updateValidatorIdentity') {\n return 'VoteUpdateValidatorIdentityInstruction';\n }\n if (instruction.info.type === 'updateCommission') {\n return 'VoteUpdateCommissionInstruction';\n }\n if (instruction.info.type === 'voteSwitch') {\n return 'VoteVoteSwitchInstruction';\n }\n if (instruction.info.type === 'authorizeChecked') {\n return 'VoteAuthorizeCheckedInstruction';\n }\n }\n return 'PartiallyDecodedInstruction';\n },\n });\n return memoisedParsedTransactionInstructionInterface;\n};\n\n/**\n * Builds JSON parsed instruction\n * Note: JSON parsed data is only available for instructions with known schemas.\n * Any instruction with an unknown schema will return as a partially decoded transaction\n * with base64 encoded data.\n * @see https://docs.solana.com/api/http#parsed-responses\n * @param name The name of the instruction type\n * @param parsedInfoFields The fields of the parsed info object\n * @returns The JSON parsed instruction as a GraphQL object\n */\nconst parsedTransactionInstructionType = (name: string, parsedInfoFields: Parameters<typeof object>[1]) =>\n new GraphQLObjectType({\n fields: {\n parsed: object(name + 'Parsed', {\n info: object(name + 'ParsedInfo', parsedInfoFields),\n type: string(),\n }),\n program: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name,\n });\n\nlet memoisedPartiallyDecodedTransactionInstruction: GraphQLObjectType | undefined;\nconst partiallyDecodedTransactionInstruction = () => {\n if (!memoisedPartiallyDecodedTransactionInstruction)\n memoisedPartiallyDecodedTransactionInstruction = new GraphQLObjectType({\n fields: {\n accounts: list(string()),\n data: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name: 'PartiallyDecodedInstruction',\n });\n return memoisedPartiallyDecodedTransactionInstruction;\n};\n\nlet memoisedParsedInstructionsAddressLookupTable: GraphQLObjectType[] | undefined;\n/**\n * Address Lookup Table program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_address_lookup_table.rs#L13\n */\nconst parsedInstructionsAddressLookupTable = () => {\n if (!memoisedParsedInstructionsAddressLookupTable)\n memoisedParsedInstructionsAddressLookupTable = [\n parsedTransactionInstructionType('CreateLookupTableInstruction', {\n bumpSeed: number(),\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n recentSlot: bigint(),\n // Nested Account interface\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('FreezeLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('ExtendLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n newAddresses: list(string()),\n // Nested Account interface\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('DeactivateLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('CloseLookupTableInstruction', {\n // Nested Account interface\n lookupTableAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n lookupTableAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.lookupTableAuthority }, info),\n type: accountInterface(),\n },\n recipient: string(),\n }),\n ];\n return memoisedParsedInstructionsAddressLookupTable;\n};\n\nlet memoisedParsedInstructionsBpfLoader: GraphQLObjectType[] | undefined;\n/**\n * BPF Loader program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_bpf_loader.rs#L14\n */\nconst parsedInstructionsBpfLoader = () => {\n if (!memoisedParsedInstructionsBpfLoader)\n memoisedParsedInstructionsBpfLoader = [\n parsedTransactionInstructionType('BpfLoaderWriteInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfLoaderFinalizeInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsBpfLoader;\n};\n\nlet memoisedParsedInstructionsBpfUpgradeableLoader: GraphQLObjectType[] | undefined;\n/**\n * BPF Upgradeable Loader program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_bpf_loader.rs#L49\n */\nconst parsedInstructionsBpfUpgradeableLoader = () => {\n if (!memoisedParsedInstructionsBpfUpgradeableLoader)\n memoisedParsedInstructionsBpfUpgradeableLoader = [\n parsedTransactionInstructionType('BpfUpgradeableLoaderInitializeBufferInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderWriteInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n bytes: string(),\n offset: number(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderDeployWithMaxDataLenInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n bufferAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.bufferAccount }, info),\n type: accountInterface(),\n },\n clockSysvar: string(),\n maxDataLen: bigint(),\n // Nested Account interface\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programDataAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programDataAccount }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderUpgradeInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n bufferAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.bufferAccount }, info),\n type: accountInterface(),\n },\n clockSysvar: string(),\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programDataAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programDataAccount }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n // Nested Account interface\n spillAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.spillAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityInstruction', {\n account: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderSetAuthorityCheckedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderCloseInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n recipient: string(),\n }),\n parsedTransactionInstructionType('BpfUpgradeableLoaderExtendProgramInstruction', {\n additionalBytes: bigint(),\n payerAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.payerAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n programDataAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.programDataAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsBpfUpgradeableLoader;\n};\n\nlet memoisedParsedInstructionsSplAssociatedToken: GraphQLObjectType[] | undefined;\n/**\n * SPL Associated Token Account program\n * @see https://github.com/solana-labs/solana/blob/1a2c0943db6519dc9519bfc74c2426332ba26850/transaction-status/src/parse_associated_token.rs#L17\n */\nconst parsedInstructionsSplAssociatedToken = () => {\n if (!memoisedParsedInstructionsSplAssociatedToken)\n memoisedParsedInstructionsSplAssociatedToken = [\n parsedTransactionInstructionType('SplAssociatedTokenCreateInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n tokenProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.tokenProgram }, info),\n type: accountInterface(),\n },\n wallet: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.wallet }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplAssociatedTokenCreateIdempotentInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n systemProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.systemProgram }, info),\n type: accountInterface(),\n },\n tokenProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.tokenProgram }, info),\n type: accountInterface(),\n },\n wallet: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.wallet }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplAssociatedTokenRecoverNestedInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n nestedMint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nestedMint }, info),\n type: accountInterface(),\n },\n nestedOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nestedOwner }, info),\n type: accountInterface(),\n },\n nestedSource: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nestedSource }, info),\n type: accountInterface(),\n },\n ownerMint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.ownerMint }, info),\n type: accountInterface(),\n },\n tokenProgram: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.tokenProgram }, info),\n type: accountInterface(),\n },\n wallet: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.wallet }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsSplAssociatedToken;\n};\n\nlet memoisedParsedInstructionSplMemo: GraphQLObjectType | undefined;\n/**\n * SPL Memo program\n * @see https://github.com/solana-labs/solana/blob/1a2c0943db6519dc9519bfc74c2426332ba26850/transaction-status/src/parse_instruction.rs#L146\n */\nconst parsedInstructionSplMemo = () => {\n if (!memoisedParsedInstructionSplMemo)\n memoisedParsedInstructionSplMemo = new GraphQLObjectType({\n fields: {\n parsed: string(),\n program: string(),\n programId: string(),\n },\n interfaces: [parsedTransactionInstructionInterface()],\n name: 'SplMemoInstruction',\n });\n return memoisedParsedInstructionSplMemo;\n};\n\nlet memoisedParsedInstructionsSplToken: GraphQLObjectType[] | undefined;\n/**\n * SPL Token program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_token.rs#L29\n */\nconst parsedInstructionsSplToken = () => {\n if (!memoisedParsedInstructionsSplToken)\n memoisedParsedInstructionsSplToken = [\n parsedTransactionInstructionType('SplTokenInitializeMintInstruction', {\n decimals: number(),\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMint2Instruction', {\n decimals: number(),\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount2Instruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeAccount3Instruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisigInstruction', {\n m: number(),\n // Nested Account interface\n multisig: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisig }, info),\n type: accountInterface(),\n },\n rentSysvar: string(),\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMultisig2Instruction', {\n m: number(),\n // Nested Account interface\n multisig: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisig }, info),\n type: accountInterface(),\n },\n signers: list(string()),\n }),\n parsedTransactionInstructionType('SplTokenTransferInstruction', {\n amount: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenApproveInstruction', {\n amount: string(),\n // Nested Account interface\n delegate: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.delegate }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenRevokeInstruction', {\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenSetAuthorityInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenMintToInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n amount: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigMintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigMintAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenBurnInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n amount: string(),\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenCloseAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenFreezeAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigFreezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigFreezeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenThawAccountInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n freezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.freezeAuthority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigFreezeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigFreezeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenTransferCheckedInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenApproveCheckedInstruction', {\n // Nested Account interface\n delegate: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.delegate }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigOwner }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenMintToCheckedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n mintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mintAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigMintAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigMintAuthority }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenBurnCheckedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n multisigAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.multisigAuthority }, info),\n type: accountInterface(),\n },\n tokenAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenSyncNativeInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenGetAccountDataSizeInstruction', {\n extensionTypes: list(string()),\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenInitializeImmutableOwnerInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenAmountToUiAmountInstruction', {\n amount: string(),\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('SplTokenUiAmountToAmountInstruction', {\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n uiAmount: string(),\n }),\n parsedTransactionInstructionType('SplTokenInitializeMintCloseAuthorityInstruction', {\n mint: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.mint }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n }),\n // TODO: Extensions!\n // - TransferFeeExtension\n // - ConfidentialTransferFeeExtension\n // - DefaultAccountStateExtension\n // - Reallocate\n // - MemoTransferExtension\n // - CreateNativeMint\n // - InitializeNonTransferableMint\n // - InterestBearingMintExtension\n // - CpiGuardExtension\n // - InitializePermanentDelegate\n // - TransferHookExtension\n // - ConfidentialTransferFeeExtension\n // - WithdrawExcessLamports\n // - MetadataPointerExtension\n ];\n return memoisedParsedInstructionsSplToken;\n};\n\nlet memoisedLockup: GraphQLObjectType | undefined;\nconst lockup = () => {\n if (!memoisedLockup)\n memoisedLockup = new GraphQLObjectType({\n fields: {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n unixTimestamp: bigint(),\n },\n name: 'Lockup',\n });\n return memoisedLockup;\n};\n\nlet memoisedParsedInstructionsStake: GraphQLObjectType[] | undefined;\n/**\n * Stake program\n * @see https://github.com/solana-labs/solana/blob/7afb11f1e6daa3e9bd93cfe203211de5b14ba56a/transaction-status/src/parse_stake.rs#L13\n */\nconst parsedInstructionsStake = () => {\n if (!memoisedParsedInstructionsStake)\n memoisedParsedInstructionsStake = [\n parsedTransactionInstructionType('StakeInitializeInstruction', {\n authorized: object('StakeInitializeInstructionAuthorized', {\n // Nested Account interface\n staker: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.staker }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawer }, info),\n type: accountInterface(),\n },\n }),\n lockup: object('StakeInitializeInstructionLockup', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n epoch: bigint(),\n unixTimestamp: bigint(),\n }),\n rentSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeAuthorizeInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeDelegateStakeInstruction', {\n clockSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeConfigAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeConfigAccount }, info),\n type: accountInterface(),\n },\n stakeHistorySysvar: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeSplitInstruction', {\n lamports: bigint(),\n newSplitAccount: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeWithdrawInstruction', {\n clockSysvar: string(),\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeDeactivateInstruction', {\n clockSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeSetLockupInstruction', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n lockup: type(lockup()),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeMergeInstruction', {\n clockSysvar: string(),\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n stakeHistorySysvar: string(),\n }),\n parsedTransactionInstructionType('StakeAuthorizeWithSeedInstruction', {\n // Nested Account interface\n authorityBase: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBase }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthorized: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthorized }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeInitializeCheckedInstruction', {\n rentSysvar: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n staker: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.staker }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawer }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeAuthorizeCheckedWithSeedInstruction', {\n // Nested Account interface\n authorityBase: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBase }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n newAuthorized: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthorized }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeSetLockupCheckedInstruction', {\n // Nested Account interface\n custodian: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.custodian }, info),\n type: accountInterface(),\n },\n lockup: type(lockup()),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeDeactivateDelinquentInstruction', {\n referenceVoteAccount: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('StakeRedelegateInstruction', {\n newStakeAccount: string(),\n // Nested Account interface\n stakeAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n stakeConfigAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.stakeConfigAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsStake;\n};\n\nlet memoisedParsedInstructionsSystem: GraphQLObjectType[] | undefined;\n/**\n * System program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_system.rs#L13\n */\nconst parsedInstructionsSystem = () => {\n if (!memoisedParsedInstructionsSystem)\n memoisedParsedInstructionsSystem = [\n parsedTransactionInstructionType('CreateAccountInstruction', {\n lamports: bigint(),\n // Nested Account interface\n newAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignInstruction', {\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('TransferInstruction', {\n amount: string(),\n lamports: number(),\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('CreateAccountWithSeedInstruction', {\n base: string(),\n lamports: bigint(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AdvanceNonceAccountInstruction', {\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n recentBlockhashesSysvar: string(),\n }),\n parsedTransactionInstructionType('WithdrawNonceAccountInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('InitializeNonceAccountInstruction', {\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n recentBlockhashesSysvar: string(),\n rentSysvar: string(),\n }),\n parsedTransactionInstructionType('AuthorizeNonceAccountInstruction', {\n // Nested Account interface\n newAuthorized: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthorized }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n nonceAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('UpgradeNonceAccountInstruction', {\n // Nested Account interface\n nonceAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.nonceAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('AllocateInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n space: bigint(),\n }),\n parsedTransactionInstructionType('AllocateWithSeedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n base: string(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n seed: string(),\n space: bigint(),\n }),\n parsedTransactionInstructionType('AssignWithSeedInstruction', {\n // Nested Account interface\n account: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.account }, info),\n type: accountInterface(),\n },\n base: string(),\n // Nested Account interface\n owner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.owner }, info),\n type: accountInterface(),\n },\n seed: string(),\n }),\n parsedTransactionInstructionType('TransferWithSeedInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n source: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.source }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n sourceBase: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.sourceBase }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n sourceOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.sourceOwner }, info),\n type: accountInterface(),\n },\n sourceSeed: string(),\n }),\n ];\n return memoisedParsedInstructionsSystem;\n};\n\nlet memoisedVote: GraphQLObjectType | undefined;\nconst vote = () => {\n if (!memoisedVote)\n memoisedVote = new GraphQLObjectType({\n fields: {\n hash: string(),\n slots: list(bigint()),\n timestamp: bigint(),\n },\n name: 'Vote',\n });\n return memoisedVote;\n};\n\nlet memoisedVoteStateUpdate: GraphQLObjectType | undefined;\nconst voteStateUpdate = () => {\n if (!memoisedVoteStateUpdate)\n memoisedVoteStateUpdate = new GraphQLObjectType({\n fields: {\n hash: string(),\n lockouts: list(\n object('VoteStateUpdateLockout', {\n confirmationCount: number(),\n slot: bigint(),\n })\n ),\n root: bigint(),\n timestamp: bigint(),\n },\n name: 'VoteStateUpdate',\n });\n return memoisedVoteStateUpdate;\n};\n\nlet memoisedParsedInstructionsVote: GraphQLObjectType[] | undefined;\n/**\n * Vote program\n * @see https://github.com/solana-labs/solana/blob/d74de6780e2975472796a6a752b362152cd008a6/transaction-status/src/parse_vote.rs#L12\n */\nconst parsedInstructionsVote = () => {\n if (!memoisedParsedInstructionsVote)\n memoisedParsedInstructionsVote = [\n parsedTransactionInstructionType('VoteInitializeAccountInstruction', {\n // Nested Account interface\n authorizedVoter: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedVoter }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorizedWithdrawer: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorizedWithdrawer }, info),\n type: accountInterface(),\n },\n clockSysvar: string(),\n commission: number(),\n node: string(),\n rentSysvar: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeWithSeedInstruction', {\n // Nested Account interface\n authorityBaseKey: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBaseKey }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedWithSeedInstruction', {\n // Nested Account interface\n authorityBaseKey: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityBaseKey }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n authorityOwner: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authorityOwner }, info),\n type: accountInterface(),\n },\n authoritySeed: string(),\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteVoteInstruction', {\n clockSysvar: string(),\n slotHashedSysvar: string(),\n vote: type(vote()),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteUpdateVoteStateSwitchInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteCompactUpdateVoteStateSwitchInstruction', {\n hash: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n voteStateUpdate: type(voteStateUpdate()),\n }),\n parsedTransactionInstructionType('VoteWithdrawInstruction', {\n destination: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.destination }, info),\n type: accountInterface(),\n },\n lamports: bigint(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteUpdateValidatorIdentityInstruction', {\n // Nested Account interface\n newValidatorIdentity: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newValidatorIdentity }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteUpdateCommissionInstruction', {\n commission: string(),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n withdrawAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.withdrawAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteVoteSwitchInstruction', {\n clockSysvar: string(),\n hash: string(),\n slotHashesSysvar: string(),\n vote: type(vote()),\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAuthority }, info),\n type: accountInterface(),\n },\n }),\n parsedTransactionInstructionType('VoteAuthorizeCheckedInstruction', {\n // Nested Account interface\n authority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.authority }, info),\n type: accountInterface(),\n },\n authorityType: string(),\n clockSysvar: string(),\n // Nested Account interface\n newAuthority: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.newAuthority }, info),\n type: accountInterface(),\n },\n // Nested Account interface\n voteAccount: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n minContextSlot: bigint(),\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resolve: (parent: any, args, context: any, info) =>\n context.resolveAccount({ ...args, address: parent.voteAccount }, info),\n type: accountInterface(),\n },\n }),\n ];\n return memoisedParsedInstructionsVote;\n};\n\nlet memoisedTransactionMetaInterfaceFields: object | undefined;\n/**\n * The fields for the transaction meta interface\n */\nconst transactionMetaInterfaceFields = () => {\n if (!memoisedTransactionMetaInterfaceFields)\n memoisedTransactionMetaInterfaceFields = {\n computeUnitsConsumed: bigint(),\n err: string(),\n fee: bigint(),\n format: string(),\n loadedAddresses: type(transactionMetaLoadedAddresses()),\n logMessages: list(string()),\n postBalances: list(bigint()),\n postTokenBalances: list(type(tokenBalance())),\n preBalances: list(bigint()),\n preTokenBalances: list(type(tokenBalance())),\n returnData: type(returnData()),\n rewards: list(type(reward())),\n status: type(transactionStatus()),\n };\n return memoisedTransactionMetaInterfaceFields;\n};\n\nlet memoisedTransactionMetaInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction meta\n */\nconst transactionMetaInterface = () => {\n if (!memoisedTransactionMetaInterface)\n memoisedTransactionMetaInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionMetaInterfaceFields(),\n },\n name: 'TransactionMeta',\n resolveType(meta) {\n if (meta.format === 'parsed') {\n return 'TransactionMetaParsed';\n }\n return 'TransactionMetaUnparsed';\n },\n });\n return memoisedTransactionMetaInterface;\n};\n\n/**\n * Builds a transaction meta type\n * @param name The name of the transaction meta type\n * @param description The description of the transaction meta type\n * @param innerInstructions The inner instructions of the transaction meta type\n * @returns The transaction meta type as a GraphQL object\n */\nconst transactionMetaType = (\n name: string,\n description: string,\n innerInstructions: { type: GraphQLList<GraphQLObjectType | GraphQLScalarType> }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionMetaInterfaceFields(),\n innerInstructions,\n },\n interfaces: [transactionMetaInterface()],\n name,\n });\n\nlet memoisedTransactionMetaUnparsed: GraphQLObjectType | undefined;\nconst transactionMetaUnparsed = () => {\n if (!memoisedTransactionMetaUnparsed)\n memoisedTransactionMetaUnparsed = transactionMetaType(\n 'TransactionMetaUnparsed',\n 'Non-parsed transaction meta',\n list(\n object('TransactionMetaInnerInstructionsUnparsed', {\n index: number(),\n instructions: list(\n object('TransactionMetaInnerInstructionsUnparsedInstruction', {\n index: number(),\n instructions: list(type(transactionInstruction())),\n })\n ),\n })\n )\n );\n return memoisedTransactionMetaUnparsed;\n};\n\nlet memoisedTransactionMetaParsed: GraphQLObjectType | undefined;\nconst transactionMetaParsed = () => {\n if (!memoisedTransactionMetaParsed)\n memoisedTransactionMetaParsed = transactionMetaType(\n 'TransactionMetaParsed',\n 'Parsed transaction meta',\n list(\n object('TransactionMetaInnerInstructionsParsed', {\n index: number(),\n instructions: list(type(parsedTransactionInstructionInterface())),\n })\n )\n );\n return memoisedTransactionMetaParsed;\n};\n\nlet memoisedTransactionMessageInterfaceFields: object | undefined;\n/**\n * The fields for the transaction message interface\n */\nconst transactionMessageInterfaceFields = () => {\n if (!memoisedTransactionMessageInterfaceFields)\n memoisedTransactionMessageInterfaceFields = {\n addressTableLookups: list(type(addressTableLookup())),\n format: string(),\n header: object('TransactionJsonTransactionHeader', {\n numReadonlySignedAccounts: number(),\n numReadonlyUnsignedAccounts: number(),\n numRequiredSignatures: number(),\n }),\n recentBlockhash: string(),\n };\n return memoisedTransactionMessageInterfaceFields;\n};\n\nlet memoisedTransactionMessageInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction message\n */\nconst transactionMessageInterface = () => {\n if (!memoisedTransactionMessageInterface)\n memoisedTransactionMessageInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionMessageInterfaceFields(),\n },\n name: 'TransactionMessage',\n resolveType(message) {\n if (message.format === 'parsed') {\n return 'TransactionMessageParsed';\n }\n return 'TransactionMessageUnparsed';\n },\n });\n return memoisedTransactionMessageInterface;\n};\n\n/**\n * Builds a transaction message type\n * @param name The name of the transaction message type\n * @param description The description of the transaction message type\n * @param accountKeys The account keys of the transaction message type\n * @param instructions The instructions of the transaction message type\n * @returns The transaction message type as a GraphQL object\n */\nconst transactionMessageType = (\n name: string,\n description: string,\n accountKeys: { type: GraphQLList<GraphQLObjectType | GraphQLScalarType> },\n instructions: { type: GraphQLList<GraphQLInterfaceType | GraphQLObjectType | GraphQLScalarType> }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionMessageInterfaceFields(),\n accountKeys,\n instructions,\n },\n interfaces: [transactionMessageInterface()],\n name,\n });\n\nlet memoisedTransactionMessageUnparsed: GraphQLObjectType | undefined;\nconst transactionMessageUnparsed = () => {\n if (!memoisedTransactionMessageUnparsed)\n memoisedTransactionMessageUnparsed = transactionMessageType(\n 'TransactionMessageUnparsed',\n 'Non-parsed transaction message',\n list(string()),\n list(type(transactionInstruction()))\n );\n return memoisedTransactionMessageUnparsed;\n};\n\nlet memoisedTransactionMessageParsed: GraphQLObjectType | undefined;\nconst transactionMessageParsed = () => {\n if (!memoisedTransactionMessageParsed)\n memoisedTransactionMessageParsed = transactionMessageType(\n 'TransactionMessageParsed',\n 'Parsed transaction message',\n list(\n object('transactionMessageParsedAccountKey', {\n pubkey: string(),\n signer: boolean(),\n source: string(),\n writable: boolean(),\n })\n ),\n list(type(parsedTransactionInstructionInterface()))\n );\n return memoisedTransactionMessageParsed;\n};\n\nlet memoisedTransactionTransaction: GraphQLObjectType | undefined;\n/**\n * The standard transaction type, comprised of all the interfaces\n */\nconst transactionTransaction = () => {\n if (!memoisedTransactionTransaction)\n memoisedTransactionTransaction = new GraphQLObjectType({\n fields: {\n message: type(transactionMessageInterface()),\n signatures: list(string()),\n },\n name: 'TransactionTransaction',\n });\n return memoisedTransactionTransaction;\n};\n\nlet memoisedTransactionInterfaceFields: object | undefined;\n/**\n * The fields for the transaction interface\n */\nconst transactionInterfaceFields = () => {\n if (!memoisedTransactionInterfaceFields)\n memoisedTransactionInterfaceFields = {\n blockTime: bigint(),\n encoding: string(),\n meta: type(transactionMetaInterface()),\n slot: bigint(),\n };\n return memoisedTransactionInterfaceFields;\n};\n\nlet memoisedTransactionInterface: GraphQLInterfaceType | undefined;\n/**\n * Interface for a transaction\n */\nexport const transactionInterface = () => {\n if (!memoisedTransactionInterface)\n memoisedTransactionInterface = new GraphQLInterfaceType({\n fields: {\n ...transactionInterfaceFields(),\n },\n name: 'Transaction',\n resolveType(transaction) {\n if (transaction.encoding === 'base58') {\n return 'TransactionBase58';\n }\n if (transaction.encoding === 'base64') {\n return 'TransactionBase64';\n }\n if (transaction.encoding === 'json') {\n return 'TransactionJson';\n }\n return 'TransactionJsonParsed';\n },\n });\n return memoisedTransactionInterface;\n};\n\n/**\n * Builds a transaction type\n * @param name The name of the transaction type\n * @param description The description of the transaction type\n * @param transaction The transaction of the transaction type\n * @returns The transaction type as a GraphQL object\n */\nconst transactionType = (\n name: string,\n description: string,\n transaction: { type: GraphQLScalarType | GraphQLObjectType }\n) =>\n new GraphQLObjectType({\n description,\n fields: {\n ...transactionInterfaceFields(),\n transaction,\n },\n interfaces: [transactionInterface()],\n name,\n });\n\nlet memoisedTransactionBase58: GraphQLObjectType | undefined;\nconst transactionBase58 = () => {\n if (!memoisedTransactionBase58)\n memoisedTransactionBase58 = transactionType(\n 'TransactionBase58',\n 'A Solana transaction as base58 encoded data',\n string()\n );\n return memoisedTransactionBase58;\n};\n\nlet memoisedTransactionBase64: GraphQLObjectType | undefined;\nconst transactionBase64 = () => {\n if (!memoisedTransactionBase64)\n memoisedTransactionBase64 = transactionType(\n 'TransactionBase64',\n 'A Solana transaction as base64 encoded data',\n string()\n );\n return memoisedTransactionBase64;\n};\n\nlet memoisedTransactionJson: GraphQLObjectType | undefined;\nconst transactionJson = () => {\n if (!memoisedTransactionJson)\n memoisedTransactionJson = transactionType(\n 'TransactionJson',\n 'A Solana transaction as a JSON object',\n type(transactionTransaction())\n );\n return memoisedTransactionJson;\n};\n\nlet memoisedTransactionJsonParsed: GraphQLObjectType | undefined;\nconst transactionJsonParsed = () => {\n if (!memoisedTransactionJsonParsed)\n memoisedTransactionJsonParsed = transactionType(\n 'TransactionJsonParsed',\n 'A Solana transaction as a parsed JSON object',\n type(transactionTransaction())\n );\n return memoisedTransactionJsonParsed;\n};\n\nlet memoisedTransactionTypes: GraphQLObjectType[] | undefined;\nexport const transactionTypes = () => {\n if (!memoisedTransactionTypes)\n memoisedTransactionTypes = [\n partiallyDecodedTransactionInstruction(),\n ...parsedInstructionsAddressLookupTable(),\n ...parsedInstructionsBpfLoader(),\n ...parsedInstructionsBpfUpgradeableLoader(),\n ...parsedInstructionsStake(),\n ...parsedInstructionsSplAssociatedToken(),\n parsedInstructionSplMemo(),\n ...parsedInstructionsSplToken(),\n ...parsedInstructionsSystem(),\n ...parsedInstructionsVote(),\n transactionMetaUnparsed(),\n transactionMetaParsed(),\n transactionMessageUnparsed(),\n transactionMessageParsed(),\n transactionBase58(),\n transactionBase64(),\n transactionJson(),\n transactionJsonParsed(),\n ];\n return memoisedTransactionTypes;\n};\n","import { Commitment } from '@solana/rpc-types';\nimport { TransactionSignature, TransactionVersion } from '@solana/transactions';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { commitmentInputType, maxSupportedTransactionVersionInputType, transactionEncodingInputType } from '../inputs';\nimport { nonNull, string, type } from '../picks';\nimport { transactionInterface } from './types';\n\nexport type TransactionQueryArgs = {\n signature: TransactionSignature;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: Exclude<TransactionVersion, 'legacy'>;\n};\n\n/**\n * Transaction root query for GraphQL\n */\nexport const transactionQuery = () => ({\n transaction: {\n args: {\n commitment: type(commitmentInputType()),\n encoding: type(transactionEncodingInputType()),\n maxSupportedTransactionVersion: type(maxSupportedTransactionVersionInputType()),\n signature: nonNull(string()),\n },\n resolve: (_parent: unknown, args: TransactionQueryArgs, context: RpcGraphQLContext) =>\n context.resolveTransaction(args),\n type: transactionInterface(),\n },\n});\n","import { Slot } from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\nimport { TransactionVersion } from '@solana/transactions';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { blockTransactionDetailsInputType, commitmentInputType, transactionEncodingInputType } from '../inputs';\nimport { bigint, boolean, nonNull, string, type } from '../picks';\nimport { blockInterface } from './types';\n\nexport type BlockQueryArgs = {\n slot: Slot;\n commitment?: Commitment;\n encoding?: 'base58' | 'base64' | 'json' | 'jsonParsed';\n maxSupportedTransactionVersion?: Exclude<TransactionVersion, 'legacy'>;\n rewards?: boolean;\n transactionDetails?: 'accounts' | 'full' | 'none' | 'signatures';\n};\n\n/**\n * Block root query for GraphQL\n */\nexport const blockQuery = () => ({\n block: {\n args: {\n commitment: type(commitmentInputType()),\n encoding: type(transactionEncodingInputType()),\n maxSupportedTransactionVersion: string(),\n rewards: boolean(),\n slot: nonNull(bigint()),\n transactionDetails: type(blockTransactionDetailsInputType()),\n },\n resolve: (_parent: unknown, args: BlockQueryArgs, context: RpcGraphQLContext) => context.resolveBlock(args),\n type: blockInterface(),\n },\n});\n","import { Base58EncodedAddress } from '@solana/addresses';\nimport {\n DataSlice,\n GetProgramAccountsDatasizeFilter,\n GetProgramAccountsMemcmpFilter,\n Slot,\n} from '@solana/rpc-core/dist/types/rpc-methods/common';\nimport { Commitment } from '@solana/rpc-types';\nimport { GraphQLList } from 'graphql';\n\nimport { RpcGraphQLContext } from '../../context';\nimport { accountInterface } from '../account';\nimport {\n accountEncodingInputType,\n commitmentInputType,\n dataSliceInputType,\n programAccountFilterInputType,\n} from '../inputs';\nimport { bigint, list, nonNull, string, type } from '../picks';\n\nexport type ProgramAccountsQueryArgs = {\n programAddress: Base58EncodedAddress;\n commitment?: Commitment;\n dataSlice?: DataSlice;\n encoding?: 'base58' | 'base64' | 'base64+zstd' | 'jsonParsed';\n filters: (GetProgramAccountsMemcmpFilter | GetProgramAccountsDatasizeFilter)[];\n minContextSlot?: Slot;\n withContext?: boolean;\n};\n\n/**\n * Program accounts root query for GraphQL\n */\nexport const programAccountsQuery = () => ({\n programAccounts: {\n args: {\n commitment: type(commitmentInputType()),\n dataSlice: type(dataSliceInputType()),\n encoding: type(accountEncodingInputType()),\n filters: list(type(programAccountFilterInputType())),\n minContextSlot: bigint(),\n programAddress: nonNull(string()),\n withContext: string(),\n },\n resolve: (_parent: unknown, args: ProgramAccountsQueryArgs, context: RpcGraphQLContext) =>\n context.resolveProgramAccounts(args),\n type: new GraphQLList(accountInterface()),\n },\n});\n"]}
|