@dynamic-labs-sdk/tempo 0.0.0 → 1.41.0
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 +97 -0
- package/dist/TempoNetworkProvider.types.d.ts +12 -0
- package/dist/TempoNetworkProvider.types.d.ts.map +1 -0
- package/dist/TempoWalletAccount.types.d.ts +12 -0
- package/dist/TempoWalletAccount.types.d.ts.map +1 -0
- package/dist/TempoWalletProvider.types.d.ts +48 -0
- package/dist/TempoWalletProvider.types.d.ts.map +1 -0
- package/dist/addTempoExtension/addTempoExtension.d.ts +24 -0
- package/dist/addTempoExtension/addTempoExtension.d.ts.map +1 -0
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/errors/InvalidTempoNetworkError/InvalidTempoNetworkError.d.ts +19 -0
- package/dist/errors/InvalidTempoNetworkError/InvalidTempoNetworkError.d.ts.map +1 -0
- package/dist/errors/InvalidTempoNetworkError/index.d.ts +2 -0
- package/dist/errors/InvalidTempoNetworkError/index.d.ts.map +1 -0
- package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/TempoBusinessAccountTransactionNotSupportedError.d.ts +17 -0
- package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/TempoBusinessAccountTransactionNotSupportedError.d.ts.map +1 -0
- package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/index.d.ts +2 -0
- package/dist/errors/TempoBusinessAccountTransactionNotSupportedError/index.d.ts.map +1 -0
- package/dist/errors/TempoNativeTokenError/TempoNativeTokenError.d.ts +17 -0
- package/dist/errors/TempoNativeTokenError/TempoNativeTokenError.d.ts.map +1 -0
- package/dist/errors/TempoRawMessageNotUtf8Error/TempoRawMessageNotUtf8Error.d.ts +17 -0
- package/dist/errors/TempoRawMessageNotUtf8Error/TempoRawMessageNotUtf8Error.d.ts.map +1 -0
- package/dist/errors/TempoRawMessageNotUtf8Error/index.d.ts +2 -0
- package/dist/errors/TempoRawMessageNotUtf8Error/index.d.ts.map +1 -0
- package/dist/errors/TempoTransactionValidationError/TempoTransactionValidationError.d.ts +19 -0
- package/dist/errors/TempoTransactionValidationError/TempoTransactionValidationError.d.ts.map +1 -0
- package/dist/errors/TempoTransactionValidationError/index.d.ts +2 -0
- package/dist/errors/TempoTransactionValidationError/index.d.ts.map +1 -0
- package/dist/errors/TempoTypedDataNotSupportedError/TempoTypedDataNotSupportedError.d.ts +17 -0
- package/dist/errors/TempoTypedDataNotSupportedError/TempoTypedDataNotSupportedError.d.ts.map +1 -0
- package/dist/errors/TempoTypedDataNotSupportedError/index.d.ts +2 -0
- package/dist/errors/TempoTypedDataNotSupportedError/index.d.ts.map +1 -0
- package/dist/exports/index.d.ts +12 -0
- package/dist/exports/index.d.ts.map +1 -0
- package/dist/exports/waas.d.ts +9 -0
- package/dist/exports/waas.d.ts.map +1 -0
- package/dist/getTempoPublicClient/getTempoPublicClient.d.ts +28 -0
- package/dist/getTempoPublicClient/getTempoPublicClient.d.ts.map +1 -0
- package/dist/index.cjs +65 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +57 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/isTempoNetworkProvider/isTempoNetworkProvider.d.ts +17 -0
- package/dist/isTempoNetworkProvider/isTempoNetworkProvider.d.ts.map +1 -0
- package/dist/isTempoWalletAccount/isTempoWalletAccount.d.ts +19 -0
- package/dist/isTempoWalletAccount/isTempoWalletAccount.d.ts.map +1 -0
- package/dist/isTempoWalletProvider/isTempoWalletProvider.d.ts +21 -0
- package/dist/isTempoWalletProvider/isTempoWalletProvider.d.ts.map +1 -0
- package/dist/registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder.d.ts +4 -0
- package/dist/registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder.d.ts.map +1 -0
- package/dist/sendTip20Transaction/sendTip20Transaction.d.ts +40 -0
- package/dist/sendTip20Transaction/sendTip20Transaction.d.ts.map +1 -0
- package/dist/tempoChainIds-Ce9YCriF.cjs +301 -0
- package/dist/tempoChainIds-Ce9YCriF.cjs.map +1 -0
- package/dist/tempoChainIds-Dt0jiwLT.esm.js +236 -0
- package/dist/tempoChainIds-Dt0jiwLT.esm.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/utils/createTempoNetworkProvider/createTempoNetworkProvider.d.ts +5 -0
- package/dist/utils/createTempoNetworkProvider/createTempoNetworkProvider.d.ts.map +1 -0
- package/dist/utils/mapNetworkDataToViemChain/index.d.ts +2 -0
- package/dist/utils/mapNetworkDataToViemChain/index.d.ts.map +1 -0
- package/dist/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.d.ts +19 -0
- package/dist/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.d.ts.map +1 -0
- package/dist/utils/tempoChainIds/tempoChainIds.d.ts +22 -0
- package/dist/utils/tempoChainIds/tempoChainIds.d.ts.map +1 -0
- package/dist/utils/tempoConfirmTransaction/index.d.ts +2 -0
- package/dist/utils/tempoConfirmTransaction/index.d.ts.map +1 -0
- package/dist/utils/tempoConfirmTransaction/tempoConfirmTransaction.d.ts +21 -0
- package/dist/utils/tempoConfirmTransaction/tempoConfirmTransaction.d.ts.map +1 -0
- package/dist/utils/tempoTransferAmount/index.d.ts +2 -0
- package/dist/utils/tempoTransferAmount/index.d.ts.map +1 -0
- package/dist/utils/tempoTransferAmount/tempoTransferAmount.d.ts +37 -0
- package/dist/utils/tempoTransferAmount/tempoTransferAmount.d.ts.map +1 -0
- package/dist/waas/WaasTempoWalletProvider.types.d.ts +23 -0
- package/dist/waas/WaasTempoWalletProvider.types.d.ts.map +1 -0
- package/dist/waas/addWaasTempoExtension/addWaasTempoExtension.d.ts +21 -0
- package/dist/waas/addWaasTempoExtension/addWaasTempoExtension.d.ts.map +1 -0
- package/dist/waas/addWaasTempoExtension/index.d.ts +2 -0
- package/dist/waas/addWaasTempoExtension/index.d.ts.map +1 -0
- package/dist/waas/sendTempoTransaction/index.d.ts +2 -0
- package/dist/waas/sendTempoTransaction/index.d.ts.map +1 -0
- package/dist/waas/sendTempoTransaction/sendTempoTransaction.d.ts +42 -0
- package/dist/waas/sendTempoTransaction/sendTempoTransaction.d.ts.map +1 -0
- package/dist/waas/utils/assertValidTempoTransactionCalls/assertValidTempoTransactionCalls.d.ts +18 -0
- package/dist/waas/utils/assertValidTempoTransactionCalls/assertValidTempoTransactionCalls.d.ts.map +1 -0
- package/dist/waas/utils/assertValidTempoTransactionCalls/index.d.ts +2 -0
- package/dist/waas/utils/assertValidTempoTransactionCalls/index.d.ts.map +1 -0
- package/dist/waas/utils/assertValidTempoTransactionRequest/assertValidTempoTransactionRequest.d.ts +41 -0
- package/dist/waas/utils/assertValidTempoTransactionRequest/assertValidTempoTransactionRequest.d.ts.map +1 -0
- package/dist/waas/utils/assertValidTempoTransactionRequest/index.d.ts +3 -0
- package/dist/waas/utils/assertValidTempoTransactionRequest/index.d.ts.map +1 -0
- package/dist/waas/utils/createViemWalletClientForWaasTempo/createViemWalletClientForWaasTempo.d.ts +41 -0
- package/dist/waas/utils/createViemWalletClientForWaasTempo/createViemWalletClientForWaasTempo.d.ts.map +1 -0
- package/dist/waas/utils/createViemWalletClientForWaasTempo/index.d.ts +2 -0
- package/dist/waas/utils/createViemWalletClientForWaasTempo/index.d.ts.map +1 -0
- package/dist/waas/utils/createWalletProviderForWaasTempo/createWalletProviderForWaasTempo.d.ts +23 -0
- package/dist/waas/utils/createWalletProviderForWaasTempo/createWalletProviderForWaasTempo.d.ts.map +1 -0
- package/dist/waas/utils/createWalletProviderForWaasTempo/index.d.ts +2 -0
- package/dist/waas/utils/createWalletProviderForWaasTempo/index.d.ts.map +1 -0
- package/dist/waas/utils/isBusinessAccountWalletAccount/index.d.ts +2 -0
- package/dist/waas/utils/isBusinessAccountWalletAccount/index.d.ts.map +1 -0
- package/dist/waas/utils/isBusinessAccountWalletAccount/isBusinessAccountWalletAccount.d.ts +23 -0
- package/dist/waas/utils/isBusinessAccountWalletAccount/isBusinessAccountWalletAccount.d.ts.map +1 -0
- package/dist/waas/utils/serializeTempoTransactionForWaas/index.d.ts +3 -0
- package/dist/waas/utils/serializeTempoTransactionForWaas/index.d.ts.map +1 -0
- package/dist/waas/utils/serializeTempoTransactionForWaas/serializeTempoTransactionForWaas.d.ts +57 -0
- package/dist/waas/utils/serializeTempoTransactionForWaas/serializeTempoTransactionForWaas.d.ts.map +1 -0
- package/dist/waas/utils/signMessage/index.d.ts +2 -0
- package/dist/waas/utils/signMessage/index.d.ts.map +1 -0
- package/dist/waas/utils/signMessage/signMessage.d.ts +38 -0
- package/dist/waas/utils/signMessage/signMessage.d.ts.map +1 -0
- package/dist/waas/utils/signRawMessage/index.d.ts +2 -0
- package/dist/waas/utils/signRawMessage/index.d.ts.map +1 -0
- package/dist/waas/utils/signRawMessage/signRawMessage.d.ts +37 -0
- package/dist/waas/utils/signRawMessage/signRawMessage.d.ts.map +1 -0
- package/dist/waas.cjs +758 -0
- package/dist/waas.cjs.map +1 -0
- package/dist/waas.esm.js +754 -0
- package/dist/waas.esm.js.map +1 -0
- package/package.json +46 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tempoChainIds-Dt0jiwLT.esm.js","names":[],"sources":["../package.json","../src/errors/TempoNativeTokenError/TempoNativeTokenError.ts","../src/utils/createTempoNetworkProvider/createTempoNetworkProvider.ts","../src/registerTempoNetworkProviderBuilder/registerTempoNetworkProviderBuilder.ts","../src/utils/mapNetworkDataToViemChain/mapNetworkDataToViemChain.ts","../src/getTempoPublicClient/getTempoPublicClient.ts","../src/isTempoWalletAccount/isTempoWalletAccount.ts","../src/isTempoWalletProvider/isTempoWalletProvider.ts","../src/sendTip20Transaction/sendTip20Transaction.ts","../src/utils/tempoChainIds/tempoChainIds.ts"],"sourcesContent":["","import { BaseError } from '@dynamic-labs-sdk/client';\n\n/**\n * Thrown when a Tempo transaction is attempted without a TIP-20 token contract address.\n * Tempo has no native token, so all value transfers require a token contract address.\n *\n * @example\n * ```ts\n * throw new TempoNativeTokenError();\n * ```\n *\n * @see sendTip20Transaction\n * @see TempoWalletProvider\n */\nexport class TempoNativeTokenError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'tempo_native_token_error',\n docsUrl: null,\n name: 'TempoNativeTokenError',\n shortMessage:\n 'Tempo has no native token. Provide a TIP-20 token contract address via tokenAddress.',\n });\n }\n}\n","import type { DynamicClient, NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TempoNetworkProvider } from '../../TempoNetworkProvider.types';\n\n/** @notInstrumented */\nexport const createTempoNetworkProvider = (\n networkData: NetworkData,\n // Tempo has no native token so no RPC balance call is needed.\n // The client param is kept to match the builder signature.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n client: DynamicClient\n): TempoNetworkProvider => ({\n ...createBaseNetworkProvider('TEMPO', networkData),\n getBalance: async () => ({ balance: '0' }),\n});\n","import { type DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createTempoNetworkProvider } from '../utils/createTempoNetworkProvider/createTempoNetworkProvider';\n\n/** @notInstrumented */\nexport const registerTempoNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('TEMPO')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: (networkData) => createTempoNetworkProvider(networkData, client),\n chain: 'TEMPO',\n });\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport type { Chain } from 'viem';\n\n/**\n * Creates a viem Chain object from a NetworkData object.\n * This is a local implementation (not re-exported from EVM) so that the Chain\n * type is always resolved from the same viem instance used by Tempo's viem clients.\n *\n * @param networkData - The network data to convert.\n * @returns The viem chain for the network.\n * @example\n * ```ts\n * const chain = mapNetworkDataToViemChain(networkData);\n * ```\n * @see getTempoPublicClient\n * @see isTempoChainId\n * @notInstrumented\n */\nexport const mapNetworkDataToViemChain = (networkData: NetworkData): Chain => ({\n blockExplorers: networkData.blockExplorerUrls?.[0]\n ? {\n default: {\n name: networkData.blockExplorerUrls[0],\n url: networkData.blockExplorerUrls[0],\n },\n }\n : undefined,\n id: Number(networkData.networkId),\n name: networkData.displayName,\n nativeCurrency: networkData.nativeCurrency,\n rpcUrls: {\n default: { http: networkData.rpcUrls.http },\n },\n});\n","import {\n type WalletAccount,\n getActiveNetworkData,\n} from '@dynamic-labs-sdk/client';\nimport { assertDefined, getDefaultClient } from '@dynamic-labs-sdk/client/core';\nimport type { Chain, PublicClient, Transport } from 'viem';\nimport { createPublicClient, http } from 'viem';\n\nimport { mapNetworkDataToViemChain } from '../utils/mapNetworkDataToViemChain';\n\ntype GetTempoPublicClientParams = {\n walletAccount: WalletAccount;\n};\n\n/**\n * Returns a viem PublicClient for the active Tempo network.\n * Network data (RPC URL, chain config) is resolved from the 'TEMPO' network\n * registry at runtime — not from EVM.\n *\n * @param params.walletAccount - Must have chain === 'TEMPO'.\n * @param [client] - The Dynamic client instance. Only required when using multiple clients.\n * @returns A viem public client connected to the wallet account's active Tempo network.\n * @throws If no network data is found for the wallet account.\n * @example\n * ```ts\n * if (isTempoWalletAccount(walletAccount)) {\n * const publicClient = await getTempoPublicClient({ walletAccount });\n * const blockNumber = await publicClient.getBlockNumber();\n * }\n * ```\n * @see isTempoWalletAccount\n * @see sendTip20Transaction\n * @notInstrumented\n */\nexport const getTempoPublicClient = async (\n { walletAccount }: GetTempoPublicClientParams,\n client = getDefaultClient()\n): Promise<PublicClient<Transport, Chain>> => {\n const { networkData } = await getActiveNetworkData({ walletAccount }, client);\n\n assertDefined(\n networkData,\n `No network data found for Tempo wallet account ${walletAccount.address}`\n );\n\n return createPublicClient({\n chain: mapNetworkDataToViemChain(networkData),\n transport: http(networkData.rpcUrls.http[0]),\n });\n};\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { TempoWalletAccount } from '../TempoWalletAccount.types';\n\n/**\n * Type guard — returns true if the wallet account is for the Tempo chain.\n *\n * @param account - The wallet account to check.\n * @returns Whether the wallet account is a Tempo wallet account.\n * @example\n * ```ts\n * if (isTempoWalletAccount(walletAccount)) {\n * const publicClient = await getTempoPublicClient({ walletAccount });\n * }\n * ```\n * @see isTempoWalletProvider\n * @see getTempoPublicClient\n * @notInstrumented\n */\nexport const isTempoWalletAccount = (\n account: WalletAccount | TempoWalletAccount\n): account is TempoWalletAccount => account.chain === 'TEMPO';\n","import type { WalletProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { TempoWalletProvider } from '../TempoWalletProvider.types';\n\n/**\n * Type guard — returns true if the wallet provider is for the Tempo chain.\n *\n * @param provider - The wallet provider to check.\n * @returns Whether the wallet provider is a Tempo wallet provider.\n * @example\n * ```ts\n * const walletProvider = getWalletProviderFromWalletAccount({ walletAccount });\n *\n * if (isTempoWalletProvider(walletProvider)) {\n * console.log(walletProvider.supportsFeeTokenSelection); // true\n * }\n * ```\n * @see isTempoWalletAccount\n * @see isTempoNetworkProvider\n * @notInstrumented\n */\nexport const isTempoWalletProvider = (\n provider: WalletProvider | TempoWalletProvider\n): provider is TempoWalletProvider => provider.chain === 'TEMPO';\n","import type { Account, Chain, Hex, Transport, WalletClient } from 'viem';\nimport { parseUnits } from 'viem';\n\nimport { TempoNativeTokenError } from '../errors/TempoNativeTokenError/TempoNativeTokenError';\n\nconst erc20TransferAbi = [\n {\n inputs: [\n { name: '_to', type: 'address' },\n { name: '_value', type: 'uint256' },\n ],\n name: 'transfer',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n] as const;\n\ntype SendTip20TransactionParams = {\n /** Human-readable amount, e.g. '1.5' */\n amount: string;\n /** Token decimals — defaults to 18 */\n decimals?: number;\n /** Recipient address */\n to: string;\n /** TIP-20 token contract address. Required — Tempo has no native token. */\n tokenAddress: string;\n /** Viem WalletClient with a Tempo account. Obtain from the Tempo wallet provider. */\n walletClient: WalletClient<Transport, Chain, Account>;\n};\n\n/**\n * Sends a TIP-20 token transfer on a Tempo network.\n * Tempo has no native token — all transfers require a token contract address.\n *\n * @param params.amount - Human-readable amount, e.g. '1.5'.\n * @param [params.decimals] - Token decimals. Defaults to 18.\n * @param params.to - Recipient address.\n * @param params.tokenAddress - TIP-20 token contract address.\n * @param params.walletClient - Viem wallet client with a Tempo account.\n * @returns The transaction hash.\n * @throws {TempoNativeTokenError} If tokenAddress is empty.\n * @example\n * ```ts\n * const hash = await sendTip20Transaction({\n * amount: '1.5',\n * to: '0xRecipient',\n * tokenAddress: '0xTip20Token',\n * walletClient,\n * });\n * ```\n * @see getTempoPublicClient\n * @see isTempoWalletAccount\n * @notInstrumented\n */\nexport const sendTip20Transaction = async ({\n amount,\n decimals = 18,\n to,\n tokenAddress,\n walletClient,\n}: SendTip20TransactionParams): Promise<Hex> => {\n if (!tokenAddress) {\n throw new TempoNativeTokenError();\n }\n\n return walletClient.writeContract({\n abi: erc20TransferAbi,\n address: tokenAddress as Hex,\n args: [to as Hex, parseUnits(amount, decimals)],\n functionName: 'transfer',\n });\n};\n","/* eslint-disable custom-rules/function-name-matches-filename */\n/**\n * Immutable protocol-level chain IDs for all Tempo networks.\n * Used by isTempoChainId to identify Tempo chains.\n */\nexport const TEMPO_CHAIN_IDS = [4217, 42429, 42431] as const;\n\n/**\n * Returns true if networkId belongs to a Tempo network.\n * Tempo is EVM-compatible but has no native token and uses custom transaction formats.\n *\n * @param networkId - The network id to check, as a string or number.\n * @returns Whether the network id is one of the Tempo network ids.\n * @example\n * ```ts\n * isTempoChainId('4217'); // true\n * isTempoChainId(1); // false\n * ```\n * @see TEMPO_CHAIN_IDS\n * @see isTempoNetworkProvider\n * @notInstrumented\n */\nexport const isTempoChainId = (networkId: string | number): boolean =>\n TEMPO_CHAIN_IDS.includes(\n Number(networkId) as (typeof TEMPO_CHAIN_IDS)[number]\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;ACcA,IAAa,wBAAb,cAA2C,UAAU;CACnD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,MAAM;GACN,cACE;GACH,CAAC;;;;;;;ACjBN,MAAa,8BACX,aAIA,YAC0B;CAC1B,GAAG,0BAA0B,SAAS,YAAY;CAClD,YAAY,aAAa,EAAE,SAAS,KAAK;CAC1C;;;;;ACTD,MAAa,uCACX,WACS;CACT,MAAM,iCACJ,kCAAkC,OAAO;AAE3C,KAAI,+BAA+B,KAAK,CAAC,IAAI,QAAQ,CACnD;AAGF,gCAA+B,SAAS;EACtC,UAAU,gBAAgB,2BAA2B,aAAa,OAAO;EACzE,OAAO;EACR,CAAC;;;;;;;;;;;;;;;;;;;;ACDJ,MAAa,6BAA6B,iBAAqC;CAC7E,gBAAgB,YAAY,oBAAoB,KAC5C,EACE,SAAS;EACP,MAAM,YAAY,kBAAkB;EACpC,KAAK,YAAY,kBAAkB;EACpC,EACF,GACD;CACJ,IAAI,OAAO,YAAY,UAAU;CACjC,MAAM,YAAY;CAClB,gBAAgB,YAAY;CAC5B,SAAS,EACP,SAAS,EAAE,MAAM,YAAY,QAAQ,MAAM,EAC5C;CACF;;;;;;;;;;;;;;;;;;;;;;;;ACCD,MAAa,uBAAuB,OAClC,EAAE,iBACF,SAAS,kBAAkB,KACiB;CAC5C,MAAM,EAAE,gBAAgB,MAAM,qBAAqB,EAAE,eAAe,EAAE,OAAO;AAE7E,eACE,aACA,kDAAkD,cAAc,UACjE;AAED,QAAO,mBAAmB;EACxB,OAAO,0BAA0B,YAAY;EAC7C,WAAW,KAAK,YAAY,QAAQ,KAAK,GAAG;EAC7C,CAAC;;;;;;;;;;;;;;;;;;;;AC7BJ,MAAa,wBACX,YACkC,QAAQ,UAAU;;;;;;;;;;;;;;;;;;;;;ACAtD,MAAa,yBACX,aACoC,SAAS,UAAU;;;;AClBzD,MAAM,mBAAmB,CACvB;CACE,QAAQ,CACN;EAAE,MAAM;EAAO,MAAM;EAAW,EAChC;EAAE,MAAM;EAAU,MAAM;EAAW,CACpC;CACD,MAAM;CACN,SAAS,CAAC;EAAE,MAAM;EAAI,MAAM;EAAQ,CAAC;CACrC,iBAAiB;CACjB,MAAM;CACP,CACF;;;;;;;;;;;;;;;;;;;;;;;;;AAuCD,MAAa,uBAAuB,OAAO,EACzC,QACA,WAAW,IACX,IACA,cACA,mBAC8C;AAC9C,KAAI,CAAC,aACH,OAAM,IAAI,uBAAuB;AAGnC,QAAO,aAAa,cAAc;EAChC,KAAK;EACL,SAAS;EACT,MAAM,CAAC,IAAW,WAAW,QAAQ,SAAS,CAAC;EAC/C,cAAc;EACf,CAAC;;;;;;;;;AClEJ,MAAa,kBAAkB;CAAC;CAAM;CAAO;CAAM;;;;;;;;;;;;;;;;AAiBnD,MAAa,kBAAkB,cAC7B,gBAAgB,SACd,OAAO,UAAU,CAClB"}
|