@pufferfinance/puffer-sdk 1.25.1 → 1.25.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/api/puffer-client-helpers.cjs +1 -1
  2. package/dist/api/puffer-client-helpers.js +3 -3
  3. package/dist/api/puffer-client.cjs +1 -1
  4. package/dist/api/puffer-client.js +2 -2
  5. package/dist/{ccip-w5ez1DCx.js → ccip-C76-YhQK.js} +4 -4
  6. package/dist/{ccip-w5ez1DCx.js.map → ccip-C76-YhQK.js.map} +1 -1
  7. package/dist/{ccip-FdkpGaX4.cjs → ccip-CEodLZ4s.cjs} +2 -2
  8. package/dist/{ccip-FdkpGaX4.cjs.map → ccip-CEodLZ4s.cjs.map} +1 -1
  9. package/dist/chains/constants.cjs +1 -1
  10. package/dist/chains/constants.d.ts +2 -1
  11. package/dist/chains/constants.js +1 -1
  12. package/dist/{constants-BweLzNUt.js → constants-C9YZ6Ewc.js} +302 -274
  13. package/dist/constants-C9YZ6Ewc.js.map +1 -0
  14. package/dist/{constants-JN89aXws.cjs → constants-CxSgz27h.cjs} +6 -6
  15. package/dist/constants-CxSgz27h.cjs.map +1 -0
  16. package/dist/contracts/addresses.cjs +1 -1
  17. package/dist/contracts/addresses.js +1 -1
  18. package/dist/contracts/handlers/carrot-staking-handler.cjs +1 -1
  19. package/dist/contracts/handlers/carrot-staking-handler.js +2 -2
  20. package/dist/contracts/handlers/concrete-vault-handler.cjs +1 -1
  21. package/dist/contracts/handlers/concrete-vault-handler.js +2 -2
  22. package/dist/contracts/handlers/distributor-handler.cjs +1 -1
  23. package/dist/contracts/handlers/distributor-handler.js +2 -2
  24. package/dist/contracts/handlers/erc20-permit-handler.cjs +1 -1
  25. package/dist/contracts/handlers/erc20-permit-handler.js +3 -3
  26. package/dist/contracts/handlers/guardian-module-handler.cjs +1 -1
  27. package/dist/contracts/handlers/guardian-module-handler.js +2 -2
  28. package/dist/contracts/handlers/institutional-access-manager-handler.cjs +1 -1
  29. package/dist/contracts/handlers/institutional-access-manager-handler.js +3 -3
  30. package/dist/contracts/handlers/institutional-vault-handler.cjs +1 -1
  31. package/dist/contracts/handlers/institutional-vault-handler.js +2 -2
  32. package/dist/contracts/handlers/l1-reward-manager-handler.cjs +1 -1
  33. package/dist/contracts/handlers/l1-reward-manager-handler.js +2 -2
  34. package/dist/contracts/handlers/l2-reward-manager-handler.cjs +1 -1
  35. package/dist/contracts/handlers/l2-reward-manager-handler.js +2 -2
  36. package/dist/contracts/handlers/lagoon-vault-handler.cjs +1 -1
  37. package/dist/contracts/handlers/lagoon-vault-handler.cjs.map +1 -1
  38. package/dist/contracts/handlers/lagoon-vault-handler.d.ts +16 -0
  39. package/dist/contracts/handlers/lagoon-vault-handler.js +25 -5
  40. package/dist/contracts/handlers/lagoon-vault-handler.js.map +1 -1
  41. package/dist/contracts/handlers/mtw-carrot-handler.cjs +1 -1
  42. package/dist/contracts/handlers/mtw-carrot-handler.js +2 -2
  43. package/dist/contracts/handlers/nucleus-accountant-handler.cjs +1 -1
  44. package/dist/contracts/handlers/nucleus-accountant-handler.js +1 -1
  45. package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs +1 -1
  46. package/dist/contracts/handlers/nucleus-atomic-queue-handler.js +2 -2
  47. package/dist/contracts/handlers/nucleus-boring-vault-handler.cjs +1 -1
  48. package/dist/contracts/handlers/nucleus-boring-vault-handler.js +2 -2
  49. package/dist/contracts/handlers/nucleus-teller-handler.cjs +1 -1
  50. package/dist/contracts/handlers/nucleus-teller-handler.js +2 -2
  51. package/dist/contracts/handlers/puf-locker-handler.cjs +1 -1
  52. package/dist/contracts/handlers/puf-locker-handler.js +2 -2
  53. package/dist/contracts/handlers/puffer-depositor-handler.cjs +1 -1
  54. package/dist/contracts/handlers/puffer-depositor-handler.js +2 -2
  55. package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs +1 -1
  56. package/dist/contracts/handlers/puffer-l2-depositor-handler.js +2 -2
  57. package/dist/contracts/handlers/puffer-oracle-v2-handler.cjs +1 -1
  58. package/dist/contracts/handlers/puffer-oracle-v2-handler.js +2 -2
  59. package/dist/contracts/handlers/puffer-protocol-handler.cjs +1 -1
  60. package/dist/contracts/handlers/puffer-protocol-handler.js +2 -2
  61. package/dist/contracts/handlers/puffer-vault-handler.cjs +1 -1
  62. package/dist/contracts/handlers/puffer-vault-handler.js +2 -2
  63. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs +1 -1
  64. package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js +2 -2
  65. package/dist/contracts/handlers/validator-ticket-handler.cjs +1 -1
  66. package/dist/contracts/handlers/validator-ticket-handler.js +2 -2
  67. package/dist/contracts/tokens.cjs +1 -1
  68. package/dist/contracts/tokens.js +1 -1
  69. package/dist/contracts/vaults-addresses.cjs +1 -1
  70. package/dist/contracts/vaults-addresses.cjs.map +1 -1
  71. package/dist/contracts/vaults-addresses.d.ts +3 -0
  72. package/dist/contracts/vaults-addresses.js +4 -1
  73. package/dist/contracts/vaults-addresses.js.map +1 -1
  74. package/dist/{createWalletClient-LeyDLKOH.cjs → createWalletClient-Cct6ojqI.cjs} +2 -2
  75. package/dist/{createWalletClient-LeyDLKOH.cjs.map → createWalletClient-Cct6ojqI.cjs.map} +1 -1
  76. package/dist/{createWalletClient-CYva1_XM.js → createWalletClient-DAuQCrLq.js} +5 -5
  77. package/dist/{createWalletClient-CYva1_XM.js.map → createWalletClient-DAuQCrLq.js.map} +1 -1
  78. package/dist/{getContract-BES7gSby.js → getContract-DEPNMZxg.js} +2 -2
  79. package/dist/{getContract-BES7gSby.js.map → getContract-DEPNMZxg.js.map} +1 -1
  80. package/dist/{getContract-F-fd_vf7.cjs → getContract-DUA3M2pm.cjs} +2 -2
  81. package/dist/{getContract-F-fd_vf7.cjs.map → getContract-DUA3M2pm.cjs.map} +1 -1
  82. package/dist/{localBatchGatewayRequest-CCdxn5t3.js → localBatchGatewayRequest-C0QtijkB.js} +3 -3
  83. package/dist/{localBatchGatewayRequest-CCdxn5t3.js.map → localBatchGatewayRequest-C0QtijkB.js.map} +1 -1
  84. package/dist/{localBatchGatewayRequest-DCWU6kQW.cjs → localBatchGatewayRequest-CKLnLqib.cjs} +2 -2
  85. package/dist/{localBatchGatewayRequest-DCWU6kQW.cjs.map → localBatchGatewayRequest-CKLnLqib.cjs.map} +1 -1
  86. package/dist/main.cjs +1 -1
  87. package/dist/main.js +1 -1
  88. package/dist/{secp256k1-DGP4Y7VW.js → secp256k1-ClOw2ksU.js} +2 -2
  89. package/dist/{secp256k1-DGP4Y7VW.js.map → secp256k1-ClOw2ksU.js.map} +1 -1
  90. package/dist/{secp256k1-QOxLqUEc.cjs → secp256k1-YUzyTLhP.cjs} +2 -2
  91. package/dist/{secp256k1-QOxLqUEc.cjs.map → secp256k1-YUzyTLhP.cjs.map} +1 -1
  92. package/dist/utils/version.cjs +1 -1
  93. package/dist/utils/version.js +1 -1
  94. package/dist/{writeContract-Cqc9vxbU.cjs → writeContract-BfAYISeL.cjs} +4 -4
  95. package/dist/{writeContract-Cqc9vxbU.cjs.map → writeContract-BfAYISeL.cjs.map} +1 -1
  96. package/dist/{writeContract-QAArm5iD.js → writeContract-DkC9wV5p.js} +4 -4
  97. package/dist/{writeContract-QAArm5iD.js.map → writeContract-DkC9wV5p.js.map} +1 -1
  98. package/package.json +1 -1
  99. package/dist/constants-BweLzNUt.js.map +0 -1
  100. package/dist/constants-JN89aXws.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-JN89aXws.cjs","sources":["../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/data/isHex.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/data/size.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/version.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/base.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/data.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/data/pad.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/encoding.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/data/trim.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/encoding/fromHex.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/encoding/toHex.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/encoding/toBytes.js","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_u64.js","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/crypto.js","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha3.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/hash/keccak256.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/address.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/lru.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/address/getAddress.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/address/isAddress.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/data/concat.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/data/slice.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/cursor.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/cursor.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/constants/unit.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/unit/formatUnits.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/unit/formatEther.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/unit/formatGwei.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/transaction.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/encoding/toRlp.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/node.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/formatters/formatter.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/constants/number.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/formatters/transaction.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/formatters/block.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/blob/blobsToCommitments.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/blob/blobsToProofs.js","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha2.js","../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/sha256.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/hash/sha256.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/blob/commitmentToVersionedHash.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/blob/commitmentsToVersionedHashes.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/constants/blob.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/constants/kzg.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/blob.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/blob/toBlobs.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/blob/toBlobSidecars.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/transaction/getTransactionType.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/formatters/log.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/errors/chain.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/formatters/transactionReceipt.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/chain/defineChain.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/transaction/assertTransaction.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/transaction/serializeAccessList.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/transaction/serializeTransaction.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/utils/authorization/serializeAuthorizationList.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/op-stack/contracts.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/op-stack/formatters.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/op-stack/serializers.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/op-stack/chainConfig.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/apeChain.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/arbitrum.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/base.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/baseSepolia.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/berachain.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/bsc.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/holesky.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/hoodi.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/mainnet.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/optimismSepolia.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/sepolia.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/soneium.js","../node_modules/.pnpm/viem@2.33.1_typescript@5.8.2_zod@3.24.2/node_modules/viem/_esm/chains/definitions/zircuit.js","../lib/chains/constants.ts"],"sourcesContent":["export function isHex(value, { strict = true } = {}) {\n if (!value)\n return false;\n if (typeof value !== 'string')\n return false;\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\n//# sourceMappingURL=isHex.js.map","import { isHex } from './isHex.js';\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value) {\n if (isHex(value, { strict: false }))\n return Math.ceil((value.length - 2) / 2);\n return value.length;\n}\n//# sourceMappingURL=size.js.map","export const version = '2.33.1';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nlet errorConfig = {\n getDocsUrl: ({ docsBaseUrl, docsPath = '', docsSlug, }) => docsPath\n ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${docsSlug ? `#${docsSlug}` : ''}`\n : undefined,\n version: `viem@${version}`,\n};\nexport function setErrorConfig(config) {\n errorConfig = config;\n}\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n const details = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.details;\n if (args.cause?.message)\n return args.cause.message;\n return args.details;\n })();\n const docsPath = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.docsPath || args.docsPath;\n return args.docsPath;\n })();\n const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath });\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n ].join('\\n');\n super(message, args.cause ? { cause: args.cause } : undefined);\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseError'\n });\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.name = args.name ?? this.name;\n this.shortMessage = shortMessage;\n this.version = version;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err &&\n typeof err === 'object' &&\n 'cause' in err &&\n err.cause !== undefined)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \"${offset}\" is out-of-bounds (size: ${size}).`, { name: 'SliceOffsetOutOfBoundsError' });\n }\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`, { name: 'SizeExceedsPaddingSizeError' });\n }\n}\nexport class InvalidBytesLengthError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} is expected to be ${targetSize} ${type} long, but is ${size} ${type} long.`, { name: 'InvalidBytesLengthError' });\n }\n}\n//# sourceMappingURL=data.js.map","import { SizeExceedsPaddingSizeError, } from '../../errors/data.js';\nexport function pad(hexOrBytes, { dir, size = 32 } = {}) {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size });\n return padBytes(hexOrBytes, { dir, size });\n}\nexport function padHex(hex_, { dir, size = 32 } = {}) {\n if (size === null)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\nexport function padBytes(bytes, { dir, size = 32 } = {}) {\n if (size === null)\n return bytes;\n if (bytes.length > size)\n throw new SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n//# sourceMappingURL=pad.js.map","import { BaseError } from './base.js';\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`, { name: 'IntegerOutOfRangeError' });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`, {\n name: 'InvalidBytesBooleanError',\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`, { name: 'InvalidHexBooleanError' });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`, { name: 'InvalidHexValueError' });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`, { name: 'SizeOverflowError' });\n }\n}\n//# sourceMappingURL=encoding.js.map","export function trim(hexOrBytes, { dir = 'left' } = {}) {\n let data = typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (typeof hexOrBytes === 'string') {\n if (data.length === 1 && dir === 'right')\n data = `${data}0`;\n return `0x${data.length % 2 === 1 ? `0${data}` : data}`;\n }\n return data;\n}\n//# sourceMappingURL=trim.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\n const value = BigInt(value_);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n });\n }\n const hex = `0x${(signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { isHex } from '../data/isHex.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nimport { numberToHex, } from './toHex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes\n * - Example: https://viem.sh/docs/utilities/toBytes#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts);\n if (typeof value === 'boolean')\n return boolToBytes(value, opts);\n if (isHex(value))\n return hexToBytes(value, opts);\n return stringToBytes(value, opts);\n}\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value, opts = {}) {\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { size: opts.size });\n }\n return bytes;\n}\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\nfunction charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = pad(hex, { dir: 'right', size: opts.size });\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(value, opts) {\n const hex = numberToHex(value, opts);\n return hexToBytes(hex);\n}\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(value, opts = {}) {\n const bytes = encoder.encode(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { dir: 'right', size: opts.size });\n }\n return bytes;\n}\n//# sourceMappingURL=toBytes.js.map","/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig };\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","export const crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map","/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a) {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nexport function anumber(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nexport function abytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nexport function ahash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out, instance) {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr) {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr) {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays) {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word, shift) {\n return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word, shift) {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nexport function byteSwap(word) {\n return (((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE = isLE\n ? (n) => n\n : (n) => byteSwap(n);\n/** @deprecated */\nexport const byteSwapIfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\nexport const swap32IfBE = isLE\n ? (u) => u\n : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin)\n return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n if (ch >= asciis._0 && ch <= asciis._9)\n return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F)\n return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f)\n return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin)\n return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async () => { };\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes) {\n return new TextDecoder().decode(bytes);\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\n/** For runtime check if class implements interface */\nexport class Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function createOptHasher(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function createXOFer(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport const wrapConstructor = createHasher;\nexport const wrapConstructorWithOpts = createOptHasher;\nexport const wrapXOFConstructorWithOpts = createXOFer;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from \"./_u64.js\";\n// prettier-ignore\nimport { abytes, aexists, anumber, aoutput, clean, createHasher, createXOFer, Hash, swap32IfBE, toBytes, u32 } from \"./utils.js\";\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst IOTAS = split(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n clean(B);\n}\n/** Keccak sponge function. */\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n this.enableXOF = false;\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n anumber(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n clone() {\n return this._cloneInto();\n }\n keccak() {\n swap32IfBE(this.state32);\n keccakP(this.state32, this.rounds);\n swap32IfBE(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { blockLen, state } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n aexists(this, false);\n abytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n anumber(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n aoutput(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n clean(this.state);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => createHasher(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-224 hash function. */\nexport const sha3_224 = /* @__PURE__ */ (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256 = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexport const sha3_384 = /* @__PURE__ */ (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexport const sha3_512 = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();\n/** keccak-224 hash function. */\nexport const keccak_224 = /* @__PURE__ */ (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256 = /* @__PURE__ */ (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexport const keccak_384 = /* @__PURE__ */ (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexport const keccak_512 = /* @__PURE__ */ (() => gen(0x01, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => createXOFer((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128 = /* @__PURE__ */ (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256 = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();\n//# sourceMappingURL=sha3.js.map","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","import { BaseError } from './base.js';\nexport class InvalidAddressError extends BaseError {\n constructor({ address }) {\n super(`Address \"${address}\" is invalid.`, {\n metaMessages: [\n '- Address must be a hex value of 20 bytes (40 hex characters).',\n '- Address must match its checksum counterpart.',\n ],\n name: 'InvalidAddressError',\n });\n }\n}\n//# sourceMappingURL=address.js.map","/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n constructor(size) {\n super();\n Object.defineProperty(this, \"maxSize\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.maxSize = size;\n }\n get(key) {\n const value = super.get(key);\n if (super.has(key) && value !== undefined) {\n this.delete(key);\n super.set(key, value);\n }\n return value;\n }\n set(key, value) {\n super.set(key, value);\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = this.keys().next().value;\n if (firstKey)\n this.delete(firstKey);\n }\n return this;\n }\n}\n//# sourceMappingURL=lru.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { LruMap } from '../lru.js';\nimport { isAddress } from './isAddress.js';\nconst checksumAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function checksumAddress(address_, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (checksumAddressCache.has(`${address_}.${chainId}`))\n return checksumAddressCache.get(`${address_}.${chainId}`);\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n const result = `0x${address.join('')}`;\n checksumAddressCache.set(`${address_}.${chainId}`, result);\n return result;\n}\nexport function getAddress(address, \n/**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\nchainId) {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","import { LruMap } from '../lru.js';\nimport { checksumAddress } from './getAddress.js';\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/;\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap(8192);\nexport function isAddress(address, options) {\n const { strict = true } = options ?? {};\n const cacheKey = `${address}.${strict}`;\n if (isAddressCache.has(cacheKey))\n return isAddressCache.get(cacheKey);\n const result = (() => {\n if (!addressRegex.test(address))\n return false;\n if (address.toLowerCase() === address)\n return true;\n if (strict)\n return checksumAddress(address) === address;\n return true;\n })();\n isAddressCache.set(cacheKey, result);\n return result;\n}\n//# sourceMappingURL=isAddress.js.map","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","import { BaseError } from './base.js';\nexport class NegativeOffsetError extends BaseError {\n constructor({ offset }) {\n super(`Offset \\`${offset}\\` cannot be negative.`, {\n name: 'NegativeOffsetError',\n });\n }\n}\nexport class PositionOutOfBoundsError extends BaseError {\n constructor({ length, position }) {\n super(`Position \\`${position}\\` is out of bounds (\\`0 < position < ${length}\\`).`, { name: 'PositionOutOfBoundsError' });\n }\n}\nexport class RecursiveReadLimitExceededError extends BaseError {\n constructor({ count, limit }) {\n super(`Recursive read limit of \\`${limit}\\` exceeded (recursive read count: \\`${count}\\`).`, { name: 'RecursiveReadLimitExceededError' });\n }\n}\n//# sourceMappingURL=cursor.js.map","import { NegativeOffsetError, PositionOutOfBoundsError, RecursiveReadLimitExceededError, } from '../errors/cursor.js';\nconst staticCursor = {\n bytes: new Uint8Array(),\n dataView: new DataView(new ArrayBuffer(0)),\n position: 0,\n positionReadCount: new Map(),\n recursiveReadCount: 0,\n recursiveReadLimit: Number.POSITIVE_INFINITY,\n assertReadLimit() {\n if (this.recursiveReadCount >= this.recursiveReadLimit)\n throw new RecursiveReadLimitExceededError({\n count: this.recursiveReadCount + 1,\n limit: this.recursiveReadLimit,\n });\n },\n assertPosition(position) {\n if (position < 0 || position > this.bytes.length - 1)\n throw new PositionOutOfBoundsError({\n length: this.bytes.length,\n position,\n });\n },\n decrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position - offset;\n this.assertPosition(position);\n this.position = position;\n },\n getReadCount(position) {\n return this.positionReadCount.get(position || this.position) || 0;\n },\n incrementPosition(offset) {\n if (offset < 0)\n throw new NegativeOffsetError({ offset });\n const position = this.position + offset;\n this.assertPosition(position);\n this.position = position;\n },\n inspectByte(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectBytes(length, position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + length - 1);\n return this.bytes.subarray(position, position + length);\n },\n inspectUint8(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position);\n return this.bytes[position];\n },\n inspectUint16(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 1);\n return this.dataView.getUint16(position);\n },\n inspectUint24(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 2);\n return ((this.dataView.getUint16(position) << 8) +\n this.dataView.getUint8(position + 2));\n },\n inspectUint32(position_) {\n const position = position_ ?? this.position;\n this.assertPosition(position + 3);\n return this.dataView.getUint32(position);\n },\n pushByte(byte) {\n this.assertPosition(this.position);\n this.bytes[this.position] = byte;\n this.position++;\n },\n pushBytes(bytes) {\n this.assertPosition(this.position + bytes.length - 1);\n this.bytes.set(bytes, this.position);\n this.position += bytes.length;\n },\n pushUint8(value) {\n this.assertPosition(this.position);\n this.bytes[this.position] = value;\n this.position++;\n },\n pushUint16(value) {\n this.assertPosition(this.position + 1);\n this.dataView.setUint16(this.position, value);\n this.position += 2;\n },\n pushUint24(value) {\n this.assertPosition(this.position + 2);\n this.dataView.setUint16(this.position, value >> 8);\n this.dataView.setUint8(this.position + 2, value & ~4294967040);\n this.position += 3;\n },\n pushUint32(value) {\n this.assertPosition(this.position + 3);\n this.dataView.setUint32(this.position, value);\n this.position += 4;\n },\n readByte() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectByte();\n this.position++;\n return value;\n },\n readBytes(length, size) {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectBytes(length);\n this.position += size ?? length;\n return value;\n },\n readUint8() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint8();\n this.position += 1;\n return value;\n },\n readUint16() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint16();\n this.position += 2;\n return value;\n },\n readUint24() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint24();\n this.position += 3;\n return value;\n },\n readUint32() {\n this.assertReadLimit();\n this._touch();\n const value = this.inspectUint32();\n this.position += 4;\n return value;\n },\n get remaining() {\n return this.bytes.length - this.position;\n },\n setPosition(position) {\n const oldPosition = this.position;\n this.assertPosition(position);\n this.position = position;\n return () => (this.position = oldPosition);\n },\n _touch() {\n if (this.recursiveReadLimit === Number.POSITIVE_INFINITY)\n return;\n const count = this.getReadCount();\n this.positionReadCount.set(this.position, count + 1);\n if (count > 0)\n this.recursiveReadCount++;\n },\n};\nexport function createCursor(bytes, { recursiveReadLimit = 8_192 } = {}) {\n const cursor = Object.create(staticCursor);\n cursor.bytes = bytes;\n cursor.dataView = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n cursor.positionReadCount = new Map();\n cursor.recursiveReadLimit = recursiveReadLimit;\n return cursor;\n}\n//# sourceMappingURL=cursor.js.map","export const etherUnits = {\n gwei: 9,\n wei: 18,\n};\nexport const gweiUnits = {\n ether: -9,\n wei: 9,\n};\nexport const weiUnits = {\n ether: -18,\n gwei: -9,\n};\n//# sourceMappingURL=unit.js.map","/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number..\n *\n * - Docs: https://viem.sh/docs/utilities/formatUnits\n *\n * @example\n * import { formatUnits } from 'viem'\n *\n * formatUnits(420000000000n, 9)\n * // '420'\n */\nexport function formatUnits(value, decimals) {\n let display = value.toString();\n const negative = display.startsWith('-');\n if (negative)\n display = display.slice(1);\n display = display.padStart(decimals, '0');\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ];\n fraction = fraction.replace(/(0+)$/, '');\n return `${negative ? '-' : ''}${integer || '0'}${fraction ? `.${fraction}` : ''}`;\n}\n//# sourceMappingURL=formatUnits.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of ether.\n *\n * - Docs: https://viem.sh/docs/utilities/formatEther\n *\n * @example\n * import { formatEther } from 'viem'\n *\n * formatEther(1000000000000000000n)\n * // '1'\n */\nexport function formatEther(wei, unit = 'wei') {\n return formatUnits(wei, etherUnits[unit]);\n}\n//# sourceMappingURL=formatEther.js.map","import { gweiUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of gwei.\n *\n * - Docs: https://viem.sh/docs/utilities/formatGwei\n *\n * @example\n * import { formatGwei } from 'viem'\n *\n * formatGwei(1000000000n)\n * // '1'\n */\nexport function formatGwei(wei, unit = 'wei') {\n return formatUnits(wei, gweiUnits[unit]);\n}\n//# sourceMappingURL=formatGwei.js.map","import { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport function prettyPrint(args) {\n const entries = Object.entries(args)\n .map(([key, value]) => {\n if (value === undefined || value === false)\n return null;\n return [key, value];\n })\n .filter(Boolean);\n const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0);\n return entries\n .map(([key, value]) => ` ${`${key}:`.padEnd(maxLength + 1)} ${value}`)\n .join('\\n');\n}\nexport class FeeConflictError extends BaseError {\n constructor() {\n super([\n 'Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.',\n 'Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.',\n ].join('\\n'), { name: 'FeeConflictError' });\n }\n}\nexport class InvalidLegacyVError extends BaseError {\n constructor({ v }) {\n super(`Invalid \\`v\\` value \"${v}\". Expected 27 or 28.`, {\n name: 'InvalidLegacyVError',\n });\n }\n}\nexport class InvalidSerializableTransactionError extends BaseError {\n constructor({ transaction }) {\n super('Cannot infer a transaction type from provided transaction.', {\n metaMessages: [\n 'Provided Transaction:',\n '{',\n prettyPrint(transaction),\n '}',\n '',\n 'To infer the type, either provide:',\n '- a `type` to the Transaction, or',\n '- an EIP-1559 Transaction with `maxFeePerGas`, or',\n '- an EIP-2930 Transaction with `gasPrice` & `accessList`, or',\n '- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or',\n '- an EIP-7702 Transaction with `authorizationList`, or',\n '- a Legacy Transaction with `gasPrice`',\n ],\n name: 'InvalidSerializableTransactionError',\n });\n }\n}\nexport class InvalidSerializedTransactionTypeError extends BaseError {\n constructor({ serializedType }) {\n super(`Serialized transaction type \"${serializedType}\" is invalid.`, {\n name: 'InvalidSerializedTransactionType',\n });\n Object.defineProperty(this, \"serializedType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedType = serializedType;\n }\n}\nexport class InvalidSerializedTransactionError extends BaseError {\n constructor({ attributes, serializedTransaction, type, }) {\n const missing = Object.entries(attributes)\n .map(([key, value]) => (typeof value === 'undefined' ? key : undefined))\n .filter(Boolean);\n super(`Invalid serialized transaction of type \"${type}\" was provided.`, {\n metaMessages: [\n `Serialized Transaction: \"${serializedTransaction}\"`,\n missing.length > 0 ? `Missing Attributes: ${missing.join(', ')}` : '',\n ].filter(Boolean),\n name: 'InvalidSerializedTransactionError',\n });\n Object.defineProperty(this, \"serializedTransaction\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"type\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedTransaction = serializedTransaction;\n this.type = type;\n }\n}\nexport class InvalidStorageKeySizeError extends BaseError {\n constructor({ storageKey }) {\n super(`Size for storage key \"${storageKey}\" is invalid. Expected 32 bytes. Got ${Math.floor((storageKey.length - 2) / 2)} bytes.`, { name: 'InvalidStorageKeySizeError' });\n }\n}\nexport class TransactionExecutionError extends BaseError {\n constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const prettyArgs = prettyPrint({\n chain: chain && `${chain?.name} (id: ${chain?.id})`,\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Request Arguments:',\n prettyArgs,\n ].filter(Boolean),\n name: 'TransactionExecutionError',\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.cause = cause;\n }\n}\nexport class TransactionNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, blockTag, hash, index, }) {\n let identifier = 'Transaction';\n if (blockTag && index !== undefined)\n identifier = `Transaction at block time \"${blockTag}\" at index \"${index}\"`;\n if (blockHash && index !== undefined)\n identifier = `Transaction at block hash \"${blockHash}\" at index \"${index}\"`;\n if (blockNumber && index !== undefined)\n identifier = `Transaction at block number \"${blockNumber}\" at index \"${index}\"`;\n if (hash)\n identifier = `Transaction with hash \"${hash}\"`;\n super(`${identifier} could not be found.`, {\n name: 'TransactionNotFoundError',\n });\n }\n}\nexport class TransactionReceiptNotFoundError extends BaseError {\n constructor({ hash }) {\n super(`Transaction receipt with hash \"${hash}\" could not be found. The Transaction may not be processed on a block yet.`, {\n name: 'TransactionReceiptNotFoundError',\n });\n }\n}\nexport class WaitForTransactionReceiptTimeoutError extends BaseError {\n constructor({ hash }) {\n super(`Timed out while waiting for transaction with hash \"${hash}\" to be confirmed.`, { name: 'WaitForTransactionReceiptTimeoutError' });\n }\n}\n//# sourceMappingURL=transaction.js.map","import { BaseError } from '../../errors/base.js';\nimport { createCursor, } from '../cursor.js';\nimport { hexToBytes } from './toBytes.js';\nimport { bytesToHex } from './toHex.js';\nexport function toRlp(bytes, to = 'hex') {\n const encodable = getEncodable(bytes);\n const cursor = createCursor(new Uint8Array(encodable.length));\n encodable.encode(cursor);\n if (to === 'hex')\n return bytesToHex(cursor.bytes);\n return cursor.bytes;\n}\nexport function bytesToRlp(bytes, to = 'bytes') {\n return toRlp(bytes, to);\n}\nexport function hexToRlp(hex, to = 'hex') {\n return toRlp(hex, to);\n}\nfunction getEncodable(bytes) {\n if (Array.isArray(bytes))\n return getEncodableList(bytes.map((x) => getEncodable(x)));\n return getEncodableBytes(bytes);\n}\nfunction getEncodableList(list) {\n const bodyLength = list.reduce((acc, x) => acc + x.length, 0);\n const sizeOfBodyLength = getSizeOfLength(bodyLength);\n const length = (() => {\n if (bodyLength <= 55)\n return 1 + bodyLength;\n return 1 + sizeOfBodyLength + bodyLength;\n })();\n return {\n length,\n encode(cursor) {\n if (bodyLength <= 55) {\n cursor.pushByte(0xc0 + bodyLength);\n }\n else {\n cursor.pushByte(0xc0 + 55 + sizeOfBodyLength);\n if (sizeOfBodyLength === 1)\n cursor.pushUint8(bodyLength);\n else if (sizeOfBodyLength === 2)\n cursor.pushUint16(bodyLength);\n else if (sizeOfBodyLength === 3)\n cursor.pushUint24(bodyLength);\n else\n cursor.pushUint32(bodyLength);\n }\n for (const { encode } of list) {\n encode(cursor);\n }\n },\n };\n}\nfunction getEncodableBytes(bytesOrHex) {\n const bytes = typeof bytesOrHex === 'string' ? hexToBytes(bytesOrHex) : bytesOrHex;\n const sizeOfBytesLength = getSizeOfLength(bytes.length);\n const length = (() => {\n if (bytes.length === 1 && bytes[0] < 0x80)\n return 1;\n if (bytes.length <= 55)\n return 1 + bytes.length;\n return 1 + sizeOfBytesLength + bytes.length;\n })();\n return {\n length,\n encode(cursor) {\n if (bytes.length === 1 && bytes[0] < 0x80) {\n cursor.pushBytes(bytes);\n }\n else if (bytes.length <= 55) {\n cursor.pushByte(0x80 + bytes.length);\n cursor.pushBytes(bytes);\n }\n else {\n cursor.pushByte(0x80 + 55 + sizeOfBytesLength);\n if (sizeOfBytesLength === 1)\n cursor.pushUint8(bytes.length);\n else if (sizeOfBytesLength === 2)\n cursor.pushUint16(bytes.length);\n else if (sizeOfBytesLength === 3)\n cursor.pushUint24(bytes.length);\n else\n cursor.pushUint32(bytes.length);\n cursor.pushBytes(bytes);\n }\n },\n };\n}\nfunction getSizeOfLength(length) {\n if (length < 2 ** 8)\n return 1;\n if (length < 2 ** 16)\n return 2;\n if (length < 2 ** 24)\n return 3;\n if (length < 2 ** 32)\n return 4;\n throw new BaseError('Length is too large.');\n}\n//# sourceMappingURL=toRlp.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class ExecutionRevertedError extends BaseError {\n constructor({ cause, message, } = {}) {\n const reason = message\n ?.replace('execution reverted: ', '')\n ?.replace('execution reverted', '');\n super(`Execution reverted ${reason ? `with reason: ${reason}` : 'for an unknown reason'}.`, {\n cause,\n name: 'ExecutionRevertedError',\n });\n }\n}\nObject.defineProperty(ExecutionRevertedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n});\nObject.defineProperty(ExecutionRevertedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /execution reverted/\n});\nexport class FeeCapTooHighError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}) cannot be higher than the maximum allowed value (2^256-1).`, {\n cause,\n name: 'FeeCapTooHighError',\n });\n }\n}\nObject.defineProperty(FeeCapTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n});\nexport class FeeCapTooLowError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''} gwei) cannot be lower than the block base fee.`, {\n cause,\n name: 'FeeCapTooLowError',\n });\n }\n}\nObject.defineProperty(FeeCapTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n});\nexport class NonceTooHighError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is higher than the next one expected.`, { cause, name: 'NonceTooHighError' });\n }\n}\nObject.defineProperty(NonceTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too high/\n});\nexport class NonceTooLowError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super([\n `Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is lower than the current nonce of the account.`,\n 'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n ].join('\\n'), { cause, name: 'NonceTooLowError' });\n }\n}\nObject.defineProperty(NonceTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too low|transaction already imported|already known/\n});\nexport class NonceMaxValueError extends BaseError {\n constructor({ cause, nonce, } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}exceeds the maximum allowed nonce.`, { cause, name: 'NonceMaxValueError' });\n }\n}\nObject.defineProperty(NonceMaxValueError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce has max value/\n});\nexport class InsufficientFundsError extends BaseError {\n constructor({ cause } = {}) {\n super([\n 'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n ].join('\\n'), {\n cause,\n metaMessages: [\n 'This error could arise when the account does not have enough funds to:',\n ' - pay for the total gas fee,',\n ' - pay for the value to send.',\n ' ',\n 'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n ' - `gas` is the amount of gas needed for transaction to execute,',\n ' - `gas fee` is the gas fee,',\n ' - `value` is the amount of ether to send to the recipient.',\n ],\n name: 'InsufficientFundsError',\n });\n }\n}\nObject.defineProperty(InsufficientFundsError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /insufficient funds|exceeds transaction sender account balance/\n});\nexport class IntrinsicGasTooHighError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction exceeds the limit allowed for the block.`, {\n cause,\n name: 'IntrinsicGasTooHighError',\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too high|gas limit reached/\n});\nexport class IntrinsicGasTooLowError extends BaseError {\n constructor({ cause, gas, } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction is too low.`, {\n cause,\n name: 'IntrinsicGasTooLowError',\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too low/\n});\nexport class TransactionTypeNotSupportedError extends BaseError {\n constructor({ cause }) {\n super('The transaction type is not supported for this chain.', {\n cause,\n name: 'TransactionTypeNotSupportedError',\n });\n }\n}\nObject.defineProperty(TransactionTypeNotSupportedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /transaction type not valid/\n});\nexport class TipAboveFeeCapError extends BaseError {\n constructor({ cause, maxPriorityFeePerGas, maxFeePerGas, } = {}) {\n super([\n `The provided tip (\\`maxPriorityFeePerGas\\`${maxPriorityFeePerGas\n ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n : ''}) cannot be higher than the fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}).`,\n ].join('\\n'), {\n cause,\n name: 'TipAboveFeeCapError',\n });\n }\n}\nObject.defineProperty(TipAboveFeeCapError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n});\nexport class UnknownNodeError extends BaseError {\n constructor({ cause }) {\n super(`An error occurred while executing: ${cause?.shortMessage}`, {\n cause,\n name: 'UnknownNodeError',\n });\n }\n}\n//# sourceMappingURL=node.js.map","export function defineFormatter(type, format) {\n return ({ exclude, format: overrides, }) => {\n return {\n exclude,\n format: (args) => {\n const formatted = format(args);\n if (exclude) {\n for (const key of exclude) {\n delete formatted[key];\n }\n }\n return {\n ...formatted,\n ...overrides(args),\n };\n },\n type,\n };\n };\n}\n//# sourceMappingURL=formatter.js.map","export const maxInt8 = 2n ** (8n - 1n) - 1n;\nexport const maxInt16 = 2n ** (16n - 1n) - 1n;\nexport const maxInt24 = 2n ** (24n - 1n) - 1n;\nexport const maxInt32 = 2n ** (32n - 1n) - 1n;\nexport const maxInt40 = 2n ** (40n - 1n) - 1n;\nexport const maxInt48 = 2n ** (48n - 1n) - 1n;\nexport const maxInt56 = 2n ** (56n - 1n) - 1n;\nexport const maxInt64 = 2n ** (64n - 1n) - 1n;\nexport const maxInt72 = 2n ** (72n - 1n) - 1n;\nexport const maxInt80 = 2n ** (80n - 1n) - 1n;\nexport const maxInt88 = 2n ** (88n - 1n) - 1n;\nexport const maxInt96 = 2n ** (96n - 1n) - 1n;\nexport const maxInt104 = 2n ** (104n - 1n) - 1n;\nexport const maxInt112 = 2n ** (112n - 1n) - 1n;\nexport const maxInt120 = 2n ** (120n - 1n) - 1n;\nexport const maxInt128 = 2n ** (128n - 1n) - 1n;\nexport const maxInt136 = 2n ** (136n - 1n) - 1n;\nexport const maxInt144 = 2n ** (144n - 1n) - 1n;\nexport const maxInt152 = 2n ** (152n - 1n) - 1n;\nexport const maxInt160 = 2n ** (160n - 1n) - 1n;\nexport const maxInt168 = 2n ** (168n - 1n) - 1n;\nexport const maxInt176 = 2n ** (176n - 1n) - 1n;\nexport const maxInt184 = 2n ** (184n - 1n) - 1n;\nexport const maxInt192 = 2n ** (192n - 1n) - 1n;\nexport const maxInt200 = 2n ** (200n - 1n) - 1n;\nexport const maxInt208 = 2n ** (208n - 1n) - 1n;\nexport const maxInt216 = 2n ** (216n - 1n) - 1n;\nexport const maxInt224 = 2n ** (224n - 1n) - 1n;\nexport const maxInt232 = 2n ** (232n - 1n) - 1n;\nexport const maxInt240 = 2n ** (240n - 1n) - 1n;\nexport const maxInt248 = 2n ** (248n - 1n) - 1n;\nexport const maxInt256 = 2n ** (256n - 1n) - 1n;\nexport const minInt8 = -(2n ** (8n - 1n));\nexport const minInt16 = -(2n ** (16n - 1n));\nexport const minInt24 = -(2n ** (24n - 1n));\nexport const minInt32 = -(2n ** (32n - 1n));\nexport const minInt40 = -(2n ** (40n - 1n));\nexport const minInt48 = -(2n ** (48n - 1n));\nexport const minInt56 = -(2n ** (56n - 1n));\nexport const minInt64 = -(2n ** (64n - 1n));\nexport const minInt72 = -(2n ** (72n - 1n));\nexport const minInt80 = -(2n ** (80n - 1n));\nexport const minInt88 = -(2n ** (88n - 1n));\nexport const minInt96 = -(2n ** (96n - 1n));\nexport const minInt104 = -(2n ** (104n - 1n));\nexport const minInt112 = -(2n ** (112n - 1n));\nexport const minInt120 = -(2n ** (120n - 1n));\nexport const minInt128 = -(2n ** (128n - 1n));\nexport const minInt136 = -(2n ** (136n - 1n));\nexport const minInt144 = -(2n ** (144n - 1n));\nexport const minInt152 = -(2n ** (152n - 1n));\nexport const minInt160 = -(2n ** (160n - 1n));\nexport const minInt168 = -(2n ** (168n - 1n));\nexport const minInt176 = -(2n ** (176n - 1n));\nexport const minInt184 = -(2n ** (184n - 1n));\nexport const minInt192 = -(2n ** (192n - 1n));\nexport const minInt200 = -(2n ** (200n - 1n));\nexport const minInt208 = -(2n ** (208n - 1n));\nexport const minInt216 = -(2n ** (216n - 1n));\nexport const minInt224 = -(2n ** (224n - 1n));\nexport const minInt232 = -(2n ** (232n - 1n));\nexport const minInt240 = -(2n ** (240n - 1n));\nexport const minInt248 = -(2n ** (248n - 1n));\nexport const minInt256 = -(2n ** (256n - 1n));\nexport const maxUint8 = 2n ** 8n - 1n;\nexport const maxUint16 = 2n ** 16n - 1n;\nexport const maxUint24 = 2n ** 24n - 1n;\nexport const maxUint32 = 2n ** 32n - 1n;\nexport const maxUint40 = 2n ** 40n - 1n;\nexport const maxUint48 = 2n ** 48n - 1n;\nexport const maxUint56 = 2n ** 56n - 1n;\nexport const maxUint64 = 2n ** 64n - 1n;\nexport const maxUint72 = 2n ** 72n - 1n;\nexport const maxUint80 = 2n ** 80n - 1n;\nexport const maxUint88 = 2n ** 88n - 1n;\nexport const maxUint96 = 2n ** 96n - 1n;\nexport const maxUint104 = 2n ** 104n - 1n;\nexport const maxUint112 = 2n ** 112n - 1n;\nexport const maxUint120 = 2n ** 120n - 1n;\nexport const maxUint128 = 2n ** 128n - 1n;\nexport const maxUint136 = 2n ** 136n - 1n;\nexport const maxUint144 = 2n ** 144n - 1n;\nexport const maxUint152 = 2n ** 152n - 1n;\nexport const maxUint160 = 2n ** 160n - 1n;\nexport const maxUint168 = 2n ** 168n - 1n;\nexport const maxUint176 = 2n ** 176n - 1n;\nexport const maxUint184 = 2n ** 184n - 1n;\nexport const maxUint192 = 2n ** 192n - 1n;\nexport const maxUint200 = 2n ** 200n - 1n;\nexport const maxUint208 = 2n ** 208n - 1n;\nexport const maxUint216 = 2n ** 216n - 1n;\nexport const maxUint224 = 2n ** 224n - 1n;\nexport const maxUint232 = 2n ** 232n - 1n;\nexport const maxUint240 = 2n ** 240n - 1n;\nexport const maxUint248 = 2n ** 248n - 1n;\nexport const maxUint256 = 2n ** 256n - 1n;\n//# sourceMappingURL=number.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n '0x3': 'eip4844',\n '0x4': 'eip7702',\n};\nexport function formatTransaction(transaction) {\n const transaction_ = {\n ...transaction,\n blockHash: transaction.blockHash ? transaction.blockHash : null,\n blockNumber: transaction.blockNumber\n ? BigInt(transaction.blockNumber)\n : null,\n chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n maxFeePerBlobGas: transaction.maxFeePerBlobGas\n ? BigInt(transaction.maxFeePerBlobGas)\n : undefined,\n maxFeePerGas: transaction.maxFeePerGas\n ? BigInt(transaction.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n ? BigInt(transaction.maxPriorityFeePerGas)\n : undefined,\n nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n to: transaction.to ? transaction.to : null,\n transactionIndex: transaction.transactionIndex\n ? Number(transaction.transactionIndex)\n : null,\n type: transaction.type\n ? transactionType[transaction.type]\n : undefined,\n typeHex: transaction.type ? transaction.type : undefined,\n value: transaction.value ? BigInt(transaction.value) : undefined,\n v: transaction.v ? BigInt(transaction.v) : undefined,\n };\n if (transaction.authorizationList)\n transaction_.authorizationList = formatAuthorizationList(transaction.authorizationList);\n transaction_.yParity = (() => {\n // If `yParity` is provided, we will use it.\n if (transaction.yParity)\n return Number(transaction.yParity);\n // If no `yParity` provided, try derive from `v`.\n if (typeof transaction_.v === 'bigint') {\n if (transaction_.v === 0n || transaction_.v === 27n)\n return 0;\n if (transaction_.v === 1n || transaction_.v === 28n)\n return 1;\n if (transaction_.v >= 35n)\n return transaction_.v % 2n === 0n ? 1 : 0;\n }\n return undefined;\n })();\n if (transaction_.type === 'legacy') {\n delete transaction_.accessList;\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n delete transaction_.yParity;\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_.maxFeePerBlobGas;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n }\n if (transaction_.type === 'eip1559') {\n delete transaction_.maxFeePerBlobGas;\n }\n return transaction_;\n}\nexport const defineTransaction = /*#__PURE__*/ defineFormatter('transaction', formatTransaction);\n//////////////////////////////////////////////////////////////////////////////\nfunction formatAuthorizationList(authorizationList) {\n return authorizationList.map((authorization) => ({\n address: authorization.address,\n chainId: Number(authorization.chainId),\n nonce: Number(authorization.nonce),\n r: authorization.r,\n s: authorization.s,\n yParity: Number(authorization.yParity),\n }));\n}\n//# sourceMappingURL=transaction.js.map","import { defineFormatter } from './formatter.js';\nimport { formatTransaction } from './transaction.js';\nexport function formatBlock(block) {\n const transactions = (block.transactions ?? []).map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n return formatTransaction(transaction);\n });\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n blobGasUsed: block.blobGasUsed ? BigInt(block.blobGasUsed) : undefined,\n difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n excessBlobGas: block.excessBlobGas\n ? BigInt(block.excessBlobGas)\n : undefined,\n gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n hash: block.hash ? block.hash : null,\n logsBloom: block.logsBloom ? block.logsBloom : null,\n nonce: block.nonce ? block.nonce : null,\n number: block.number ? BigInt(block.number) : null,\n size: block.size ? BigInt(block.size) : undefined,\n timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n transactions,\n totalDifficulty: block.totalDifficulty\n ? BigInt(block.totalDifficulty)\n : null,\n };\n}\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock);\n//# sourceMappingURL=block.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute commitments from a list of blobs.\n *\n * @example\n * ```ts\n * import { blobsToCommitments, toBlobs } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * ```\n */\nexport function blobsToCommitments(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = [];\n for (const blob of blobs)\n commitments.push(Uint8Array.from(kzg.blobToKzgCommitment(blob)));\n return (to === 'bytes'\n ? commitments\n : commitments.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToCommitments.js.map","import { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Compute the proofs for a list of blobs and their commitments.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n * ```\n */\nexport function blobsToProofs(parameters) {\n const { kzg } = parameters;\n const to = parameters.to ?? (typeof parameters.blobs[0] === 'string' ? 'hex' : 'bytes');\n const blobs = (typeof parameters.blobs[0] === 'string'\n ? parameters.blobs.map((x) => hexToBytes(x))\n : parameters.blobs);\n const commitments = (typeof parameters.commitments[0] === 'string'\n ? parameters.commitments.map((x) => hexToBytes(x))\n : parameters.commitments);\n const proofs = [];\n for (let i = 0; i < blobs.length; i++) {\n const blob = blobs[i];\n const commitment = commitments[i];\n proofs.push(Uint8Array.from(kzg.computeBlobKzgProof(blob, commitment)));\n }\n return (to === 'bytes'\n ? proofs\n : proofs.map((x) => bytesToHex(x)));\n}\n//# sourceMappingURL=blobsToProofs.js.map","/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { Hash, abytes, aexists, aoutput, clean, createView, toBytes } from \"./utils.js\";\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nexport function Chi(a, b, c) {\n return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a, b, c) {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport class HashMD extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n clone() {\n return this._cloneInto();\n }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n//# sourceMappingURL=_md.js.map","/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from \"./_md.js\";\nimport * as u64 from \"./_u64.js\";\nimport { clean, createHasher, rotr } from \"./utils.js\";\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n constructor(outputLen = 32) {\n super(64, outputLen, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = SHA256_IV[0] | 0;\n this.B = SHA256_IV[1] | 0;\n this.C = SHA256_IV[2] | 0;\n this.D = SHA256_IV[3] | 0;\n this.E = SHA256_IV[4] | 0;\n this.F = SHA256_IV[5] | 0;\n this.G = SHA256_IV[6] | 0;\n this.H = SHA256_IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n clean(SHA256_W);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\nexport class SHA224 extends SHA256 {\n constructor() {\n super(28);\n this.A = SHA224_IV[0] | 0;\n this.B = SHA224_IV[1] | 0;\n this.C = SHA224_IV[2] | 0;\n this.D = SHA224_IV[3] | 0;\n this.E = SHA224_IV[4] | 0;\n this.F = SHA224_IV[5] | 0;\n this.G = SHA224_IV[6] | 0;\n this.H = SHA224_IV[7] | 0;\n }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD {\n constructor(outputLen = 64) {\n super(128, outputLen, 16, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = SHA512_IV[0] | 0;\n this.Al = SHA512_IV[1] | 0;\n this.Bh = SHA512_IV[2] | 0;\n this.Bl = SHA512_IV[3] | 0;\n this.Ch = SHA512_IV[4] | 0;\n this.Cl = SHA512_IV[5] | 0;\n this.Dh = SHA512_IV[6] | 0;\n this.Dl = SHA512_IV[7] | 0;\n this.Eh = SHA512_IV[8] | 0;\n this.El = SHA512_IV[9] | 0;\n this.Fh = SHA512_IV[10] | 0;\n this.Fl = SHA512_IV[11] | 0;\n this.Gh = SHA512_IV[12] | 0;\n this.Gl = SHA512_IV[13] | 0;\n this.Hh = SHA512_IV[14] | 0;\n this.Hl = SHA512_IV[15] | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n clean(SHA512_W_H, SHA512_W_L);\n }\n destroy() {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nexport class SHA384 extends SHA512 {\n constructor() {\n super(48);\n this.Ah = SHA384_IV[0] | 0;\n this.Al = SHA384_IV[1] | 0;\n this.Bh = SHA384_IV[2] | 0;\n this.Bl = SHA384_IV[3] | 0;\n this.Ch = SHA384_IV[4] | 0;\n this.Cl = SHA384_IV[5] | 0;\n this.Dh = SHA384_IV[6] | 0;\n this.Dl = SHA384_IV[7] | 0;\n this.Eh = SHA384_IV[8] | 0;\n this.El = SHA384_IV[9] | 0;\n this.Fh = SHA384_IV[10] | 0;\n this.Fl = SHA384_IV[11] | 0;\n this.Gh = SHA384_IV[12] | 0;\n this.Gl = SHA384_IV[13] | 0;\n this.Hh = SHA384_IV[14] | 0;\n this.Hl = SHA384_IV[15] | 0;\n }\n}\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\nexport class SHA512_224 extends SHA512 {\n constructor() {\n super(28);\n this.Ah = T224_IV[0] | 0;\n this.Al = T224_IV[1] | 0;\n this.Bh = T224_IV[2] | 0;\n this.Bl = T224_IV[3] | 0;\n this.Ch = T224_IV[4] | 0;\n this.Cl = T224_IV[5] | 0;\n this.Dh = T224_IV[6] | 0;\n this.Dl = T224_IV[7] | 0;\n this.Eh = T224_IV[8] | 0;\n this.El = T224_IV[9] | 0;\n this.Fh = T224_IV[10] | 0;\n this.Fl = T224_IV[11] | 0;\n this.Gh = T224_IV[12] | 0;\n this.Gl = T224_IV[13] | 0;\n this.Hh = T224_IV[14] | 0;\n this.Hl = T224_IV[15] | 0;\n }\n}\nexport class SHA512_256 extends SHA512 {\n constructor() {\n super(32);\n this.Ah = T256_IV[0] | 0;\n this.Al = T256_IV[1] | 0;\n this.Bh = T256_IV[2] | 0;\n this.Bl = T256_IV[3] | 0;\n this.Ch = T256_IV[4] | 0;\n this.Cl = T256_IV[5] | 0;\n this.Dh = T256_IV[6] | 0;\n this.Dl = T256_IV[7] | 0;\n this.Eh = T256_IV[8] | 0;\n this.El = T256_IV[9] | 0;\n this.Fh = T256_IV[10] | 0;\n this.Fl = T256_IV[11] | 0;\n this.Gh = T256_IV[12] | 0;\n this.Gl = T256_IV[13] | 0;\n this.Hh = T256_IV[14] | 0;\n this.Hl = T256_IV[15] | 0;\n }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384 = /* @__PURE__ */ createHasher(() => new SHA384());\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256 = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224 = /* @__PURE__ */ createHasher(() => new SHA512_224());\n//# sourceMappingURL=sha2.js.map","/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n * @deprecated\n */\nimport { SHA224 as SHA224n, sha224 as sha224n, SHA256 as SHA256n, sha256 as sha256n, } from \"./sha2.js\";\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA256 = SHA256n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha256 = sha256n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA224 = SHA224n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha224 = sha224n;\n//# sourceMappingURL=sha256.js.map","import { sha256 as noble_sha256 } from '@noble/hashes/sha256';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function sha256(value, to_) {\n const to = to_ || 'hex';\n const bytes = noble_sha256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=sha256.js.map","import { bytesToHex } from '../encoding/toHex.js';\nimport { sha256 } from '../hash/sha256.js';\n/**\n * Transform a commitment to it's versioned hash.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * commitmentToVersionedHash,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const [commitment] = blobsToCommitments({ blobs, kzg })\n * const versionedHash = commitmentToVersionedHash({ commitment })\n * ```\n */\nexport function commitmentToVersionedHash(parameters) {\n const { commitment, version = 1 } = parameters;\n const to = parameters.to ?? (typeof commitment === 'string' ? 'hex' : 'bytes');\n const versionedHash = sha256(commitment, 'bytes');\n versionedHash.set([version], 0);\n return (to === 'bytes' ? versionedHash : bytesToHex(versionedHash));\n}\n//# sourceMappingURL=commitmentToVersionedHash.js.map","import { commitmentToVersionedHash, } from './commitmentToVersionedHash.js';\n/**\n * Transform a list of commitments to their versioned hashes.\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * commitmentsToVersionedHashes,\n * toBlobs\n * } from 'viem'\n * import { kzg } from './kzg'\n *\n * const blobs = toBlobs({ data: '0x1234' })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const versionedHashes = commitmentsToVersionedHashes({ commitments })\n * ```\n */\nexport function commitmentsToVersionedHashes(parameters) {\n const { commitments, version } = parameters;\n const to = parameters.to ?? (typeof commitments[0] === 'string' ? 'hex' : 'bytes');\n const hashes = [];\n for (const commitment of commitments) {\n hashes.push(commitmentToVersionedHash({\n commitment,\n to,\n version,\n }));\n }\n return hashes;\n}\n//# sourceMappingURL=commitmentsToVersionedHashes.js.map","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\n/** Blob limit per transaction. */\nconst blobsPerTransaction = 6;\n/** The number of bytes in a BLS scalar field element. */\nexport const bytesPerFieldElement = 32;\n/** The number of field elements in a blob. */\nexport const fieldElementsPerBlob = 4096;\n/** The number of bytes in a blob. */\nexport const bytesPerBlob = bytesPerFieldElement * fieldElementsPerBlob;\n/** Blob bytes limit per transaction. */\nexport const maxBytesPerTransaction = bytesPerBlob * blobsPerTransaction -\n // terminator byte (0x80).\n 1 -\n // zero byte (0x00) appended to each field element.\n 1 * fieldElementsPerBlob * blobsPerTransaction;\n//# sourceMappingURL=blob.js.map","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md#parameters\nexport const versionedHashVersionKzg = 1;\n//# sourceMappingURL=kzg.js.map","import { versionedHashVersionKzg } from '../constants/kzg.js';\nimport { BaseError } from './base.js';\nexport class BlobSizeTooLargeError extends BaseError {\n constructor({ maxSize, size }) {\n super('Blob size is too large.', {\n metaMessages: [`Max: ${maxSize} bytes`, `Given: ${size} bytes`],\n name: 'BlobSizeTooLargeError',\n });\n }\n}\nexport class EmptyBlobError extends BaseError {\n constructor() {\n super('Blob data must not be empty.', { name: 'EmptyBlobError' });\n }\n}\nexport class InvalidVersionedHashSizeError extends BaseError {\n constructor({ hash, size, }) {\n super(`Versioned hash \"${hash}\" size is invalid.`, {\n metaMessages: ['Expected: 32', `Received: ${size}`],\n name: 'InvalidVersionedHashSizeError',\n });\n }\n}\nexport class InvalidVersionedHashVersionError extends BaseError {\n constructor({ hash, version, }) {\n super(`Versioned hash \"${hash}\" version is invalid.`, {\n metaMessages: [\n `Expected: ${versionedHashVersionKzg}`,\n `Received: ${version}`,\n ],\n name: 'InvalidVersionedHashVersionError',\n });\n }\n}\n//# sourceMappingURL=blob.js.map","import { bytesPerBlob, bytesPerFieldElement, fieldElementsPerBlob, maxBytesPerTransaction, } from '../../constants/blob.js';\nimport { BlobSizeTooLargeError, EmptyBlobError, } from '../../errors/blob.js';\nimport { createCursor } from '../cursor.js';\nimport { size } from '../data/size.js';\nimport { hexToBytes } from '../encoding/toBytes.js';\nimport { bytesToHex } from '../encoding/toHex.js';\n/**\n * Transforms arbitrary data to blobs.\n *\n * @example\n * ```ts\n * import { toBlobs, stringToHex } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * ```\n */\nexport function toBlobs(parameters) {\n const to = parameters.to ?? (typeof parameters.data === 'string' ? 'hex' : 'bytes');\n const data = (typeof parameters.data === 'string'\n ? hexToBytes(parameters.data)\n : parameters.data);\n const size_ = size(data);\n if (!size_)\n throw new EmptyBlobError();\n if (size_ > maxBytesPerTransaction)\n throw new BlobSizeTooLargeError({\n maxSize: maxBytesPerTransaction,\n size: size_,\n });\n const blobs = [];\n let active = true;\n let position = 0;\n while (active) {\n const blob = createCursor(new Uint8Array(bytesPerBlob));\n let size = 0;\n while (size < fieldElementsPerBlob) {\n const bytes = data.slice(position, position + (bytesPerFieldElement - 1));\n // Push a zero byte so the field element doesn't overflow the BLS modulus.\n blob.pushByte(0x00);\n // Push the current segment of data bytes.\n blob.pushBytes(bytes);\n // If we detect that the current segment of data bytes is less than 31 bytes,\n // we can stop processing and push a terminator byte to indicate the end of the blob.\n if (bytes.length < 31) {\n blob.pushByte(0x80);\n active = false;\n break;\n }\n size++;\n position += 31;\n }\n blobs.push(blob);\n }\n return (to === 'bytes'\n ? blobs.map((x) => x.bytes)\n : blobs.map((x) => bytesToHex(x.bytes)));\n}\n//# sourceMappingURL=toBlobs.js.map","import { blobsToCommitments, } from './blobsToCommitments.js';\nimport { blobsToProofs } from './blobsToProofs.js';\nimport { toBlobs } from './toBlobs.js';\n/**\n * Transforms arbitrary data (or blobs, commitments, & proofs) into a sidecar array.\n *\n * @example\n * ```ts\n * import { toBlobSidecars, stringToHex } from 'viem'\n *\n * const sidecars = toBlobSidecars({ data: stringToHex('hello world') })\n * ```\n *\n * @example\n * ```ts\n * import {\n * blobsToCommitments,\n * toBlobs,\n * blobsToProofs,\n * toBlobSidecars,\n * stringToHex\n * } from 'viem'\n *\n * const blobs = toBlobs({ data: stringToHex('hello world') })\n * const commitments = blobsToCommitments({ blobs, kzg })\n * const proofs = blobsToProofs({ blobs, commitments, kzg })\n *\n * const sidecars = toBlobSidecars({ blobs, commitments, proofs })\n * ```\n */\nexport function toBlobSidecars(parameters) {\n const { data, kzg, to } = parameters;\n const blobs = parameters.blobs ?? toBlobs({ data: data, to });\n const commitments = parameters.commitments ?? blobsToCommitments({ blobs, kzg: kzg, to });\n const proofs = parameters.proofs ?? blobsToProofs({ blobs, commitments, kzg: kzg, to });\n const sidecars = [];\n for (let i = 0; i < blobs.length; i++)\n sidecars.push({\n blob: blobs[i],\n commitment: commitments[i],\n proof: proofs[i],\n });\n return sidecars;\n}\n//# sourceMappingURL=toBlobSidecars.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n if (transaction.type)\n return transaction.type;\n if (typeof transaction.authorizationList !== 'undefined')\n return 'eip7702';\n if (typeof transaction.blobs !== 'undefined' ||\n typeof transaction.blobVersionedHashes !== 'undefined' ||\n typeof transaction.maxFeePerBlobGas !== 'undefined' ||\n typeof transaction.sidecars !== 'undefined')\n return 'eip4844';\n if (typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined') {\n return 'eip1559';\n }\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930';\n return 'legacy';\n }\n throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","export function formatLog(log, { args, eventName, } = {}) {\n return {\n ...log,\n blockHash: log.blockHash ? log.blockHash : null,\n blockNumber: log.blockNumber ? BigInt(log.blockNumber) : null,\n logIndex: log.logIndex ? Number(log.logIndex) : null,\n transactionHash: log.transactionHash ? log.transactionHash : null,\n transactionIndex: log.transactionIndex\n ? Number(log.transactionIndex)\n : null,\n ...(eventName ? { args, eventName } : {}),\n };\n}\n//# sourceMappingURL=log.js.map","import { BaseError } from './base.js';\nexport class ChainDoesNotSupportContract extends BaseError {\n constructor({ blockNumber, chain, contract, }) {\n super(`Chain \"${chain.name}\" does not support contract \"${contract.name}\".`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ...(blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n ? [\n `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n ]\n : [\n `- The chain does not have the contract \"${contract.name}\" configured.`,\n ]),\n ],\n name: 'ChainDoesNotSupportContract',\n });\n }\n}\nexport class ChainMismatchError extends BaseError {\n constructor({ chain, currentChainId, }) {\n super(`The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`, {\n metaMessages: [\n `Current Chain ID: ${currentChainId}`,\n `Expected Chain ID: ${chain.id} – ${chain.name}`,\n ],\n name: 'ChainMismatchError',\n });\n }\n}\nexport class ChainNotFoundError extends BaseError {\n constructor() {\n super([\n 'No chain was provided to the request.',\n 'Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.',\n ].join('\\n'), {\n name: 'ChainNotFoundError',\n });\n }\n}\nexport class ClientChainNotConfiguredError extends BaseError {\n constructor() {\n super('No chain was provided to the Client.', {\n name: 'ClientChainNotConfiguredError',\n });\n }\n}\nexport class InvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(typeof chainId === 'number'\n ? `Chain ID \"${chainId}\" is invalid.`\n : 'Chain ID is invalid.', { name: 'InvalidChainIdError' });\n }\n}\n//# sourceMappingURL=chain.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nimport { formatLog } from './log.js';\nimport { transactionType } from './transaction.js';\nexport const receiptStatuses = {\n '0x0': 'reverted',\n '0x1': 'success',\n};\nexport function formatTransactionReceipt(transactionReceipt) {\n const receipt = {\n ...transactionReceipt,\n blockNumber: transactionReceipt.blockNumber\n ? BigInt(transactionReceipt.blockNumber)\n : null,\n contractAddress: transactionReceipt.contractAddress\n ? transactionReceipt.contractAddress\n : null,\n cumulativeGasUsed: transactionReceipt.cumulativeGasUsed\n ? BigInt(transactionReceipt.cumulativeGasUsed)\n : null,\n effectiveGasPrice: transactionReceipt.effectiveGasPrice\n ? BigInt(transactionReceipt.effectiveGasPrice)\n : null,\n gasUsed: transactionReceipt.gasUsed\n ? BigInt(transactionReceipt.gasUsed)\n : null,\n logs: transactionReceipt.logs\n ? transactionReceipt.logs.map((log) => formatLog(log))\n : null,\n to: transactionReceipt.to ? transactionReceipt.to : null,\n transactionIndex: transactionReceipt.transactionIndex\n ? hexToNumber(transactionReceipt.transactionIndex)\n : null,\n status: transactionReceipt.status\n ? receiptStatuses[transactionReceipt.status]\n : null,\n type: transactionReceipt.type\n ? transactionType[transactionReceipt.type] || transactionReceipt.type\n : null,\n };\n if (transactionReceipt.blobGasPrice)\n receipt.blobGasPrice = BigInt(transactionReceipt.blobGasPrice);\n if (transactionReceipt.blobGasUsed)\n receipt.blobGasUsed = BigInt(transactionReceipt.blobGasUsed);\n return receipt;\n}\nexport const defineTransactionReceipt = /*#__PURE__*/ defineFormatter('transactionReceipt', formatTransactionReceipt);\n//# sourceMappingURL=transactionReceipt.js.map","export function defineChain(chain) {\n return {\n formatters: undefined,\n fees: undefined,\n serializers: undefined,\n ...chain,\n };\n}\n//# sourceMappingURL=defineChain.js.map","import { versionedHashVersionKzg } from '../../constants/kzg.js';\nimport { maxUint256 } from '../../constants/number.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { BaseError } from '../../errors/base.js';\nimport { EmptyBlobError, InvalidVersionedHashSizeError, InvalidVersionedHashVersionError, } from '../../errors/blob.js';\nimport { InvalidChainIdError, } from '../../errors/chain.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { hexToNumber } from '../encoding/fromHex.js';\nexport function assertTransactionEIP7702(transaction) {\n const { authorizationList } = transaction;\n if (authorizationList) {\n for (const authorization of authorizationList) {\n const { chainId } = authorization;\n const address = authorization.address;\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n if (chainId < 0)\n throw new InvalidChainIdError({ chainId });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP4844(transaction) {\n const { blobVersionedHashes } = transaction;\n if (blobVersionedHashes) {\n if (blobVersionedHashes.length === 0)\n throw new EmptyBlobError();\n for (const hash of blobVersionedHashes) {\n const size_ = size(hash);\n const version = hexToNumber(slice(hash, 0, 1));\n if (size_ !== 32)\n throw new InvalidVersionedHashSizeError({ hash, size: size_ });\n if (version !== versionedHashVersionKzg)\n throw new InvalidVersionedHashVersionError({\n hash,\n version,\n });\n }\n }\n assertTransactionEIP1559(transaction);\n}\nexport function assertTransactionEIP1559(transaction) {\n const { chainId, maxPriorityFeePerGas, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxFeePerGas && maxFeePerGas > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\nexport function assertTransactionEIP2930(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\nexport function assertTransactionLegacy(transaction) {\n const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to } = transaction;\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (typeof chainId !== 'undefined' && chainId <= 0)\n throw new InvalidChainIdError({ chainId });\n if (maxPriorityFeePerGas || maxFeePerGas)\n throw new BaseError('`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.');\n if (gasPrice && gasPrice > maxUint256)\n throw new FeeCapTooHighError({ maxFeePerGas: gasPrice });\n}\n//# sourceMappingURL=assertTransaction.js.map","import { InvalidAddressError, } from '../../errors/address.js';\nimport { InvalidStorageKeySizeError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\n/*\n * Serialize an EIP-2930 access list\n * @remarks\n * Use to create a transaction serializer with support for EIP-2930 access lists\n *\n * @param accessList - Array of objects of address and arrays of Storage Keys\n * @throws InvalidAddressError, InvalidStorageKeySizeError\n * @returns Array of hex strings\n */\nexport function serializeAccessList(accessList) {\n if (!accessList || accessList.length === 0)\n return [];\n const serializedAccessList = [];\n for (let i = 0; i < accessList.length; i++) {\n const { address, storageKeys } = accessList[i];\n for (let j = 0; j < storageKeys.length; j++) {\n if (storageKeys[j].length - 2 !== 64) {\n throw new InvalidStorageKeySizeError({ storageKey: storageKeys[j] });\n }\n }\n if (!isAddress(address, { strict: false })) {\n throw new InvalidAddressError({ address });\n }\n serializedAccessList.push([address, storageKeys]);\n }\n return serializedAccessList;\n}\n//# sourceMappingURL=serializeAccessList.js.map","import { InvalidLegacyVError, } from '../../errors/transaction.js';\nimport { serializeAuthorizationList, } from '../authorization/serializeAuthorizationList.js';\nimport { blobsToCommitments, } from '../blob/blobsToCommitments.js';\nimport { blobsToProofs, } from '../blob/blobsToProofs.js';\nimport { commitmentsToVersionedHashes, } from '../blob/commitmentsToVersionedHashes.js';\nimport { toBlobSidecars, } from '../blob/toBlobSidecars.js';\nimport { concatHex } from '../data/concat.js';\nimport { trim } from '../data/trim.js';\nimport { bytesToHex, numberToHex, } from '../encoding/toHex.js';\nimport { toRlp } from '../encoding/toRlp.js';\nimport { assertTransactionEIP1559, assertTransactionEIP2930, assertTransactionEIP4844, assertTransactionEIP7702, assertTransactionLegacy, } from './assertTransaction.js';\nimport { getTransactionType, } from './getTransactionType.js';\nimport { serializeAccessList, } from './serializeAccessList.js';\nexport function serializeTransaction(transaction, signature) {\n const type = getTransactionType(transaction);\n if (type === 'eip1559')\n return serializeTransactionEIP1559(transaction, signature);\n if (type === 'eip2930')\n return serializeTransactionEIP2930(transaction, signature);\n if (type === 'eip4844')\n return serializeTransactionEIP4844(transaction, signature);\n if (type === 'eip7702')\n return serializeTransactionEIP7702(transaction, signature);\n return serializeTransactionLegacy(transaction, signature);\n}\nfunction serializeTransactionEIP7702(transaction, signature) {\n const { authorizationList, chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP7702(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedAuthorizationList = serializeAuthorizationList(authorizationList);\n return concatHex([\n '0x04',\n toRlp([\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n serializedAuthorizationList,\n ...toYParitySignatureArray(transaction, signature),\n ]),\n ]);\n}\nfunction serializeTransactionEIP4844(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerBlobGas, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP4844(transaction);\n let blobVersionedHashes = transaction.blobVersionedHashes;\n let sidecars = transaction.sidecars;\n // If `blobs` are passed, we will need to compute the KZG commitments & proofs.\n if (transaction.blobs &&\n (typeof blobVersionedHashes === 'undefined' ||\n typeof sidecars === 'undefined')) {\n const blobs = (typeof transaction.blobs[0] === 'string'\n ? transaction.blobs\n : transaction.blobs.map((x) => bytesToHex(x)));\n const kzg = transaction.kzg;\n const commitments = blobsToCommitments({\n blobs,\n kzg,\n });\n if (typeof blobVersionedHashes === 'undefined')\n blobVersionedHashes = commitmentsToVersionedHashes({\n commitments,\n });\n if (typeof sidecars === 'undefined') {\n const proofs = blobsToProofs({ blobs, commitments, kzg });\n sidecars = toBlobSidecars({ blobs, commitments, proofs });\n }\n }\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n maxFeePerBlobGas ? numberToHex(maxFeePerBlobGas) : '0x',\n blobVersionedHashes ?? [],\n ...toYParitySignatureArray(transaction, signature),\n ];\n const blobs = [];\n const commitments = [];\n const proofs = [];\n if (sidecars)\n for (let i = 0; i < sidecars.length; i++) {\n const { blob, commitment, proof } = sidecars[i];\n blobs.push(blob);\n commitments.push(commitment);\n proofs.push(proof);\n }\n return concatHex([\n '0x03',\n sidecars\n ? // If sidecars are enabled, envelope turns into a \"wrapper\":\n toRlp([serializedTransaction, blobs, commitments, proofs])\n : // If sidecars are disabled, standard envelope is used:\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP1559(transaction, signature) {\n const { chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, data, } = transaction;\n assertTransactionEIP1559(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n maxPriorityFeePerGas ? numberToHex(maxPriorityFeePerGas) : '0x',\n maxFeePerGas ? numberToHex(maxFeePerGas) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x02',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionEIP2930(transaction, signature) {\n const { chainId, gas, data, nonce, to, value, accessList, gasPrice } = transaction;\n assertTransactionEIP2930(transaction);\n const serializedAccessList = serializeAccessList(accessList);\n const serializedTransaction = [\n numberToHex(chainId),\n nonce ? numberToHex(nonce) : '0x',\n gasPrice ? numberToHex(gasPrice) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n serializedAccessList,\n ...toYParitySignatureArray(transaction, signature),\n ];\n return concatHex([\n '0x01',\n toRlp(serializedTransaction),\n ]);\n}\nfunction serializeTransactionLegacy(transaction, signature) {\n const { chainId = 0, gas, data, nonce, to, value, gasPrice } = transaction;\n assertTransactionLegacy(transaction);\n let serializedTransaction = [\n nonce ? numberToHex(nonce) : '0x',\n gasPrice ? numberToHex(gasPrice) : '0x',\n gas ? numberToHex(gas) : '0x',\n to ?? '0x',\n value ? numberToHex(value) : '0x',\n data ?? '0x',\n ];\n if (signature) {\n const v = (() => {\n // EIP-155 (inferred chainId)\n if (signature.v >= 35n) {\n const inferredChainId = (signature.v - 35n) / 2n;\n if (inferredChainId > 0)\n return signature.v;\n return 27n + (signature.v === 35n ? 0n : 1n);\n }\n // EIP-155 (explicit chainId)\n if (chainId > 0)\n return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);\n // Pre-EIP-155 (no chainId)\n const v = 27n + (signature.v === 27n ? 0n : 1n);\n if (signature.v !== v)\n throw new InvalidLegacyVError({ v: signature.v });\n return v;\n })();\n const r = trim(signature.r);\n const s = trim(signature.s);\n serializedTransaction = [\n ...serializedTransaction,\n numberToHex(v),\n r === '0x00' ? '0x' : r,\n s === '0x00' ? '0x' : s,\n ];\n }\n else if (chainId > 0) {\n serializedTransaction = [\n ...serializedTransaction,\n numberToHex(chainId),\n '0x',\n '0x',\n ];\n }\n return toRlp(serializedTransaction);\n}\nexport function toYParitySignatureArray(transaction, signature_) {\n const signature = signature_ ?? transaction;\n const { v, yParity } = signature;\n if (typeof signature.r === 'undefined')\n return [];\n if (typeof signature.s === 'undefined')\n return [];\n if (typeof v === 'undefined' && typeof yParity === 'undefined')\n return [];\n const r = trim(signature.r);\n const s = trim(signature.s);\n const yParity_ = (() => {\n if (typeof yParity === 'number')\n return yParity ? numberToHex(1) : '0x';\n if (v === 0n)\n return '0x';\n if (v === 1n)\n return numberToHex(1);\n return v === 27n ? '0x' : numberToHex(1);\n })();\n return [yParity_, r === '0x00' ? '0x' : r, s === '0x00' ? '0x' : s];\n}\n//# sourceMappingURL=serializeTransaction.js.map","import { toHex } from '../encoding/toHex.js';\nimport { toYParitySignatureArray } from '../transaction/serializeTransaction.js';\n/*\n * Serializes an EIP-7702 authorization list.\n */\nexport function serializeAuthorizationList(authorizationList) {\n if (!authorizationList || authorizationList.length === 0)\n return [];\n const serializedAuthorizationList = [];\n for (const authorization of authorizationList) {\n const { chainId, nonce, ...signature } = authorization;\n const contractAddress = authorization.address;\n serializedAuthorizationList.push([\n chainId ? toHex(chainId) : '0x',\n contractAddress,\n nonce ? toHex(nonce) : '0x',\n ...toYParitySignatureArray({}, signature),\n ]);\n }\n return serializedAuthorizationList;\n}\n//# sourceMappingURL=serializeAuthorizationList.js.map","/**\n * Predeploy contracts for OP Stack.\n * @see https://github.com/ethereum-optimism/optimism/blob/develop/specs/predeploys.md\n */\nexport const contracts = {\n gasPriceOracle: { address: '0x420000000000000000000000000000000000000F' },\n l1Block: { address: '0x4200000000000000000000000000000000000015' },\n l2CrossDomainMessenger: {\n address: '0x4200000000000000000000000000000000000007',\n },\n l2Erc721Bridge: { address: '0x4200000000000000000000000000000000000014' },\n l2StandardBridge: { address: '0x4200000000000000000000000000000000000010' },\n l2ToL1MessagePasser: {\n address: '0x4200000000000000000000000000000000000016',\n },\n};\n//# sourceMappingURL=contracts.js.map","import { hexToBigInt } from '../utils/encoding/fromHex.js';\nimport { defineBlock } from '../utils/formatters/block.js';\nimport { defineTransaction, formatTransaction, } from '../utils/formatters/transaction.js';\nimport { defineTransactionReceipt } from '../utils/formatters/transactionReceipt.js';\nexport const formatters = {\n block: /*#__PURE__*/ defineBlock({\n format(args) {\n const transactions = args.transactions?.map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n const formatted = formatTransaction(transaction);\n if (formatted.typeHex === '0x7e') {\n formatted.isSystemTx = transaction.isSystemTx;\n formatted.mint = transaction.mint\n ? hexToBigInt(transaction.mint)\n : undefined;\n formatted.sourceHash = transaction.sourceHash;\n formatted.type = 'deposit';\n }\n return formatted;\n });\n return {\n transactions,\n stateRoot: args.stateRoot,\n };\n },\n }),\n transaction: /*#__PURE__*/ defineTransaction({\n format(args) {\n const transaction = {};\n if (args.type === '0x7e') {\n transaction.isSystemTx = args.isSystemTx;\n transaction.mint = args.mint ? hexToBigInt(args.mint) : undefined;\n transaction.sourceHash = args.sourceHash;\n transaction.type = 'deposit';\n }\n return transaction;\n },\n }),\n transactionReceipt: /*#__PURE__*/ defineTransactionReceipt({\n format(args) {\n return {\n l1GasPrice: args.l1GasPrice ? hexToBigInt(args.l1GasPrice) : null,\n l1GasUsed: args.l1GasUsed ? hexToBigInt(args.l1GasUsed) : null,\n l1Fee: args.l1Fee ? hexToBigInt(args.l1Fee) : null,\n l1FeeScalar: args.l1FeeScalar ? Number(args.l1FeeScalar) : null,\n };\n },\n }),\n};\n//# sourceMappingURL=formatters.js.map","import { InvalidAddressError } from '../errors/address.js';\nimport { isAddress } from '../utils/address/isAddress.js';\nimport { concatHex } from '../utils/data/concat.js';\nimport { toHex } from '../utils/encoding/toHex.js';\nimport { toRlp } from '../utils/encoding/toRlp.js';\nimport { serializeTransaction as serializeTransaction_, } from '../utils/transaction/serializeTransaction.js';\nexport function serializeTransaction(transaction, signature) {\n if (isDeposit(transaction))\n return serializeTransactionDeposit(transaction);\n return serializeTransaction_(transaction, signature);\n}\nexport const serializers = {\n transaction: serializeTransaction,\n};\nfunction serializeTransactionDeposit(transaction) {\n assertTransactionDeposit(transaction);\n const { sourceHash, data, from, gas, isSystemTx, mint, to, value } = transaction;\n const serializedTransaction = [\n sourceHash,\n from,\n to ?? '0x',\n mint ? toHex(mint) : '0x',\n value ? toHex(value) : '0x',\n gas ? toHex(gas) : '0x',\n isSystemTx ? '0x1' : '0x',\n data ?? '0x',\n ];\n return concatHex([\n '0x7e',\n toRlp(serializedTransaction),\n ]);\n}\nfunction isDeposit(transaction) {\n if (transaction.type === 'deposit')\n return true;\n if (typeof transaction.sourceHash !== 'undefined')\n return true;\n return false;\n}\nexport function assertTransactionDeposit(transaction) {\n const { from, to } = transaction;\n if (from && !isAddress(from))\n throw new InvalidAddressError({ address: from });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n}\n//# sourceMappingURL=serializers.js.map","import { contracts } from './contracts.js';\nimport { formatters } from './formatters.js';\nimport { serializers } from './serializers.js';\nexport const chainConfig = {\n blockTime: 2_000,\n contracts,\n formatters,\n serializers,\n};\n//# sourceMappingURL=chainConfig.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 42_161; // Arbitrum One\nexport const apeChain = /*#__PURE__*/ defineChain({\n id: 33139,\n name: 'Ape Chain',\n nativeCurrency: {\n name: 'ApeCoin',\n symbol: 'APE',\n decimals: 18,\n },\n rpcUrls: {\n default: {\n http: ['https://rpc.apechain.com/http'],\n webSocket: ['wss://rpc.apechain.com/ws'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Apescan',\n url: 'https://apescan.io',\n apiUrl: 'https://api.apescan.io/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 20889,\n },\n },\n sourceId,\n});\n//# sourceMappingURL=apeChain.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const arbitrum = /*#__PURE__*/ defineChain({\n id: 42_161,\n name: 'Arbitrum One',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n blockTime: 250,\n rpcUrls: {\n default: {\n http: ['https://arb1.arbitrum.io/rpc'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Arbiscan',\n url: 'https://arbiscan.io',\n apiUrl: 'https://api.arbiscan.io/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 7654707,\n },\n },\n});\n//# sourceMappingURL=arbitrum.js.map","import { chainConfig } from '../../op-stack/chainConfig.js';\nimport { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 1; // mainnet\nexport const base = /*#__PURE__*/ defineChain({\n ...chainConfig,\n id: 8453,\n name: 'Base',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://mainnet.base.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Basescan',\n url: 'https://basescan.org',\n apiUrl: 'https://api.basescan.org/api',\n },\n },\n contracts: {\n ...chainConfig.contracts,\n disputeGameFactory: {\n [sourceId]: {\n address: '0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e',\n },\n },\n l2OutputOracle: {\n [sourceId]: {\n address: '0x56315b90c40730925ec5485cf004d835058518A0',\n },\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 5022,\n },\n portal: {\n [sourceId]: {\n address: '0x49048044D57e1C92A77f79988d21Fa8fAF74E97e',\n blockCreated: 17482143,\n },\n },\n l1StandardBridge: {\n [sourceId]: {\n address: '0x3154Cf16ccdb4C6d922629664174b904d80F2C35',\n blockCreated: 17482143,\n },\n },\n },\n sourceId,\n});\nexport const basePreconf = /*#__PURE__*/ defineChain({\n ...base,\n experimental_preconfirmationTime: 200,\n rpcUrls: {\n default: {\n http: ['https://mainnet-preconf.base.org'],\n },\n },\n});\n//# sourceMappingURL=base.js.map","import { chainConfig } from '../../op-stack/chainConfig.js';\nimport { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 11_155_111; // sepolia\nexport const baseSepolia = /*#__PURE__*/ defineChain({\n ...chainConfig,\n id: 84532,\n network: 'base-sepolia',\n name: 'Base Sepolia',\n nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://sepolia.base.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Basescan',\n url: 'https://sepolia.basescan.org',\n apiUrl: 'https://api-sepolia.basescan.org/api',\n },\n },\n contracts: {\n ...chainConfig.contracts,\n disputeGameFactory: {\n [sourceId]: {\n address: '0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1',\n },\n },\n l2OutputOracle: {\n [sourceId]: {\n address: '0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254',\n },\n },\n portal: {\n [sourceId]: {\n address: '0x49f53e41452c74589e85ca1677426ba426459e85',\n blockCreated: 4446677,\n },\n },\n l1StandardBridge: {\n [sourceId]: {\n address: '0xfd0Bf71F60660E2f608ed56e1659C450eB113120',\n blockCreated: 4446677,\n },\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 1059647,\n },\n },\n testnet: true,\n sourceId,\n});\nexport const baseSepoliaPreconf = /*#__PURE__*/ defineChain({\n ...baseSepolia,\n experimental_preconfirmationTime: 200,\n rpcUrls: {\n default: {\n http: ['https://sepolia-preconf.base.org'],\n },\n },\n});\n//# sourceMappingURL=baseSepolia.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const berachain = /*#__PURE__*/ defineChain({\n id: 80094,\n name: 'Berachain',\n nativeCurrency: {\n decimals: 18,\n name: 'BERA Token',\n symbol: 'BERA',\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 0,\n },\n ensRegistry: {\n address: '0x5b22280886a2f5e09a49bea7e320eab0e5320e28',\n blockCreated: 877007,\n },\n ensUniversalResolver: {\n address: '0xddfb18888a9466688235887dec2a10c4f5effee9',\n blockCreated: 877008,\n },\n },\n rpcUrls: {\n default: { http: ['https://rpc.berachain.com'] },\n },\n blockExplorers: {\n default: {\n name: 'Berascan',\n url: 'https://berascan.com',\n },\n },\n ensTlds: ['.bera'],\n testnet: false,\n});\n//# sourceMappingURL=berachain.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const bsc = /*#__PURE__*/ defineChain({\n id: 56,\n name: 'BNB Smart Chain',\n nativeCurrency: {\n decimals: 18,\n name: 'BNB',\n symbol: 'BNB',\n },\n rpcUrls: {\n default: { http: ['https://56.rpc.thirdweb.com'] },\n },\n blockExplorers: {\n default: {\n name: 'BscScan',\n url: 'https://bscscan.com',\n apiUrl: 'https://api.bscscan.com/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 15921452,\n },\n },\n});\n//# sourceMappingURL=bsc.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const holesky = /*#__PURE__*/ defineChain({\n id: 17000,\n name: 'Holesky',\n nativeCurrency: { name: 'Holesky Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://ethereum-holesky-rpc.publicnode.com'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://holesky.etherscan.io',\n apiUrl: 'https://api-holesky.etherscan.io/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 77,\n },\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n blockCreated: 801613,\n },\n ensUniversalResolver: {\n address: '0xa6AC935D4971E3CD133b950aE053bECD16fE7f3b',\n blockCreated: 973484,\n },\n },\n testnet: true,\n});\n//# sourceMappingURL=holesky.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const hoodi = /*#__PURE__*/ defineChain({\n id: 560048,\n name: 'Hoodi',\n nativeCurrency: { name: 'Hoodi Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://rpc.hoodi.ethpandaops.io'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://hoodi.etherscan.io',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 2589,\n },\n },\n testnet: true,\n});\n//# sourceMappingURL=hoodi.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const mainnet = /*#__PURE__*/ defineChain({\n id: 1,\n name: 'Ethereum',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://eth.merkle.io'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://etherscan.io',\n apiUrl: 'https://api.etherscan.io/api',\n },\n },\n contracts: {\n ensRegistry: {\n address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n },\n ensUniversalResolver: {\n address: '0xce01f8eee7E479C928F8919abD53E553a36CeF67',\n blockCreated: 19_258_213,\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 14_353_601,\n },\n },\n});\n//# sourceMappingURL=mainnet.js.map","import { chainConfig } from '../../op-stack/chainConfig.js';\nimport { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 11_155_111; // sepolia\nexport const optimismSepolia = /*#__PURE__*/ defineChain({\n ...chainConfig,\n id: 11155420,\n name: 'OP Sepolia',\n nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://sepolia.optimism.io'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Blockscout',\n url: 'https://optimism-sepolia.blockscout.com',\n apiUrl: 'https://optimism-sepolia.blockscout.com/api',\n },\n },\n contracts: {\n ...chainConfig.contracts,\n disputeGameFactory: {\n [sourceId]: {\n address: '0x05F9613aDB30026FFd634f38e5C4dFd30a197Fa1',\n },\n },\n l2OutputOracle: {\n [sourceId]: {\n address: '0x90E9c4f8a994a250F6aEfd61CAFb4F2e895D458F',\n },\n },\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 1620204,\n },\n portal: {\n [sourceId]: {\n address: '0x16Fc5058F25648194471939df75CF27A2fdC48BC',\n },\n },\n l1StandardBridge: {\n [sourceId]: {\n address: '0xFBb0621E0B23b5478B630BD55a5f21f67730B0F1',\n },\n },\n },\n testnet: true,\n sourceId,\n});\n//# sourceMappingURL=optimismSepolia.js.map","import { defineChain } from '../../utils/chain/defineChain.js';\nexport const sepolia = /*#__PURE__*/ defineChain({\n id: 11_155_111,\n name: 'Sepolia',\n nativeCurrency: { name: 'Sepolia Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://sepolia.drpc.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Etherscan',\n url: 'https://sepolia.etherscan.io',\n apiUrl: 'https://api-sepolia.etherscan.io/api',\n },\n },\n contracts: {\n multicall3: {\n address: '0xca11bde05977b3631167028862be2a173976ca11',\n blockCreated: 751532,\n },\n ensRegistry: { address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e' },\n ensUniversalResolver: {\n address: '0xc8Af999e38273D658BE1b921b88A9Ddf005769cC',\n blockCreated: 5_317_080,\n },\n },\n testnet: true,\n});\n//# sourceMappingURL=sepolia.js.map","import { chainConfig } from '../../op-stack/chainConfig.js';\nimport { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 1; // mainnet\nexport const soneium = /*#__PURE__*/ defineChain({\n ...chainConfig,\n id: 1868,\n name: 'Soneium Mainnet',\n nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },\n rpcUrls: {\n default: {\n http: ['https://rpc.soneium.org'],\n },\n },\n blockExplorers: {\n default: {\n name: 'Blockscout',\n url: 'https://soneium.blockscout.com',\n apiUrl: 'https://soneium.blockscout.com/api',\n },\n },\n contracts: {\n ...chainConfig.contracts,\n disputeGameFactory: {\n [sourceId]: {\n address: '0x512a3d2c7a43bd9261d2b8e8c9c70d4bd4d503c0',\n },\n },\n l2OutputOracle: {\n [sourceId]: {\n address: '0x0000000000000000000000000000000000000000',\n },\n },\n portal: {\n [sourceId]: {\n address: '0x88e529a6ccd302c948689cd5156c83d4614fae92',\n blockCreated: 7061266,\n },\n },\n l1StandardBridge: {\n [sourceId]: {\n address: '0xeb9bf100225c214efc3e7c651ebbadcf85177607',\n blockCreated: 7061266,\n },\n },\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n blockCreated: 1,\n },\n },\n sourceId,\n});\n//# sourceMappingURL=soneium.js.map","import { chainConfig } from '../../op-stack/chainConfig.js';\nimport { defineChain } from '../../utils/chain/defineChain.js';\nconst sourceId = 1; // ethereum mainnet\nexport const zircuit = /*#__PURE__*/ defineChain({\n ...chainConfig,\n id: 48900,\n name: 'Zircuit Mainnet',\n nativeCurrency: {\n decimals: 18,\n name: 'Ether',\n symbol: 'ETH',\n },\n rpcUrls: {\n default: {\n http: [\n 'https://mainnet.zircuit.com',\n 'https://zircuit1-mainnet.liquify.com',\n 'https://zircuit1-mainnet.p2pify.com',\n 'https://zircuit-mainnet.drpc.org',\n ],\n },\n },\n blockExplorers: {\n default: {\n name: 'Zircuit Explorer',\n url: 'https://explorer.zircuit.com',\n },\n },\n contracts: {\n multicall3: {\n address: '0xcA11bde05977b3631167028862bE2a173976CA11',\n },\n l2OutputOracle: {\n [sourceId]: {\n address: '0x92Ef6Af472b39F1b363da45E35530c24619245A4',\n },\n },\n portal: {\n [sourceId]: {\n address: '0x17bfAfA932d2e23Bd9B909Fd5B4D2e2a27043fb1',\n },\n },\n l1StandardBridge: {\n [sourceId]: {\n address: '0x386B76D9cA5F5Fb150B6BFB35CF5379B22B26dd8',\n },\n },\n },\n testnet: false,\n});\n//# sourceMappingURL=zircuit.js.map","import { Chain as ViemChain } from 'viem';\nimport {\n mainnet,\n holesky,\n base,\n bsc,\n arbitrum,\n apeChain,\n soneium,\n sepolia,\n optimismSepolia,\n baseSepolia,\n zircuit,\n berachain,\n hoodi,\n} from 'viem/chains';\n\nexport enum Chain {\n Mainnet = mainnet.id,\n Holesky = holesky.id,\n Base = base.id,\n Bsc = bsc.id,\n Arbitrum = arbitrum.id,\n ApeChain = apeChain.id,\n Soneium = soneium.id,\n Sepolia = sepolia.id,\n OptimismSepolia = optimismSepolia.id,\n BaseSepolia = baseSepolia.id,\n Zircuit = zircuit.id,\n Berachain = berachain.id,\n Hoodi = hoodi.id,\n}\n\nexport const VIEM_CHAINS: { [key in Chain]: ViemChain } = {\n [Chain.Mainnet]: mainnet,\n [Chain.Holesky]: holesky,\n [Chain.Base]: base,\n [Chain.Bsc]: bsc,\n [Chain.Arbitrum]: arbitrum,\n [Chain.ApeChain]: apeChain,\n [Chain.Soneium]: soneium,\n [Chain.Sepolia]: sepolia,\n [Chain.OptimismSepolia]: optimismSepolia,\n [Chain.BaseSepolia]: baseSepolia,\n [Chain.Zircuit]: zircuit,\n [Chain.Berachain]: berachain,\n [Chain.Hoodi]: hoodi,\n};\n\nexport { type ViemChain };\n"],"names":["isHex","value","strict","size","version","errorConfig","docsBaseUrl","docsPath","docsSlug","BaseError","shortMessage","args","details","_a","docsUrl","message","fn","walk","err","SliceOffsetOutOfBoundsError","offset","position","SizeExceedsPaddingSizeError","targetSize","type","InvalidBytesLengthError","pad","hexOrBytes","dir","padHex","padBytes","hex_","hex","bytes","paddedBytes","i","padEnd","IntegerOutOfRangeError","max","min","signed","InvalidBytesBooleanError","InvalidHexBooleanError","SizeOverflowError","givenSize","maxSize","trim","data","sliceLength","assertSize","size_","hexToBigInt","opts","hexToBool","hexToNumber","hexes","_v","toHex","numberToHex","stringToHex","boolToHex","bytesToHex","string","value_","maxValue","minValue","suffix","encoder","toBytes","numberToBytes","boolToBytes","hexToBytes","stringToBytes","charCodeMap","charCodeToBase16","char","hexString","length","index","j","nibbleLeft","nibbleRight","U32_MASK64","_32n","fromBig","n","le","split","lst","len","Ah","Al","h","l","rotlSH","s","rotlSL","rotlBH","rotlBL","crypto","isBytes","a","anumber","abytes","b","lengths","ahash","aexists","instance","checkFinished","aoutput","out","u32","arr","clean","arrays","createView","rotr","word","shift","isLE","byteSwap","byteSwap32","swap32IfBE","u","hasHexBuiltin","_","asciis","asciiToBase16","ch","hl","al","array","ai","hi","n1","n2","utf8ToBytes","str","concatBytes","sum","res","Hash","createHasher","hashCons","hashC","msg","tmp","randomBytes","bytesLength","_0n","_1n","_2n","_7n","_256n","_0x71n","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","round","R","x","y","t","IOTAS","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","keccakP","rounds","B","idx1","idx0","B0","B1","Th","Tl","curH","curL","PI","Keccak","blockLen","outputLen","enableXOF","state","pos","take","bufferOut","to","gen","keccak_256","keccak256","to_","InvalidAddressError","address","LruMap","key","firstKey","checksumAddressCache","checksumAddress","address_","chainId","hexAddress","hash","result","getAddress","isAddress","addressRegex","isAddressCache","options","cacheKey","concat","values","concatHex","acc","slice","start","end","sliceHex","sliceBytes","assertStartOffset","assertEndOffset","NegativeOffsetError","PositionOutOfBoundsError","RecursiveReadLimitExceededError","count","limit","staticCursor","position_","byte","oldPosition","createCursor","recursiveReadLimit","cursor","etherUnits","gweiUnits","formatUnits","decimals","display","negative","integer","fraction","formatEther","wei","unit","formatGwei","prettyPrint","entries","maxLength","FeeConflictError","InvalidLegacyVError","v","InvalidSerializableTransactionError","transaction","InvalidStorageKeySizeError","storageKey","TransactionExecutionError","cause","account","chain","gas","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","prettyArgs","TransactionNotFoundError","blockHash","blockNumber","blockTag","identifier","TransactionReceiptNotFoundError","WaitForTransactionReceiptTimeoutError","toRlp","encodable","getEncodable","getEncodableList","getEncodableBytes","list","bodyLength","sizeOfBodyLength","getSizeOfLength","encode","bytesOrHex","sizeOfBytesLength","ExecutionRevertedError","reason","FeeCapTooHighError","FeeCapTooLowError","NonceTooHighError","NonceTooLowError","NonceMaxValueError","InsufficientFundsError","IntrinsicGasTooHighError","IntrinsicGasTooLowError","TransactionTypeNotSupportedError","TipAboveFeeCapError","UnknownNodeError","defineFormatter","format","exclude","overrides","formatted","maxUint256","transactionType","formatTransaction","transaction_","formatAuthorizationList","defineTransaction","authorizationList","authorization","formatBlock","block","transactions","defineBlock","blobsToCommitments","parameters","kzg","blobs","commitments","blob","blobsToProofs","proofs","commitment","setBigUint64","view","byteOffset","_u32_max","wh","wl","Chi","c","Maj","HashMD","padOffset","buffer","dataView","oview","outLen","finished","destroyed","SHA256_IV","SHA256_K","SHA256_W","SHA256","A","C","D","E","F","G","H","W15","W2","s0","s1","sigma1","T1","T2","sha256","sha256n","noble_sha256","commitmentToVersionedHash","versionedHash","commitmentsToVersionedHashes","hashes","blobsPerTransaction","bytesPerFieldElement","fieldElementsPerBlob","bytesPerBlob","maxBytesPerTransaction","versionedHashVersionKzg","BlobSizeTooLargeError","EmptyBlobError","InvalidVersionedHashSizeError","InvalidVersionedHashVersionError","toBlobs","active","toBlobSidecars","sidecars","getTransactionType","formatLog","log","eventName","ChainDoesNotSupportContract","contract","ChainMismatchError","currentChainId","ChainNotFoundError","ClientChainNotConfiguredError","InvalidChainIdError","receiptStatuses","formatTransactionReceipt","transactionReceipt","receipt","defineTransactionReceipt","defineChain","assertTransactionEIP7702","assertTransactionEIP1559","assertTransactionEIP4844","blobVersionedHashes","assertTransactionEIP2930","assertTransactionLegacy","serializeAccessList","accessList","serializedAccessList","storageKeys","serializeTransaction","signature","serializeTransactionEIP1559","serializeTransactionEIP2930","serializeTransactionEIP4844","serializeTransactionEIP7702","serializeTransactionLegacy","serializedAuthorizationList","serializeAuthorizationList","toYParitySignatureArray","maxFeePerBlobGas","serializedTransaction","proof","r","signature_","yParity","contractAddress","contracts","formatters","isDeposit","serializeTransactionDeposit","serializeTransaction_","serializers","assertTransactionDeposit","sourceHash","from","isSystemTx","mint","chainConfig","sourceId","apeChain","arbitrum","base","baseSepolia","berachain","bsc","holesky","hoodi","mainnet","optimismSepolia","sepolia","soneium","zircuit","Chain","VIEM_CHAINS"],"mappings":"aAAO,SAASA,EAAMC,EAAO,CAAE,OAAAC,EAAS,EAAI,EAAK,CAAA,EAAI,CAGjD,MAFI,CAACD,GAED,OAAOA,GAAU,SACV,GACJC,EAAS,mBAAmB,KAAKD,CAAK,EAAIA,EAAM,WAAW,IAAI,CAC1E,CCCO,SAASE,EAAKF,EAAO,CACxB,OAAID,EAAMC,EAAO,CAAE,OAAQ,EAAK,CAAE,EACvB,KAAK,MAAMA,EAAM,OAAS,GAAK,CAAC,EACpCA,EAAM,MACjB,CCXO,MAAMG,GAAU,SCCvB,IAAIC,EAAc,CACd,WAAY,CAAC,CAAE,YAAAC,EAAa,SAAAC,EAAW,GAAI,SAAAC,CAAQ,IAAQD,EACrD,GAAGD,GAAe,iBAAiB,GAAGC,CAAQ,GAAGC,EAAW,IAAIA,CAAQ,GAAK,EAAE,GAC/E,OACN,QAAS,QAAQJ,EAAO,EAC5B,EAIO,MAAMK,UAAkB,KAAM,CACjC,YAAYC,EAAcC,EAAO,GAAI,OACjC,MAAMC,GAAW,IAAM,OACnB,OAAID,EAAK,iBAAiBF,EACfE,EAAK,MAAM,SAClBE,EAAAF,EAAK,QAAL,MAAAE,EAAY,QACLF,EAAK,MAAM,QACfA,EAAK,OACxB,GAAY,EACEJ,EACEI,EAAK,iBAAiBF,GACfE,EAAK,MAAM,UAAYA,EAAK,SAGrCG,GAAUD,EAAAR,EAAY,aAAZ,YAAAQ,EAAA,KAAAR,EAAyB,CAAE,GAAGM,EAAM,SAAAJ,IAC9CQ,EAAU,CACZL,GAAgB,qBAChB,GACA,GAAIC,EAAK,aAAe,CAAC,GAAGA,EAAK,aAAc,EAAE,EAAI,GACrD,GAAIG,EAAU,CAAC,SAASA,CAAO,EAAE,EAAI,GACrC,GAAIF,EAAU,CAAC,YAAYA,CAAO,EAAE,EAAI,GACxC,GAAIP,EAAY,QAAU,CAAC,YAAYA,EAAY,OAAO,EAAE,EAAI,EAC5E,EAAU,KAAK;AAAA,CAAI,EACX,MAAMU,EAASJ,EAAK,MAAQ,CAAE,MAAOA,EAAK,KAAO,EAAG,MAAS,EAC7D,OAAO,eAAe,KAAM,UAAW,CACnC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACnB,CAAS,EACD,OAAO,eAAe,KAAM,WAAY,CACpC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACnB,CAAS,EACD,OAAO,eAAe,KAAM,eAAgB,CACxC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACnB,CAAS,EACD,OAAO,eAAe,KAAM,eAAgB,CACxC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACnB,CAAS,EACD,OAAO,eAAe,KAAM,UAAW,CACnC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACnB,CAAS,EACD,OAAO,eAAe,KAAM,OAAQ,CAChC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,WACnB,CAAS,EACD,KAAK,QAAUC,EACf,KAAK,SAAWL,EAChB,KAAK,aAAeI,EAAK,aACzB,KAAK,KAAOA,EAAK,MAAQ,KAAK,KAC9B,KAAK,aAAeD,EACpB,KAAK,QAAUN,EACvB,CACI,KAAKY,EAAI,CACL,OAAOC,GAAK,KAAMD,CAAE,CAC5B,CACA,CACA,SAASC,GAAKC,EAAKF,EAAI,CACnB,OAAIA,GAAA,MAAAA,EAAKE,GACEA,EACPA,GACA,OAAOA,GAAQ,UACf,UAAWA,GACXA,EAAI,QAAU,OACPD,GAAKC,EAAI,MAAOF,CAAE,EACtBA,EAAK,KAAOE,CACvB,CCzFO,MAAMC,WAAoCV,CAAU,CACvD,YAAY,CAAE,OAAAW,EAAQ,SAAAC,EAAU,KAAAlB,CAAI,EAAK,CACrC,MAAM,SAASkB,IAAa,QAAU,WAAa,QAAQ,eAAeD,CAAM,6BAA6BjB,CAAI,KAAM,CAAE,KAAM,8BAA+B,CACtK,CACA,CACO,MAAMmB,WAAoCb,CAAU,CACvD,YAAY,CAAE,KAAAN,EAAM,WAAAoB,EAAY,KAAAC,CAAI,EAAK,CACrC,MAAM,GAAGA,EAAK,OAAO,CAAC,EAAE,YAAW,CAAE,GAAGA,EACnC,MAAM,CAAC,EACP,YAAa,CAAA,UAAUrB,CAAI,2BAA2BoB,CAAU,KAAM,CAAE,KAAM,8BAA+B,CAC1H,CACA,CACO,MAAME,WAAgChB,CAAU,CACnD,YAAY,CAAE,KAAAN,EAAM,WAAAoB,EAAY,KAAAC,CAAI,EAAK,CACrC,MAAM,GAAGA,EAAK,OAAO,CAAC,EAAE,YAAW,CAAE,GAAGA,EACnC,MAAM,CAAC,EACP,YAAa,CAAA,sBAAsBD,CAAU,IAAIC,CAAI,iBAAiBrB,CAAI,IAAIqB,CAAI,SAAU,CAAE,KAAM,yBAAyB,CAAE,CAC5I,CACA,CClBO,SAASE,EAAIC,EAAY,CAAE,IAAAC,EAAK,KAAAzB,EAAO,EAAI,EAAG,GAAI,CACrD,OAAI,OAAOwB,GAAe,SACfE,GAAOF,EAAY,CAAE,IAAAC,EAAK,KAAAzB,CAAI,CAAE,EACpC2B,GAASH,EAAY,CAAE,IAAAC,EAAK,KAAAzB,CAAI,CAAE,CAC7C,CACO,SAAS0B,GAAOE,EAAM,CAAE,IAAAH,EAAK,KAAAzB,EAAO,EAAI,EAAG,GAAI,CAClD,GAAIA,IAAS,KACT,OAAO4B,EACX,MAAMC,EAAMD,EAAK,QAAQ,KAAM,EAAE,EACjC,GAAIC,EAAI,OAAS7B,EAAO,EACpB,MAAM,IAAImB,GAA4B,CAClC,KAAM,KAAK,KAAKU,EAAI,OAAS,CAAC,EAC9B,WAAY7B,EACZ,KAAM,KAClB,CAAS,EACL,MAAO,KAAK6B,EAAIJ,IAAQ,QAAU,SAAW,UAAU,EAAEzB,EAAO,EAAG,GAAG,CAAC,EAC3E,CACO,SAAS2B,GAASG,EAAO,CAAE,IAAAL,EAAK,KAAAzB,EAAO,EAAI,EAAG,GAAI,CACrD,GAAIA,IAAS,KACT,OAAO8B,EACX,GAAIA,EAAM,OAAS9B,EACf,MAAM,IAAImB,GAA4B,CAClC,KAAMW,EAAM,OACZ,WAAY9B,EACZ,KAAM,OAClB,CAAS,EACL,MAAM+B,EAAc,IAAI,WAAW/B,CAAI,EACvC,QAASgC,EAAI,EAAGA,EAAIhC,EAAMgC,IAAK,CAC3B,MAAMC,EAASR,IAAQ,QACvBM,EAAYE,EAASD,EAAIhC,EAAOgC,EAAI,CAAC,EACjCF,EAAMG,EAASD,EAAIF,EAAM,OAASE,EAAI,CAAC,CACnD,CACI,OAAOD,CACX,CCjCO,MAAMG,WAA+B5B,CAAU,CAClD,YAAY,CAAE,IAAA6B,EAAK,IAAAC,EAAK,OAAAC,EAAQ,KAAArC,EAAM,MAAAF,GAAU,CAC5C,MAAM,WAAWA,CAAK,oBAAoBE,EAAO,GAAGA,EAAO,CAAC,QAAQqC,EAAS,SAAW,UAAU,IAAM,EAAE,iBAAiBF,EAAM,IAAIC,CAAG,OAAOD,CAAG,IAAM,UAAUC,CAAG,GAAG,GAAI,CAAE,KAAM,yBAA0B,CACtN,CACA,CACO,MAAME,WAAiChC,CAAU,CACpD,YAAYwB,EAAO,CACf,MAAM,gBAAgBA,CAAK,iGAAkG,CACzH,KAAM,0BAClB,CAAS,CACT,CACA,CACO,MAAMS,WAA+BjC,CAAU,CAClD,YAAYuB,EAAK,CACb,MAAM,cAAcA,CAAG,iFAAkF,CAAE,KAAM,yBAA0B,CACnJ,CACA,CAMO,MAAMW,WAA0BlC,CAAU,CAC7C,YAAY,CAAE,UAAAmC,EAAW,QAAAC,GAAW,CAChC,MAAM,sBAAsBA,CAAO,uBAAuBD,CAAS,UAAW,CAAE,KAAM,oBAAqB,CACnH,CACA,CC3BO,SAASE,EAAKnB,EAAY,CAAE,IAAAC,EAAM,MAAM,EAAK,CAAA,EAAI,CACpD,IAAImB,EAAO,OAAOpB,GAAe,SAAWA,EAAW,QAAQ,KAAM,EAAE,EAAIA,EACvEqB,EAAc,EAClB,QAASb,EAAI,EAAGA,EAAIY,EAAK,OAAS,GAC1BA,EAAKnB,IAAQ,OAASO,EAAIY,EAAK,OAASZ,EAAI,CAAC,EAAE,SAAU,IAAK,IADjCA,IAE7Ba,IAQR,OAJAD,EACInB,IAAQ,OACFmB,EAAK,MAAMC,CAAW,EACtBD,EAAK,MAAM,EAAGA,EAAK,OAASC,CAAW,EAC7C,OAAOrB,GAAe,UAClBoB,EAAK,SAAW,GAAKnB,IAAQ,UAC7BmB,EAAO,GAAGA,CAAI,KACX,KAAKA,EAAK,OAAS,IAAM,EAAI,IAAIA,CAAI,GAAKA,CAAI,IAElDA,CACX,CCfO,SAASE,EAAWtB,EAAY,CAAExB,KAAAA,GAAQ,CAC7C,GAAI+C,EAAMvB,CAAU,EAAIxB,EACpB,MAAM,IAAIwC,GAAkB,CACxB,UAAWO,EAAMvB,CAAU,EAC3B,QAASxB,CACrB,CAAS,CACT,CA6DO,SAASgD,EAAYnB,EAAKoB,EAAO,GAAI,CACxC,KAAM,CAAE,OAAAZ,CAAM,EAAKY,EACfA,EAAK,MACLH,EAAWjB,EAAK,CAAE,KAAMoB,EAAK,IAAI,CAAE,EACvC,MAAMnD,EAAQ,OAAO+B,CAAG,EACxB,GAAI,CAACQ,EACD,OAAOvC,EACX,MAAME,GAAQ6B,EAAI,OAAS,GAAK,EAC1BM,GAAO,IAAO,OAAOnC,CAAI,EAAI,GAAK,IAAO,GAC/C,OAAIF,GAASqC,EACFrC,EACJA,EAAQ,OAAO,KAAK,IAAI,SAASE,EAAO,EAAG,GAAG,CAAC,EAAE,EAAI,EAChE,CAoBO,SAASkD,GAAUtB,EAAMqB,EAAO,GAAI,CACvC,IAAIpB,EAAMD,EAKV,GAJIqB,EAAK,OACLH,EAAWjB,EAAK,CAAE,KAAMoB,EAAK,IAAI,CAAE,EACnCpB,EAAMc,EAAKd,CAAG,GAEdc,EAAKd,CAAG,IAAM,OACd,MAAO,GACX,GAAIc,EAAKd,CAAG,IAAM,OACd,MAAO,GACX,MAAM,IAAIU,GAAuBV,CAAG,CACxC,CAoBO,SAASsB,EAAYtB,EAAKoB,EAAO,GAAI,CACxC,OAAO,OAAOD,EAAYnB,EAAKoB,CAAI,CAAC,CACxC,CCrIA,MAAMG,GAAsB,MAAM,KAAK,CAAE,OAAQ,GAAK,EAAE,CAACC,EAAIrB,IAAMA,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EA0B3F,SAASsB,EAAMxD,EAAOmD,EAAO,GAAI,CACpC,OAAI,OAAOnD,GAAU,UAAY,OAAOA,GAAU,SACvCyD,EAAYzD,EAAOmD,CAAI,EAC9B,OAAOnD,GAAU,SACV0D,GAAY1D,EAAOmD,CAAI,EAE9B,OAAOnD,GAAU,UACV2D,GAAU3D,EAAOmD,CAAI,EACzBS,EAAW5D,EAAOmD,CAAI,CACjC,CAyBO,SAASQ,GAAU3D,EAAOmD,EAAO,GAAI,CACxC,MAAMpB,EAAM,KAAK,OAAO/B,CAAK,CAAC,GAC9B,OAAI,OAAOmD,EAAK,MAAS,UACrBH,EAAWjB,EAAK,CAAE,KAAMoB,EAAK,IAAI,CAAE,EAC5B1B,EAAIM,EAAK,CAAE,KAAMoB,EAAK,IAAI,CAAE,GAEhCpB,CACX,CAoBO,SAAS6B,EAAW5D,EAAOmD,EAAO,GAAI,CACzC,IAAIU,EAAS,GACb,QAAS3B,EAAI,EAAGA,EAAIlC,EAAM,OAAQkC,IAC9B2B,GAAUP,GAAMtD,EAAMkC,CAAC,CAAC,EAE5B,MAAMH,EAAM,KAAK8B,CAAM,GACvB,OAAI,OAAOV,EAAK,MAAS,UACrBH,EAAWjB,EAAK,CAAE,KAAMoB,EAAK,IAAI,CAAE,EAC5B1B,EAAIM,EAAK,CAAE,IAAK,QAAS,KAAMoB,EAAK,KAAM,GAE9CpB,CACX,CAoBO,SAAS0B,EAAYK,EAAQX,EAAO,GAAI,CAC3C,KAAM,CAAE,OAAAZ,EAAQ,KAAArC,CAAI,EAAKiD,EACnBnD,EAAQ,OAAO8D,CAAM,EAC3B,IAAIC,EACA7D,EACIqC,EACAwB,GAAY,IAAO,OAAO7D,CAAI,EAAI,GAAK,IAAO,GAE9C6D,EAAW,KAAO,OAAO7D,CAAI,EAAI,IAAM,GAEtC,OAAO4D,GAAW,WACvBC,EAAW,OAAO,OAAO,gBAAgB,GAE7C,MAAMC,EAAW,OAAOD,GAAa,UAAYxB,EAAS,CAACwB,EAAW,GAAK,EAC3E,GAAKA,GAAY/D,EAAQ+D,GAAa/D,EAAQgE,EAAU,CACpD,MAAMC,EAAS,OAAOH,GAAW,SAAW,IAAM,GAClD,MAAM,IAAI1B,GAAuB,CAC7B,IAAK2B,EAAW,GAAGA,CAAQ,GAAGE,CAAM,GAAK,OACzC,IAAK,GAAGD,CAAQ,GAAGC,CAAM,GACzB,OAAA1B,EACA,KAAArC,EACA,MAAO,GAAG4D,CAAM,GAAGG,CAAM,EACrC,CAAS,CACT,CACI,MAAMlC,EAAM,MAAMQ,GAAUvC,EAAQ,GAAK,IAAM,OAAOE,EAAO,CAAC,GAAK,OAAOF,CAAK,EAAIA,GAAO,SAAS,EAAE,CAAC,GACtG,OAAIE,EACOuB,EAAIM,EAAK,CAAE,KAAA7B,EAAM,EACrB6B,CACX,CACA,MAAMmC,GAAwB,IAAI,YAoB3B,SAASR,GAAYI,EAAQX,EAAO,GAAI,CAC3C,MAAMnD,EAAQkE,GAAQ,OAAOJ,CAAM,EACnC,OAAOF,EAAW5D,EAAOmD,CAAI,CACjC,CCxKA,MAAMe,GAAwB,IAAI,YA0B3B,SAASC,GAAQnE,EAAOmD,EAAO,GAAI,CACtC,OAAI,OAAOnD,GAAU,UAAY,OAAOA,GAAU,SACvCoE,GAAcpE,EAAOmD,CAAI,EAChC,OAAOnD,GAAU,UACVqE,GAAYrE,EAAOmD,CAAI,EAC9BpD,EAAMC,CAAK,EACJsE,EAAWtE,EAAOmD,CAAI,EAC1BoB,GAAcvE,EAAOmD,CAAI,CACpC,CAoBO,SAASkB,GAAYrE,EAAOmD,EAAO,GAAI,CAC1C,MAAMnB,EAAQ,IAAI,WAAW,CAAC,EAE9B,OADAA,EAAM,CAAC,EAAI,OAAOhC,CAAK,EACnB,OAAOmD,EAAK,MAAS,UACrBH,EAAWhB,EAAO,CAAE,KAAMmB,EAAK,IAAI,CAAE,EAC9B1B,EAAIO,EAAO,CAAE,KAAMmB,EAAK,IAAI,CAAE,GAElCnB,CACX,CAEA,MAAMwC,EAAc,CAChB,KAAM,GACN,KAAM,GACN,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACP,EACA,SAASC,GAAiBC,EAAM,CAC5B,GAAIA,GAAQF,EAAY,MAAQE,GAAQF,EAAY,KAChD,OAAOE,EAAOF,EAAY,KAC9B,GAAIE,GAAQF,EAAY,GAAKE,GAAQF,EAAY,EAC7C,OAAOE,GAAQF,EAAY,EAAI,IACnC,GAAIE,GAAQF,EAAY,GAAKE,GAAQF,EAAY,EAC7C,OAAOE,GAAQF,EAAY,EAAI,GAEvC,CAoBO,SAASF,EAAWxC,EAAMqB,EAAO,GAAI,CACxC,IAAIpB,EAAMD,EACNqB,EAAK,OACLH,EAAWjB,EAAK,CAAE,KAAMoB,EAAK,IAAI,CAAE,EACnCpB,EAAMN,EAAIM,EAAK,CAAE,IAAK,QAAS,KAAMoB,EAAK,KAAM,GAEpD,IAAIwB,EAAY5C,EAAI,MAAM,CAAC,EACvB4C,EAAU,OAAS,IACnBA,EAAY,IAAIA,CAAS,IAC7B,MAAMC,EAASD,EAAU,OAAS,EAC5B3C,EAAQ,IAAI,WAAW4C,CAAM,EACnC,QAASC,EAAQ,EAAGC,EAAI,EAAGD,EAAQD,EAAQC,IAAS,CAChD,MAAME,EAAaN,GAAiBE,EAAU,WAAWG,GAAG,CAAC,EACvDE,EAAcP,GAAiBE,EAAU,WAAWG,GAAG,CAAC,EAC9D,GAAIC,IAAe,QAAaC,IAAgB,OAC5C,MAAM,IAAIxE,EAAU,2BAA2BmE,EAAUG,EAAI,CAAC,CAAC,GAAGH,EAAUG,EAAI,CAAC,CAAC,SAASH,CAAS,KAAK,EAE7G3C,EAAM6C,CAAK,EAAIE,EAAa,GAAKC,CACzC,CACI,OAAOhD,CACX,CAoBO,SAASoC,GAAcpE,EAAOmD,EAAM,CACvC,MAAMpB,EAAM0B,EAAYzD,EAAOmD,CAAI,EACnC,OAAOmB,EAAWvC,CAAG,CACzB,CAoBO,SAASwC,GAAcvE,EAAOmD,EAAO,GAAI,CAC5C,MAAMnB,EAAQkC,GAAQ,OAAOlE,CAAK,EAClC,OAAI,OAAOmD,EAAK,MAAS,UACrBH,EAAWhB,EAAO,CAAE,KAAMmB,EAAK,IAAI,CAAE,EAC9B1B,EAAIO,EAAO,CAAE,IAAK,QAAS,KAAMmB,EAAK,KAAM,GAEhDnB,CACX,CC1KA,MAAMiD,GAA6B,OAAO,GAAK,GAAK,CAAC,EAC/CC,GAAuB,OAAO,EAAE,EACtC,SAASC,GAAQC,EAAGC,EAAK,GAAO,CAC5B,OAAIA,EACO,CAAE,EAAG,OAAOD,EAAIH,EAAU,EAAG,EAAG,OAAQG,GAAKF,GAAQD,EAAU,CAAG,EACtE,CAAE,EAAG,OAAQG,GAAKF,GAAQD,EAAU,EAAI,EAAG,EAAG,OAAOG,EAAIH,EAAU,EAAI,CAAG,CACrF,CACA,SAASK,GAAMC,EAAKF,EAAK,GAAO,CAC5B,MAAMG,EAAMD,EAAI,OAChB,IAAIE,EAAK,IAAI,YAAYD,CAAG,EACxBE,EAAK,IAAI,YAAYF,CAAG,EAC5B,QAAS,EAAI,EAAG,EAAIA,EAAK,IAAK,CAC1B,KAAM,CAAE,EAAAG,EAAG,EAAAC,CAAG,EAAGT,GAAQI,EAAI,CAAC,EAAGF,CAAE,EACnC,CAACI,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,EAAI,CAACC,EAAGC,CAAC,CAC9B,CACI,MAAO,CAACH,EAAIC,CAAE,CAClB,CAeA,MAAMG,GAAS,CAACF,EAAGC,EAAGE,IAAOH,GAAKG,EAAMF,IAAO,GAAKE,EAC9CC,GAAS,CAACJ,EAAGC,EAAGE,IAAOF,GAAKE,EAAMH,IAAO,GAAKG,EAE9CE,GAAS,CAACL,EAAGC,EAAGE,IAAOF,GAAME,EAAI,GAAQH,IAAO,GAAKG,EACrDG,GAAS,CAACN,EAAGC,EAAGE,IAAOH,GAAMG,EAAI,GAAQF,IAAO,GAAKE,ECxC9CI,EAAS,OAAO,YAAe,UAAY,WAAY,WAAa,WAAW,OAAS,OCIrG,sEASO,SAASC,GAAQC,EAAG,CACvB,OAAOA,aAAa,YAAe,YAAY,OAAOA,CAAC,GAAKA,EAAE,YAAY,OAAS,YACvF,CAEO,SAASC,EAAQjB,EAAG,CACvB,GAAI,CAAC,OAAO,cAAcA,CAAC,GAAKA,EAAI,EAChC,MAAM,IAAI,MAAM,kCAAoCA,CAAC,CAC7D,CAEO,SAASkB,EAAOC,KAAMC,EAAS,CAClC,GAAI,CAACL,GAAQI,CAAC,EACV,MAAM,IAAI,MAAM,qBAAqB,EACzC,GAAIC,EAAQ,OAAS,GAAK,CAACA,EAAQ,SAASD,EAAE,MAAM,EAChD,MAAM,IAAI,MAAM,iCAAmCC,EAAU,gBAAkBD,EAAE,MAAM,CAC/F,CAEO,SAASE,GAAMd,EAAG,CACrB,GAAI,OAAOA,GAAM,YAAc,OAAOA,EAAE,QAAW,WAC/C,MAAM,IAAI,MAAM,8CAA8C,EAClEU,EAAQV,EAAE,SAAS,EACnBU,EAAQV,EAAE,QAAQ,CACtB,CAEO,SAASe,GAAQC,EAAUC,EAAgB,GAAM,CACpD,GAAID,EAAS,UACT,MAAM,IAAI,MAAM,kCAAkC,EACtD,GAAIC,GAAiBD,EAAS,SAC1B,MAAM,IAAI,MAAM,uCAAuC,CAC/D,CAEO,SAASE,GAAQC,EAAKH,EAAU,CACnCL,EAAOQ,CAAG,EACV,MAAMxE,EAAMqE,EAAS,UACrB,GAAIG,EAAI,OAASxE,EACb,MAAM,IAAI,MAAM,yDAA2DA,CAAG,CAEtF,CAMO,SAASyE,GAAIC,EAAK,CACrB,OAAO,IAAI,YAAYA,EAAI,OAAQA,EAAI,WAAY,KAAK,MAAMA,EAAI,WAAa,CAAC,CAAC,CACrF,CAEO,SAASC,KAASC,EAAQ,CAC7B,QAAShF,EAAI,EAAGA,EAAIgF,EAAO,OAAQhF,IAC/BgF,EAAOhF,CAAC,EAAE,KAAK,CAAC,CAExB,CAEO,SAASiF,GAAWH,EAAK,CAC5B,OAAO,IAAI,SAASA,EAAI,OAAQA,EAAI,WAAYA,EAAI,UAAU,CAClE,CAEO,SAASI,EAAKC,EAAMC,EAAO,CAC9B,OAAQD,GAAS,GAAKC,EAAWD,IAASC,CAC9C,CAMO,MAAMC,GAA8B,IAAI,WAAW,IAAI,YAAY,CAAC,SAAU,CAAC,EAAE,MAAM,EAAE,CAAC,IAAM,GAEhG,SAASC,GAASH,EAAM,CAC3B,OAAUA,GAAQ,GAAM,WAClBA,GAAQ,EAAK,SACbA,IAAS,EAAK,MACdA,IAAS,GAAM,GACzB,CAQO,SAASI,GAAWT,EAAK,CAC5B,QAAS9E,EAAI,EAAGA,EAAI8E,EAAI,OAAQ9E,IAC5B8E,EAAI9E,CAAC,EAAIsF,GAASR,EAAI9E,CAAC,CAAC,EAE5B,OAAO8E,CACX,CACO,MAAMU,GAAaH,GACnBI,GAAMA,EACPF,GAEAG,GAEN,OAAO,WAAW,KAAK,CAAA,CAAE,EAAE,OAAU,YAAc,OAAO,WAAW,SAAY,WAE3EtE,GAAwB,MAAM,KAAK,CAAE,OAAQ,GAAK,EAAE,CAACuE,EAAG3F,IAAMA,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAK5F,SAAS0B,GAAW5B,EAAO,CAG9B,GAFAsE,EAAOtE,CAAK,EAER4F,GACA,OAAO5F,EAAM,MAAO,EAExB,IAAID,EAAM,GACV,QAASG,EAAI,EAAGA,EAAIF,EAAM,OAAQE,IAC9BH,GAAOuB,GAAMtB,EAAME,CAAC,CAAC,EAEzB,OAAOH,CACX,CAEA,MAAM+F,EAAS,CAAE,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAK,EAC9D,SAASC,GAAcC,EAAI,CACvB,GAAIA,GAAMF,EAAO,IAAME,GAAMF,EAAO,GAChC,OAAOE,EAAKF,EAAO,GACvB,GAAIE,GAAMF,EAAO,GAAKE,GAAMF,EAAO,EAC/B,OAAOE,GAAMF,EAAO,EAAI,IAC5B,GAAIE,GAAMF,EAAO,GAAKE,GAAMF,EAAO,EAC/B,OAAOE,GAAMF,EAAO,EAAI,GAEhC,CAKO,SAASxD,GAAWvC,EAAK,CAC5B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,4BAA8B,OAAOA,CAAG,EAE5D,GAAI6F,GACA,OAAO,WAAW,QAAQ7F,CAAG,EACjC,MAAMkG,EAAKlG,EAAI,OACTmG,EAAKD,EAAK,EAChB,GAAIA,EAAK,EACL,MAAM,IAAI,MAAM,mDAAqDA,CAAE,EAC3E,MAAME,EAAQ,IAAI,WAAWD,CAAE,EAC/B,QAASE,EAAK,EAAGC,EAAK,EAAGD,EAAKF,EAAIE,IAAMC,GAAM,EAAG,CAC7C,MAAMC,EAAKP,GAAchG,EAAI,WAAWsG,CAAE,CAAC,EACrCE,EAAKR,GAAchG,EAAI,WAAWsG,EAAK,CAAC,CAAC,EAC/C,GAAIC,IAAO,QAAaC,IAAO,OAAW,CACtC,MAAM7D,EAAO3C,EAAIsG,CAAE,EAAItG,EAAIsG,EAAK,CAAC,EACjC,MAAM,IAAI,MAAM,+CAAiD3D,EAAO,cAAgB2D,CAAE,CACtG,CACQF,EAAMC,CAAE,EAAIE,EAAK,GAAKC,CAC9B,CACI,OAAOJ,CACX,CAwBO,SAASK,GAAYC,EAAK,CAC7B,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI,MAAM,iBAAiB,EACrC,OAAO,IAAI,WAAW,IAAI,YAAa,EAAC,OAAOA,CAAG,CAAC,CACvD,CAaO,SAAStE,GAAQrB,EAAM,CAC1B,OAAI,OAAOA,GAAS,WAChBA,EAAO0F,GAAY1F,CAAI,GAC3BwD,EAAOxD,CAAI,EACJA,CACX,CAYO,SAAS4F,MAAexB,EAAQ,CACnC,IAAIyB,EAAM,EACV,QAASzG,EAAI,EAAGA,EAAIgF,EAAO,OAAQhF,IAAK,CACpC,MAAMkE,EAAIc,EAAOhF,CAAC,EAClBoE,EAAOF,CAAC,EACRuC,GAAOvC,EAAE,MACjB,CACI,MAAMwC,EAAM,IAAI,WAAWD,CAAG,EAC9B,QAASzG,EAAI,EAAGT,EAAM,EAAGS,EAAIgF,EAAO,OAAQhF,IAAK,CAC7C,MAAMkE,EAAIc,EAAOhF,CAAC,EAClB0G,EAAI,IAAIxC,EAAG3E,CAAG,EACdA,GAAO2E,EAAE,MACjB,CACI,OAAOwC,CACX,CAQO,MAAMC,EAAK,CAClB,CAEO,SAASC,GAAaC,EAAU,CACnC,MAAMC,EAASC,GAAQF,EAAU,EAAC,OAAO5E,GAAQ8E,CAAG,CAAC,EAAE,OAAQ,EACzDC,EAAMH,EAAU,EACtB,OAAAC,EAAM,UAAYE,EAAI,UACtBF,EAAM,SAAWE,EAAI,SACrBF,EAAM,OAAS,IAAMD,EAAU,EACxBC,CACX,CAqBO,SAASG,GAAYC,EAAc,GAAI,CAC1C,GAAIlD,GAAU,OAAOA,EAAO,iBAAoB,WAC5C,OAAOA,EAAO,gBAAgB,IAAI,WAAWkD,CAAW,CAAC,EAG7D,GAAIlD,GAAU,OAAOA,EAAO,aAAgB,WACxC,OAAO,WAAW,KAAKA,EAAO,YAAYkD,CAAW,CAAC,EAE1D,MAAM,IAAI,MAAM,wCAAwC,CAC5D,CCtQA,MAAMC,GAAM,OAAO,CAAC,EACdC,EAAM,OAAO,CAAC,EACdC,GAAM,OAAO,CAAC,EACdC,GAAM,OAAO,CAAC,EACdC,GAAQ,OAAO,GAAG,EAClBC,GAAS,OAAO,GAAI,EACpBC,GAAU,CAAE,EACZC,GAAY,CAAE,EACdC,GAAa,CAAE,EACrB,QAASC,EAAQ,EAAGC,EAAIT,EAAKU,EAAI,EAAGC,EAAI,EAAGH,EAAQ,GAAIA,IAAS,CAE5D,CAACE,EAAGC,CAAC,EAAI,CAACA,GAAI,EAAID,EAAI,EAAIC,GAAK,CAAC,EAChCN,GAAQ,KAAK,GAAK,EAAIM,EAAID,EAAE,EAE5BJ,GAAU,MAAQE,EAAQ,IAAMA,EAAQ,GAAM,EAAK,EAAE,EAErD,IAAII,EAAIb,GACR,QAASvE,EAAI,EAAGA,EAAI,EAAGA,IACnBiF,GAAMA,GAAKT,GAASS,GAAKP,IAAOE,IAAWD,GACvCM,EAAIR,KACJW,GAAKZ,IAASA,GAAuB,OAAOxE,CAAC,GAAKwE,GAE1DO,GAAW,KAAKK,CAAC,CACrB,CACA,MAAMC,GAAQ7E,GAAMuE,GAAY,EAAI,EAC9BO,GAAcD,GAAM,CAAC,EACrBE,GAAcF,GAAM,CAAC,EAErBG,GAAQ,CAAC3E,EAAGC,EAAGE,IAAOA,EAAI,GAAKE,GAAOL,EAAGC,EAAGE,CAAC,EAAID,GAAOF,EAAGC,EAAGE,CAAC,EAC/DyE,GAAQ,CAAC5E,EAAGC,EAAGE,IAAOA,EAAI,GAAKG,GAAON,EAAGC,EAAGE,CAAC,EAAIC,GAAOJ,EAAGC,EAAGE,CAAC,EAE9D,SAAS0E,GAAQ1E,EAAG2E,EAAS,GAAI,CACpC,MAAMC,EAAI,IAAI,YAAY,EAAK,EAE/B,QAASZ,EAAQ,GAAKW,EAAQX,EAAQ,GAAIA,IAAS,CAE/C,QAASE,EAAI,EAAGA,EAAI,GAAIA,IACpBU,EAAEV,CAAC,EAAIlE,EAAEkE,CAAC,EAAIlE,EAAEkE,EAAI,EAAE,EAAIlE,EAAEkE,EAAI,EAAE,EAAIlE,EAAEkE,EAAI,EAAE,EAAIlE,EAAEkE,EAAI,EAAE,EAC9D,QAASA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC5B,MAAMW,GAAQX,EAAI,GAAK,GACjBY,GAAQZ,EAAI,GAAK,GACjBa,EAAKH,EAAEE,CAAI,EACXE,EAAKJ,EAAEE,EAAO,CAAC,EACfG,EAAKT,GAAMO,EAAIC,EAAI,CAAC,EAAIJ,EAAEC,CAAI,EAC9BK,EAAKT,GAAMM,EAAIC,EAAI,CAAC,EAAIJ,EAAEC,EAAO,CAAC,EACxC,QAASV,EAAI,EAAGA,EAAI,GAAIA,GAAK,GACzBnE,EAAEkE,EAAIC,CAAC,GAAKc,EACZjF,EAAEkE,EAAIC,EAAI,CAAC,GAAKe,CAEhC,CAEQ,IAAIC,EAAOnF,EAAE,CAAC,EACVoF,EAAOpF,EAAE,CAAC,EACd,QAASoE,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAM5C,EAAQsC,GAAUM,CAAC,EACnBa,EAAKT,GAAMW,EAAMC,EAAM5D,CAAK,EAC5B0D,EAAKT,GAAMU,EAAMC,EAAM5D,CAAK,EAC5B6D,EAAKxB,GAAQO,CAAC,EACpBe,EAAOnF,EAAEqF,CAAE,EACXD,EAAOpF,EAAEqF,EAAK,CAAC,EACfrF,EAAEqF,CAAE,EAAIJ,EACRjF,EAAEqF,EAAK,CAAC,EAAIH,CACxB,CAEQ,QAASf,EAAI,EAAGA,EAAI,GAAIA,GAAK,GAAI,CAC7B,QAASD,EAAI,EAAGA,EAAI,GAAIA,IACpBU,EAAEV,CAAC,EAAIlE,EAAEmE,EAAID,CAAC,EAClB,QAASA,EAAI,EAAGA,EAAI,GAAIA,IACpBlE,EAAEmE,EAAID,CAAC,GAAK,CAACU,GAAGV,EAAI,GAAK,EAAE,EAAIU,GAAGV,EAAI,GAAK,EAAE,CAC7D,CAEQlE,EAAE,CAAC,GAAKsE,GAAYN,CAAK,EACzBhE,EAAE,CAAC,GAAKuE,GAAYP,CAAK,CACjC,CACI7C,EAAMyD,CAAC,CACX,CAEO,MAAMU,WAAevC,EAAK,CAE7B,YAAYwC,EAAUpH,EAAQqH,EAAWC,EAAY,GAAOd,EAAS,GAAI,CAgBrE,GAfA,MAAO,EACP,KAAK,IAAM,EACX,KAAK,OAAS,EACd,KAAK,SAAW,GAChB,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,SAAWY,EAChB,KAAK,OAASpH,EACd,KAAK,UAAYqH,EACjB,KAAK,UAAYC,EACjB,KAAK,OAASd,EAEdpE,EAAQiF,CAAS,EAGb,EAAE,EAAID,GAAYA,EAAW,KAC7B,MAAM,IAAI,MAAM,yCAAyC,EAC7D,KAAK,MAAQ,IAAI,WAAW,GAAG,EAC/B,KAAK,QAAUtE,GAAI,KAAK,KAAK,CACrC,CACI,OAAQ,CACJ,OAAO,KAAK,WAAY,CAChC,CACI,QAAS,CACLW,GAAW,KAAK,OAAO,EACvB8C,GAAQ,KAAK,QAAS,KAAK,MAAM,EACjC9C,GAAW,KAAK,OAAO,EACvB,KAAK,OAAS,EACd,KAAK,IAAM,CACnB,CACI,OAAO5E,EAAM,CACT4D,GAAQ,IAAI,EACZ5D,EAAOqB,GAAQrB,CAAI,EACnBwD,EAAOxD,CAAI,EACX,KAAM,CAAE,SAAAuI,EAAU,MAAAG,CAAK,EAAK,KACtBhG,EAAM1C,EAAK,OACjB,QAAS2I,EAAM,EAAGA,EAAMjG,GAAM,CAC1B,MAAMkG,EAAO,KAAK,IAAIL,EAAW,KAAK,IAAK7F,EAAMiG,CAAG,EACpD,QAASvJ,EAAI,EAAGA,EAAIwJ,EAAMxJ,IACtBsJ,EAAM,KAAK,KAAK,GAAK1I,EAAK2I,GAAK,EAC/B,KAAK,MAAQJ,GACb,KAAK,OAAQ,CAC7B,CACQ,OAAO,IACf,CACI,QAAS,CACL,GAAI,KAAK,SACL,OACJ,KAAK,SAAW,GAChB,KAAM,CAAE,MAAAG,EAAO,OAAAvH,EAAQ,IAAAwH,EAAK,SAAAJ,CAAU,EAAG,KAEzCG,EAAMC,CAAG,GAAKxH,GACTA,EAAS,OAAU,GAAKwH,IAAQJ,EAAW,GAC5C,KAAK,OAAQ,EACjBG,EAAMH,EAAW,CAAC,GAAK,IACvB,KAAK,OAAQ,CACrB,CACI,UAAUvE,EAAK,CACXJ,GAAQ,KAAM,EAAK,EACnBJ,EAAOQ,CAAG,EACV,KAAK,OAAQ,EACb,MAAM6E,EAAY,KAAK,MACjB,CAAE,SAAAN,CAAQ,EAAK,KACrB,QAASI,EAAM,EAAGjG,EAAMsB,EAAI,OAAQ2E,EAAMjG,GAAM,CACxC,KAAK,QAAU6F,GACf,KAAK,OAAQ,EACjB,MAAMK,EAAO,KAAK,IAAIL,EAAW,KAAK,OAAQ7F,EAAMiG,CAAG,EACvD3E,EAAI,IAAI6E,EAAU,SAAS,KAAK,OAAQ,KAAK,OAASD,CAAI,EAAGD,CAAG,EAChE,KAAK,QAAUC,EACfD,GAAOC,CACnB,CACQ,OAAO5E,CACf,CACI,QAAQA,EAAK,CAET,GAAI,CAAC,KAAK,UACN,MAAM,IAAI,MAAM,uCAAuC,EAC3D,OAAO,KAAK,UAAUA,CAAG,CACjC,CACI,IAAI9E,EAAO,CACP,OAAAqE,EAAQrE,CAAK,EACN,KAAK,QAAQ,IAAI,WAAWA,CAAK,CAAC,CACjD,CACI,WAAW8E,EAAK,CAEZ,GADAD,GAAQC,EAAK,IAAI,EACb,KAAK,SACL,MAAM,IAAI,MAAM,6BAA6B,EACjD,YAAK,UAAUA,CAAG,EAClB,KAAK,QAAS,EACPA,CACf,CACI,QAAS,CACL,OAAO,KAAK,WAAW,IAAI,WAAW,KAAK,SAAS,CAAC,CAC7D,CACI,SAAU,CACN,KAAK,UAAY,GACjBG,EAAM,KAAK,KAAK,CACxB,CACI,WAAW2E,EAAI,CACX,KAAM,CAAE,SAAAP,EAAU,OAAApH,EAAQ,UAAAqH,EAAW,OAAAb,EAAQ,UAAAc,CAAS,EAAK,KAC3D,OAAAK,IAAOA,EAAK,IAAIR,GAAOC,EAAUpH,EAAQqH,EAAWC,EAAWd,CAAM,GACrEmB,EAAG,QAAQ,IAAI,KAAK,OAAO,EAC3BA,EAAG,IAAM,KAAK,IACdA,EAAG,OAAS,KAAK,OACjBA,EAAG,SAAW,KAAK,SACnBA,EAAG,OAASnB,EAEZmB,EAAG,OAAS3H,EACZ2H,EAAG,UAAYN,EACfM,EAAG,UAAYL,EACfK,EAAG,UAAY,KAAK,UACbA,CACf,CACA,CACA,MAAMC,GAAM,CAAC5H,EAAQoH,EAAUC,IAAcxC,GAAa,IAAM,IAAIsC,GAAOC,EAAUpH,EAAQqH,CAAS,CAAC,EAY1FQ,GAAoCD,GAAI,EAAM,IAAK,IAAM,CAAC,EC3NhE,SAASE,GAAU/L,EAAOgM,EAAK,CAClC,MAAMJ,EAAKI,GAAO,MACZhK,EAAQ8J,GAAW/L,EAAMC,EAAO,CAAE,OAAQ,EAAK,CAAE,EAAImE,GAAQnE,CAAK,EAAIA,CAAK,EACjF,OAAI4L,IAAO,QACA5J,EACJwB,EAAMxB,CAAK,CACtB,CCTO,MAAMiK,UAA4BzL,CAAU,CAC/C,YAAY,CAAE,QAAA0L,GAAW,CACrB,MAAM,YAAYA,CAAO,gBAAiB,CACtC,aAAc,CACV,iEACA,gDACH,EACD,KAAM,qBAClB,CAAS,CACT,CACA,CCNO,MAAMC,WAAe,GAAI,CAC5B,YAAYjM,EAAM,CACd,MAAO,EACP,OAAO,eAAe,KAAM,UAAW,CACnC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACnB,CAAS,EACD,KAAK,QAAUA,CACvB,CACI,IAAIkM,EAAK,CACL,MAAMpM,EAAQ,MAAM,IAAIoM,CAAG,EAC3B,OAAI,MAAM,IAAIA,CAAG,GAAKpM,IAAU,SAC5B,KAAK,OAAOoM,CAAG,EACf,MAAM,IAAIA,EAAKpM,CAAK,GAEjBA,CACf,CACI,IAAIoM,EAAKpM,EAAO,CAEZ,GADA,MAAM,IAAIoM,EAAKpM,CAAK,EAChB,KAAK,SAAW,KAAK,KAAO,KAAK,QAAS,CAC1C,MAAMqM,EAAW,KAAK,KAAI,EAAG,KAAM,EAAC,MAChCA,GACA,KAAK,OAAOA,CAAQ,CACpC,CACQ,OAAO,IACf,CACA,CC5BA,MAAMC,GAAqC,IAAIH,GAAO,IAAI,EACnD,SAASI,GAAgBC,EAWhCC,EAAS,CACL,GAAIH,GAAqB,IAAI,GAAGE,CAAQ,IAAIC,CAAO,EAAE,EACjD,OAAOH,GAAqB,IAAI,GAAGE,CAAQ,IAAIC,CAAO,EAAE,EAC5D,MAAMC,EAEAF,EAAS,UAAU,CAAC,EAAE,YAAa,EACnCG,EAAOZ,GAAUxH,GAAcmI,CAAU,EAAG,OAAO,EACnDR,EAAmEQ,EAAY,MAAM,EAAE,EAC7F,QAASxK,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACrByK,EAAKzK,GAAK,CAAC,GAAK,GAAK,GAAKgK,EAAQhK,CAAC,IACnCgK,EAAQhK,CAAC,EAAIgK,EAAQhK,CAAC,EAAE,YAAa,IAEpCyK,EAAKzK,GAAK,CAAC,EAAI,KAAS,GAAKgK,EAAQhK,EAAI,CAAC,IAC3CgK,EAAQhK,EAAI,CAAC,EAAIgK,EAAQhK,EAAI,CAAC,EAAE,YAAa,GAGrD,MAAM0K,EAAS,KAAKV,EAAQ,KAAK,EAAE,CAAC,GACpC,OAAAI,GAAqB,IAAI,GAAGE,CAAQ,IAAIC,CAAO,GAAIG,CAAM,EAClDA,CACX,CACO,SAASC,GAAWX,EAW3BO,EAAS,CACL,GAAI,CAACK,EAAUZ,EAAS,CAAE,OAAQ,EAAK,CAAE,EACrC,MAAM,IAAID,EAAoB,CAAE,QAAAC,EAAS,EAC7C,OAAOK,GAAgBL,EAASO,CAAO,CAC3C,CClDA,MAAMM,GAAe,sBAERC,GAA+B,IAAIb,GAAO,IAAI,EACpD,SAASW,EAAUZ,EAASe,EAAS,CACxC,KAAM,CAAE,OAAAhN,EAAS,EAAM,EAAGgN,GAAW,CAAE,EACjCC,EAAW,GAAGhB,CAAO,IAAIjM,CAAM,GACrC,GAAI+M,GAAe,IAAIE,CAAQ,EAC3B,OAAOF,GAAe,IAAIE,CAAQ,EACtC,MAAMN,EACGG,GAAa,KAAKb,CAAO,EAE1BA,EAAQ,YAAW,IAAOA,EACnB,GACPjM,EACOsM,GAAgBL,CAAO,IAAMA,EACjC,GALI,GAOf,OAAAc,GAAe,IAAIE,EAAUN,CAAM,EAC5BA,CACX,CCrBO,SAASO,GAAOC,EAAQ,CAC3B,OAAI,OAAOA,EAAO,CAAC,GAAM,SACdC,EAAUD,CAAM,EACpB1E,GAAY0E,CAAM,CAC7B,CACO,SAAS1E,GAAY0E,EAAQ,CAChC,IAAIxI,EAAS,EACb,UAAWoC,KAAOoG,EACdxI,GAAUoC,EAAI,OAElB,MAAM4F,EAAS,IAAI,WAAWhI,CAAM,EACpC,IAAIzD,EAAS,EACb,UAAW6F,KAAOoG,EACdR,EAAO,IAAI5F,EAAK7F,CAAM,EACtBA,GAAU6F,EAAI,OAElB,OAAO4F,CACX,CACO,SAASS,EAAUD,EAAQ,CAC9B,MAAO,KAAKA,EAAO,OAAO,CAACE,EAAKtD,IAAMsD,EAAMtD,EAAE,QAAQ,KAAM,EAAE,EAAG,EAAE,CAAC,EACxE,CCVO,SAASuD,GAAMvN,EAAOwN,EAAOC,EAAK,CAAE,OAAAxN,CAAQ,EAAG,GAAI,CACtD,OAAIF,EAAMC,EAAO,CAAE,OAAQ,EAAK,CAAE,EACvB0N,GAAS1N,EAAOwN,EAAOC,EAAK,CAC/B,OAAAxN,CACZ,CAAS,EACE0N,GAAW3N,EAAOwN,EAAOC,EAAK,CACjC,OAAAxN,CACR,CAAK,CACL,CACA,SAAS2N,GAAkB5N,EAAOwN,EAAO,CACrC,GAAI,OAAOA,GAAU,UAAYA,EAAQ,GAAKA,EAAQtN,EAAKF,CAAK,EAAI,EAChE,MAAM,IAAIkB,GAA4B,CAClC,OAAQsM,EACR,SAAU,QACV,KAAMtN,EAAKF,CAAK,CAC5B,CAAS,CACT,CACA,SAAS6N,GAAgB7N,EAAOwN,EAAOC,EAAK,CACxC,GAAI,OAAOD,GAAU,UACjB,OAAOC,GAAQ,UACfvN,EAAKF,CAAK,IAAMyN,EAAMD,EACtB,MAAM,IAAItM,GAA4B,CAClC,OAAQuM,EACR,SAAU,MACV,KAAMvN,EAAKF,CAAK,CAC5B,CAAS,CAET,CAQO,SAAS2N,GAAW7J,EAAQ0J,EAAOC,EAAK,CAAE,OAAAxN,CAAQ,EAAG,GAAI,CAC5D2N,GAAkB9J,EAAQ0J,CAAK,EAC/B,MAAMxN,EAAQ8D,EAAO,MAAM0J,EAAOC,CAAG,EACrC,OAAIxN,GACA4N,GAAgB7N,EAAOwN,EAAOC,CAAG,EAC9BzN,CACX,CAQO,SAAS0N,GAAS5J,EAAQ0J,EAAOC,EAAK,CAAE,OAAAxN,CAAQ,EAAG,GAAI,CAC1D2N,GAAkB9J,EAAQ0J,CAAK,EAC/B,MAAMxN,EAAQ,KAAK8D,EACd,QAAQ,KAAM,EAAE,EAChB,OAAO0J,GAAS,GAAK,GAAIC,GAAO3J,EAAO,QAAU,CAAC,CAAC,GACxD,OAAI7D,GACA4N,GAAgB7N,EAAOwN,EAAOC,CAAG,EAC9BzN,CACX,CClEO,MAAM8N,WAA4BtN,CAAU,CAC/C,YAAY,CAAE,OAAAW,GAAU,CACpB,MAAM,YAAYA,CAAM,yBAA0B,CAC9C,KAAM,qBAClB,CAAS,CACT,CACA,CACO,MAAM4M,WAAiCvN,CAAU,CACpD,YAAY,CAAE,OAAAoE,EAAQ,SAAAxD,GAAY,CAC9B,MAAM,cAAcA,CAAQ,yCAAyCwD,CAAM,OAAQ,CAAE,KAAM,2BAA4B,CAC/H,CACA,CACO,MAAMoJ,WAAwCxN,CAAU,CAC3D,YAAY,CAAE,MAAAyN,EAAO,MAAAC,GAAS,CAC1B,MAAM,6BAA6BA,CAAK,wCAAwCD,CAAK,OAAQ,CAAE,KAAM,kCAAmC,CAChJ,CACA,CChBA,MAAME,GAAe,CACjB,MAAO,IAAI,WACX,SAAU,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC,EACzC,SAAU,EACV,kBAAmB,IAAI,IACvB,mBAAoB,EACpB,mBAAoB,OAAO,kBAC3B,iBAAkB,CACd,GAAI,KAAK,oBAAsB,KAAK,mBAChC,MAAM,IAAIH,GAAgC,CACtC,MAAO,KAAK,mBAAqB,EACjC,MAAO,KAAK,kBAC5B,CAAa,CACR,EACD,eAAe5M,EAAU,CACrB,GAAIA,EAAW,GAAKA,EAAW,KAAK,MAAM,OAAS,EAC/C,MAAM,IAAI2M,GAAyB,CAC/B,OAAQ,KAAK,MAAM,OACnB,SAAA3M,CAChB,CAAa,CACR,EACD,kBAAkBD,EAAQ,CACtB,GAAIA,EAAS,EACT,MAAM,IAAI2M,GAAoB,CAAE,OAAA3M,EAAQ,EAC5C,MAAMC,EAAW,KAAK,SAAWD,EACjC,KAAK,eAAeC,CAAQ,EAC5B,KAAK,SAAWA,CACnB,EACD,aAAaA,EAAU,CACnB,OAAO,KAAK,kBAAkB,IAAIA,GAAY,KAAK,QAAQ,GAAK,CACnE,EACD,kBAAkBD,EAAQ,CACtB,GAAIA,EAAS,EACT,MAAM,IAAI2M,GAAoB,CAAE,OAAA3M,EAAQ,EAC5C,MAAMC,EAAW,KAAK,SAAWD,EACjC,KAAK,eAAeC,CAAQ,EAC5B,KAAK,SAAWA,CACnB,EACD,YAAYgN,EAAW,CACnB,MAAMhN,EAAWgN,GAAa,KAAK,SACnC,YAAK,eAAehN,CAAQ,EACrB,KAAK,MAAMA,CAAQ,CAC7B,EACD,aAAawD,EAAQwJ,EAAW,CAC5B,MAAMhN,EAAWgN,GAAa,KAAK,SACnC,YAAK,eAAehN,EAAWwD,EAAS,CAAC,EAClC,KAAK,MAAM,SAASxD,EAAUA,EAAWwD,CAAM,CACzD,EACD,aAAawJ,EAAW,CACpB,MAAMhN,EAAWgN,GAAa,KAAK,SACnC,YAAK,eAAehN,CAAQ,EACrB,KAAK,MAAMA,CAAQ,CAC7B,EACD,cAAcgN,EAAW,CACrB,MAAMhN,EAAWgN,GAAa,KAAK,SACnC,YAAK,eAAehN,EAAW,CAAC,EACzB,KAAK,SAAS,UAAUA,CAAQ,CAC1C,EACD,cAAcgN,EAAW,CACrB,MAAMhN,EAAWgN,GAAa,KAAK,SACnC,YAAK,eAAehN,EAAW,CAAC,GACvB,KAAK,SAAS,UAAUA,CAAQ,GAAK,GAC1C,KAAK,SAAS,SAASA,EAAW,CAAC,CAC1C,EACD,cAAcgN,EAAW,CACrB,MAAMhN,EAAWgN,GAAa,KAAK,SACnC,YAAK,eAAehN,EAAW,CAAC,EACzB,KAAK,SAAS,UAAUA,CAAQ,CAC1C,EACD,SAASiN,EAAM,CACX,KAAK,eAAe,KAAK,QAAQ,EACjC,KAAK,MAAM,KAAK,QAAQ,EAAIA,EAC5B,KAAK,UACR,EACD,UAAUrM,EAAO,CACb,KAAK,eAAe,KAAK,SAAWA,EAAM,OAAS,CAAC,EACpD,KAAK,MAAM,IAAIA,EAAO,KAAK,QAAQ,EACnC,KAAK,UAAYA,EAAM,MAC1B,EACD,UAAUhC,EAAO,CACb,KAAK,eAAe,KAAK,QAAQ,EACjC,KAAK,MAAM,KAAK,QAAQ,EAAIA,EAC5B,KAAK,UACR,EACD,WAAWA,EAAO,CACd,KAAK,eAAe,KAAK,SAAW,CAAC,EACrC,KAAK,SAAS,UAAU,KAAK,SAAUA,CAAK,EAC5C,KAAK,UAAY,CACpB,EACD,WAAWA,EAAO,CACd,KAAK,eAAe,KAAK,SAAW,CAAC,EACrC,KAAK,SAAS,UAAU,KAAK,SAAUA,GAAS,CAAC,EACjD,KAAK,SAAS,SAAS,KAAK,SAAW,EAAGA,EAAQ,GAAW,EAC7D,KAAK,UAAY,CACpB,EACD,WAAWA,EAAO,CACd,KAAK,eAAe,KAAK,SAAW,CAAC,EACrC,KAAK,SAAS,UAAU,KAAK,SAAUA,CAAK,EAC5C,KAAK,UAAY,CACpB,EACD,UAAW,CACP,KAAK,gBAAiB,EACtB,KAAK,OAAQ,EACb,MAAMA,EAAQ,KAAK,YAAa,EAChC,YAAK,WACEA,CACV,EACD,UAAU4E,EAAQ1E,EAAM,CACpB,KAAK,gBAAiB,EACtB,KAAK,OAAQ,EACb,MAAMF,EAAQ,KAAK,aAAa4E,CAAM,EACtC,YAAK,UAAY1E,GAAQ0E,EAClB5E,CACV,EACD,WAAY,CACR,KAAK,gBAAiB,EACtB,KAAK,OAAQ,EACb,MAAMA,EAAQ,KAAK,aAAc,EACjC,YAAK,UAAY,EACVA,CACV,EACD,YAAa,CACT,KAAK,gBAAiB,EACtB,KAAK,OAAQ,EACb,MAAMA,EAAQ,KAAK,cAAe,EAClC,YAAK,UAAY,EACVA,CACV,EACD,YAAa,CACT,KAAK,gBAAiB,EACtB,KAAK,OAAQ,EACb,MAAMA,EAAQ,KAAK,cAAe,EAClC,YAAK,UAAY,EACVA,CACV,EACD,YAAa,CACT,KAAK,gBAAiB,EACtB,KAAK,OAAQ,EACb,MAAMA,EAAQ,KAAK,cAAe,EAClC,YAAK,UAAY,EACVA,CACV,EACD,IAAI,WAAY,CACZ,OAAO,KAAK,MAAM,OAAS,KAAK,QACnC,EACD,YAAYoB,EAAU,CAClB,MAAMkN,EAAc,KAAK,SACzB,YAAK,eAAelN,CAAQ,EAC5B,KAAK,SAAWA,EACT,IAAO,KAAK,SAAWkN,CACjC,EACD,QAAS,CACL,GAAI,KAAK,qBAAuB,OAAO,kBACnC,OACJ,MAAML,EAAQ,KAAK,aAAc,EACjC,KAAK,kBAAkB,IAAI,KAAK,SAAUA,EAAQ,CAAC,EAC/CA,EAAQ,GACR,KAAK,oBACZ,CACL,EACO,SAASM,GAAavM,EAAO,CAAE,mBAAAwM,EAAqB,IAAK,EAAK,CAAA,EAAI,CACrE,MAAMC,EAAS,OAAO,OAAON,EAAY,EACzC,OAAAM,EAAO,MAAQzM,EACfyM,EAAO,SAAW,IAAI,SAASzM,EAAM,OAAQA,EAAM,WAAYA,EAAM,UAAU,EAC/EyM,EAAO,kBAAoB,IAAI,IAC/BA,EAAO,mBAAqBD,EACrBC,CACX,CCxKO,MAAMC,GAAa,CACtB,KAAM,EACN,IAAK,EACT,EACaC,GAAY,CACrB,MAAO,GACP,IAAK,CACT,ECIO,SAASC,GAAY5O,EAAO6O,EAAU,CACzC,IAAIC,EAAU9O,EAAM,SAAU,EAC9B,MAAM+O,EAAWD,EAAQ,WAAW,GAAG,EACnCC,IACAD,EAAUA,EAAQ,MAAM,CAAC,GAC7BA,EAAUA,EAAQ,SAASD,EAAU,GAAG,EACxC,GAAI,CAACG,EAASC,CAAQ,EAAI,CACtBH,EAAQ,MAAM,EAAGA,EAAQ,OAASD,CAAQ,EAC1CC,EAAQ,MAAMA,EAAQ,OAASD,CAAQ,CAC1C,EACD,OAAAI,EAAWA,EAAS,QAAQ,QAAS,EAAE,EAChC,GAAGF,EAAW,IAAM,EAAE,GAAGC,GAAW,GAAG,GAAGC,EAAW,IAAIA,CAAQ,GAAK,EAAE,EACnF,CCVO,SAASC,GAAYC,EAAKC,EAAO,MAAO,CAC3C,OAAOR,GAAYO,EAAKT,GAAWU,CAAI,CAAC,CAC5C,CCFO,SAASC,EAAWF,EAAKC,EAAO,MAAO,CAC1C,OAAOR,GAAYO,EAAKR,GAAUS,CAAI,CAAC,CAC3C,CCZO,SAASE,GAAY5O,EAAM,CAC9B,MAAM6O,EAAU,OAAO,QAAQ7O,CAAI,EAC9B,IAAI,CAAC,CAAC0L,EAAKpM,CAAK,IACbA,IAAU,QAAaA,IAAU,GAC1B,KACJ,CAACoM,EAAKpM,CAAK,CACrB,EACI,OAAO,OAAO,EACbwP,EAAYD,EAAQ,OAAO,CAACjC,EAAK,CAAClB,CAAG,IAAM,KAAK,IAAIkB,EAAKlB,EAAI,MAAM,EAAG,CAAC,EAC7E,OAAOmD,EACF,IAAI,CAAC,CAACnD,EAAKpM,CAAK,IAAM,KAAK,GAAGoM,CAAG,IAAI,OAAOoD,EAAY,CAAC,CAAC,KAAKxP,CAAK,EAAE,EACtE,KAAK;AAAA,CAAI,CAClB,CACO,MAAMyP,WAAyBjP,CAAU,CAC5C,aAAc,CACV,MAAM,CACF,gFACA,wGACH,EAAC,KAAK;AAAA,CAAI,EAAG,CAAE,KAAM,kBAAkB,CAAE,CAClD,CACA,CACO,MAAMkP,WAA4BlP,CAAU,CAC/C,YAAY,CAAE,EAAAmP,GAAK,CACf,MAAM,wBAAwBA,CAAC,wBAAyB,CACpD,KAAM,qBAClB,CAAS,CACT,CACA,CACO,MAAMC,WAA4CpP,CAAU,CAC/D,YAAY,CAAE,YAAAqP,GAAe,CACzB,MAAM,6DAA8D,CAChE,aAAc,CACV,wBACA,IACAP,GAAYO,CAAW,EACvB,IACA,GACA,qCACA,oCACA,oDACA,+DACA,gFACA,yDACA,wCACH,EACD,KAAM,qCAClB,CAAS,CACT,CACA,CA2CO,MAAMC,WAAmCtP,CAAU,CACtD,YAAY,CAAE,WAAAuP,GAAc,CACxB,MAAM,yBAAyBA,CAAU,wCAAwC,KAAK,OAAOA,EAAW,OAAS,GAAK,CAAC,CAAC,UAAW,CAAE,KAAM,6BAA8B,CACjL,CACA,CACO,MAAMC,WAAkCxP,CAAU,CACrD,YAAYyP,EAAO,CAAE,QAAAC,EAAS,SAAA5P,EAAU,MAAA6P,EAAO,KAAArN,EAAM,IAAAsN,EAAK,SAAAC,EAAU,aAAAC,EAAc,qBAAAC,EAAsB,MAAAC,EAAO,GAAA5E,EAAI,MAAA5L,CAAK,EAAK,OACzH,MAAMyQ,EAAanB,GAAY,CAC3B,MAAOa,GAAS,GAAGA,GAAA,YAAAA,EAAO,IAAI,SAASA,GAAA,YAAAA,EAAO,EAAE,IAChD,KAAMD,GAAA,YAAAA,EAAS,QACf,GAAAtE,EACA,MAAO,OAAO5L,EAAU,KACpB,GAAGkP,GAAYlP,CAAK,CAAC,MAAIY,EAAAuP,GAAA,YAAAA,EAAO,iBAAP,YAAAvP,EAAuB,SAAU,KAAK,GACnE,KAAAkC,EACA,IAAAsN,EACA,SAAU,OAAOC,EAAa,KAAe,GAAGhB,EAAWgB,CAAQ,CAAC,QACpE,aAAc,OAAOC,EAAiB,KAClC,GAAGjB,EAAWiB,CAAY,CAAC,QAC/B,qBAAsB,OAAOC,EAAyB,KAClD,GAAGlB,EAAWkB,CAAoB,CAAC,QACvC,MAAAC,CACZ,CAAS,EACD,MAAMP,EAAM,aAAc,CACtB,MAAAA,EACA,SAAA3P,EACA,aAAc,CACV,GAAI2P,EAAM,aAAe,CAAC,GAAGA,EAAM,aAAc,GAAG,EAAI,GACxD,qBACAQ,CAChB,EAAc,OAAO,OAAO,EAChB,KAAM,2BAClB,CAAS,EACD,OAAO,eAAe,KAAM,QAAS,CACjC,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,MACnB,CAAS,EACD,KAAK,MAAQR,CACrB,CACA,CACO,MAAMS,WAAiClQ,CAAU,CACpD,YAAY,CAAE,UAAAmQ,EAAW,YAAAC,EAAa,SAAAC,EAAU,KAAAlE,EAAM,MAAA9H,GAAU,CAC5D,IAAIiM,EAAa,cACbD,GAAYhM,IAAU,SACtBiM,EAAa,8BAA8BD,CAAQ,eAAehM,CAAK,KACvE8L,GAAa9L,IAAU,SACvBiM,EAAa,8BAA8BH,CAAS,eAAe9L,CAAK,KACxE+L,GAAe/L,IAAU,SACzBiM,EAAa,gCAAgCF,CAAW,eAAe/L,CAAK,KAC5E8H,IACAmE,EAAa,0BAA0BnE,CAAI,KAC/C,MAAM,GAAGmE,CAAU,uBAAwB,CACvC,KAAM,0BAClB,CAAS,CACT,CACA,CACO,MAAMC,WAAwCvQ,CAAU,CAC3D,YAAY,CAAE,KAAAmM,GAAQ,CAClB,MAAM,kCAAkCA,CAAI,6EAA8E,CACtH,KAAM,iCAClB,CAAS,CACT,CACA,CACO,MAAMqE,WAA8CxQ,CAAU,CACjE,YAAY,CAAE,KAAAmM,GAAQ,CAClB,MAAM,sDAAsDA,CAAI,qBAAsB,CAAE,KAAM,wCAAyC,CAC/I,CACA,CC9JO,SAASsE,EAAMjP,EAAO4J,EAAK,MAAO,CACrC,MAAMsF,EAAYC,GAAanP,CAAK,EAC9ByM,EAASF,GAAa,IAAI,WAAW2C,EAAU,MAAM,CAAC,EAE5D,OADAA,EAAU,OAAOzC,CAAM,EACnB7C,IAAO,MACAhI,EAAW6K,EAAO,KAAK,EAC3BA,EAAO,KAClB,CAOA,SAAS0C,GAAanP,EAAO,CACzB,OAAI,MAAM,QAAQA,CAAK,EACZoP,GAAiBpP,EAAM,IAAKgI,GAAMmH,GAAanH,CAAC,CAAC,CAAC,EACtDqH,GAAkBrP,CAAK,CAClC,CACA,SAASoP,GAAiBE,EAAM,CAC5B,MAAMC,EAAaD,EAAK,OAAO,CAAChE,EAAKtD,IAAMsD,EAAMtD,EAAE,OAAQ,CAAC,EACtDwH,EAAmBC,GAAgBF,CAAU,EAMnD,MAAO,CACH,OALIA,GAAc,GACP,EAAIA,EACR,EAAIC,EAAmBD,EAI9B,OAAO9C,EAAQ,CACP8C,GAAc,GACd9C,EAAO,SAAS,IAAO8C,CAAU,GAGjC9C,EAAO,SAAS,IAAY+C,CAAgB,EACxCA,IAAqB,EACrB/C,EAAO,UAAU8C,CAAU,EACtBC,IAAqB,EAC1B/C,EAAO,WAAW8C,CAAU,EACvBC,IAAqB,EAC1B/C,EAAO,WAAW8C,CAAU,EAE5B9C,EAAO,WAAW8C,CAAU,GAEpC,SAAW,CAAE,OAAAG,CAAQ,IAAIJ,EACrBI,EAAOjD,CAAM,CAEpB,CACJ,CACL,CACA,SAAS4C,GAAkBM,EAAY,CACnC,MAAM3P,EAAQ,OAAO2P,GAAe,SAAWrN,EAAWqN,CAAU,EAAIA,EAClEC,EAAoBH,GAAgBzP,EAAM,MAAM,EAQtD,MAAO,CACH,OAPIA,EAAM,SAAW,GAAKA,EAAM,CAAC,EAAI,IAC1B,EACPA,EAAM,QAAU,GACT,EAAIA,EAAM,OACd,EAAI4P,EAAoB5P,EAAM,OAIrC,OAAOyM,EAAQ,CACPzM,EAAM,SAAW,GAAKA,EAAM,CAAC,EAAI,IACjCyM,EAAO,UAAUzM,CAAK,EAEjBA,EAAM,QAAU,IACrByM,EAAO,SAAS,IAAOzM,EAAM,MAAM,EACnCyM,EAAO,UAAUzM,CAAK,IAGtByM,EAAO,SAAS,IAAYmD,CAAiB,EACzCA,IAAsB,EACtBnD,EAAO,UAAUzM,EAAM,MAAM,EACxB4P,IAAsB,EAC3BnD,EAAO,WAAWzM,EAAM,MAAM,EACzB4P,IAAsB,EAC3BnD,EAAO,WAAWzM,EAAM,MAAM,EAE9ByM,EAAO,WAAWzM,EAAM,MAAM,EAClCyM,EAAO,UAAUzM,CAAK,EAE7B,CACJ,CACL,CACA,SAASyP,GAAgB7M,EAAQ,CAC7B,GAAIA,EAAS,GAAK,EACd,MAAO,GACX,GAAIA,EAAS,GAAK,GACd,MAAO,GACX,GAAIA,EAAS,GAAK,GACd,MAAO,GACX,GAAIA,EAAS,GAAK,GACd,MAAO,GACX,MAAM,IAAIpE,EAAU,sBAAsB,CAC9C,CCjGO,MAAMqR,WAA+BrR,CAAU,CAClD,YAAY,CAAE,MAAAyP,EAAO,QAAAnP,CAAO,EAAM,CAAA,EAAI,OAClC,MAAMgR,GAASlR,EAAAE,GAAA,YAAAA,EACT,QAAQ,uBAAwB,MADvB,YAAAF,EAET,QAAQ,qBAAsB,IACpC,MAAM,sBAAsBkR,EAAS,gBAAgBA,CAAM,GAAK,uBAAuB,IAAK,CACxF,MAAA7B,EACA,KAAM,wBAClB,CAAS,CACT,CACA,CACA,OAAO,eAAe4B,GAAwB,OAAQ,CAClD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,CACX,CAAC,EACD,OAAO,eAAeA,GAAwB,cAAe,CACzD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,oBACX,CAAC,EACM,MAAME,WAA2BvR,CAAU,CAC9C,YAAY,CAAE,MAAAyP,EAAO,aAAAK,CAAY,EAAM,CAAA,EAAI,CACvC,MAAM,gCAAgCA,EAAe,MAAMjB,EAAWiB,CAAY,CAAC,QAAU,EAAE,+DAAgE,CAC3J,MAAAL,EACA,KAAM,oBAClB,CAAS,CACT,CACA,CACA,OAAO,eAAe8B,GAAoB,cAAe,CACrD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,mEACX,CAAC,EACM,MAAMC,WAA0BxR,CAAU,CAC7C,YAAY,CAAE,MAAAyP,EAAO,aAAAK,CAAY,EAAM,CAAA,EAAI,CACvC,MAAM,gCAAgCA,EAAe,MAAMjB,EAAWiB,CAAY,CAAC,GAAK,EAAE,kDAAmD,CACzI,MAAAL,EACA,KAAM,mBAClB,CAAS,CACT,CACA,CACA,OAAO,eAAe+B,GAAmB,cAAe,CACpD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,mGACX,CAAC,EACM,MAAMC,WAA0BzR,CAAU,CAC7C,YAAY,CAAE,MAAAyP,EAAO,MAAAO,CAAK,EAAM,CAAA,EAAI,CAChC,MAAM,sCAAsCA,EAAQ,IAAIA,CAAK,KAAO,EAAE,wCAAyC,CAAE,MAAAP,EAAO,KAAM,mBAAmB,CAAE,CAC3J,CACA,CACA,OAAO,eAAegC,GAAmB,cAAe,CACpD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,gBACX,CAAC,EACM,MAAMC,WAAyB1R,CAAU,CAC5C,YAAY,CAAE,MAAAyP,EAAO,MAAAO,CAAK,EAAM,CAAA,EAAI,CAChC,MAAM,CACF,sCAAsCA,EAAQ,IAAIA,CAAK,KAAO,EAAE,kDAChE,+EACZ,EAAU,KAAK;AAAA,CAAI,EAAG,CAAE,MAAAP,EAAO,KAAM,mBAAoB,CACzD,CACA,CACA,OAAO,eAAeiC,GAAkB,cAAe,CACnD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,0DACX,CAAC,EACM,MAAMC,WAA2B3R,CAAU,CAC9C,YAAY,CAAE,MAAAyP,EAAO,MAAAO,CAAK,EAAM,CAAA,EAAI,CAChC,MAAM,sCAAsCA,EAAQ,IAAIA,CAAK,KAAO,EAAE,qCAAsC,CAAE,MAAAP,EAAO,KAAM,oBAAoB,CAAE,CACzJ,CACA,CACA,OAAO,eAAekC,GAAoB,cAAe,CACrD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,qBACX,CAAC,EACM,MAAMC,WAA+B5R,CAAU,CAClD,YAAY,CAAE,MAAAyP,CAAO,EAAG,GAAI,CACxB,MAAM,CACF,0GACZ,EAAU,KAAK;AAAA,CAAI,EAAG,CACV,MAAAA,EACA,aAAc,CACV,yEACA,gCACA,gCACA,IACA,+EACA,mEACA,+BACA,6DACH,EACD,KAAM,wBAClB,CAAS,CACT,CACA,CACA,OAAO,eAAemC,GAAwB,cAAe,CACzD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,+DACX,CAAC,EACM,MAAMC,WAAiC7R,CAAU,CACpD,YAAY,CAAE,MAAAyP,EAAO,IAAAG,CAAG,EAAM,CAAA,EAAI,CAC9B,MAAM,qBAAqBA,EAAM,IAAIA,CAAG,KAAO,EAAE,wEAAyE,CACtH,MAAAH,EACA,KAAM,0BAClB,CAAS,CACT,CACA,CACA,OAAO,eAAeoC,GAA0B,cAAe,CAC3D,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,0CACX,CAAC,EACM,MAAMC,WAAgC9R,CAAU,CACnD,YAAY,CAAE,MAAAyP,EAAO,IAAAG,CAAG,EAAM,CAAA,EAAI,CAC9B,MAAM,qBAAqBA,EAAM,IAAIA,CAAG,KAAO,EAAE,2CAA4C,CACzF,MAAAH,EACA,KAAM,yBAClB,CAAS,CACT,CACA,CACA,OAAO,eAAeqC,GAAyB,cAAe,CAC1D,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,uBACX,CAAC,EACM,MAAMC,WAAyC/R,CAAU,CAC5D,YAAY,CAAE,MAAAyP,GAAS,CACnB,MAAM,wDAAyD,CAC3D,MAAAA,EACA,KAAM,kCAClB,CAAS,CACT,CACA,CACA,OAAO,eAAesC,GAAkC,cAAe,CACnE,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,4BACX,CAAC,EACM,MAAMC,WAA4BhS,CAAU,CAC/C,YAAY,CAAE,MAAAyP,EAAO,qBAAAM,EAAsB,aAAAD,CAAY,EAAM,CAAA,EAAI,CAC7D,MAAM,CACF,6CAA6CC,EACvC,MAAMlB,EAAWkB,CAAoB,CAAC,QACtC,EAAE,wDAAwDD,EAAe,MAAMjB,EAAWiB,CAAY,CAAC,QAAU,EAAE,IACrI,EAAU,KAAK;AAAA,CAAI,EAAG,CACV,MAAAL,EACA,KAAM,qBAClB,CAAS,CACT,CACA,CACA,OAAO,eAAeuC,GAAqB,cAAe,CACtD,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,8EACX,CAAC,EACM,MAAMC,WAAyBjS,CAAU,CAC5C,YAAY,CAAE,MAAAyP,GAAS,CACnB,MAAM,sCAAsCA,GAAA,YAAAA,EAAO,YAAY,GAAI,CAC/D,MAAAA,EACA,KAAM,kBAClB,CAAS,CACT,CACA,CCtLO,SAASyC,GAAgBnR,EAAMoR,EAAQ,CAC1C,MAAO,CAAC,CAAE,QAAAC,EAAS,OAAQC,CAAS,KACzB,CACH,QAAAD,EACA,OAASlS,GAAS,CACd,MAAMoS,EAAYH,EAAOjS,CAAI,EAC7B,GAAIkS,EACA,UAAWxG,KAAOwG,EACd,OAAOE,EAAU1G,CAAG,EAG5B,MAAO,CACH,GAAG0G,EACH,GAAGD,EAAUnS,CAAI,CACpB,CACJ,EACD,KAAAa,CACH,EAET,CC4EY,MAACwR,GAAa,IAAM,KAAO,GC7F1BC,GAAkB,CAC3B,MAAO,SACP,MAAO,UACP,MAAO,UACP,MAAO,UACP,MAAO,SACX,EACO,SAASC,GAAkBpD,EAAa,CAC3C,MAAMqD,EAAe,CACjB,GAAGrD,EACH,UAAWA,EAAY,UAAYA,EAAY,UAAY,KAC3D,YAAaA,EAAY,YACnB,OAAOA,EAAY,WAAW,EAC9B,KACN,QAASA,EAAY,QAAUxM,EAAYwM,EAAY,OAAO,EAAI,OAClE,IAAKA,EAAY,IAAM,OAAOA,EAAY,GAAG,EAAI,OACjD,SAAUA,EAAY,SAAW,OAAOA,EAAY,QAAQ,EAAI,OAChE,iBAAkBA,EAAY,iBACxB,OAAOA,EAAY,gBAAgB,EACnC,OACN,aAAcA,EAAY,aACpB,OAAOA,EAAY,YAAY,EAC/B,OACN,qBAAsBA,EAAY,qBAC5B,OAAOA,EAAY,oBAAoB,EACvC,OACN,MAAOA,EAAY,MAAQxM,EAAYwM,EAAY,KAAK,EAAI,OAC5D,GAAIA,EAAY,GAAKA,EAAY,GAAK,KACtC,iBAAkBA,EAAY,iBACxB,OAAOA,EAAY,gBAAgB,EACnC,KACN,KAAMA,EAAY,KACZmD,GAAgBnD,EAAY,IAAI,EAChC,OACN,QAASA,EAAY,KAAOA,EAAY,KAAO,OAC/C,MAAOA,EAAY,MAAQ,OAAOA,EAAY,KAAK,EAAI,OACvD,EAAGA,EAAY,EAAI,OAAOA,EAAY,CAAC,EAAI,MAC9C,EACD,OAAIA,EAAY,oBACZqD,EAAa,kBAAoBC,GAAwBtD,EAAY,iBAAiB,GAC1FqD,EAAa,SAAW,IAAM,CAE1B,GAAIrD,EAAY,QACZ,OAAO,OAAOA,EAAY,OAAO,EAErC,GAAI,OAAOqD,EAAa,GAAM,SAAU,CACpC,GAAIA,EAAa,IAAM,IAAMA,EAAa,IAAM,IAC5C,MAAO,GACX,GAAIA,EAAa,IAAM,IAAMA,EAAa,IAAM,IAC5C,MAAO,GACX,GAAIA,EAAa,GAAK,IAClB,OAAOA,EAAa,EAAI,KAAO,GAAK,EAAI,CACxD,CAEA,GAAQ,EACAA,EAAa,OAAS,WACtB,OAAOA,EAAa,WACpB,OAAOA,EAAa,iBACpB,OAAOA,EAAa,aACpB,OAAOA,EAAa,qBACpB,OAAOA,EAAa,SAEpBA,EAAa,OAAS,YACtB,OAAOA,EAAa,iBACpB,OAAOA,EAAa,aACpB,OAAOA,EAAa,sBAEpBA,EAAa,OAAS,WACtB,OAAOA,EAAa,iBAEjBA,CACX,CACO,MAAME,GAAkCV,GAAgB,cAAeO,EAAiB,EAE/F,SAASE,GAAwBE,EAAmB,CAChD,OAAOA,EAAkB,IAAKC,IAAmB,CAC7C,QAASA,EAAc,QACvB,QAAS,OAAOA,EAAc,OAAO,EACrC,MAAO,OAAOA,EAAc,KAAK,EACjC,EAAGA,EAAc,EACjB,EAAGA,EAAc,EACjB,QAAS,OAAOA,EAAc,OAAO,CAC7C,EAAM,CACN,CCnFO,SAASC,GAAYC,EAAO,CAC/B,MAAMC,GAAgBD,EAAM,cAAgB,CAAA,GAAI,IAAK3D,GAC7C,OAAOA,GAAgB,SAChBA,EACJoD,GAAkBpD,CAAW,CACvC,EACD,MAAO,CACH,GAAG2D,EACH,cAAeA,EAAM,cAAgB,OAAOA,EAAM,aAAa,EAAI,KACnE,YAAaA,EAAM,YAAc,OAAOA,EAAM,WAAW,EAAI,OAC7D,WAAYA,EAAM,WAAa,OAAOA,EAAM,UAAU,EAAI,OAC1D,cAAeA,EAAM,cACf,OAAOA,EAAM,aAAa,EAC1B,OACN,SAAUA,EAAM,SAAW,OAAOA,EAAM,QAAQ,EAAI,OACpD,QAASA,EAAM,QAAU,OAAOA,EAAM,OAAO,EAAI,OACjD,KAAMA,EAAM,KAAOA,EAAM,KAAO,KAChC,UAAWA,EAAM,UAAYA,EAAM,UAAY,KAC/C,MAAOA,EAAM,MAAQA,EAAM,MAAQ,KACnC,OAAQA,EAAM,OAAS,OAAOA,EAAM,MAAM,EAAI,KAC9C,KAAMA,EAAM,KAAO,OAAOA,EAAM,IAAI,EAAI,OACxC,UAAWA,EAAM,UAAY,OAAOA,EAAM,SAAS,EAAI,OACvD,aAAAC,EACA,gBAAiBD,EAAM,gBACjB,OAAOA,EAAM,eAAe,EAC5B,IACT,CACL,CACO,MAAME,GAA4BhB,GAAgB,QAASa,EAAW,EChBtE,SAASI,GAAmBC,EAAY,CAC3C,KAAM,CAAE,IAAAC,CAAG,EAAKD,EACVhI,EAAKgI,EAAW,KAAO,OAAOA,EAAW,MAAM,CAAC,GAAM,SAAW,MAAQ,SACzEE,EAAS,OAAOF,EAAW,MAAM,CAAC,GAAM,SACxCA,EAAW,MAAM,IAAK5J,GAAM1F,EAAW0F,CAAC,CAAC,EACzC4J,EAAW,MACXG,EAAc,CAAE,EACtB,UAAWC,KAAQF,EACfC,EAAY,KAAK,WAAW,KAAKF,EAAI,oBAAoBG,CAAI,CAAC,CAAC,EACnE,OAAQpI,IAAO,QACTmI,EACAA,EAAY,IAAK/J,GAAMpG,EAAWoG,CAAC,CAAC,CAC9C,CCRO,SAASiK,GAAcL,EAAY,CACtC,KAAM,CAAE,IAAAC,CAAG,EAAKD,EACVhI,EAAKgI,EAAW,KAAO,OAAOA,EAAW,MAAM,CAAC,GAAM,SAAW,MAAQ,SACzEE,EAAS,OAAOF,EAAW,MAAM,CAAC,GAAM,SACxCA,EAAW,MAAM,IAAK5J,GAAM1F,EAAW0F,CAAC,CAAC,EACzC4J,EAAW,MACXG,EAAe,OAAOH,EAAW,YAAY,CAAC,GAAM,SACpDA,EAAW,YAAY,IAAK5J,GAAM1F,EAAW0F,CAAC,CAAC,EAC/C4J,EAAW,YACXM,EAAS,CAAE,EACjB,QAAShS,EAAI,EAAGA,EAAI4R,EAAM,OAAQ5R,IAAK,CACnC,MAAM8R,EAAOF,EAAM5R,CAAC,EACdiS,EAAaJ,EAAY7R,CAAC,EAChCgS,EAAO,KAAK,WAAW,KAAKL,EAAI,oBAAoBG,EAAMG,CAAU,CAAC,CAAC,CAC9E,CACI,OAAQvI,IAAO,QACTsI,EACAA,EAAO,IAAKlK,GAAMpG,EAAWoG,CAAC,CAAC,CACzC,CC9BO,SAASoK,GAAaC,EAAMC,EAAYtU,EAAOuH,EAAM,CACxD,GAAI,OAAO8M,EAAK,cAAiB,WAC7B,OAAOA,EAAK,aAAaC,EAAYtU,EAAOuH,CAAI,EACpD,MAAMrC,EAAO,OAAO,EAAE,EAChBqP,EAAW,OAAO,UAAU,EAC5BC,EAAK,OAAQxU,GAASkF,EAAQqP,CAAQ,EACtCE,EAAK,OAAOzU,EAAQuU,CAAQ,EAC5B5O,EAAI4B,EAAO,EAAI,EACf3B,EAAI2B,EAAO,EAAI,EACrB8M,EAAK,UAAUC,EAAa3O,EAAG6O,EAAIjN,CAAI,EACvC8M,EAAK,UAAUC,EAAa1O,EAAG6O,EAAIlN,CAAI,CAC3C,CAEO,SAASmN,GAAItO,EAAGG,EAAGoO,EAAG,CACzB,OAAQvO,EAAIG,EAAM,CAACH,EAAIuO,CAC3B,CAEO,SAASC,GAAIxO,EAAGG,EAAGoO,EAAG,CACzB,OAAQvO,EAAIG,EAAMH,EAAIuO,EAAMpO,EAAIoO,CACpC,CAKO,MAAME,WAAehM,EAAK,CAC7B,YAAYwC,EAAUC,EAAWwJ,EAAWvN,EAAM,CAC9C,MAAO,EACP,KAAK,SAAW,GAChB,KAAK,OAAS,EACd,KAAK,IAAM,EACX,KAAK,UAAY,GACjB,KAAK,SAAW8D,EAChB,KAAK,UAAYC,EACjB,KAAK,UAAYwJ,EACjB,KAAK,KAAOvN,EACZ,KAAK,OAAS,IAAI,WAAW8D,CAAQ,EACrC,KAAK,KAAOlE,GAAW,KAAK,MAAM,CAC1C,CACI,OAAOrE,EAAM,CACT4D,GAAQ,IAAI,EACZ5D,EAAOqB,GAAQrB,CAAI,EACnBwD,EAAOxD,CAAI,EACX,KAAM,CAAE,KAAAuR,EAAM,OAAAU,EAAQ,SAAA1J,CAAU,EAAG,KAC7B7F,EAAM1C,EAAK,OACjB,QAAS2I,EAAM,EAAGA,EAAMjG,GAAM,CAC1B,MAAMkG,EAAO,KAAK,IAAIL,EAAW,KAAK,IAAK7F,EAAMiG,CAAG,EAEpD,GAAIC,IAASL,EAAU,CACnB,MAAM2J,EAAW7N,GAAWrE,CAAI,EAChC,KAAOuI,GAAY7F,EAAMiG,EAAKA,GAAOJ,EACjC,KAAK,QAAQ2J,EAAUvJ,CAAG,EAC9B,QAChB,CACYsJ,EAAO,IAAIjS,EAAK,SAAS2I,EAAKA,EAAMC,CAAI,EAAG,KAAK,GAAG,EACnD,KAAK,KAAOA,EACZD,GAAOC,EACH,KAAK,MAAQL,IACb,KAAK,QAAQgJ,EAAM,CAAC,EACpB,KAAK,IAAM,EAE3B,CACQ,YAAK,QAAUvR,EAAK,OACpB,KAAK,WAAY,EACV,IACf,CACI,WAAWgE,EAAK,CACZJ,GAAQ,IAAI,EACZG,GAAQC,EAAK,IAAI,EACjB,KAAK,SAAW,GAIhB,KAAM,CAAE,OAAAiO,EAAQ,KAAAV,EAAM,SAAAhJ,EAAU,KAAA9D,CAAM,EAAG,KACzC,GAAI,CAAE,IAAAkE,CAAG,EAAK,KAEdsJ,EAAOtJ,GAAK,EAAI,IAChBxE,EAAM,KAAK,OAAO,SAASwE,CAAG,CAAC,EAG3B,KAAK,UAAYJ,EAAWI,IAC5B,KAAK,QAAQ4I,EAAM,CAAC,EACpB5I,EAAM,GAGV,QAASvJ,EAAIuJ,EAAKvJ,EAAImJ,EAAUnJ,IAC5B6S,EAAO7S,CAAC,EAAI,EAIhBkS,GAAaC,EAAMhJ,EAAW,EAAG,OAAO,KAAK,OAAS,CAAC,EAAG9D,CAAI,EAC9D,KAAK,QAAQ8M,EAAM,CAAC,EACpB,MAAMY,EAAQ9N,GAAWL,CAAG,EACtBtB,EAAM,KAAK,UAEjB,GAAIA,EAAM,EACN,MAAM,IAAI,MAAM,6CAA6C,EACjE,MAAM0P,EAAS1P,EAAM,EACfgG,EAAQ,KAAK,IAAK,EACxB,GAAI0J,EAAS1J,EAAM,OACf,MAAM,IAAI,MAAM,oCAAoC,EACxD,QAAStJ,EAAI,EAAGA,EAAIgT,EAAQhT,IACxB+S,EAAM,UAAU,EAAI/S,EAAGsJ,EAAMtJ,CAAC,EAAGqF,CAAI,CACjD,CACI,QAAS,CACL,KAAM,CAAE,OAAAwN,EAAQ,UAAAzJ,CAAS,EAAK,KAC9B,KAAK,WAAWyJ,CAAM,EACtB,MAAMnM,EAAMmM,EAAO,MAAM,EAAGzJ,CAAS,EACrC,YAAK,QAAS,EACP1C,CACf,CACI,WAAWgD,EAAI,CACXA,IAAOA,EAAK,IAAI,KAAK,aACrBA,EAAG,IAAI,GAAG,KAAK,IAAG,CAAE,EACpB,KAAM,CAAE,SAAAP,EAAU,OAAA0J,EAAQ,OAAAnQ,EAAQ,SAAAuQ,EAAU,UAAAC,EAAW,IAAA3J,CAAG,EAAK,KAC/D,OAAAG,EAAG,UAAYwJ,EACfxJ,EAAG,SAAWuJ,EACdvJ,EAAG,OAAShH,EACZgH,EAAG,IAAMH,EACL7G,EAASyG,GACTO,EAAG,OAAO,IAAImJ,CAAM,EACjBnJ,CACf,CACI,OAAQ,CACJ,OAAO,KAAK,WAAY,CAChC,CACA,CAMO,MAAMyJ,EAA4B,YAAY,KAAK,CACtD,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACxF,CAAC,EC5HKC,GAA2B,YAAY,KAAK,CAC9C,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACxF,CAAC,EAEKC,EAA2B,IAAI,YAAY,EAAE,EAC5C,MAAMC,WAAeX,EAAO,CAC/B,YAAYvJ,EAAY,GAAI,CACxB,MAAM,GAAIA,EAAW,EAAG,EAAK,EAG7B,KAAK,EAAI+J,EAAU,CAAC,EAAI,EACxB,KAAK,EAAIA,EAAU,CAAC,EAAI,EACxB,KAAK,EAAIA,EAAU,CAAC,EAAI,EACxB,KAAK,EAAIA,EAAU,CAAC,EAAI,EACxB,KAAK,EAAIA,EAAU,CAAC,EAAI,EACxB,KAAK,EAAIA,EAAU,CAAC,EAAI,EACxB,KAAK,EAAIA,EAAU,CAAC,EAAI,EACxB,KAAK,EAAIA,EAAU,CAAC,EAAI,CAChC,CACI,KAAM,CACF,KAAM,CAAE,EAAAI,EAAG,EAAA/K,EAAG,EAAAgL,EAAG,EAAAC,EAAG,EAAAC,EAAG,EAAAC,EAAG,EAAAC,EAAG,EAAAC,CAAC,EAAK,KACnC,MAAO,CAACN,EAAG/K,EAAGgL,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,CAAC,CACtC,CAEI,IAAIN,EAAG/K,EAAGgL,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAG,CACxB,KAAK,EAAIN,EAAI,EACb,KAAK,EAAI/K,EAAI,EACb,KAAK,EAAIgL,EAAI,EACb,KAAK,EAAIC,EAAI,EACb,KAAK,EAAIC,EAAI,EACb,KAAK,EAAIC,EAAI,EACb,KAAK,EAAIC,EAAI,EACb,KAAK,EAAIC,EAAI,CACrB,CACI,QAAQ1B,EAAMlT,EAAQ,CAElB,QAASe,EAAI,EAAGA,EAAI,GAAIA,IAAKf,GAAU,EACnCoU,EAASrT,CAAC,EAAImS,EAAK,UAAUlT,EAAQ,EAAK,EAC9C,QAASe,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC1B,MAAM8T,EAAMT,EAASrT,EAAI,EAAE,EACrB+T,EAAKV,EAASrT,EAAI,CAAC,EACnBgU,EAAK9O,EAAK4O,EAAK,CAAC,EAAI5O,EAAK4O,EAAK,EAAE,EAAKA,IAAQ,EAC7CG,EAAK/O,EAAK6O,EAAI,EAAE,EAAI7O,EAAK6O,EAAI,EAAE,EAAKA,IAAO,GACjDV,EAASrT,CAAC,EAAKiU,EAAKZ,EAASrT,EAAI,CAAC,EAAIgU,EAAKX,EAASrT,EAAI,EAAE,EAAK,CAC3E,CAEQ,GAAI,CAAE,EAAAuT,EAAG,EAAA/K,EAAG,EAAAgL,EAAG,EAAAC,EAAG,EAAAC,EAAG,EAAAC,EAAG,EAAAC,EAAG,EAAAC,CAAC,EAAK,KACjC,QAAS7T,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAMkU,EAAShP,EAAKwO,EAAG,CAAC,EAAIxO,EAAKwO,EAAG,EAAE,EAAIxO,EAAKwO,EAAG,EAAE,EAC9CS,EAAMN,EAAIK,EAAS1B,GAAIkB,EAAGC,EAAGC,CAAC,EAAIR,GAASpT,CAAC,EAAIqT,EAASrT,CAAC,EAAK,EAE/DoU,GADSlP,EAAKqO,EAAG,CAAC,EAAIrO,EAAKqO,EAAG,EAAE,EAAIrO,EAAKqO,EAAG,EAAE,GAC/Bb,GAAIa,EAAG/K,EAAGgL,CAAC,EAAK,EACrCK,EAAID,EACJA,EAAID,EACJA,EAAID,EACJA,EAAKD,EAAIU,EAAM,EACfV,EAAID,EACJA,EAAIhL,EACJA,EAAI+K,EACJA,EAAKY,EAAKC,EAAM,CAC5B,CAEQb,EAAKA,EAAI,KAAK,EAAK,EACnB/K,EAAKA,EAAI,KAAK,EAAK,EACnBgL,EAAKA,EAAI,KAAK,EAAK,EACnBC,EAAKA,EAAI,KAAK,EAAK,EACnBC,EAAKA,EAAI,KAAK,EAAK,EACnBC,EAAKA,EAAI,KAAK,EAAK,EACnBC,EAAKA,EAAI,KAAK,EAAK,EACnBC,EAAKA,EAAI,KAAK,EAAK,EACnB,KAAK,IAAIN,EAAG/K,EAAGgL,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,CAAC,CACvC,CACI,YAAa,CACT9O,EAAMsO,CAAQ,CACtB,CACI,SAAU,CACN,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC/BtO,EAAM,KAAK,MAAM,CACzB,CACA,CAgQY,MAACsP,GAAyBzN,GAAa,IAAM,IAAI0M,EAAQ,ECvVxDe,GAASC,GCVf,SAASD,GAAOvW,EAAOgM,EAAK,CAI3B,OAFUyK,GAAa1W,EAAMC,EAAO,CAAE,OAAQ,EAAK,CAAE,EAAImE,GAAQnE,CAAK,EAAIA,CAAK,CAIvF,CCSO,SAAS0W,GAA0B9C,EAAY,CAClD,KAAM,CAAE,WAAAO,EAAY,QAAAhU,EAAU,CAAG,EAAGyT,EAC9BhI,EAAKgI,EAAW,KAAO,OAAOO,GAAe,SAAW,MAAQ,SAChEwC,EAAgBJ,GAAOpC,CAAmB,EAChD,OAAAwC,EAAc,IAAI,CAACxW,CAAO,EAAG,CAAC,EACtByL,IAAO,QAAU+K,EAAgB/S,EAAW+S,CAAa,CACrE,CCPO,SAASC,GAA6BhD,EAAY,CACrD,KAAM,CAAE,YAAAG,EAAa,QAAA5T,CAAO,EAAKyT,EAC3BhI,EAAKgI,EAAW,KAAO,OAAOG,EAAY,CAAC,GAAM,SAAW,MAAQ,SACpE8C,EAAS,CAAE,EACjB,UAAW1C,KAAcJ,EACrB8C,EAAO,KAAKH,GAA0B,CAClC,WAAAvC,EACA,GAAAvI,EACA,QAAAzL,CACZ,CAAS,CAAC,EAEN,OAAO0W,CACX,CC5BA,MAAMC,GAAsB,EAEfC,GAAuB,GAEvBC,GAAuB,KAEvBC,GAAeF,GAAuBC,GAEtCE,GAAyBD,GAAeH,GAEjD,EAEA,EAAIE,GAAuBF,GCblBK,GAA0B,ECChC,MAAMC,WAA8B5W,CAAU,CACjD,YAAY,CAAE,QAAAoC,EAAS,KAAA1C,GAAQ,CAC3B,MAAM,0BAA2B,CAC7B,aAAc,CAAC,QAAQ0C,CAAO,SAAU,UAAU1C,CAAI,QAAQ,EAC9D,KAAM,uBAClB,CAAS,CACT,CACA,CACO,MAAMmX,WAAuB7W,CAAU,CAC1C,aAAc,CACV,MAAM,+BAAgC,CAAE,KAAM,gBAAgB,CAAE,CACxE,CACA,CACO,MAAM8W,WAAsC9W,CAAU,CACzD,YAAY,CAAE,KAAAmM,EAAM,KAAAzM,GAAS,CACzB,MAAM,mBAAmByM,CAAI,qBAAsB,CAC/C,aAAc,CAAC,eAAgB,aAAazM,CAAI,EAAE,EAClD,KAAM,+BAClB,CAAS,CACT,CACA,CACO,MAAMqX,WAAyC/W,CAAU,CAC5D,YAAY,CAAE,KAAAmM,EAAM,QAAAxM,GAAY,CAC5B,MAAM,mBAAmBwM,CAAI,wBAAyB,CAClD,aAAc,CACV,aAAawK,EAAuB,GACpC,aAAahX,CAAO,EACvB,EACD,KAAM,kCAClB,CAAS,CACT,CACA,CCjBO,SAASqX,GAAQ5D,EAAY,CAChC,MAAMhI,EAAKgI,EAAW,KAAO,OAAOA,EAAW,MAAS,SAAW,MAAQ,SACrE9Q,EAAQ,OAAO8Q,EAAW,MAAS,SACnCtP,EAAWsP,EAAW,IAAI,EAC1BA,EAAW,KACX3Q,EAAQ/C,EAAK4C,CAAI,EACvB,GAAI,CAACG,EACD,MAAM,IAAIoU,GACd,GAAIpU,EAAQiU,GACR,MAAM,IAAIE,GAAsB,CAC5B,QAASF,GACT,KAAMjU,CAClB,CAAS,EACL,MAAM6Q,EAAQ,CAAE,EAChB,IAAI2D,EAAS,GACTrW,EAAW,EACf,KAAOqW,GAAQ,CACX,MAAMzD,EAAOzF,GAAa,IAAI,WAAW0I,EAAY,CAAC,EACtD,IAAI/W,EAAO,EACX,KAAOA,EAAO8W,IAAsB,CAChC,MAAMhV,EAAQc,EAAK,MAAM1B,EAAUA,GAAY2V,GAAuB,EAAE,EAOxE,GALA/C,EAAK,SAAS,CAAI,EAElBA,EAAK,UAAUhS,CAAK,EAGhBA,EAAM,OAAS,GAAI,CACnBgS,EAAK,SAAS,GAAI,EAClByD,EAAS,GACT,KAChB,CACYvX,IACAkB,GAAY,EACxB,CACQ0S,EAAM,KAAKE,CAAI,CACvB,CACI,OAAQpI,IAAO,QACTkI,EAAM,IAAK9J,GAAMA,EAAE,KAAK,EACxB8J,EAAM,IAAK9J,GAAMpG,EAAWoG,EAAE,KAAK,CAAC,CAC9C,CC1BO,SAAS0N,GAAe9D,EAAY,CACvC,KAAM,CAAE,KAAA9Q,EAAM,IAAA+Q,EAAK,GAAAjI,CAAI,EAAGgI,EACpBE,EAAQF,EAAW,OAAS4D,GAAQ,CAAE,KAAM1U,EAAM,GAAA8I,EAAI,EACtDmI,EAAcH,EAAW,aAAeD,GAAmB,CAAE,MAAAG,EAAO,IAAKD,EAAK,GAAAjI,EAAI,EAClFsI,EAASN,EAAW,QAAUK,GAAc,CAAE,MAAAH,EAAO,YAAAC,EAAa,IAAKF,EAAK,GAAAjI,EAAI,EAChF+L,EAAW,CAAE,EACnB,QAASzV,EAAI,EAAGA,EAAI4R,EAAM,OAAQ5R,IAC9ByV,EAAS,KAAK,CACV,KAAM7D,EAAM5R,CAAC,EACb,WAAY6R,EAAY7R,CAAC,EACzB,MAAOgS,EAAOhS,CAAC,CAC3B,CAAS,EACL,OAAOyV,CACX,CC1CO,SAASC,GAAmB/H,EAAa,CAC5C,GAAIA,EAAY,KACZ,OAAOA,EAAY,KACvB,GAAI,OAAOA,EAAY,kBAAsB,IACzC,MAAO,UACX,GAAI,OAAOA,EAAY,MAAU,KAC7B,OAAOA,EAAY,oBAAwB,KAC3C,OAAOA,EAAY,iBAAqB,KACxC,OAAOA,EAAY,SAAa,IAChC,MAAO,UACX,GAAI,OAAOA,EAAY,aAAiB,KACpC,OAAOA,EAAY,qBAAyB,IAC5C,MAAO,UAEX,GAAI,OAAOA,EAAY,SAAa,IAChC,OAAI,OAAOA,EAAY,WAAe,IAC3B,UACJ,SAEX,MAAM,IAAID,GAAoC,CAAE,YAAAC,EAAa,CACjE,CCrBO,SAASgI,GAAUC,EAAK,CAAE,KAAApX,EAAM,UAAAqX,CAAS,EAAM,CAAA,EAAI,CACtD,MAAO,CACH,GAAGD,EACH,UAAWA,EAAI,UAAYA,EAAI,UAAY,KAC3C,YAAaA,EAAI,YAAc,OAAOA,EAAI,WAAW,EAAI,KACzD,SAAUA,EAAI,SAAW,OAAOA,EAAI,QAAQ,EAAI,KAChD,gBAAiBA,EAAI,gBAAkBA,EAAI,gBAAkB,KAC7D,iBAAkBA,EAAI,iBAChB,OAAOA,EAAI,gBAAgB,EAC3B,KACN,GAAIC,EAAY,CAAE,KAAArX,EAAM,UAAAqX,CAAS,EAAK,CAAA,CACzC,CACL,CCXO,MAAMC,WAAoCxX,CAAU,CACvD,YAAY,CAAE,YAAAoQ,EAAa,MAAAT,EAAO,SAAA8H,CAAQ,EAAK,CAC3C,MAAM,UAAU9H,EAAM,IAAI,gCAAgC8H,EAAS,IAAI,KAAM,CACzE,aAAc,CACV,6CACA,GAAIrH,GACAqH,EAAS,cACTA,EAAS,aAAerH,EACtB,CACE,mBAAmBqH,EAAS,IAAI,kCAAkCA,EAAS,YAAY,mBAAmBrH,CAAW,IAC7I,EACsB,CACE,2CAA2CqH,EAAS,IAAI,eAChF,CACa,EACD,KAAM,6BAClB,CAAS,CACT,CACA,CACO,MAAMC,WAA2B1X,CAAU,CAC9C,YAAY,CAAE,MAAA2P,EAAO,eAAAgI,GAAmB,CACpC,MAAM,wCAAwCA,CAAc,8DAA8DhI,EAAM,EAAE,MAAMA,EAAM,IAAI,KAAM,CACpJ,aAAc,CACV,sBAAsBgI,CAAc,GACpC,sBAAsBhI,EAAM,EAAE,MAAMA,EAAM,IAAI,EACjD,EACD,KAAM,oBAClB,CAAS,CACT,CACA,CACO,MAAMiI,WAA2B5X,CAAU,CAC9C,aAAc,CACV,MAAM,CACF,wCACA,4GACZ,EAAU,KAAK;AAAA,CAAI,EAAG,CACV,KAAM,oBAClB,CAAS,CACT,CACA,CACO,MAAM6X,WAAsC7X,CAAU,CACzD,aAAc,CACV,MAAM,uCAAwC,CAC1C,KAAM,+BAClB,CAAS,CACT,CACA,CACO,MAAM8X,WAA4B9X,CAAU,CAC/C,YAAY,CAAE,QAAAiM,GAAW,CACrB,MAAM,OAAOA,GAAY,SACnB,aAAaA,CAAO,gBACpB,uBAAwB,CAAE,KAAM,sBAAuB,CACrE,CACA,CClDY,MAAC8L,GAAkB,CAC3B,MAAO,WACP,MAAO,SACX,EACO,SAASC,GAAyBC,EAAoB,CACzD,MAAMC,EAAU,CACZ,GAAGD,EACH,YAAaA,EAAmB,YAC1B,OAAOA,EAAmB,WAAW,EACrC,KACN,gBAAiBA,EAAmB,gBAC9BA,EAAmB,gBACnB,KACN,kBAAmBA,EAAmB,kBAChC,OAAOA,EAAmB,iBAAiB,EAC3C,KACN,kBAAmBA,EAAmB,kBAChC,OAAOA,EAAmB,iBAAiB,EAC3C,KACN,QAASA,EAAmB,QACtB,OAAOA,EAAmB,OAAO,EACjC,KACN,KAAMA,EAAmB,KACnBA,EAAmB,KAAK,IAAKX,GAAQD,GAAUC,CAAG,CAAC,EACnD,KACN,GAAIW,EAAmB,GAAKA,EAAmB,GAAK,KACpD,iBAAkBA,EAAmB,iBAC/BpV,EAAYoV,EAAmB,gBAAgB,EAC/C,KACN,OAAQA,EAAmB,OACrBF,GAAgBE,EAAmB,MAAM,EACzC,KACN,KAAMA,EAAmB,KACnBzF,GAAgByF,EAAmB,IAAI,GAAKA,EAAmB,KAC/D,IACT,EACD,OAAIA,EAAmB,eACnBC,EAAQ,aAAe,OAAOD,EAAmB,YAAY,GAC7DA,EAAmB,cACnBC,EAAQ,YAAc,OAAOD,EAAmB,WAAW,GACxDC,CACX,CACO,MAAMC,GAAyCjG,GAAgB,qBAAsB8F,EAAwB,EC9C7G,SAASI,EAAYzI,EAAO,CAC/B,MAAO,CACH,WAAY,OACZ,KAAM,OACN,YAAa,OACb,GAAGA,CACN,CACL,CCIO,SAAS0I,GAAyBhJ,EAAa,CAClD,KAAM,CAAE,kBAAAwD,CAAiB,EAAKxD,EAC9B,GAAIwD,EACA,UAAWC,KAAiBD,EAAmB,CAC3C,KAAM,CAAE,QAAA5G,CAAO,EAAK6G,EACdpH,EAAUoH,EAAc,QAC9B,GAAI,CAACxG,EAAUZ,CAAO,EAClB,MAAM,IAAID,EAAoB,CAAE,QAAAC,EAAS,EAC7C,GAAIO,EAAU,EACV,MAAM,IAAI6L,GAAoB,CAAE,QAAA7L,EAAS,CACzD,CAEIqM,GAAyBjJ,CAAW,CACxC,CACO,SAASkJ,GAAyBlJ,EAAa,CAClD,KAAM,CAAE,oBAAAmJ,CAAmB,EAAKnJ,EAChC,GAAImJ,EAAqB,CACrB,GAAIA,EAAoB,SAAW,EAC/B,MAAM,IAAI3B,GACd,UAAW1K,KAAQqM,EAAqB,CACpC,MAAM/V,EAAQ/C,EAAKyM,CAAI,EACjBxM,EAAUkD,EAAYkK,GAAMZ,EAAM,EAAG,CAAC,CAAC,EAC7C,GAAI1J,IAAU,GACV,MAAM,IAAIqU,GAA8B,CAAE,KAAA3K,EAAM,KAAM1J,CAAK,CAAE,EACjE,GAAI9C,IAAYgX,GACZ,MAAM,IAAII,GAAiC,CACvC,KAAA5K,EACA,QAAAxM,CACpB,CAAiB,CACjB,CACA,CACI2Y,GAAyBjJ,CAAW,CACxC,CACO,SAASiJ,GAAyBjJ,EAAa,CAClD,KAAM,CAAE,QAAApD,EAAS,qBAAA8D,EAAsB,aAAAD,EAAc,GAAA1E,CAAI,EAAGiE,EAC5D,GAAIpD,GAAW,EACX,MAAM,IAAI6L,GAAoB,CAAE,QAAA7L,EAAS,EAC7C,GAAIb,GAAM,CAACkB,EAAUlB,CAAE,EACnB,MAAM,IAAIK,EAAoB,CAAE,QAASL,CAAE,CAAE,EACjD,GAAI0E,GAAgBA,EAAeyC,GAC/B,MAAM,IAAIhB,GAAmB,CAAE,aAAAzB,EAAc,EACjD,GAAIC,GACAD,GACAC,EAAuBD,EACvB,MAAM,IAAIkC,GAAoB,CAAE,aAAAlC,EAAc,qBAAAC,CAAoB,CAAE,CAC5E,CACO,SAAS0I,GAAyBpJ,EAAa,CAClD,KAAM,CAAE,QAAApD,EAAS,qBAAA8D,EAAsB,SAAAF,EAAU,aAAAC,EAAc,GAAA1E,CAAE,EAAKiE,EACtE,GAAIpD,GAAW,EACX,MAAM,IAAI6L,GAAoB,CAAE,QAAA7L,EAAS,EAC7C,GAAIb,GAAM,CAACkB,EAAUlB,CAAE,EACnB,MAAM,IAAIK,EAAoB,CAAE,QAASL,CAAE,CAAE,EACjD,GAAI2E,GAAwBD,EACxB,MAAM,IAAI9P,EAAU,sFAAsF,EAC9G,GAAI6P,GAAYA,EAAW0C,GACvB,MAAM,IAAIhB,GAAmB,CAAE,aAAc1B,CAAQ,CAAE,CAC/D,CACO,SAAS6I,GAAwBrJ,EAAa,CACjD,KAAM,CAAE,QAAApD,EAAS,qBAAA8D,EAAsB,SAAAF,EAAU,aAAAC,EAAc,GAAA1E,CAAE,EAAKiE,EACtE,GAAIjE,GAAM,CAACkB,EAAUlB,CAAE,EACnB,MAAM,IAAIK,EAAoB,CAAE,QAASL,CAAE,CAAE,EACjD,GAAI,OAAOa,EAAY,KAAeA,GAAW,EAC7C,MAAM,IAAI6L,GAAoB,CAAE,QAAA7L,EAAS,EAC7C,GAAI8D,GAAwBD,EACxB,MAAM,IAAI9P,EAAU,oFAAoF,EAC5G,GAAI6P,GAAYA,EAAW0C,GACvB,MAAM,IAAIhB,GAAmB,CAAE,aAAc1B,CAAQ,CAAE,CAC/D,CClEO,SAAS8I,GAAoBC,EAAY,CAC5C,GAAI,CAACA,GAAcA,EAAW,SAAW,EACrC,MAAO,CAAE,EACb,MAAMC,EAAuB,CAAE,EAC/B,QAASnX,EAAI,EAAGA,EAAIkX,EAAW,OAAQlX,IAAK,CACxC,KAAM,CAAE,QAAAgK,EAAS,YAAAoN,GAAgBF,EAAWlX,CAAC,EAC7C,QAAS4C,EAAI,EAAGA,EAAIwU,EAAY,OAAQxU,IACpC,GAAIwU,EAAYxU,CAAC,EAAE,OAAS,IAAM,GAC9B,MAAM,IAAIgL,GAA2B,CAAE,WAAYwJ,EAAYxU,CAAC,CAAC,CAAE,EAG3E,GAAI,CAACgI,EAAUZ,EAAS,CAAE,OAAQ,EAAO,CAAA,EACrC,MAAM,IAAID,EAAoB,CAAE,QAAAC,EAAS,EAE7CmN,EAAqB,KAAK,CAACnN,EAASoN,CAAW,CAAC,CACxD,CACI,OAAOD,CACX,CChBO,SAASE,GAAqB1J,EAAa2J,EAAW,CACzD,MAAMjY,EAAOqW,GAAmB/H,CAAW,EAC3C,OAAItO,IAAS,UACFkY,GAA4B5J,EAAa2J,CAAS,EACzDjY,IAAS,UACFmY,GAA4B7J,EAAa2J,CAAS,EACzDjY,IAAS,UACFoY,GAA4B9J,EAAa2J,CAAS,EACzDjY,IAAS,UACFqY,GAA4B/J,EAAa2J,CAAS,EACtDK,GAA2BhK,EAAa2J,CAAS,CAC5D,CACA,SAASI,GAA4B/J,EAAa2J,EAAW,CACzD,KAAM,CAAE,kBAAAnG,EAAmB,QAAA5G,EAAS,IAAA2D,EAAK,MAAAI,EAAO,GAAA5E,EAAI,MAAA5L,EAAO,aAAAsQ,EAAc,qBAAAC,EAAsB,WAAA6I,EAAY,KAAAtW,CAAO,EAAG+M,EACrHgJ,GAAyBhJ,CAAW,EACpC,MAAMwJ,EAAuBF,GAAoBC,CAAU,EACrDU,EAA8BC,GAA2B1G,CAAiB,EAChF,OAAOhG,EAAU,CACb,OACA4D,EAAM,CACFxN,EAAYgJ,CAAO,EACnB+D,EAAQ/M,EAAY+M,CAAK,EAAI,KAC7BD,EAAuB9M,EAAY8M,CAAoB,EAAI,KAC3DD,EAAe7M,EAAY6M,CAAY,EAAI,KAC3CF,EAAM3M,EAAY2M,CAAG,EAAI,KACzBxE,GAAM,KACN5L,EAAQyD,EAAYzD,CAAK,EAAI,KAC7B8C,GAAQ,KACRuW,EACAS,EACA,GAAGE,GAAwBnK,EAAa2J,CAAS,CAC7D,CAAS,CACT,CAAK,CACL,CACA,SAASG,GAA4B9J,EAAa2J,EAAW,CACzD,KAAM,CAAE,QAAA/M,EAAS,IAAA2D,EAAK,MAAAI,EAAO,GAAA5E,EAAI,MAAA5L,EAAO,iBAAAia,EAAkB,aAAA3J,EAAc,qBAAAC,EAAsB,WAAA6I,EAAY,KAAAtW,CAAO,EAAG+M,EACpHkJ,GAAyBlJ,CAAW,EACpC,IAAImJ,EAAsBnJ,EAAY,oBAClC8H,EAAW9H,EAAY,SAE3B,GAAIA,EAAY,QACX,OAAOmJ,EAAwB,KAC5B,OAAOrB,EAAa,KAAc,CACtC,MAAM7D,EAAS,OAAOjE,EAAY,MAAM,CAAC,GAAM,SACzCA,EAAY,MACZA,EAAY,MAAM,IAAK7F,GAAMpG,EAAWoG,CAAC,CAAC,EAC1C6J,GAAMhE,EAAY,IAClBkE,EAAcJ,GAAmB,CACnC,MAAAG,EACA,IAAAD,EACZ,CAAS,EAKD,GAJI,OAAOmF,EAAwB,MAC/BA,EAAsBpC,GAA6B,CAC/C,YAAA7C,CAChB,CAAa,GACD,OAAO4D,EAAa,IAAa,CACjC,MAAMzD,EAASD,GAAc,CAAE,MAAAH,EAAO,YAAAC,EAAa,IAAAF,EAAG,CAAE,EACxD8D,EAAWD,GAAe,CAAE,MAAA5D,EAAO,YAAAC,EAAa,OAAAG,CAAM,CAAE,CACpE,CACA,CACI,MAAMmF,EAAuBF,GAAoBC,CAAU,EACrDc,EAAwB,CAC1BzW,EAAYgJ,CAAO,EACnB+D,EAAQ/M,EAAY+M,CAAK,EAAI,KAC7BD,EAAuB9M,EAAY8M,CAAoB,EAAI,KAC3DD,EAAe7M,EAAY6M,CAAY,EAAI,KAC3CF,EAAM3M,EAAY2M,CAAG,EAAI,KACzBxE,GAAM,KACN5L,EAAQyD,EAAYzD,CAAK,EAAI,KAC7B8C,GAAQ,KACRuW,EACAY,EAAmBxW,EAAYwW,CAAgB,EAAI,KACnDjB,GAAuB,CAAE,EACzB,GAAGgB,GAAwBnK,EAAa2J,CAAS,CACpD,EACK1F,GAAQ,CAAE,EACVC,GAAc,CAAE,EAChBG,GAAS,CAAE,EACjB,GAAIyD,EACA,QAASzV,EAAI,EAAGA,EAAIyV,EAAS,OAAQzV,IAAK,CACtC,KAAM,CAAE,KAAA8R,GAAM,WAAAG,EAAY,MAAAgG,CAAK,EAAKxC,EAASzV,CAAC,EAC9C4R,GAAM,KAAKE,EAAI,EACfD,GAAY,KAAKI,CAAU,EAC3BD,GAAO,KAAKiG,CAAK,CAC7B,CACI,OAAO9M,EAAU,CACb,OAGQ4D,EAFR0G,EAEc,CAACuC,EAAuBpG,GAAOC,GAAaG,EAAM,EAElDgG,CAFmD,CAGzE,CAAK,CACL,CACA,SAAST,GAA4B5J,EAAa2J,EAAW,CACzD,KAAM,CAAE,QAAA/M,EAAS,IAAA2D,EAAK,MAAAI,EAAO,GAAA5E,EAAI,MAAA5L,EAAO,aAAAsQ,EAAc,qBAAAC,EAAsB,WAAA6I,EAAY,KAAAtW,CAAO,EAAG+M,EAClGiJ,GAAyBjJ,CAAW,EACpC,MAAMwJ,EAAuBF,GAAoBC,CAAU,EACrDc,EAAwB,CAC1BzW,EAAYgJ,CAAO,EACnB+D,EAAQ/M,EAAY+M,CAAK,EAAI,KAC7BD,EAAuB9M,EAAY8M,CAAoB,EAAI,KAC3DD,EAAe7M,EAAY6M,CAAY,EAAI,KAC3CF,EAAM3M,EAAY2M,CAAG,EAAI,KACzBxE,GAAM,KACN5L,EAAQyD,EAAYzD,CAAK,EAAI,KAC7B8C,GAAQ,KACRuW,EACA,GAAGW,GAAwBnK,EAAa2J,CAAS,CACpD,EACD,OAAOnM,EAAU,CACb,OACA4D,EAAMiJ,CAAqB,CACnC,CAAK,CACL,CACA,SAASR,GAA4B7J,EAAa2J,EAAW,CACzD,KAAM,CAAE,QAAA/M,EAAS,IAAA2D,EAAK,KAAAtN,EAAM,MAAA0N,EAAO,GAAA5E,EAAI,MAAA5L,EAAO,WAAAoZ,EAAY,SAAA/I,CAAQ,EAAKR,EACvEoJ,GAAyBpJ,CAAW,EACpC,MAAMwJ,EAAuBF,GAAoBC,CAAU,EACrDc,EAAwB,CAC1BzW,EAAYgJ,CAAO,EACnB+D,EAAQ/M,EAAY+M,CAAK,EAAI,KAC7BH,EAAW5M,EAAY4M,CAAQ,EAAI,KACnCD,EAAM3M,EAAY2M,CAAG,EAAI,KACzBxE,GAAM,KACN5L,EAAQyD,EAAYzD,CAAK,EAAI,KAC7B8C,GAAQ,KACRuW,EACA,GAAGW,GAAwBnK,EAAa2J,CAAS,CACpD,EACD,OAAOnM,EAAU,CACb,OACA4D,EAAMiJ,CAAqB,CACnC,CAAK,CACL,CACA,SAASL,GAA2BhK,EAAa2J,EAAW,CACxD,KAAM,CAAE,QAAA/M,EAAU,EAAG,IAAA2D,EAAK,KAAAtN,EAAM,MAAA0N,EAAO,GAAA5E,EAAI,MAAA5L,EAAO,SAAAqQ,CAAQ,EAAKR,EAC/DqJ,GAAwBrJ,CAAW,EACnC,IAAIqK,EAAwB,CACxB1J,EAAQ/M,EAAY+M,CAAK,EAAI,KAC7BH,EAAW5M,EAAY4M,CAAQ,EAAI,KACnCD,EAAM3M,EAAY2M,CAAG,EAAI,KACzBxE,GAAM,KACN5L,EAAQyD,EAAYzD,CAAK,EAAI,KAC7B8C,GAAQ,IACX,EACD,GAAI0W,EAAW,CACX,MAAM7J,GAAK,IAAM,CAEb,GAAI6J,EAAU,GAAK,IAEf,OADyBA,EAAU,EAAI,KAAO,GACxB,EACXA,EAAU,EACd,KAAOA,EAAU,IAAM,IAAM,GAAK,IAG7C,GAAI/M,EAAU,EACV,OAAO,OAAOA,EAAU,CAAC,EAAI,OAAO,IAAM+M,EAAU,EAAI,GAAG,EAE/D,MAAM7J,EAAI,KAAO6J,EAAU,IAAM,IAAM,GAAK,IAC5C,GAAIA,EAAU,IAAM7J,EAChB,MAAM,IAAID,GAAoB,CAAE,EAAG8J,EAAU,CAAC,CAAE,EACpD,OAAO7J,CACnB,GAAY,EACEyK,EAAIvX,EAAK2W,EAAU,CAAC,EACpB1T,EAAIjD,EAAK2W,EAAU,CAAC,EAC1BU,EAAwB,CACpB,GAAGA,EACHzW,EAAYkM,CAAC,EACbyK,IAAM,OAAS,KAAOA,EACtBtU,IAAM,OAAS,KAAOA,CACzB,CACT,MACa2G,EAAU,IACfyN,EAAwB,CACpB,GAAGA,EACHzW,EAAYgJ,CAAO,EACnB,KACA,IACH,GAEL,OAAOwE,EAAMiJ,CAAqB,CACtC,CACO,SAASF,GAAwBnK,EAAawK,EAAY,CAC7D,MAAMb,EAAYa,GAAcxK,EAC1B,CAAE,EAAAF,EAAG,QAAA2K,CAAO,EAAKd,EACvB,GAAI,OAAOA,EAAU,EAAM,IACvB,MAAO,CAAE,EACb,GAAI,OAAOA,EAAU,EAAM,IACvB,MAAO,CAAE,EACb,GAAI,OAAO7J,EAAM,KAAe,OAAO2K,EAAY,IAC/C,MAAO,CAAE,EACb,MAAMF,EAAIvX,EAAK2W,EAAU,CAAC,EACpB1T,EAAIjD,EAAK2W,EAAU,CAAC,EAU1B,MAAO,CARC,OAAOc,GAAY,SACZA,EAAU7W,EAAY,CAAC,EAAI,KAClCkM,IAAM,GACC,KACPA,IAAM,GACClM,EAAY,CAAC,EACjBkM,IAAM,IAAM,KAAOlM,EAAY,CAAC,EAEzB2W,IAAM,OAAS,KAAOA,EAAGtU,IAAM,OAAS,KAAOA,CAAC,CACtE,CCpNO,SAASiU,GAA2B1G,EAAmB,CAC1D,GAAI,CAACA,GAAqBA,EAAkB,SAAW,EACnD,MAAO,CAAE,EACb,MAAMyG,EAA8B,CAAE,EACtC,UAAWxG,KAAiBD,EAAmB,CAC3C,KAAM,CAAE,QAAA5G,EAAS,MAAA+D,EAAO,GAAGgJ,CAAW,EAAGlG,EACnCiH,EAAkBjH,EAAc,QACtCwG,EAA4B,KAAK,CAC7BrN,EAAUjJ,EAAMiJ,CAAO,EAAI,KAC3B8N,EACA/J,EAAQhN,EAAMgN,CAAK,EAAI,KACvB,GAAGwJ,GAAwB,CAAE,EAAER,CAAS,CACpD,CAAS,CACT,CACI,OAAOM,CACX,CChBO,MAAMU,GAAY,CACrB,eAAgB,CAAE,QAAS,4CAA8C,EACzE,QAAS,CAAE,QAAS,4CAA8C,EAClE,uBAAwB,CACpB,QAAS,4CACZ,EACD,eAAgB,CAAE,QAAS,4CAA8C,EACzE,iBAAkB,CAAE,QAAS,4CAA8C,EAC3E,oBAAqB,CACjB,QAAS,4CACZ,CACL,ECXaC,GAAa,CACtB,MAAqB/G,GAAY,CAC7B,OAAOhT,EAAM,OAeT,MAAO,CACH,cAfiBE,EAAAF,EAAK,eAAL,YAAAE,EAAmB,IAAKiP,GAAgB,CACzD,GAAI,OAAOA,GAAgB,SACvB,OAAOA,EACX,MAAMiD,EAAYG,GAAkBpD,CAAW,EAC/C,OAAIiD,EAAU,UAAY,SACtBA,EAAU,WAAajD,EAAY,WACnCiD,EAAU,KAAOjD,EAAY,KACvB3M,EAAY2M,EAAY,IAAI,EAC5B,OACNiD,EAAU,WAAajD,EAAY,WACnCiD,EAAU,KAAO,WAEdA,CACvB,GAGgB,UAAWpS,EAAK,SACnB,CACJ,CACT,CAAK,EACD,YAA2B0S,GAAkB,CACzC,OAAO1S,EAAM,CACT,MAAMmP,EAAc,CAAE,EACtB,OAAInP,EAAK,OAAS,SACdmP,EAAY,WAAanP,EAAK,WAC9BmP,EAAY,KAAOnP,EAAK,KAAOwC,EAAYxC,EAAK,IAAI,EAAI,OACxDmP,EAAY,WAAanP,EAAK,WAC9BmP,EAAY,KAAO,WAEhBA,CACV,CACT,CAAK,EACD,mBAAkC8I,GAAyB,CACvD,OAAOjY,EAAM,CACT,MAAO,CACH,WAAYA,EAAK,WAAawC,EAAYxC,EAAK,UAAU,EAAI,KAC7D,UAAWA,EAAK,UAAYwC,EAAYxC,EAAK,SAAS,EAAI,KAC1D,MAAOA,EAAK,MAAQwC,EAAYxC,EAAK,KAAK,EAAI,KAC9C,YAAaA,EAAK,YAAc,OAAOA,EAAK,WAAW,EAAI,IAC9D,CACJ,CACT,CAAK,CACL,EC3CO,SAAS6Y,GAAqB1J,EAAa2J,EAAW,CACzD,OAAIkB,GAAU7K,CAAW,EACd8K,GAA4B9K,CAAW,EAC3C+K,GAAsB/K,EAAa2J,CAAS,CACvD,CACO,MAAMqB,GAAc,CACvB,YAAatB,EACjB,EACA,SAASoB,GAA4B9K,EAAa,CAC9CiL,GAAyBjL,CAAW,EACpC,KAAM,CAAE,WAAAkL,EAAY,KAAAjY,EAAM,KAAAkY,EAAM,IAAA5K,EAAK,WAAA6K,EAAY,KAAAC,EAAM,GAAAtP,EAAI,MAAA5L,CAAK,EAAK6P,EAC/DqK,EAAwB,CAC1Ba,EACAC,EACApP,GAAM,KACNsP,EAAO1X,EAAM0X,CAAI,EAAI,KACrBlb,EAAQwD,EAAMxD,CAAK,EAAI,KACvBoQ,EAAM5M,EAAM4M,CAAG,EAAI,KACnB6K,EAAa,MAAQ,KACrBnY,GAAQ,IACX,EACD,OAAOuK,EAAU,CACb,OACA4D,EAAMiJ,CAAqB,CACnC,CAAK,CACL,CACA,SAASQ,GAAU7K,EAAa,CAG5B,OAFIA,EAAY,OAAS,WAErB,OAAOA,EAAY,WAAe,GAG1C,CACO,SAASiL,GAAyBjL,EAAa,CAClD,KAAM,CAAE,KAAAmL,EAAM,GAAApP,CAAE,EAAKiE,EACrB,GAAImL,GAAQ,CAAClO,EAAUkO,CAAI,EACvB,MAAM,IAAI/O,EAAoB,CAAE,QAAS+O,CAAI,CAAE,EACnD,GAAIpP,GAAM,CAACkB,EAAUlB,CAAE,EACnB,MAAM,IAAIK,EAAoB,CAAE,QAASL,CAAE,CAAE,CACrD,CC1CO,MAAMuP,EAAc,CACvB,UAAW,IACX,UAAAX,GACA,WAAAC,GACA,YAAAI,EACJ,ECPMO,GAAW,MACJC,GAAyBzC,EAAY,CAC9C,GAAI,MACJ,KAAM,YACN,eAAgB,CACZ,KAAM,UACN,OAAQ,MACR,SAAU,EACb,EACD,QAAS,CACL,QAAS,CACL,KAAM,CAAC,+BAA+B,EACtC,UAAW,CAAC,2BAA2B,CAC1C,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,UACN,IAAK,qBACL,OAAQ,4BACX,CACJ,EACD,UAAW,CACP,WAAY,CACR,QAAS,6CACT,aAAc,KACjB,CACJ,EACL,SAAIwC,EACJ,CAAC,EC7BYE,GAAyB1C,EAAY,CAC9C,GAAI,MACJ,KAAM,eACN,eAAgB,CAAE,KAAM,QAAS,OAAQ,MAAO,SAAU,EAAI,EAC9D,UAAW,IACX,QAAS,CACL,QAAS,CACL,KAAM,CAAC,8BAA8B,CACxC,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,WACN,IAAK,sBACL,OAAQ,6BACX,CACJ,EACD,UAAW,CACP,WAAY,CACR,QAAS,6CACT,aAAc,OACjB,CACJ,CACL,CAAC,ECtBKwC,EAAW,EACJG,GAAqB3C,EAAY,CAC1C,GAAGuC,EACH,GAAI,KACJ,KAAM,OACN,eAAgB,CAAE,KAAM,QAAS,OAAQ,MAAO,SAAU,EAAI,EAC9D,QAAS,CACL,QAAS,CACL,KAAM,CAAC,0BAA0B,CACpC,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,WACN,IAAK,uBACL,OAAQ,8BACX,CACJ,EACD,UAAW,CACP,GAAGA,EAAY,UACf,mBAAoB,CAChB,CAACC,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,eAAgB,CACZ,CAACA,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,WAAY,CACR,QAAS,6CACT,aAAc,IACjB,EACD,OAAQ,CACJ,CAACA,CAAQ,EAAG,CACR,QAAS,6CACT,aAAc,QACjB,CACJ,EACD,iBAAkB,CACd,CAACA,CAAQ,EAAG,CACR,QAAS,6CACT,aAAc,QACjB,CACJ,CACJ,EACL,SAAIA,CACJ,CAAC,EChDKA,EAAW,SACJI,GAA4B5C,EAAY,CACjD,GAAGuC,EACH,GAAI,MACJ,QAAS,eACT,KAAM,eACN,eAAgB,CAAE,KAAM,gBAAiB,OAAQ,MAAO,SAAU,EAAI,EACtE,QAAS,CACL,QAAS,CACL,KAAM,CAAC,0BAA0B,CACpC,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,WACN,IAAK,+BACL,OAAQ,sCACX,CACJ,EACD,UAAW,CACP,GAAGA,EAAY,UACf,mBAAoB,CAChB,CAACC,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,eAAgB,CACZ,CAACA,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,OAAQ,CACJ,CAACA,CAAQ,EAAG,CACR,QAAS,6CACT,aAAc,OACjB,CACJ,EACD,iBAAkB,CACd,CAACA,CAAQ,EAAG,CACR,QAAS,6CACT,aAAc,OACjB,CACJ,EACD,WAAY,CACR,QAAS,6CACT,aAAc,OACjB,CACJ,EACD,QAAS,GACb,SAAIA,CACJ,CAAC,ECnDYK,GAA0B7C,EAAY,CAC/C,GAAI,MACJ,KAAM,YACN,eAAgB,CACZ,SAAU,GACV,KAAM,aACN,OAAQ,MACX,EACD,UAAW,CACP,WAAY,CACR,QAAS,6CACT,aAAc,CACjB,EACD,YAAa,CACT,QAAS,6CACT,aAAc,MACjB,EACD,qBAAsB,CAClB,QAAS,6CACT,aAAc,MACjB,CACJ,EACD,QAAS,CACL,QAAS,CAAE,KAAM,CAAC,2BAA2B,CAAG,CACnD,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,WACN,IAAK,sBACR,CACJ,EACD,QAAS,CAAC,OAAO,EACjB,QAAS,EACb,CAAC,ECjCY8C,GAAoB9C,EAAY,CACzC,GAAI,GACJ,KAAM,kBACN,eAAgB,CACZ,SAAU,GACV,KAAM,MACN,OAAQ,KACX,EACD,QAAS,CACL,QAAS,CAAE,KAAM,CAAC,6BAA6B,CAAG,CACrD,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,UACN,IAAK,sBACL,OAAQ,6BACX,CACJ,EACD,UAAW,CACP,WAAY,CACR,QAAS,6CACT,aAAc,QACjB,CACJ,CACL,CAAC,ECxBY+C,GAAwB/C,EAAY,CAC7C,GAAI,KACJ,KAAM,UACN,eAAgB,CAAE,KAAM,gBAAiB,OAAQ,MAAO,SAAU,EAAI,EACtE,QAAS,CACL,QAAS,CACL,KAAM,CAAC,6CAA6C,CACvD,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,YACN,IAAK,+BACL,OAAQ,sCACX,CACJ,EACD,UAAW,CACP,WAAY,CACR,QAAS,6CACT,aAAc,EACjB,EACD,YAAa,CACT,QAAS,6CACT,aAAc,MACjB,EACD,qBAAsB,CAClB,QAAS,6CACT,aAAc,MACjB,CACJ,EACD,QAAS,EACb,CAAC,EC/BYgD,GAAsBhD,EAAY,CAC3C,GAAI,OACJ,KAAM,QACN,eAAgB,CAAE,KAAM,cAAe,OAAQ,MAAO,SAAU,EAAI,EACpE,QAAS,CACL,QAAS,CACL,KAAM,CAAC,kCAAkC,CAC5C,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,YACN,IAAK,4BACR,CACJ,EACD,UAAW,CACP,WAAY,CACR,QAAS,6CACT,aAAc,IACjB,CACJ,EACD,QAAS,EACb,CAAC,ECtBYiD,GAAwBjD,EAAY,CAC7C,GAAI,EACJ,KAAM,WACN,eAAgB,CAAE,KAAM,QAAS,OAAQ,MAAO,SAAU,EAAI,EAC9D,QAAS,CACL,QAAS,CACL,KAAM,CAAC,uBAAuB,CACjC,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,YACN,IAAK,uBACL,OAAQ,8BACX,CACJ,EACD,UAAW,CACP,YAAa,CACT,QAAS,4CACZ,EACD,qBAAsB,CAClB,QAAS,6CACT,aAAc,QACjB,EACD,WAAY,CACR,QAAS,6CACT,aAAc,QACjB,CACJ,CACL,CAAC,EC5BKwC,EAAW,SACJU,GAAgClD,EAAY,CACrD,GAAGuC,EACH,GAAI,SACJ,KAAM,aACN,eAAgB,CAAE,KAAM,gBAAiB,OAAQ,MAAO,SAAU,EAAI,EACtE,QAAS,CACL,QAAS,CACL,KAAM,CAAC,6BAA6B,CACvC,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,aACN,IAAK,0CACL,OAAQ,6CACX,CACJ,EACD,UAAW,CACP,GAAGA,EAAY,UACf,mBAAoB,CAChB,CAACC,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,eAAgB,CACZ,CAACA,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,WAAY,CACR,QAAS,6CACT,aAAc,OACjB,EACD,OAAQ,CACJ,CAACA,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,iBAAkB,CACd,CAACA,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,CACJ,EACD,QAAS,GACb,SAAIA,CACJ,CAAC,EChDYW,GAAwBnD,EAAY,CAC7C,GAAI,SACJ,KAAM,UACN,eAAgB,CAAE,KAAM,gBAAiB,OAAQ,MAAO,SAAU,EAAI,EACtE,QAAS,CACL,QAAS,CACL,KAAM,CAAC,0BAA0B,CACpC,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,YACN,IAAK,+BACL,OAAQ,sCACX,CACJ,EACD,UAAW,CACP,WAAY,CACR,QAAS,6CACT,aAAc,MACjB,EACD,YAAa,CAAE,QAAS,4CAA8C,EACtE,qBAAsB,CAClB,QAAS,6CACT,aAAc,OACjB,CACJ,EACD,QAAS,EACb,CAAC,EC3BKwC,EAAW,EACJY,GAAwBpD,EAAY,CAC7C,GAAGuC,EACH,GAAI,KACJ,KAAM,kBACN,eAAgB,CAAE,KAAM,QAAS,OAAQ,MAAO,SAAU,EAAI,EAC9D,QAAS,CACL,QAAS,CACL,KAAM,CAAC,yBAAyB,CACnC,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,aACN,IAAK,iCACL,OAAQ,oCACX,CACJ,EACD,UAAW,CACP,GAAGA,EAAY,UACf,mBAAoB,CAChB,CAACC,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,eAAgB,CACZ,CAACA,CAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,OAAQ,CACJ,CAACA,CAAQ,EAAG,CACR,QAAS,6CACT,aAAc,OACjB,CACJ,EACD,iBAAkB,CACd,CAACA,CAAQ,EAAG,CACR,QAAS,6CACT,aAAc,OACjB,CACJ,EACD,WAAY,CACR,QAAS,6CACT,aAAc,CACjB,CACJ,EACL,SAAIA,CACJ,CAAC,EChDKA,GAAW,EACJa,GAAwBrD,EAAY,CAC7C,GAAGuC,EACH,GAAI,MACJ,KAAM,kBACN,eAAgB,CACZ,SAAU,GACV,KAAM,QACN,OAAQ,KACX,EACD,QAAS,CACL,QAAS,CACL,KAAM,CACF,8BACA,uCACA,sCACA,kCACH,CACJ,CACJ,EACD,eAAgB,CACZ,QAAS,CACL,KAAM,mBACN,IAAK,8BACR,CACJ,EACD,UAAW,CACP,WAAY,CACR,QAAS,4CACZ,EACD,eAAgB,CACZ,CAACC,EAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,OAAQ,CACJ,CAACA,EAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,EACD,iBAAkB,CACd,CAACA,EAAQ,EAAG,CACR,QAAS,4CACZ,CACJ,CACJ,EACD,QAAS,EACb,CAAC,EChCW,IAAAc,GAAAA,IACVA,EAAAA,EAAA,QAAUL,GAAQ,EAAlB,EAAA,UACAK,EAAAA,EAAA,QAAUP,GAAQ,EAAlB,EAAA,UACAO,EAAAA,EAAA,KAAOX,GAAK,EAAZ,EAAA,OACAW,EAAAA,EAAA,IAAMR,GAAI,EAAV,EAAA,MACAQ,EAAAA,EAAA,SAAWZ,GAAS,EAApB,EAAA,WACAY,EAAAA,EAAA,SAAWb,GAAS,EAApB,EAAA,WACAa,EAAAA,EAAA,QAAUF,GAAQ,EAAlB,EAAA,UACAE,EAAAA,EAAA,QAAUH,GAAQ,EAAlB,EAAA,UACAG,EAAAA,EAAA,gBAAkBJ,GAAgB,EAAlC,EAAA,kBACAI,EAAAA,EAAA,YAAcV,GAAY,EAA1B,EAAA,cACAU,EAAAA,EAAA,QAAUD,GAAQ,EAAlB,EAAA,UACAC,EAAAA,EAAA,UAAYT,GAAU,EAAtB,EAAA,YACAS,EAAAA,EAAA,MAAQN,GAAM,EAAd,EAAA,QAbUM,IAAAA,GAAA,CAAA,CAAA,EAgBL,MAAMC,GAA6C,CACxD,CAACD,EAAM,OAAO,EAAGL,GACjB,CAACK,EAAM,OAAO,EAAGP,GACjB,CAACO,EAAM,IAAI,EAAGX,GACd,CAACW,EAAM,GAAG,EAAGR,GACb,CAACQ,EAAM,QAAQ,EAAGZ,GAClB,CAACY,EAAM,QAAQ,EAAGb,GAClB,CAACa,EAAM,OAAO,EAAGF,GACjB,CAACE,EAAM,OAAO,EAAGH,GACjB,CAACG,EAAM,eAAe,EAAGJ,GACzB,CAACI,EAAM,WAAW,EAAGV,GACrB,CAACU,EAAM,OAAO,EAAGD,GACjB,CAACC,EAAM,SAAS,EAAGT,GACnB,CAACS,EAAM,KAAK,EAAGN,EACjB","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73]}