@sentio/sdk-bundle 4.0.0-rc.7 → 4.0.0-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/aptos/builtin/0x1.js +3 -3
- package/lib/aptos/builtin/0x3.js +4 -4
- package/lib/aptos/builtin/0x4.js +4 -4
- package/lib/aptos/builtin/index.js +5 -5
- package/lib/aptos/ext/index.js +3 -3
- package/lib/aptos/index.js +3 -3
- package/lib/{chunk-ACDVDKUV.js → chunk-6H5ZUEVO.js} +6402 -5387
- package/lib/chunk-6H5ZUEVO.js.map +1 -0
- package/lib/{chunk-SQMYHP2A.js → chunk-AEYREOPC.js} +2 -2
- package/lib/{chunk-VHE74ERB.js → chunk-BGM7RD5N.js} +4 -4
- package/lib/{chunk-WZUPXZRK.js → chunk-EFPGZZGF.js} +2 -2
- package/lib/{chunk-VIGRVPDY.js → chunk-G2XPMHZE.js} +5 -5
- package/lib/chunk-LA6IXNNN.js +17956 -0
- package/lib/chunk-LA6IXNNN.js.map +1 -0
- package/lib/{chunk-3S3QHLEF.js → chunk-LDX3YL4P.js} +3 -3
- package/lib/{chunk-YPX6BLLX.js → chunk-MI23YEUM.js} +6 -6
- package/lib/{chunk-YPX6BLLX.js.map → chunk-MI23YEUM.js.map} +1 -1
- package/lib/{chunk-4KTODWEJ.js → chunk-MSHOKDID.js} +3 -3
- package/lib/{chunk-NHCW2Z4Y.js → chunk-NPTW5KSQ.js} +5 -5
- package/lib/chunk-NPTW5KSQ.js.map +1 -0
- package/lib/{chunk-22TC4AIT.js → chunk-O55RRIKA.js} +3 -3
- package/lib/{chunk-UEW7X2FP.js → chunk-OHMJ7P7Q.js} +5 -5
- package/lib/{chunk-BE4CNYTF.js → chunk-TR6ITJFV.js} +12 -7
- package/lib/chunk-TR6ITJFV.js.map +1 -0
- package/lib/{chunk-OEID5YMZ.js → chunk-YGT2IXOM.js} +4 -4
- package/lib/{chunk-H7UT4BTD.js → chunk-YS6N5ANJ.js} +6 -6
- package/lib/{chunk-H7UT4BTD.js.map → chunk-YS6N5ANJ.js.map} +1 -1
- package/lib/{chunk-DKYZ4NS3.js → chunk-YTEMEL4S.js} +3 -3
- package/lib/{chunk-M3QTHFVH.js → chunk-ZMO7GHG3.js} +3 -3
- package/lib/eth/abi-decoder/decode-worker.js +1 -1
- package/lib/eth/builtin/eacaggregatorproxy.js +2 -2
- package/lib/eth/builtin/erc1155.js +3 -3
- package/lib/eth/builtin/erc20.js +2 -2
- package/lib/eth/builtin/erc721.js +2 -2
- package/lib/eth/builtin/index.js +4 -4
- package/lib/eth/builtin/weth9.js +3 -3
- package/lib/eth/index.js +2 -2
- package/lib/fuel/index.js +1 -1
- package/lib/iota/builtin/0x1.js +6 -6
- package/lib/iota/builtin/0x2.js +7 -7
- package/lib/iota/builtin/0x3.js +8 -8
- package/lib/iota/builtin/index.js +8 -8
- package/lib/iota/ext/index.js +3 -3
- package/lib/iota/index.js +5 -5
- package/lib/sui/builtin/0x1.js +6 -6
- package/lib/sui/builtin/0x2.js +7 -7
- package/lib/sui/builtin/0x3.js +8 -8
- package/lib/sui/builtin/index.js +8 -8
- package/lib/sui/ext/index.js +3 -3
- package/lib/sui/index.js +5 -5
- package/lib/testing/index.js +9 -9
- package/lib/testing/index.js.map +1 -1
- package/lib/utils/index.js +2 -2
- package/package.json +2 -2
- package/lib/chunk-ACDVDKUV.js.map +0 -1
- package/lib/chunk-BE4CNYTF.js.map +0 -1
- package/lib/chunk-NHCW2Z4Y.js.map +0 -1
- package/lib/chunk-ZFAUPMEN.js +0 -8363
- package/lib/chunk-ZFAUPMEN.js.map +0 -1
- /package/lib/{chunk-SQMYHP2A.js.map → chunk-AEYREOPC.js.map} +0 -0
- /package/lib/{chunk-VHE74ERB.js.map → chunk-BGM7RD5N.js.map} +0 -0
- /package/lib/{chunk-WZUPXZRK.js.map → chunk-EFPGZZGF.js.map} +0 -0
- /package/lib/{chunk-VIGRVPDY.js.map → chunk-G2XPMHZE.js.map} +0 -0
- /package/lib/{chunk-3S3QHLEF.js.map → chunk-LDX3YL4P.js.map} +0 -0
- /package/lib/{chunk-4KTODWEJ.js.map → chunk-MSHOKDID.js.map} +0 -0
- /package/lib/{chunk-22TC4AIT.js.map → chunk-O55RRIKA.js.map} +0 -0
- /package/lib/{chunk-UEW7X2FP.js.map → chunk-OHMJ7P7Q.js.map} +0 -0
- /package/lib/{chunk-OEID5YMZ.js.map → chunk-YGT2IXOM.js.map} +0 -0
- /package/lib/{chunk-DKYZ4NS3.js.map → chunk-YTEMEL4S.js.map} +0 -0
- /package/lib/{chunk-M3QTHFVH.js.map → chunk-ZMO7GHG3.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sui/network.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/utils/suins.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/utils/move-registry.ts","../../../node_modules/.pnpm/@mysten+bcs@2.0.5/node_modules/@mysten/bcs/src/uleb.ts","../../../node_modules/.pnpm/@mysten+bcs@2.0.5/node_modules/@mysten/bcs/src/reader.ts","../../../node_modules/.pnpm/@mysten+utils@0.3.3/node_modules/@mysten/utils/src/b58.ts","../../../node_modules/.pnpm/@mysten+utils@0.3.3/node_modules/@mysten/utils/src/b64.ts","../../../node_modules/.pnpm/@mysten+utils@0.3.3/node_modules/@mysten/utils/src/hex.ts","../../../node_modules/.pnpm/@mysten+utils@0.3.3/node_modules/@mysten/utils/src/chunk.ts","../../../node_modules/.pnpm/@mysten+utils@0.3.3/node_modules/@mysten/utils/src/dataloader.ts","../../../node_modules/.pnpm/@mysten+bcs@2.0.5/node_modules/@mysten/bcs/src/utils.ts","../../../node_modules/.pnpm/@mysten+bcs@2.0.5/node_modules/@mysten/bcs/src/writer.ts","../../../node_modules/.pnpm/@mysten+bcs@2.0.5/node_modules/@mysten/bcs/src/bcs-type.ts","../../../node_modules/.pnpm/@mysten+bcs@2.0.5/node_modules/@mysten/bcs/src/bcs.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/utils/sui-types.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/bcs/type-tag-serializer.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/bcs/bcs.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/bcs/effects.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/bcs/pure.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/bcs/index.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/client/cache.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/client/client.ts","../../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/src/_blake.ts","../../../node_modules/.pnpm/@noble+hashes@2.0.1/node_modules/@noble/hashes/src/blake2.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/utils/dynamic-fields.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/version.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/client/mvr.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/client/core.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/transactions/data/internal.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/transactions/data/v1.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/transactions/hash.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/transactions/utils.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/transactions/TransactionData.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/client/utils.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/client/errors.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/utils/constants.ts","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/json-typings.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/base64.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/binary-format-contract.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/goog-varint.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/pb-long.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/binary-reader.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/assert.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/binary-writer.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/json-format-contract.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/message-type-contract.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/lower-camel-case.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-info.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/oneof.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-type-check.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-long-convert.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-json-reader.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-json-writer.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-scalar-default.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-binary-reader.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-binary-writer.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-create.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-merge-partial.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/reflection-equals.js","../../../node_modules/.pnpm/@protobuf-ts+runtime@2.11.1/node_modules/@protobuf-ts/runtime/build/es2015/message-type.js","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/google/protobuf/struct.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/move_package.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/owner.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/argument.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/input.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/google/protobuf/duration.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/jwk.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/bcs.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/object.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/google/protobuf/timestamp.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/object_reference.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/transaction.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/client/transaction-resolver.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/execution_status.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/gas_cost_summary.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/effects.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/signature_scheme.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/signature.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/balance_change.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/event.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/executed_transaction.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/google/protobuf/field_mask.ts","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/reflection-info.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/service-type.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-error.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-options.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/deferred.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-output-stream.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/unary-call.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/server-streaming-call.js","../../../node_modules/.pnpm/@protobuf-ts+runtime-rpc@2.11.1/node_modules/@protobuf-ts/runtime-rpc/build/es2015/rpc-interceptor.js","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/transaction_execution_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/core.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/transaction_execution_service.client.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/protocol_config.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/system_state.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/epoch.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/checkpoint_contents.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/checkpoint_summary.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/checkpoint.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/google/protobuf/any.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/google/rpc/status.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/ledger_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/ledger_service.client.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/move_package_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/move_package_service.client.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/signature_verification_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/signature_verification_service.client.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/state_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/state_service.client.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/subscription_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/subscription_service.client.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/name_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/rpc/v2/name_service.client.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/forking/v1alpha/forking_service.ts","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/proto/sui/forking/v1alpha/forking_service.client.ts","../../../node_modules/.pnpm/@protobuf-ts+grpcweb-transport@2.11.1/node_modules/@protobuf-ts/grpcweb-transport/build/es2015/goog-grpc-status-code.js","../../../node_modules/.pnpm/@protobuf-ts+grpcweb-transport@2.11.1/node_modules/@protobuf-ts/grpcweb-transport/build/es2015/grpc-web-format.js","../../../node_modules/.pnpm/@protobuf-ts+grpcweb-transport@2.11.1/node_modules/@protobuf-ts/grpcweb-transport/build/es2015/grpc-web-transport.js","../../../node_modules/.pnpm/@mysten+sui@2.17.0_typescript@6.0.3/node_modules/@mysten/sui/src/grpc/client.ts","../src/sui/ext/coin.ts"],"sourcesContent":["import { SuiChainId } from '@sentio/chain'\nimport { Endpoints } from '@sentio/runtime'\nimport { SuiGrpcClient } from '@mysten/sui/grpc'\n\nexport type SuiNetwork = SuiChainId\nexport const SuiNetwork = <const>{\n MAIN_NET: SuiChainId.SUI_MAINNET,\n TEST_NET: SuiChainId.SUI_TESTNET\n}\n\nfunction inferNetworkFromUrl(url: string): string {\n if (url.includes('mainnet')) return 'mainnet'\n if (url.includes('testnet')) return 'testnet'\n if (url.includes('devnet')) return 'devnet'\n if (url.includes('localnet') || url.includes('127.0.0.1') || url.includes('localhost')) return 'localnet'\n return 'custom'\n}\n\nfunction endpointFor(network: SuiNetwork): string {\n return Endpoints.INSTANCE.chainServer.get(network) ?? getRpcEndpoint(network)\n}\n\n// gRPC client used for the MoveCoder, generated view functions, and exposed to\n// processor handlers via `ctx.client`. @typemove/sui v2 is gRPC-only.\nexport function getClient(network: SuiNetwork): SuiGrpcClient {\n const chainServer = endpointFor(network)\n return new SuiGrpcClient({ network: inferNetworkFromUrl(chainServer) as any, baseUrl: chainServer })\n}\n\nexport function getRpcEndpoint(network: SuiNetwork): string {\n switch (network) {\n case SuiNetwork.TEST_NET:\n return 'https://fullnode.testnet.sui.io:443'\n }\n return 'https://fullnode.mainnet.sui.io:443'\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nconst SUI_NS_NAME_REGEX =\n\t/^(?!.*(^(?!@)|[-.@])($|[-.@]))(?:[a-z0-9-]{0,63}(?:\\.[a-z0-9-]{0,63})*)?@[a-z0-9-]{0,63}$/i;\nconst SUI_NS_DOMAIN_REGEX = /^(?!.*(^|[-.])($|[-.]))(?:[a-z0-9-]{0,63}\\.)+sui$/i;\nconst MAX_SUI_NS_NAME_LENGTH = 235;\n\nexport function isValidSuiNSName(name: string): boolean {\n\tif (name.length > MAX_SUI_NS_NAME_LENGTH) {\n\t\treturn false;\n\t}\n\n\tif (name.includes('@')) {\n\t\treturn SUI_NS_NAME_REGEX.test(name);\n\t}\n\n\treturn SUI_NS_DOMAIN_REGEX.test(name);\n}\n\nexport function normalizeSuiNSName(name: string, format: 'at' | 'dot' = 'at'): string {\n\tconst lowerCase = name.toLowerCase();\n\tlet parts;\n\n\tif (lowerCase.includes('@')) {\n\t\tif (!SUI_NS_NAME_REGEX.test(lowerCase)) {\n\t\t\tthrow new Error(`Invalid SuiNS name ${name}`);\n\t\t}\n\t\tconst [labels, domain] = lowerCase.split('@');\n\t\tparts = [...(labels ? labels.split('.') : []), domain];\n\t} else {\n\t\tif (!SUI_NS_DOMAIN_REGEX.test(lowerCase)) {\n\t\t\tthrow new Error(`Invalid SuiNS name ${name}`);\n\t\t}\n\t\tparts = lowerCase.split('.').slice(0, -1);\n\t}\n\n\tif (format === 'dot') {\n\t\treturn `${parts.join('.')}.sui`;\n\t}\n\n\treturn `${parts.slice(0, -1).join('.')}@${parts[parts.length - 1]}`;\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isValidSuiNSName } from './suins.js';\nimport { isValidStructTag } from './sui-types.js';\n\n/** The pattern to find an optionally versioned name */\nconst NAME_PATTERN = /^([a-z0-9]+(?:-[a-z0-9]+)*)$/;\n/** The pattern for a valid version number */\nconst VERSION_REGEX = /^\\d+$/;\n/** The maximum size for an app */\nconst MAX_APP_SIZE = 64;\n/** The separator for the name */\nconst NAME_SEPARATOR = '/';\n\nexport const isValidNamedPackage = (name: string): boolean => {\n\tconst parts = name.split(NAME_SEPARATOR);\n\t// The name has to have 2 parts (without-version), or 3 parts (with version).\n\tif (parts.length < 2 || parts.length > 3) return false;\n\n\tconst [org, app, version] = parts; // split by {org} {app} {optional version}\n\n\t// If the version exists, it must be a number.\n\tif (version !== undefined && !VERSION_REGEX.test(version)) return false;\n\t// Check if the org is a valid SuiNS name.\n\tif (!isValidSuiNSName(org)) return false;\n\n\t// Check if the app is a valid name.\n\treturn NAME_PATTERN.test(app) && app.length < MAX_APP_SIZE;\n};\n\n/**\n * Checks if a type contains valid named packages and is a valid Move struct tag.\n */\nexport const isValidNamedType = (type: string): boolean => {\n\t// split our type by all possible type delimeters.\n\tconst splitType = type.split(/::|<|>|,/);\n\tfor (const t of splitType) {\n\t\tif (t.includes(NAME_SEPARATOR) && !isValidNamedPackage(t)) return false;\n\t}\n\treturn isValidStructTag(type);\n};\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// Helper utility: write number as an ULEB array.\n// Original code is taken from: https://www.npmjs.com/package/uleb128 (no longer exists)\nexport function ulebEncode(num: number | bigint): number[] {\n\tlet bigNum = BigInt(num);\n\tconst arr: number[] = [];\n\tlet len = 0;\n\n\tif (bigNum === 0n) {\n\t\treturn [0];\n\t}\n\n\twhile (bigNum > 0) {\n\t\tarr[len] = Number(bigNum & 0x7fn);\n\t\tbigNum >>= 7n;\n\t\tif (bigNum > 0n) {\n\t\t\tarr[len] |= 0x80;\n\t\t}\n\t\tlen += 1;\n\t}\n\n\treturn arr;\n}\n\n// Helper utility: decode ULEB as an array of numbers.\n// Original code is taken from: https://www.npmjs.com/package/uleb128 (no longer exists)\nexport function ulebDecode(arr: number[] | Uint8Array): {\n\tvalue: number;\n\tlength: number;\n} {\n\tlet total = 0n;\n\tlet shift = 0n;\n\tlet len = 0;\n\n\twhile (true) {\n\t\tif (len >= arr.length) {\n\t\t\tthrow new Error('ULEB decode error: buffer overflow');\n\t\t}\n\n\t\tconst byte = arr[len];\n\t\tlen += 1;\n\t\ttotal += BigInt(byte & 0x7f) << shift;\n\t\tif ((byte & 0x80) === 0) {\n\t\t\tbreak;\n\t\t}\n\t\tshift += 7n;\n\t}\n\n\t// TODO: return bigint in next major version\n\tif (total > BigInt(Number.MAX_SAFE_INTEGER)) {\n\t\tthrow new Error('ULEB decode error: value exceeds MAX_SAFE_INTEGER');\n\t}\n\n\treturn {\n\t\tvalue: Number(total),\n\t\tlength: len,\n\t};\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ulebDecode } from './uleb.js';\n\n/**\n * Class used for reading BCS data chunk by chunk. Meant to be used\n * by some wrapper, which will make sure that data is valid and is\n * matching the desired format.\n *\n * @example\n * // data for this example is:\n * // { a: u8, b: u32, c: bool, d: u64 }\n *\n * let reader = new BcsReader(\"647f1a060001ffffe7890423c78a050102030405\");\n * let field1 = reader.read8();\n * let field2 = reader.read32();\n * let field3 = reader.read8() === '1'; // bool\n * let field4 = reader.read64();\n * // ....\n *\n * Reading vectors is another deal in bcs. To read a vector, you first need to read\n * its length using {@link readULEB}. Here's an example:\n * @example\n * // data encoded: { field: [1, 2, 3, 4, 5] }\n * let reader = new BcsReader(\"050102030405\");\n * let vec_length = reader.readULEB();\n * let elements = [];\n * for (let i = 0; i < vec_length; i++) {\n * elements.push(reader.read8());\n * }\n * console.log(elements); // [1,2,3,4,5]\n *\n * @param {String} data HEX-encoded data (serialized BCS)\n */\nexport class BcsReader {\n\tprivate dataView: DataView;\n\tprivate bytePosition: number = 0;\n\n\t/**\n\t * @param {Uint8Array} data Data to use as a buffer.\n\t */\n\tconstructor(data: Uint8Array) {\n\t\tthis.dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\t}\n\t/**\n\t * Shift current cursor position by `bytes`.\n\t *\n\t * @param {Number} bytes Number of bytes to\n\t * @returns {this} Self for possible chaining.\n\t */\n\tshift(bytes: number) {\n\t\tthis.bytePosition += bytes;\n\t\treturn this;\n\t}\n\t/**\n\t * Read U8 value from the buffer and shift cursor by 1.\n\t * @returns\n\t */\n\tread8(): number {\n\t\tconst value = this.dataView.getUint8(this.bytePosition);\n\t\tthis.shift(1);\n\t\treturn value;\n\t}\n\t/**\n\t * Read U16 value from the buffer and shift cursor by 2.\n\t * @returns\n\t */\n\tread16(): number {\n\t\tconst value = this.dataView.getUint16(this.bytePosition, true);\n\t\tthis.shift(2);\n\t\treturn value;\n\t}\n\t/**\n\t * Read U32 value from the buffer and shift cursor by 4.\n\t * @returns\n\t */\n\tread32(): number {\n\t\tconst value = this.dataView.getUint32(this.bytePosition, true);\n\t\tthis.shift(4);\n\t\treturn value;\n\t}\n\t/**\n\t * Read U64 value from the buffer and shift cursor by 8.\n\t * @returns\n\t */\n\tread64(): string {\n\t\tconst value1 = this.read32();\n\t\tconst value2 = this.read32();\n\n\t\tconst result = value2.toString(16) + value1.toString(16).padStart(8, '0');\n\n\t\treturn BigInt('0x' + result).toString(10);\n\t}\n\t/**\n\t * Read U128 value from the buffer and shift cursor by 16.\n\t */\n\tread128(): string {\n\t\tconst value1 = BigInt(this.read64());\n\t\tconst value2 = BigInt(this.read64());\n\t\tconst result = value2.toString(16) + value1.toString(16).padStart(16, '0');\n\n\t\treturn BigInt('0x' + result).toString(10);\n\t}\n\t/**\n\t * Read U128 value from the buffer and shift cursor by 32.\n\t * @returns\n\t */\n\tread256(): string {\n\t\tconst value1 = BigInt(this.read128());\n\t\tconst value2 = BigInt(this.read128());\n\t\tconst result = value2.toString(16) + value1.toString(16).padStart(32, '0');\n\n\t\treturn BigInt('0x' + result).toString(10);\n\t}\n\t/**\n\t * Read `num` number of bytes from the buffer and shift cursor by `num`.\n\t * @param num Number of bytes to read.\n\t */\n\treadBytes(num: number): Uint8Array {\n\t\tconst start = this.bytePosition + this.dataView.byteOffset;\n\t\tconst value = new Uint8Array(this.dataView.buffer, start, num);\n\n\t\tthis.shift(num);\n\n\t\treturn value;\n\t}\n\t/**\n\t * Read ULEB value - an integer of varying size. Used for enum indexes and\n\t * vector lengths.\n\t * @returns {Number} The ULEB value.\n\t */\n\treadULEB(): number {\n\t\tconst start = this.bytePosition + this.dataView.byteOffset;\n\t\tconst buffer = new Uint8Array(this.dataView.buffer, start);\n\t\tconst { value, length } = ulebDecode(buffer);\n\n\t\tthis.shift(length);\n\n\t\treturn value;\n\t}\n\t/**\n\t * Read a BCS vector: read a length and then apply function `cb` X times\n\t * where X is the length of the vector, defined as ULEB in BCS bytes.\n\t * @param cb Callback to process elements of vector.\n\t * @returns {Array<Any>} Array of the resulting values, returned by callback.\n\t */\n\treadVec(cb: (reader: BcsReader, i: number, length: number) => any): any[] {\n\t\tconst length = this.readULEB();\n\t\tconst result = [];\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tresult.push(cb(this, i, length));\n\t\t}\n\t\treturn result;\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { base58 } from '@scure/base';\n\nexport const toBase58 = (buffer: Uint8Array) => base58.encode(buffer);\nexport const fromBase58 = (str: string) => base58.decode(str) as Uint8Array<ArrayBuffer>;\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function fromBase64(base64String: string): Uint8Array<ArrayBuffer> {\n\treturn Uint8Array.from(atob(base64String), (char) => char.charCodeAt(0));\n}\n\nconst CHUNK_SIZE = 8192;\nexport function toBase64(bytes: Uint8Array): string {\n\t// Special-case the simple case for speed's sake.\n\tif (bytes.length < CHUNK_SIZE) {\n\t\treturn btoa(String.fromCharCode(...bytes));\n\t}\n\n\tlet output = '';\n\tfor (var i = 0; i < bytes.length; i += CHUNK_SIZE) {\n\t\tconst chunk = bytes.slice(i, i + CHUNK_SIZE);\n\t\toutput += String.fromCharCode(...chunk);\n\t}\n\n\treturn btoa(output);\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function fromHex(hexStr: string): Uint8Array<ArrayBuffer> {\n\tconst normalized = hexStr.startsWith('0x') ? hexStr.slice(2) : hexStr;\n\tconst padded = normalized.length % 2 === 0 ? normalized : `0${normalized}`;\n\tconst intArr = padded.match(/[0-9a-fA-F]{2}/g)?.map((byte) => parseInt(byte, 16)) ?? [];\n\n\tif (intArr.length !== padded.length / 2) {\n\t\tthrow new Error(`Invalid hex string ${hexStr}`);\n\t}\n\n\treturn Uint8Array.from(intArr);\n}\n\nexport function toHex(bytes: Uint8Array): string {\n\treturn bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function chunk<T>(array: readonly T[], size: number): T[][] {\n\treturn Array.from({ length: Math.ceil(array.length / size) }, (_, i) => {\n\t\treturn array.slice(i * size, (i + 1) * size);\n\t});\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * DataLoader - A generic utility for batching and caching data fetches.\n *\n * Vendored from: https://github.com/graphql/dataloader\n * Commit: a10773043d41a56bde4219c155fcf5633e6c9bcb\n * License: MIT\n * Copyright (c) GraphQL Contributors\n */\n\n/**\n * A `DataLoader` creates a public API for loading data from a particular\n * data back-end with unique keys such as the `id` column of a SQL table or\n * document name in a MongoDB database, given a batch loading function.\n *\n * Each `DataLoader` instance contains a unique memoized cache. Use caution when\n * used in long-lived applications or those which serve many users with\n * different access permissions and consider creating a new instance per\n * web request.\n */\nexport class DataLoader<K, V, C = K> {\n\tconstructor(batchLoadFn: DataLoader.BatchLoadFn<K, V>, options?: DataLoader.Options<K, V, C>) {\n\t\tif (typeof batchLoadFn !== 'function') {\n\t\t\tthrow new TypeError(\n\t\t\t\t'DataLoader must be constructed with a function which accepts ' +\n\t\t\t\t\t`Array<key> and returns Promise<Array<value>>, but got: ${batchLoadFn}.`,\n\t\t\t);\n\t\t}\n\t\tthis._batchLoadFn = batchLoadFn;\n\t\tthis._maxBatchSize = getValidMaxBatchSize(options);\n\t\tthis._batchScheduleFn = getValidBatchScheduleFn(options);\n\t\tthis._cacheKeyFn = getValidCacheKeyFn(options);\n\t\tthis._cacheMap = getValidCacheMap(options);\n\t\tthis._batch = null;\n\t\tthis.name = getValidName(options);\n\t}\n\n\t// Private\n\t_batchLoadFn: DataLoader.BatchLoadFn<K, V>;\n\t_maxBatchSize: number;\n\t_batchScheduleFn: (cb: () => void) => void;\n\t_cacheKeyFn: (key: K) => C;\n\t_cacheMap: DataLoader.CacheMap<C, Promise<V>> | null;\n\t_batch: Batch<K, V> | null;\n\n\t/**\n\t * Loads a key, returning a `Promise` for the value represented by that key.\n\t */\n\tload(key: K): Promise<V> {\n\t\tif (key === null || key === undefined) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`The loader.load() function must be called with a value, but got: ${String(key)}.`,\n\t\t\t);\n\t\t}\n\n\t\tconst batch = getCurrentBatch(this);\n\t\tconst cacheMap = this._cacheMap;\n\t\tlet cacheKey: C;\n\n\t\t// If caching and there is a cache-hit, return cached Promise.\n\t\tif (cacheMap) {\n\t\t\tcacheKey = this._cacheKeyFn(key);\n\t\t\tconst cachedPromise = cacheMap.get(cacheKey);\n\t\t\tif (cachedPromise) {\n\t\t\t\tconst cacheHits = batch.cacheHits || (batch.cacheHits = []);\n\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\tcacheHits.push(() => {\n\t\t\t\t\t\tresolve(cachedPromise);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise, produce a new Promise for this key, and enqueue it to be\n\t\t// dispatched along with the current batch.\n\t\tbatch.keys.push(key);\n\t\tconst promise = new Promise<V>((resolve, reject) => {\n\t\t\tbatch.callbacks.push({ resolve, reject });\n\t\t});\n\n\t\t// If caching, cache this promise.\n\t\tif (cacheMap) {\n\t\t\tcacheMap.set(cacheKey!, promise);\n\t\t}\n\n\t\treturn promise;\n\t}\n\n\t/**\n\t * Loads multiple keys, promising an array of values:\n\t *\n\t * var [ a, b ] = await myLoader.loadMany([ 'a', 'b' ]);\n\t *\n\t * This is similar to the more verbose:\n\t *\n\t * var [ a, b ] = await Promise.all([\n\t * myLoader.load('a'),\n\t * myLoader.load('b')\n\t * ]);\n\t *\n\t * However it is different in the case where any load fails. Where\n\t * Promise.all() would reject, loadMany() always resolves, however each result\n\t * is either a value or an Error instance.\n\t *\n\t * var [ a, b, c ] = await myLoader.loadMany([ 'a', 'b', 'badkey' ]);\n\t * // c instanceof Error\n\t *\n\t */\n\tloadMany(keys: ReadonlyArray<K>): Promise<Array<V | Error>> {\n\t\tif (!isArrayLike(keys)) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`The loader.loadMany() function must be called with Array<key>, but got: ${keys}.`,\n\t\t\t);\n\t\t}\n\t\t// Support ArrayLike by using only minimal property access\n\t\tconst loadPromises = [];\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tloadPromises.push(this.load(keys[i]).catch((error) => error));\n\t\t}\n\t\treturn Promise.all(loadPromises);\n\t}\n\n\t/**\n\t * Clears the value at `key` from the cache, if it exists. Returns itself for\n\t * method chaining.\n\t */\n\tclear(key: K): this {\n\t\tconst cacheMap = this._cacheMap;\n\t\tif (cacheMap) {\n\t\t\tconst cacheKey = this._cacheKeyFn(key);\n\t\t\tcacheMap.delete(cacheKey);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Clears the entire cache. To be used when some event results in unknown\n\t * invalidations across this particular `DataLoader`. Returns itself for\n\t * method chaining.\n\t */\n\tclearAll(): this {\n\t\tconst cacheMap = this._cacheMap;\n\t\tif (cacheMap) {\n\t\t\tcacheMap.clear();\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds the provided key and value to the cache. If the key already\n\t * exists, no change is made. Returns itself for method chaining.\n\t *\n\t * To prime the cache with an error at a key, provide an Error instance.\n\t */\n\tprime(key: K, value: V | Promise<V> | Error): this {\n\t\tconst cacheMap = this._cacheMap;\n\t\tif (cacheMap) {\n\t\t\tconst cacheKey = this._cacheKeyFn(key);\n\n\t\t\t// Only add the key if it does not already exist.\n\t\t\tif (cacheMap.get(cacheKey) === undefined) {\n\t\t\t\t// Cache a rejected promise if the value is an Error, in order to match\n\t\t\t\t// the behavior of load(key).\n\t\t\t\tlet promise;\n\t\t\t\tif (value instanceof Error) {\n\t\t\t\t\tpromise = Promise.reject(value);\n\t\t\t\t\t// Since this is a case where an Error is intentionally being primed\n\t\t\t\t\t// for a given key, we want to disable unhandled promise rejection.\n\t\t\t\t\tpromise.catch(() => {});\n\t\t\t\t} else {\n\t\t\t\t\tpromise = Promise.resolve(value);\n\t\t\t\t}\n\t\t\t\tcacheMap.set(cacheKey, promise);\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * The name given to this `DataLoader` instance. Useful for APM tools.\n\t *\n\t * Is `null` if not set in the constructor.\n\t */\n\tname: string | null;\n}\n\n// Private: Enqueue a Job to be executed after all \"PromiseJobs\" Jobs.\n//\n// ES6 JavaScript uses the concepts Job and JobQueue to schedule work to occur\n// after the current execution context has completed:\n// http://www.ecma-international.org/ecma-262/6.0/#sec-jobs-and-job-queues\n//\n// Node.js uses the `process.nextTick` mechanism to implement the concept of a\n// Job, maintaining a global FIFO JobQueue for all Jobs, which is flushed after\n// the current call stack ends.\n//\n// When calling `then` on a Promise, it enqueues a Job on a specific\n// \"PromiseJobs\" JobQueue which is flushed in Node as a single Job on the\n// global JobQueue.\n//\n// DataLoader batches all loads which occur in a single frame of execution, but\n// should include in the batch all loads which occur during the flushing of the\n// \"PromiseJobs\" JobQueue after that same execution frame.\n//\n// In order to avoid the DataLoader dispatch Job occuring before \"PromiseJobs\",\n// A Promise Job is created with the sole purpose of enqueuing a global Job,\n// ensuring that it always occurs after \"PromiseJobs\" ends.\n//\n// Node.js's job queue is unique. Browsers do not have an equivalent mechanism\n// for enqueuing a job to be performed after promise microtasks and before the\n// next macrotask. For browser environments, a macrotask is used (via\n// setImmediate or setTimeout) at a potential performance penalty.\nconst enqueuePostPromiseJob: (fn: () => void) => void =\n\t// @ts-ignore\n\ttypeof process === 'object' && typeof process.nextTick === 'function'\n\t\t? function (fn) {\n\t\t\t\tif (!resolvedPromise) {\n\t\t\t\t\tresolvedPromise = Promise.resolve();\n\t\t\t\t}\n\t\t\t\tresolvedPromise.then(() => {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tprocess.nextTick(fn);\n\t\t\t\t});\n\t\t\t}\n\t\t: // @ts-ignore\n\t\t\ttypeof setImmediate === 'function'\n\t\t\t? function (fn) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tsetImmediate(fn);\n\t\t\t\t}\n\t\t\t: function (fn) {\n\t\t\t\t\tsetTimeout(fn);\n\t\t\t\t};\n\n// Private: cached resolved Promise instance\nlet resolvedPromise: Promise<void> | undefined;\n\n// Private: Describes a batch of requests\ntype Batch<K, V> = {\n\thasDispatched: boolean;\n\tkeys: Array<K>;\n\tcallbacks: Array<{\n\t\tresolve: (value: V) => void;\n\t\treject: (error: Error) => void;\n\t}>;\n\tcacheHits?: Array<() => void>;\n};\n\n// Private: Either returns the current batch, or creates and schedules a\n// dispatch of a new batch for the given loader.\nfunction getCurrentBatch<K, V>(loader: DataLoader<K, V, any>): Batch<K, V> {\n\t// If there is an existing batch which has not yet dispatched and is within\n\t// the limit of the batch size, then return it.\n\tconst existingBatch = loader._batch;\n\tif (\n\t\texistingBatch !== null &&\n\t\t!existingBatch.hasDispatched &&\n\t\texistingBatch.keys.length < loader._maxBatchSize\n\t) {\n\t\treturn existingBatch;\n\t}\n\n\t// Otherwise, create a new batch for this loader.\n\tconst newBatch = { hasDispatched: false, keys: [], callbacks: [] };\n\n\t// Store it on the loader so it may be reused.\n\tloader._batch = newBatch;\n\n\t// Then schedule a task to dispatch this batch of requests.\n\tloader._batchScheduleFn(() => {\n\t\tdispatchBatch(loader, newBatch);\n\t});\n\n\treturn newBatch;\n}\n\nfunction dispatchBatch<K, V>(loader: DataLoader<K, V, any>, batch: Batch<K, V>) {\n\t// Mark this batch as having been dispatched.\n\tbatch.hasDispatched = true;\n\n\t// If there's nothing to load, resolve any cache hits and return early.\n\tif (batch.keys.length === 0) {\n\t\tresolveCacheHits(batch);\n\t\treturn;\n\t}\n\n\t// Call the provided batchLoadFn for this loader with the batch's keys and\n\t// with the loader as the `this` context.\n\tlet batchPromise;\n\ttry {\n\t\tbatchPromise = loader._batchLoadFn(batch.keys);\n\t} catch (e) {\n\t\treturn failedDispatch(\n\t\t\tloader,\n\t\t\tbatch,\n\t\t\tnew TypeError(\n\t\t\t\t'DataLoader must be constructed with a function which accepts ' +\n\t\t\t\t\t'Array<key> and returns Promise<Array<value>>, but the function ' +\n\t\t\t\t\t`errored synchronously: ${String(e)}.`,\n\t\t\t),\n\t\t);\n\t}\n\n\t// Assert the expected response from batchLoadFn\n\tif (!batchPromise || typeof batchPromise.then !== 'function') {\n\t\treturn failedDispatch(\n\t\t\tloader,\n\t\t\tbatch,\n\t\t\tnew TypeError(\n\t\t\t\t'DataLoader must be constructed with a function which accepts ' +\n\t\t\t\t\t'Array<key> and returns Promise<Array<value>>, but the function did ' +\n\t\t\t\t\t`not return a Promise: ${String(batchPromise)}.`,\n\t\t\t),\n\t\t);\n\t}\n\n\t// Await the resolution of the call to batchLoadFn.\n\tPromise.resolve(batchPromise)\n\t\t.then((values) => {\n\t\t\t// Assert the expected resolution from batchLoadFn.\n\t\t\tif (!isArrayLike(values)) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t'DataLoader must be constructed with a function which accepts ' +\n\t\t\t\t\t\t'Array<key> and returns Promise<Array<value>>, but the function did ' +\n\t\t\t\t\t\t`not return a Promise of an Array: ${String(values)}.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (values.length !== batch.keys.length) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t'DataLoader must be constructed with a function which accepts ' +\n\t\t\t\t\t\t'Array<key> and returns Promise<Array<value>>, but the function did ' +\n\t\t\t\t\t\t'not return a Promise of an Array of the same length as the Array ' +\n\t\t\t\t\t\t'of keys.' +\n\t\t\t\t\t\t`\\n\\nKeys:\\n${String(batch.keys)}` +\n\t\t\t\t\t\t`\\n\\nValues:\\n${String(values)}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Resolve all cache hits in the same micro-task as freshly loaded values.\n\t\t\tresolveCacheHits(batch);\n\n\t\t\t// Step through values, resolving or rejecting each Promise in the batch.\n\t\t\tfor (let i = 0; i < batch.callbacks.length; i++) {\n\t\t\t\tconst value = values[i];\n\t\t\t\tif (value instanceof Error) {\n\t\t\t\t\tbatch.callbacks[i].reject(value);\n\t\t\t\t} else {\n\t\t\t\t\tbatch.callbacks[i].resolve(value);\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t.catch((error: unknown) => {\n\t\t\tfailedDispatch(loader, batch, error as Error);\n\t\t});\n}\n\n// Private: do not cache individual loads if the entire batch dispatch fails,\n// but still reject each request so they do not hang.\nfunction failedDispatch<K, V>(loader: DataLoader<K, V, any>, batch: Batch<K, V>, error: Error) {\n\t// Cache hits are resolved, even though the batch failed.\n\tresolveCacheHits(batch);\n\tfor (let i = 0; i < batch.keys.length; i++) {\n\t\tloader.clear(batch.keys[i]);\n\t\tbatch.callbacks[i].reject(error);\n\t}\n}\n\n// Private: Resolves the Promises for any cache hits in this batch.\nfunction resolveCacheHits(batch: Batch<any, any>) {\n\tif (batch.cacheHits) {\n\t\tfor (let i = 0; i < batch.cacheHits.length; i++) {\n\t\t\tbatch.cacheHits[i]();\n\t\t}\n\t}\n}\n\n// Private: given the DataLoader's options, produce a valid max batch size.\nfunction getValidMaxBatchSize<K, V, C>(options?: DataLoader.Options<K, V, C>): number {\n\tconst shouldBatch = !options || options.batch !== false;\n\tif (!shouldBatch) {\n\t\treturn 1;\n\t}\n\tconst maxBatchSize = options && options.maxBatchSize;\n\tif (maxBatchSize === undefined) {\n\t\treturn Infinity;\n\t}\n\tif (typeof maxBatchSize !== 'number' || maxBatchSize < 1) {\n\t\tthrow new TypeError(`maxBatchSize must be a positive number: ${maxBatchSize}`);\n\t}\n\treturn maxBatchSize;\n}\n\n// Private\nfunction getValidBatchScheduleFn<K, V, C>(\n\toptions?: DataLoader.Options<K, V, C>,\n): (cb: () => void) => void {\n\tconst batchScheduleFn = options && options.batchScheduleFn;\n\tif (batchScheduleFn === undefined) {\n\t\treturn enqueuePostPromiseJob;\n\t}\n\tif (typeof batchScheduleFn !== 'function') {\n\t\tthrow new TypeError(`batchScheduleFn must be a function: ${batchScheduleFn}`);\n\t}\n\treturn batchScheduleFn;\n}\n\n// Private: given the DataLoader's options, produce a cache key function.\nfunction getValidCacheKeyFn<K, V, C>(options?: DataLoader.Options<K, V, C>): (key: K) => C {\n\tconst cacheKeyFn = options && options.cacheKeyFn;\n\tif (cacheKeyFn === undefined) {\n\t\treturn (key: K) => key as unknown as C;\n\t}\n\tif (typeof cacheKeyFn !== 'function') {\n\t\tthrow new TypeError(`cacheKeyFn must be a function: ${cacheKeyFn}`);\n\t}\n\treturn cacheKeyFn;\n}\n\n// Private: given the DataLoader's options, produce a CacheMap to be used.\nfunction getValidCacheMap<K, V, C>(\n\toptions?: DataLoader.Options<K, V, C>,\n): DataLoader.CacheMap<C, Promise<V>> | null {\n\tconst shouldCache = !options || options.cache !== false;\n\tif (!shouldCache) {\n\t\treturn null;\n\t}\n\tconst cacheMap = options && options.cacheMap;\n\tif (cacheMap === undefined) {\n\t\treturn new Map();\n\t}\n\tif (cacheMap !== null) {\n\t\tconst cacheFunctions = ['get', 'set', 'delete', 'clear'] as const;\n\t\tconst missingFunctions = cacheFunctions.filter(\n\t\t\t(fnName) => cacheMap && typeof cacheMap[fnName] !== 'function',\n\t\t);\n\t\tif (missingFunctions.length !== 0) {\n\t\t\tthrow new TypeError('Custom cacheMap missing methods: ' + missingFunctions.join(', '));\n\t\t}\n\t}\n\treturn cacheMap;\n}\n\nfunction getValidName<K, V, C>(options?: DataLoader.Options<K, V, C>): string | null {\n\tif (options && options.name) {\n\t\treturn options.name;\n\t}\n\n\treturn null;\n}\n\nfunction isArrayLike(x: unknown): x is ArrayLike<unknown> {\n\treturn (\n\t\ttypeof x === 'object' &&\n\t\tx !== null &&\n\t\t'length' in x &&\n\t\ttypeof x.length === 'number' &&\n\t\t(x.length === 0 || (x.length > 0 && Object.prototype.hasOwnProperty.call(x, x.length - 1)))\n\t);\n}\n\nexport declare namespace DataLoader {\n\t// If a custom cache is provided, it must be of this type (a subset of ES6 Map).\n\texport type CacheMap<K, V> = {\n\t\tget(key: K): V | void;\n\t\tset(key: K, value: V): any;\n\t\tdelete(key: K): any;\n\t\tclear(): any;\n\t};\n\n\t// A Function, which when given an Array of keys, returns a Promise of an Array\n\t// of values or Errors.\n\texport type BatchLoadFn<K, V> = (keys: ReadonlyArray<K>) => PromiseLike<ArrayLike<V | Error>>;\n\n\t// Optionally turn off batching or caching or provide a cache key function or a\n\t// custom cache instance.\n\texport type Options<K, V, C = K> = {\n\t\t/**\n\t\t * Default `true`. Set to `false` to disable batching, invoking\n\t\t * `batchLoadFn` with a single load key. This is equivalent to setting\n\t\t * `maxBatchSize` to `1`.\n\t\t */\n\t\tbatch?: boolean;\n\n\t\t/**\n\t\t * Default `Infinity`. Limits the number of items that get passed in to the\n\t\t * `batchLoadFn`. May be set to `1` to disable batching.\n\t\t */\n\t\tmaxBatchSize?: number;\n\n\t\t/**\n\t\t * Default see https://github.com/graphql/dataloader#batch-scheduling.\n\t\t * A function to schedule the later execution of a batch. The function is\n\t\t * expected to call the provided callback in the immediate future.\n\t\t */\n\t\tbatchScheduleFn?: (callback: () => void) => void;\n\n\t\t/**\n\t\t * Default `true`. Set to `false` to disable memoization caching, creating a\n\t\t * new Promise and new key in the `batchLoadFn` for every load of the same\n\t\t * key. This is equivalent to setting `cacheMap` to `null`.\n\t\t */\n\t\tcache?: boolean;\n\n\t\t/**\n\t\t * Default `key => key`. Produces cache key for a given load key. Useful\n\t\t * when keys are objects and two objects should be considered equivalent.\n\t\t */\n\t\tcacheKeyFn?: (key: K) => C;\n\n\t\t/**\n\t\t * Default `new Map()`. Instance of `Map` (or an object with a similar API)\n\t\t * to be used as cache. May be set to `null` to disable caching.\n\t\t */\n\t\tcacheMap?: CacheMap<C, Promise<V>> | null;\n\n\t\t/**\n\t\t * The name given to this `DataLoader` instance. Useful for APM tools.\n\t\t *\n\t\t * Is `null` if not set in the constructor.\n\t\t */\n\t\tname?: string | null;\n\t};\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, fromBase64, fromHex, toBase58, toBase64, toHex } from '@mysten/utils';\nimport type { Encoding } from './types.js';\n\n/**\n * Encode data with either `hex` or `base64`.\n *\n * @param {Uint8Array} data Data to encode.\n * @param {String} encoding Encoding to use: base64 or hex\n * @returns {String} Encoded value.\n */\nexport function encodeStr(data: Uint8Array, encoding: Encoding): string {\n\tswitch (encoding) {\n\t\tcase 'base58':\n\t\t\treturn toBase58(data);\n\t\tcase 'base64':\n\t\t\treturn toBase64(data);\n\t\tcase 'hex':\n\t\t\treturn toHex(data);\n\t\tdefault:\n\t\t\tthrow new Error('Unsupported encoding, supported values are: base64, hex');\n\t}\n}\n\n/**\n * Decode either `base64` or `hex` data.\n *\n * @param {String} data Data to encode.\n * @param {String} encoding Encoding to use: base64 or hex\n * @returns {Uint8Array} Encoded value.\n */\nexport function decodeStr(data: string, encoding: Encoding): Uint8Array {\n\tswitch (encoding) {\n\t\tcase 'base58':\n\t\t\treturn fromBase58(data);\n\t\tcase 'base64':\n\t\t\treturn fromBase64(data);\n\t\tcase 'hex':\n\t\t\treturn fromHex(data);\n\t\tdefault:\n\t\t\tthrow new Error('Unsupported encoding, supported values are: base64, hex');\n\t}\n}\n\nexport function splitGenericParameters(\n\tstr: string,\n\tgenericSeparators: [string, string] = ['<', '>'],\n) {\n\tconst [left, right] = genericSeparators;\n\tconst tok = [];\n\tlet word = '';\n\tlet nestedAngleBrackets = 0;\n\n\tfor (let i = 0; i < str.length; i++) {\n\t\tconst char = str[i];\n\t\tif (char === left) {\n\t\t\tnestedAngleBrackets++;\n\t\t}\n\t\tif (char === right) {\n\t\t\tnestedAngleBrackets--;\n\t\t}\n\t\tif (nestedAngleBrackets === 0 && char === ',') {\n\t\t\ttok.push(word.trim());\n\t\t\tword = '';\n\t\t\tcontinue;\n\t\t}\n\t\tword += char;\n\t}\n\n\ttok.push(word.trim());\n\n\treturn tok;\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Encoding } from './types.js';\nimport { ulebEncode } from './uleb.js';\nimport { encodeStr } from './utils.js';\n\nexport interface BcsWriterOptions {\n\t/** The initial size (in bytes) of the buffer tht will be allocated */\n\tinitialSize?: number;\n\t/** The maximum size (in bytes) that the buffer is allowed to grow to */\n\tmaxSize?: number;\n\t/** The amount of bytes that will be allocated whenever additional memory is required */\n\tallocateSize?: number;\n}\n\n/**\n * Class used to write BCS data into a buffer. Initializer requires\n * some size of a buffer to init; default value for this buffer is 1KB.\n *\n * Most methods are chainable, so it is possible to write them in one go.\n *\n * @example\n * let serialized = new BcsWriter()\n * .write8(10)\n * .write32(1000000)\n * .write64(10000001000000)\n * .hex();\n */\n\n/**\n * Set of methods that allows data encoding/decoding as standalone\n * BCS value or a part of a composed structure/vector.\n */\nexport class BcsWriter {\n\tprivate dataView: DataView<ArrayBuffer>;\n\tprivate bytePosition: number = 0;\n\tprivate size: number;\n\tprivate maxSize: number;\n\tprivate allocateSize: number;\n\n\tconstructor({\n\t\tinitialSize = 1024,\n\t\tmaxSize = Infinity,\n\t\tallocateSize = 1024,\n\t}: BcsWriterOptions = {}) {\n\t\tthis.size = initialSize;\n\t\tthis.maxSize = maxSize;\n\t\tthis.allocateSize = allocateSize;\n\t\tthis.dataView = new DataView(new ArrayBuffer(initialSize));\n\t}\n\n\tprivate ensureSizeOrGrow(bytes: number) {\n\t\tconst requiredSize = this.bytePosition + bytes;\n\t\tif (requiredSize > this.size) {\n\t\t\tconst nextSize = Math.min(\n\t\t\t\tthis.maxSize,\n\t\t\t\tMath.max(this.size + requiredSize, this.size + this.allocateSize),\n\t\t\t);\n\t\t\tif (requiredSize > nextSize) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${requiredSize}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.size = nextSize;\n\t\t\tconst nextBuffer = new ArrayBuffer(this.size);\n\t\t\tnew Uint8Array(nextBuffer).set(new Uint8Array(this.dataView.buffer));\n\t\t\tthis.dataView = new DataView(nextBuffer);\n\t\t}\n\t}\n\n\t/**\n\t * Shift current cursor position by `bytes`.\n\t *\n\t * @param {Number} bytes Number of bytes to\n\t * @returns {this} Self for possible chaining.\n\t */\n\tshift(bytes: number): this {\n\t\tthis.bytePosition += bytes;\n\t\treturn this;\n\t}\n\t/**\n\t * Write a U8 value into a buffer and shift cursor position by 1.\n\t * @param {Number} value Value to write.\n\t * @returns {this}\n\t */\n\twrite8(value: number | bigint): this {\n\t\tthis.ensureSizeOrGrow(1);\n\t\tthis.dataView.setUint8(this.bytePosition, Number(value));\n\t\treturn this.shift(1);\n\t}\n\n\t/**\n\t * Write a U8 value into a buffer and shift cursor position by 1.\n\t * @param {Number} value Value to write.\n\t * @returns {this}\n\t */\n\twriteBytes(bytes: Uint8Array): this {\n\t\tthis.ensureSizeOrGrow(bytes.length);\n\n\t\tfor (let i = 0; i < bytes.length; i++) {\n\t\t\tthis.dataView.setUint8(this.bytePosition + i, bytes[i]);\n\t\t}\n\n\t\treturn this.shift(bytes.length);\n\t}\n\t/**\n\t * Write a U16 value into a buffer and shift cursor position by 2.\n\t * @param {Number} value Value to write.\n\t * @returns {this}\n\t */\n\twrite16(value: number | bigint): this {\n\t\tthis.ensureSizeOrGrow(2);\n\t\tthis.dataView.setUint16(this.bytePosition, Number(value), true);\n\t\treturn this.shift(2);\n\t}\n\t/**\n\t * Write a U32 value into a buffer and shift cursor position by 4.\n\t * @param {Number} value Value to write.\n\t * @returns {this}\n\t */\n\twrite32(value: number | bigint): this {\n\t\tthis.ensureSizeOrGrow(4);\n\t\tthis.dataView.setUint32(this.bytePosition, Number(value), true);\n\t\treturn this.shift(4);\n\t}\n\t/**\n\t * Write a U64 value into a buffer and shift cursor position by 8.\n\t * @param {bigint} value Value to write.\n\t * @returns {this}\n\t */\n\twrite64(value: number | bigint): this {\n\t\ttoLittleEndian(BigInt(value), 8).forEach((el) => this.write8(el));\n\n\t\treturn this;\n\t}\n\t/**\n\t * Write a U128 value into a buffer and shift cursor position by 16.\n\t *\n\t * @param {bigint} value Value to write.\n\t * @returns {this}\n\t */\n\twrite128(value: number | bigint): this {\n\t\ttoLittleEndian(BigInt(value), 16).forEach((el) => this.write8(el));\n\n\t\treturn this;\n\t}\n\t/**\n\t * Write a U256 value into a buffer and shift cursor position by 16.\n\t *\n\t * @param {bigint} value Value to write.\n\t * @returns {this}\n\t */\n\twrite256(value: number | bigint): this {\n\t\ttoLittleEndian(BigInt(value), 32).forEach((el) => this.write8(el));\n\n\t\treturn this;\n\t}\n\t/**\n\t * Write a ULEB value into a buffer and shift cursor position by number of bytes\n\t * written.\n\t * @param {Number} value Value to write.\n\t * @returns {this}\n\t */\n\twriteULEB(value: number): this {\n\t\tulebEncode(value).forEach((el) => this.write8(el));\n\t\treturn this;\n\t}\n\t/**\n\t * Write a vector into a buffer by first writing the vector length and then calling\n\t * a callback on each passed value.\n\t *\n\t * @param {Array<Any>} vector Array of elements to write.\n\t * @param {WriteVecCb} cb Callback to call on each element of the vector.\n\t * @returns {this}\n\t */\n\twriteVec(vector: any[], cb: (writer: BcsWriter, el: any, i: number, len: number) => void): this {\n\t\tthis.writeULEB(vector.length);\n\t\tArray.from(vector).forEach((el, i) => cb(this, el, i, vector.length));\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds support for iterations over the object.\n\t * @returns {Uint8Array}\n\t */\n\t// oxlint-disable-next-line require-yields\n\t*[Symbol.iterator](): Iterator<number, Iterable<number>> {\n\t\tfor (let i = 0; i < this.bytePosition; i++) {\n\t\t\tyield this.dataView.getUint8(i);\n\t\t}\n\t\treturn this.toBytes();\n\t}\n\n\t/**\n\t * Get underlying buffer taking only value bytes (in case initial buffer size was bigger).\n\t * @returns {Uint8Array} Resulting bcs.\n\t */\n\ttoBytes(): Uint8Array<ArrayBuffer> {\n\t\treturn new Uint8Array(this.dataView.buffer.slice(0, this.bytePosition));\n\t}\n\n\t/**\n\t * Represent data as 'hex' or 'base64'\n\t * @param encoding Encoding to use: 'base64' or 'hex'\n\t */\n\ttoString(encoding: Encoding): string {\n\t\treturn encodeStr(this.toBytes(), encoding);\n\t}\n}\n\nfunction toLittleEndian(bigint: bigint, size: number) {\n\tconst result = new Uint8Array(size);\n\tlet i = 0;\n\twhile (bigint > 0) {\n\t\tresult[i] = Number(bigint % BigInt(256));\n\t\tbigint = bigint / BigInt(256);\n\t\ti += 1;\n\t}\n\treturn result;\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, fromBase64, toBase58, toBase64, fromHex, toHex } from '@mysten/utils';\nimport { BcsReader } from './reader.js';\nimport { ulebEncode } from './uleb.js';\nimport type { BcsWriterOptions } from './writer.js';\nimport { BcsWriter } from './writer.js';\nimport type { EnumInputShape, EnumOutputShape, JoinString } from './types.js';\n\nexport interface BcsTypeOptions<T, Input = T, Name extends string = string> {\n\tname?: Name;\n\tvalidate?: (value: Input) => void;\n}\n\nexport class BcsType<T, Input = T, const Name extends string = string> {\n\t$inferType!: T;\n\t$inferInput!: Input;\n\tname: Name;\n\tread: (reader: BcsReader) => T;\n\tserializedSize: (value: Input, options?: BcsWriterOptions) => number | null;\n\tvalidate: (value: Input) => void;\n\t#write: (value: Input, writer: BcsWriter) => void;\n\t#serialize: (value: Input, options?: BcsWriterOptions) => Uint8Array<ArrayBuffer>;\n\n\tconstructor(\n\t\toptions: {\n\t\t\tname: Name;\n\t\t\tread: (reader: BcsReader) => T;\n\t\t\twrite: (value: Input, writer: BcsWriter) => void;\n\t\t\tserialize?: (value: Input, options?: BcsWriterOptions) => Uint8Array<ArrayBuffer>;\n\t\t\tserializedSize?: (value: Input) => number | null;\n\t\t\tvalidate?: (value: Input) => void;\n\t\t} & BcsTypeOptions<T, Input, Name>,\n\t) {\n\t\tthis.name = options.name;\n\t\tthis.read = options.read;\n\t\tthis.serializedSize = options.serializedSize ?? (() => null);\n\t\tthis.#write = options.write;\n\t\tthis.#serialize =\n\t\t\toptions.serialize ??\n\t\t\t((value, options) => {\n\t\t\t\tconst writer = new BcsWriter({\n\t\t\t\t\tinitialSize: this.serializedSize(value) ?? undefined,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t\tthis.#write(value, writer);\n\t\t\t\treturn writer.toBytes();\n\t\t\t});\n\n\t\tthis.validate = options.validate ?? (() => {});\n\t}\n\n\twrite(value: Input, writer: BcsWriter) {\n\t\tthis.validate(value);\n\t\tthis.#write(value, writer);\n\t}\n\n\tserialize(value: Input, options?: BcsWriterOptions) {\n\t\tthis.validate(value);\n\t\treturn new SerializedBcs(this, this.#serialize(value, options));\n\t}\n\n\tparse(bytes: Uint8Array): T {\n\t\tconst reader = new BcsReader(bytes);\n\t\treturn this.read(reader);\n\t}\n\n\tfromHex(hex: string) {\n\t\treturn this.parse(fromHex(hex));\n\t}\n\n\tfromBase58(b64: string) {\n\t\treturn this.parse(fromBase58(b64));\n\t}\n\n\tfromBase64(b64: string) {\n\t\treturn this.parse(fromBase64(b64));\n\t}\n\n\ttransform<T2 = T, Input2 = Input, NewName extends string = Name>({\n\t\tname,\n\t\tinput,\n\t\toutput,\n\t\tvalidate,\n\t}: {\n\t\tinput?: (val: Input2) => Input;\n\t\toutput?: (value: T) => T2;\n\t} & BcsTypeOptions<T2, Input2, NewName>) {\n\t\treturn new BcsType<T2, Input2, NewName>({\n\t\t\tname: (name ?? this.name) as NewName,\n\t\t\tread: (reader) => (output ? output(this.read(reader)) : (this.read(reader) as never)),\n\t\t\twrite: (value, writer) => this.#write(input ? input(value) : (value as never), writer),\n\t\t\tserializedSize: (value) => this.serializedSize(input ? input(value) : (value as never)),\n\t\t\tserialize: (value, options) =>\n\t\t\t\tthis.#serialize(input ? input(value) : (value as never), options),\n\t\t\tvalidate: (value) => {\n\t\t\t\tvalidate?.(value);\n\t\t\t\tthis.validate(input ? input(value) : (value as never));\n\t\t\t},\n\t\t});\n\t}\n}\n\nconst SERIALIZED_BCS_BRAND = Symbol.for('@mysten/serialized-bcs') as never;\nexport function isSerializedBcs(obj: unknown): obj is SerializedBcs<unknown> {\n\treturn !!obj && typeof obj === 'object' && (obj as any)[SERIALIZED_BCS_BRAND] === true;\n}\n\nexport class SerializedBcs<T, Input = T> {\n\t#schema: BcsType<T, Input>;\n\t#bytes: Uint8Array<ArrayBuffer>;\n\n\t// Used to brand SerializedBcs so that they can be identified, even between multiple copies\n\t// of the @mysten/bcs package are installed\n\tget [SERIALIZED_BCS_BRAND]() {\n\t\treturn true;\n\t}\n\n\tconstructor(schema: BcsType<T, Input>, bytes: Uint8Array<ArrayBuffer>) {\n\t\tthis.#schema = schema;\n\t\tthis.#bytes = bytes;\n\t}\n\n\ttoBytes() {\n\t\treturn this.#bytes;\n\t}\n\n\ttoHex() {\n\t\treturn toHex(this.#bytes);\n\t}\n\n\ttoBase64() {\n\t\treturn toBase64(this.#bytes);\n\t}\n\n\ttoBase58() {\n\t\treturn toBase58(this.#bytes);\n\t}\n\n\tparse() {\n\t\treturn this.#schema.parse(this.#bytes);\n\t}\n}\n\nexport function fixedSizeBcsType<T, Input = T, const Name extends string = string>({\n\tsize,\n\t...options\n}: {\n\tname: Name;\n\tsize: number;\n\tread: (reader: BcsReader) => T;\n\twrite: (value: Input, writer: BcsWriter) => void;\n} & BcsTypeOptions<T, Input, Name>) {\n\treturn new BcsType<T, Input, Name>({\n\t\t...options,\n\t\tserializedSize: () => size,\n\t});\n}\n\nexport function uIntBcsType<const Name extends string = string>({\n\treadMethod,\n\twriteMethod,\n\t...options\n}: {\n\tname: Name;\n\tsize: number;\n\treadMethod: `read${8 | 16 | 32}`;\n\twriteMethod: `write${8 | 16 | 32}`;\n\tmaxValue: number;\n} & BcsTypeOptions<number, number, Name>) {\n\treturn fixedSizeBcsType<number, number, Name>({\n\t\t...options,\n\t\tread: (reader) => reader[readMethod](),\n\t\twrite: (value, writer) => writer[writeMethod](value),\n\t\tvalidate: (value) => {\n\t\t\tif (value < 0 || value > options.maxValue) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`Invalid ${options.name} value: ${value}. Expected value in range 0-${options.maxValue}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\toptions.validate?.(value);\n\t\t},\n\t});\n}\n\nexport function bigUIntBcsType<const Name extends string = string>({\n\treadMethod,\n\twriteMethod,\n\t...options\n}: {\n\tname: Name;\n\tsize: number;\n\treadMethod: `read${64 | 128 | 256}`;\n\twriteMethod: `write${64 | 128 | 256}`;\n\tmaxValue: bigint;\n} & BcsTypeOptions<string, string | number | bigint>) {\n\treturn fixedSizeBcsType<string, string | number | bigint, Name>({\n\t\t...options,\n\t\tread: (reader) => reader[readMethod](),\n\t\twrite: (value, writer) => writer[writeMethod](BigInt(value)),\n\t\tvalidate: (val) => {\n\t\t\tconst value = BigInt(val);\n\t\t\tif (value < 0 || value > options.maxValue) {\n\t\t\t\tthrow new TypeError(\n\t\t\t\t\t`Invalid ${options.name} value: ${value}. Expected value in range 0-${options.maxValue}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\toptions.validate?.(value);\n\t\t},\n\t});\n}\n\nexport function dynamicSizeBcsType<T, Input = T, const Name extends string = string>({\n\tserialize,\n\t...options\n}: {\n\tname: Name;\n\tread: (reader: BcsReader) => T;\n\tserialize: (value: Input, options?: BcsWriterOptions) => Uint8Array<ArrayBuffer>;\n} & BcsTypeOptions<T, Input>) {\n\tconst type = new BcsType<T, Input>({\n\t\t...options,\n\t\tserialize,\n\t\twrite: (value, writer) => {\n\t\t\tfor (const byte of type.serialize(value).toBytes()) {\n\t\t\t\twriter.write8(byte);\n\t\t\t}\n\t\t},\n\t});\n\n\treturn type;\n}\n\nexport function stringLikeBcsType<const Name extends string = string>({\n\ttoBytes,\n\tfromBytes,\n\t...options\n}: {\n\tname: Name;\n\ttoBytes: (value: string) => Uint8Array;\n\tfromBytes: (bytes: Uint8Array) => string;\n\tserializedSize?: (value: string) => number | null;\n} & BcsTypeOptions<string, string, Name>) {\n\treturn new BcsType<string, string, Name>({\n\t\t...options,\n\t\tread: (reader) => {\n\t\t\tconst length = reader.readULEB();\n\t\t\tconst bytes = reader.readBytes(length);\n\n\t\t\treturn fromBytes(bytes);\n\t\t},\n\t\twrite: (hex, writer) => {\n\t\t\tconst bytes = toBytes(hex);\n\t\t\twriter.writeULEB(bytes.length);\n\t\t\tfor (let i = 0; i < bytes.length; i++) {\n\t\t\t\twriter.write8(bytes[i]);\n\t\t\t}\n\t\t},\n\t\tserialize: (value) => {\n\t\t\tconst bytes = toBytes(value);\n\t\t\tconst size = ulebEncode(bytes.length);\n\t\t\tconst result = new Uint8Array(size.length + bytes.length);\n\t\t\tresult.set(size, 0);\n\t\t\tresult.set(bytes, size.length);\n\n\t\t\treturn result;\n\t\t},\n\t\tvalidate: (value) => {\n\t\t\tif (typeof value !== 'string') {\n\t\t\t\tthrow new TypeError(`Invalid ${options.name} value: ${value}. Expected string`);\n\t\t\t}\n\t\t\toptions.validate?.(value);\n\t\t},\n\t});\n}\n\nexport function lazyBcsType<T, Input>(cb: () => BcsType<T, Input>) {\n\tlet lazyType: BcsType<T, Input> | null = null;\n\tfunction getType() {\n\t\tif (!lazyType) {\n\t\t\tlazyType = cb();\n\t\t}\n\t\treturn lazyType;\n\t}\n\n\treturn new BcsType<T, Input>({\n\t\tname: 'lazy' as never,\n\t\tread: (data) => getType().read(data),\n\t\tserializedSize: (value) => getType().serializedSize(value),\n\t\twrite: (value, writer) => getType().write(value, writer),\n\t\tserialize: (value, options) => getType().serialize(value, options).toBytes(),\n\t});\n}\n\nexport interface BcsStructOptions<\n\tT extends Record<string, BcsType<any>>,\n\tName extends string = string,\n> extends Omit<\n\tBcsTypeOptions<\n\t\t{\n\t\t\t[K in keyof T]: T[K] extends BcsType<infer U, any> ? U : never;\n\t\t},\n\t\t{\n\t\t\t[K in keyof T]: T[K] extends BcsType<any, infer U> ? U : never;\n\t\t},\n\t\tName\n\t>,\n\t'name'\n> {\n\tname: Name;\n\tfields: T;\n}\n\nexport class BcsStruct<\n\tT extends Record<string, BcsType<any>>,\n\tconst Name extends string = string,\n> extends BcsType<\n\t{\n\t\t[K in keyof T]: T[K] extends BcsType<infer U, any> ? U : never;\n\t},\n\t{\n\t\t[K in keyof T]: T[K] extends BcsType<any, infer U> ? U : never;\n\t},\n\tName\n> {\n\tconstructor({ name, fields, ...options }: BcsStructOptions<T, Name>) {\n\t\tconst canonicalOrder = Object.entries(fields);\n\n\t\tsuper({\n\t\t\tname,\n\t\t\tserializedSize: (values) => {\n\t\t\t\tlet total = 0;\n\t\t\t\tfor (const [field, type] of canonicalOrder) {\n\t\t\t\t\tconst size = type.serializedSize(values[field]);\n\t\t\t\t\tif (size == null) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\ttotal += size;\n\t\t\t\t}\n\n\t\t\t\treturn total;\n\t\t\t},\n\t\t\tread: (reader) => {\n\t\t\t\tconst result: Record<string, unknown> = {};\n\t\t\t\tfor (const [field, type] of canonicalOrder) {\n\t\t\t\t\tresult[field] = type.read(reader);\n\t\t\t\t}\n\n\t\t\t\treturn result as never;\n\t\t\t},\n\t\t\twrite: (value, writer) => {\n\t\t\t\tfor (const [field, type] of canonicalOrder) {\n\t\t\t\t\ttype.write(value[field], writer);\n\t\t\t\t}\n\t\t\t},\n\t\t\t...options,\n\t\t\tvalidate: (value) => {\n\t\t\t\toptions?.validate?.(value);\n\t\t\t\tif (typeof value !== 'object' || value == null) {\n\t\t\t\t\tthrow new TypeError(`Expected object, found ${typeof value}`);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n}\n\nexport interface BcsEnumOptions<\n\tT extends Record<string, BcsType<any> | null>,\n\tName extends string = string,\n> extends Omit<\n\tBcsTypeOptions<\n\t\tEnumOutputShape<{\n\t\t\t[K in keyof T]: T[K] extends BcsType<infer U, any, any> ? U : true;\n\t\t}>,\n\t\tEnumInputShape<{\n\t\t\t[K in keyof T]: T[K] extends BcsType<any, infer U, any> ? U : boolean | object | null;\n\t\t}>,\n\t\tName\n\t>,\n\t'name'\n> {\n\tname: Name;\n\tfields: T;\n}\n\nexport class BcsEnum<\n\tT extends Record<string, BcsType<any> | null>,\n\tconst Name extends string = string,\n> extends BcsType<\n\tEnumOutputShape<{\n\t\t[K in keyof T]: T[K] extends BcsType<infer U, any> ? U : true;\n\t}>,\n\tEnumInputShape<{\n\t\t[K in keyof T]: T[K] extends BcsType<any, infer U, any> ? U : boolean | object | null;\n\t}>,\n\tName\n> {\n\tconstructor({ fields, ...options }: BcsEnumOptions<T, Name>) {\n\t\tconst canonicalOrder = Object.entries(fields as object);\n\t\tsuper({\n\t\t\tread: (reader) => {\n\t\t\t\tconst index = reader.readULEB();\n\n\t\t\t\tconst enumEntry = canonicalOrder[index];\n\t\t\t\tif (!enumEntry) {\n\t\t\t\t\tthrow new TypeError(`Unknown value ${index} for enum ${options.name}`);\n\t\t\t\t}\n\n\t\t\t\tconst [kind, type] = enumEntry;\n\n\t\t\t\treturn {\n\t\t\t\t\t[kind]: type?.read(reader) ?? true,\n\t\t\t\t\t$kind: kind,\n\t\t\t\t} as never;\n\t\t\t},\n\t\t\twrite: (value, writer) => {\n\t\t\t\tconst [name, val] = Object.entries(value).filter(([name]) =>\n\t\t\t\t\tObject.hasOwn(fields, name),\n\t\t\t\t)[0];\n\n\t\t\t\tfor (let i = 0; i < canonicalOrder.length; i++) {\n\t\t\t\t\tconst [optionName, optionType] = canonicalOrder[i];\n\t\t\t\t\tif (optionName === name) {\n\t\t\t\t\t\twriter.writeULEB(i);\n\t\t\t\t\t\toptionType?.write(val, writer);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t...options,\n\t\t\tvalidate: (value) => {\n\t\t\t\toptions?.validate?.(value);\n\t\t\t\tif (typeof value !== 'object' || value == null) {\n\t\t\t\t\tthrow new TypeError(`Expected object, found ${typeof value}`);\n\t\t\t\t}\n\n\t\t\t\tconst keys = Object.keys(value).filter(\n\t\t\t\t\t(k) => value[k] !== undefined && Object.hasOwn(fields, k),\n\t\t\t\t);\n\n\t\t\t\tif (keys.length !== 1) {\n\t\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\t`Expected object with one key, but found ${keys.length} for type ${options.name}}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst [variant] = keys;\n\n\t\t\t\tif (!Object.hasOwn(fields, variant)) {\n\t\t\t\t\tthrow new TypeError(`Invalid enum variant ${variant}`);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n}\n\nexport interface BcsTupleOptions<\n\tT extends readonly BcsType<any>[],\n\tName extends string,\n> extends Omit<\n\tBcsTypeOptions<\n\t\t{\n\t\t\t-readonly [K in keyof T]: T[K] extends BcsType<infer T, any> ? T : never;\n\t\t},\n\t\t{\n\t\t\t[K in keyof T]: T[K] extends BcsType<any, infer T> ? T : never;\n\t\t},\n\t\tName\n\t>,\n\t'name'\n> {\n\tname?: Name;\n\tfields: T;\n}\n\nexport class BcsTuple<\n\tconst T extends readonly BcsType<any>[],\n\tconst Name extends string =\n\t\t`(${JoinString<{ [K in keyof T]: T[K] extends BcsType<any, any, infer T> ? T : never }, ', '>})`,\n> extends BcsType<\n\t{\n\t\t-readonly [K in keyof T]: T[K] extends BcsType<infer T, any> ? T : never;\n\t},\n\t{\n\t\t[K in keyof T]: T[K] extends BcsType<any, infer T> ? T : never;\n\t},\n\tName\n> {\n\tconstructor({ fields, name, ...options }: BcsTupleOptions<T, Name>) {\n\t\tsuper({\n\t\t\tname: name ?? (`(${fields.map((t) => t.name).join(', ')})` as never),\n\t\t\tserializedSize: (values) => {\n\t\t\t\tlet total = 0;\n\t\t\t\tfor (let i = 0; i < fields.length; i++) {\n\t\t\t\t\tconst size = fields[i].serializedSize(values[i]);\n\t\t\t\t\tif (size == null) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\ttotal += size;\n\t\t\t\t}\n\n\t\t\t\treturn total;\n\t\t\t},\n\t\t\tread: (reader) => {\n\t\t\t\tconst result: unknown[] = [];\n\t\t\t\tfor (const field of fields) {\n\t\t\t\t\tresult.push(field.read(reader));\n\t\t\t\t}\n\t\t\t\treturn result as never;\n\t\t\t},\n\t\t\twrite: (value, writer) => {\n\t\t\t\tfor (let i = 0; i < fields.length; i++) {\n\t\t\t\t\tfields[i].write(value[i], writer);\n\t\t\t\t}\n\t\t\t},\n\t\t\t...options,\n\t\t\tvalidate: (value) => {\n\t\t\t\toptions?.validate?.(value);\n\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\tthrow new TypeError(`Expected array, found ${typeof value}`);\n\t\t\t\t}\n\t\t\t\tif (value.length !== fields.length) {\n\t\t\t\t\tthrow new TypeError(`Expected array of length ${fields.length}, found ${value.length}`);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { BcsTypeOptions } from './bcs-type.js';\nimport {\n\tBcsEnum,\n\tBcsStruct,\n\tBcsTuple,\n\tBcsType,\n\tbigUIntBcsType,\n\tdynamicSizeBcsType,\n\tfixedSizeBcsType,\n\tlazyBcsType,\n\tstringLikeBcsType,\n\tuIntBcsType,\n} from './bcs-type.js';\nimport type {\n\tEnumInputShape,\n\tEnumOutputShape,\n\tInferBcsInput,\n\tInferBcsType,\n\tJoinString,\n} from './types.js';\nimport { ulebEncode } from './uleb.js';\n\nfunction fixedArray<T extends BcsType<any>, Name extends string = string>(\n\tsize: number,\n\ttype: T,\n\toptions?: BcsTypeOptions<\n\t\tInferBcsType<T>[],\n\t\tIterable<InferBcsInput<T>> & { length: number },\n\t\tName\n\t>,\n): BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & { length: number }, Name>;\nfunction fixedArray<T, Input, Name extends string = string>(\n\tsize: number,\n\ttype: BcsType<T, Input>,\n\toptions?: BcsTypeOptions<T[], Iterable<Input> & { length: number }, Name>,\n): BcsType<T[], Iterable<Input> & { length: number }, Name>;\nfunction fixedArray<T extends BcsType<any>, Name extends string = `${T['name']}[${number}]`>(\n\tsize: number,\n\ttype: T,\n\toptions?: BcsTypeOptions<\n\t\tInferBcsType<T>[],\n\t\tIterable<InferBcsInput<T>> & { length: number },\n\t\tName\n\t>,\n): BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & { length: number }, Name> {\n\treturn new BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & { length: number }, Name>({\n\t\tread: (reader) => {\n\t\t\tconst result: InferBcsType<T>[] = new Array(size);\n\t\t\tfor (let i = 0; i < size; i++) {\n\t\t\t\tresult[i] = type.read(reader);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\twrite: (value, writer) => {\n\t\t\tfor (const item of value) {\n\t\t\t\ttype.write(item, writer);\n\t\t\t}\n\t\t},\n\t\t...options,\n\t\tname: (options?.name ?? `${type.name}[${size}]`) as Name,\n\t\tvalidate: (value) => {\n\t\t\toptions?.validate?.(value);\n\t\t\tif (!value || typeof value !== 'object' || !('length' in value)) {\n\t\t\t\tthrow new TypeError(`Expected array, found ${typeof value}`);\n\t\t\t}\n\t\t\tif (value.length !== size) {\n\t\t\t\tthrow new TypeError(`Expected array of length ${size}, found ${value.length}`);\n\t\t\t}\n\t\t},\n\t});\n}\n\nfunction option<T extends BcsType<any>>(\n\ttype: T,\n): BcsType<InferBcsType<T> | null, InferBcsInput<T> | null | undefined, `Option<${T['name']}>`>;\nfunction option<T, Input, Name extends string = string>(\n\ttype: BcsType<T, Input, Name>,\n): BcsType<T | null, Input | null | undefined>;\nfunction option<T extends BcsType<any>>(\n\ttype: T,\n): BcsType<InferBcsType<T> | null, InferBcsInput<T> | null | undefined, `Option<${T['name']}>`> {\n\treturn bcs\n\t\t.enum(`Option<${type.name}>`, {\n\t\t\tNone: null,\n\t\t\tSome: type,\n\t\t})\n\t\t.transform({\n\t\t\tinput: (value: InferBcsInput<T> | null | undefined) => {\n\t\t\t\tif (value == null) {\n\t\t\t\t\treturn { None: true };\n\t\t\t\t}\n\n\t\t\t\treturn { Some: value };\n\t\t\t},\n\t\t\toutput: (value) => {\n\t\t\t\tif (value.$kind === 'Some') {\n\t\t\t\t\treturn value.Some as InferBcsType<T>;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t});\n}\n\nfunction vector<T extends BcsType<any>, Name extends string = `vector<${T['name']}>`>(\n\ttype: T,\n\toptions?: BcsTypeOptions<\n\t\tInferBcsType<T>[],\n\t\tIterable<InferBcsInput<T>> & { length: number },\n\t\tName\n\t>,\n): BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & { length: number }, Name>;\nfunction vector<T, Input, Name extends string = string>(\n\ttype: BcsType<T, Input, Name>,\n\toptions?: BcsTypeOptions<T[], Iterable<Input> & { length: number }, `vector<${Name}>`>,\n): BcsType<T[], Iterable<Input> & { length: number }, `vector<${Name}>`>;\nfunction vector<T extends BcsType<any>, Name extends string = `vector<${T['name']}>`>(\n\ttype: T,\n\toptions?: BcsTypeOptions<\n\t\tInferBcsType<T>[],\n\t\tIterable<InferBcsInput<T>> & { length: number },\n\t\tName\n\t>,\n): BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & { length: number }, Name> {\n\treturn new BcsType<InferBcsType<T>[], Iterable<InferBcsInput<T>> & { length: number }, Name>({\n\t\tread: (reader) => {\n\t\t\tconst length = reader.readULEB();\n\t\t\tconst result: InferBcsType<T>[] = new Array(length);\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tresult[i] = type.read(reader);\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\twrite: (value, writer) => {\n\t\t\twriter.writeULEB(value.length);\n\t\t\tfor (const item of value) {\n\t\t\t\ttype.write(item, writer);\n\t\t\t}\n\t\t},\n\t\t...options,\n\t\tname: (options?.name ?? `vector<${type.name}>`) as Name,\n\t\tvalidate: (value) => {\n\t\t\toptions?.validate?.(value);\n\t\t\tif (!value || typeof value !== 'object' || !('length' in value)) {\n\t\t\t\tthrow new TypeError(`Expected array, found ${typeof value}`);\n\t\t\t}\n\t\t},\n\t});\n}\n\n/**\n * Compares two byte arrays using lexicographic ordering.\n * This matches Rust's Ord implementation for Vec<u8>/[u8] which is used for BTreeMap key ordering.\n * Comparison is done byte-by-byte first, then by length if all compared bytes are equal.\n */\nexport function compareBcsBytes(a: Uint8Array, b: Uint8Array): number {\n\tfor (let i = 0; i < Math.min(a.length, b.length); i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn a[i] - b[i];\n\t\t}\n\t}\n\n\treturn a.length - b.length;\n}\n\nfunction map<K extends BcsType<any>, V extends BcsType<any>>(\n\tkeyType: K,\n\tvalueType: V,\n): BcsType<\n\tMap<InferBcsType<K>, InferBcsType<V>>,\n\tMap<InferBcsInput<K>, InferBcsInput<V>>,\n\t`Map<${K['name']}, ${V['name']}>`\n>;\nfunction map<K, V, InputK = K, InputV = V>(\n\tkeyType: BcsType<K, InputK>,\n\tvalueType: BcsType<V, InputV>,\n): BcsType<Map<K, V>, Map<InputK, InputV>, `Map<${string}, ${string}>`>;\nfunction map<K extends BcsType<any>, V extends BcsType<any>>(\n\tkeyType: K,\n\tvalueType: V,\n): BcsType<\n\tMap<InferBcsType<K>, InferBcsType<V>>,\n\tMap<InferBcsInput<K>, InferBcsInput<V>>,\n\t`Map<${K['name']}, ${V['name']}>`\n> {\n\treturn new BcsType({\n\t\tname: `Map<${keyType.name}, ${valueType.name}>`,\n\t\tread: (reader) => {\n\t\t\tconst length = reader.readULEB();\n\t\t\tconst result = new Map<InferBcsType<K>, InferBcsType<V>>();\n\t\t\tfor (let i = 0; i < length; i++) {\n\t\t\t\tresult.set(keyType.read(reader), valueType.read(reader));\n\t\t\t}\n\t\t\treturn result;\n\t\t},\n\t\twrite: (value, writer) => {\n\t\t\tconst entries = [...value.entries()].map(\n\t\t\t\t([key, val]) => [keyType.serialize(key).toBytes(), val] as const,\n\t\t\t);\n\t\t\tentries.sort(([a], [b]) => compareBcsBytes(a, b));\n\n\t\t\twriter.writeULEB(entries.length);\n\t\t\tfor (const [keyBytes, val] of entries) {\n\t\t\t\twriter.writeBytes(keyBytes);\n\t\t\t\tvalueType.write(val, writer);\n\t\t\t}\n\t\t},\n\t});\n}\n\nexport const bcs = {\n\t/**\n\t * Creates a BcsType that can be used to read and write an 8-bit unsigned integer.\n\t * @example\n\t * bcs.u8().serialize(255).toBytes() // Uint8Array [ 255 ]\n\t */\n\tu8(options?: BcsTypeOptions<number>) {\n\t\treturn uIntBcsType({\n\t\t\treadMethod: 'read8',\n\t\t\twriteMethod: 'write8',\n\t\t\tsize: 1,\n\t\t\tmaxValue: 2 ** 8 - 1,\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'u8') as 'u8',\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can be used to read and write a 16-bit unsigned integer.\n\t * @example\n\t * bcs.u16().serialize(65535).toBytes() // Uint8Array [ 255, 255 ]\n\t */\n\tu16(options?: BcsTypeOptions<number>) {\n\t\treturn uIntBcsType({\n\t\t\treadMethod: 'read16',\n\t\t\twriteMethod: 'write16',\n\t\t\tsize: 2,\n\t\t\tmaxValue: 2 ** 16 - 1,\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'u16') as 'u16',\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can be used to read and write a 32-bit unsigned integer.\n\t * @example\n\t * bcs.u32().serialize(4294967295).toBytes() // Uint8Array [ 255, 255, 255, 255 ]\n\t */\n\tu32(options?: BcsTypeOptions<number>) {\n\t\treturn uIntBcsType({\n\t\t\treadMethod: 'read32',\n\t\t\twriteMethod: 'write32',\n\t\t\tsize: 4,\n\t\t\tmaxValue: 2 ** 32 - 1,\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'u32') as 'u32',\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can be used to read and write a 64-bit unsigned integer.\n\t * @example\n\t * bcs.u64().serialize(1).toBytes() // Uint8Array [ 1, 0, 0, 0, 0, 0, 0, 0 ]\n\t */\n\tu64(options?: BcsTypeOptions<string, number | bigint | string>) {\n\t\treturn bigUIntBcsType({\n\t\t\treadMethod: 'read64',\n\t\t\twriteMethod: 'write64',\n\t\t\tsize: 8,\n\t\t\tmaxValue: 2n ** 64n - 1n,\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'u64') as 'u64',\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can be used to read and write a 128-bit unsigned integer.\n\t * @example\n\t * bcs.u128().serialize(1).toBytes() // Uint8Array [ 1, ..., 0 ]\n\t */\n\tu128(options?: BcsTypeOptions<string, number | bigint | string>) {\n\t\treturn bigUIntBcsType({\n\t\t\treadMethod: 'read128',\n\t\t\twriteMethod: 'write128',\n\t\t\tsize: 16,\n\t\t\tmaxValue: 2n ** 128n - 1n,\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'u128') as 'u128',\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can be used to read and write a 256-bit unsigned integer.\n\t * @example\n\t * bcs.u256().serialize(1).toBytes() // Uint8Array [ 1, ..., 0 ]\n\t */\n\tu256(options?: BcsTypeOptions<string, number | bigint | string>) {\n\t\treturn bigUIntBcsType({\n\t\t\treadMethod: 'read256',\n\t\t\twriteMethod: 'write256',\n\t\t\tsize: 32,\n\t\t\tmaxValue: 2n ** 256n - 1n,\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'u256') as 'u256',\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can be used to read and write boolean values.\n\t * @example\n\t * bcs.bool().serialize(true).toBytes() // Uint8Array [ 1 ]\n\t */\n\tbool(options?: BcsTypeOptions<boolean>) {\n\t\treturn fixedSizeBcsType({\n\t\t\tsize: 1,\n\t\t\tread: (reader) => reader.read8() === 1,\n\t\t\twrite: (value, writer) => writer.write8(value ? 1 : 0),\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'bool') as 'bool',\n\t\t\tvalidate: (value) => {\n\t\t\t\toptions?.validate?.(value);\n\t\t\t\tif (typeof value !== 'boolean') {\n\t\t\t\t\tthrow new TypeError(`Expected boolean, found ${typeof value}`);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can be used to read and write unsigned LEB encoded integers\n\t * @example\n\t *\n\t */\n\tuleb128(options?: BcsTypeOptions<number>) {\n\t\treturn dynamicSizeBcsType({\n\t\t\tread: (reader) => reader.readULEB(),\n\t\t\tserialize: (value) => {\n\t\t\t\treturn Uint8Array.from(ulebEncode(value));\n\t\t\t},\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'uleb128') as 'uleb128',\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType representing a fixed length byte array\n\t * @param size The number of bytes this types represents\n\t * @example\n\t * bcs.bytes(3).serialize(new Uint8Array([1, 2, 3])).toBytes() // Uint8Array [1, 2, 3]\n\t */\n\tbytes<T extends number>(size: T, options?: BcsTypeOptions<Uint8Array, Iterable<number>>) {\n\t\treturn fixedSizeBcsType<Uint8Array, Iterable<number>, `bytes[${T}]`>({\n\t\t\tsize,\n\t\t\tread: (reader) => reader.readBytes(size),\n\t\t\twrite: (value, writer) => {\n\t\t\t\twriter.writeBytes(new Uint8Array(value));\n\t\t\t},\n\t\t\t...options,\n\t\t\tname: (options?.name ?? `bytes[${size}]`) as `bytes[${T}]`,\n\t\t\tvalidate: (value) => {\n\t\t\t\toptions?.validate?.(value);\n\t\t\t\tif (!value || typeof value !== 'object' || !('length' in value)) {\n\t\t\t\t\tthrow new TypeError(`Expected array, found ${typeof value}`);\n\t\t\t\t}\n\t\t\t\tif (value.length !== size) {\n\t\t\t\t\tthrow new TypeError(`Expected array of length ${size}, found ${value.length}`);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType representing a variable length byte array\n\t *\n\t * @example\n\t * bcs.byteVector().serialize([1, 2, 3]).toBytes() // Uint8Array [3, 1, 2, 3]\n\t */\n\tbyteVector(options?: BcsTypeOptions<Uint8Array, Iterable<number>>) {\n\t\treturn new BcsType<Uint8Array, Iterable<number>, 'vector<u8>'>({\n\t\t\tread: (reader) => {\n\t\t\t\tconst length = reader.readULEB();\n\n\t\t\t\treturn reader.readBytes(length);\n\t\t\t},\n\t\t\twrite: (value, writer) => {\n\t\t\t\tconst array = new Uint8Array(value);\n\t\t\t\twriter.writeULEB(array.length);\n\t\t\t\twriter.writeBytes(array);\n\t\t\t},\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'vector<u8>') as 'vector<u8>',\n\t\t\tserializedSize: (value) => {\n\t\t\t\tconst length = 'length' in value ? (value.length as number) : null;\n\t\t\t\treturn length == null ? null : ulebEncode(length).length + length;\n\t\t\t},\n\t\t\tvalidate: (value) => {\n\t\t\t\toptions?.validate?.(value);\n\t\t\t\tif (!value || typeof value !== 'object' || !('length' in value)) {\n\t\t\t\t\tthrow new TypeError(`Expected array, found ${typeof value}`);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType that can ser/de string values. Strings will be UTF-8 encoded\n\t * @example\n\t * bcs.string().serialize('a').toBytes() // Uint8Array [ 1, 97 ]\n\t */\n\tstring(options?: BcsTypeOptions<string>) {\n\t\treturn stringLikeBcsType({\n\t\t\ttoBytes: (value) => new TextEncoder().encode(value),\n\t\t\tfromBytes: (bytes) => new TextDecoder().decode(bytes),\n\t\t\t...options,\n\t\t\tname: (options?.name ?? 'string') as 'string',\n\t\t});\n\t},\n\t/**\n\t * Creates a BcsType that represents a fixed length array of a given type\n\t * @param size The number of elements in the array\n\t * @param type The BcsType of each element in the array\n\t * @example\n\t * bcs.fixedArray(3, bcs.u8()).serialize([1, 2, 3]).toBytes() // Uint8Array [ 1, 2, 3 ]\n\t */\n\tfixedArray,\n\n\t/**\n\t * Creates a BcsType representing an optional value\n\t * @param type The BcsType of the optional value\n\t * @example\n\t * bcs.option(bcs.u8()).serialize(null).toBytes() // Uint8Array [ 0 ]\n\t * bcs.option(bcs.u8()).serialize(1).toBytes() // Uint8Array [ 1, 1 ]\n\t */\n\toption,\n\n\t/**\n\t * Creates a BcsType representing a variable length vector of a given type\n\t * @param type The BcsType of each element in the vector\n\t *\n\t * @example\n\t * bcs.vector(bcs.u8()).toBytes([1, 2, 3]) // Uint8Array [ 3, 1, 2, 3 ]\n\t */\n\tvector,\n\n\t/**\n\t * Creates a BcsType representing a tuple of a given set of types\n\t * @param types The BcsTypes for each element in the tuple\n\t *\n\t * @example\n\t * const tuple = bcs.tuple([bcs.u8(), bcs.string(), bcs.bool()])\n\t * tuple.serialize([1, 'a', true]).toBytes() // Uint8Array [ 1, 1, 97, 1 ]\n\t */\n\ttuple<\n\t\tconst T extends readonly BcsType<any, any>[],\n\t\tconst Name extends string =\n\t\t\t`(${JoinString<{ [K in keyof T]: T[K] extends BcsType<any, any, infer T> ? T : never }, ', '>})`,\n\t>(\n\t\tfields: T,\n\t\toptions?: BcsTypeOptions<\n\t\t\t{\n\t\t\t\t-readonly [K in keyof T]: T[K] extends BcsType<infer T, any> ? T : never;\n\t\t\t},\n\t\t\t{\n\t\t\t\t[K in keyof T]: T[K] extends BcsType<any, infer T> ? T : never;\n\t\t\t},\n\t\t\tName\n\t\t>,\n\t) {\n\t\treturn new BcsTuple<T, Name>({\n\t\t\tfields,\n\t\t\t...options,\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType representing a struct of a given set of fields\n\t * @param name The name of the struct\n\t * @param fields The fields of the struct. The order of the fields affects how data is serialized and deserialized\n\t *\n\t * @example\n\t * const struct = bcs.struct('MyStruct', {\n\t * a: bcs.u8(),\n\t * b: bcs.string(),\n\t * })\n\t * struct.serialize({ a: 1, b: 'a' }).toBytes() // Uint8Array [ 1, 1, 97 ]\n\t */\n\tstruct<T extends Record<string, BcsType<any>>, const Name extends string = string>(\n\t\tname: Name,\n\t\tfields: T,\n\t\toptions?: Omit<\n\t\t\tBcsTypeOptions<\n\t\t\t\t{\n\t\t\t\t\t[K in keyof T]: T[K] extends BcsType<infer U, any> ? U : never;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t[K in keyof T]: T[K] extends BcsType<any, infer U> ? U : never;\n\t\t\t\t}\n\t\t\t>,\n\t\t\t'name'\n\t\t>,\n\t) {\n\t\treturn new BcsStruct<T>({\n\t\t\tname,\n\t\t\tfields,\n\t\t\t...options,\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType representing an enum of a given set of options\n\t * @param name The name of the enum\n\t * @param values The values of the enum. The order of the values affects how data is serialized and deserialized.\n\t * null can be used to represent a variant with no data.\n\t *\n\t * @example\n\t * const enum = bcs.enum('MyEnum', {\n\t * A: bcs.u8(),\n\t * B: bcs.string(),\n\t * C: null,\n\t * })\n\t * enum.serialize({ A: 1 }).toBytes() // Uint8Array [ 0, 1 ]\n\t * enum.serialize({ B: 'a' }).toBytes() // Uint8Array [ 1, 1, 97 ]\n\t * enum.serialize({ C: true }).toBytes() // Uint8Array [ 2 ]\n\t */\n\tenum<T extends Record<string, BcsType<any> | null>, const Name extends string = string>(\n\t\tname: Name,\n\t\tfields: T,\n\t\toptions?: Omit<\n\t\t\tBcsTypeOptions<\n\t\t\t\tEnumOutputShape<{\n\t\t\t\t\t[K in keyof T]: T[K] extends BcsType<infer U, any, any> ? U : true;\n\t\t\t\t}>,\n\t\t\t\tEnumInputShape<{\n\t\t\t\t\t[K in keyof T]: T[K] extends BcsType<any, infer U, any> ? U : boolean | object | null;\n\t\t\t\t}>,\n\t\t\t\tName\n\t\t\t>,\n\t\t\t'name'\n\t\t>,\n\t) {\n\t\treturn new BcsEnum<T, Name>({\n\t\t\tname,\n\t\t\tfields,\n\t\t\t...options,\n\t\t});\n\t},\n\n\t/**\n\t * Creates a BcsType representing a map of a given key and value type\n\t * @param keyType The BcsType of the key\n\t * @param valueType The BcsType of the value\n\t * @example\n\t * const map = bcs.map(bcs.u8(), bcs.string())\n\t * map.serialize(new Map([[2, 'a']])).toBytes() // Uint8Array [ 1, 2, 1, 97 ]\n\t */\n\tmap,\n\n\t/**\n\t * Creates a BcsType that wraps another BcsType which is lazily evaluated. This is useful for creating recursive types.\n\t * @param cb A callback that returns the BcsType\n\t */\n\tlazy<T extends BcsType<any>>(cb: () => T): T {\n\t\treturn lazyBcsType(cb) as T;\n\t},\n};\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase58, splitGenericParameters } from '@mysten/bcs';\n\nimport { isValidNamedPackage } from './move-registry.js';\n\nconst TX_DIGEST_LENGTH = 32;\n\n/** Returns whether the tx digest is valid based on the serialization format */\nexport function isValidTransactionDigest(value: string): value is string {\n\ttry {\n\t\tconst buffer = fromBase58(value);\n\t\treturn buffer.length === TX_DIGEST_LENGTH;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\n// TODO - can we automatically sync this with rust length definition?\n// Source of truth is\n// https://github.com/MystenLabs/sui/blob/acb2b97ae21f47600e05b0d28127d88d0725561d/crates/sui-types/src/base_types.rs#L67\n// which uses the Move account address length\n// https://github.com/move-language/move/blob/67ec40dc50c66c34fd73512fcc412f3b68d67235/language/move-core/types/src/account_address.rs#L23 .\n\nexport const SUI_ADDRESS_LENGTH = 32;\nexport function isValidSuiAddress(value: string): value is string {\n\treturn isHex(value) && getHexByteLength(value) === SUI_ADDRESS_LENGTH;\n}\n\nexport function isValidSuiObjectId(value: string): boolean {\n\treturn isValidSuiAddress(value);\n}\n\nconst MOVE_IDENTIFIER_REGEX = /^[a-zA-Z][a-zA-Z0-9_]*$/;\n\nexport function isValidMoveIdentifier(name: string): boolean {\n\treturn MOVE_IDENTIFIER_REGEX.test(name);\n}\n\nconst PRIMITIVE_TYPE_TAGS = [\n\t'bool',\n\t'u8',\n\t'u16',\n\t'u32',\n\t'u64',\n\t'u128',\n\t'u256',\n\t'address',\n\t'signer',\n];\n\nconst VECTOR_TYPE_REGEX = /^vector<(.+)>$/;\n\nfunction isValidTypeTag(type: string): boolean {\n\tif (PRIMITIVE_TYPE_TAGS.includes(type)) return true;\n\n\tconst vectorMatch = type.match(VECTOR_TYPE_REGEX);\n\tif (vectorMatch) return isValidTypeTag(vectorMatch[1]);\n\n\tif (type.includes('::')) return isValidStructTag(type);\n\n\treturn false;\n}\n\nfunction isValidParsedStructTag(tag: StructTag): boolean {\n\tif (!isValidSuiAddress(tag.address) && !isValidNamedPackage(tag.address)) {\n\t\treturn false;\n\t}\n\n\tif (!isValidMoveIdentifier(tag.module) || !isValidMoveIdentifier(tag.name)) {\n\t\treturn false;\n\t}\n\n\treturn tag.typeParams.every((param) => {\n\t\tif (typeof param === 'string') {\n\t\t\treturn isValidTypeTag(param);\n\t\t}\n\t\treturn isValidParsedStructTag(param);\n\t});\n}\n\nexport function isValidStructTag(type: string): boolean {\n\ttry {\n\t\tconst tag = parseStructTag(type);\n\t\treturn isValidParsedStructTag(tag);\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport type StructTag = {\n\taddress: string;\n\tmodule: string;\n\tname: string;\n\ttypeParams: (string | StructTag)[];\n};\n\nfunction parseTypeTag(type: string): string | StructTag {\n\tif (type.startsWith('vector<')) {\n\t\tif (!type.endsWith('>')) {\n\t\t\tthrow new Error(`Invalid type tag: ${type}`);\n\t\t}\n\t\tconst inner = type.slice(7, -1);\n\t\tif (!inner) {\n\t\t\tthrow new Error(`Invalid type tag: ${type}`);\n\t\t}\n\t\tconst parsed = parseTypeTag(inner);\n\t\tif (typeof parsed === 'string') {\n\t\t\treturn `vector<${parsed}>`;\n\t\t}\n\t\treturn `vector<${normalizeStructTag(parsed)}>`;\n\t}\n\n\tif (!type.includes('::')) return type;\n\n\treturn parseStructTag(type);\n}\n\nexport function parseStructTag(type: string): StructTag {\n\tconst parts = type.split('::');\n\n\tif (parts.length < 3) {\n\t\tthrow new Error(`Invalid struct tag: ${type}`);\n\t}\n\n\tconst [address, module] = parts;\n\n\tif (!address || !module) {\n\t\tthrow new Error(`Invalid struct tag: ${type}`);\n\t}\n\n\tconst isMvrPackage = isValidNamedPackage(address);\n\n\tconst rest = type.slice(address.length + module.length + 4);\n\tconst name = rest.includes('<') ? rest.slice(0, rest.indexOf('<')) : rest;\n\n\tif (!name || (rest.includes('<') && !rest.endsWith('>'))) {\n\t\tthrow new Error(`Invalid struct tag: ${type}`);\n\t}\n\n\tconst typeParams = rest.includes('<')\n\t\t? splitGenericParameters(rest.slice(rest.indexOf('<') + 1, rest.lastIndexOf('>'))).map(\n\t\t\t\t(typeParam) => parseTypeTag(typeParam.trim()),\n\t\t\t)\n\t\t: [];\n\n\treturn {\n\t\taddress: isMvrPackage ? address : normalizeSuiAddress(address),\n\t\tmodule,\n\t\tname,\n\t\ttypeParams,\n\t};\n}\n\nexport function normalizeStructTag(type: string | StructTag): string {\n\tif (typeof type === 'string' && type.startsWith('vector<')) {\n\t\tthrow new Error(\n\t\t\t'normalizeStructTag does not support vector types. Use normalizeTypeTag instead.',\n\t\t);\n\t}\n\n\tconst { address, module, name, typeParams } =\n\t\ttypeof type === 'string' ? parseStructTag(type) : type;\n\n\tconst formattedTypeParams =\n\t\ttypeParams?.length > 0\n\t\t\t? `<${typeParams\n\t\t\t\t\t.map((typeParam) =>\n\t\t\t\t\t\ttypeof typeParam === 'string' ? typeParam : normalizeStructTag(typeParam),\n\t\t\t\t\t)\n\t\t\t\t\t.join(',')}>`\n\t\t\t: '';\n\n\treturn `${address}::${module}::${name}${formattedTypeParams}`;\n}\n\n/**\n * Perform the following operations:\n * 1. Make the address lower case\n * 2. Prepend `0x` if the string does not start with `0x`.\n * 3. Add more zeros if the length of the address(excluding `0x`) is less than `SUI_ADDRESS_LENGTH`\n *\n * WARNING: if the address value itself starts with `0x`, e.g., `0x0x`, the default behavior\n * is to treat the first `0x` not as part of the address. The default behavior can be overridden by\n * setting `forceAdd0x` to true\n *\n */\nexport function normalizeSuiAddress(value: string, forceAdd0x: boolean = false): string {\n\tlet address = value.toLowerCase();\n\tif (!forceAdd0x && address.startsWith('0x')) {\n\t\taddress = address.slice(2);\n\t}\n\treturn `0x${address.padStart(SUI_ADDRESS_LENGTH * 2, '0')}`;\n}\n\nexport function normalizeSuiObjectId(value: string, forceAdd0x: boolean = false): string {\n\treturn normalizeSuiAddress(value, forceAdd0x);\n}\n\nfunction isHex(value: string): boolean {\n\treturn /^(0x|0X)?[a-fA-F0-9]+$/.test(value) && value.length % 2 === 0;\n}\n\nfunction getHexByteLength(value: string): number {\n\treturn /^(0x|0X)/.test(value) ? (value.length - 2) / 2 : value.length / 2;\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { splitGenericParameters } from '@mysten/bcs';\n\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport type { TypeTag } from './types.js';\n\nconst VECTOR_REGEX = /^vector<(.+)>$/;\nconst STRUCT_REGEX = /^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;\n\nexport class TypeTagSerializer {\n\tstatic parseFromStr(str: string, normalizeAddress = false): TypeTag {\n\t\tif (str === 'address') {\n\t\t\treturn { address: null };\n\t\t} else if (str === 'bool') {\n\t\t\treturn { bool: null };\n\t\t} else if (str === 'u8') {\n\t\t\treturn { u8: null };\n\t\t} else if (str === 'u16') {\n\t\t\treturn { u16: null };\n\t\t} else if (str === 'u32') {\n\t\t\treturn { u32: null };\n\t\t} else if (str === 'u64') {\n\t\t\treturn { u64: null };\n\t\t} else if (str === 'u128') {\n\t\t\treturn { u128: null };\n\t\t} else if (str === 'u256') {\n\t\t\treturn { u256: null };\n\t\t} else if (str === 'signer') {\n\t\t\treturn { signer: null };\n\t\t}\n\n\t\tconst vectorMatch = str.match(VECTOR_REGEX);\n\t\tif (vectorMatch) {\n\t\t\treturn {\n\t\t\t\tvector: TypeTagSerializer.parseFromStr(vectorMatch[1], normalizeAddress),\n\t\t\t};\n\t\t}\n\n\t\tconst structMatch = str.match(STRUCT_REGEX);\n\t\tif (structMatch) {\n\t\t\tconst address = normalizeAddress ? normalizeSuiAddress(structMatch[1]) : structMatch[1];\n\t\t\treturn {\n\t\t\t\tstruct: {\n\t\t\t\t\taddress,\n\t\t\t\t\tmodule: structMatch[2],\n\t\t\t\t\tname: structMatch[3],\n\t\t\t\t\ttypeParams:\n\t\t\t\t\t\tstructMatch[5] === undefined\n\t\t\t\t\t\t\t? []\n\t\t\t\t\t\t\t: TypeTagSerializer.parseStructTypeArgs(structMatch[5], normalizeAddress),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tthrow new Error(`Encountered unexpected token when parsing type args for ${str}`);\n\t}\n\n\tstatic parseStructTypeArgs(str: string, normalizeAddress = false): TypeTag[] {\n\t\treturn splitGenericParameters(str).map((tok) =>\n\t\t\tTypeTagSerializer.parseFromStr(tok, normalizeAddress),\n\t\t);\n\t}\n\n\tstatic tagToString(tag: TypeTag): string {\n\t\tif ('bool' in tag) {\n\t\t\treturn 'bool';\n\t\t}\n\t\tif ('u8' in tag) {\n\t\t\treturn 'u8';\n\t\t}\n\t\tif ('u16' in tag) {\n\t\t\treturn 'u16';\n\t\t}\n\t\tif ('u32' in tag) {\n\t\t\treturn 'u32';\n\t\t}\n\t\tif ('u64' in tag) {\n\t\t\treturn 'u64';\n\t\t}\n\t\tif ('u128' in tag) {\n\t\t\treturn 'u128';\n\t\t}\n\t\tif ('u256' in tag) {\n\t\t\treturn 'u256';\n\t\t}\n\t\tif ('address' in tag) {\n\t\t\treturn 'address';\n\t\t}\n\t\tif ('signer' in tag) {\n\t\t\treturn 'signer';\n\t\t}\n\t\tif ('vector' in tag) {\n\t\t\treturn `vector<${TypeTagSerializer.tagToString(tag.vector)}>`;\n\t\t}\n\t\tif ('struct' in tag) {\n\t\t\tconst struct = tag.struct;\n\t\t\tconst typeParams = struct.typeParams.map(TypeTagSerializer.tagToString).join(', ');\n\t\t\treturn `${struct.address}::${struct.module}::${struct.name}${\n\t\t\t\ttypeParams ? `<${typeParams}>` : ''\n\t\t\t}`;\n\t\t}\n\t\tthrow new Error('Invalid TypeTag');\n\t}\n}\n\nexport function normalizeTypeTag(type: string): string {\n\treturn TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr(type));\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { BcsType, BcsTypeOptions } from '@mysten/bcs';\nimport { bcs, fromBase58, fromBase64, fromHex, toBase58, toBase64, toHex } from '@mysten/bcs';\n\nimport { isValidSuiAddress, normalizeSuiAddress, SUI_ADDRESS_LENGTH } from '../utils/sui-types.js';\nimport { TypeTagSerializer } from './type-tag-serializer.js';\nimport type { TypeTag as TypeTagType } from './types.js';\n\nfunction unsafe_u64(options?: BcsTypeOptions<number>) {\n\treturn bcs\n\t\t.u64({\n\t\t\tname: 'unsafe_u64',\n\t\t\t...(options as object),\n\t\t})\n\t\t.transform({\n\t\t\tinput: (val: number | string) => val,\n\t\t\toutput: (val) => Number(val),\n\t\t});\n}\n\nfunction optionEnum<T extends BcsType<any, any>>(type: T) {\n\treturn bcs.enum('Option', {\n\t\tNone: null,\n\t\tSome: type,\n\t});\n}\n\nexport const Address = bcs.bytes(SUI_ADDRESS_LENGTH).transform({\n\tvalidate: (val) => {\n\t\tconst address = typeof val === 'string' ? val : toHex(val);\n\t\tif (!address || !isValidSuiAddress(normalizeSuiAddress(address))) {\n\t\t\tthrow new Error(`Invalid Sui address ${address}`);\n\t\t}\n\t},\n\tinput: (val: string | Uint8Array) =>\n\t\ttypeof val === 'string' ? fromHex(normalizeSuiAddress(val)) : val,\n\toutput: (val) => normalizeSuiAddress(toHex(val)),\n});\n\nexport const ObjectDigest = bcs.byteVector().transform({\n\tname: 'ObjectDigest',\n\tinput: (value: string) => fromBase58(value),\n\toutput: (value) => toBase58(new Uint8Array(value)),\n\tvalidate: (value) => {\n\t\tif (fromBase58(value).length !== 32) {\n\t\t\tthrow new Error('ObjectDigest must be 32 bytes');\n\t\t}\n\t},\n});\n\nexport const SuiObjectRef = bcs.struct('SuiObjectRef', {\n\tobjectId: Address,\n\tversion: bcs.u64(),\n\tdigest: ObjectDigest,\n});\n\nexport const SharedObjectRef = bcs.struct('SharedObjectRef', {\n\tobjectId: Address,\n\tinitialSharedVersion: bcs.u64(),\n\tmutable: bcs.bool(),\n});\n\nexport const ObjectArg = bcs.enum('ObjectArg', {\n\tImmOrOwnedObject: SuiObjectRef,\n\tSharedObject: SharedObjectRef,\n\tReceiving: SuiObjectRef,\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const Owner = bcs.enum('Owner', {\n\tAddressOwner: Address,\n\tObjectOwner: Address,\n\tShared: bcs.struct('Shared', {\n\t\tinitialSharedVersion: bcs.u64(),\n\t}),\n\tImmutable: null,\n\tConsensusAddressOwner: bcs.struct('ConsensusAddressOwner', {\n\t\tstartVersion: bcs.u64(),\n\t\towner: Address,\n\t}),\n});\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const Reservation = bcs.enum('Reservation', {\n\tMaxAmountU64: bcs.u64(),\n});\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const WithdrawalType = bcs.enum('WithdrawalType', {\n\tBalance: bcs.lazy(() => TypeTag),\n});\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const WithdrawFrom = bcs.enum('WithdrawFrom', {\n\tSender: null,\n\tSponsor: null,\n});\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const FundsWithdrawal = bcs.struct('FundsWithdrawal', {\n\treservation: Reservation,\n\ttypeArg: WithdrawalType,\n\twithdrawFrom: WithdrawFrom,\n});\n\nexport const CallArg = bcs.enum('CallArg', {\n\tPure: bcs.struct('Pure', {\n\t\tbytes: bcs.byteVector().transform({\n\t\t\tinput: (val: string | Uint8Array) => (typeof val === 'string' ? fromBase64(val) : val),\n\t\t\toutput: (val) => toBase64(new Uint8Array(val)),\n\t\t}),\n\t}),\n\tObject: ObjectArg,\n\tFundsWithdrawal: FundsWithdrawal,\n});\n\nconst InnerTypeTag: BcsType<TypeTagType, TypeTagType> = bcs.enum('TypeTag', {\n\tbool: null,\n\tu8: null,\n\tu64: null,\n\tu128: null,\n\taddress: null,\n\tsigner: null,\n\tvector: bcs.lazy(() => InnerTypeTag),\n\tstruct: bcs.lazy(() => StructTag),\n\tu16: null,\n\tu32: null,\n\tu256: null,\n}) as BcsType<TypeTagType>;\n\nexport const TypeTag = InnerTypeTag.transform({\n\tinput: (typeTag: string | TypeTagType) =>\n\t\ttypeof typeTag === 'string' ? TypeTagSerializer.parseFromStr(typeTag, true) : typeTag,\n\toutput: (typeTag: TypeTagType) => TypeTagSerializer.tagToString(typeTag),\n});\n\nexport const Argument = bcs.enum('Argument', {\n\tGasCoin: null,\n\tInput: bcs.u16(),\n\tResult: bcs.u16(),\n\tNestedResult: bcs.tuple([bcs.u16(), bcs.u16()]),\n});\n\nexport const ProgrammableMoveCall = bcs.struct('ProgrammableMoveCall', {\n\tpackage: Address,\n\tmodule: bcs.string(),\n\tfunction: bcs.string(),\n\ttypeArguments: bcs.vector(TypeTag),\n\targuments: bcs.vector(Argument),\n});\n\nexport const Command = bcs.enum('Command', {\n\t/**\n\t * A Move Call - any public Move function can be called via\n\t * this transaction. The results can be used that instant to pass\n\t * into the next transaction.\n\t */\n\tMoveCall: ProgrammableMoveCall,\n\t/**\n\t * Transfer vector of objects to a receiver.\n\t */\n\tTransferObjects: bcs.struct('TransferObjects', {\n\t\tobjects: bcs.vector(Argument),\n\t\taddress: Argument,\n\t}),\n\t// /**\n\t// * Split `amount` from a `coin`.\n\t// */\n\tSplitCoins: bcs.struct('SplitCoins', {\n\t\tcoin: Argument,\n\t\tamounts: bcs.vector(Argument),\n\t}),\n\t// /**\n\t// * Merge Vector of Coins (`sources`) into a `destination`.\n\t// */\n\tMergeCoins: bcs.struct('MergeCoins', {\n\t\tdestination: Argument,\n\t\tsources: bcs.vector(Argument),\n\t}),\n\t// /**\n\t// * Publish a Move module.\n\t// */\n\tPublish: bcs.struct('Publish', {\n\t\tmodules: bcs.vector(\n\t\t\tbcs.byteVector().transform({\n\t\t\t\tinput: (val: string | Uint8Array) => (typeof val === 'string' ? fromBase64(val) : val),\n\t\t\t\toutput: (val) => toBase64(new Uint8Array(val)),\n\t\t\t}),\n\t\t),\n\t\tdependencies: bcs.vector(Address),\n\t}),\n\t// /**\n\t// * Build a vector of objects using the input arguments.\n\t// * It is impossible to export construct a `vector<T: key>` otherwise,\n\t// * so this call serves a utility function.\n\t// */\n\tMakeMoveVec: bcs.struct('MakeMoveVec', {\n\t\ttype: optionEnum(TypeTag).transform({\n\t\t\tinput: (val: string | null) =>\n\t\t\t\tval === null\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tNone: true,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tSome: val,\n\t\t\t\t\t\t},\n\t\t\toutput: (val) => val.Some ?? null,\n\t\t}),\n\t\telements: bcs.vector(Argument),\n\t}),\n\tUpgrade: bcs.struct('Upgrade', {\n\t\tmodules: bcs.vector(\n\t\t\tbcs.byteVector().transform({\n\t\t\t\tinput: (val: string | Uint8Array) => (typeof val === 'string' ? fromBase64(val) : val),\n\t\t\t\toutput: (val) => toBase64(new Uint8Array(val)),\n\t\t\t}),\n\t\t),\n\t\tdependencies: bcs.vector(Address),\n\t\tpackage: Address,\n\t\tticket: Argument,\n\t}),\n});\n\nexport const ProgrammableTransaction = bcs.struct('ProgrammableTransaction', {\n\tinputs: bcs.vector(CallArg),\n\tcommands: bcs.vector(Command),\n});\n\nexport const TransactionKind = bcs.enum('TransactionKind', {\n\tProgrammableTransaction: ProgrammableTransaction,\n\tChangeEpoch: null,\n\tGenesis: null,\n\tConsensusCommitPrologue: null,\n});\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const ValidDuring = bcs.struct('ValidDuring', {\n\tminEpoch: bcs.option(bcs.u64()),\n\tmaxEpoch: bcs.option(bcs.u64()),\n\tminTimestamp: bcs.option(bcs.u64()),\n\tmaxTimestamp: bcs.option(bcs.u64()),\n\tchain: ObjectDigest,\n\tnonce: bcs.u32(),\n});\n\nexport const TransactionExpiration = bcs.enum('TransactionExpiration', {\n\tNone: null,\n\tEpoch: unsafe_u64(),\n\tValidDuring: ValidDuring,\n});\n\nexport const StructTag = bcs.struct('StructTag', {\n\taddress: Address,\n\tmodule: bcs.string(),\n\tname: bcs.string(),\n\ttypeParams: bcs.vector(InnerTypeTag),\n});\n\nexport const GasData = bcs.struct('GasData', {\n\tpayment: bcs.vector(SuiObjectRef),\n\towner: Address,\n\tprice: bcs.u64(),\n\tbudget: bcs.u64(),\n});\n\nexport const TransactionDataV1 = bcs.struct('TransactionDataV1', {\n\tkind: TransactionKind,\n\tsender: Address,\n\tgasData: GasData,\n\texpiration: TransactionExpiration,\n});\n\nexport const TransactionData = bcs.enum('TransactionData', {\n\tV1: TransactionDataV1,\n});\n\nexport const IntentScope = bcs.enum('IntentScope', {\n\tTransactionData: null,\n\tTransactionEffects: null,\n\tCheckpointSummary: null,\n\tPersonalMessage: null,\n});\n\nexport const IntentVersion = bcs.enum('IntentVersion', {\n\tV0: null,\n});\n\nexport const AppId = bcs.enum('AppId', {\n\tSui: null,\n});\n\nexport const Intent = bcs.struct('Intent', {\n\tscope: IntentScope,\n\tversion: IntentVersion,\n\tappId: AppId,\n});\n\nexport function IntentMessage<T extends BcsType<any>>(T: T) {\n\treturn bcs.struct(`IntentMessage<${T.name}>`, {\n\t\tintent: Intent,\n\t\tvalue: T,\n\t});\n}\n\nexport const CompressedSignature = bcs.enum('CompressedSignature', {\n\tED25519: bcs.bytes(64),\n\tSecp256k1: bcs.bytes(64),\n\tSecp256r1: bcs.bytes(64),\n\tZkLogin: bcs.byteVector(),\n\tPasskey: bcs.byteVector(),\n});\n\nexport const PublicKey = bcs.enum('PublicKey', {\n\tED25519: bcs.bytes(32),\n\tSecp256k1: bcs.bytes(33),\n\tSecp256r1: bcs.bytes(33),\n\tZkLogin: bcs.byteVector(),\n\tPasskey: bcs.bytes(33),\n});\n\nexport const MultiSigPkMap = bcs.struct('MultiSigPkMap', {\n\tpubKey: PublicKey,\n\tweight: bcs.u8(),\n});\n\nexport const MultiSigPublicKey = bcs.struct('MultiSigPublicKey', {\n\tpk_map: bcs.vector(MultiSigPkMap),\n\tthreshold: bcs.u16(),\n});\n\nexport const MultiSig = bcs.struct('MultiSig', {\n\tsigs: bcs.vector(CompressedSignature),\n\tbitmap: bcs.u16(),\n\tmultisig_pk: MultiSigPublicKey,\n});\n\nexport const base64String = bcs.byteVector().transform({\n\tinput: (val: string | Uint8Array) => (typeof val === 'string' ? fromBase64(val) : val),\n\toutput: (val) => toBase64(new Uint8Array(val)),\n});\n\nexport const SenderSignedTransaction = bcs.struct('SenderSignedTransaction', {\n\tintentMessage: IntentMessage(TransactionData),\n\ttxSignatures: bcs.vector(base64String),\n});\n\nexport const SenderSignedData = bcs.vector(SenderSignedTransaction, {\n\tname: 'SenderSignedData',\n});\n\nexport const PasskeyAuthenticator = bcs.struct('PasskeyAuthenticator', {\n\tauthenticatorData: bcs.byteVector(),\n\tclientDataJson: bcs.string(),\n\tuserSignature: bcs.byteVector(),\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const MoveObjectType = bcs.enum('MoveObjectType', {\n\tOther: StructTag,\n\tGasCoin: null,\n\tStakedSui: null,\n\tCoin: TypeTag,\n\tAccumulatorBalanceWrapper: null,\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const TypeOrigin = bcs.struct('TypeOrigin', {\n\tmoduleName: bcs.string(),\n\tdatatypeName: bcs.string(),\n\tpackage: Address,\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const UpgradeInfo = bcs.struct('UpgradeInfo', {\n\tupgradedId: Address,\n\tupgradedVersion: bcs.u64(),\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const MovePackage = bcs.struct('MovePackage', {\n\tid: Address,\n\tversion: bcs.u64(),\n\tmoduleMap: bcs.map(bcs.string(), bcs.byteVector()),\n\ttypeOriginTable: bcs.vector(TypeOrigin),\n\tlinkageTable: bcs.map(Address, UpgradeInfo),\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const MoveObject = bcs.struct('MoveObject', {\n\ttype: MoveObjectType,\n\thasPublicTransfer: bcs.bool(),\n\tversion: bcs.u64(),\n\tcontents: bcs.byteVector(),\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const Data = bcs.enum('Data', {\n\tMove: MoveObject,\n\tPackage: MovePackage,\n});\n\n// Rust: crates/sui-types/src/object.rs\nexport const ObjectInner = bcs.struct('ObjectInner', {\n\tdata: Data,\n\towner: Owner,\n\tpreviousTransaction: ObjectDigest,\n\tstorageRebate: bcs.u64(),\n});\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/bcs';\n\nimport { Address, ObjectDigest, Owner, SuiObjectRef, TypeTag } from './bcs.js';\n\n// Rust: crates/sui-types/src/execution_status.rs (PackageUpgradeError enum)\nconst PackageUpgradeError = bcs.enum('PackageUpgradeError', {\n\tUnableToFetchPackage: bcs.struct('UnableToFetchPackage', { packageId: Address }),\n\tNotAPackage: bcs.struct('NotAPackage', { objectId: Address }),\n\tIncompatibleUpgrade: null,\n\tDigestDoesNotMatch: bcs.struct('DigestDoesNotMatch', { digest: bcs.byteVector() }),\n\tUnknownUpgradePolicy: bcs.struct('UnknownUpgradePolicy', { policy: bcs.u8() }),\n\tPackageIDDoesNotMatch: bcs.struct('PackageIDDoesNotMatch', {\n\t\tpackageId: Address,\n\t\tticketId: Address,\n\t}),\n});\n\n// Rust: move-core-types/src/language_storage.rs\nconst ModuleId = bcs.struct('ModuleId', {\n\taddress: Address,\n\tname: bcs.string(),\n});\n// Rust: crates/sui-types/src/execution_status.rs\nconst MoveLocation = bcs.struct('MoveLocation', {\n\tmodule: ModuleId,\n\tfunction: bcs.u16(),\n\tinstruction: bcs.u16(),\n\tfunctionName: bcs.option(bcs.string()),\n});\n\n// Rust: crates/sui-types/src/execution_status.rs\nconst CommandArgumentError = bcs.enum('CommandArgumentError', {\n\tTypeMismatch: null,\n\tInvalidBCSBytes: null,\n\tInvalidUsageOfPureArg: null,\n\tInvalidArgumentToPrivateEntryFunction: null,\n\tIndexOutOfBounds: bcs.struct('IndexOutOfBounds', { idx: bcs.u16() }),\n\tSecondaryIndexOutOfBounds: bcs.struct('SecondaryIndexOutOfBounds', {\n\t\tresultIdx: bcs.u16(),\n\t\tsecondaryIdx: bcs.u16(),\n\t}),\n\tInvalidResultArity: bcs.struct('InvalidResultArity', { resultIdx: bcs.u16() }),\n\tInvalidGasCoinUsage: null,\n\tInvalidValueUsage: null,\n\tInvalidObjectByValue: null,\n\tInvalidObjectByMutRef: null,\n\tSharedObjectOperationNotAllowed: null,\n\tInvalidArgumentArity: null,\n\tInvalidTransferObject: null,\n\tInvalidMakeMoveVecNonObjectArgument: null,\n\tArgumentWithoutValue: null,\n\tCannotMoveBorrowedValue: null,\n\tCannotWriteToExtendedReference: null,\n\tInvalidReferenceArgument: null,\n});\n\n// Rust: crates/sui-types/src/execution_status.rs\nconst TypeArgumentError = bcs.enum('TypeArgumentError', {\n\tTypeNotFound: null,\n\tConstraintNotSatisfied: null,\n});\n\n// Rust: crates/sui-types/src/execution_status.rs\nconst ExecutionFailureStatus = bcs.enum('ExecutionFailureStatus', {\n\tInsufficientGas: null,\n\tInvalidGasObject: null,\n\tInvariantViolation: null,\n\tFeatureNotYetSupported: null,\n\tMoveObjectTooBig: bcs.struct('MoveObjectTooBig', {\n\t\tobjectSize: bcs.u64(),\n\t\tmaxObjectSize: bcs.u64(),\n\t}),\n\tMovePackageTooBig: bcs.struct('MovePackageTooBig', {\n\t\tobjectSize: bcs.u64(),\n\t\tmaxObjectSize: bcs.u64(),\n\t}),\n\tCircularObjectOwnership: bcs.struct('CircularObjectOwnership', { object: Address }),\n\tInsufficientCoinBalance: null,\n\tCoinBalanceOverflow: null,\n\tPublishErrorNonZeroAddress: null,\n\tSuiMoveVerificationError: null,\n\tMovePrimitiveRuntimeError: bcs.option(MoveLocation),\n\tMoveAbort: bcs.tuple([MoveLocation, bcs.u64()]),\n\tVMVerificationOrDeserializationError: null,\n\tVMInvariantViolation: null,\n\tFunctionNotFound: null,\n\tArityMismatch: null,\n\tTypeArityMismatch: null,\n\tNonEntryFunctionInvoked: null,\n\tCommandArgumentError: bcs.struct('CommandArgumentError', {\n\t\targIdx: bcs.u16(),\n\t\tkind: CommandArgumentError,\n\t}),\n\tTypeArgumentError: bcs.struct('TypeArgumentError', {\n\t\targumentIdx: bcs.u16(),\n\t\tkind: TypeArgumentError,\n\t}),\n\tUnusedValueWithoutDrop: bcs.struct('UnusedValueWithoutDrop', {\n\t\tresultIdx: bcs.u16(),\n\t\tsecondaryIdx: bcs.u16(),\n\t}),\n\tInvalidPublicFunctionReturnType: bcs.struct('InvalidPublicFunctionReturnType', {\n\t\tidx: bcs.u16(),\n\t}),\n\tInvalidTransferObject: null,\n\tEffectsTooLarge: bcs.struct('EffectsTooLarge', { currentSize: bcs.u64(), maxSize: bcs.u64() }),\n\tPublishUpgradeMissingDependency: null,\n\tPublishUpgradeDependencyDowngrade: null,\n\tPackageUpgradeError: bcs.struct('PackageUpgradeError', { upgradeError: PackageUpgradeError }),\n\tWrittenObjectsTooLarge: bcs.struct('WrittenObjectsTooLarge', {\n\t\tcurrentSize: bcs.u64(),\n\t\tmaxSize: bcs.u64(),\n\t}),\n\tCertificateDenied: null,\n\tSuiMoveVerificationTimedout: null,\n\tSharedObjectOperationNotAllowed: null,\n\tInputObjectDeleted: null,\n\tExecutionCancelledDueToSharedObjectCongestion: bcs.struct(\n\t\t'ExecutionCancelledDueToSharedObjectCongestion',\n\t\t{\n\t\t\tcongested_objects: bcs.vector(Address),\n\t\t},\n\t),\n\tAddressDeniedForCoin: bcs.struct('AddressDeniedForCoin', {\n\t\taddress: Address,\n\t\tcoinType: bcs.string(),\n\t}),\n\tCoinTypeGlobalPause: bcs.struct('CoinTypeGlobalPause', { coinType: bcs.string() }),\n\tExecutionCancelledDueToRandomnessUnavailable: null,\n\tMoveVectorElemTooBig: bcs.struct('MoveVectorElemTooBig', {\n\t\tvalueSize: bcs.u64(),\n\t\tmaxScaledSize: bcs.u64(),\n\t}),\n\tMoveRawValueTooBig: bcs.struct('MoveRawValueTooBig', {\n\t\tvalueSize: bcs.u64(),\n\t\tmaxScaledSize: bcs.u64(),\n\t}),\n\tInvalidLinkage: null,\n\tInsufficientBalanceForWithdraw: null,\n\tNonExclusiveWriteInputObjectModified: bcs.struct('NonExclusiveWriteInputObjectModified', {\n\t\tid: Address,\n\t}),\n});\n\n// Rust: crates/sui-types/src/execution_status.rs\nexport const ExecutionStatus = bcs.enum('ExecutionStatus', {\n\tSuccess: null,\n\tFailure: bcs.struct('Failure', {\n\t\terror: ExecutionFailureStatus,\n\t\tcommand: bcs.option(bcs.u64()),\n\t}),\n});\n\n// Rust: crates/sui-types/src/gas.rs\nconst GasCostSummary = bcs.struct('GasCostSummary', {\n\tcomputationCost: bcs.u64(),\n\tstorageCost: bcs.u64(),\n\tstorageRebate: bcs.u64(),\n\tnonRefundableStorageFee: bcs.u64(),\n});\n\n// Rust: crates/sui-types/src/effects/effects_v1.rs\nconst TransactionEffectsV1 = bcs.struct('TransactionEffectsV1', {\n\tstatus: ExecutionStatus,\n\texecutedEpoch: bcs.u64(),\n\tgasUsed: GasCostSummary,\n\tmodifiedAtVersions: bcs.vector(bcs.tuple([Address, bcs.u64()])),\n\tsharedObjects: bcs.vector(SuiObjectRef),\n\ttransactionDigest: ObjectDigest,\n\tcreated: bcs.vector(bcs.tuple([SuiObjectRef, Owner])),\n\tmutated: bcs.vector(bcs.tuple([SuiObjectRef, Owner])),\n\tunwrapped: bcs.vector(bcs.tuple([SuiObjectRef, Owner])),\n\tdeleted: bcs.vector(SuiObjectRef),\n\tunwrappedThenDeleted: bcs.vector(SuiObjectRef),\n\twrapped: bcs.vector(SuiObjectRef),\n\tgasObject: bcs.tuple([SuiObjectRef, Owner]),\n\teventsDigest: bcs.option(ObjectDigest),\n\tdependencies: bcs.vector(ObjectDigest),\n});\n\n// Rust: crates/sui-types/src/base_types.rs\nconst VersionDigest = bcs.tuple([bcs.u64(), ObjectDigest]);\n\n// Rust: crates/sui-types/src/effects/object_change.rs\nconst ObjectIn = bcs.enum('ObjectIn', {\n\tNotExist: null,\n\tExist: bcs.tuple([VersionDigest, Owner]),\n});\n\n// Rust: crates/sui-types/src/effects/object_change.rs\nconst AccumulatorAddress = bcs.struct('AccumulatorAddress', {\n\taddress: Address,\n\t// TODO: ask why this is the name\n\tty: TypeTag,\n});\n\n// Rust: crates/sui-types/src/effects/object_change.rs\nconst AccumulatorOperation = bcs.enum('AccumulatorOperation', {\n\tMerge: null,\n\tSplit: null,\n});\n\n// Rust: crates/sui-types/src/effects/object_change.rs\nconst AccumulatorValue = bcs.enum('AccumulatorValue', {\n\tInteger: bcs.u64(),\n\tIntegerTuple: bcs.tuple([bcs.u64(), bcs.u64()]),\n\t// NonEmpty<(u64, Digest)> in Rust - vector must have at least one element\n\tEventDigest: bcs.vector(bcs.tuple([bcs.u64(), ObjectDigest])),\n});\n\n// Rust: crates/sui-types/src/effects/object_change.rs\nconst AccumulatorWriteV1 = bcs.struct('AccumulatorWriteV1', {\n\taddress: AccumulatorAddress,\n\toperation: AccumulatorOperation,\n\tvalue: AccumulatorValue,\n});\n\n// Rust: crates/sui-types/src/effects/object_change.rs\nconst ObjectOut = bcs.enum('ObjectOut', {\n\tNotExist: null,\n\tObjectWrite: bcs.tuple([ObjectDigest, Owner]),\n\tPackageWrite: VersionDigest,\n\tAccumulatorWriteV1: AccumulatorWriteV1,\n});\n\n// Rust: crates/sui-types/src/effects/mod.rs\nconst IDOperation = bcs.enum('IDOperation', {\n\tNone: null,\n\tCreated: null,\n\tDeleted: null,\n});\n\n// Rust: crates/sui-types/src/effects/object_change.rs\nconst EffectsObjectChange = bcs.struct('EffectsObjectChange', {\n\tinputState: ObjectIn,\n\toutputState: ObjectOut,\n\tidOperation: IDOperation,\n});\n\n// Rust: crates/sui-types/src/effects/effects_v2.rs\nconst UnchangedConsensusKind = bcs.enum('UnchangedConsensusKind', {\n\tReadOnlyRoot: VersionDigest,\n\tMutateConsensusStreamEnded: bcs.u64(),\n\tReadConsensusStreamEnded: bcs.u64(),\n\tCancelled: bcs.u64(),\n\tPerEpochConfig: null,\n});\n\n// Rust: crates/sui-types/src/effects/effects_v2.rs\nconst TransactionEffectsV2 = bcs.struct('TransactionEffectsV2', {\n\tstatus: ExecutionStatus,\n\texecutedEpoch: bcs.u64(),\n\tgasUsed: GasCostSummary,\n\ttransactionDigest: ObjectDigest,\n\tgasObjectIndex: bcs.option(bcs.u32()),\n\teventsDigest: bcs.option(ObjectDigest),\n\tdependencies: bcs.vector(ObjectDigest),\n\tlamportVersion: bcs.u64(),\n\tchangedObjects: bcs.vector(bcs.tuple([Address, EffectsObjectChange])),\n\tunchangedConsensusObjects: bcs.vector(bcs.tuple([Address, UnchangedConsensusKind])),\n\tauxDataDigest: bcs.option(ObjectDigest),\n});\n\n// Rust: crates/sui-types/src/effects/mod.rs\nexport const TransactionEffects = bcs.enum('TransactionEffects', {\n\tV1: TransactionEffectsV1,\n\tV2: TransactionEffectsV2,\n});\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/bcs';\nimport type { BcsType } from '@mysten/bcs';\n\nimport { Address } from './bcs.js';\n\nexport type BasePureType =\n\t| 'u8'\n\t| 'u16'\n\t| 'u32'\n\t| 'u64'\n\t| 'u128'\n\t| 'u256'\n\t| 'bool'\n\t| 'id'\n\t| 'string'\n\t| 'address';\n\ninterface PureShapeByType {\n\tu8: number;\n\tu16: number;\n\tu32: number;\n\tu64: bigint | string | number;\n\tu128: bigint | string | number;\n\tu256: bigint | string | number;\n\tbool: boolean;\n\tstring: string;\n\tid: string | Uint8Array;\n\taddress: string | Uint8Array;\n}\n\nexport type PureTypeName = BasePureType | `vector<${string}>` | `option<${string}>`;\nexport type ValidPureTypeName<T extends string> = T extends BasePureType\n\t? PureTypeName\n\t: T extends `vector<${infer U}>`\n\t\t? ValidPureTypeName<U>\n\t\t: T extends `option<${infer U}>`\n\t\t\t? ValidPureTypeName<U>\n\t\t\t: PureTypeValidationError<T>;\n\nexport type ShapeFromPureTypeName<T extends PureTypeName> = T extends BasePureType\n\t? PureShapeByType[T]\n\t: T extends `vector<${infer U extends PureTypeName}>`\n\t\t? ShapeFromPureTypeName<U>[]\n\t\t: T extends `option<${infer U extends PureTypeName}>`\n\t\t\t? ShapeFromPureTypeName<U> | null\n\t\t\t: never;\n\ntype PureTypeValidationError<T extends string> = {\n\terror: `Invalid Pure type name: ${T}`;\n} & {};\n\nexport function pureBcsSchemaFromTypeName<T extends PureTypeName>(\n\tname: T extends PureTypeName ? ValidPureTypeName<T> : T,\n): BcsType<ShapeFromPureTypeName<T>> {\n\tswitch (name) {\n\t\tcase 'u8':\n\t\t\treturn bcs.u8() as never;\n\t\tcase 'u16':\n\t\t\treturn bcs.u16() as never;\n\t\tcase 'u32':\n\t\t\treturn bcs.u32() as never;\n\t\tcase 'u64':\n\t\t\treturn bcs.u64() as never;\n\t\tcase 'u128':\n\t\t\treturn bcs.u128() as never;\n\t\tcase 'u256':\n\t\t\treturn bcs.u256() as never;\n\t\tcase 'bool':\n\t\t\treturn bcs.bool() as never;\n\t\tcase 'string':\n\t\t\treturn bcs.string() as never;\n\t\tcase 'id':\n\t\tcase 'address':\n\t\t\treturn Address as never;\n\t}\n\n\tconst generic = (name as string).match(/^(vector|option)<(.+)>$/);\n\tif (generic) {\n\t\tconst [kind, inner] = generic.slice(1);\n\t\tif (kind === 'vector') {\n\t\t\treturn bcs.vector(pureBcsSchemaFromTypeName(inner as PureTypeName)) as never;\n\t\t} else {\n\t\t\treturn bcs.option(pureBcsSchemaFromTypeName(inner as PureTypeName)) as never;\n\t\t}\n\t}\n\n\tthrow new Error(`Invalid Pure type name: ${name}`);\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/bcs';\n\nimport {\n\tAddress,\n\tAppId,\n\tArgument,\n\tCallArg,\n\tCommand,\n\tCompressedSignature,\n\tData,\n\tGasData,\n\tIntent,\n\tIntentMessage,\n\tIntentScope,\n\tIntentVersion,\n\tMoveObject,\n\tMoveObjectType,\n\tMovePackage,\n\tMultiSig,\n\tMultiSigPkMap,\n\tMultiSigPublicKey,\n\tObjectArg,\n\tObjectDigest,\n\tObjectInner,\n\tOwner,\n\tPasskeyAuthenticator,\n\tProgrammableMoveCall,\n\tProgrammableTransaction,\n\tPublicKey,\n\tSenderSignedData,\n\tSenderSignedTransaction,\n\tSharedObjectRef,\n\tStructTag,\n\tSuiObjectRef,\n\tTransactionData,\n\tTransactionDataV1,\n\tTransactionExpiration,\n\tTransactionKind,\n\tTypeOrigin,\n\tTypeTag,\n\tUpgradeInfo,\n} from './bcs.js';\nimport { TransactionEffects } from './effects.js';\n\nexport type { TypeTag } from './types.js';\n\nexport { TypeTagSerializer } from './type-tag-serializer.js';\nexport {\n\tBcsType,\n\tBcsStruct,\n\tBcsEnum,\n\tBcsTuple,\n\ttype BcsTypeOptions,\n\tcompareBcsBytes,\n} from '@mysten/bcs';\n\nconst suiBcs = {\n\t...bcs,\n\tU8: bcs.u8(),\n\tU16: bcs.u16(),\n\tU32: bcs.u32(),\n\tU64: bcs.u64(),\n\tU128: bcs.u128(),\n\tU256: bcs.u256(),\n\tULEB128: bcs.uleb128(),\n\tBool: bcs.bool(),\n\tString: bcs.string(),\n\tAddress,\n\tAppId,\n\tArgument,\n\tCallArg,\n\tCommand,\n\tCompressedSignature,\n\tData,\n\tGasData,\n\tIntent,\n\tIntentMessage,\n\tIntentScope,\n\tIntentVersion,\n\tMoveObject,\n\tMoveObjectType,\n\tMovePackage,\n\tMultiSig,\n\tMultiSigPkMap,\n\tMultiSigPublicKey,\n\tObject: ObjectInner,\n\tObjectArg,\n\tObjectDigest,\n\tOwner,\n\tPasskeyAuthenticator,\n\tProgrammableMoveCall,\n\tProgrammableTransaction,\n\tPublicKey,\n\tSenderSignedData,\n\tSenderSignedTransaction,\n\tSharedObjectRef,\n\tStructTag,\n\tSuiObjectRef,\n\tTransactionData,\n\tTransactionDataV1,\n\tTransactionEffects,\n\tTransactionExpiration,\n\tTransactionKind,\n\tTypeOrigin,\n\tTypeTag,\n\tUpgradeInfo,\n};\nexport {\n\tpureBcsSchemaFromTypeName,\n\ttype ShapeFromPureTypeName,\n\ttype PureTypeName,\n} from './pure.js';\n\nexport { suiBcs as bcs };\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport interface ClientCacheOptions {\n\tprefix?: string[];\n\tcache?: Map<string, unknown>;\n}\n\nexport class ClientCache {\n\t#prefix: string[];\n\t#cache: Map<string, unknown>;\n\n\tconstructor({ prefix, cache }: ClientCacheOptions = {}) {\n\t\tthis.#prefix = prefix ?? [];\n\t\tthis.#cache = cache ?? new Map();\n\t}\n\n\tread<T>(key: [string, ...string[]], load: () => T | Promise<T>): T | Promise<T> {\n\t\tconst cacheKey = [this.#prefix, ...key].join(':');\n\n\t\tif (this.#cache.has(cacheKey)) {\n\t\t\treturn this.#cache.get(cacheKey) as T;\n\t\t}\n\n\t\tconst result = load();\n\n\t\tthis.#cache.set(cacheKey, result);\n\n\t\tif (typeof result === 'object' && result !== null && 'then' in result) {\n\t\t\treturn Promise.resolve(result)\n\t\t\t\t.then((v) => {\n\t\t\t\t\tthis.#cache.set(cacheKey, v);\n\t\t\t\t\treturn v as T;\n\t\t\t\t})\n\t\t\t\t.catch((err) => {\n\t\t\t\t\tthis.#cache.delete(cacheKey);\n\t\t\t\t\tthrow err;\n\t\t\t\t});\n\t\t}\n\n\t\treturn result as T;\n\t}\n\n\treadSync<T>(key: [string, ...string[]], load: () => T): T {\n\t\tconst cacheKey = [this.#prefix, ...key].join(':');\n\n\t\tif (this.#cache.has(cacheKey)) {\n\t\t\treturn this.#cache.get(cacheKey) as T;\n\t\t}\n\n\t\tconst result = load();\n\n\t\tthis.#cache.set(cacheKey, result);\n\n\t\treturn result as T;\n\t}\n\n\tclear(prefix?: string[]) {\n\t\tconst prefixKey = [...this.#prefix, ...(prefix ?? [])].join(':');\n\t\tif (!prefixKey) {\n\t\t\tthis.#cache.clear();\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const key of this.#cache.keys()) {\n\t\t\tif (key.startsWith(prefixKey)) {\n\t\t\t\tthis.#cache.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\tscope(prefix: string | string[]) {\n\t\treturn new ClientCache({\n\t\t\tprefix: [...this.#prefix, ...(Array.isArray(prefix) ? prefix : [prefix])],\n\t\t\tcache: this.#cache,\n\t\t});\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Simplify, UnionToIntersection } from '@mysten/utils';\nimport { ClientCache } from './cache.js';\nimport type { CoreClient } from './core.js';\nimport type { ClientWithExtensions, SuiClientTypes, SuiClientRegistration } from './types.js';\n\nexport abstract class BaseClient {\n\tnetwork: SuiClientTypes.Network;\n\tcache: ClientCache;\n\tbase: BaseClient;\n\n\tconstructor({\n\t\tnetwork,\n\t\tbase,\n\t\tcache = base?.cache ?? new ClientCache(),\n\t}: SuiClientTypes.SuiClientOptions) {\n\t\tthis.network = network;\n\t\tthis.base = base ?? this;\n\t\tthis.cache = cache;\n\t}\n\n\tabstract core: CoreClient;\n\n\t$extend<const Registrations extends SuiClientRegistration<this>[]>(\n\t\t...registrations: Registrations\n\t) {\n\t\tconst extensions: Record<string, unknown> = Object.fromEntries(\n\t\t\tregistrations.map((registration) => {\n\t\t\t\treturn [registration.name, registration.register(this)];\n\t\t\t}),\n\t\t);\n\n\t\tconst methodCache = new Map<string | symbol, Function>();\n\n\t\treturn new Proxy(this, {\n\t\t\tget(target, prop, receiver) {\n\t\t\t\tif (typeof prop === 'string' && prop in extensions) {\n\t\t\t\t\treturn extensions[prop];\n\t\t\t\t}\n\t\t\t\tconst value = Reflect.get(target, prop, receiver);\n\t\t\t\tif (typeof value === 'function') {\n\t\t\t\t\tif (prop === '$extend') {\n\t\t\t\t\t\treturn value.bind(receiver);\n\t\t\t\t\t}\n\t\t\t\t\tif (!methodCache.has(prop)) {\n\t\t\t\t\t\tmethodCache.set(prop, value.bind(target));\n\t\t\t\t\t}\n\t\t\t\t\treturn methodCache.get(prop);\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t},\n\t\t}) as ClientWithExtensions<\n\t\t\tSimplify<\n\t\t\t\tUnionToIntersection<\n\t\t\t\t\t{\n\t\t\t\t\t\t[K in keyof Registrations]: Registrations[K] extends SuiClientRegistration<\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\tinfer Name extends string,\n\t\t\t\t\t\t\tinfer Extension\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t[K2 in Name]: Extension;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: never;\n\t\t\t\t\t}[number]\n\t\t\t\t>\n\t\t\t>,\n\t\t\tthis\n\t\t>;\n\t}\n}\n","/**\n * Internal helpers for blake hash.\n * @module\n */\nimport { rotr } from './utils.ts';\n\n/**\n * Internal blake variable.\n * For BLAKE2b, the two extra permutations for rounds 10 and 11 are SIGMA[10..11] = SIGMA[0..1].\n */\n// prettier-ignore\nexport const BSIGMA: Uint8Array = /* @__PURE__ */ Uint8Array.from([\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n // Blake1, unused in others\n 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n]);\n\n// prettier-ignore\nexport type Num4 = { a: number; b: number; c: number; d: number; };\n\n// Mixing function G splitted in two halfs\nexport function G1s(a: number, b: number, c: number, d: number, x: number): Num4 {\n a = (a + b + x) | 0;\n d = rotr(d ^ a, 16);\n c = (c + d) | 0;\n b = rotr(b ^ c, 12);\n return { a, b, c, d };\n}\n\nexport function G2s(a: number, b: number, c: number, d: number, x: number): Num4 {\n a = (a + b + x) | 0;\n d = rotr(d ^ a, 8);\n c = (c + d) | 0;\n b = rotr(b ^ c, 7);\n return { a, b, c, d };\n}\n","/**\n * blake2b (64-bit) & blake2s (8 to 32-bit) hash functions.\n * b could have been faster, but there is no fast u64 in js, so s is 1.5x faster.\n * @module\n */\nimport { BSIGMA, G1s, G2s } from './_blake.ts';\nimport { SHA256_IV } from './_md.ts';\nimport * as u64 from './_u64.ts';\n// prettier-ignore\nimport {\n abytes, aexists, anumber, aoutput,\n clean, createHasher,\n swap32IfBE, swap8IfBE,\n u32,\n type CHash,\n type Hash\n} from './utils.ts';\n\n/** Blake hash options. dkLen is output length. key is used in MAC mode. salt is used in KDF mode. */\nexport type Blake2Opts = {\n dkLen?: number;\n key?: Uint8Array;\n salt?: Uint8Array;\n personalization?: Uint8Array;\n};\n\n// Same as SHA512_IV, but swapped endianness: LE instead of BE. iv[1] is iv[0], etc.\nconst B2B_IV = /* @__PURE__ */ Uint32Array.from([\n 0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a,\n 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19,\n]);\n// Temporary buffer\nconst BBUF = /* @__PURE__ */ new Uint32Array(32);\n\n// Mixing function G splitted in two halfs\nfunction G1b(a: number, b: number, c: number, d: number, msg: Uint32Array, x: number) {\n // NOTE: V is LE here\n const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore\n let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore\n let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore\n let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore\n let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore\n // v[a] = (v[a] + v[b] + x) | 0;\n let ll = u64.add3L(Al, Bl, Xl);\n Ah = u64.add3H(ll, Ah, Bh, Xh);\n Al = ll | 0;\n // v[d] = rotr(v[d] ^ v[a], 32)\n ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });\n ({ Dh, Dl } = { Dh: u64.rotr32H(Dh, Dl), Dl: u64.rotr32L(Dh, Dl) });\n // v[c] = (v[c] + v[d]) | 0;\n ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));\n // v[b] = rotr(v[b] ^ v[c], 24)\n ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });\n ({ Bh, Bl } = { Bh: u64.rotrSH(Bh, Bl, 24), Bl: u64.rotrSL(Bh, Bl, 24) });\n ((BBUF[2 * a] = Al), (BBUF[2 * a + 1] = Ah));\n ((BBUF[2 * b] = Bl), (BBUF[2 * b + 1] = Bh));\n ((BBUF[2 * c] = Cl), (BBUF[2 * c + 1] = Ch));\n ((BBUF[2 * d] = Dl), (BBUF[2 * d + 1] = Dh));\n}\n\nfunction G2b(a: number, b: number, c: number, d: number, msg: Uint32Array, x: number) {\n // NOTE: V is LE here\n const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore\n let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore\n let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore\n let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore\n let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore\n // v[a] = (v[a] + v[b] + x) | 0;\n let ll = u64.add3L(Al, Bl, Xl);\n Ah = u64.add3H(ll, Ah, Bh, Xh);\n Al = ll | 0;\n // v[d] = rotr(v[d] ^ v[a], 16)\n ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });\n ({ Dh, Dl } = { Dh: u64.rotrSH(Dh, Dl, 16), Dl: u64.rotrSL(Dh, Dl, 16) });\n // v[c] = (v[c] + v[d]) | 0;\n ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));\n // v[b] = rotr(v[b] ^ v[c], 63)\n ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });\n ({ Bh, Bl } = { Bh: u64.rotrBH(Bh, Bl, 63), Bl: u64.rotrBL(Bh, Bl, 63) });\n ((BBUF[2 * a] = Al), (BBUF[2 * a + 1] = Ah));\n ((BBUF[2 * b] = Bl), (BBUF[2 * b + 1] = Bh));\n ((BBUF[2 * c] = Cl), (BBUF[2 * c + 1] = Ch));\n ((BBUF[2 * d] = Dl), (BBUF[2 * d + 1] = Dh));\n}\n\nfunction checkBlake2Opts(\n outputLen: number,\n opts: Blake2Opts | undefined = {},\n keyLen: number,\n saltLen: number,\n persLen: number\n) {\n anumber(keyLen);\n if (outputLen < 0 || outputLen > keyLen) throw new Error('outputLen bigger than keyLen');\n const { key, salt, personalization } = opts;\n if (key !== undefined && (key.length < 1 || key.length > keyLen))\n throw new Error('\"key\" expected to be undefined or of length=1..' + keyLen);\n if (salt !== undefined) abytes(salt, saltLen, 'salt');\n if (personalization !== undefined) abytes(personalization, persLen, 'personalization');\n}\n\n/** Internal base class for BLAKE2. */\nexport abstract class _BLAKE2<T extends _BLAKE2<T>> implements Hash<T> {\n protected abstract compress(msg: Uint32Array, offset: number, isLast: boolean): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected buffer: Uint8Array;\n protected buffer32: Uint32Array;\n protected finished = false;\n protected destroyed = false;\n protected length: number = 0;\n protected pos: number = 0;\n readonly blockLen: number;\n readonly outputLen: number;\n\n constructor(blockLen: number, outputLen: number) {\n anumber(blockLen);\n anumber(outputLen);\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.buffer = new Uint8Array(blockLen);\n this.buffer32 = u32(this.buffer);\n }\n update(data: Uint8Array): this {\n aexists(this);\n abytes(data);\n // Main difference with other hashes: there is flag for last block,\n // so we cannot process current block before we know that there\n // is the next one. This significantly complicates logic and reduces ability\n // to do zero-copy processing\n const { blockLen, buffer, buffer32 } = this;\n const len = data.length;\n const offset = data.byteOffset;\n const buf = data.buffer;\n for (let pos = 0; pos < len; ) {\n // If buffer is full and we still have input (don't process last block, same as blake2s)\n if (this.pos === blockLen) {\n swap32IfBE(buffer32);\n this.compress(buffer32, 0, false);\n swap32IfBE(buffer32);\n this.pos = 0;\n }\n const take = Math.min(blockLen - this.pos, len - pos);\n const dataOffset = offset + pos;\n // full block && aligned to 4 bytes && not last in input\n if (take === blockLen && !(dataOffset % 4) && pos + take < len) {\n const data32 = new Uint32Array(buf, dataOffset, Math.floor((len - pos) / 4));\n swap32IfBE(data32);\n for (let pos32 = 0; pos + blockLen < len; pos32 += buffer32.length, pos += blockLen) {\n this.length += blockLen;\n this.compress(data32, pos32, false);\n }\n swap32IfBE(data32);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n this.length += take;\n pos += take;\n }\n return this;\n }\n digestInto(out: Uint8Array): void {\n aexists(this);\n aoutput(out, this);\n const { pos, buffer32 } = this;\n this.finished = true;\n // Padding\n clean(this.buffer.subarray(pos));\n swap32IfBE(buffer32);\n this.compress(buffer32, 0, true);\n swap32IfBE(buffer32);\n const out32 = u32(out);\n this.get().forEach((v, i) => (out32[i] = swap8IfBE(v)));\n }\n digest(): Uint8Array {\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?: T): T {\n const { buffer, length, finished, destroyed, outputLen, pos } = this;\n to ||= new (this.constructor as any)({ dkLen: outputLen }) as T;\n to.set(...this.get());\n to.buffer.set(buffer);\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n // @ts-ignore\n to.outputLen = outputLen;\n return to;\n }\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/** Internal blake2b hash class. */\nexport class _BLAKE2b extends _BLAKE2<_BLAKE2b> {\n // Same as SHA-512, but LE\n private v0l = B2B_IV[0] | 0;\n private v0h = B2B_IV[1] | 0;\n private v1l = B2B_IV[2] | 0;\n private v1h = B2B_IV[3] | 0;\n private v2l = B2B_IV[4] | 0;\n private v2h = B2B_IV[5] | 0;\n private v3l = B2B_IV[6] | 0;\n private v3h = B2B_IV[7] | 0;\n private v4l = B2B_IV[8] | 0;\n private v4h = B2B_IV[9] | 0;\n private v5l = B2B_IV[10] | 0;\n private v5h = B2B_IV[11] | 0;\n private v6l = B2B_IV[12] | 0;\n private v6h = B2B_IV[13] | 0;\n private v7l = B2B_IV[14] | 0;\n private v7h = B2B_IV[15] | 0;\n\n constructor(opts: Blake2Opts = {}) {\n const olen = opts.dkLen === undefined ? 64 : opts.dkLen;\n super(128, olen);\n checkBlake2Opts(olen, opts, 64, 16, 16);\n let { key, personalization, salt } = opts;\n let keyLength = 0;\n if (key !== undefined) {\n abytes(key, undefined, 'key');\n keyLength = key.length;\n }\n this.v0l ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);\n if (salt !== undefined) {\n abytes(salt, undefined, 'salt');\n const slt = u32(salt);\n this.v4l ^= swap8IfBE(slt[0]);\n this.v4h ^= swap8IfBE(slt[1]);\n this.v5l ^= swap8IfBE(slt[2]);\n this.v5h ^= swap8IfBE(slt[3]);\n }\n if (personalization !== undefined) {\n abytes(personalization, undefined, 'personalization');\n const pers = u32(personalization);\n this.v6l ^= swap8IfBE(pers[0]);\n this.v6h ^= swap8IfBE(pers[1]);\n this.v7l ^= swap8IfBE(pers[2]);\n this.v7h ^= swap8IfBE(pers[3]);\n }\n if (key !== undefined) {\n // Pad to blockLen and update\n const tmp = new Uint8Array(this.blockLen);\n tmp.set(key);\n this.update(tmp);\n }\n }\n // prettier-ignore\n protected get(): [\n number, number, number, number, number, number, number, number,\n number, number, number, number, number, number, number, number\n ] {\n let { v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h } = this;\n return [v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h];\n }\n // prettier-ignore\n protected set(\n v0l: number, v0h: number, v1l: number, v1h: number,\n v2l: number, v2h: number, v3l: number, v3h: number,\n v4l: number, v4h: number, v5l: number, v5h: number,\n v6l: number, v6h: number, v7l: number, v7h: number\n ): void {\n this.v0l = v0l | 0;\n this.v0h = v0h | 0;\n this.v1l = v1l | 0;\n this.v1h = v1h | 0;\n this.v2l = v2l | 0;\n this.v2h = v2h | 0;\n this.v3l = v3l | 0;\n this.v3h = v3h | 0;\n this.v4l = v4l | 0;\n this.v4h = v4h | 0;\n this.v5l = v5l | 0;\n this.v5h = v5h | 0;\n this.v6l = v6l | 0;\n this.v6h = v6h | 0;\n this.v7l = v7l | 0;\n this.v7h = v7h | 0;\n }\n protected compress(msg: Uint32Array, offset: number, isLast: boolean): void {\n this.get().forEach((v, i) => (BBUF[i] = v)); // First half from state.\n BBUF.set(B2B_IV, 16); // Second half from IV.\n let { h, l } = u64.fromBig(BigInt(this.length));\n BBUF[24] = B2B_IV[8] ^ l; // Low word of the offset.\n BBUF[25] = B2B_IV[9] ^ h; // High word.\n // Invert all bits for last block\n if (isLast) {\n BBUF[28] = ~BBUF[28];\n BBUF[29] = ~BBUF[29];\n }\n let j = 0;\n const s = BSIGMA;\n for (let i = 0; i < 12; i++) {\n G1b(0, 4, 8, 12, msg, offset + 2 * s[j++]);\n G2b(0, 4, 8, 12, msg, offset + 2 * s[j++]);\n G1b(1, 5, 9, 13, msg, offset + 2 * s[j++]);\n G2b(1, 5, 9, 13, msg, offset + 2 * s[j++]);\n G1b(2, 6, 10, 14, msg, offset + 2 * s[j++]);\n G2b(2, 6, 10, 14, msg, offset + 2 * s[j++]);\n G1b(3, 7, 11, 15, msg, offset + 2 * s[j++]);\n G2b(3, 7, 11, 15, msg, offset + 2 * s[j++]);\n\n G1b(0, 5, 10, 15, msg, offset + 2 * s[j++]);\n G2b(0, 5, 10, 15, msg, offset + 2 * s[j++]);\n G1b(1, 6, 11, 12, msg, offset + 2 * s[j++]);\n G2b(1, 6, 11, 12, msg, offset + 2 * s[j++]);\n G1b(2, 7, 8, 13, msg, offset + 2 * s[j++]);\n G2b(2, 7, 8, 13, msg, offset + 2 * s[j++]);\n G1b(3, 4, 9, 14, msg, offset + 2 * s[j++]);\n G2b(3, 4, 9, 14, msg, offset + 2 * s[j++]);\n }\n this.v0l ^= BBUF[0] ^ BBUF[16];\n this.v0h ^= BBUF[1] ^ BBUF[17];\n this.v1l ^= BBUF[2] ^ BBUF[18];\n this.v1h ^= BBUF[3] ^ BBUF[19];\n this.v2l ^= BBUF[4] ^ BBUF[20];\n this.v2h ^= BBUF[5] ^ BBUF[21];\n this.v3l ^= BBUF[6] ^ BBUF[22];\n this.v3h ^= BBUF[7] ^ BBUF[23];\n this.v4l ^= BBUF[8] ^ BBUF[24];\n this.v4h ^= BBUF[9] ^ BBUF[25];\n this.v5l ^= BBUF[10] ^ BBUF[26];\n this.v5h ^= BBUF[11] ^ BBUF[27];\n this.v6l ^= BBUF[12] ^ BBUF[28];\n this.v6h ^= BBUF[13] ^ BBUF[29];\n this.v7l ^= BBUF[14] ^ BBUF[30];\n this.v7h ^= BBUF[15] ^ BBUF[31];\n clean(BBUF);\n }\n destroy(): void {\n this.destroyed = true;\n clean(this.buffer32);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\n/**\n * Blake2b hash function. 64-bit. 1.5x slower than blake2s in JS.\n * @param msg - message that would be hashed\n * @param opts - dkLen output length, key for MAC mode, salt, personalization\n */\nexport const blake2b: CHash<_BLAKE2b, Blake2Opts> = /* @__PURE__ */ createHasher(\n (opts) => new _BLAKE2b(opts)\n);\n\n// =================\n// Blake2S\n// =================\n\n/** Internal type, 16 numbers. */\n// prettier-ignore\nexport type Num16 = {\n v0: number; v1: number; v2: number; v3: number;\n v4: number; v5: number; v6: number; v7: number;\n v8: number; v9: number; v10: number; v11: number;\n v12: number; v13: number; v14: number; v15: number;\n};\n\n/** BLAKE2-compress core method. */\n// prettier-ignore\nexport function compress(s: Uint8Array, offset: number, msg: Uint32Array, rounds: number,\n v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number,\n v8: number, v9: number, v10: number, v11: number, v12: number, v13: number, v14: number, v15: number,\n): Num16 {\n let j = 0;\n for (let i = 0; i < rounds; i++) {\n ({ a: v0, b: v4, c: v8, d: v12 } = G1s(v0, v4, v8, v12, msg[offset + s[j++]]));\n ({ a: v0, b: v4, c: v8, d: v12 } = G2s(v0, v4, v8, v12, msg[offset + s[j++]]));\n ({ a: v1, b: v5, c: v9, d: v13 } = G1s(v1, v5, v9, v13, msg[offset + s[j++]]));\n ({ a: v1, b: v5, c: v9, d: v13 } = G2s(v1, v5, v9, v13, msg[offset + s[j++]]));\n ({ a: v2, b: v6, c: v10, d: v14 } = G1s(v2, v6, v10, v14, msg[offset + s[j++]]));\n ({ a: v2, b: v6, c: v10, d: v14 } = G2s(v2, v6, v10, v14, msg[offset + s[j++]]));\n ({ a: v3, b: v7, c: v11, d: v15 } = G1s(v3, v7, v11, v15, msg[offset + s[j++]]));\n ({ a: v3, b: v7, c: v11, d: v15 } = G2s(v3, v7, v11, v15, msg[offset + s[j++]]));\n\n ({ a: v0, b: v5, c: v10, d: v15 } = G1s(v0, v5, v10, v15, msg[offset + s[j++]]));\n ({ a: v0, b: v5, c: v10, d: v15 } = G2s(v0, v5, v10, v15, msg[offset + s[j++]]));\n ({ a: v1, b: v6, c: v11, d: v12 } = G1s(v1, v6, v11, v12, msg[offset + s[j++]]));\n ({ a: v1, b: v6, c: v11, d: v12 } = G2s(v1, v6, v11, v12, msg[offset + s[j++]]));\n ({ a: v2, b: v7, c: v8, d: v13 } = G1s(v2, v7, v8, v13, msg[offset + s[j++]]));\n ({ a: v2, b: v7, c: v8, d: v13 } = G2s(v2, v7, v8, v13, msg[offset + s[j++]]));\n ({ a: v3, b: v4, c: v9, d: v14 } = G1s(v3, v4, v9, v14, msg[offset + s[j++]]));\n ({ a: v3, b: v4, c: v9, d: v14 } = G2s(v3, v4, v9, v14, msg[offset + s[j++]]));\n }\n return { v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 };\n}\n\nconst B2S_IV = /* @__PURE__ */ SHA256_IV.slice();\n\n/** Internal blake2s hash class. */\nexport class _BLAKE2s extends _BLAKE2<_BLAKE2s> {\n // Internal state, same as SHA-256\n private v0 = B2S_IV[0] | 0;\n private v1 = B2S_IV[1] | 0;\n private v2 = B2S_IV[2] | 0;\n private v3 = B2S_IV[3] | 0;\n private v4 = B2S_IV[4] | 0;\n private v5 = B2S_IV[5] | 0;\n private v6 = B2S_IV[6] | 0;\n private v7 = B2S_IV[7] | 0;\n\n constructor(opts: Blake2Opts = {}) {\n const olen = opts.dkLen === undefined ? 32 : opts.dkLen;\n super(64, olen);\n checkBlake2Opts(olen, opts, 32, 8, 8);\n let { key, personalization, salt } = opts;\n let keyLength = 0;\n if (key !== undefined) {\n abytes(key, undefined, 'key');\n keyLength = key.length;\n }\n this.v0 ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);\n if (salt !== undefined) {\n abytes(salt, undefined, 'salt');\n const slt = u32(salt as Uint8Array);\n this.v4 ^= swap8IfBE(slt[0]);\n this.v5 ^= swap8IfBE(slt[1]);\n }\n if (personalization !== undefined) {\n abytes(personalization, undefined, 'personalization');\n const pers = u32(personalization as Uint8Array);\n this.v6 ^= swap8IfBE(pers[0]);\n this.v7 ^= swap8IfBE(pers[1]);\n }\n if (key !== undefined) {\n // Pad to blockLen and update\n const tmp = new Uint8Array(this.blockLen);\n tmp.set(key);\n this.update(tmp);\n }\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { v0, v1, v2, v3, v4, v5, v6, v7 } = this;\n return [v0, v1, v2, v3, v4, v5, v6, v7];\n }\n // prettier-ignore\n protected set(\n v0: number, v1: number, v2: number, v3: number, v4: number, v5: number, v6: number, v7: number\n ): void {\n this.v0 = v0 | 0;\n this.v1 = v1 | 0;\n this.v2 = v2 | 0;\n this.v3 = v3 | 0;\n this.v4 = v4 | 0;\n this.v5 = v5 | 0;\n this.v6 = v6 | 0;\n this.v7 = v7 | 0;\n }\n protected compress(msg: Uint32Array, offset: number, isLast: boolean): void {\n const { h, l } = u64.fromBig(BigInt(this.length));\n // prettier-ignore\n const { v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15 } =\n compress(\n BSIGMA, offset, msg, 10,\n this.v0, this.v1, this.v2, this.v3, this.v4, this.v5, this.v6, this.v7,\n B2S_IV[0], B2S_IV[1], B2S_IV[2], B2S_IV[3], l ^ B2S_IV[4], h ^ B2S_IV[5], isLast ? ~B2S_IV[6] : B2S_IV[6], B2S_IV[7]\n );\n this.v0 ^= v0 ^ v8;\n this.v1 ^= v1 ^ v9;\n this.v2 ^= v2 ^ v10;\n this.v3 ^= v3 ^ v11;\n this.v4 ^= v4 ^ v12;\n this.v5 ^= v5 ^ v13;\n this.v6 ^= v6 ^ v14;\n this.v7 ^= v7 ^ v15;\n }\n destroy(): void {\n this.destroyed = true;\n clean(this.buffer32);\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\n/**\n * Blake2s hash function. Focuses on 8-bit to 32-bit platforms. 1.5x faster than blake2b in JS.\n * @param msg - message that would be hashed\n * @param opts - dkLen output length, key for MAC mode, salt, personalization\n */\nexport const blake2s: CHash<_BLAKE2s, Blake2Opts> = /* @__PURE__ */ createHasher(\n (opts) => new _BLAKE2s(opts)\n);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toHex } from '@mysten/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\n\nimport type { TypeTag } from '../bcs/bcs.js';\nimport { bcs } from '../bcs/index.js';\n\nexport function deriveDynamicFieldID(\n\tparentId: string,\n\ttypeTag: typeof TypeTag.$inferInput,\n\tkey: Uint8Array,\n) {\n\tconst address = bcs.Address.serialize(parentId).toBytes();\n\tconst tag = bcs.TypeTag.serialize(typeTag).toBytes();\n\tconst keyLength = bcs.u64().serialize(key.length).toBytes();\n\n\tconst hash = blake2b.create({\n\t\tdkLen: 32,\n\t});\n\n\thash.update(new Uint8Array([0xf0]));\n\thash.update(address);\n\thash.update(keyLength);\n\thash.update(key);\n\thash.update(tag);\n\n\treturn `0x${toHex(hash.digest().slice(0, 32))}`;\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '2.17.0';\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { chunk, DataLoader } from '@mysten/utils';\nimport { isValidNamedPackage, isValidNamedType } from '../utils/move-registry.js';\nimport type { StructTag } from '../utils/sui-types.js';\nimport {\n\tisValidSuiAddress,\n\tnormalizeStructTag,\n\tnormalizeSuiAddress,\n\tparseStructTag,\n} from '../utils/sui-types.js';\nimport type { ClientCache } from './cache.js';\nimport type { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport { PACKAGE_VERSION } from '../version.js';\nimport type { SuiClientTypes } from './types.js';\n\nconst NAME_SEPARATOR = '/';\nconst MVR_API_HEADER = {\n\t'Mvr-Source': `@mysten/sui@${PACKAGE_VERSION}`,\n};\n\nexport interface MvrClientOptions {\n\tcache: ClientCache;\n\turl?: string;\n\tpageSize?: number;\n\toverrides?: {\n\t\tpackages?: Record<string, string>;\n\t\ttypes?: Record<string, string>;\n\t};\n}\n\nexport class MvrClient implements SuiClientTypes.MvrMethods {\n\t#cache: ClientCache;\n\t#url?: string;\n\t#pageSize: number;\n\t#overrides: {\n\t\tpackages?: Record<string, string>;\n\t\ttypes?: Record<string, string>;\n\t};\n\n\tconstructor({ cache, url, pageSize = 50, overrides }: MvrClientOptions) {\n\t\tthis.#cache = cache;\n\t\tthis.#url = url;\n\t\tthis.#pageSize = pageSize;\n\t\tthis.#overrides = {\n\t\t\tpackages: overrides?.packages,\n\t\t\ttypes: overrides?.types,\n\t\t};\n\n\t\tvalidateOverrides(this.#overrides);\n\t}\n\n\tget #mvrPackageDataLoader() {\n\t\treturn this.#cache.readSync(['#mvrPackageDataLoader', this.#url ?? ''], () => {\n\t\t\tconst loader = new DataLoader<string, string>(async (packages) => {\n\t\t\t\tif (!this.#url) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`MVR Api URL is not set for the current client (resolving ${packages.join(', ')})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst resolved = await this.#resolvePackages(packages);\n\n\t\t\t\treturn packages.map(\n\t\t\t\t\t(pkg) => resolved[pkg] ?? new Error(`Failed to resolve package: ${pkg}`),\n\t\t\t\t);\n\t\t\t});\n\t\t\tconst overrides = this.#overrides?.packages;\n\n\t\t\tif (overrides) {\n\t\t\t\tfor (const [pkg, id] of Object.entries(overrides)) {\n\t\t\t\t\tloader.prime(pkg, id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn loader;\n\t\t});\n\t}\n\n\tget #mvrTypeDataLoader() {\n\t\treturn this.#cache.readSync(['#mvrTypeDataLoader', this.#url ?? ''], () => {\n\t\t\tconst loader = new DataLoader<string, string>(async (types) => {\n\t\t\t\tif (!this.#url) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`MVR Api URL is not set for the current client (resolving ${types.join(', ')})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst resolved = await this.#resolveTypes(types);\n\n\t\t\t\treturn types.map((type) => resolved[type] ?? new Error(`Failed to resolve type: ${type}`));\n\t\t\t});\n\n\t\t\tconst overrides = this.#overrides?.types;\n\n\t\t\tif (overrides) {\n\t\t\t\tfor (const [type, id] of Object.entries(overrides)) {\n\t\t\t\t\tloader.prime(type, id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn loader;\n\t\t});\n\t}\n\n\tasync #resolvePackages(packages: readonly string[]) {\n\t\tif (packages.length === 0) return {};\n\n\t\tconst batches = chunk(packages, this.#pageSize);\n\t\tconst results: Record<string, string> = {};\n\n\t\tawait Promise.all(\n\t\t\tbatches.map(async (batch) => {\n\t\t\t\tconst data = await this.#fetch<{ resolution: Record<string, { package_id: string }> }>(\n\t\t\t\t\t'/v1/resolution/bulk',\n\t\t\t\t\t{\n\t\t\t\t\t\tnames: batch,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (!data?.resolution) return;\n\n\t\t\t\tfor (const pkg of Object.keys(data?.resolution)) {\n\t\t\t\t\tconst pkgData = data.resolution[pkg]?.package_id;\n\n\t\t\t\t\tif (!pkgData) continue;\n\n\t\t\t\t\tresults[pkg] = pkgData;\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn results;\n\t}\n\n\tasync #resolveTypes(types: readonly string[]) {\n\t\tif (types.length === 0) return {};\n\n\t\tconst batches = chunk(types, this.#pageSize);\n\t\tconst results: Record<string, string> = {};\n\n\t\tawait Promise.all(\n\t\t\tbatches.map(async (batch) => {\n\t\t\t\tconst data = await this.#fetch<{ resolution: Record<string, { type_tag: string }> }>(\n\t\t\t\t\t'/v1/struct-definition/bulk',\n\t\t\t\t\t{\n\t\t\t\t\t\ttypes: batch,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (!data?.resolution) return;\n\n\t\t\t\tfor (const type of Object.keys(data?.resolution)) {\n\t\t\t\t\tconst typeData = data.resolution[type]?.type_tag;\n\t\t\t\t\tif (!typeData) continue;\n\n\t\t\t\t\tresults[type] = typeData;\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn results;\n\t}\n\n\tasync #fetch<T>(url: string, body: Record<string, unknown>): Promise<T> {\n\t\tif (!this.#url) {\n\t\t\tthrow new Error('MVR Api URL is not set for the current client');\n\t\t}\n\n\t\tconst response = await fetch(`${this.#url}${url}`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...MVR_API_HEADER,\n\t\t\t},\n\t\t\tbody: JSON.stringify(body),\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\tconst errorBody = await response.json().catch(() => ({}));\n\t\t\tthrow new Error(`Failed to resolve types: ${errorBody?.message}`);\n\t\t}\n\n\t\treturn response.json();\n\t}\n\n\tasync resolvePackage({\n\t\tpackage: name,\n\t}: SuiClientTypes.MvrResolvePackageOptions): Promise<SuiClientTypes.MvrResolvePackageResponse> {\n\t\tif (!hasMvrName(name)) {\n\t\t\treturn {\n\t\t\t\tpackage: name,\n\t\t\t};\n\t\t}\n\t\tconst resolved = await this.#mvrPackageDataLoader.load(name);\n\t\treturn {\n\t\t\tpackage: resolved,\n\t\t};\n\t}\n\n\tasync resolveType({\n\t\ttype,\n\t}: SuiClientTypes.MvrResolveTypeOptions): Promise<SuiClientTypes.MvrResolveTypeResponse> {\n\t\tif (!hasMvrName(type)) {\n\t\t\treturn {\n\t\t\t\ttype,\n\t\t\t};\n\t\t}\n\n\t\tconst mvrTypes = [...extractMvrTypes(type)];\n\t\tconst resolvedTypes = await this.#mvrTypeDataLoader.loadMany(mvrTypes);\n\n\t\tconst typeMap: Record<string, string> = {};\n\n\t\tfor (let i = 0; i < mvrTypes.length; i++) {\n\t\t\tconst resolvedType = resolvedTypes[i];\n\t\t\tif (resolvedType instanceof Error) {\n\t\t\t\tthrow resolvedType;\n\t\t\t}\n\t\t\ttypeMap[mvrTypes[i]] = resolvedType;\n\t\t}\n\n\t\treturn {\n\t\t\ttype: replaceMvrNames(type, typeMap),\n\t\t};\n\t}\n\n\tasync resolve({\n\t\ttypes = [],\n\t\tpackages = [],\n\t}: SuiClientTypes.MvrResolveOptions): Promise<SuiClientTypes.MvrResolveResponse> {\n\t\tconst mvrTypes = new Set<string>();\n\n\t\tfor (const type of types ?? []) {\n\t\t\textractMvrTypes(type, mvrTypes);\n\t\t}\n\n\t\tconst typesArray = [...mvrTypes];\n\t\tconst [resolvedTypes, resolvedPackages] = await Promise.all([\n\t\t\ttypesArray.length > 0 ? this.#mvrTypeDataLoader.loadMany(typesArray) : [],\n\t\t\tpackages.length > 0 ? this.#mvrPackageDataLoader.loadMany(packages) : [],\n\t\t]);\n\n\t\tconst typeMap: Record<string, string> = {\n\t\t\t...this.#overrides?.types,\n\t\t};\n\n\t\tfor (const [i, type] of typesArray.entries()) {\n\t\t\tconst resolvedType = resolvedTypes[i];\n\t\t\tif (resolvedType instanceof Error) {\n\t\t\t\tthrow resolvedType;\n\t\t\t}\n\t\t\ttypeMap[type] = resolvedType;\n\t\t}\n\n\t\tconst replacedTypes: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\ttype: string;\n\t\t\t}\n\t\t> = {};\n\n\t\tfor (const type of types ?? []) {\n\t\t\tconst resolvedType = replaceMvrNames(type, typeMap);\n\n\t\t\treplacedTypes[type] = {\n\t\t\t\ttype: resolvedType,\n\t\t\t};\n\t\t}\n\n\t\tconst replacedPackages: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tpackage: string;\n\t\t\t}\n\t\t> = {};\n\n\t\tfor (const [i, pkg] of (packages ?? []).entries()) {\n\t\t\tconst resolvedPkg = this.#overrides?.packages?.[pkg] ?? resolvedPackages[i];\n\n\t\t\tif (resolvedPkg instanceof Error) {\n\t\t\t\tthrow resolvedPkg;\n\t\t\t}\n\n\t\t\treplacedPackages[pkg] = {\n\t\t\t\tpackage: resolvedPkg,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttypes: replacedTypes,\n\t\t\tpackages: replacedPackages,\n\t\t};\n\t}\n}\n\nfunction validateOverrides(overrides?: {\n\tpackages?: Record<string, string>;\n\ttypes?: Record<string, string>;\n}) {\n\tif (overrides?.packages) {\n\t\tfor (const [pkg, id] of Object.entries(overrides.packages)) {\n\t\t\tif (!isValidNamedPackage(pkg)) {\n\t\t\t\tthrow new Error(`Invalid package name: ${pkg}`);\n\t\t\t}\n\t\t\tif (!isValidSuiAddress(normalizeSuiAddress(id))) {\n\t\t\t\tthrow new Error(`Invalid package ID: ${id}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (overrides?.types) {\n\t\tfor (const [type, val] of Object.entries(overrides.types)) {\n\t\t\t// validate that types are first-level only.\n\t\t\tif (parseStructTag(type).typeParams.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Type overrides must be first-level only. If you want to supply generic types, just pass each type individually.',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parsedValue = parseStructTag(val);\n\n\t\t\tif (!isValidSuiAddress(parsedValue.address)) {\n\t\t\t\tthrow new Error(`Invalid type: ${val}`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Extracts all named types from a given type.\n */\nexport function extractMvrTypes(type: string | StructTag, types = new Set<string>()) {\n\tif (typeof type === 'string' && !hasMvrName(type)) return types;\n\n\tif (typeof type === 'string' && type.startsWith('vector<') && type.endsWith('>')) {\n\t\treturn extractMvrTypes(type.slice(7, -1), types);\n\t}\n\n\tconst tag = isStructTag(type) ? type : parseStructTag(type);\n\n\tif (hasMvrName(tag.address)) types.add(`${tag.address}::${tag.module}::${tag.name}`);\n\n\tfor (const param of tag.typeParams) {\n\t\textractMvrTypes(param, types);\n\t}\n\n\treturn types;\n}\n\n/**\n * Traverses a type, and replaces any found names with their resolved equivalents,\n * based on the supplied type cache.\n */\nfunction replaceMvrNames(tag: string | StructTag, typeCache: Record<string, string>): string {\n\tif (typeof tag === 'string' && !tag.includes('::')) {\n\t\treturn tag;\n\t}\n\n\tif (typeof tag === 'string' && tag.startsWith('vector<') && tag.endsWith('>')) {\n\t\treturn `vector<${replaceMvrNames(tag.slice(7, -1), typeCache)}>`;\n\t}\n\n\tconst type = isStructTag(tag) ? tag : parseStructTag(tag);\n\n\tconst typeTag = `${type.address}::${type.module}::${type.name}`;\n\tconst cacheHit = typeCache[typeTag];\n\n\treturn normalizeStructTag({\n\t\t...type,\n\t\taddress: cacheHit ? cacheHit.split('::')[0] : type.address,\n\t\ttypeParams: type.typeParams.map((param) => replaceMvrNames(param, typeCache)),\n\t});\n}\n\nexport function hasMvrName(nameOrType: string) {\n\treturn (\n\t\tnameOrType.includes(NAME_SEPARATOR) || nameOrType.includes('@') || nameOrType.includes('.sui')\n\t);\n}\n\nfunction isStructTag(type: string | StructTag): type is StructTag {\n\treturn (\n\t\ttypeof type === 'object' &&\n\t\t'address' in type &&\n\t\t'module' in type &&\n\t\t'name' in type &&\n\t\t'typeParams' in type\n\t);\n}\n\nexport type NamedPackagesOverrides = {\n\tpackages: Record<string, string>;\n\ttypes: Record<string, string>;\n};\n\n/**\n * Looks up all `.move` names in a transaction block.\n * Returns a list of all the names found.\n */\nexport function findNamesInTransaction(builder: TransactionDataBuilder): {\n\tpackages: string[];\n\ttypes: string[];\n} {\n\tconst packages: Set<string> = new Set();\n\tconst types: Set<string> = new Set();\n\n\tfor (const command of builder.commands) {\n\t\tswitch (command.$kind) {\n\t\t\tcase 'MakeMoveVec':\n\t\t\t\tif (command.MakeMoveVec.type) {\n\t\t\t\t\tgetNamesFromTypeList([command.MakeMoveVec.type]).forEach((type) => {\n\t\t\t\t\t\ttypes.add(type);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'MoveCall':\n\t\t\t\tconst moveCall = command.MoveCall;\n\n\t\t\t\tconst pkg = moveCall.package.split('::')[0];\n\t\t\t\tif (hasMvrName(pkg)) {\n\t\t\t\t\tif (!isValidNamedPackage(pkg)) throw new Error(`Invalid package name: ${pkg}`);\n\t\t\t\t\tpackages.add(pkg);\n\t\t\t\t}\n\n\t\t\t\tgetNamesFromTypeList(moveCall.typeArguments ?? []).forEach((type) => {\n\t\t\t\t\ttypes.add(type);\n\t\t\t\t});\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tpackages: [...packages],\n\t\ttypes: [...types],\n\t};\n}\n\n/**\n * Replace all names & types in a transaction block\n * with their resolved names/types.\n */\nexport function replaceNames(\n\tbuilder: TransactionDataBuilder,\n\tresolved: SuiClientTypes.MvrResolveResponse,\n) {\n\tfor (const command of builder.commands) {\n\t\t// Replacements for `MakeMoveVec` commands (that can include types)\n\t\tif (command.MakeMoveVec?.type) {\n\t\t\tif (!hasMvrName(command.MakeMoveVec.type)) continue;\n\t\t\tif (!resolved.types[command.MakeMoveVec.type])\n\t\t\t\tthrow new Error(`No resolution found for type: ${command.MakeMoveVec.type}`);\n\t\t\tcommand.MakeMoveVec.type = resolved.types[command.MakeMoveVec.type].type;\n\t\t}\n\t\t// Replacements for `MoveCall` commands (that can include packages & types)\n\t\tconst tx = command.MoveCall;\n\t\tif (!tx) continue;\n\n\t\tconst nameParts = tx.package.split('::');\n\t\tconst name = nameParts[0];\n\n\t\tif (hasMvrName(name) && !resolved.packages[name])\n\t\t\tthrow new Error(`No address found for package: ${name}`);\n\n\t\t// Replace package name with address.\n\t\tif (hasMvrName(name)) {\n\t\t\tnameParts[0] = resolved.packages[name].package;\n\t\t\ttx.package = nameParts.join('::');\n\t\t}\n\n\t\tconst types = tx.typeArguments;\n\t\tif (!types) continue;\n\n\t\tfor (let i = 0; i < types.length; i++) {\n\t\t\tif (!hasMvrName(types[i])) continue;\n\n\t\t\tif (!resolved.types[types[i]]) throw new Error(`No resolution found for type: ${types[i]}`);\n\t\t\ttypes[i] = resolved.types[types[i]].type;\n\t\t}\n\n\t\ttx.typeArguments = types;\n\t}\n}\n\n/**\n * Returns a list of unique types that include a name\n * from the given list. This list is retrieved from the Transaction Data.\n */\nfunction getNamesFromTypeList(types: string[]) {\n\tconst names = new Set<string>();\n\tfor (const type of types) {\n\t\tif (hasMvrName(type)) {\n\t\t\tif (!isValidNamedType(type)) throw new Error(`Invalid type with names: ${type}`);\n\t\t\tnames.add(type);\n\t\t}\n\t}\n\treturn names;\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { TypeTagSerializer } from '../bcs/type-tag-serializer.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport { normalizeStructTag, parseStructTag, SUI_ADDRESS_LENGTH } from '../utils/sui-types.js';\nimport { BaseClient } from './client.js';\nimport type { ClientWithExtensions, SuiClientTypes } from './types.js';\nimport { MvrClient } from './mvr.js';\nimport { bcs } from '../bcs/index.js';\n\nexport type ClientWithCoreApi = ClientWithExtensions<{\n\tcore: CoreClient;\n}>;\n\nexport interface CoreClientOptions extends SuiClientTypes.SuiClientOptions {\n\tbase: BaseClient;\n\tmvr?: SuiClientTypes.MvrOptions;\n}\n\nconst DEFAULT_MVR_URLS: Record<string, string> = {\n\tmainnet: 'https://mainnet.mvr.mystenlabs.com',\n\ttestnet: 'https://testnet.mvr.mystenlabs.com',\n};\n\nexport abstract class CoreClient extends BaseClient implements SuiClientTypes.TransportMethods {\n\tcore = this;\n\tmvr: SuiClientTypes.MvrMethods;\n\n\tconstructor(options: CoreClientOptions) {\n\t\tsuper(options);\n\n\t\tthis.mvr = new MvrClient({\n\t\t\tcache: this.cache.scope('core.mvr'),\n\t\t\turl: options.mvr?.url ?? DEFAULT_MVR_URLS[this.network],\n\t\t\tpageSize: options.mvr?.pageSize,\n\t\t\toverrides: options.mvr?.overrides,\n\t\t});\n\t}\n\n\tabstract getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>>;\n\n\tasync getObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\tconst { objectId } = options;\n\t\tconst {\n\t\t\tobjects: [result],\n\t\t} = await this.getObjects({\n\t\t\tobjectIds: [objectId],\n\t\t\tsignal: options.signal,\n\t\t\tinclude: options.include,\n\t\t});\n\t\tif (result instanceof Error) {\n\t\t\tthrow result;\n\t\t}\n\t\treturn { object: result };\n\t}\n\n\tabstract listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse>;\n\n\tabstract listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>>;\n\n\tabstract getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse>;\n\n\tabstract listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse>;\n\n\tabstract getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse>;\n\n\tabstract getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>>;\n\n\tabstract executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>>;\n\n\tabstract simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>>;\n\n\tabstract getReferenceGasPrice(\n\t\toptions?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;\n\n\tabstract getCurrentSystemState(\n\t\toptions?: SuiClientTypes.GetCurrentSystemStateOptions,\n\t): Promise<SuiClientTypes.GetCurrentSystemStateResponse>;\n\n\tabstract getProtocolConfig(\n\t\toptions?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse>;\n\n\tabstract getChainIdentifier(\n\t\toptions?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse>;\n\n\tabstract listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse>;\n\n\tabstract resolveTransactionPlugin(): TransactionPlugin;\n\n\tabstract verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse>;\n\n\tabstract getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse>;\n\n\tabstract defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse>;\n\n\tasync getDynamicField(\n\t\toptions: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\tconst normalizedNameType = TypeTagSerializer.parseFromStr(\n\t\t\t(\n\t\t\t\tawait this.core.mvr.resolveType({\n\t\t\t\t\ttype: options.name.type,\n\t\t\t\t})\n\t\t\t).type,\n\t\t);\n\t\tconst fieldId = deriveDynamicFieldID(options.parentId, normalizedNameType, options.name.bcs);\n\t\tconst {\n\t\t\tobjects: [fieldObject],\n\t\t} = await this.getObjects({\n\t\t\tobjectIds: [fieldId],\n\t\t\tsignal: options.signal,\n\t\t\tinclude: {\n\t\t\t\tpreviousTransaction: true,\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t});\n\n\t\tif (fieldObject instanceof Error) {\n\t\t\tthrow fieldObject;\n\t\t}\n\n\t\tconst fieldType = parseStructTag(fieldObject.type);\n\t\tconst content = await fieldObject.content;\n\n\t\tconst nameTypeParam = fieldType.typeParams[0];\n\t\tconst isDynamicObject =\n\t\t\ttypeof nameTypeParam !== 'string' &&\n\t\t\tnameTypeParam.module === 'dynamic_object_field' &&\n\t\t\tnameTypeParam.name === 'Wrapper';\n\n\t\tconst valueBcs = content.slice(SUI_ADDRESS_LENGTH + options.name.bcs.length);\n\n\t\tconst valueType =\n\t\t\ttypeof fieldType.typeParams[1] === 'string'\n\t\t\t\t? fieldType.typeParams[1]\n\t\t\t\t: normalizeStructTag(fieldType.typeParams[1]);\n\n\t\treturn {\n\t\t\tdynamicField: {\n\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\tfieldId: fieldObject.objectId,\n\t\t\t\tdigest: fieldObject.digest,\n\t\t\t\tversion: fieldObject.version,\n\t\t\t\ttype: fieldObject.type,\n\t\t\t\tpreviousTransaction: fieldObject.previousTransaction,\n\t\t\t\tname: {\n\t\t\t\t\ttype:\n\t\t\t\t\t\ttypeof nameTypeParam === 'string' ? nameTypeParam : normalizeStructTag(nameTypeParam),\n\t\t\t\t\tbcs: options.name.bcs,\n\t\t\t\t},\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: valueType,\n\t\t\t\t\tbcs: valueBcs,\n\t\t\t\t},\n\t\t\t\tchildId: isDynamicObject ? bcs.Address.parse(valueBcs) : undefined,\n\t\t\t} as SuiClientTypes.GetDynamicFieldResponse['dynamicField'],\n\t\t};\n\t}\n\n\tasync getDynamicObjectField<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetDynamicObjectFieldOptions<Include>,\n\t): Promise<SuiClientTypes.GetDynamicObjectFieldResponse<Include>> {\n\t\tconst resolvedNameType = (\n\t\t\tawait this.core.mvr.resolveType({\n\t\t\t\ttype: options.name.type,\n\t\t\t})\n\t\t).type;\n\t\tconst wrappedType = `0x2::dynamic_object_field::Wrapper<${resolvedNameType}>`;\n\n\t\tconst { dynamicField } = await this.getDynamicField({\n\t\t\tparentId: options.parentId,\n\t\t\tname: {\n\t\t\t\ttype: wrappedType,\n\t\t\t\tbcs: options.name.bcs,\n\t\t\t},\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\tconst { object } = await this.getObject({\n\t\t\tobjectId: dynamicField.childId!,\n\t\t\tsignal: options.signal,\n\t\t\tinclude: options.include,\n\t\t});\n\n\t\treturn { object };\n\t}\n\n\tasync waitForTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.WaitForTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst { signal, timeout = 60 * 1000, pollSchedule, include } = options;\n\n\t\tconst digest =\n\t\t\t'result' in options && options.result\n\t\t\t\t? (options.result.Transaction ?? options.result.FailedTransaction)!.digest\n\t\t\t\t: options.digest;\n\n\t\tconst abortSignal = signal\n\t\t\t? AbortSignal.any([AbortSignal.timeout(timeout), signal])\n\t\t\t: AbortSignal.timeout(timeout);\n\n\t\tconst abortPromise = new Promise((_, reject) => {\n\t\t\tabortSignal.addEventListener('abort', () => reject(abortSignal.reason));\n\t\t});\n\n\t\tabortPromise.catch(() => {\n\t\t\t// Swallow unhandled rejections that might be thrown after early return\n\t\t});\n\n\t\t// Default schedule tuned to testnet measurements:\n\t\t// - Fullnode (gRPC/JSON-RPC): p50=130ms, p95=330ms\n\t\t// - GraphQL indexer: p50=1300ms, p95=1430ms\n\t\t// After schedule exhausted, repeats the last interval.\n\t\tconst schedule = pollSchedule ?? [0, 300, 600, 1500, 3500];\n\t\tconst t0 = Date.now();\n\t\tlet scheduleIndex = 0;\n\t\tconst lastInterval =\n\t\t\tschedule.length > 0\n\t\t\t\t? schedule[schedule.length - 1] - (schedule[schedule.length - 2] ?? 0)\n\t\t\t\t: 2_000;\n\n\t\twhile (true) {\n\t\t\tif (scheduleIndex < schedule.length) {\n\t\t\t\tconst remaining = t0 + schedule[scheduleIndex] - Date.now();\n\t\t\t\tscheduleIndex++;\n\t\t\t\tif (remaining > 0) {\n\t\t\t\t\tawait Promise.race([\n\t\t\t\t\t\tnew Promise((resolve) => setTimeout(resolve, remaining)),\n\t\t\t\t\t\tabortPromise,\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tawait Promise.race([\n\t\t\t\t\tnew Promise((resolve) => setTimeout(resolve, lastInterval)),\n\t\t\t\t\tabortPromise,\n\t\t\t\t]);\n\t\t\t}\n\n\t\t\tabortSignal.throwIfAborted();\n\t\t\ttry {\n\t\t\t\treturn await this.getTransaction({\n\t\t\t\t\tdigest,\n\t\t\t\t\tinclude,\n\t\t\t\t\tsignal: abortSignal,\n\t\t\t\t});\n\t\t\t} catch {}\n\t\t}\n\t}\n\n\tasync signAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>({\n\t\ttransaction,\n\t\tsigner,\n\t\tadditionalSignatures = [],\n\t\t...input\n\t}: SuiClientTypes.SignAndExecuteTransactionOptions<Include>): Promise<\n\t\tSuiClientTypes.TransactionResult<Include>\n\t> {\n\t\tlet transactionBytes;\n\n\t\tif (transaction instanceof Uint8Array) {\n\t\t\ttransactionBytes = transaction;\n\t\t} else {\n\t\t\ttransaction.setSenderIfNotSet(signer.toSuiAddress());\n\t\t\ttransactionBytes = await transaction.build({ client: this });\n\t\t}\n\n\t\tconst { signature } = await signer.signTransaction(transactionBytes);\n\n\t\treturn this.executeTransaction({\n\t\t\ttransaction: transactionBytes,\n\t\t\tsignatures: [signature, ...additionalSignatures],\n\t\t\t...input,\n\t\t});\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { EnumInputShape, EnumOutputShape } from '@mysten/bcs';\nimport type { GenericSchema, InferInput, InferOutput, ObjectEntries, ObjectSchema } from 'valibot';\nimport {\n\tarray,\n\tboolean,\n\tcheck,\n\tinteger,\n\tlazy,\n\tliteral,\n\tnullable,\n\tnullish,\n\tnumber,\n\tobject,\n\toptional,\n\tpipe,\n\trecord,\n\tstring,\n\ttransform,\n\ttuple,\n\tunion,\n\tunknown,\n} from 'valibot';\n\nimport { isValidSuiAddress, normalizeSuiAddress } from '../../utils/sui-types.js';\nimport type { Simplify } from '@mysten/utils';\nimport type { SuiClientTypes } from '../../client/types.js';\n\ntype EnumSchemaInput<T extends Record<string, GenericSchema<any>>> = EnumInputShape<\n\tSimplify<{\n\t\t[K in keyof T]: InferInput<T[K]>;\n\t}>\n>;\n\ntype EnumSchemaOutput<T extends Record<string, GenericSchema<any>>> = EnumOutputShape<\n\tSimplify<{\n\t\t[K in keyof T]: InferOutput<T[K]>;\n\t}>\n>;\n\ntype EnumSchema<T extends Record<string, GenericSchema<any>>> = GenericSchema<\n\tEnumSchemaInput<T>,\n\tEnumSchemaOutput<T>\n>;\n\nexport function safeEnum<T extends Record<string, GenericSchema<any>>>(options: T): EnumSchema<T> {\n\treturn union(\n\t\tObject.keys(options).map(\n\t\t\t(key) =>\n\t\t\t\twithKind(\n\t\t\t\t\tkey,\n\t\t\t\t\tobject({\n\t\t\t\t\t\t[key]: options[key],\n\t\t\t\t\t}),\n\t\t\t\t) as GenericSchema<EnumOutputShape<T>>,\n\t\t),\n\t) as EnumSchema<T>;\n}\n\nfunction withKind<K extends string, TEntries extends ObjectEntries>(\n\tkey: K,\n\tschema: ObjectSchema<TEntries, undefined>,\n) {\n\treturn pipe(\n\t\tobject({\n\t\t\t...schema.entries,\n\t\t\t$kind: optional(literal(key)),\n\t\t}),\n\t\ttransform((value) => ({ ...value, $kind: key })),\n\t) as GenericSchema<\n\t\tSimplify<InferInput<ObjectSchema<TEntries, undefined>> & { $kind?: K }>,\n\t\tSimplify<InferOutput<ObjectSchema<TEntries, undefined>> & { $kind: K }>\n\t>;\n}\n\nexport const SuiAddress = pipe(\n\tstring(),\n\ttransform((value) => normalizeSuiAddress(value)),\n\tcheck(isValidSuiAddress),\n);\nexport const ObjectID = SuiAddress;\nexport const BCSBytes = string();\nexport const JsonU64 = pipe(\n\tunion([string(), pipe(number(), integer())]),\n\n\tcheck((val) => {\n\t\ttry {\n\t\t\tBigInt(val);\n\t\t\treturn BigInt(val) >= 0 && BigInt(val) <= 18446744073709551615n;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}, 'Invalid u64'),\n);\n\nexport const U32 = pipe(\n\tnumber(),\n\tinteger(),\n\tcheck((val) => val >= 0 && val < 2 ** 32, 'Invalid u32'),\n);\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/base_types.rs#L138\n// Implemented as a tuple in rust\nexport const ObjectRefSchema = object({\n\tobjectId: SuiAddress,\n\tversion: JsonU64,\n\tdigest: string(),\n});\nexport type ObjectRef = InferOutput<typeof ObjectRefSchema>;\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L690-L702\nexport const ArgumentSchema = union([\n\twithKind('GasCoin', object({ GasCoin: literal(true) })),\n\twithKind(\n\t\t'Input',\n\t\tobject({\n\t\t\tInput: pipe(number(), integer()),\n\t\t\ttype: optional(union([literal('pure'), literal('object'), literal('withdrawal')])),\n\t\t}),\n\t),\n\twithKind('Result', object({ Result: pipe(number(), integer()) })),\n\twithKind(\n\t\t'NestedResult',\n\t\tobject({ NestedResult: tuple([pipe(number(), integer()), pipe(number(), integer())]) }),\n\t),\n]);\n\nexport type Argument = InferOutput<typeof ArgumentSchema>;\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L1387-L1392\nexport const GasDataSchema = object({\n\tbudget: nullable(JsonU64),\n\tprice: nullable(JsonU64),\n\towner: nullable(SuiAddress),\n\tpayment: nullable(array(ObjectRefSchema)),\n});\nexport type GasData = InferOutput<typeof GasDataSchema>;\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/external-crates/move/crates/move-core-types/src/language_storage.rs#L140-L147\nexport const StructTagSchema = object({\n\taddress: string(),\n\tmodule: string(),\n\tname: string(),\n\t// type_params in rust, should be updated to use camelCase\n\ttypeParams: array(string()),\n});\nexport type StructTag = InferOutput<typeof StructTagSchema>;\n\nexport const OpenSignatureBodySchema: GenericSchema<SuiClientTypes.OpenSignatureBody> = union([\n\tobject({ $kind: literal('address') }),\n\tobject({ $kind: literal('bool') }),\n\tobject({ $kind: literal('u8') }),\n\tobject({ $kind: literal('u16') }),\n\tobject({ $kind: literal('u32') }),\n\tobject({ $kind: literal('u64') }),\n\tobject({ $kind: literal('u128') }),\n\tobject({ $kind: literal('u256') }),\n\tobject({ $kind: literal('unknown') }),\n\tobject({ $kind: literal('vector'), vector: lazy(() => OpenSignatureBodySchema) }),\n\tobject({\n\t\t$kind: literal('datatype'),\n\t\tdatatype: object({\n\t\t\ttypeName: string(),\n\t\t\ttypeParameters: array(lazy(() => OpenSignatureBodySchema)),\n\t\t}),\n\t}),\n\tobject({ $kind: literal('typeParameter'), index: pipe(number(), integer()) }),\n]);\n\nexport const OpenSignatureSchema = object({\n\treference: nullable(union([literal('mutable'), literal('immutable'), literal('unknown')])),\n\tbody: OpenSignatureBodySchema,\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L707-L718\nconst ProgrammableMoveCallSchema = object({\n\tpackage: ObjectID,\n\tmodule: string(),\n\tfunction: string(),\n\t// snake case in rust\n\ttypeArguments: array(string()),\n\targuments: array(ArgumentSchema),\n\t_argumentTypes: optional(nullable(array(OpenSignatureSchema))),\n});\nexport type ProgrammableMoveCall = InferOutput<typeof ProgrammableMoveCallSchema>;\n\nexport const $Intent = object({\n\tname: string(),\n\tinputs: record(string(), union([ArgumentSchema, array(ArgumentSchema)])),\n\tdata: record(string(), unknown()),\n});\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L657-L685\nexport const CommandSchema = safeEnum({\n\tMoveCall: ProgrammableMoveCallSchema,\n\tTransferObjects: object({\n\t\tobjects: array(ArgumentSchema),\n\t\taddress: ArgumentSchema,\n\t}),\n\tSplitCoins: object({\n\t\tcoin: ArgumentSchema,\n\t\tamounts: array(ArgumentSchema),\n\t}),\n\tMergeCoins: object({\n\t\tdestination: ArgumentSchema,\n\t\tsources: array(ArgumentSchema),\n\t}),\n\tPublish: object({\n\t\tmodules: array(BCSBytes),\n\t\tdependencies: array(ObjectID),\n\t}),\n\tMakeMoveVec: object({\n\t\ttype: nullable(string()),\n\t\telements: array(ArgumentSchema),\n\t}),\n\tUpgrade: object({\n\t\tmodules: array(BCSBytes),\n\t\tdependencies: array(ObjectID),\n\t\tpackage: ObjectID,\n\t\tticket: ArgumentSchema,\n\t}),\n\t$Intent,\n});\n\nexport type Command<Arg = Argument> = EnumOutputShape<{\n\tMoveCall: {\n\t\tpackage: string;\n\t\tmodule: string;\n\t\tfunction: string;\n\t\ttypeArguments: string[];\n\t\targuments: Arg[];\n\t\t_argumentTypes?: SuiClientTypes.OpenSignature[] | null;\n\t};\n\tTransferObjects: {\n\t\tobjects: Arg[];\n\t\taddress: Arg;\n\t};\n\tSplitCoins: {\n\t\tcoin: Arg;\n\t\tamounts: Arg[];\n\t};\n\tMergeCoins: {\n\t\tdestination: Arg;\n\t\tsources: Arg[];\n\t};\n\tPublish: {\n\t\tmodules: string[];\n\t\tdependencies: string[];\n\t};\n\tMakeMoveVec: {\n\t\ttype: string | null;\n\t\telements: Arg[];\n\t};\n\tUpgrade: {\n\t\tmodules: string[];\n\t\tdependencies: string[];\n\t\tpackage: string;\n\t\tticket: Arg;\n\t};\n\t$Intent: {\n\t\tname: string;\n\t\tinputs: Record<string, Argument | Argument[]>;\n\t\tdata: Record<string, unknown>;\n\t};\n}>;\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L102-L114\nexport const ObjectArgSchema = safeEnum({\n\tImmOrOwnedObject: ObjectRefSchema,\n\tSharedObject: object({\n\t\tobjectId: ObjectID,\n\t\t// snake case in rust\n\t\tinitialSharedVersion: JsonU64,\n\t\tmutable: boolean(),\n\t}),\n\tReceiving: ObjectRefSchema,\n});\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const ReservationSchema = safeEnum({\n\tMaxAmountU64: JsonU64,\n});\nexport type Reservation = InferOutput<typeof ReservationSchema>;\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const WithdrawalTypeArgSchema = safeEnum({\n\tBalance: string(),\n});\nexport type WithdrawalTypeArg = InferOutput<typeof WithdrawalTypeArgSchema>;\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const WithdrawFromSchema = safeEnum({\n\tSender: literal(true),\n\tSponsor: literal(true),\n});\nexport type WithdrawFrom = InferOutput<typeof WithdrawFromSchema>;\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const FundsWithdrawalArgSchema = object({\n\treservation: ReservationSchema,\n\ttypeArg: WithdrawalTypeArgSchema,\n\twithdrawFrom: WithdrawFromSchema,\n});\nexport type FundsWithdrawalArg = InferOutput<typeof FundsWithdrawalArgSchema>;\n\n// https://github.com/MystenLabs/sui/blob/df41d5fa8127634ff4285671a01ead00e519f806/crates/sui-types/src/transaction.rs#L75-L80\nconst CallArgSchema = safeEnum({\n\tObject: ObjectArgSchema,\n\tPure: object({\n\t\tbytes: BCSBytes,\n\t}),\n\tUnresolvedPure: object({\n\t\tvalue: unknown(),\n\t}),\n\tUnresolvedObject: object({\n\t\tobjectId: ObjectID,\n\t\tversion: optional(nullable(JsonU64)),\n\t\tdigest: optional(nullable(string())),\n\t\tinitialSharedVersion: optional(nullable(JsonU64)),\n\t\tmutable: optional(nullable(boolean())),\n\t}),\n\tFundsWithdrawal: FundsWithdrawalArgSchema,\n});\nexport type CallArg = InferOutput<typeof CallArgSchema>;\n\nexport const NormalizedCallArg = safeEnum({\n\tObject: ObjectArgSchema,\n\tPure: object({\n\t\tbytes: BCSBytes,\n\t}),\n});\n\n// Rust: crates/sui-types/src/transaction.rs\nexport const ValidDuringSchema = object({\n\tminEpoch: nullable(JsonU64),\n\tmaxEpoch: nullable(JsonU64),\n\tminTimestamp: nullable(JsonU64),\n\tmaxTimestamp: nullable(JsonU64),\n\tchain: string(),\n\tnonce: U32,\n});\nexport type ValidDuring = InferOutput<typeof ValidDuringSchema>;\n\nexport const TransactionExpiration = safeEnum({\n\tNone: literal(true),\n\tEpoch: JsonU64,\n\tValidDuring: ValidDuringSchema,\n});\n\nexport type TransactionExpiration = InferOutput<typeof TransactionExpiration>;\n\nexport const TransactionDataSchema = object({\n\tversion: literal(2),\n\tsender: nullish(SuiAddress),\n\texpiration: nullish(TransactionExpiration),\n\tgasData: GasDataSchema,\n\tinputs: array(CallArgSchema),\n\tcommands: array(CommandSchema),\n});\n\nexport type TransactionData = InferOutput<typeof TransactionDataSchema>;\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\nimport type { GenericSchema, InferInput, InferOutput } from 'valibot';\nimport {\n\tarray,\n\tbigint,\n\tboolean,\n\tcheck,\n\tinteger,\n\tis,\n\tlazy,\n\tliteral,\n\tnullable,\n\tnullish,\n\tnumber,\n\tobject,\n\toptional,\n\tparse,\n\tpipe,\n\tstring,\n\tunion,\n\tunknown,\n} from 'valibot';\n\nimport { TypeTagSerializer } from '../../bcs/index.js';\nimport type { StructTag as StructTagType, TypeTag as TypeTagType } from '../../bcs/types.js';\nimport { JsonU64, ObjectID, safeEnum, TransactionDataSchema } from './internal.js';\nimport type { Argument, ArgumentSchema, TransactionData } from './internal.js';\n\nexport const ObjectRef = object({\n\tdigest: string(),\n\tobjectId: string(),\n\tversion: union([pipe(number(), integer()), string(), bigint()]),\n});\n\nconst ObjectArg = safeEnum({\n\tImmOrOwned: ObjectRef,\n\tShared: object({\n\t\tobjectId: ObjectID,\n\t\tinitialSharedVersion: JsonU64,\n\t\tmutable: boolean(),\n\t}),\n\tReceiving: ObjectRef,\n});\n\nexport const NormalizedCallArg = safeEnum({\n\tObject: ObjectArg,\n\tPure: array(pipe(number(), integer())),\n});\n\nconst TransactionInput = union([\n\tobject({\n\t\tkind: literal('Input'),\n\t\tindex: pipe(number(), integer()),\n\t\tvalue: unknown(),\n\t\ttype: optional(literal('object')),\n\t}),\n\tobject({\n\t\tkind: literal('Input'),\n\t\tindex: pipe(number(), integer()),\n\t\tvalue: unknown(),\n\t\ttype: literal('pure'),\n\t}),\n]);\n\nconst TransactionExpiration = union([\n\tobject({ Epoch: pipe(number(), integer()) }),\n\tobject({ None: nullable(literal(true)) }),\n]);\n\nconst StringEncodedBigint = pipe(\n\tunion([number(), string(), bigint()]),\n\tcheck((val) => {\n\t\tif (!['string', 'number', 'bigint'].includes(typeof val)) return false;\n\n\t\ttry {\n\t\t\tBigInt(val as string);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t}),\n);\n\nexport const TypeTag: GenericSchema<TypeTagType> = union([\n\tobject({ bool: nullable(literal(true)) }),\n\tobject({ u8: nullable(literal(true)) }),\n\tobject({ u64: nullable(literal(true)) }),\n\tobject({ u128: nullable(literal(true)) }),\n\tobject({ address: nullable(literal(true)) }),\n\tobject({ signer: nullable(literal(true)) }),\n\tobject({ vector: lazy(() => TypeTag) }),\n\tobject({ struct: lazy(() => StructTag) }),\n\tobject({ u16: nullable(literal(true)) }),\n\tobject({ u32: nullable(literal(true)) }),\n\tobject({ u256: nullable(literal(true)) }),\n]);\n\n// https://github.com/MystenLabs/sui/blob/cea8742e810142a8145fd83c4c142d61e561004a/external-crates/move/crates/move-core-types/src/language_storage.rs#L140-L147\nexport const StructTag: GenericSchema<StructTagType> = object({\n\taddress: string(),\n\tmodule: string(),\n\tname: string(),\n\ttypeParams: array(TypeTag),\n});\n\nconst GasConfig = object({\n\tbudget: optional(StringEncodedBigint),\n\tprice: optional(StringEncodedBigint),\n\tpayment: optional(array(ObjectRef)),\n\towner: optional(string()),\n});\n\nconst TransactionArgumentTypes = [\n\tTransactionInput,\n\tobject({ kind: literal('GasCoin') }),\n\tobject({ kind: literal('Result'), index: pipe(number(), integer()) }),\n\tobject({\n\t\tkind: literal('NestedResult'),\n\t\tindex: pipe(number(), integer()),\n\t\tresultIndex: pipe(number(), integer()),\n\t}),\n] as const;\n\n// Generic transaction argument\nexport const TransactionArgument = union([...TransactionArgumentTypes]);\n\nconst MoveCallTransaction = object({\n\tkind: literal('MoveCall'),\n\ttarget: pipe(\n\t\tstring(),\n\t\tcheck((target) => target.split('::').length === 3),\n\t) as GenericSchema<`${string}::${string}::${string}`>,\n\ttypeArguments: array(string()),\n\targuments: array(TransactionArgument),\n});\n\nconst TransferObjectsTransaction = object({\n\tkind: literal('TransferObjects'),\n\tobjects: array(TransactionArgument),\n\taddress: TransactionArgument,\n});\n\nconst SplitCoinsTransaction = object({\n\tkind: literal('SplitCoins'),\n\tcoin: TransactionArgument,\n\tamounts: array(TransactionArgument),\n});\n\nconst MergeCoinsTransaction = object({\n\tkind: literal('MergeCoins'),\n\tdestination: TransactionArgument,\n\tsources: array(TransactionArgument),\n});\n\nconst MakeMoveVecTransaction = object({\n\tkind: literal('MakeMoveVec'),\n\ttype: union([object({ Some: TypeTag }), object({ None: nullable(literal(true)) })]),\n\tobjects: array(TransactionArgument),\n});\n\nconst PublishTransaction = object({\n\tkind: literal('Publish'),\n\tmodules: array(array(pipe(number(), integer()))),\n\tdependencies: array(string()),\n});\n\nconst UpgradeTransaction = object({\n\tkind: literal('Upgrade'),\n\tmodules: array(array(pipe(number(), integer()))),\n\tdependencies: array(string()),\n\tpackageId: string(),\n\tticket: TransactionArgument,\n});\n\nconst TransactionTypes = [\n\tMoveCallTransaction,\n\tTransferObjectsTransaction,\n\tSplitCoinsTransaction,\n\tMergeCoinsTransaction,\n\tPublishTransaction,\n\tUpgradeTransaction,\n\tMakeMoveVecTransaction,\n] as const;\n\nconst TransactionType = union([...TransactionTypes]);\n\nexport const SerializedTransactionDataV1 = object({\n\tversion: literal(1),\n\tsender: optional(string()),\n\texpiration: nullish(TransactionExpiration),\n\tgasConfig: GasConfig,\n\tinputs: array(TransactionInput),\n\ttransactions: array(TransactionType),\n});\n\nexport type SerializedTransactionDataV1 = InferOutput<typeof SerializedTransactionDataV1>;\n\nexport function serializeV1TransactionData(\n\ttransactionData: TransactionData,\n): SerializedTransactionDataV1 {\n\tconst inputs: InferOutput<typeof TransactionInput>[] = transactionData.inputs.map(\n\t\t(input, index) => {\n\t\t\tif (input.Object) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tObject: input.Object.ImmOrOwnedObject\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tImmOrOwned: input.Object.ImmOrOwnedObject,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: input.Object.Receiving\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tReceiving: {\n\t\t\t\t\t\t\t\t\t\t\tdigest: input.Object.Receiving.digest,\n\t\t\t\t\t\t\t\t\t\t\tversion: input.Object.Receiving.version,\n\t\t\t\t\t\t\t\t\t\t\tobjectId: input.Object.Receiving.objectId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\t\tShared: {\n\t\t\t\t\t\t\t\t\t\t\tmutable: input.Object.SharedObject.mutable,\n\t\t\t\t\t\t\t\t\t\t\tinitialSharedVersion: input.Object.SharedObject.initialSharedVersion,\n\t\t\t\t\t\t\t\t\t\t\tobjectId: input.Object.SharedObject.objectId,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'object',\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (input.Pure) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: {\n\t\t\t\t\t\tPure: Array.from(fromBase64(input.Pure.bytes)),\n\t\t\t\t\t},\n\t\t\t\t\ttype: 'pure',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (input.UnresolvedPure) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\ttype: 'pure',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: input.UnresolvedPure.value,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (input.UnresolvedObject) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Input',\n\t\t\t\t\ttype: 'object',\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue: input.UnresolvedObject.objectId,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid input');\n\t\t},\n\t);\n\n\treturn {\n\t\tversion: 1,\n\t\tsender: transactionData.sender ?? undefined,\n\t\texpiration:\n\t\t\ttransactionData.expiration?.$kind === 'Epoch'\n\t\t\t\t? { Epoch: Number(transactionData.expiration.Epoch) }\n\t\t\t\t: transactionData.expiration\n\t\t\t\t\t? { None: true }\n\t\t\t\t\t: null,\n\t\tgasConfig: {\n\t\t\towner: transactionData.gasData.owner ?? undefined,\n\t\t\tbudget: transactionData.gasData.budget ?? undefined,\n\t\t\tprice: transactionData.gasData.price ?? undefined,\n\t\t\tpayment: transactionData.gasData.payment ?? undefined,\n\t\t},\n\t\tinputs,\n\t\ttransactions: transactionData.commands.map((command): InferOutput<typeof TransactionType> => {\n\t\t\tif (command.MakeMoveVec) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MakeMoveVec',\n\t\t\t\t\ttype:\n\t\t\t\t\t\tcommand.MakeMoveVec.type === null\n\t\t\t\t\t\t\t? { None: true }\n\t\t\t\t\t\t\t: { Some: TypeTagSerializer.parseFromStr(command.MakeMoveVec.type) },\n\t\t\t\t\tobjects: command.MakeMoveVec.elements.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.MergeCoins) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MergeCoins',\n\t\t\t\t\tdestination: convertTransactionArgument(command.MergeCoins.destination, inputs),\n\t\t\t\t\tsources: command.MergeCoins.sources.map((arg) => convertTransactionArgument(arg, inputs)),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.MoveCall) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'MoveCall',\n\t\t\t\t\ttarget: `${command.MoveCall.package}::${command.MoveCall.module}::${command.MoveCall.function}`,\n\t\t\t\t\ttypeArguments: command.MoveCall.typeArguments,\n\t\t\t\t\targuments: command.MoveCall.arguments.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.Publish) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Publish',\n\t\t\t\t\tmodules: command.Publish.modules.map((mod) => Array.from(fromBase64(mod))),\n\t\t\t\t\tdependencies: command.Publish.dependencies,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.SplitCoins) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'SplitCoins',\n\t\t\t\t\tcoin: convertTransactionArgument(command.SplitCoins.coin, inputs),\n\t\t\t\t\tamounts: command.SplitCoins.amounts.map((arg) => convertTransactionArgument(arg, inputs)),\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (command.TransferObjects) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'TransferObjects',\n\t\t\t\t\tobjects: command.TransferObjects.objects.map((arg) =>\n\t\t\t\t\t\tconvertTransactionArgument(arg, inputs),\n\t\t\t\t\t),\n\t\t\t\t\taddress: convertTransactionArgument(command.TransferObjects.address, inputs),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (command.Upgrade) {\n\t\t\t\treturn {\n\t\t\t\t\tkind: 'Upgrade',\n\t\t\t\t\tmodules: command.Upgrade.modules.map((mod) => Array.from(fromBase64(mod))),\n\t\t\t\t\tdependencies: command.Upgrade.dependencies,\n\t\t\t\t\tpackageId: command.Upgrade.package,\n\t\t\t\t\tticket: convertTransactionArgument(command.Upgrade.ticket, inputs),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error(`Unknown transaction ${Object.keys(command)}`);\n\t\t}),\n\t};\n}\n\nfunction convertTransactionArgument(\n\targ: Argument,\n\tinputs: InferOutput<typeof TransactionInput>[],\n): InferOutput<typeof TransactionArgument> {\n\tif (arg.$kind === 'GasCoin') {\n\t\treturn { kind: 'GasCoin' };\n\t}\n\tif (arg.$kind === 'Result') {\n\t\treturn { kind: 'Result', index: arg.Result };\n\t}\n\tif (arg.$kind === 'NestedResult') {\n\t\treturn { kind: 'NestedResult', index: arg.NestedResult[0], resultIndex: arg.NestedResult[1] };\n\t}\n\tif (arg.$kind === 'Input') {\n\t\treturn inputs[arg.Input];\n\t}\n\n\tthrow new Error(`Invalid argument ${Object.keys(arg)}`);\n}\n\nexport function transactionDataFromV1(data: SerializedTransactionDataV1): TransactionData {\n\treturn parse(TransactionDataSchema, {\n\t\tversion: 2,\n\t\tsender: data.sender ?? null,\n\t\texpiration: data.expiration\n\t\t\t? 'Epoch' in data.expiration\n\t\t\t\t? { Epoch: data.expiration.Epoch }\n\t\t\t\t: { None: true }\n\t\t\t: null,\n\t\tgasData: {\n\t\t\towner: data.gasConfig.owner ?? null,\n\t\t\tbudget: data.gasConfig.budget?.toString() ?? null,\n\t\t\tprice: data.gasConfig.price?.toString() ?? null,\n\t\t\tpayment:\n\t\t\t\tdata.gasConfig.payment?.map((ref) => ({\n\t\t\t\t\tdigest: ref.digest,\n\t\t\t\t\tobjectId: ref.objectId,\n\t\t\t\t\tversion: ref.version.toString(),\n\t\t\t\t})) ?? null,\n\t\t},\n\t\tinputs: data.inputs.map((input) => {\n\t\t\tif (input.kind === 'Input') {\n\t\t\t\tif (is(NormalizedCallArg, input.value)) {\n\t\t\t\t\tconst value = parse(NormalizedCallArg, input.value);\n\n\t\t\t\t\tif (value.Object) {\n\t\t\t\t\t\tif (value.Object.ImmOrOwned) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tImmOrOwnedObject: {\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.ImmOrOwned.objectId,\n\t\t\t\t\t\t\t\t\t\tversion: String(value.Object.ImmOrOwned.version),\n\t\t\t\t\t\t\t\t\t\tdigest: value.Object.ImmOrOwned.digest,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.Object.Shared) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tSharedObject: {\n\t\t\t\t\t\t\t\t\t\tmutable: value.Object.Shared.mutable ?? null,\n\t\t\t\t\t\t\t\t\t\tinitialSharedVersion: value.Object.Shared.initialSharedVersion,\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.Shared.objectId,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (value.Object.Receiving) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tObject: {\n\t\t\t\t\t\t\t\t\tReceiving: {\n\t\t\t\t\t\t\t\t\t\tdigest: value.Object.Receiving.digest,\n\t\t\t\t\t\t\t\t\t\tversion: String(value.Object.Receiving.version),\n\t\t\t\t\t\t\t\t\t\tobjectId: value.Object.Receiving.objectId,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthrow new Error('Invalid object input');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPure: {\n\t\t\t\t\t\t\tbytes: toBase64(new Uint8Array(value.Pure)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (input.type === 'object') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tUnresolvedObject: {\n\t\t\t\t\t\t\tobjectId: input.value as string,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tUnresolvedPure: {\n\t\t\t\t\t\tvalue: input.value,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthrow new Error('Invalid input');\n\t\t}),\n\t\tcommands: data.transactions.map((transaction) => {\n\t\t\tswitch (transaction.kind) {\n\t\t\t\tcase 'MakeMoveVec':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMakeMoveVec: {\n\t\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\t\t'Some' in transaction.type\n\t\t\t\t\t\t\t\t\t? TypeTagSerializer.tagToString(transaction.type.Some)\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\telements: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\tcase 'MergeCoins': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMergeCoins: {\n\t\t\t\t\t\t\tdestination: parseV1TransactionArgument(transaction.destination),\n\t\t\t\t\t\t\tsources: transaction.sources.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'MoveCall': {\n\t\t\t\t\tconst [pkg, mod, fn] = transaction.target.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tMoveCall: {\n\t\t\t\t\t\t\tpackage: pkg,\n\t\t\t\t\t\t\tmodule: mod,\n\t\t\t\t\t\t\tfunction: fn,\n\t\t\t\t\t\t\ttypeArguments: transaction.typeArguments,\n\t\t\t\t\t\t\targuments: transaction.arguments.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'Publish': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tPublish: {\n\t\t\t\t\t\t\tmodules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),\n\t\t\t\t\t\t\tdependencies: transaction.dependencies,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'SplitCoins': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tSplitCoins: {\n\t\t\t\t\t\t\tcoin: parseV1TransactionArgument(transaction.coin),\n\t\t\t\t\t\t\tamounts: transaction.amounts.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'TransferObjects': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tTransferObjects: {\n\t\t\t\t\t\t\tobjects: transaction.objects.map((arg) => parseV1TransactionArgument(arg)),\n\t\t\t\t\t\t\taddress: parseV1TransactionArgument(transaction.address),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'Upgrade': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tUpgrade: {\n\t\t\t\t\t\t\tmodules: transaction.modules.map((mod) => toBase64(Uint8Array.from(mod))),\n\t\t\t\t\t\t\tdependencies: transaction.dependencies,\n\t\t\t\t\t\t\tpackage: transaction.packageId,\n\t\t\t\t\t\t\tticket: parseV1TransactionArgument(transaction.ticket),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthrow new Error(`Unknown transaction ${Object.keys(transaction)}`);\n\t\t}),\n\t} satisfies InferInput<typeof TransactionDataSchema>);\n}\n\nfunction parseV1TransactionArgument(\n\targ: InferOutput<typeof TransactionArgument>,\n): InferInput<typeof ArgumentSchema> {\n\tswitch (arg.kind) {\n\t\tcase 'GasCoin': {\n\t\t\treturn { GasCoin: true };\n\t\t}\n\t\tcase 'Result':\n\t\t\treturn { Result: arg.index };\n\t\tcase 'NestedResult': {\n\t\t\treturn { NestedResult: [arg.index, arg.resultIndex] };\n\t\t}\n\t\tcase 'Input': {\n\t\t\treturn { Input: arg.index };\n\t\t}\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { blake2b } from '@noble/hashes/blake2.js';\n\n/**\n * Generates a Blake2b hash of typed data as a base64 string.\n *\n * @param typeTag type tag (e.g. TransactionData, SenderSignedData)\n * @param data data to hash\n */\nexport function hashTypedData(typeTag: string, data: Uint8Array): Uint8Array {\n\tconst typeTagBytes = Array.from(`${typeTag}::`).map((e) => e.charCodeAt(0));\n\n\tconst dataWithTag = new Uint8Array(typeTagBytes.length + data.length);\n\tdataWithTag.set(typeTagBytes);\n\tdataWithTag.set(data, typeTagBytes.length);\n\n\treturn blake2b(dataWithTag, { dkLen: 32 });\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { is } from 'valibot';\n\nimport type { SuiMoveNormalizedType } from '../jsonRpc/index.js';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport { ArgumentSchema } from './data/internal.js';\nimport type { Argument, CallArg, Command } from './data/internal.js';\n\nexport function extractMutableReference(\n\tnormalizedType: SuiMoveNormalizedType,\n): SuiMoveNormalizedType | undefined {\n\treturn typeof normalizedType === 'object' && 'MutableReference' in normalizedType\n\t\t? normalizedType.MutableReference\n\t\t: undefined;\n}\n\nexport function extractReference(\n\tnormalizedType: SuiMoveNormalizedType,\n): SuiMoveNormalizedType | undefined {\n\treturn typeof normalizedType === 'object' && 'Reference' in normalizedType\n\t\t? normalizedType.Reference\n\t\t: undefined;\n}\n\nexport function extractStructTag(\n\tnormalizedType: SuiMoveNormalizedType,\n): Extract<SuiMoveNormalizedType, { Struct: unknown }> | undefined {\n\tif (typeof normalizedType === 'object' && 'Struct' in normalizedType) {\n\t\treturn normalizedType;\n\t}\n\n\tconst ref = extractReference(normalizedType);\n\tconst mutRef = extractMutableReference(normalizedType);\n\n\tif (typeof ref === 'object' && 'Struct' in ref) {\n\t\treturn ref;\n\t}\n\n\tif (typeof mutRef === 'object' && 'Struct' in mutRef) {\n\t\treturn mutRef;\n\t}\n\treturn undefined;\n}\n\nexport function getIdFromCallArg(arg: string | CallArg) {\n\tif (typeof arg === 'string') {\n\t\treturn normalizeSuiAddress(arg);\n\t}\n\n\tif (arg.Object) {\n\t\tif (arg.Object.ImmOrOwnedObject) {\n\t\t\treturn normalizeSuiAddress(arg.Object.ImmOrOwnedObject.objectId);\n\t\t}\n\n\t\tif (arg.Object.Receiving) {\n\t\t\treturn normalizeSuiAddress(arg.Object.Receiving.objectId);\n\t\t}\n\n\t\treturn normalizeSuiAddress(arg.Object.SharedObject.objectId);\n\t}\n\n\tif (arg.UnresolvedObject) {\n\t\treturn normalizeSuiAddress(arg.UnresolvedObject.objectId);\n\t}\n\n\treturn undefined;\n}\n\nexport function isArgument(value: unknown): value is Argument {\n\treturn is(ArgumentSchema, value);\n}\n\nexport function remapCommandArguments(\n\tcommand: Command,\n\tinputMapping: Map<number, number>,\n\tcommandMapping: Map<number, number>,\n) {\n\tconst remapArg = (arg: Argument): Argument => {\n\t\tswitch (arg.$kind) {\n\t\t\tcase 'Input': {\n\t\t\t\tconst newInputIndex = inputMapping.get(arg.Input);\n\t\t\t\tif (newInputIndex === undefined) {\n\t\t\t\t\tthrow new Error(`Input ${arg.Input} not found in input mapping`);\n\t\t\t\t}\n\t\t\t\treturn { ...arg, Input: newInputIndex };\n\t\t\t}\n\t\t\tcase 'Result': {\n\t\t\t\tconst newCommandIndex = commandMapping.get(arg.Result);\n\t\t\t\tif (newCommandIndex !== undefined) {\n\t\t\t\t\treturn { ...arg, Result: newCommandIndex };\n\t\t\t\t}\n\t\t\t\treturn arg;\n\t\t\t}\n\t\t\tcase 'NestedResult': {\n\t\t\t\tconst newCommandIndex = commandMapping.get(arg.NestedResult[0]);\n\t\t\t\tif (newCommandIndex !== undefined) {\n\t\t\t\t\treturn { ...arg, NestedResult: [newCommandIndex, arg.NestedResult[1]] };\n\t\t\t\t}\n\t\t\t\treturn arg;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn arg;\n\t\t}\n\t};\n\n\tswitch (command.$kind) {\n\t\tcase 'MoveCall':\n\t\t\tcommand.MoveCall.arguments = command.MoveCall.arguments.map(remapArg);\n\t\t\tbreak;\n\t\tcase 'TransferObjects':\n\t\t\tcommand.TransferObjects.objects = command.TransferObjects.objects.map(remapArg);\n\t\t\tcommand.TransferObjects.address = remapArg(command.TransferObjects.address);\n\t\t\tbreak;\n\t\tcase 'SplitCoins':\n\t\t\tcommand.SplitCoins.coin = remapArg(command.SplitCoins.coin);\n\t\t\tcommand.SplitCoins.amounts = command.SplitCoins.amounts.map(remapArg);\n\t\t\tbreak;\n\t\tcase 'MergeCoins':\n\t\t\tcommand.MergeCoins.destination = remapArg(command.MergeCoins.destination);\n\t\t\tcommand.MergeCoins.sources = command.MergeCoins.sources.map(remapArg);\n\t\t\tbreak;\n\t\tcase 'MakeMoveVec':\n\t\t\tcommand.MakeMoveVec.elements = command.MakeMoveVec.elements.map(remapArg);\n\t\t\tbreak;\n\t\tcase 'Upgrade':\n\t\t\tcommand.Upgrade.ticket = remapArg(command.Upgrade.ticket);\n\t\t\tbreak;\n\t\tcase '$Intent': {\n\t\t\tconst inputs = command.$Intent.inputs;\n\t\t\tcommand.$Intent.inputs = {};\n\n\t\t\tfor (const [key, value] of Object.entries(inputs)) {\n\t\t\t\tcommand.$Intent.inputs[key] = Array.isArray(value) ? value.map(remapArg) : remapArg(value);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase 'Publish':\n\t\t\tbreak;\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toBase58 } from '@mysten/bcs';\nimport type { InferInput } from 'valibot';\nimport { parse } from 'valibot';\n\nimport { bcs } from '../bcs/index.js';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport type {\n\tArgument,\n\tCallArg,\n\tCommand,\n\tGasData,\n\tTransactionExpiration,\n\tTransactionData,\n} from './data/internal.js';\nimport { ArgumentSchema, TransactionDataSchema } from './data/internal.js';\nimport { transactionDataFromV1 } from './data/v1.js';\nimport type { SerializedTransactionDataV1 } from './data/v1.js';\nimport type { SerializedTransactionDataV2Schema } from './data/v2.js';\nimport { hashTypedData } from './hash.js';\nimport { getIdFromCallArg, remapCommandArguments } from './utils.js';\nimport type { TransactionResult } from './Transaction.js';\nfunction prepareSuiAddress(address: string) {\n\treturn normalizeSuiAddress(address).replace('0x', '');\n}\n\nexport class TransactionDataBuilder implements TransactionData {\n\tstatic fromKindBytes(bytes: Uint8Array) {\n\t\tconst kind = bcs.TransactionKind.parse(bytes);\n\n\t\tconst programmableTx = kind.ProgrammableTransaction;\n\t\tif (!programmableTx) {\n\t\t\tthrow new Error('Unable to deserialize from bytes.');\n\t\t}\n\n\t\treturn TransactionDataBuilder.restore({\n\t\t\tversion: 2,\n\t\t\tsender: null,\n\t\t\texpiration: null,\n\t\t\tgasData: {\n\t\t\t\tbudget: null,\n\t\t\t\towner: null,\n\t\t\t\tpayment: null,\n\t\t\t\tprice: null,\n\t\t\t},\n\t\t\tinputs: programmableTx.inputs,\n\t\t\tcommands: programmableTx.commands,\n\t\t});\n\t}\n\n\tstatic fromBytes(bytes: Uint8Array) {\n\t\tconst rawData = bcs.TransactionData.parse(bytes);\n\t\tconst data = rawData?.V1;\n\t\tconst programmableTx = data.kind.ProgrammableTransaction;\n\n\t\tif (!data || !programmableTx) {\n\t\t\tthrow new Error('Unable to deserialize from bytes.');\n\t\t}\n\n\t\treturn TransactionDataBuilder.restore({\n\t\t\tversion: 2,\n\t\t\tsender: data.sender,\n\t\t\texpiration: data.expiration,\n\t\t\tgasData: data.gasData,\n\t\t\tinputs: programmableTx.inputs,\n\t\t\tcommands: programmableTx.commands,\n\t\t});\n\t}\n\n\tstatic restore(\n\t\tdata:\n\t\t\t| InferInput<typeof SerializedTransactionDataV2Schema>\n\t\t\t| InferInput<typeof SerializedTransactionDataV1>,\n\t) {\n\t\tif (data.version === 2) {\n\t\t\treturn new TransactionDataBuilder(parse(TransactionDataSchema, data));\n\t\t} else {\n\t\t\treturn new TransactionDataBuilder(parse(TransactionDataSchema, transactionDataFromV1(data)));\n\t\t}\n\t}\n\n\t/**\n\t * Generate transaction digest.\n\t *\n\t * @param bytes BCS serialized transaction data\n\t * @returns transaction digest.\n\t */\n\tstatic getDigestFromBytes(bytes: Uint8Array) {\n\t\tconst hash = hashTypedData('TransactionData', bytes);\n\t\treturn toBase58(hash);\n\t}\n\n\tversion = 2 as const;\n\tsender: string | null;\n\texpiration: TransactionExpiration | null;\n\tgasData: GasData;\n\tinputs: CallArg[];\n\tcommands: Command[];\n\n\tconstructor(clone?: TransactionData) {\n\t\tthis.sender = clone?.sender ?? null;\n\t\tthis.expiration = clone?.expiration ?? null;\n\t\tthis.inputs = clone?.inputs ?? [];\n\t\tthis.commands = clone?.commands ?? [];\n\t\tthis.gasData = clone?.gasData ?? {\n\t\t\tbudget: null,\n\t\t\tprice: null,\n\t\t\towner: null,\n\t\t\tpayment: null,\n\t\t};\n\t}\n\n\tbuild({\n\t\tmaxSizeBytes = Infinity,\n\t\toverrides,\n\t\tonlyTransactionKind,\n\t}: {\n\t\tmaxSizeBytes?: number;\n\t\toverrides?: {\n\t\t\texpiration?: TransactionExpiration;\n\t\t\tsender?: string;\n\t\t\tgasData?: Partial<GasData>;\n\t\t};\n\t\tonlyTransactionKind?: boolean;\n\t} = {}) {\n\t\t// TODO validate that inputs and intents are actually resolved\n\t\tconst inputs = this.inputs as (typeof bcs.CallArg.$inferInput)[];\n\t\tconst commands = this.commands as Extract<\n\t\t\tCommand<Exclude<Argument, { IntentResult: unknown } | { NestedIntentResult: unknown }>>,\n\t\t\t{ Upgrade: unknown }\n\t\t>[];\n\n\t\tconst kind = {\n\t\t\tProgrammableTransaction: {\n\t\t\t\tinputs,\n\t\t\t\tcommands,\n\t\t\t},\n\t\t};\n\n\t\tif (onlyTransactionKind) {\n\t\t\treturn bcs.TransactionKind.serialize(kind, { maxSize: maxSizeBytes }).toBytes();\n\t\t}\n\n\t\tconst expiration = overrides?.expiration ?? this.expiration;\n\t\tconst sender = overrides?.sender ?? this.sender;\n\t\tconst gasData = { ...this.gasData, ...overrides?.gasData };\n\n\t\tif (!sender) {\n\t\t\tthrow new Error('Missing transaction sender');\n\t\t}\n\n\t\tif (!gasData.budget) {\n\t\t\tthrow new Error('Missing gas budget');\n\t\t}\n\n\t\tif (!gasData.payment) {\n\t\t\tthrow new Error('Missing gas payment');\n\t\t}\n\n\t\tif (!gasData.price) {\n\t\t\tthrow new Error('Missing gas price');\n\t\t}\n\n\t\tconst transactionData = {\n\t\t\tsender: prepareSuiAddress(sender),\n\t\t\texpiration: expiration ? expiration : { None: true },\n\t\t\tgasData: {\n\t\t\t\tpayment: gasData.payment,\n\t\t\t\towner: prepareSuiAddress(this.gasData.owner ?? sender),\n\t\t\t\tprice: BigInt(gasData.price),\n\t\t\t\tbudget: BigInt(gasData.budget),\n\t\t\t},\n\t\t\tkind: {\n\t\t\t\tProgrammableTransaction: {\n\t\t\t\t\tinputs,\n\t\t\t\t\tcommands,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\treturn bcs.TransactionData.serialize(\n\t\t\t{ V1: transactionData },\n\t\t\t{ maxSize: maxSizeBytes },\n\t\t).toBytes();\n\t}\n\n\taddInput<T extends 'object' | 'pure' | 'withdrawal'>(type: T, arg: CallArg) {\n\t\tconst index = this.inputs.length;\n\t\tthis.inputs.push(arg);\n\t\treturn { Input: index, type, $kind: 'Input' as const };\n\t}\n\n\tgetInputUses(index: number, fn: (arg: Argument, command: Command) => void) {\n\t\tthis.mapArguments((arg, command) => {\n\t\t\tif (arg.$kind === 'Input' && arg.Input === index) {\n\t\t\t\tfn(arg, command);\n\t\t\t}\n\n\t\t\treturn arg;\n\t\t});\n\t}\n\n\tmapCommandArguments(\n\t\tindex: number,\n\t\tfn: (arg: Argument, command: Command, commandIndex: number) => Argument,\n\t) {\n\t\tconst command = this.commands[index];\n\n\t\tswitch (command.$kind) {\n\t\t\tcase 'MoveCall':\n\t\t\t\tcommand.MoveCall.arguments = command.MoveCall.arguments.map((arg) =>\n\t\t\t\t\tfn(arg, command, index),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'TransferObjects':\n\t\t\t\tcommand.TransferObjects.objects = command.TransferObjects.objects.map((arg) =>\n\t\t\t\t\tfn(arg, command, index),\n\t\t\t\t);\n\t\t\t\tcommand.TransferObjects.address = fn(command.TransferObjects.address, command, index);\n\t\t\t\tbreak;\n\t\t\tcase 'SplitCoins':\n\t\t\t\tcommand.SplitCoins.coin = fn(command.SplitCoins.coin, command, index);\n\t\t\t\tcommand.SplitCoins.amounts = command.SplitCoins.amounts.map((arg) =>\n\t\t\t\t\tfn(arg, command, index),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'MergeCoins':\n\t\t\t\tcommand.MergeCoins.destination = fn(command.MergeCoins.destination, command, index);\n\t\t\t\tcommand.MergeCoins.sources = command.MergeCoins.sources.map((arg) =>\n\t\t\t\t\tfn(arg, command, index),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'MakeMoveVec':\n\t\t\t\tcommand.MakeMoveVec.elements = command.MakeMoveVec.elements.map((arg) =>\n\t\t\t\t\tfn(arg, command, index),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'Upgrade':\n\t\t\t\tcommand.Upgrade.ticket = fn(command.Upgrade.ticket, command, index);\n\t\t\t\tbreak;\n\t\t\tcase '$Intent':\n\t\t\t\tconst inputs = command.$Intent.inputs;\n\t\t\t\tcommand.$Intent.inputs = {};\n\n\t\t\t\tfor (const [key, value] of Object.entries(inputs)) {\n\t\t\t\t\tcommand.$Intent.inputs[key] = Array.isArray(value)\n\t\t\t\t\t\t? value.map((arg) => fn(arg, command, index))\n\t\t\t\t\t\t: fn(value, command, index);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'Publish':\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unexpected transaction kind: ${(command as { $kind: unknown }).$kind}`);\n\t\t}\n\t}\n\n\tmapArguments(fn: (arg: Argument, command: Command, commandIndex: number) => Argument) {\n\t\tfor (const commandIndex of this.commands.keys()) {\n\t\t\tthis.mapCommandArguments(commandIndex, fn);\n\t\t}\n\t}\n\n\treplaceCommand(\n\t\tindex: number,\n\t\treplacement: Command | Command[],\n\t\tresultIndex: number | { Result: number } | { NestedResult: [number, number] } = index,\n\t) {\n\t\tif (!Array.isArray(replacement)) {\n\t\t\tthis.commands[index] = replacement;\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeDiff = replacement.length - 1;\n\n\t\tthis.commands.splice(index, 1, ...structuredClone(replacement));\n\n\t\tthis.mapArguments((arg, _command, commandIndex) => {\n\t\t\tif (commandIndex < index + replacement.length) {\n\t\t\t\treturn arg;\n\t\t\t}\n\n\t\t\tif (typeof resultIndex !== 'number') {\n\t\t\t\tif (\n\t\t\t\t\t(arg.$kind === 'Result' && arg.Result === index) ||\n\t\t\t\t\t(arg.$kind === 'NestedResult' && arg.NestedResult[0] === index)\n\t\t\t\t) {\n\t\t\t\t\tif (!('NestedResult' in arg) || arg.NestedResult[1] === 0) {\n\t\t\t\t\t\treturn parse(ArgumentSchema, structuredClone(resultIndex));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Cannot replace command ${index} with a specific result type: NestedResult[${index}, ${arg.NestedResult[1]}] references a nested element that cannot be mapped to the replacement result`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Handle adjustment of other references\n\t\t\tswitch (arg.$kind) {\n\t\t\t\tcase 'Result':\n\t\t\t\t\tif (arg.Result === index && typeof resultIndex === 'number') {\n\t\t\t\t\t\targ.Result = resultIndex;\n\t\t\t\t\t}\n\t\t\t\t\tif (arg.Result > index) {\n\t\t\t\t\t\targ.Result += sizeDiff;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'NestedResult':\n\t\t\t\t\tif (arg.NestedResult[0] === index && typeof resultIndex === 'number') {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t$kind: 'NestedResult',\n\t\t\t\t\t\t\tNestedResult: [resultIndex, arg.NestedResult[1]],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tif (arg.NestedResult[0] > index) {\n\t\t\t\t\t\targ.NestedResult[0] += sizeDiff;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn arg;\n\t\t});\n\t}\n\n\treplaceCommandWithTransaction(\n\t\tindex: number,\n\t\totherTransaction: TransactionData,\n\t\tresult: TransactionResult,\n\t) {\n\t\tif (result.$kind !== 'Result' && result.$kind !== 'NestedResult') {\n\t\t\tthrow new Error('Result must be of kind Result or NestedResult');\n\t\t}\n\n\t\tthis.insertTransaction(index, otherTransaction);\n\n\t\tthis.replaceCommand(\n\t\t\tindex + otherTransaction.commands.length,\n\t\t\t[],\n\t\t\t'Result' in result\n\t\t\t\t? { NestedResult: [result.Result + index, 0] }\n\t\t\t\t: {\n\t\t\t\t\t\tNestedResult: [\n\t\t\t\t\t\t\t(result as { NestedResult: [number, number] }).NestedResult[0] + index,\n\t\t\t\t\t\t\t(result as { NestedResult: [number, number] }).NestedResult[1],\n\t\t\t\t\t\t] as [number, number],\n\t\t\t\t\t},\n\t\t);\n\t}\n\n\tinsertTransaction(atCommandIndex: number, otherTransaction: TransactionData) {\n\t\tconst inputMapping = new Map<number, number>();\n\t\tconst commandMapping = new Map<number, number>();\n\n\t\tfor (let i = 0; i < otherTransaction.inputs.length; i++) {\n\t\t\tconst otherInput = otherTransaction.inputs[i];\n\t\t\tconst id = getIdFromCallArg(otherInput);\n\n\t\t\tlet existingIndex = -1;\n\t\t\tif (id !== undefined) {\n\t\t\t\texistingIndex = this.inputs.findIndex((input) => getIdFromCallArg(input) === id);\n\n\t\t\t\tif (\n\t\t\t\t\texistingIndex !== -1 &&\n\t\t\t\t\tthis.inputs[existingIndex].Object?.SharedObject &&\n\t\t\t\t\totherInput.Object?.SharedObject\n\t\t\t\t) {\n\t\t\t\t\tthis.inputs[existingIndex].Object!.SharedObject!.mutable =\n\t\t\t\t\t\tthis.inputs[existingIndex].Object!.SharedObject!.mutable ||\n\t\t\t\t\t\totherInput.Object.SharedObject.mutable;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (existingIndex !== -1) {\n\t\t\t\tinputMapping.set(i, existingIndex);\n\t\t\t} else {\n\t\t\t\tconst newIndex = this.inputs.length;\n\t\t\t\tthis.inputs.push(otherInput);\n\t\t\t\tinputMapping.set(i, newIndex);\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = 0; i < otherTransaction.commands.length; i++) {\n\t\t\tcommandMapping.set(i, atCommandIndex + i);\n\t\t}\n\n\t\tconst remappedCommands: Command[] = [];\n\t\tfor (let i = 0; i < otherTransaction.commands.length; i++) {\n\t\t\tconst command = structuredClone(otherTransaction.commands[i]);\n\n\t\t\tremapCommandArguments(command, inputMapping, commandMapping);\n\n\t\t\tremappedCommands.push(command);\n\t\t}\n\n\t\tthis.commands.splice(atCommandIndex, 0, ...remappedCommands);\n\n\t\tconst sizeDiff = remappedCommands.length;\n\t\tif (sizeDiff > 0) {\n\t\t\tthis.mapArguments((arg, _command, commandIndex) => {\n\t\t\t\tif (\n\t\t\t\t\tcommandIndex >= atCommandIndex &&\n\t\t\t\t\tcommandIndex < atCommandIndex + remappedCommands.length\n\t\t\t\t) {\n\t\t\t\t\treturn arg;\n\t\t\t\t}\n\n\t\t\t\tswitch (arg.$kind) {\n\t\t\t\t\tcase 'Result':\n\t\t\t\t\t\tif (arg.Result >= atCommandIndex) {\n\t\t\t\t\t\t\targ.Result += sizeDiff;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'NestedResult':\n\t\t\t\t\t\tif (arg.NestedResult[0] >= atCommandIndex) {\n\t\t\t\t\t\t\targ.NestedResult[0] += sizeDiff;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn arg;\n\t\t\t});\n\t\t}\n\t}\n\n\tgetDigest() {\n\t\tconst bytes = this.build({ onlyTransactionKind: false });\n\t\treturn TransactionDataBuilder.getDigestFromBytes(bytes);\n\t}\n\n\tsnapshot(): TransactionData {\n\t\treturn parse(TransactionDataSchema, this);\n\t}\n\n\tshallowClone() {\n\t\treturn new TransactionDataBuilder({\n\t\t\tversion: this.version,\n\t\t\tsender: this.sender,\n\t\t\texpiration: this.expiration,\n\t\t\tgasData: {\n\t\t\t\t...this.gasData,\n\t\t\t},\n\t\t\tinputs: [...this.inputs],\n\t\t\tcommands: [...this.commands],\n\t\t});\n\t}\n\n\tapplyResolvedData(resolved: TransactionData) {\n\t\tif (!this.sender) {\n\t\t\tthis.sender = resolved.sender ?? null;\n\t\t}\n\n\t\tif (!this.expiration) {\n\t\t\tthis.expiration = resolved.expiration ?? null;\n\t\t}\n\n\t\tif (!this.gasData.budget) {\n\t\t\tthis.gasData.budget = resolved.gasData.budget;\n\t\t}\n\n\t\tif (!this.gasData.owner) {\n\t\t\tthis.gasData.owner = resolved.gasData.owner ?? null;\n\t\t}\n\n\t\tif (!this.gasData.payment) {\n\t\t\tthis.gasData.payment = resolved.gasData.payment;\n\t\t}\n\n\t\tif (!this.gasData.price) {\n\t\t\tthis.gasData.price = resolved.gasData.price;\n\t\t}\n\n\t\tfor (let i = 0; i < this.inputs.length; i++) {\n\t\t\tconst input = this.inputs[i];\n\t\t\tconst resolvedInput = resolved.inputs[i];\n\n\t\t\tswitch (input.$kind) {\n\t\t\t\tcase 'UnresolvedPure':\n\t\t\t\t\tif (resolvedInput.$kind !== 'Pure') {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Expected input at index ${i} to resolve to a Pure argument, but got ${JSON.stringify(\n\t\t\t\t\t\t\t\tresolvedInput,\n\t\t\t\t\t\t\t)}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tthis.inputs[i] = resolvedInput;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'UnresolvedObject':\n\t\t\t\t\tif (resolvedInput.$kind !== 'Object') {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Expected input at index ${i} to resolve to an Object argument, but got ${JSON.stringify(\n\t\t\t\t\t\t\t\tresolvedInput,\n\t\t\t\t\t\t\t)}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tresolvedInput.Object.$kind === 'ImmOrOwnedObject' ||\n\t\t\t\t\t\tresolvedInput.Object.$kind === 'Receiving'\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst original = input.UnresolvedObject;\n\t\t\t\t\t\tconst resolved =\n\t\t\t\t\t\t\tresolvedInput.Object.ImmOrOwnedObject ?? resolvedInput.Object.Receiving!;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnormalizeSuiAddress(original.objectId) !== normalizeSuiAddress(resolved.objectId) ||\n\t\t\t\t\t\t\t(original.version != null && original.version !== resolved.version) ||\n\t\t\t\t\t\t\t(original.digest != null && original.digest !== resolved.digest) ||\n\t\t\t\t\t\t\t// Objects with shared object properties should not resolve to owned objects\n\t\t\t\t\t\t\toriginal.mutable != null ||\n\t\t\t\t\t\t\toriginal.initialSharedVersion != null\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`Input at index ${i} did not match unresolved object. ${JSON.stringify(original)} is not compatible with ${JSON.stringify(resolved)}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (resolvedInput.Object.$kind === 'SharedObject') {\n\t\t\t\t\t\tconst original = input.UnresolvedObject;\n\t\t\t\t\t\tconst resolved = resolvedInput.Object.SharedObject;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tnormalizeSuiAddress(original.objectId) !== normalizeSuiAddress(resolved.objectId) ||\n\t\t\t\t\t\t\t(original.initialSharedVersion != null &&\n\t\t\t\t\t\t\t\toriginal.initialSharedVersion !== resolved.initialSharedVersion) ||\n\t\t\t\t\t\t\t(original.mutable != null && original.mutable !== resolved.mutable) ||\n\t\t\t\t\t\t\t// Objects with owned object properties should not resolve to shared objects\n\t\t\t\t\t\t\toriginal.version != null ||\n\t\t\t\t\t\t\toriginal.digest != null\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t`Input at index ${i} did not match unresolved object. ${JSON.stringify(original)} is not compatible with ${JSON.stringify(resolved)}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Input at index ${i} resolved to an unexpected Object kind: ${JSON.stringify(\n\t\t\t\t\t\t\t\tresolvedInput.Object,\n\t\t\t\t\t\t\t)}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.inputs[i] = resolvedInput;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toBase64 } from '@mysten/utils';\n\nimport { bcs } from '../bcs/index.js';\nimport { ExecutionStatus } from '../bcs/effects.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type { SuiClientTypes } from './types.js';\n\nconst ordinalRules = new Intl.PluralRules('en-US', { type: 'ordinal' });\nconst ordinalSuffixes = new Map([\n\t['one', 'st'],\n\t['two', 'nd'],\n\t['few', 'rd'],\n\t['other', 'th'],\n]);\n\nexport function formatOrdinal(n: number): string {\n\treturn `${n}${ordinalSuffixes.get(ordinalRules.select(n))}`;\n}\n\nexport function formatMoveAbortMessage(options: {\n\tcommand?: number;\n\tlocation?: {\n\t\tpackage?: string;\n\t\tmodule?: string;\n\t\tfunctionName?: string;\n\t\tinstruction?: number;\n\t};\n\tabortCode: string;\n\tcleverError?: {\n\t\tlineNumber?: number;\n\t\tconstantName?: string;\n\t\tvalue?: string;\n\t};\n}): string {\n\tconst { command, location, abortCode, cleverError } = options;\n\tconst parts: string[] = [];\n\n\tif (command != null) {\n\t\tparts.push(`MoveAbort in ${formatOrdinal(command + 1)} command`);\n\t} else {\n\t\tparts.push('MoveAbort');\n\t}\n\n\tif (cleverError?.constantName) {\n\t\tconst errorStr = cleverError!.value\n\t\t\t? `'${cleverError!.constantName}': ${cleverError!.value}`\n\t\t\t: `'${cleverError!.constantName}'`;\n\t\tparts.push(errorStr);\n\t} else {\n\t\tparts.push(`abort code: ${abortCode}`);\n\t}\n\n\tif (location?.package && location?.module) {\n\t\tconst pkg = location.package.startsWith('0x') ? location.package : `0x${location.package}`;\n\t\tconst locationParts = [pkg, location.module, location.functionName].filter(Boolean);\n\t\tconst locationStr = [`in '${locationParts.join('::')}'`];\n\n\t\tif (cleverError?.lineNumber != null) {\n\t\t\tlocationStr.push(`(line ${cleverError.lineNumber})`);\n\t\t} else if (location.instruction != null) {\n\t\t\tlocationStr.push(`(instruction ${location.instruction})`);\n\t\t}\n\n\t\tparts.push(locationStr.join(' '));\n\t}\n\n\treturn parts.join(', ');\n}\n\n// Minimal BCS types for extracting just the status from transaction effects.\n// BCS fields are read sequentially, so we only need to define fields up to and including status.\n// This avoids parsing the entire effects structure when we only need success/failure.\n\n// First, try with the full ExecutionStatus to get detailed error info\nconst MinimalEffectsWithError = bcs.struct('MinimalEffectsWithError', {\n\tstatus: ExecutionStatus,\n});\n\nconst MinimalTransactionEffectsWithError = bcs.enum('MinimalTransactionEffectsWithError', {\n\tV1: MinimalEffectsWithError,\n\tV2: MinimalEffectsWithError,\n});\n\n// Fallback version that doesn't parse error details - used when ExecutionFailureStatus has unknown variants\nconst MinimalExecutionStatusNoError = bcs.enum('MinimalExecutionStatusNoError', {\n\tSuccess: null,\n\tFailed: null, // Don't parse the error structure\n});\n\nconst MinimalEffectsNoError = bcs.struct('MinimalEffectsNoError', {\n\tstatus: MinimalExecutionStatusNoError,\n});\n\nconst MinimalTransactionEffectsNoError = bcs.enum('MinimalTransactionEffectsNoError', {\n\tV1: MinimalEffectsNoError,\n\tV2: MinimalEffectsNoError,\n});\n\ntype BcsExecutionFailureStatus = NonNullable<\n\t(typeof ExecutionStatus.$inferType)['Failure']\n>['error'];\n\nfunction formatErrorMessage($kind: string, data: unknown): string {\n\tif (data !== null && data !== undefined && typeof data !== 'boolean') {\n\t\treturn `${$kind}(${JSON.stringify(data, (_key, value) => (typeof value === 'bigint' ? value.toString() : value))})`;\n\t}\n\treturn $kind;\n}\n\nfunction parseBcsExecutionError(failure: {\n\terror: BcsExecutionFailureStatus;\n\tcommand: string | null;\n}): SuiClientTypes.ExecutionError {\n\tconst error = failure.error;\n\tconst command = failure.command != null ? Number(failure.command) : undefined;\n\n\tswitch (error.$kind) {\n\t\tcase 'MoveAbort': {\n\t\t\tconst [location, abortCode] = error.MoveAbort;\n\t\t\tconst moveLocation = {\n\t\t\t\tpackage: location.module.address,\n\t\t\t\tmodule: location.module.name,\n\t\t\t\tfunction: location.function,\n\t\t\t\tfunctionName: location.functionName ?? undefined,\n\t\t\t\tinstruction: location.instruction,\n\t\t\t};\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveAbort',\n\t\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\t\tcommand,\n\t\t\t\t\tlocation: moveLocation,\n\t\t\t\t\tabortCode: String(abortCode),\n\t\t\t\t}),\n\t\t\t\tcommand,\n\t\t\t\tMoveAbort: {\n\t\t\t\t\tabortCode: String(abortCode),\n\t\t\t\t\tlocation: moveLocation,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tcase 'MoveObjectTooBig':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage: formatErrorMessage('MoveObjectTooBig', error.MoveObjectTooBig),\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: 'ObjectTooBig',\n\t\t\t\t\tsize: Number(error.MoveObjectTooBig.objectSize),\n\t\t\t\t\tmaxSize: Number(error.MoveObjectTooBig.maxObjectSize),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MovePackageTooBig':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage: formatErrorMessage('MovePackageTooBig', error.MovePackageTooBig),\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: 'PackageTooBig',\n\t\t\t\t\tsize: Number(error.MovePackageTooBig.objectSize),\n\t\t\t\t\tmaxSize: Number(error.MovePackageTooBig.maxObjectSize),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'EffectsTooLarge':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage: formatErrorMessage('EffectsTooLarge', error.EffectsTooLarge),\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: 'EffectsTooLarge',\n\t\t\t\t\tsize: Number(error.EffectsTooLarge.currentSize),\n\t\t\t\t\tmaxSize: Number(error.EffectsTooLarge.maxSize),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'WrittenObjectsTooLarge':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage: formatErrorMessage('WrittenObjectsTooLarge', error.WrittenObjectsTooLarge),\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: 'WrittenObjectsTooLarge',\n\t\t\t\t\tsize: Number(error.WrittenObjectsTooLarge.currentSize),\n\t\t\t\t\tmaxSize: Number(error.WrittenObjectsTooLarge.maxSize),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MoveVectorElemTooBig':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage: formatErrorMessage('MoveVectorElemTooBig', error.MoveVectorElemTooBig),\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: 'MoveVectorElemTooBig',\n\t\t\t\t\tsize: Number(error.MoveVectorElemTooBig.valueSize),\n\t\t\t\t\tmaxSize: Number(error.MoveVectorElemTooBig.maxScaledSize),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MoveRawValueTooBig':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage: formatErrorMessage('MoveRawValueTooBig', error.MoveRawValueTooBig),\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: 'MoveRawValueTooBig',\n\t\t\t\t\tsize: Number(error.MoveRawValueTooBig.valueSize),\n\t\t\t\t\tmaxSize: Number(error.MoveRawValueTooBig.maxScaledSize),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'CommandArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CommandArgumentError',\n\t\t\t\tmessage: formatErrorMessage('CommandArgumentError', error.CommandArgumentError),\n\t\t\t\tcommand,\n\t\t\t\tCommandArgumentError: {\n\t\t\t\t\targument: error.CommandArgumentError.argIdx,\n\t\t\t\t\tname: error.CommandArgumentError.kind.$kind,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'TypeArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'TypeArgumentError',\n\t\t\t\tmessage: formatErrorMessage('TypeArgumentError', error.TypeArgumentError),\n\t\t\t\tcommand,\n\t\t\t\tTypeArgumentError: {\n\t\t\t\t\ttypeArgument: error.TypeArgumentError.argumentIdx,\n\t\t\t\t\tname: error.TypeArgumentError.kind.$kind,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'PackageUpgradeError': {\n\t\t\tconst upgradeError = error.PackageUpgradeError.upgradeError;\n\t\t\treturn {\n\t\t\t\t$kind: 'PackageUpgradeError',\n\t\t\t\tmessage: formatErrorMessage('PackageUpgradeError', error.PackageUpgradeError),\n\t\t\t\tcommand,\n\t\t\t\tPackageUpgradeError: {\n\t\t\t\t\tname: upgradeError.$kind,\n\t\t\t\t\tpackageId:\n\t\t\t\t\t\tupgradeError.$kind === 'UnableToFetchPackage'\n\t\t\t\t\t\t\t? upgradeError.UnableToFetchPackage.packageId\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tdigest:\n\t\t\t\t\t\tupgradeError.$kind === 'DigestDoesNotMatch'\n\t\t\t\t\t\t\t? toBase64(upgradeError.DigestDoesNotMatch.digest)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tcase 'ExecutionCancelledDueToSharedObjectCongestion':\n\t\t\treturn {\n\t\t\t\t$kind: 'CongestedObjects',\n\t\t\t\tmessage: formatErrorMessage(\n\t\t\t\t\t'ExecutionCancelledDueToSharedObjectCongestion',\n\t\t\t\t\terror.ExecutionCancelledDueToSharedObjectCongestion,\n\t\t\t\t),\n\t\t\t\tcommand,\n\t\t\t\tCongestedObjects: {\n\t\t\t\t\tname: 'ExecutionCanceledDueToConsensusObjectCongestion',\n\t\t\t\t\tobjects: error.ExecutionCancelledDueToSharedObjectCongestion.congested_objects,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'AddressDeniedForCoin':\n\t\t\treturn {\n\t\t\t\t$kind: 'CoinDenyListError',\n\t\t\t\tmessage: formatErrorMessage('AddressDeniedForCoin', error.AddressDeniedForCoin),\n\t\t\t\tcommand,\n\t\t\t\tCoinDenyListError: {\n\t\t\t\t\tname: 'AddressDeniedForCoin',\n\t\t\t\t\taddress: error.AddressDeniedForCoin.address,\n\t\t\t\t\tcoinType: error.AddressDeniedForCoin.coinType,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'CoinTypeGlobalPause':\n\t\t\treturn {\n\t\t\t\t$kind: 'CoinDenyListError',\n\t\t\t\tmessage: formatErrorMessage('CoinTypeGlobalPause', error.CoinTypeGlobalPause),\n\t\t\t\tcommand,\n\t\t\t\tCoinDenyListError: {\n\t\t\t\t\tname: 'CoinTypeGlobalPause',\n\t\t\t\t\tcoinType: error.CoinTypeGlobalPause.coinType,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'CircularObjectOwnership':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage: formatErrorMessage('CircularObjectOwnership', error.CircularObjectOwnership),\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: 'CircularObjectOwnership',\n\t\t\t\t\tobjectId: error.CircularObjectOwnership.object,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'InvalidGasObject':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage: 'InvalidGasObject',\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: 'InvalidGasObject',\n\t\t\t\t\tobjectId: '',\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'InputObjectDeleted':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage: 'InputObjectDeleted',\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: 'InputObjectDeleted',\n\t\t\t\t\tobjectId: '',\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'InvalidTransferObject':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage: 'InvalidTransferObject',\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: 'InvalidTransferObject',\n\t\t\t\t\tobjectId: '',\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'NonExclusiveWriteInputObjectModified':\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage: formatErrorMessage(\n\t\t\t\t\t'NonExclusiveWriteInputObjectModified',\n\t\t\t\t\terror.NonExclusiveWriteInputObjectModified,\n\t\t\t\t),\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\n\t\tcase 'InsufficientGas':\n\t\tcase 'InvariantViolation':\n\t\tcase 'FeatureNotYetSupported':\n\t\tcase 'InsufficientCoinBalance':\n\t\tcase 'CoinBalanceOverflow':\n\t\tcase 'PublishErrorNonZeroAddress':\n\t\tcase 'SuiMoveVerificationError':\n\t\tcase 'MovePrimitiveRuntimeError':\n\t\tcase 'VMVerificationOrDeserializationError':\n\t\tcase 'VMInvariantViolation':\n\t\tcase 'FunctionNotFound':\n\t\tcase 'ArityMismatch':\n\t\tcase 'TypeArityMismatch':\n\t\tcase 'NonEntryFunctionInvoked':\n\t\tcase 'UnusedValueWithoutDrop':\n\t\tcase 'InvalidPublicFunctionReturnType':\n\t\tcase 'PublishUpgradeMissingDependency':\n\t\tcase 'PublishUpgradeDependencyDowngrade':\n\t\tcase 'CertificateDenied':\n\t\tcase 'SuiMoveVerificationTimedout':\n\t\tcase 'SharedObjectOperationNotAllowed':\n\t\tcase 'ExecutionCancelledDueToRandomnessUnavailable':\n\t\tcase 'InvalidLinkage':\n\t\tcase 'InsufficientBalanceForWithdraw':\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage: error.$kind,\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\n\t\tdefault:\n\t\t\terror satisfies never;\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage: 'Unknown error',\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\t}\n}\n\nexport function parseTransactionBcs(\n\tbytes: Uint8Array,\n\tonlyTransactionKind = false,\n): SuiClientTypes.TransactionData {\n\treturn (\n\t\tonlyTransactionKind\n\t\t\t? TransactionDataBuilder.fromKindBytes(bytes)\n\t\t\t: TransactionDataBuilder.fromBytes(bytes)\n\t).snapshot();\n}\n\n/**\n * Extracts just the status from transaction effects BCS without fully parsing.\n * This is optimized for cases where we only need the status (success/failure)\n * without parsing the entire effects structure.\n *\n * Uses a minimal BCS struct that only parses fields up to and including status,\n * since BCS fields are read sequentially. First tries to parse with full error details,\n * then falls back to a version without error parsing if the error enum has unknown variants.\n *\n * For errors with data, serializes the error as JSON to preserve all information.\n */\nexport function extractStatusFromEffectsBcs(\n\teffectsBytes: Uint8Array,\n): SuiClientTypes.ExecutionStatus {\n\t// First try parsing with full error details\n\tlet parsed: ReturnType<typeof MinimalTransactionEffectsWithError.parse> | null = null;\n\ttry {\n\t\tparsed = MinimalTransactionEffectsWithError.parse(effectsBytes);\n\t} catch {\n\t\t// Fall back to parsing without error details if the error enum has unknown variants\n\t\tconst parsedNoError = MinimalTransactionEffectsNoError.parse(effectsBytes);\n\t\tconst status = (parsedNoError.V1 ?? parsedNoError.V2)!.status;\n\n\t\tif (status.$kind === 'Success') {\n\t\t\treturn { success: true, error: null };\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage: 'ExecutionFailed',\n\t\t\t\tUnknown: null,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst status = (parsed.V1 ?? parsed.V2)!.status;\n\n\tif (status.$kind === 'Success') {\n\t\treturn { success: true, error: null };\n\t}\n\n\treturn {\n\t\tsuccess: false,\n\t\terror: parseBcsExecutionError(status.Failure),\n\t};\n}\n\nexport function parseTransactionEffectsBcs(effects: Uint8Array): SuiClientTypes.TransactionEffects {\n\tconst parsed = bcs.TransactionEffects.parse(effects);\n\n\tswitch (parsed.$kind) {\n\t\tcase 'V1':\n\t\t\treturn parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1 });\n\t\tcase 'V2':\n\t\t\treturn parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2 });\n\t\tdefault:\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown transaction effects version: ${(parsed as { $kind: string }).$kind}`,\n\t\t\t);\n\t}\n}\n\nfunction parseTransactionEffectsV1(_: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V1']>;\n}): SuiClientTypes.TransactionEffects {\n\tthrow new Error('V1 effects are not supported yet');\n}\n\nfunction parseTransactionEffectsV2({\n\tbytes,\n\teffects,\n}: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V2']>;\n}): SuiClientTypes.TransactionEffects {\n\tconst changedObjects = effects.changedObjects.map(\n\t\t([id, change]): SuiClientTypes.ChangedObject => {\n\t\t\treturn {\n\t\t\t\tobjectId: id,\n\t\t\t\tinputState: change.inputState.$kind === 'Exist' ? 'Exists' : 'DoesNotExist',\n\t\t\t\tinputVersion: change.inputState.Exist?.[0][0] ?? null,\n\t\t\t\tinputDigest: change.inputState.Exist?.[0][1] ?? null,\n\t\t\t\tinputOwner: change.inputState.Exist?.[1] ?? null,\n\t\t\t\toutputState:\n\t\t\t\t\tchange.outputState.$kind === 'NotExist' ? 'DoesNotExist' : change.outputState.$kind,\n\t\t\t\toutputVersion:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[0]\n\t\t\t\t\t\t: change.outputState.$kind === 'ObjectWrite'\n\t\t\t\t\t\t\t? effects.lamportVersion\n\t\t\t\t\t\t\t: null,\n\t\t\t\toutputDigest:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[1]\n\t\t\t\t\t\t: change.outputState.$kind === 'ObjectWrite'\n\t\t\t\t\t\t\t? (change.outputState.ObjectWrite?.[0] ?? null)\n\t\t\t\t\t\t\t: null,\n\t\t\t\toutputOwner:\n\t\t\t\t\tchange.outputState.$kind === 'ObjectWrite' ? change.outputState.ObjectWrite[1] : null,\n\t\t\t\tidOperation: change.idOperation.$kind,\n\t\t\t};\n\t\t},\n\t);\n\n\treturn {\n\t\tbcs: bytes,\n\t\tversion: 2,\n\t\tstatus:\n\t\t\teffects.status.$kind === 'Success'\n\t\t\t\t? {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\terror: parseBcsExecutionError(effects.status.Failure),\n\t\t\t\t\t},\n\t\tgasUsed: effects.gasUsed,\n\t\ttransactionDigest: effects.transactionDigest,\n\t\tgasObject:\n\t\t\teffects.gasObjectIndex === null ? null : (changedObjects[effects.gasObjectIndex] ?? null),\n\t\teventsDigest: effects.eventsDigest,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion,\n\t\tchangedObjects,\n\t\tunchangedConsensusObjects: effects.unchangedConsensusObjects.map(\n\t\t\t([objectId, object]): SuiClientTypes.UnchangedConsensusObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: object.$kind,\n\t\t\t\t\tobjectId: objectId,\n\t\t\t\t\tversion:\n\t\t\t\t\t\tobject.$kind === 'ReadOnlyRoot'\n\t\t\t\t\t\t\t? object.ReadOnlyRoot[0]\n\t\t\t\t\t\t\t: (object[object.$kind] as string | null),\n\t\t\t\t\tdigest: object.$kind === 'ReadOnlyRoot' ? object.ReadOnlyRoot[1] : null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxDataDigest,\n\t};\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ObjectResponseError } from '../jsonRpc/index.js';\nimport type { SuiClientTypes } from './types.js';\n\nexport class SuiClientError extends Error {}\n\nexport class SimulationError extends SuiClientError {\n\texecutionError?: SuiClientTypes.ExecutionError;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions?: { cause?: unknown; executionError?: SuiClientTypes.ExecutionError },\n\t) {\n\t\tsuper(message, { cause: options?.cause });\n\t\tthis.executionError = options?.executionError;\n\t}\n}\n\nexport class ObjectError extends SuiClientError {\n\tcode: string;\n\n\tconstructor(code: string, message: string) {\n\t\tsuper(message);\n\t\tthis.code = code;\n\t}\n\n\tstatic fromResponse(response: ObjectResponseError, objectId?: string): ObjectError {\n\t\tswitch (response.code) {\n\t\t\tcase 'notExists':\n\t\t\t\treturn new ObjectError(response.code, `Object ${response.object_id} does not exist`);\n\t\t\tcase 'dynamicFieldNotFound':\n\t\t\t\treturn new ObjectError(\n\t\t\t\t\tresponse.code,\n\t\t\t\t\t`Dynamic field not found for object ${response.parent_object_id}`,\n\t\t\t\t);\n\t\t\tcase 'deleted':\n\t\t\t\treturn new ObjectError(response.code, `Object ${response.object_id} has been deleted`);\n\t\t\tcase 'displayError':\n\t\t\t\treturn new ObjectError(response.code, `Display error: ${response.error}`);\n\t\t\tcase 'unknown':\n\t\t\tdefault:\n\t\t\t\treturn new ObjectError(\n\t\t\t\t\tresponse.code,\n\t\t\t\t\t`Unknown error while loading object${objectId ? ` ${objectId}` : ''}`,\n\t\t\t\t);\n\t\t}\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nexport const SUI_DECIMALS = 9;\nexport const MIST_PER_SUI = BigInt(1000000000);\n\nexport const MOVE_STDLIB_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000001';\nexport const SUI_FRAMEWORK_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000002';\nexport const SUI_SYSTEM_ADDRESS =\n\t'0x0000000000000000000000000000000000000000000000000000000000000003';\nexport const SUI_CLOCK_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000006';\nexport const SUI_SYSTEM_MODULE_NAME = 'sui_system';\nexport const SUI_TYPE_ARG = `${SUI_FRAMEWORK_ADDRESS}::sui::SUI`;\nexport const SUI_SYSTEM_STATE_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000005';\nexport const SUI_RANDOM_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000008';\nexport const SUI_COIN_REGISTRY_OBJECT_ID =\n\t'0x000000000000000000000000000000000000000000000000000000000000000c';\nexport const SUI_DENY_LIST_OBJECT_ID =\n\t'0x0000000000000000000000000000000000000000000000000000000000000403';\n","/**\n * Get the type of a JSON value.\n * Distinguishes between array, null and object.\n */\nexport function typeofJsonValue(value) {\n let t = typeof value;\n if (t == \"object\") {\n if (Array.isArray(value))\n return \"array\";\n if (value === null)\n return \"null\";\n }\n return t;\n}\n/**\n * Is this a JSON object (instead of an array or null)?\n */\nexport function isJsonObject(value) {\n return value !== null && typeof value == \"object\" && !Array.isArray(value);\n}\n","// lookup table from base64 character to byte\nlet encTable = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\n/**\n * Decodes a base64 string to a byte array.\n *\n * - ignores white-space, including line breaks and tabs\n * - allows inner padding (can decode concatenated base64 strings)\n * - does not require padding\n * - understands base64url encoding:\n * \"-\" instead of \"+\",\n * \"_\" instead of \"/\",\n * no padding\n */\nexport function base64decode(base64Str) {\n // estimate byte size, not accounting for inner padding and whitespace\n let es = base64Str.length * 3 / 4;\n // if (es % 3 !== 0)\n // throw new Error('invalid base64 string');\n if (base64Str[base64Str.length - 2] == '=')\n es -= 2;\n else if (base64Str[base64Str.length - 1] == '=')\n es -= 1;\n let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n groupPos = 0, // position in base64 group\n b, // current byte\n p = 0 // previous byte\n ;\n for (let i = 0; i < base64Str.length; i++) {\n b = decTable[base64Str.charCodeAt(i)];\n if (b === undefined) {\n // noinspection FallThroughInSwitchStatementJS\n switch (base64Str[i]) {\n case '=':\n groupPos = 0; // reset state when padding found\n case '\\n':\n case '\\r':\n case '\\t':\n case ' ':\n continue; // skip white-space, and padding\n default:\n throw Error(`invalid base64 string.`);\n }\n }\n switch (groupPos) {\n case 0:\n p = b;\n groupPos = 1;\n break;\n case 1:\n bytes[bytePos++] = p << 2 | (b & 48) >> 4;\n p = b;\n groupPos = 2;\n break;\n case 2:\n bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2;\n p = b;\n groupPos = 3;\n break;\n case 3:\n bytes[bytePos++] = (p & 3) << 6 | b;\n groupPos = 0;\n break;\n }\n }\n if (groupPos == 1)\n throw Error(`invalid base64 string.`);\n return bytes.subarray(0, bytePos);\n}\n/**\n * Encodes a byte array to a base64 string.\n * Adds padding at the end.\n * Does not insert newlines.\n */\nexport function base64encode(bytes) {\n let base64 = '', groupPos = 0, // position in base64 group\n b, // current byte\n p = 0; // carry over from previous byte\n for (let i = 0; i < bytes.length; i++) {\n b = bytes[i];\n switch (groupPos) {\n case 0:\n base64 += encTable[b >> 2];\n p = (b & 3) << 4;\n groupPos = 1;\n break;\n case 1:\n base64 += encTable[p | b >> 4];\n p = (b & 15) << 2;\n groupPos = 2;\n break;\n case 2:\n base64 += encTable[p | b >> 6];\n base64 += encTable[b & 63];\n groupPos = 0;\n break;\n }\n }\n // padding required?\n if (groupPos) {\n base64 += encTable[p];\n base64 += '=';\n if (groupPos == 1)\n base64 += '=';\n }\n return base64;\n}\n","/**\n * This handler implements the default behaviour for unknown fields.\n * When reading data, unknown fields are stored on the message, in a\n * symbol property.\n * When writing data, the symbol property is queried and unknown fields\n * are serialized into the output again.\n */\nexport var UnknownFieldHandler;\n(function (UnknownFieldHandler) {\n /**\n * The symbol used to store unknown fields for a message.\n * The property must conform to `UnknownFieldContainer`.\n */\n UnknownFieldHandler.symbol = Symbol.for(\"protobuf-ts/unknown\");\n /**\n * Store an unknown field during binary read directly on the message.\n * This method is compatible with `BinaryReadOptions.readUnknownField`.\n */\n UnknownFieldHandler.onRead = (typeName, message, fieldNo, wireType, data) => {\n let container = is(message) ? message[UnknownFieldHandler.symbol] : message[UnknownFieldHandler.symbol] = [];\n container.push({ no: fieldNo, wireType, data });\n };\n /**\n * Write unknown fields stored for the message to the writer.\n * This method is compatible with `BinaryWriteOptions.writeUnknownFields`.\n */\n UnknownFieldHandler.onWrite = (typeName, message, writer) => {\n for (let { no, wireType, data } of UnknownFieldHandler.list(message))\n writer.tag(no, wireType).raw(data);\n };\n /**\n * List unknown fields stored for the message.\n * Note that there may be multiples fields with the same number.\n */\n UnknownFieldHandler.list = (message, fieldNo) => {\n if (is(message)) {\n let all = message[UnknownFieldHandler.symbol];\n return fieldNo ? all.filter(uf => uf.no == fieldNo) : all;\n }\n return [];\n };\n /**\n * Returns the last unknown field by field number.\n */\n UnknownFieldHandler.last = (message, fieldNo) => UnknownFieldHandler.list(message, fieldNo).slice(-1)[0];\n const is = (message) => message && Array.isArray(message[UnknownFieldHandler.symbol]);\n})(UnknownFieldHandler || (UnknownFieldHandler = {}));\n/**\n * Merges binary write or read options. Later values override earlier values.\n */\nexport function mergeBinaryOptions(a, b) {\n return Object.assign(Object.assign({}, a), b);\n}\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Used for groups\n * @deprecated\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * Used for groups\n * @deprecated\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n","// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [0]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7F) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0F) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7F) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error('invalid varint');\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !((shift >>> 7) == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xFF;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0F) | ((hi & 0x07) << 4);\n const hasMoreBits = !((hi >> 3) == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xFF);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !((shift >>> 7) == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xFF;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = (1 << 16) * (1 << 16);\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Returns tuple:\n * [0]: minus sign?\n * [1]: low bits\n * [2]: high bits\n *\n * Copyright 2008 Google Inc.\n */\nexport function int64fromString(dec) {\n // Check for minus sign.\n let minus = dec[0] == '-';\n if (minus)\n dec = dec.slice(1);\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to highBits\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return [minus, lowBits, highBits];\n}\n/**\n * Format 64 bit integer value (as two JS numbers) to decimal string.\n *\n * Copyright 2008 Google Inc.\n */\nexport function int64toString(bitsLow, bitsHigh) {\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n if ((bitsHigh >>> 0) <= 0x1FFFFF) {\n return '' + (TWO_PWR_32_DBL * bitsHigh + (bitsLow >>> 0));\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n let low = bitsLow & 0xFFFFFF;\n let mid = (((bitsLow >>> 24) | (bitsHigh << 8)) >>> 0) & 0xFFFFFF;\n let high = (bitsHigh >> 16) & 0xFFFF;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + (mid * 6777216) + (high * 6710656);\n let digitB = mid + (high * 8147497);\n let digitC = (high * 2);\n // Apply carries from A to B and from B to C.\n let base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // Convert base-1e7 digits to base-10, with optional leading zeroes.\n function decimalFrom1e7(digit1e7, needLeadingZeros) {\n let partial = digit1e7 ? String(digit1e7) : '';\n if (needLeadingZeros) {\n return '0000000'.slice(partial.length) + partial;\n }\n return partial;\n }\n return decimalFrom1e7(digitC, /*needLeadingZeros=*/ 0) +\n decimalFrom1e7(digitB, /*needLeadingZeros=*/ digitC) +\n // If the final 1e7 digit didn't need leading zeros, we would have\n // returned via the trivial code path at the top.\n decimalFrom1e7(digitA, /*needLeadingZeros=*/ 1);\n}\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push(value & 127 | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7F;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7F) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7F) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7F) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0F) << 28;\n for (let readBytes = 5; ((b & 0x80) !== 0) && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error('invalid varint');\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","import { int64fromString, int64toString } from \"./goog-varint\";\nlet BI;\nexport function detectBi() {\n const dv = new DataView(new ArrayBuffer(8));\n const ok = globalThis.BigInt !== undefined\n && typeof dv.getBigInt64 === \"function\"\n && typeof dv.getBigUint64 === \"function\"\n && typeof dv.setBigInt64 === \"function\"\n && typeof dv.setBigUint64 === \"function\";\n BI = ok ? {\n MIN: BigInt(\"-9223372036854775808\"),\n MAX: BigInt(\"9223372036854775807\"),\n UMIN: BigInt(\"0\"),\n UMAX: BigInt(\"18446744073709551615\"),\n C: BigInt,\n V: dv,\n } : undefined;\n}\ndetectBi();\nfunction assertBi(bi) {\n if (!bi)\n throw new Error(\"BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support\");\n}\n// used to validate from(string) input (when bigint is unavailable)\nconst RE_DECIMAL_STR = /^-?[0-9]+$/;\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\nconst HALF_2_PWR_32 = 0x080000000;\n// base class for PbLong and PbULong provides shared code\nclass SharedPbLong {\n /**\n * Create a new instance with the given bits.\n */\n constructor(lo, hi) {\n this.lo = lo | 0;\n this.hi = hi | 0;\n }\n /**\n * Is this instance equal to 0?\n */\n isZero() {\n return this.lo == 0 && this.hi == 0;\n }\n /**\n * Convert to a native number.\n */\n toNumber() {\n let result = this.hi * TWO_PWR_32_DBL + (this.lo >>> 0);\n if (!Number.isSafeInteger(result))\n throw new Error(\"cannot convert to safe number\");\n return result;\n }\n}\n/**\n * 64-bit unsigned integer as two 32-bit values.\n * Converts between `string`, `number` and `bigint` representations.\n */\nexport class PbULong extends SharedPbLong {\n /**\n * Create instance from a `string`, `number` or `bigint`.\n */\n static from(value) {\n if (BI)\n // noinspection FallThroughInSwitchStatementJS\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n if (value == \"\")\n throw new Error('string is no integer');\n value = BI.C(value);\n case \"number\":\n if (value === 0)\n return this.ZERO;\n value = BI.C(value);\n case \"bigint\":\n if (!value)\n return this.ZERO;\n if (value < BI.UMIN)\n throw new Error('signed value for ulong');\n if (value > BI.UMAX)\n throw new Error('ulong too large');\n BI.V.setBigUint64(0, value, true);\n return new PbULong(BI.V.getInt32(0, true), BI.V.getInt32(4, true));\n }\n else\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n value = value.trim();\n if (!RE_DECIMAL_STR.test(value))\n throw new Error('string is no integer');\n let [minus, lo, hi] = int64fromString(value);\n if (minus)\n throw new Error('signed value for ulong');\n return new PbULong(lo, hi);\n case \"number\":\n if (value == 0)\n return this.ZERO;\n if (!Number.isSafeInteger(value))\n throw new Error('number is no integer');\n if (value < 0)\n throw new Error('signed value for ulong');\n return new PbULong(value, value / TWO_PWR_32_DBL);\n }\n throw new Error('unknown value ' + typeof value);\n }\n /**\n * Convert to decimal string.\n */\n toString() {\n return BI ? this.toBigInt().toString() : int64toString(this.lo, this.hi);\n }\n /**\n * Convert to native bigint.\n */\n toBigInt() {\n assertBi(BI);\n BI.V.setInt32(0, this.lo, true);\n BI.V.setInt32(4, this.hi, true);\n return BI.V.getBigUint64(0, true);\n }\n}\n/**\n * ulong 0 singleton.\n */\nPbULong.ZERO = new PbULong(0, 0);\n/**\n * 64-bit signed integer as two 32-bit values.\n * Converts between `string`, `number` and `bigint` representations.\n */\nexport class PbLong extends SharedPbLong {\n /**\n * Create instance from a `string`, `number` or `bigint`.\n */\n static from(value) {\n if (BI)\n // noinspection FallThroughInSwitchStatementJS\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n if (value == \"\")\n throw new Error('string is no integer');\n value = BI.C(value);\n case \"number\":\n if (value === 0)\n return this.ZERO;\n value = BI.C(value);\n case \"bigint\":\n if (!value)\n return this.ZERO;\n if (value < BI.MIN)\n throw new Error('signed long too small');\n if (value > BI.MAX)\n throw new Error('signed long too large');\n BI.V.setBigInt64(0, value, true);\n return new PbLong(BI.V.getInt32(0, true), BI.V.getInt32(4, true));\n }\n else\n switch (typeof value) {\n case \"string\":\n if (value == \"0\")\n return this.ZERO;\n value = value.trim();\n if (!RE_DECIMAL_STR.test(value))\n throw new Error('string is no integer');\n let [minus, lo, hi] = int64fromString(value);\n if (minus) {\n if (hi > HALF_2_PWR_32 || (hi == HALF_2_PWR_32 && lo != 0))\n throw new Error('signed long too small');\n }\n else if (hi >= HALF_2_PWR_32)\n throw new Error('signed long too large');\n let pbl = new PbLong(lo, hi);\n return minus ? pbl.negate() : pbl;\n case \"number\":\n if (value == 0)\n return this.ZERO;\n if (!Number.isSafeInteger(value))\n throw new Error('number is no integer');\n return value > 0\n ? new PbLong(value, value / TWO_PWR_32_DBL)\n : new PbLong(-value, -value / TWO_PWR_32_DBL).negate();\n }\n throw new Error('unknown value ' + typeof value);\n }\n /**\n * Do we have a minus sign?\n */\n isNegative() {\n return (this.hi & HALF_2_PWR_32) !== 0;\n }\n /**\n * Negate two's complement.\n * Invert all the bits and add one to the result.\n */\n negate() {\n let hi = ~this.hi, lo = this.lo;\n if (lo)\n lo = ~lo + 1;\n else\n hi += 1;\n return new PbLong(lo, hi);\n }\n /**\n * Convert to decimal string.\n */\n toString() {\n if (BI)\n return this.toBigInt().toString();\n if (this.isNegative()) {\n let n = this.negate();\n return '-' + int64toString(n.lo, n.hi);\n }\n return int64toString(this.lo, this.hi);\n }\n /**\n * Convert to native bigint.\n */\n toBigInt() {\n assertBi(BI);\n BI.V.setInt32(0, this.lo, true);\n BI.V.setInt32(4, this.hi, true);\n return BI.V.getBigInt64(0, true);\n }\n}\n/**\n * long 0 singleton.\n */\nPbLong.ZERO = new PbLong(0, 0);\n","import { WireType } from \"./binary-format-contract\";\nimport { PbLong, PbULong } from \"./pb-long\";\nimport { varint32read, varint64read } from \"./goog-varint\";\nconst defaultsRead = {\n readUnknownField: true,\n readerFactory: bytes => new BinaryReader(bytes),\n};\n/**\n * Make options for reading binary data form partial options.\n */\nexport function binaryReadOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead;\n}\nexport class BinaryReader {\n constructor(buf, textDecoder) {\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder(\"utf-8\", {\n fatal: true,\n ignoreBOM: true,\n });\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element on the wire and return the skipped data.\n * Supports WireType.StartGroup since v2.0.0-alpha.23.\n */\n skip(wireType) {\n let start = this.pos;\n // noinspection FallThroughInSwitchStatementJS\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n case WireType.Bit64:\n this.pos += 4;\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n // From descriptor.proto: Group type is deprecated, not supported in proto3.\n // But we must still be able to parse and treat as unknown.\n let t;\n while ((t = this.tag()[1]) !== WireType.EndGroup) {\n this.skip(t);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return new PbLong(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return new PbULong(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1 | (hi & 1) << 31) ^ s);\n hi = (hi >>> 1 ^ s);\n return new PbLong(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return new PbULong(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return new PbLong(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32();\n let start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.textDecoder.decode(this.bytes());\n }\n}\n","/**\n * assert that condition is true or throw error (with message)\n */\nexport function assert(condition, msg) {\n if (!condition) {\n throw new Error(msg);\n }\n}\n/**\n * assert that value cannot exist = type `never`. throw runtime error if it does.\n */\nexport function assertNever(value, msg) {\n throw new Error(msg !== null && msg !== void 0 ? msg : 'Unexpected object: ' + value);\n}\nconst FLOAT32_MAX = 3.4028234663852886e+38, FLOAT32_MIN = -3.4028234663852886e+38, UINT32_MAX = 0xFFFFFFFF, INT32_MAX = 0X7FFFFFFF, INT32_MIN = -0X80000000;\nexport function assertInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error('invalid int 32: ' + typeof arg);\n if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n throw new Error('invalid int 32: ' + arg);\n}\nexport function assertUInt32(arg) {\n if (typeof arg !== \"number\")\n throw new Error('invalid uint 32: ' + typeof arg);\n if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n throw new Error('invalid uint 32: ' + arg);\n}\nexport function assertFloat32(arg) {\n if (typeof arg !== \"number\")\n throw new Error('invalid float 32: ' + typeof arg);\n if (!Number.isFinite(arg))\n return;\n if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n throw new Error('invalid float 32: ' + arg);\n}\n","import { PbLong, PbULong } from \"./pb-long\";\nimport { varint32write, varint64write } from \"./goog-varint\";\nimport { assertFloat32, assertInt32, assertUInt32 } from \"./assert\";\nconst defaultsWrite = {\n writeUnknownFields: true,\n writerFactory: () => new BinaryWriter(),\n};\n/**\n * Make options for writing binary data form partial options.\n */\nexport function binaryWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite;\n}\nexport class BinaryWriter {\n constructor(textEncoder) {\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error('invalid state, fork stack empty');\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32((fieldNo << 3 | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.textEncoder.encode(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8);\n let view = new DataView(chunk.buffer);\n let long = PbLong.from(value);\n view.setInt32(0, long.lo, true);\n view.setInt32(4, long.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8);\n let view = new DataView(chunk.buffer);\n let long = PbULong.from(value);\n view.setInt32(0, long.lo, true);\n view.setInt32(4, long.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let long = PbLong.from(value);\n varint64write(long.lo, long.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let long = PbLong.from(value), \n // zigzag encode\n sign = long.hi >> 31, lo = (long.lo << 1) ^ sign, hi = ((long.hi << 1) | (long.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let long = PbULong.from(value);\n varint64write(long.lo, long.hi, this.buf);\n return this;\n }\n}\n","const defaultsWrite = {\n emitDefaultValues: false,\n enumAsInteger: false,\n useProtoFieldName: false,\n prettySpaces: 0,\n}, defaultsRead = {\n ignoreUnknownFields: false,\n};\n/**\n * Make options for reading JSON data from partial options.\n */\nexport function jsonReadOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead;\n}\n/**\n * Make options for writing JSON data from partial options.\n */\nexport function jsonWriteOptions(options) {\n return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite;\n}\n/**\n * Merges JSON write or read options. Later values override earlier values. Type registries are merged.\n */\nexport function mergeJsonOptions(a, b) {\n var _a, _b;\n let c = Object.assign(Object.assign({}, a), b);\n c.typeRegistry = [...((_a = a === null || a === void 0 ? void 0 : a.typeRegistry) !== null && _a !== void 0 ? _a : []), ...((_b = b === null || b === void 0 ? void 0 : b.typeRegistry) !== null && _b !== void 0 ? _b : [])];\n return c;\n}\n","/**\n * The symbol used as a key on message objects to store the message type.\n *\n * Note that this is an experimental feature - it is here to stay, but\n * implementation details may change without notice.\n */\nexport const MESSAGE_TYPE = Symbol.for(\"protobuf-ts/message-type\");\n","/**\n * Converts snake_case to lowerCamelCase.\n *\n * Should behave like protoc:\n * https://github.com/protocolbuffers/protobuf/blob/e8ae137c96444ea313485ed1118c5e43b2099cf1/src/google/protobuf/compiler/java/java_helpers.cc#L118\n */\nexport function lowerCamelCase(snakeCase) {\n let capNext = false;\n const sb = [];\n for (let i = 0; i < snakeCase.length; i++) {\n let next = snakeCase.charAt(i);\n if (next == '_') {\n capNext = true;\n }\n else if (/\\d/.test(next)) {\n sb.push(next);\n capNext = true;\n }\n else if (capNext) {\n sb.push(next.toUpperCase());\n capNext = false;\n }\n else if (i == 0) {\n sb.push(next.toLowerCase());\n }\n else {\n sb.push(next);\n }\n }\n return sb.join('');\n}\n","import { lowerCamelCase } from \"./lower-camel-case\";\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nexport var ScalarType;\n(function (ScalarType) {\n // 0 is reserved for errors.\n // Order is weird for historical reasons.\n ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n // negative values are likely.\n ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n // Tag-delimited aggregate.\n // Group type is deprecated and not supported in proto3. However, Proto3\n // implementations should still be able to parse the group wire format and\n // treat group fields as unknown fields.\n // TYPE_GROUP = 10,\n // TYPE_MESSAGE = 11, // Length-delimited aggregate.\n // New in version 2.\n ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n // TYPE_ENUM = 14,\n ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of 64 bit integral types. Equivalent to the\n * field option \"jstype\".\n *\n * By default, protobuf-ts represents 64 bit types as `bigint`.\n *\n * You can change the default behaviour by enabling the plugin parameter\n * `long_type_string`, which will represent 64 bit types as `string`.\n *\n * Alternatively, you can change the behaviour for individual fields\n * with the field option \"jstype\":\n *\n * ```protobuf\n * uint64 my_field = 1 [jstype = JS_STRING];\n * uint64 other_field = 2 [jstype = JS_NUMBER];\n * ```\n */\nexport var LongType;\n(function (LongType) {\n /**\n * Use JavaScript `bigint`.\n *\n * Field option `[jstype = JS_NORMAL]`.\n */\n LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n /**\n * Use JavaScript `string`.\n *\n * Field option `[jstype = JS_STRING]`.\n */\n LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n /**\n * Use JavaScript `number`.\n *\n * Large values will loose precision.\n *\n * Field option `[jstype = JS_NUMBER]`.\n */\n LongType[LongType[\"NUMBER\"] = 2] = \"NUMBER\";\n})(LongType || (LongType = {}));\n/**\n * Protobuf 2.1.0 introduced packed repeated fields.\n * Setting the field option `[packed = true]` enables packing.\n *\n * In proto3, all repeated fields are packed by default.\n * Setting the field option `[packed = false]` disables packing.\n *\n * Packed repeated fields are encoded with a single tag,\n * then a length-delimiter, then the element values.\n *\n * Unpacked repeated fields are encoded with a tag and\n * value for each element.\n *\n * `bytes` and `string` cannot be packed.\n */\nexport var RepeatType;\n(function (RepeatType) {\n /**\n * The field is not repeated.\n */\n RepeatType[RepeatType[\"NO\"] = 0] = \"NO\";\n /**\n * The field is repeated and should be packed.\n * Invalid for `bytes` and `string`, they cannot be packed.\n */\n RepeatType[RepeatType[\"PACKED\"] = 1] = \"PACKED\";\n /**\n * The field is repeated but should not be packed.\n * The only valid repeat type for repeated `bytes` and `string`.\n */\n RepeatType[RepeatType[\"UNPACKED\"] = 2] = \"UNPACKED\";\n})(RepeatType || (RepeatType = {}));\n/**\n * Turns PartialFieldInfo into FieldInfo.\n */\nexport function normalizeFieldInfo(field) {\n var _a, _b, _c, _d;\n field.localName = (_a = field.localName) !== null && _a !== void 0 ? _a : lowerCamelCase(field.name);\n field.jsonName = (_b = field.jsonName) !== null && _b !== void 0 ? _b : lowerCamelCase(field.name);\n field.repeat = (_c = field.repeat) !== null && _c !== void 0 ? _c : RepeatType.NO;\n field.opt = (_d = field.opt) !== null && _d !== void 0 ? _d : (field.repeat ? false : field.oneof ? false : field.kind == \"message\");\n return field;\n}\n/**\n * Read custom field options from a generated message type.\n *\n * @deprecated use readFieldOption()\n */\nexport function readFieldOptions(messageType, fieldName, extensionName, extensionType) {\n var _a;\n const options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options;\n return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : undefined;\n}\nexport function readFieldOption(messageType, fieldName, extensionName, extensionType) {\n var _a;\n const options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options;\n if (!options) {\n return undefined;\n }\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\nexport function readMessageOption(messageType, extensionName, extensionType) {\n const options = messageType.options;\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\n","/**\n * Is the given value a valid oneof group?\n *\n * We represent protobuf `oneof` as algebraic data types (ADT) in generated\n * code. But when working with messages of unknown type, the ADT does not\n * help us.\n *\n * This type guard checks if the given object adheres to the ADT rules, which\n * are as follows:\n *\n * 1) Must be an object.\n *\n * 2) Must have a \"oneofKind\" discriminator property.\n *\n * 3) If \"oneofKind\" is `undefined`, no member field is selected. The object\n * must not have any other properties.\n *\n * 4) If \"oneofKind\" is a `string`, the member field with this name is\n * selected.\n *\n * 5) If a member field is selected, the object must have a second property\n * with this name. The property must not be `undefined`.\n *\n * 6) No extra properties are allowed. The object has either one property\n * (no selection) or two properties (selection).\n *\n */\nexport function isOneofGroup(any) {\n if (typeof any != 'object' || any === null || !any.hasOwnProperty('oneofKind')) {\n return false;\n }\n switch (typeof any.oneofKind) {\n case \"string\":\n if (any[any.oneofKind] === undefined)\n return false;\n return Object.keys(any).length == 2;\n case \"undefined\":\n return Object.keys(any).length == 1;\n default:\n return false;\n }\n}\n/**\n * Returns the value of the given field in a oneof group.\n */\nexport function getOneofValue(oneof, kind) {\n return oneof[kind];\n}\nexport function setOneofValue(oneof, kind, value) {\n if (oneof.oneofKind !== undefined) {\n delete oneof[oneof.oneofKind];\n }\n oneof.oneofKind = kind;\n if (value !== undefined) {\n oneof[kind] = value;\n }\n}\nexport function setUnknownOneofValue(oneof, kind, value) {\n if (oneof.oneofKind !== undefined) {\n delete oneof[oneof.oneofKind];\n }\n oneof.oneofKind = kind;\n if (value !== undefined && kind !== undefined) {\n oneof[kind] = value;\n }\n}\n/**\n * Removes the selected field in a oneof group.\n *\n * Note that the recommended way to modify a oneof group is to set\n * a new object:\n *\n * ```ts\n * message.result = { oneofKind: undefined };\n * ```\n */\nexport function clearOneofValue(oneof) {\n if (oneof.oneofKind !== undefined) {\n delete oneof[oneof.oneofKind];\n }\n oneof.oneofKind = undefined;\n}\n/**\n * Returns the selected value of the given oneof group.\n *\n * Not that the recommended way to access a oneof group is to check\n * the \"oneofKind\" property and let TypeScript narrow down the union\n * type for you:\n *\n * ```ts\n * if (message.result.oneofKind === \"error\") {\n * message.result.error; // string\n * }\n * ```\n *\n * In the rare case you just need the value, and do not care about\n * which protobuf field is selected, you can use this function\n * for convenience.\n */\nexport function getSelectedOneofValue(oneof) {\n if (oneof.oneofKind === undefined) {\n return undefined;\n }\n return oneof[oneof.oneofKind];\n}\n","import { LongType, ScalarType } from \"./reflection-info\";\nimport { isOneofGroup } from \"./oneof\";\n// noinspection JSMethodCanBeStatic\nexport class ReflectionTypeCheck {\n constructor(info) {\n var _a;\n this.fields = (_a = info.fields) !== null && _a !== void 0 ? _a : [];\n }\n prepare() {\n if (this.data)\n return;\n const req = [], known = [], oneofs = [];\n for (let field of this.fields) {\n if (field.oneof) {\n if (!oneofs.includes(field.oneof)) {\n oneofs.push(field.oneof);\n req.push(field.oneof);\n known.push(field.oneof);\n }\n }\n else {\n known.push(field.localName);\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n if (!field.opt || field.repeat)\n req.push(field.localName);\n break;\n case \"message\":\n if (field.repeat)\n req.push(field.localName);\n break;\n case \"map\":\n req.push(field.localName);\n break;\n }\n }\n }\n this.data = { req, known, oneofs: Object.values(oneofs) };\n }\n /**\n * Is the argument a valid message as specified by the\n * reflection information?\n *\n * Checks all field types recursively. The `depth`\n * specifies how deep into the structure the check will be.\n *\n * With a depth of 0, only the presence of fields\n * is checked.\n *\n * With a depth of 1 or more, the field types are checked.\n *\n * With a depth of 2 or more, the members of map, repeated\n * and message fields are checked.\n *\n * Message fields will be checked recursively with depth - 1.\n *\n * The number of map entries / repeated values being checked\n * is < depth.\n */\n is(message, depth, allowExcessProperties = false) {\n if (depth < 0)\n return true;\n if (message === null || message === undefined || typeof message != 'object')\n return false;\n this.prepare();\n let keys = Object.keys(message), data = this.data;\n // if a required field is missing in arg, this cannot be a T\n if (keys.length < data.req.length || data.req.some(n => !keys.includes(n)))\n return false;\n if (!allowExcessProperties) {\n // if the arg contains a key we dont know, this is not a literal T\n if (keys.some(k => !data.known.includes(k)))\n return false;\n }\n // \"With a depth of 0, only the presence and absence of fields is checked.\"\n // \"With a depth of 1 or more, the field types are checked.\"\n if (depth < 1) {\n return true;\n }\n // check oneof group\n for (const name of data.oneofs) {\n const group = message[name];\n if (!isOneofGroup(group))\n return false;\n if (group.oneofKind === undefined)\n continue;\n const field = this.fields.find(f => f.localName === group.oneofKind);\n if (!field)\n return false; // we found no field, but have a kind, something is wrong\n if (!this.field(group[group.oneofKind], field, allowExcessProperties, depth))\n return false;\n }\n // check types\n for (const field of this.fields) {\n if (field.oneof !== undefined)\n continue;\n if (!this.field(message[field.localName], field, allowExcessProperties, depth))\n return false;\n }\n return true;\n }\n field(arg, field, allowExcessProperties, depth) {\n let repeated = field.repeat;\n switch (field.kind) {\n case \"scalar\":\n if (arg === undefined)\n return field.opt;\n if (repeated)\n return this.scalars(arg, field.T, depth, field.L);\n return this.scalar(arg, field.T, field.L);\n case \"enum\":\n if (arg === undefined)\n return field.opt;\n if (repeated)\n return this.scalars(arg, ScalarType.INT32, depth);\n return this.scalar(arg, ScalarType.INT32);\n case \"message\":\n if (arg === undefined)\n return true;\n if (repeated)\n return this.messages(arg, field.T(), allowExcessProperties, depth);\n return this.message(arg, field.T(), allowExcessProperties, depth);\n case \"map\":\n if (typeof arg != 'object' || arg === null)\n return false;\n if (depth < 2)\n return true;\n if (!this.mapKeys(arg, field.K, depth))\n return false;\n switch (field.V.kind) {\n case \"scalar\":\n return this.scalars(Object.values(arg), field.V.T, depth, field.V.L);\n case \"enum\":\n return this.scalars(Object.values(arg), ScalarType.INT32, depth);\n case \"message\":\n return this.messages(Object.values(arg), field.V.T(), allowExcessProperties, depth);\n }\n break;\n }\n return true;\n }\n message(arg, type, allowExcessProperties, depth) {\n if (allowExcessProperties) {\n return type.isAssignable(arg, depth);\n }\n return type.is(arg, depth);\n }\n messages(arg, type, allowExcessProperties, depth) {\n if (!Array.isArray(arg))\n return false;\n if (depth < 2)\n return true;\n if (allowExcessProperties) {\n for (let i = 0; i < arg.length && i < depth; i++)\n if (!type.isAssignable(arg[i], depth - 1))\n return false;\n }\n else {\n for (let i = 0; i < arg.length && i < depth; i++)\n if (!type.is(arg[i], depth - 1))\n return false;\n }\n return true;\n }\n scalar(arg, type, longType) {\n let argType = typeof arg;\n switch (type) {\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n switch (longType) {\n case LongType.BIGINT:\n return argType == \"bigint\";\n case LongType.NUMBER:\n return argType == \"number\" && !isNaN(arg);\n default:\n return argType == \"string\";\n }\n case ScalarType.BOOL:\n return argType == 'boolean';\n case ScalarType.STRING:\n return argType == 'string';\n case ScalarType.BYTES:\n return arg instanceof Uint8Array;\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return argType == 'number' && !isNaN(arg);\n default:\n // case ScalarType.UINT32:\n // case ScalarType.FIXED32:\n // case ScalarType.INT32:\n // case ScalarType.SINT32:\n // case ScalarType.SFIXED32:\n return argType == 'number' && Number.isInteger(arg);\n }\n }\n scalars(arg, type, depth, longType) {\n if (!Array.isArray(arg))\n return false;\n if (depth < 2)\n return true;\n if (Array.isArray(arg))\n for (let i = 0; i < arg.length && i < depth; i++)\n if (!this.scalar(arg[i], type, longType))\n return false;\n return true;\n }\n mapKeys(map, type, depth) {\n let keys = Object.keys(map);\n switch (type) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n return this.scalars(keys.slice(0, depth).map(k => parseInt(k)), type, depth);\n case ScalarType.BOOL:\n return this.scalars(keys.slice(0, depth).map(k => k == 'true' ? true : k == 'false' ? false : k), type, depth);\n default:\n return this.scalars(keys, type, depth, LongType.STRING);\n }\n }\n}\n","import { LongType } from \"./reflection-info\";\n/**\n * Utility method to convert a PbLong or PbUlong to a JavaScript\n * representation during runtime.\n *\n * Works with generated field information, `undefined` is equivalent\n * to `STRING`.\n */\nexport function reflectionLongConvert(long, type) {\n switch (type) {\n case LongType.BIGINT:\n return long.toBigInt();\n case LongType.NUMBER:\n return long.toNumber();\n default:\n // case undefined:\n // case LongType.STRING:\n return long.toString();\n }\n}\n","import { isJsonObject, typeofJsonValue } from \"./json-typings\";\nimport { base64decode } from \"./base64\";\nimport { LongType, ScalarType } from \"./reflection-info\";\nimport { PbLong, PbULong } from \"./pb-long\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert\";\nimport { reflectionLongConvert } from \"./reflection-long-convert\";\n/**\n * Reads proto3 messages in canonical JSON format using reflection information.\n *\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n */\nexport class ReflectionJsonReader {\n constructor(info) {\n this.info = info;\n }\n prepare() {\n var _a;\n if (this.fMap === undefined) {\n this.fMap = {};\n const fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : [];\n for (const field of fieldsInput) {\n this.fMap[field.name] = field;\n this.fMap[field.jsonName] = field;\n this.fMap[field.localName] = field;\n }\n }\n }\n // Cannot parse JSON <type of jsonValue> for <type name>#<fieldName>.\n assert(condition, fieldName, jsonValue) {\n if (!condition) {\n let what = typeofJsonValue(jsonValue);\n if (what == \"number\" || what == \"boolean\")\n what = jsonValue.toString();\n throw new Error(`Cannot parse JSON ${what} for ${this.info.typeName}#${fieldName}`);\n }\n }\n /**\n * Reads a message from canonical JSON format into the target message.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n read(input, message, options) {\n this.prepare();\n const oneofsHandled = [];\n for (const [jsonKey, jsonValue] of Object.entries(input)) {\n const field = this.fMap[jsonKey];\n if (!field) {\n if (!options.ignoreUnknownFields)\n throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${jsonKey}`);\n continue;\n }\n const localName = field.localName;\n // handle oneof ADT\n let target; // this will be the target for the field value, whether it is member of a oneof or not\n if (field.oneof) {\n if (jsonValue === null && (field.kind !== 'enum' || field.T()[0] !== 'google.protobuf.NullValue')) {\n continue;\n }\n // since json objects are unordered by specification, it is not possible to take the last of multiple oneofs\n if (oneofsHandled.includes(field.oneof))\n throw new Error(`Multiple members of the oneof group \"${field.oneof}\" of ${this.info.typeName} are present in JSON.`);\n oneofsHandled.push(field.oneof);\n target = message[field.oneof] = {\n oneofKind: localName\n };\n }\n else {\n target = message;\n }\n // we have handled oneof above. we just have read the value into `target`.\n if (field.kind == 'map') {\n if (jsonValue === null) {\n continue;\n }\n // check input\n this.assert(isJsonObject(jsonValue), field.name, jsonValue);\n // our target to put map entries into\n const fieldObj = target[localName];\n // read entries\n for (const [jsonObjKey, jsonObjValue] of Object.entries(jsonValue)) {\n this.assert(jsonObjValue !== null, field.name + \" map value\", null);\n // read value\n let val;\n switch (field.V.kind) {\n case \"message\":\n val = field.V.T().internalJsonRead(jsonObjValue, options);\n break;\n case \"enum\":\n val = this.enum(field.V.T(), jsonObjValue, field.name, options.ignoreUnknownFields);\n if (val === false)\n continue;\n break;\n case \"scalar\":\n val = this.scalar(jsonObjValue, field.V.T, field.V.L, field.name);\n break;\n }\n this.assert(val !== undefined, field.name + \" map value\", jsonObjValue);\n // read key\n let key = jsonObjKey;\n if (field.K == ScalarType.BOOL)\n key = key == \"true\" ? true : key == \"false\" ? false : key;\n key = this.scalar(key, field.K, LongType.STRING, field.name).toString();\n fieldObj[key] = val;\n }\n }\n else if (field.repeat) {\n if (jsonValue === null)\n continue;\n // check input\n this.assert(Array.isArray(jsonValue), field.name, jsonValue);\n // our target to put array entries into\n const fieldArr = target[localName];\n // read array entries\n for (const jsonItem of jsonValue) {\n this.assert(jsonItem !== null, field.name, null);\n let val;\n switch (field.kind) {\n case \"message\":\n val = field.T().internalJsonRead(jsonItem, options);\n break;\n case \"enum\":\n val = this.enum(field.T(), jsonItem, field.name, options.ignoreUnknownFields);\n if (val === false)\n continue;\n break;\n case \"scalar\":\n val = this.scalar(jsonItem, field.T, field.L, field.name);\n break;\n }\n this.assert(val !== undefined, field.name, jsonValue);\n fieldArr.push(val);\n }\n }\n else {\n switch (field.kind) {\n case \"message\":\n if (jsonValue === null && field.T().typeName != 'google.protobuf.Value') {\n this.assert(field.oneof === undefined, field.name + \" (oneof member)\", null);\n continue;\n }\n target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]);\n break;\n case \"enum\":\n if (jsonValue === null)\n continue;\n let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields);\n if (val === false)\n continue;\n target[localName] = val;\n break;\n case \"scalar\":\n if (jsonValue === null)\n continue;\n target[localName] = this.scalar(jsonValue, field.T, field.L, field.name);\n break;\n }\n }\n }\n }\n /**\n * Returns `false` for unrecognized string representations.\n *\n * google.protobuf.NullValue accepts only JSON `null` (or the old `\"NULL_VALUE\"`).\n */\n enum(type, json, fieldName, ignoreUnknownFields) {\n if (type[0] == 'google.protobuf.NullValue')\n assert(json === null || json === \"NULL_VALUE\", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} only accepts null.`);\n if (json === null)\n // we require 0 to be default value for all enums\n return 0;\n switch (typeof json) {\n case \"number\":\n assert(Number.isInteger(json), `Unable to parse field ${this.info.typeName}#${fieldName}, enum can only be integral number, got ${json}.`);\n return json;\n case \"string\":\n let localEnumName = json;\n if (type[2] && json.substring(0, type[2].length) === type[2])\n // lookup without the shared prefix\n localEnumName = json.substring(type[2].length);\n let enumNumber = type[1][localEnumName];\n if (typeof enumNumber === 'undefined' && ignoreUnknownFields) {\n return false;\n }\n assert(typeof enumNumber == \"number\", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} has no value for \"${json}\".`);\n return enumNumber;\n }\n assert(false, `Unable to parse field ${this.info.typeName}#${fieldName}, cannot parse enum value from ${typeof json}\".`);\n }\n scalar(json, type, longType, fieldName) {\n let e;\n try {\n switch (type) {\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n if (json === null)\n return .0;\n if (json === \"NaN\")\n return Number.NaN;\n if (json === \"Infinity\")\n return Number.POSITIVE_INFINITY;\n if (json === \"-Infinity\")\n return Number.NEGATIVE_INFINITY;\n if (json === \"\") {\n e = \"empty string\";\n break;\n }\n if (typeof json == \"string\" && json.trim().length !== json.length) {\n e = \"extra whitespace\";\n break;\n }\n if (typeof json != \"string\" && typeof json != \"number\") {\n break;\n }\n let float = Number(json);\n if (Number.isNaN(float)) {\n e = \"not a number\";\n break;\n }\n if (!Number.isFinite(float)) {\n // infinity and -infinity are handled by string representation above, so this is an error\n e = \"too large or small\";\n break;\n }\n if (type == ScalarType.FLOAT)\n assertFloat32(float);\n return float;\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n case ScalarType.UINT32:\n if (json === null)\n return 0;\n let int32;\n if (typeof json == \"number\")\n int32 = json;\n else if (json === \"\")\n e = \"empty string\";\n else if (typeof json == \"string\") {\n if (json.trim().length !== json.length)\n e = \"extra whitespace\";\n else\n int32 = Number(json);\n }\n if (int32 === undefined)\n break;\n if (type == ScalarType.UINT32)\n assertUInt32(int32);\n else\n assertInt32(int32);\n return int32;\n // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n if (json === null)\n return reflectionLongConvert(PbLong.ZERO, longType);\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n return reflectionLongConvert(PbLong.from(json), longType);\n case ScalarType.FIXED64:\n case ScalarType.UINT64:\n if (json === null)\n return reflectionLongConvert(PbULong.ZERO, longType);\n if (typeof json != \"number\" && typeof json != \"string\")\n break;\n return reflectionLongConvert(PbULong.from(json), longType);\n // bool:\n case ScalarType.BOOL:\n if (json === null)\n return false;\n if (typeof json !== \"boolean\")\n break;\n return json;\n // string:\n case ScalarType.STRING:\n if (json === null)\n return \"\";\n if (typeof json !== \"string\") {\n e = \"extra whitespace\";\n break;\n }\n try {\n encodeURIComponent(json);\n }\n catch (e) {\n e = \"invalid UTF8\";\n break;\n }\n return json;\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n if (json === null || json === \"\")\n return new Uint8Array(0);\n if (typeof json !== 'string')\n break;\n return base64decode(json);\n }\n }\n catch (error) {\n e = error.message;\n }\n this.assert(false, fieldName + (e ? \" - \" + e : \"\"), json);\n }\n}\n","import { base64encode } from \"./base64\";\nimport { PbLong, PbULong } from \"./pb-long\";\nimport { ScalarType } from \"./reflection-info\";\nimport { assert, assertFloat32, assertInt32, assertUInt32 } from \"./assert\";\n/**\n * Writes proto3 messages in canonical JSON format using reflection\n * information.\n *\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n */\nexport class ReflectionJsonWriter {\n constructor(info) {\n var _a;\n this.fields = (_a = info.fields) !== null && _a !== void 0 ? _a : [];\n }\n /**\n * Converts the message to a JSON object, based on the field descriptors.\n */\n write(message, options) {\n const json = {}, source = message;\n for (const field of this.fields) {\n // field is not part of a oneof, simply write as is\n if (!field.oneof) {\n let jsonValue = this.field(field, source[field.localName], options);\n if (jsonValue !== undefined)\n json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;\n continue;\n }\n // field is part of a oneof\n const group = source[field.oneof];\n if (group.oneofKind !== field.localName)\n continue; // not selected, skip\n const opt = field.kind == 'scalar' || field.kind == 'enum'\n ? Object.assign(Object.assign({}, options), { emitDefaultValues: true }) : options;\n let jsonValue = this.field(field, group[field.localName], opt);\n assert(jsonValue !== undefined);\n json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;\n }\n return json;\n }\n field(field, value, options) {\n let jsonValue = undefined;\n if (field.kind == 'map') {\n assert(typeof value == \"object\" && value !== null);\n const jsonObj = {};\n switch (field.V.kind) {\n case \"scalar\":\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = this.scalar(field.V.T, entryValue, field.name, false, true);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"message\":\n const messageType = field.V.T();\n for (const [entryKey, entryValue] of Object.entries(value)) {\n const val = this.message(messageType, entryValue, field.name, options);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n case \"enum\":\n const enumInfo = field.V.T();\n for (const [entryKey, entryValue] of Object.entries(value)) {\n assert(entryValue === undefined || typeof entryValue == 'number');\n const val = this.enum(enumInfo, entryValue, field.name, false, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonObj[entryKey.toString()] = val; // JSON standard allows only (double quoted) string as property key\n }\n break;\n }\n if (options.emitDefaultValues || Object.keys(jsonObj).length > 0)\n jsonValue = jsonObj;\n }\n else if (field.repeat) {\n assert(Array.isArray(value));\n const jsonArr = [];\n switch (field.kind) {\n case \"scalar\":\n for (let i = 0; i < value.length; i++) {\n const val = this.scalar(field.T, value[i], field.name, field.opt, true);\n assert(val !== undefined);\n jsonArr.push(val);\n }\n break;\n case \"enum\":\n const enumInfo = field.T();\n for (let i = 0; i < value.length; i++) {\n assert(value[i] === undefined || typeof value[i] == 'number');\n const val = this.enum(enumInfo, value[i], field.name, field.opt, true, options.enumAsInteger);\n assert(val !== undefined);\n jsonArr.push(val);\n }\n break;\n case \"message\":\n const messageType = field.T();\n for (let i = 0; i < value.length; i++) {\n const val = this.message(messageType, value[i], field.name, options);\n assert(val !== undefined);\n jsonArr.push(val);\n }\n break;\n }\n // add converted array to json output\n if (options.emitDefaultValues || jsonArr.length > 0 || options.emitDefaultValues)\n jsonValue = jsonArr;\n }\n else {\n switch (field.kind) {\n case \"scalar\":\n jsonValue = this.scalar(field.T, value, field.name, field.opt, options.emitDefaultValues);\n break;\n case \"enum\":\n jsonValue = this.enum(field.T(), value, field.name, field.opt, options.emitDefaultValues, options.enumAsInteger);\n break;\n case \"message\":\n jsonValue = this.message(field.T(), value, field.name, options);\n break;\n }\n }\n return jsonValue;\n }\n /**\n * Returns `null` as the default for google.protobuf.NullValue.\n */\n enum(type, value, fieldName, optional, emitDefaultValues, enumAsInteger) {\n if (type[0] == 'google.protobuf.NullValue')\n return !emitDefaultValues && !optional ? undefined : null;\n if (value === undefined) {\n assert(optional);\n return undefined;\n }\n if (value === 0 && !emitDefaultValues && !optional)\n // we require 0 to be default value for all enums\n return undefined;\n assert(typeof value == 'number');\n assert(Number.isInteger(value));\n if (enumAsInteger || !type[1].hasOwnProperty(value))\n // if we don't now the enum value, just return the number\n return value;\n if (type[2])\n // restore the dropped prefix\n return type[2] + type[1][value];\n return type[1][value];\n }\n message(type, value, fieldName, options) {\n if (value === undefined)\n return options.emitDefaultValues ? null : undefined;\n return type.internalJsonWrite(value, options);\n }\n scalar(type, value, fieldName, optional, emitDefaultValues) {\n if (value === undefined) {\n assert(optional);\n return undefined;\n }\n const ed = emitDefaultValues || optional;\n // noinspection FallThroughInSwitchStatementJS\n switch (type) {\n // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n case ScalarType.INT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n if (value === 0)\n return ed ? 0 : undefined;\n assertInt32(value);\n return value;\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n if (value === 0)\n return ed ? 0 : undefined;\n assertUInt32(value);\n return value;\n // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n // Either numbers or strings are accepted. Exponent notation is also accepted.\n case ScalarType.FLOAT:\n assertFloat32(value);\n case ScalarType.DOUBLE:\n if (value === 0)\n return ed ? 0 : undefined;\n assert(typeof value == 'number');\n if (Number.isNaN(value))\n return 'NaN';\n if (value === Number.POSITIVE_INFINITY)\n return 'Infinity';\n if (value === Number.NEGATIVE_INFINITY)\n return '-Infinity';\n return value;\n // string:\n case ScalarType.STRING:\n if (value === \"\")\n return ed ? '' : undefined;\n assert(typeof value == 'string');\n return value;\n // bool:\n case ScalarType.BOOL:\n if (value === false)\n return ed ? false : undefined;\n assert(typeof value == 'boolean');\n return value;\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n assert(typeof value == 'number' || typeof value == 'string' || typeof value == 'bigint');\n let ulong = PbULong.from(value);\n if (ulong.isZero() && !ed)\n return undefined;\n return ulong.toString();\n // JSON value will be a decimal string. Either numbers or strings are accepted.\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n assert(typeof value == 'number' || typeof value == 'string' || typeof value == 'bigint');\n let long = PbLong.from(value);\n if (long.isZero() && !ed)\n return undefined;\n return long.toString();\n // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n case ScalarType.BYTES:\n assert(value instanceof Uint8Array);\n if (!value.byteLength)\n return ed ? \"\" : undefined;\n return base64encode(value);\n }\n }\n}\n","import { LongType, ScalarType } from \"./reflection-info\";\nimport { reflectionLongConvert } from \"./reflection-long-convert\";\nimport { PbLong, PbULong } from \"./pb-long\";\n/**\n * Creates the default value for a scalar type.\n */\nexport function reflectionScalarDefault(type, longType = LongType.STRING) {\n switch (type) {\n case ScalarType.BOOL:\n return false;\n case ScalarType.UINT64:\n case ScalarType.FIXED64:\n return reflectionLongConvert(PbULong.ZERO, longType);\n case ScalarType.INT64:\n case ScalarType.SFIXED64:\n case ScalarType.SINT64:\n return reflectionLongConvert(PbLong.ZERO, longType);\n case ScalarType.DOUBLE:\n case ScalarType.FLOAT:\n return 0.0;\n case ScalarType.BYTES:\n return new Uint8Array(0);\n case ScalarType.STRING:\n return \"\";\n default:\n // case ScalarType.INT32:\n // case ScalarType.UINT32:\n // case ScalarType.SINT32:\n // case ScalarType.FIXED32:\n // case ScalarType.SFIXED32:\n return 0;\n }\n}\n","import { UnknownFieldHandler, WireType } from \"./binary-format-contract\";\nimport { LongType, ScalarType } from \"./reflection-info\";\nimport { reflectionLongConvert } from \"./reflection-long-convert\";\nimport { reflectionScalarDefault } from \"./reflection-scalar-default\";\n/**\n * Reads proto3 messages in binary format using reflection information.\n *\n * https://developers.google.com/protocol-buffers/docs/encoding\n */\nexport class ReflectionBinaryReader {\n constructor(info) {\n this.info = info;\n }\n prepare() {\n var _a;\n if (!this.fieldNoToField) {\n const fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : [];\n this.fieldNoToField = new Map(fieldsInput.map(field => [field.no, field]));\n }\n }\n /**\n * Reads a message from binary format into the target message.\n *\n * Repeated fields are appended. Map entries are added, overwriting\n * existing keys.\n *\n * If a message field is already present, it will be merged with the\n * new data.\n */\n read(reader, message, options, length) {\n this.prepare();\n const end = length === undefined ? reader.len : reader.pos + length;\n while (reader.pos < end) {\n // read the tag and find the field\n const [fieldNo, wireType] = reader.tag(), field = this.fieldNoToField.get(fieldNo);\n if (!field) {\n let u = options.readUnknownField;\n if (u == \"throw\")\n throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.info.typeName}`);\n let d = reader.skip(wireType);\n if (u !== false)\n (u === true ? UnknownFieldHandler.onRead : u)(this.info.typeName, message, fieldNo, wireType, d);\n continue;\n }\n // target object for the field we are reading\n let target = message, repeated = field.repeat, localName = field.localName;\n // if field is member of oneof ADT, use ADT as target\n if (field.oneof) {\n target = target[field.oneof];\n // if other oneof member selected, set new ADT\n if (target.oneofKind !== localName)\n target = message[field.oneof] = {\n oneofKind: localName\n };\n }\n // we have handled oneof above, we just have read the value into `target[localName]`\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let T = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n let L = field.kind == \"scalar\" ? field.L : undefined;\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n if (wireType == WireType.LengthDelimited && T != ScalarType.STRING && T != ScalarType.BYTES) {\n let e = reader.uint32() + reader.pos;\n while (reader.pos < e)\n arr.push(this.scalar(reader, T, L));\n }\n else\n arr.push(this.scalar(reader, T, L));\n }\n else\n target[localName] = this.scalar(reader, T, L);\n break;\n case \"message\":\n if (repeated) {\n let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n let msg = field.T().internalBinaryRead(reader, reader.uint32(), options);\n arr.push(msg);\n }\n else\n target[localName] = field.T().internalBinaryRead(reader, reader.uint32(), options, target[localName]);\n break;\n case \"map\":\n let [mapKey, mapVal] = this.mapEntry(field, reader, options);\n // safe to assume presence of map object, oneof cannot contain repeated values\n target[localName][mapKey] = mapVal;\n break;\n }\n }\n }\n /**\n * Read a map field, expecting key field = 1, value field = 2\n */\n mapEntry(field, reader, options) {\n let length = reader.uint32();\n let end = reader.pos + length;\n let key = undefined; // javascript only allows number or string for object properties\n let val = undefined;\n while (reader.pos < end) {\n let [fieldNo, wireType] = reader.tag();\n switch (fieldNo) {\n case 1:\n if (field.K == ScalarType.BOOL)\n key = reader.bool().toString();\n else\n // long types are read as string, number types are okay as number\n key = this.scalar(reader, field.K, LongType.STRING);\n break;\n case 2:\n switch (field.V.kind) {\n case \"scalar\":\n val = this.scalar(reader, field.V.T, field.V.L);\n break;\n case \"enum\":\n val = reader.int32();\n break;\n case \"message\":\n val = field.V.T().internalBinaryRead(reader, reader.uint32(), options);\n break;\n }\n break;\n default:\n throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) in map entry for ${this.info.typeName}#${field.name}`);\n }\n }\n if (key === undefined) {\n let keyRaw = reflectionScalarDefault(field.K);\n key = field.K == ScalarType.BOOL ? keyRaw.toString() : keyRaw;\n }\n if (val === undefined)\n switch (field.V.kind) {\n case \"scalar\":\n val = reflectionScalarDefault(field.V.T, field.V.L);\n break;\n case \"enum\":\n val = 0;\n break;\n case \"message\":\n val = field.V.T().create();\n break;\n }\n return [key, val];\n }\n scalar(reader, type, longType) {\n switch (type) {\n case ScalarType.INT32:\n return reader.int32();\n case ScalarType.STRING:\n return reader.string();\n case ScalarType.BOOL:\n return reader.bool();\n case ScalarType.DOUBLE:\n return reader.double();\n case ScalarType.FLOAT:\n return reader.float();\n case ScalarType.INT64:\n return reflectionLongConvert(reader.int64(), longType);\n case ScalarType.UINT64:\n return reflectionLongConvert(reader.uint64(), longType);\n case ScalarType.FIXED64:\n return reflectionLongConvert(reader.fixed64(), longType);\n case ScalarType.FIXED32:\n return reader.fixed32();\n case ScalarType.BYTES:\n return reader.bytes();\n case ScalarType.UINT32:\n return reader.uint32();\n case ScalarType.SFIXED32:\n return reader.sfixed32();\n case ScalarType.SFIXED64:\n return reflectionLongConvert(reader.sfixed64(), longType);\n case ScalarType.SINT32:\n return reader.sint32();\n case ScalarType.SINT64:\n return reflectionLongConvert(reader.sint64(), longType);\n }\n }\n}\n","import { UnknownFieldHandler, WireType } from \"./binary-format-contract\";\nimport { RepeatType, ScalarType } from \"./reflection-info\";\nimport { assert } from \"./assert\";\nimport { PbLong, PbULong } from \"./pb-long\";\n/**\n * Writes proto3 messages in binary format using reflection information.\n *\n * https://developers.google.com/protocol-buffers/docs/encoding\n */\nexport class ReflectionBinaryWriter {\n constructor(info) {\n this.info = info;\n }\n prepare() {\n if (!this.fields) {\n const fieldsInput = this.info.fields ? this.info.fields.concat() : [];\n this.fields = fieldsInput.sort((a, b) => a.no - b.no);\n }\n }\n /**\n * Writes the message to binary format.\n */\n write(message, writer, options) {\n this.prepare();\n for (const field of this.fields) {\n let value, // this will be our field value, whether it is member of a oneof or not\n emitDefault, // whether we emit the default value (only true for oneof members)\n repeated = field.repeat, localName = field.localName;\n // handle oneof ADT\n if (field.oneof) {\n const group = message[field.oneof];\n if (group.oneofKind !== localName)\n continue; // if field is not selected, skip\n value = group[localName];\n emitDefault = true;\n }\n else {\n value = message[localName];\n emitDefault = false;\n }\n // we have handled oneof above. we just have to honor `emitDefault`.\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n let T = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (repeated) {\n assert(Array.isArray(value));\n if (repeated == RepeatType.PACKED)\n this.packed(writer, T, field.no, value);\n else\n for (const item of value)\n this.scalar(writer, T, field.no, item, true);\n }\n else if (value === undefined)\n assert(field.opt);\n else\n this.scalar(writer, T, field.no, value, emitDefault || field.opt);\n break;\n case \"message\":\n if (repeated) {\n assert(Array.isArray(value));\n for (const item of value)\n this.message(writer, options, field.T(), field.no, item);\n }\n else {\n this.message(writer, options, field.T(), field.no, value);\n }\n break;\n case \"map\":\n assert(typeof value == 'object' && value !== null);\n for (const [key, val] of Object.entries(value))\n this.mapEntry(writer, options, field, key, val);\n break;\n }\n }\n let u = options.writeUnknownFields;\n if (u !== false)\n (u === true ? UnknownFieldHandler.onWrite : u)(this.info.typeName, message, writer);\n }\n mapEntry(writer, options, field, key, value) {\n writer.tag(field.no, WireType.LengthDelimited);\n writer.fork();\n // javascript only allows number or string for object properties\n // we convert from our representation to the protobuf type\n let keyValue = key;\n switch (field.K) {\n case ScalarType.INT32:\n case ScalarType.FIXED32:\n case ScalarType.UINT32:\n case ScalarType.SFIXED32:\n case ScalarType.SINT32:\n keyValue = Number.parseInt(key);\n break;\n case ScalarType.BOOL:\n assert(key == 'true' || key == 'false');\n keyValue = key == 'true';\n break;\n }\n // write key, expecting key field number = 1\n this.scalar(writer, field.K, 1, keyValue, true);\n // write value, expecting value field number = 2\n switch (field.V.kind) {\n case 'scalar':\n this.scalar(writer, field.V.T, 2, value, true);\n break;\n case 'enum':\n this.scalar(writer, ScalarType.INT32, 2, value, true);\n break;\n case 'message':\n this.message(writer, options, field.V.T(), 2, value);\n break;\n }\n writer.join();\n }\n message(writer, options, handler, fieldNo, value) {\n if (value === undefined)\n return;\n handler.internalBinaryWrite(value, writer.tag(fieldNo, WireType.LengthDelimited).fork(), options);\n writer.join();\n }\n /**\n * Write a single scalar value.\n */\n scalar(writer, type, fieldNo, value, emitDefault) {\n let [wireType, method, isDefault] = this.scalarInfo(type, value);\n if (!isDefault || emitDefault) {\n writer.tag(fieldNo, wireType);\n writer[method](value);\n }\n }\n /**\n * Write an array of scalar values in packed format.\n */\n packed(writer, type, fieldNo, value) {\n if (!value.length)\n return;\n assert(type !== ScalarType.BYTES && type !== ScalarType.STRING);\n // write tag\n writer.tag(fieldNo, WireType.LengthDelimited);\n // begin length-delimited\n writer.fork();\n // write values without tags\n let [, method,] = this.scalarInfo(type);\n for (let i = 0; i < value.length; i++)\n writer[method](value[i]);\n // end length delimited\n writer.join();\n }\n /**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value\n *\n * If argument `value` is omitted, [2] is always false.\n */\n scalarInfo(type, value) {\n let t = WireType.Varint;\n let m;\n let i = value === undefined;\n let d = value === 0;\n switch (type) {\n case ScalarType.INT32:\n m = \"int32\";\n break;\n case ScalarType.STRING:\n d = i || !value.length;\n t = WireType.LengthDelimited;\n m = \"string\";\n break;\n case ScalarType.BOOL:\n d = value === false;\n m = \"bool\";\n break;\n case ScalarType.UINT32:\n m = \"uint32\";\n break;\n case ScalarType.DOUBLE:\n t = WireType.Bit64;\n m = \"double\";\n break;\n case ScalarType.FLOAT:\n t = WireType.Bit32;\n m = \"float\";\n break;\n case ScalarType.INT64:\n d = i || PbLong.from(value).isZero();\n m = \"int64\";\n break;\n case ScalarType.UINT64:\n d = i || PbULong.from(value).isZero();\n m = \"uint64\";\n break;\n case ScalarType.FIXED64:\n d = i || PbULong.from(value).isZero();\n t = WireType.Bit64;\n m = \"fixed64\";\n break;\n case ScalarType.BYTES:\n d = i || !value.byteLength;\n t = WireType.LengthDelimited;\n m = \"bytes\";\n break;\n case ScalarType.FIXED32:\n t = WireType.Bit32;\n m = \"fixed32\";\n break;\n case ScalarType.SFIXED32:\n t = WireType.Bit32;\n m = \"sfixed32\";\n break;\n case ScalarType.SFIXED64:\n d = i || PbLong.from(value).isZero();\n t = WireType.Bit64;\n m = \"sfixed64\";\n break;\n case ScalarType.SINT32:\n m = \"sint32\";\n break;\n case ScalarType.SINT64:\n d = i || PbLong.from(value).isZero();\n m = \"sint64\";\n break;\n }\n return [t, m, i || d];\n }\n}\n","import { reflectionScalarDefault } from \"./reflection-scalar-default\";\nimport { MESSAGE_TYPE } from './message-type-contract';\n/**\n * Creates an instance of the generic message, using the field\n * information.\n */\nexport function reflectionCreate(type) {\n /**\n * This ternary can be removed in the next major version.\n * The `Object.create()` code path utilizes a new `messagePrototype`\n * property on the `IMessageType` which has this same `MESSAGE_TYPE`\n * non-enumerable property on it. Doing it this way means that we only\n * pay the cost of `Object.defineProperty()` once per `IMessageType`\n * class of once per \"instance\". The falsy code path is only provided\n * for backwards compatibility in cases where the runtime library is\n * updated without also updating the generated code.\n */\n const msg = type.messagePrototype\n ? Object.create(type.messagePrototype)\n : Object.defineProperty({}, MESSAGE_TYPE, { value: type });\n for (let field of type.fields) {\n let name = field.localName;\n if (field.opt)\n continue;\n if (field.oneof)\n msg[field.oneof] = { oneofKind: undefined };\n else if (field.repeat)\n msg[name] = [];\n else\n switch (field.kind) {\n case \"scalar\":\n msg[name] = reflectionScalarDefault(field.T, field.L);\n break;\n case \"enum\":\n // we require 0 to be default value for all enums\n msg[name] = 0;\n break;\n case \"map\":\n msg[name] = {};\n break;\n }\n }\n return msg;\n}\n","/**\n * Copy partial data into the target message.\n *\n * If a singular scalar or enum field is present in the source, it\n * replaces the field in the target.\n *\n * If a singular message field is present in the source, it is merged\n * with the target field by calling mergePartial() of the responsible\n * message type.\n *\n * If a repeated field is present in the source, its values replace\n * all values in the target array, removing extraneous values.\n * Repeated message fields are copied, not merged.\n *\n * If a map field is present in the source, entries are added to the\n * target map, replacing entries with the same key. Entries that only\n * exist in the target remain. Entries with message values are copied,\n * not merged.\n *\n * Note that this function differs from protobuf merge semantics,\n * which appends repeated fields.\n */\nexport function reflectionMergePartial(info, target, source) {\n let fieldValue, // the field value we are working with\n input = source, output; // where we want our field value to go\n for (let field of info.fields) {\n let name = field.localName;\n if (field.oneof) {\n const group = input[field.oneof]; // this is the oneof`s group in the source\n if ((group === null || group === void 0 ? void 0 : group.oneofKind) == undefined) { // the user is free to omit\n continue; // we skip this field, and all other members too\n }\n fieldValue = group[name]; // our value comes from the the oneof group of the source\n output = target[field.oneof]; // and our output is the oneof group of the target\n output.oneofKind = group.oneofKind; // always update discriminator\n if (fieldValue == undefined) {\n delete output[name]; // remove any existing value\n continue; // skip further work on field\n }\n }\n else {\n fieldValue = input[name]; // we are using the source directly\n output = target; // we want our field value to go directly into the target\n if (fieldValue == undefined) {\n continue; // skip further work on field, existing value is used as is\n }\n }\n if (field.repeat)\n output[name].length = fieldValue.length; // resize target array to match source array\n // now we just work with `fieldValue` and `output` to merge the value\n switch (field.kind) {\n case \"scalar\":\n case \"enum\":\n if (field.repeat)\n for (let i = 0; i < fieldValue.length; i++)\n output[name][i] = fieldValue[i]; // not a reference type\n else\n output[name] = fieldValue; // not a reference type\n break;\n case \"message\":\n let T = field.T();\n if (field.repeat)\n for (let i = 0; i < fieldValue.length; i++)\n output[name][i] = T.create(fieldValue[i]);\n else if (output[name] === undefined)\n output[name] = T.create(fieldValue); // nothing to merge with\n else\n T.mergePartial(output[name], fieldValue);\n break;\n case \"map\":\n // Map and repeated fields are simply overwritten, not appended or merged\n switch (field.V.kind) {\n case \"scalar\":\n case \"enum\":\n Object.assign(output[name], fieldValue); // elements are not reference types\n break;\n case \"message\":\n let T = field.V.T();\n for (let k of Object.keys(fieldValue))\n output[name][k] = T.create(fieldValue[k]);\n break;\n }\n break;\n }\n }\n}\n","import { ScalarType } from \"./reflection-info\";\n/**\n * Determines whether two message of the same type have the same field values.\n * Checks for deep equality, traversing repeated fields, oneof groups, maps\n * and messages recursively.\n * Will also return true if both messages are `undefined`.\n */\nexport function reflectionEquals(info, a, b) {\n if (a === b)\n return true;\n if (!a || !b)\n return false;\n for (let field of info.fields) {\n let localName = field.localName;\n let val_a = field.oneof ? a[field.oneof][localName] : a[localName];\n let val_b = field.oneof ? b[field.oneof][localName] : b[localName];\n switch (field.kind) {\n case \"enum\":\n case \"scalar\":\n let t = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n if (!(field.repeat\n ? repeatedPrimitiveEq(t, val_a, val_b)\n : primitiveEq(t, val_a, val_b)))\n return false;\n break;\n case \"map\":\n if (!(field.V.kind == \"message\"\n ? repeatedMsgEq(field.V.T(), objectValues(val_a), objectValues(val_b))\n : repeatedPrimitiveEq(field.V.kind == \"enum\" ? ScalarType.INT32 : field.V.T, objectValues(val_a), objectValues(val_b))))\n return false;\n break;\n case \"message\":\n let T = field.T();\n if (!(field.repeat\n ? repeatedMsgEq(T, val_a, val_b)\n : T.equals(val_a, val_b)))\n return false;\n break;\n }\n }\n return true;\n}\nconst objectValues = Object.values;\nfunction primitiveEq(type, a, b) {\n if (a === b)\n return true;\n if (type !== ScalarType.BYTES)\n return false;\n let ba = a;\n let bb = b;\n if (ba.length !== bb.length)\n return false;\n for (let i = 0; i < ba.length; i++)\n if (ba[i] != bb[i])\n return false;\n return true;\n}\nfunction repeatedPrimitiveEq(type, a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!primitiveEq(type, a[i], b[i]))\n return false;\n return true;\n}\nfunction repeatedMsgEq(type, a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!type.equals(a[i], b[i]))\n return false;\n return true;\n}\n","import { MESSAGE_TYPE } from \"./message-type-contract\";\nimport { normalizeFieldInfo } from \"./reflection-info\";\nimport { ReflectionTypeCheck } from \"./reflection-type-check\";\nimport { ReflectionJsonReader } from \"./reflection-json-reader\";\nimport { ReflectionJsonWriter } from \"./reflection-json-writer\";\nimport { ReflectionBinaryReader } from \"./reflection-binary-reader\";\nimport { ReflectionBinaryWriter } from \"./reflection-binary-writer\";\nimport { reflectionCreate } from \"./reflection-create\";\nimport { reflectionMergePartial } from \"./reflection-merge-partial\";\nimport { typeofJsonValue } from \"./json-typings\";\nimport { jsonReadOptions, jsonWriteOptions, } from \"./json-format-contract\";\nimport { reflectionEquals } from \"./reflection-equals\";\nimport { binaryWriteOptions } from \"./binary-writer\";\nimport { binaryReadOptions } from \"./binary-reader\";\nconst baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));\nconst messageTypeDescriptor = baseDescriptors[MESSAGE_TYPE] = {};\n/**\n * This standard message type provides reflection-based\n * operations to work with a message.\n */\nexport class MessageType {\n constructor(name, fields, options) {\n this.defaultCheckDepth = 16;\n this.typeName = name;\n this.fields = fields.map(normalizeFieldInfo);\n this.options = options !== null && options !== void 0 ? options : {};\n messageTypeDescriptor.value = this;\n this.messagePrototype = Object.create(null, baseDescriptors);\n this.refTypeCheck = new ReflectionTypeCheck(this);\n this.refJsonReader = new ReflectionJsonReader(this);\n this.refJsonWriter = new ReflectionJsonWriter(this);\n this.refBinReader = new ReflectionBinaryReader(this);\n this.refBinWriter = new ReflectionBinaryWriter(this);\n }\n create(value) {\n let message = reflectionCreate(this);\n if (value !== undefined) {\n reflectionMergePartial(this, message, value);\n }\n return message;\n }\n /**\n * Clone the message.\n *\n * Unknown fields are discarded.\n */\n clone(message) {\n let copy = this.create();\n reflectionMergePartial(this, copy, message);\n return copy;\n }\n /**\n * Determines whether two message of the same type have the same field values.\n * Checks for deep equality, traversing repeated fields, oneof groups, maps\n * and messages recursively.\n * Will also return true if both messages are `undefined`.\n */\n equals(a, b) {\n return reflectionEquals(this, a, b);\n }\n /**\n * Is the given value assignable to our message type\n * and contains no [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)?\n */\n is(arg, depth = this.defaultCheckDepth) {\n return this.refTypeCheck.is(arg, depth, false);\n }\n /**\n * Is the given value assignable to our message type,\n * regardless of [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)?\n */\n isAssignable(arg, depth = this.defaultCheckDepth) {\n return this.refTypeCheck.is(arg, depth, true);\n }\n /**\n * Copy partial data into the target message.\n */\n mergePartial(target, source) {\n reflectionMergePartial(this, target, source);\n }\n /**\n * Create a new message from binary format.\n */\n fromBinary(data, options) {\n let opt = binaryReadOptions(options);\n return this.internalBinaryRead(opt.readerFactory(data), data.byteLength, opt);\n }\n /**\n * Read a new message from a JSON value.\n */\n fromJson(json, options) {\n return this.internalJsonRead(json, jsonReadOptions(options));\n }\n /**\n * Read a new message from a JSON string.\n * This is equivalent to `T.fromJson(JSON.parse(json))`.\n */\n fromJsonString(json, options) {\n let value = JSON.parse(json);\n return this.fromJson(value, options);\n }\n /**\n * Write the message to canonical JSON value.\n */\n toJson(message, options) {\n return this.internalJsonWrite(message, jsonWriteOptions(options));\n }\n /**\n * Convert the message to canonical JSON string.\n * This is equivalent to `JSON.stringify(T.toJson(t))`\n */\n toJsonString(message, options) {\n var _a;\n let value = this.toJson(message, options);\n return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n }\n /**\n * Write the message to binary format.\n */\n toBinary(message, options) {\n let opt = binaryWriteOptions(options);\n return this.internalBinaryWrite(message, opt.writerFactory(), opt).finish();\n }\n /**\n * This is an internal method. If you just want to read a message from\n * JSON, use `fromJson()` or `fromJsonString()`.\n *\n * Reads JSON value and merges the fields into the target\n * according to protobuf rules. If the target is omitted,\n * a new instance is created first.\n */\n internalJsonRead(json, options, target) {\n if (json !== null && typeof json == \"object\" && !Array.isArray(json)) {\n let message = target !== null && target !== void 0 ? target : this.create();\n this.refJsonReader.read(json, message, options);\n return message;\n }\n throw new Error(`Unable to parse message ${this.typeName} from JSON ${typeofJsonValue(json)}.`);\n }\n /**\n * This is an internal method. If you just want to write a message\n * to JSON, use `toJson()` or `toJsonString().\n *\n * Writes JSON value and returns it.\n */\n internalJsonWrite(message, options) {\n return this.refJsonWriter.write(message, options);\n }\n /**\n * This is an internal method. If you just want to write a message\n * in binary format, use `toBinary()`.\n *\n * Serializes the message in binary format and appends it to the given\n * writer. Returns passed writer.\n */\n internalBinaryWrite(message, writer, options) {\n this.refBinWriter.write(message, writer, options);\n return writer;\n }\n /**\n * This is an internal method. If you just want to read a message from\n * binary data, use `fromBinary()`.\n *\n * Reads data from binary format and merges the fields into\n * the target according to protobuf rules. If the target is\n * omitted, a new instance is created first.\n */\n internalBinaryRead(reader, length, options, target) {\n let message = target !== null && target !== void 0 ? target : this.create();\n this.refBinReader.read(reader, message, options, length);\n return message;\n }\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"google/protobuf/struct.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport { isJsonObject } from '@protobuf-ts/runtime';\nimport { typeofJsonValue } from '@protobuf-ts/runtime';\nimport type { JsonValue } from '@protobuf-ts/runtime';\nimport type { JsonReadOptions } from '@protobuf-ts/runtime';\nimport type { JsonWriteOptions } from '@protobuf-ts/runtime';\nimport type { JsonObject } from '@protobuf-ts/runtime';\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * `Struct` represents a structured data value, consisting of fields\n * which map to dynamically typed values. In some languages, `Struct`\n * might be supported by a native representation. For example, in\n * scripting languages like JS a struct is represented as an\n * object. The details of that representation are described together\n * with the proto support for the language.\n *\n * The JSON representation for `Struct` is JSON object.\n *\n * @generated from protobuf message google.protobuf.Struct\n */\nexport interface Struct {\n\t/**\n\t * Unordered map of dynamically typed values.\n\t *\n\t * @generated from protobuf field: map<string, google.protobuf.Value> fields = 1;\n\t */\n\tfields: {\n\t\t[key: string]: Value;\n\t};\n}\n/**\n * `Value` represents a dynamically typed value which can be either\n * null, a number, a string, a boolean, a recursive struct value, or a\n * list of values. A producer of value is expected to set one of these\n * variants. Absence of any variant indicates an error.\n *\n * The JSON representation for `Value` is JSON value.\n *\n * @generated from protobuf message google.protobuf.Value\n */\nexport interface Value {\n\t/**\n\t * @generated from protobuf oneof: kind\n\t */\n\tkind:\n\t\t| {\n\t\t\t\toneofKind: 'nullValue';\n\t\t\t\t/**\n\t\t\t\t * Represents a null value.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: google.protobuf.NullValue null_value = 1;\n\t\t\t\t */\n\t\t\t\tnullValue: NullValue;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'numberValue';\n\t\t\t\t/**\n\t\t\t\t * Represents a double value.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: double number_value = 2;\n\t\t\t\t */\n\t\t\t\tnumberValue: number;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'stringValue';\n\t\t\t\t/**\n\t\t\t\t * Represents a string value.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: string string_value = 3;\n\t\t\t\t */\n\t\t\t\tstringValue: string;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'boolValue';\n\t\t\t\t/**\n\t\t\t\t * Represents a boolean value.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: bool bool_value = 4;\n\t\t\t\t */\n\t\t\t\tboolValue: boolean;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'structValue';\n\t\t\t\t/**\n\t\t\t\t * Represents a structured value.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: google.protobuf.Struct struct_value = 5;\n\t\t\t\t */\n\t\t\t\tstructValue: Struct;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'listValue';\n\t\t\t\t/**\n\t\t\t\t * Represents a repeated `Value`.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: google.protobuf.ListValue list_value = 6;\n\t\t\t\t */\n\t\t\t\tlistValue: ListValue;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * `ListValue` is a wrapper around a repeated field of values.\n *\n * The JSON representation for `ListValue` is JSON array.\n *\n * @generated from protobuf message google.protobuf.ListValue\n */\nexport interface ListValue {\n\t/**\n\t * Repeated field of dynamically typed values.\n\t *\n\t * @generated from protobuf field: repeated google.protobuf.Value values = 1;\n\t */\n\tvalues: Value[];\n}\n/**\n * `NullValue` is a singleton enumeration to represent the null value for the\n * `Value` type union.\n *\n * The JSON representation for `NullValue` is JSON `null`.\n *\n * @generated from protobuf enum google.protobuf.NullValue\n */\nexport enum NullValue {\n\t/**\n\t * Null value.\n\t *\n\t * @generated from protobuf enum value: NULL_VALUE = 0;\n\t */\n\tNULL_VALUE = 0,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Struct$Type extends MessageType<Struct> {\n\tconstructor() {\n\t\tsuper('google.protobuf.Struct', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'fields',\n\t\t\t\tkind: 'map',\n\t\t\t\tK: 9 /*ScalarType.STRING*/,\n\t\t\t\tV: { kind: 'message', T: () => Value },\n\t\t\t},\n\t\t]);\n\t}\n\t/**\n\t * Encode `Struct` to JSON object.\n\t */\n\tinternalJsonWrite(message: Struct, options: JsonWriteOptions): JsonValue {\n\t\tlet json: JsonObject = {};\n\t\tfor (let [k, v] of Object.entries(message.fields)) {\n\t\t\tjson[k] = Value.toJson(v);\n\t\t}\n\t\treturn json;\n\t}\n\t/**\n\t * Decode `Struct` from JSON object.\n\t */\n\tinternalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Struct): Struct {\n\t\tif (!isJsonObject(json))\n\t\t\tthrow new globalThis.Error(\n\t\t\t\t'Unable to parse message ' + this.typeName + ' from JSON ' + typeofJsonValue(json) + '.',\n\t\t\t);\n\t\tif (!target) target = this.create();\n\t\tfor (let [k, v] of globalThis.Object.entries(json)) {\n\t\t\ttarget.fields[k] = Value.fromJson(v);\n\t\t}\n\t\treturn target;\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Struct\n */\nexport const Struct = new Struct$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Value$Type extends MessageType<Value> {\n\tconstructor() {\n\t\tsuper('google.protobuf.Value', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'null_value',\n\t\t\t\tkind: 'enum',\n\t\t\t\toneof: 'kind',\n\t\t\t\tT: () => ['google.protobuf.NullValue', NullValue],\n\t\t\t},\n\t\t\t{ no: 2, name: 'number_value', kind: 'scalar', oneof: 'kind', T: 1 /*ScalarType.DOUBLE*/ },\n\t\t\t{ no: 3, name: 'string_value', kind: 'scalar', oneof: 'kind', T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'bool_value', kind: 'scalar', oneof: 'kind', T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{ no: 5, name: 'struct_value', kind: 'message', oneof: 'kind', T: () => Struct },\n\t\t\t{ no: 6, name: 'list_value', kind: 'message', oneof: 'kind', T: () => ListValue },\n\t\t]);\n\t}\n\t/**\n\t * Encode `Value` to JSON value.\n\t */\n\tinternalJsonWrite(message: Value, options: JsonWriteOptions): JsonValue {\n\t\tif (message.kind.oneofKind === undefined) throw new globalThis.Error();\n\t\tswitch (message.kind.oneofKind) {\n\t\t\tcase undefined:\n\t\t\t\tthrow new globalThis.Error();\n\t\t\tcase 'boolValue':\n\t\t\t\treturn message.kind.boolValue;\n\t\t\tcase 'nullValue':\n\t\t\t\treturn null;\n\t\t\tcase 'numberValue':\n\t\t\t\tlet numberValue = message.kind.numberValue;\n\t\t\t\tif (typeof numberValue == 'number' && !Number.isFinite(numberValue))\n\t\t\t\t\tthrow new globalThis.Error();\n\t\t\t\treturn numberValue;\n\t\t\tcase 'stringValue':\n\t\t\t\treturn message.kind.stringValue;\n\t\t\tcase 'listValue':\n\t\t\t\tlet listValueField = this.fields.find((f) => f.no === 6);\n\t\t\t\tif (listValueField?.kind !== 'message') throw new globalThis.Error();\n\t\t\t\treturn listValueField.T().toJson(message.kind.listValue);\n\t\t\tcase 'structValue':\n\t\t\t\tlet structValueField = this.fields.find((f) => f.no === 5);\n\t\t\t\tif (structValueField?.kind !== 'message') throw new globalThis.Error();\n\t\t\t\treturn structValueField.T().toJson(message.kind.structValue);\n\t\t}\n\t}\n\t/**\n\t * Decode `Value` from JSON value.\n\t */\n\tinternalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Value): Value {\n\t\tif (!target) target = this.create();\n\t\tswitch (typeof json) {\n\t\t\tcase 'number':\n\t\t\t\ttarget.kind = { oneofKind: 'numberValue', numberValue: json };\n\t\t\t\tbreak;\n\t\t\tcase 'string':\n\t\t\t\ttarget.kind = { oneofKind: 'stringValue', stringValue: json };\n\t\t\t\tbreak;\n\t\t\tcase 'boolean':\n\t\t\t\ttarget.kind = { oneofKind: 'boolValue', boolValue: json };\n\t\t\t\tbreak;\n\t\t\tcase 'object':\n\t\t\t\tif (json === null) {\n\t\t\t\t\ttarget.kind = { oneofKind: 'nullValue', nullValue: NullValue.NULL_VALUE };\n\t\t\t\t} else if (globalThis.Array.isArray(json)) {\n\t\t\t\t\ttarget.kind = { oneofKind: 'listValue', listValue: ListValue.fromJson(json) };\n\t\t\t\t} else {\n\t\t\t\t\ttarget.kind = { oneofKind: 'structValue', structValue: Struct.fromJson(json) };\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new globalThis.Error(\n\t\t\t\t\t'Unable to parse ' + this.typeName + ' from JSON ' + typeofJsonValue(json),\n\t\t\t\t);\n\t\t}\n\t\treturn target;\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Value\n */\nexport const Value = new Value$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListValue$Type extends MessageType<ListValue> {\n\tconstructor() {\n\t\tsuper('google.protobuf.ListValue', [\n\t\t\t{ no: 1, name: 'values', kind: 'message', repeat: 2 /*RepeatType.UNPACKED*/, T: () => Value },\n\t\t]);\n\t}\n\t/**\n\t * Encode `ListValue` to JSON array.\n\t */\n\tinternalJsonWrite(message: ListValue, options: JsonWriteOptions): JsonValue {\n\t\treturn message.values.map((v) => Value.toJson(v));\n\t}\n\t/**\n\t * Decode `ListValue` from JSON array.\n\t */\n\tinternalJsonRead(json: JsonValue, options: JsonReadOptions, target?: ListValue): ListValue {\n\t\tif (!globalThis.Array.isArray(json))\n\t\t\tthrow new globalThis.Error(\n\t\t\t\t'Unable to parse ' + this.typeName + ' from JSON ' + typeofJsonValue(json),\n\t\t\t);\n\t\tif (!target) target = this.create();\n\t\tlet values = json.map((v) => Value.fromJson(v));\n\t\ttarget.values.push(...values);\n\t\treturn target;\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.ListValue\n */\nexport const ListValue = new ListValue$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/move_package.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * A Move Package\n *\n * @generated from protobuf message sui.rpc.v2.Package\n */\nexport interface Package {\n\t/**\n\t * The PackageId of this package\n\t *\n\t * A package's `storage_id` is the Sui ObjectId of the package on-chain.\n\t * Outside of system packages the `storage_id` for every package version is\n\t * different.\n\t *\n\t * @generated from protobuf field: optional string storage_id = 1;\n\t */\n\tstorageId?: string;\n\t/**\n\t * The PackageId of the first published version of this package.\n\t *\n\t * A package's `original_id` (sometimes also called its `runtime_id`) is the\n\t * `storage_id` of the first version of this package that has been published.\n\t * The `original_id`/`runtime_id` is stable across all versions of the\n\t * package and does not ever change.\n\t *\n\t * @generated from protobuf field: optional string original_id = 2;\n\t */\n\toriginalId?: string;\n\t/**\n\t * The version of this package\n\t *\n\t * @generated from protobuf field: optional uint64 version = 3;\n\t */\n\tversion?: bigint;\n\t/**\n\t * The modules defined by this package\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Module modules = 4;\n\t */\n\tmodules: Module[];\n\t/**\n\t * List of datatype origins for mapping datatypes to a package version where\n\t * it was first defined\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.TypeOrigin type_origins = 5;\n\t */\n\ttypeOrigins: TypeOrigin[];\n\t/**\n\t * The package's transitive dependencies as a mapping from the package's\n\t * runtime Id (the Id it is referred to by in other packages) to its\n\t * storage Id (the Id it is loaded from on chain).\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Linkage linkage = 6;\n\t */\n\tlinkage: Linkage[];\n}\n/**\n * A Move Module.\n *\n * @generated from protobuf message sui.rpc.v2.Module\n */\nexport interface Module {\n\t/**\n\t * Name of this module.\n\t *\n\t * @generated from protobuf field: optional string name = 1;\n\t */\n\tname?: string;\n\t/**\n\t * Serialized bytecode of the module.\n\t *\n\t * @generated from protobuf field: optional bytes contents = 2;\n\t */\n\tcontents?: Uint8Array;\n\t/**\n\t * List of DataTypes defined by this module.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.DatatypeDescriptor datatypes = 3;\n\t */\n\tdatatypes: DatatypeDescriptor[];\n\t/**\n\t * List of Functions defined by this module.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.FunctionDescriptor functions = 4;\n\t */\n\tfunctions: FunctionDescriptor[];\n}\n/**\n * Describes a Move Datatype.\n *\n * @generated from protobuf message sui.rpc.v2.DatatypeDescriptor\n */\nexport interface DatatypeDescriptor {\n\t/**\n\t * Fully qualified name of this Datatype.\n\t *\n\t * This is `<defining_id>::<module>::<name>`\n\t *\n\t * @generated from protobuf field: optional string type_name = 1;\n\t */\n\ttypeName?: string;\n\t/**\n\t * PackageId of the package where this Datatype is defined.\n\t *\n\t * A type's `defining_id` is the `storage_id` of the package version that first introduced or added that type.\n\t *\n\t * @generated from protobuf field: optional string defining_id = 2;\n\t */\n\tdefiningId?: string;\n\t/**\n\t * Name of the module where this Datatype is defined\n\t *\n\t * @generated from protobuf field: optional string module = 3;\n\t */\n\tmodule?: string;\n\t/**\n\t * Name of this Datatype\n\t *\n\t * @generated from protobuf field: optional string name = 4;\n\t */\n\tname?: string;\n\t/**\n\t * This type's abilities\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Ability abilities = 5;\n\t */\n\tabilities: Ability[];\n\t/**\n\t * Ability constraints and phantom status for this type's generic type parameters\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.TypeParameter type_parameters = 6;\n\t */\n\ttypeParameters: TypeParameter[];\n\t/**\n\t * Indicates whether this datatype is a 'STRUCT' or an 'ENUM'\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.DatatypeDescriptor.DatatypeKind kind = 7;\n\t */\n\tkind?: DatatypeDescriptor_DatatypeKind;\n\t/**\n\t * Set of fields if this Datatype is a struct.\n\t *\n\t * The order of the entries is the order of how the fields are defined.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.FieldDescriptor fields = 8;\n\t */\n\tfields: FieldDescriptor[];\n\t/**\n\t * Set of variants if this Datatype is an enum.\n\t *\n\t * The order of the entries is the order of how the variants are defined.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.VariantDescriptor variants = 9;\n\t */\n\tvariants: VariantDescriptor[];\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.DatatypeDescriptor.DatatypeKind\n */\nexport enum DatatypeDescriptor_DatatypeKind {\n\t/**\n\t * @generated from protobuf enum value: DATATYPE_KIND_UNKNOWN = 0;\n\t */\n\tDATATYPE_KIND_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: STRUCT = 1;\n\t */\n\tSTRUCT = 1,\n\t/**\n\t * @generated from protobuf enum value: ENUM = 2;\n\t */\n\tENUM = 2,\n}\n/**\n * A generic type parameter used in the declaration of a struct or enum.\n *\n * @generated from protobuf message sui.rpc.v2.TypeParameter\n */\nexport interface TypeParameter {\n\t/**\n\t * The type parameter constraints\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Ability constraints = 1;\n\t */\n\tconstraints: Ability[];\n\t/**\n\t * Whether the parameter is declared as phantom\n\t *\n\t * @generated from protobuf field: optional bool is_phantom = 2;\n\t */\n\tisPhantom?: boolean;\n}\n/**\n * Descriptor of a field that belongs to a struct or enum variant\n *\n * @generated from protobuf message sui.rpc.v2.FieldDescriptor\n */\nexport interface FieldDescriptor {\n\t/**\n\t * Name of the field\n\t *\n\t * @generated from protobuf field: optional string name = 1;\n\t */\n\tname?: string;\n\t/**\n\t * Order or position of the field in the struct or enum variant definition.\n\t *\n\t * @generated from protobuf field: optional uint32 position = 2;\n\t */\n\tposition?: number;\n\t/**\n\t * The type of the field\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.OpenSignatureBody type = 3;\n\t */\n\ttype?: OpenSignatureBody;\n}\n/**\n * Descriptor of an enum variant\n *\n * @generated from protobuf message sui.rpc.v2.VariantDescriptor\n */\nexport interface VariantDescriptor {\n\t/**\n\t * Name of the variant\n\t *\n\t * @generated from protobuf field: optional string name = 1;\n\t */\n\tname?: string;\n\t/**\n\t * Order or position of the variant in the enum definition.\n\t *\n\t * @generated from protobuf field: optional uint32 position = 2;\n\t */\n\tposition?: number;\n\t/**\n\t * Set of fields defined by this variant.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.FieldDescriptor fields = 3;\n\t */\n\tfields: FieldDescriptor[];\n}\n/**\n * Representation of a type signature that could appear as a field type for a struct or enum\n *\n * @generated from protobuf message sui.rpc.v2.OpenSignatureBody\n */\nexport interface OpenSignatureBody {\n\t/**\n\t * Type of this signature\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.OpenSignatureBody.Type type = 1;\n\t */\n\ttype?: OpenSignatureBody_Type;\n\t/**\n\t * Fully qualified name of the datatype when `type` is `DATATYPE`\n\t *\n\t * @generated from protobuf field: optional string type_name = 2;\n\t */\n\ttypeName?: string;\n\t/**\n\t * Set when `type` is `VECTOR` or `DATATYPE`\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.OpenSignatureBody type_parameter_instantiation = 3;\n\t */\n\ttypeParameterInstantiation: OpenSignatureBody[];\n\t/**\n\t * Position of the type parameter as defined in the containing data type descriptor when `type` is `TYPE_PARAMETER`\n\t *\n\t * @generated from protobuf field: optional uint32 type_parameter = 4;\n\t */\n\ttypeParameter?: number;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.OpenSignatureBody.Type\n */\nexport enum OpenSignatureBody_Type {\n\t/**\n\t * @generated from protobuf enum value: TYPE_UNKNOWN = 0;\n\t */\n\tTYPE_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: ADDRESS = 1;\n\t */\n\tADDRESS = 1,\n\t/**\n\t * @generated from protobuf enum value: BOOL = 2;\n\t */\n\tBOOL = 2,\n\t/**\n\t * @generated from protobuf enum value: U8 = 3;\n\t */\n\tU8 = 3,\n\t/**\n\t * @generated from protobuf enum value: U16 = 4;\n\t */\n\tU16 = 4,\n\t/**\n\t * @generated from protobuf enum value: U32 = 5;\n\t */\n\tU32 = 5,\n\t/**\n\t * @generated from protobuf enum value: U64 = 6;\n\t */\n\tU64 = 6,\n\t/**\n\t * @generated from protobuf enum value: U128 = 7;\n\t */\n\tU128 = 7,\n\t/**\n\t * @generated from protobuf enum value: U256 = 8;\n\t */\n\tU256 = 8,\n\t/**\n\t * @generated from protobuf enum value: VECTOR = 9;\n\t */\n\tVECTOR = 9,\n\t/**\n\t * @generated from protobuf enum value: DATATYPE = 10;\n\t */\n\tDATATYPE = 10,\n\t/**\n\t * @generated from protobuf enum value: TYPE_PARAMETER = 11;\n\t */\n\tTYPE_PARAMETER = 11,\n}\n/**\n * Descriptor of a Move function\n *\n * @generated from protobuf message sui.rpc.v2.FunctionDescriptor\n */\nexport interface FunctionDescriptor {\n\t/**\n\t * Name of the function\n\t *\n\t * @generated from protobuf field: optional string name = 1;\n\t */\n\tname?: string;\n\t/**\n\t * Whether the function is `public`, `private` or `public(friend)`\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.FunctionDescriptor.Visibility visibility = 5;\n\t */\n\tvisibility?: FunctionDescriptor_Visibility;\n\t/**\n\t * Whether the function is marked `entry` or not.\n\t *\n\t * @generated from protobuf field: optional bool is_entry = 6;\n\t */\n\tisEntry?: boolean;\n\t/**\n\t * Ability constraints for type parameters\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.TypeParameter type_parameters = 7;\n\t */\n\ttypeParameters: TypeParameter[];\n\t/**\n\t * Formal parameter types.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.OpenSignature parameters = 8;\n\t */\n\tparameters: OpenSignature[];\n\t/**\n\t * Return types.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.OpenSignature returns = 9;\n\t */\n\treturns: OpenSignature[];\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.FunctionDescriptor.Visibility\n */\nexport enum FunctionDescriptor_Visibility {\n\t/**\n\t * @generated from protobuf enum value: VISIBILITY_UNKNOWN = 0;\n\t */\n\tVISIBILITY_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: PRIVATE = 1;\n\t */\n\tPRIVATE = 1,\n\t/**\n\t * @generated from protobuf enum value: PUBLIC = 2;\n\t */\n\tPUBLIC = 2,\n\t/**\n\t * @generated from protobuf enum value: FRIEND = 3;\n\t */\n\tFRIEND = 3,\n}\n/**\n * Representation of a type signature that could appear as a function parameter or return value.\n *\n * @generated from protobuf message sui.rpc.v2.OpenSignature\n */\nexport interface OpenSignature {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.OpenSignature.Reference reference = 1;\n\t */\n\treference?: OpenSignature_Reference;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.OpenSignatureBody body = 2;\n\t */\n\tbody?: OpenSignatureBody;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.OpenSignature.Reference\n */\nexport enum OpenSignature_Reference {\n\t/**\n\t * @generated from protobuf enum value: REFERENCE_UNKNOWN = 0;\n\t */\n\tREFERENCE_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: IMMUTABLE = 1;\n\t */\n\tIMMUTABLE = 1,\n\t/**\n\t * @generated from protobuf enum value: MUTABLE = 2;\n\t */\n\tMUTABLE = 2,\n}\n/**\n * Identifies a struct and the module it was defined in.\n *\n * @generated from protobuf message sui.rpc.v2.TypeOrigin\n */\nexport interface TypeOrigin {\n\t/**\n\t * @generated from protobuf field: optional string module_name = 1;\n\t */\n\tmoduleName?: string;\n\t/**\n\t * @generated from protobuf field: optional string datatype_name = 2;\n\t */\n\tdatatypeName?: string;\n\t/**\n\t * @generated from protobuf field: optional string package_id = 3;\n\t */\n\tpackageId?: string;\n}\n/**\n * Upgraded package info for the linkage table.\n *\n * @generated from protobuf message sui.rpc.v2.Linkage\n */\nexport interface Linkage {\n\t/**\n\t * Id of the original package.\n\t *\n\t * @generated from protobuf field: optional string original_id = 1;\n\t */\n\toriginalId?: string;\n\t/**\n\t * Id of the upgraded package.\n\t *\n\t * @generated from protobuf field: optional string upgraded_id = 2;\n\t */\n\tupgradedId?: string;\n\t/**\n\t * Version of the upgraded package.\n\t *\n\t * @generated from protobuf field: optional uint64 upgraded_version = 3;\n\t */\n\tupgradedVersion?: bigint;\n}\n/**\n * An `Ability` classifies what operations are permitted for a given type\n *\n * @generated from protobuf enum sui.rpc.v2.Ability\n */\nexport enum Ability {\n\t/**\n\t * @generated from protobuf enum value: ABILITY_UNKNOWN = 0;\n\t */\n\tABILITY_UNKNOWN = 0,\n\t/**\n\t * Allows values of types with this ability to be copied\n\t *\n\t * @generated from protobuf enum value: COPY = 1;\n\t */\n\tCOPY = 1,\n\t/**\n\t * Allows values of types with this ability to be dropped.\n\t *\n\t * @generated from protobuf enum value: DROP = 2;\n\t */\n\tDROP = 2,\n\t/**\n\t * Allows values of types with this ability to exist inside a struct in global storage\n\t *\n\t * @generated from protobuf enum value: STORE = 3;\n\t */\n\tSTORE = 3,\n\t/**\n\t * Allows the type to serve as a key for global storage operations\n\t *\n\t * @generated from protobuf enum value: KEY = 4;\n\t */\n\tKEY = 4,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Package$Type extends MessageType<Package> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Package', [\n\t\t\t{ no: 1, name: 'storage_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'original_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'modules',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Module,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'type_origins',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => TypeOrigin,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'linkage',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Linkage,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Package\n */\nexport const Package = new Package$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Module$Type extends MessageType<Module> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Module', [\n\t\t\t{ no: 1, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'contents', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'datatypes',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => DatatypeDescriptor,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'functions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => FunctionDescriptor,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Module\n */\nexport const Module = new Module$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DatatypeDescriptor$Type extends MessageType<DatatypeDescriptor> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.DatatypeDescriptor', [\n\t\t\t{ no: 1, name: 'type_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'defining_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'module', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'abilities',\n\t\t\t\tkind: 'enum',\n\t\t\t\trepeat: 1 /*RepeatType.PACKED*/,\n\t\t\t\tT: () => ['sui.rpc.v2.Ability', Ability],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'type_parameters',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => TypeParameter,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.DatatypeDescriptor.DatatypeKind', DatatypeDescriptor_DatatypeKind],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'fields',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => FieldDescriptor,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 9,\n\t\t\t\tname: 'variants',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => VariantDescriptor,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.DatatypeDescriptor\n */\nexport const DatatypeDescriptor = new DatatypeDescriptor$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TypeParameter$Type extends MessageType<TypeParameter> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TypeParameter', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'constraints',\n\t\t\t\tkind: 'enum',\n\t\t\t\trepeat: 1 /*RepeatType.PACKED*/,\n\t\t\t\tT: () => ['sui.rpc.v2.Ability', Ability],\n\t\t\t},\n\t\t\t{ no: 2, name: 'is_phantom', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TypeParameter\n */\nexport const TypeParameter = new TypeParameter$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldDescriptor$Type extends MessageType<FieldDescriptor> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.FieldDescriptor', [\n\t\t\t{ no: 1, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'position', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'type', kind: 'message', T: () => OpenSignatureBody },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.FieldDescriptor\n */\nexport const FieldDescriptor = new FieldDescriptor$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass VariantDescriptor$Type extends MessageType<VariantDescriptor> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.VariantDescriptor', [\n\t\t\t{ no: 1, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'position', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'fields',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => FieldDescriptor,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.VariantDescriptor\n */\nexport const VariantDescriptor = new VariantDescriptor$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass OpenSignatureBody$Type extends MessageType<OpenSignatureBody> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.OpenSignatureBody', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'type',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.OpenSignatureBody.Type', OpenSignatureBody_Type],\n\t\t\t},\n\t\t\t{ no: 2, name: 'type_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'type_parameter_instantiation',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => OpenSignatureBody,\n\t\t\t},\n\t\t\t{ no: 4, name: 'type_parameter', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.OpenSignatureBody\n */\nexport const OpenSignatureBody = new OpenSignatureBody$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FunctionDescriptor$Type extends MessageType<FunctionDescriptor> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.FunctionDescriptor', [\n\t\t\t{ no: 1, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'visibility',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.FunctionDescriptor.Visibility', FunctionDescriptor_Visibility],\n\t\t\t},\n\t\t\t{ no: 6, name: 'is_entry', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'type_parameters',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => TypeParameter,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'parameters',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => OpenSignature,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 9,\n\t\t\t\tname: 'returns',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => OpenSignature,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.FunctionDescriptor\n */\nexport const FunctionDescriptor = new FunctionDescriptor$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass OpenSignature$Type extends MessageType<OpenSignature> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.OpenSignature', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'reference',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.OpenSignature.Reference', OpenSignature_Reference],\n\t\t\t},\n\t\t\t{ no: 2, name: 'body', kind: 'message', T: () => OpenSignatureBody },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.OpenSignature\n */\nexport const OpenSignature = new OpenSignature$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TypeOrigin$Type extends MessageType<TypeOrigin> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TypeOrigin', [\n\t\t\t{ no: 1, name: 'module_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'datatype_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TypeOrigin\n */\nexport const TypeOrigin = new TypeOrigin$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Linkage$Type extends MessageType<Linkage> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Linkage', [\n\t\t\t{ no: 1, name: 'original_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'upgraded_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'upgraded_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Linkage\n */\nexport const Linkage = new Linkage$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/owner.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * Enum of different types of ownership for an object.\n *\n * @generated from protobuf message sui.rpc.v2.Owner\n */\nexport interface Owner {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Owner.OwnerKind kind = 1;\n\t */\n\tkind?: Owner_OwnerKind;\n\t/**\n\t * Address or ObjectId of the owner\n\t *\n\t * @generated from protobuf field: optional string address = 2;\n\t */\n\taddress?: string;\n\t/**\n\t * The `initial_shared_version` if kind is `SHARED` or `start_version` if kind `CONSENSUS_ADDRESS`.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 3;\n\t */\n\tversion?: bigint;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.Owner.OwnerKind\n */\nexport enum Owner_OwnerKind {\n\t/**\n\t * @generated from protobuf enum value: OWNER_KIND_UNKNOWN = 0;\n\t */\n\tOWNER_KIND_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: ADDRESS = 1;\n\t */\n\tADDRESS = 1,\n\t/**\n\t * @generated from protobuf enum value: OBJECT = 2;\n\t */\n\tOBJECT = 2,\n\t/**\n\t * @generated from protobuf enum value: SHARED = 3;\n\t */\n\tSHARED = 3,\n\t/**\n\t * @generated from protobuf enum value: IMMUTABLE = 4;\n\t */\n\tIMMUTABLE = 4,\n\t/**\n\t * @generated from protobuf enum value: CONSENSUS_ADDRESS = 5;\n\t */\n\tCONSENSUS_ADDRESS = 5,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Owner$Type extends MessageType<Owner> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Owner', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.Owner.OwnerKind', Owner_OwnerKind],\n\t\t\t},\n\t\t\t{ no: 2, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Owner\n */\nexport const Owner = new Owner$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/argument.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * An argument to a programmable transaction command.\n *\n * @generated from protobuf message sui.rpc.v2.Argument\n */\nexport interface Argument {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Argument.ArgumentKind kind = 1;\n\t */\n\tkind?: Argument_ArgumentKind;\n\t/**\n\t * Index of an input when `kind` is `INPUT`.\n\t *\n\t * @generated from protobuf field: optional uint32 input = 2;\n\t */\n\tinput?: number;\n\t/**\n\t * Index of a result when `kind` is `RESULT`.\n\t *\n\t * @generated from protobuf field: optional uint32 result = 3;\n\t */\n\tresult?: number;\n\t/**\n\t * Used to access a nested result when `kind` is `RESULT`.\n\t *\n\t * @generated from protobuf field: optional uint32 subresult = 4;\n\t */\n\tsubresult?: number;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.Argument.ArgumentKind\n */\nexport enum Argument_ArgumentKind {\n\t/**\n\t * @generated from protobuf enum value: ARGUMENT_KIND_UNKNOWN = 0;\n\t */\n\tARGUMENT_KIND_UNKNOWN = 0,\n\t/**\n\t * The gas coin.\n\t *\n\t * @generated from protobuf enum value: GAS = 1;\n\t */\n\tGAS = 1,\n\t/**\n\t * One of the input objects or primitive values (from\n\t * `ProgrammableTransaction` inputs).\n\t *\n\t * @generated from protobuf enum value: INPUT = 2;\n\t */\n\tINPUT = 2,\n\t/**\n\t * The result of another command (from `ProgrammableTransaction` commands).\n\t *\n\t * @generated from protobuf enum value: RESULT = 3;\n\t */\n\tRESULT = 3,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Argument$Type extends MessageType<Argument> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Argument', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.Argument.ArgumentKind', Argument_ArgumentKind],\n\t\t\t},\n\t\t\t{ no: 2, name: 'input', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'result', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 4, name: 'subresult', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Argument\n */\nexport const Argument = new Argument$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/input.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Value } from '../../../google/protobuf/struct.js';\n/**\n * An input to a user transaction.\n *\n * @generated from protobuf message sui.rpc.v2.Input\n */\nexport interface Input {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Input.InputKind kind = 1;\n\t */\n\tkind?: Input_InputKind;\n\t/**\n\t * A move value serialized as BCS.\n\t *\n\t * For normal operations this is required to be a move primitive type and not contain structs\n\t * or objects.\n\t *\n\t * @generated from protobuf field: optional bytes pure = 2;\n\t */\n\tpure?: Uint8Array;\n\t/**\n\t * `ObjectId` of the object input.\n\t *\n\t * @generated from protobuf field: optional string object_id = 3;\n\t */\n\tobjectId?: string;\n\t/**\n\t * Requested version of the input object when `kind` is `IMMUTABLE_OR_OWNED`\n\t * or `RECEIVING` or if `kind` is `SHARED` this is the initial version of the\n\t * object when it was shared\n\t *\n\t * @generated from protobuf field: optional uint64 version = 4;\n\t */\n\tversion?: bigint;\n\t/**\n\t * The digest of this object.\n\t *\n\t * @generated from protobuf field: optional string digest = 5;\n\t */\n\tdigest?: string;\n\t/**\n\t * Controls whether the caller asks for a mutable reference to the shared\n\t * object.\n\t *\n\t * @generated from protobuf field: optional bool mutable = 6;\n\t */\n\tmutable?: boolean;\n\t/**\n\t * NOTE: For backwards compatibility purposes the addition of the new\n\t * `NON_EXCLUSIVE_WRITE` mutability variant requires providing a new field.\n\t * The old `mutable` field will continue to be populated and respected as an\n\t * input for the time being.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Input.Mutability mutability = 7;\n\t */\n\tmutability?: Input_Mutability;\n\t/**\n\t * Fund Reservation information if `kind` is `FUNDS_WITHDRAWAL`.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.FundsWithdrawal funds_withdrawal = 8;\n\t */\n\tfundsWithdrawal?: FundsWithdrawal;\n\t/**\n\t * A literal value\n\t *\n\t * INPUT ONLY\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Value literal = 1000;\n\t */\n\tliteral?: Value;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.Input.InputKind\n */\nexport enum Input_InputKind {\n\t/**\n\t * @generated from protobuf enum value: INPUT_KIND_UNKNOWN = 0;\n\t */\n\tINPUT_KIND_UNKNOWN = 0,\n\t/**\n\t * A move value serialized as BCS.\n\t *\n\t * @generated from protobuf enum value: PURE = 1;\n\t */\n\tPURE = 1,\n\t/**\n\t * A Move object that is either immutable or address owned.\n\t *\n\t * @generated from protobuf enum value: IMMUTABLE_OR_OWNED = 2;\n\t */\n\tIMMUTABLE_OR_OWNED = 2,\n\t/**\n\t * A Move object whose owner is \"Shared\".\n\t *\n\t * @generated from protobuf enum value: SHARED = 3;\n\t */\n\tSHARED = 3,\n\t/**\n\t * A Move object that is attempted to be received in this transaction.\n\t *\n\t * @generated from protobuf enum value: RECEIVING = 4;\n\t */\n\tRECEIVING = 4,\n\t/**\n\t * Reservation to withdraw balance from a funds accumulator\n\t *\n\t * @generated from protobuf enum value: FUNDS_WITHDRAWAL = 5;\n\t */\n\tFUNDS_WITHDRAWAL = 5,\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.Input.Mutability\n */\nexport enum Input_Mutability {\n\t/**\n\t * @generated from protobuf enum value: MUTABILITY_UNKNOWN = 0;\n\t */\n\tMUTABILITY_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: IMMUTABLE = 1;\n\t */\n\tIMMUTABLE = 1,\n\t/**\n\t * @generated from protobuf enum value: MUTABLE = 2;\n\t */\n\tMUTABLE = 2,\n\t/**\n\t * Non-exclusive write is used to allow multiple transactions to\n\t * simultaneously add disjoint dynamic fields to an object.\n\t * (Currently only used by settlement transactions).\n\t *\n\t * @generated from protobuf enum value: NON_EXCLUSIVE_WRITE = 3;\n\t */\n\tNON_EXCLUSIVE_WRITE = 3,\n}\n/**\n * @generated from protobuf message sui.rpc.v2.FundsWithdrawal\n */\nexport interface FundsWithdrawal {\n\t/**\n\t * @generated from protobuf field: optional uint64 amount = 1;\n\t */\n\tamount?: bigint;\n\t/**\n\t * @generated from protobuf field: optional string coin_type = 2;\n\t */\n\tcoinType?: string;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.FundsWithdrawal.Source source = 3;\n\t */\n\tsource?: FundsWithdrawal_Source;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.FundsWithdrawal.Source\n */\nexport enum FundsWithdrawal_Source {\n\t/**\n\t * @generated from protobuf enum value: SOURCE_UNKNOWN = 0;\n\t */\n\tSOURCE_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: SENDER = 1;\n\t */\n\tSENDER = 1,\n\t/**\n\t * @generated from protobuf enum value: SPONSOR = 2;\n\t */\n\tSPONSOR = 2,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Input$Type extends MessageType<Input> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Input', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.Input.InputKind', Input_InputKind],\n\t\t\t},\n\t\t\t{ no: 2, name: 'pure', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 3, name: 'object_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 5, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 6, name: 'mutable', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'mutability',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.Input.Mutability', Input_Mutability],\n\t\t\t},\n\t\t\t{ no: 8, name: 'funds_withdrawal', kind: 'message', T: () => FundsWithdrawal },\n\t\t\t{ no: 1000, name: 'literal', kind: 'message', T: () => Value },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Input\n */\nexport const Input = new Input$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FundsWithdrawal$Type extends MessageType<FundsWithdrawal> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.FundsWithdrawal', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'amount',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'coin_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'source',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.FundsWithdrawal.Source', FundsWithdrawal_Source],\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.FundsWithdrawal\n */\nexport const FundsWithdrawal = new FundsWithdrawal$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"google/protobuf/duration.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport { typeofJsonValue } from '@protobuf-ts/runtime';\nimport type { JsonValue } from '@protobuf-ts/runtime';\nimport type { JsonReadOptions } from '@protobuf-ts/runtime';\nimport type { JsonWriteOptions } from '@protobuf-ts/runtime';\nimport { PbLong } from '@protobuf-ts/runtime';\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * A Duration represents a signed, fixed-length span of time represented\n * as a count of seconds and fractions of seconds at nanosecond\n * resolution. It is independent of any calendar and concepts like \"day\"\n * or \"month\". It is related to Timestamp in that the difference between\n * two Timestamp values is a Duration and it can be added or subtracted\n * from a Timestamp. Range is approximately +-10,000 years.\n *\n * # Examples\n *\n * Example 1: Compute Duration from two Timestamps in pseudo code.\n *\n * Timestamp start = ...;\n * Timestamp end = ...;\n * Duration duration = ...;\n *\n * duration.seconds = end.seconds - start.seconds;\n * duration.nanos = end.nanos - start.nanos;\n *\n * if (duration.seconds < 0 && duration.nanos > 0) {\n * duration.seconds += 1;\n * duration.nanos -= 1000000000;\n * } else if (duration.seconds > 0 && duration.nanos < 0) {\n * duration.seconds -= 1;\n * duration.nanos += 1000000000;\n * }\n *\n * Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n *\n * Timestamp start = ...;\n * Duration duration = ...;\n * Timestamp end = ...;\n *\n * end.seconds = start.seconds + duration.seconds;\n * end.nanos = start.nanos + duration.nanos;\n *\n * if (end.nanos < 0) {\n * end.seconds -= 1;\n * end.nanos += 1000000000;\n * } else if (end.nanos >= 1000000000) {\n * end.seconds += 1;\n * end.nanos -= 1000000000;\n * }\n *\n * Example 3: Compute Duration from datetime.timedelta in Python.\n *\n * td = datetime.timedelta(days=3, minutes=10)\n * duration = Duration()\n * duration.FromTimedelta(td)\n *\n * # JSON Mapping\n *\n * In JSON format, the Duration type is encoded as a string rather than an\n * object, where the string ends in the suffix \"s\" (indicating seconds) and\n * is preceded by the number of seconds, with nanoseconds expressed as\n * fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n * encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n * be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n * microsecond should be expressed in JSON format as \"3.000001s\".\n *\n *\n * @generated from protobuf message google.protobuf.Duration\n */\nexport interface Duration {\n\t/**\n\t * Signed seconds of the span of time. Must be from -315,576,000,000\n\t * to +315,576,000,000 inclusive. Note: these bounds are computed from:\n\t * 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n\t *\n\t * @generated from protobuf field: int64 seconds = 1;\n\t */\n\tseconds: bigint;\n\t/**\n\t * Signed fractions of a second at nanosecond resolution of the span\n\t * of time. Durations less than one second are represented with a 0\n\t * `seconds` field and a positive or negative `nanos` field. For durations\n\t * of one second or more, a non-zero value for the `nanos` field must be\n\t * of the same sign as the `seconds` field. Must be from -999,999,999\n\t * to +999,999,999 inclusive.\n\t *\n\t * @generated from protobuf field: int32 nanos = 2;\n\t */\n\tnanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Duration$Type extends MessageType<Duration> {\n\tconstructor() {\n\t\tsuper('google.protobuf.Duration', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'seconds',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 3 /*ScalarType.INT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'nanos', kind: 'scalar', T: 5 /*ScalarType.INT32*/ },\n\t\t]);\n\t}\n\t/**\n\t * Encode `Duration` to JSON string like \"3.000001s\".\n\t */\n\tinternalJsonWrite(message: Duration, options: JsonWriteOptions): JsonValue {\n\t\tlet s = PbLong.from(message.seconds).toNumber();\n\t\tif (s > 315576000000 || s < -315576000000) throw new Error('Duration value out of range.');\n\t\tlet text = message.seconds.toString();\n\t\tif (s === 0 && message.nanos < 0) text = '-' + text;\n\t\tif (message.nanos !== 0) {\n\t\t\tlet nanosStr = Math.abs(message.nanos).toString();\n\t\t\tnanosStr = '0'.repeat(9 - nanosStr.length) + nanosStr;\n\t\t\tif (nanosStr.substring(3) === '000000') nanosStr = nanosStr.substring(0, 3);\n\t\t\telse if (nanosStr.substring(6) === '000') nanosStr = nanosStr.substring(0, 6);\n\t\t\ttext += '.' + nanosStr;\n\t\t}\n\t\treturn text + 's';\n\t}\n\t/**\n\t * Decode `Duration` from JSON string like \"3.000001s\"\n\t */\n\tinternalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Duration): Duration {\n\t\tif (typeof json !== 'string')\n\t\t\tthrow new Error(\n\t\t\t\t'Unable to parse Duration from JSON ' + typeofJsonValue(json) + '. Expected string.',\n\t\t\t);\n\t\tlet match = json.match(/^(-?)([0-9]+)(?:\\.([0-9]+))?s/);\n\t\tif (match === null)\n\t\t\tthrow new Error('Unable to parse Duration from JSON string. Invalid format.');\n\t\tif (!target) target = this.create();\n\t\tlet [, sign, secs, nanos] = match;\n\t\tlet longSeconds = PbLong.from(sign + secs);\n\t\tif (longSeconds.toNumber() > 315576000000 || longSeconds.toNumber() < -315576000000)\n\t\t\tthrow new Error('Unable to parse Duration from JSON string. Value out of range.');\n\t\ttarget.seconds = longSeconds.toBigInt();\n\t\tif (typeof nanos == 'string') {\n\t\t\tlet nanosStr = sign + nanos + '0'.repeat(9 - nanos.length);\n\t\t\ttarget.nanos = parseInt(nanosStr);\n\t\t}\n\t\treturn target;\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Duration\n */\nexport const Duration = new Duration$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/jwk.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * Key to uniquely identify a JWK.\n *\n * @generated from protobuf message sui.rpc.v2.JwkId\n */\nexport interface JwkId {\n\t/**\n\t * The issuer or identity of the OIDC provider.\n\t *\n\t * @generated from protobuf field: optional string iss = 1;\n\t */\n\tiss?: string;\n\t/**\n\t * A key ID used to uniquely identify a key from an OIDC provider.\n\t *\n\t * @generated from protobuf field: optional string kid = 2;\n\t */\n\tkid?: string;\n}\n/**\n * A JSON web key.\n *\n * Struct that contains info for a JWK. A list of them for different kinds can\n * be retrieved from the JWK endpoint (for example, <https://www.googleapis.com/oauth2/v3/certs>).\n * The JWK is used to verify the JWT token.\n *\n * @generated from protobuf message sui.rpc.v2.Jwk\n */\nexport interface Jwk {\n\t/**\n\t * Key type parameter, https://datatracker.ietf.org/doc/html/rfc7517#section-4.1.\n\t *\n\t * @generated from protobuf field: optional string kty = 1;\n\t */\n\tkty?: string;\n\t/**\n\t * RSA public exponent, https://datatracker.ietf.org/doc/html/rfc7517#section-9.3.\n\t *\n\t * @generated from protobuf field: optional string e = 2;\n\t */\n\te?: string;\n\t/**\n\t * RSA modulus, https://datatracker.ietf.org/doc/html/rfc7517#section-9.3.\n\t *\n\t * @generated from protobuf field: optional string n = 3;\n\t */\n\tn?: string;\n\t/**\n\t * Algorithm parameter, https://datatracker.ietf.org/doc/html/rfc7517#section-4.4.\n\t *\n\t * @generated from protobuf field: optional string alg = 4;\n\t */\n\talg?: string;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass JwkId$Type extends MessageType<JwkId> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.JwkId', [\n\t\t\t{ no: 1, name: 'iss', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'kid', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.JwkId\n */\nexport const JwkId = new JwkId$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Jwk$Type extends MessageType<Jwk> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Jwk', [\n\t\t\t{ no: 1, name: 'kty', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'e', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'n', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'alg', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Jwk\n */\nexport const Jwk = new Jwk$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/bcs.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * `Bcs` contains an arbitrary type that is serialized using the\n * [BCS](https://mystenlabs.github.io/sui-rust-sdk/sui_sdk_types/index.html#bcs)\n * format as well as a name that identifies the type of the serialized value.\n *\n * @generated from protobuf message sui.rpc.v2.Bcs\n */\nexport interface Bcs {\n\t/**\n\t * Name that identifies the type of the serialized value.\n\t *\n\t * @generated from protobuf field: optional string name = 1;\n\t */\n\tname?: string;\n\t/**\n\t * Bytes of a BCS serialized value.\n\t *\n\t * @generated from protobuf field: optional bytes value = 2;\n\t */\n\tvalue?: Uint8Array;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Bcs$Type extends MessageType<Bcs> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Bcs', [\n\t\t\t{ no: 1, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'value', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Bcs\n */\nexport const Bcs = new Bcs$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/object.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Value } from '../../../google/protobuf/struct.js';\nimport { Package } from './move_package.js';\nimport { Owner } from './owner.js';\nimport { Bcs } from './bcs.js';\n/**\n * An object on the Sui blockchain.\n *\n * @generated from protobuf message sui.rpc.v2.Object\n */\nexport interface Object {\n\t/**\n\t * This Object serialized as BCS.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;\n\t */\n\tbcs?: Bcs;\n\t/**\n\t * `ObjectId` for this object.\n\t *\n\t * @generated from protobuf field: optional string object_id = 2;\n\t */\n\tobjectId?: string;\n\t/**\n\t * Version of the object.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 3;\n\t */\n\tversion?: bigint;\n\t/**\n\t * The digest of this Object.\n\t *\n\t * @generated from protobuf field: optional string digest = 4;\n\t */\n\tdigest?: string;\n\t/**\n\t * Owner of the object.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Owner owner = 5;\n\t */\n\towner?: Owner;\n\t/**\n\t * The type of this object.\n\t *\n\t * This will be 'package' for packages and a StructTag for move structs.\n\t *\n\t * @generated from protobuf field: optional string object_type = 6;\n\t */\n\tobjectType?: string;\n\t/**\n\t * DEPRECATED this field is no longer used to determine whether a tx can transfer this\n\t * object. Instead, it is always calculated from the objects type when loaded in execution.\n\t *\n\t * Only set for Move structs\n\t *\n\t * @generated from protobuf field: optional bool has_public_transfer = 7;\n\t */\n\thasPublicTransfer?: boolean;\n\t/**\n\t * BCS bytes of a Move struct value.\n\t *\n\t * Only set for Move structs\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs contents = 8;\n\t */\n\tcontents?: Bcs;\n\t/**\n\t * Package information for Move Packages\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Package package = 9;\n\t */\n\tpackage?: Package;\n\t/**\n\t * The digest of the transaction that created or last mutated this object\n\t *\n\t * @generated from protobuf field: optional string previous_transaction = 10;\n\t */\n\tpreviousTransaction?: string;\n\t/**\n\t * The amount of SUI to rebate if this object gets deleted.\n\t * This number is re-calculated each time the object is mutated based on\n\t * the present storage gas price.\n\t *\n\t * @generated from protobuf field: optional uint64 storage_rebate = 11;\n\t */\n\tstorageRebate?: bigint;\n\t/**\n\t * JSON rendering of the object.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Value json = 100;\n\t */\n\tjson?: Value;\n\t/**\n\t * Current balance if this object is a `0x2::coin::Coin<T>`\n\t *\n\t * @generated from protobuf field: optional uint64 balance = 101;\n\t */\n\tbalance?: bigint;\n\t/**\n\t * JSON rendering of the object based on an on-chain template.\n\t * This will not be set if the value's type does not have an associated `Display` template.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Display display = 102;\n\t */\n\tdisplay?: Display;\n}\n/**\n * Set of Objects\n *\n * @generated from protobuf message sui.rpc.v2.ObjectSet\n */\nexport interface ObjectSet {\n\t/**\n\t * Objects are sorted by the key `(object_id, version)`.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Object objects = 1;\n\t */\n\tobjects: Object[];\n}\n/**\n * A rendered JSON blob based on an on-chain template.\n *\n * @generated from protobuf message sui.rpc.v2.Display\n */\nexport interface Display {\n\t/**\n\t * Output for all successfully substituted display fields. Unsuccessful\n\t * fields will be `null`, and will be accompanied by a field in `errors`,\n\t * explaining the error.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Value output = 1;\n\t */\n\toutput?: Value;\n\t/**\n\t * If any fields failed to render, this will contain a mapping from failed\n\t * field names to error messages. If all fields succeed, this will either be\n\t * `null` or not set.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Value errors = 2;\n\t */\n\terrors?: Value;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Object$Type extends MessageType<Object> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Object', [\n\t\t\t{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 2, name: 'object_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 4, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'owner', kind: 'message', T: () => Owner },\n\t\t\t{ no: 6, name: 'object_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 7, name: 'has_public_transfer', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{ no: 8, name: 'contents', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 9, name: 'package', kind: 'message', T: () => Package },\n\t\t\t{\n\t\t\t\tno: 10,\n\t\t\t\tname: 'previous_transaction',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 11,\n\t\t\t\tname: 'storage_rebate',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 100, name: 'json', kind: 'message', T: () => Value },\n\t\t\t{\n\t\t\t\tno: 101,\n\t\t\t\tname: 'balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 102, name: 'display', kind: 'message', T: () => Display },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Object\n */\nexport const Object = new Object$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObjectSet$Type extends MessageType<ObjectSet> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ObjectSet', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Object,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ObjectSet\n */\nexport const ObjectSet = new ObjectSet$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Display$Type extends MessageType<Display> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Display', [\n\t\t\t{ no: 1, name: 'output', kind: 'message', T: () => Value },\n\t\t\t{ no: 2, name: 'errors', kind: 'message', T: () => Value },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Display\n */\nexport const Display = new Display$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"google/protobuf/timestamp.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport { typeofJsonValue } from '@protobuf-ts/runtime';\nimport type { JsonValue } from '@protobuf-ts/runtime';\nimport type { JsonReadOptions } from '@protobuf-ts/runtime';\nimport type { JsonWriteOptions } from '@protobuf-ts/runtime';\nimport { PbLong } from '@protobuf-ts/runtime';\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * A Timestamp represents a point in time independent of any time zone\n * or calendar, represented as seconds and fractions of seconds at\n * nanosecond resolution in UTC Epoch time. It is encoded using the\n * Proleptic Gregorian Calendar which extends the Gregorian calendar\n * backwards to year one. It is encoded assuming all minutes are 60\n * seconds long, i.e. leap seconds are \"smeared\" so that no leap second\n * table is needed for interpretation. Range is from\n * `0001-01-01T00:00:00Z` to `9999-12-31T23:59:59.999999999Z`.\n * Restricting to that range ensures that conversion to\n * and from RFC 3339 date strings is possible.\n * See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt).\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * ```\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n * ```\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * ```\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n * ```\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * ```\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); //\n * ```\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * ```\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * ```\n *\n * Example 5: Compute Timestamp from current time in Python.\n *\n * ```\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n * ```\n *\n * # JSON Mapping\n *\n * In JSON format, the `Timestamp` type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is `{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z`\n * where `{year}` is always expressed using four digits while `{month}`, `{day}`,\n * `{hour}`, `{min}`, and `{sec}` are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (so up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required, though only UTC (as indicated by \"Z\") is presently supported.\n *\n * For example, `2017-01-15T01:30:15.01Z` encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, you can convert a `Date` object to this format using the\n * standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, you can convert a standard `datetime.datetime` object\n * to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)\n * with the time format spec `%Y-%m-%dT%H:%M:%S.%fZ`. Likewise, in Java, you\n * can use the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--)\n * to obtain a formatter capable of generating timestamps in this format.\n *\n *\n *\n * @generated from protobuf message google.protobuf.Timestamp\n */\nexport interface Timestamp {\n\t/**\n\t * Represents seconds of UTC time since Unix epoch\n\t * `1970-01-01T00:00:00Z`. Must be from `0001-01-01T00:00:00Z` to\n\t * `9999-12-31T23:59:59Z` inclusive.\n\t *\n\t * @generated from protobuf field: int64 seconds = 1;\n\t */\n\tseconds: bigint;\n\t/**\n\t * Non-negative fractions of a second at nanosecond resolution. Negative\n\t * second values with fractions must still have non-negative nano values\n\t * that count forward in time. Must be from 0 to 999,999,999\n\t * inclusive.\n\t *\n\t * @generated from protobuf field: int32 nanos = 2;\n\t */\n\tnanos: number;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Timestamp$Type extends MessageType<Timestamp> {\n\tconstructor() {\n\t\tsuper('google.protobuf.Timestamp', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'seconds',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 3 /*ScalarType.INT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'nanos', kind: 'scalar', T: 5 /*ScalarType.INT32*/ },\n\t\t]);\n\t}\n\t/**\n\t * Creates a new `Timestamp` for the current time.\n\t */\n\tnow(): Timestamp {\n\t\tconst msg = this.create();\n\t\tconst ms = Date.now();\n\t\tmsg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n\t\tmsg.nanos = (ms % 1000) * 1000000;\n\t\treturn msg;\n\t}\n\t/**\n\t * Converts a `Timestamp` to a JavaScript Date.\n\t */\n\ttoDate(message: Timestamp): Date {\n\t\treturn new Date(\n\t\t\tPbLong.from(message.seconds).toNumber() * 1000 + Math.ceil(message.nanos / 1000000),\n\t\t);\n\t}\n\t/**\n\t * Converts a JavaScript Date to a `Timestamp`.\n\t */\n\tfromDate(date: Date): Timestamp {\n\t\tconst msg = this.create();\n\t\tconst ms = date.getTime();\n\t\tmsg.seconds = PbLong.from(Math.floor(ms / 1000)).toBigInt();\n\t\tmsg.nanos = ((ms % 1000) + (ms < 0 && ms % 1000 !== 0 ? 1000 : 0)) * 1000000;\n\t\treturn msg;\n\t}\n\t/**\n\t * In JSON format, the `Timestamp` type is encoded as a string\n\t * in the RFC 3339 format.\n\t */\n\tinternalJsonWrite(message: Timestamp, options: JsonWriteOptions): JsonValue {\n\t\tlet ms = PbLong.from(message.seconds).toNumber() * 1000;\n\t\tif (ms < Date.parse('0001-01-01T00:00:00Z') || ms > Date.parse('9999-12-31T23:59:59Z'))\n\t\t\tthrow new Error(\n\t\t\t\t'Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.',\n\t\t\t);\n\t\tif (message.nanos < 0)\n\t\t\tthrow new Error('Unable to encode invalid Timestamp to JSON. Nanos must not be negative.');\n\t\tlet z = 'Z';\n\t\tif (message.nanos > 0) {\n\t\t\tlet nanosStr = (message.nanos + 1000000000).toString().substring(1);\n\t\t\tif (nanosStr.substring(3) === '000000') z = '.' + nanosStr.substring(0, 3) + 'Z';\n\t\t\telse if (nanosStr.substring(6) === '000') z = '.' + nanosStr.substring(0, 6) + 'Z';\n\t\t\telse z = '.' + nanosStr + 'Z';\n\t\t}\n\t\treturn new Date(ms).toISOString().replace('.000Z', z);\n\t}\n\t/**\n\t * In JSON format, the `Timestamp` type is encoded as a string\n\t * in the RFC 3339 format.\n\t */\n\tinternalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Timestamp): Timestamp {\n\t\tif (typeof json !== 'string')\n\t\t\tthrow new Error('Unable to parse Timestamp from JSON ' + typeofJsonValue(json) + '.');\n\t\tlet matches = json.match(\n\t\t\t/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/,\n\t\t);\n\t\tif (!matches) throw new Error('Unable to parse Timestamp from JSON. Invalid format.');\n\t\tlet ms = Date.parse(\n\t\t\tmatches[1] +\n\t\t\t\t'-' +\n\t\t\t\tmatches[2] +\n\t\t\t\t'-' +\n\t\t\t\tmatches[3] +\n\t\t\t\t'T' +\n\t\t\t\tmatches[4] +\n\t\t\t\t':' +\n\t\t\t\tmatches[5] +\n\t\t\t\t':' +\n\t\t\t\tmatches[6] +\n\t\t\t\t(matches[8] ? matches[8] : 'Z'),\n\t\t);\n\t\tif (Number.isNaN(ms)) throw new Error('Unable to parse Timestamp from JSON. Invalid value.');\n\t\tif (ms < Date.parse('0001-01-01T00:00:00Z') || ms > Date.parse('9999-12-31T23:59:59Z'))\n\t\t\tthrow new globalThis.Error(\n\t\t\t\t'Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.',\n\t\t\t);\n\t\tif (!target) target = this.create();\n\t\ttarget.seconds = PbLong.from(ms / 1000).toBigInt();\n\t\ttarget.nanos = 0;\n\t\tif (matches[7])\n\t\t\ttarget.nanos = parseInt('1' + matches[7] + '0'.repeat(9 - matches[7].length)) - 1000000000;\n\t\treturn target;\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Timestamp\n */\nexport const Timestamp = new Timestamp$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/object_reference.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * Reference to an object.\n *\n * @generated from protobuf message sui.rpc.v2.ObjectReference\n */\nexport interface ObjectReference {\n\t/**\n\t * The object id of this object.\n\t *\n\t * @generated from protobuf field: optional string object_id = 1;\n\t */\n\tobjectId?: string;\n\t/**\n\t * The version of this object.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 2;\n\t */\n\tversion?: bigint;\n\t/**\n\t * The digest of this object.\n\t *\n\t * @generated from protobuf field: optional string digest = 3;\n\t */\n\tdigest?: string;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ObjectReference$Type extends MessageType<ObjectReference> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ObjectReference', [\n\t\t\t{ no: 1, name: 'object_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ObjectReference\n */\nexport const ObjectReference = new ObjectReference$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/transaction.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Duration } from '../../../google/protobuf/duration.js';\nimport { Jwk } from './jwk.js';\nimport { JwkId } from './jwk.js';\nimport { Object } from './object.js';\nimport { Argument } from './argument.js';\nimport { Input } from './input.js';\nimport { Timestamp } from '../../../google/protobuf/timestamp.js';\nimport { ObjectReference } from './object_reference.js';\nimport { Bcs } from './bcs.js';\n/**\n * A transaction.\n *\n * @generated from protobuf message sui.rpc.v2.Transaction\n */\nexport interface Transaction {\n\t/**\n\t * This Transaction serialized as BCS.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;\n\t */\n\tbcs?: Bcs;\n\t/**\n\t * The digest of this Transaction.\n\t *\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n\t/**\n\t * Version of this Transaction.\n\t *\n\t * @generated from protobuf field: optional int32 version = 3;\n\t */\n\tversion?: number;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.TransactionKind kind = 4;\n\t */\n\tkind?: TransactionKind;\n\t/**\n\t * @generated from protobuf field: optional string sender = 5;\n\t */\n\tsender?: string;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.GasPayment gas_payment = 6;\n\t */\n\tgasPayment?: GasPayment;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.TransactionExpiration expiration = 7;\n\t */\n\texpiration?: TransactionExpiration;\n}\n/**\n * Payment information for executing a transaction.\n *\n * @generated from protobuf message sui.rpc.v2.GasPayment\n */\nexport interface GasPayment {\n\t/**\n\t * Set of gas objects to use for payment.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ObjectReference objects = 1;\n\t */\n\tobjects: ObjectReference[];\n\t/**\n\t * Owner of the gas objects, either the transaction sender or a sponsor.\n\t *\n\t * @generated from protobuf field: optional string owner = 2;\n\t */\n\towner?: string;\n\t/**\n\t * Gas unit price to use when charging for computation.\n\t *\n\t * Must be greater than or equal to the network's current RGP (reference gas price).\n\t *\n\t * @generated from protobuf field: optional uint64 price = 3;\n\t */\n\tprice?: bigint;\n\t/**\n\t * Total budget willing to spend for the execution of a transaction.\n\t *\n\t * @generated from protobuf field: optional uint64 budget = 4;\n\t */\n\tbudget?: bigint;\n}\n/**\n * A TTL for a transaction.\n *\n * @generated from protobuf message sui.rpc.v2.TransactionExpiration\n */\nexport interface TransactionExpiration {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.TransactionExpiration.TransactionExpirationKind kind = 1;\n\t */\n\tkind?: TransactionExpiration_TransactionExpirationKind;\n\t/**\n\t * Maximum epoch in which a transaction can be executed. The provided maximal epoch\n\t * must be greater than or equal to the current epoch for a transaction to execute.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 2;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * Minimal epoch in which a transaction can be executed. The provided minimal epoch\n\t * must be less than or equal to the current epoch for a transaction to execute.\n\t *\n\t * @generated from protobuf field: optional uint64 min_epoch = 3;\n\t */\n\tminEpoch?: bigint;\n\t/**\n\t * Minimal UNIX timestamp in which a transaction can be executed. The\n\t * provided minimal timestamp must be less than or equal to the current\n\t * clock.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp min_timestamp = 4;\n\t */\n\tminTimestamp?: Timestamp;\n\t/**\n\t * Maximum UNIX timestamp in which a transaction can be executed. The\n\t * provided maximal timestamp must be greater than or equal to the current\n\t * clock.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp max_timestamp = 5;\n\t */\n\tmaxTimestamp?: Timestamp;\n\t/**\n\t * ChainId of the network this transaction is intended for in order to prevent cross-chain replay\n\t *\n\t * @generated from protobuf field: optional string chain = 6;\n\t */\n\tchain?: string;\n\t/**\n\t * User-provided uniqueness identifier to differentiate otherwise identical transactions\n\t *\n\t * @generated from protobuf field: optional uint32 nonce = 7;\n\t */\n\tnonce?: number;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.TransactionExpiration.TransactionExpirationKind\n */\nexport enum TransactionExpiration_TransactionExpirationKind {\n\t/**\n\t * @generated from protobuf enum value: TRANSACTION_EXPIRATION_KIND_UNKNOWN = 0;\n\t */\n\tTRANSACTION_EXPIRATION_KIND_UNKNOWN = 0,\n\t/**\n\t * The transaction has no expiration.\n\t *\n\t * @generated from protobuf enum value: NONE = 1;\n\t */\n\tNONE = 1,\n\t/**\n\t * Validators won't sign and execute transaction unless the expiration epoch\n\t * is greater than or equal to the current epoch.\n\t *\n\t * @generated from protobuf enum value: EPOCH = 2;\n\t */\n\tEPOCH = 2,\n\t/**\n\t * This variant enables gas payments from address balances.\n\t *\n\t * When transactions use address balances for gas payment instead of explicit gas coins,\n\t * we lose the natural transaction uniqueness and replay prevention that comes from\n\t * mutation of gas coin objects.\n\t *\n\t * By bounding expiration and providing a nonce, validators must only retain\n\t * executed digests for the maximum possible expiry range to differentiate\n\t * retries from unique transactions with otherwise identical inputs.\n\t *\n\t * @generated from protobuf enum value: VALID_DURING = 3;\n\t */\n\tVALID_DURING = 3,\n}\n/**\n * Transaction type.\n *\n * @generated from protobuf message sui.rpc.v2.TransactionKind\n */\nexport interface TransactionKind {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.TransactionKind.Kind kind = 1;\n\t */\n\tkind?: TransactionKind_Kind;\n\t/**\n\t * @generated from protobuf oneof: data\n\t */\n\tdata:\n\t\t| {\n\t\t\t\toneofKind: 'programmableTransaction';\n\t\t\t\t/**\n\t\t\t\t * A transaction comprised of a list of native commands and Move calls.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.ProgrammableTransaction programmable_transaction = 2;\n\t\t\t\t */\n\t\t\t\tprogrammableTransaction: ProgrammableTransaction;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'changeEpoch';\n\t\t\t\t/**\n\t\t\t\t * System transaction used to end an epoch.\n\t\t\t\t *\n\t\t\t\t * The `ChangeEpoch` variant is now deprecated (but the `ChangeEpoch` struct is still used by\n\t\t\t\t * `EndOfEpochTransaction`).\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.ChangeEpoch change_epoch = 3;\n\t\t\t\t */\n\t\t\t\tchangeEpoch: ChangeEpoch;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'genesis';\n\t\t\t\t/**\n\t\t\t\t * Transaction used to initialize the chain state.\n\t\t\t\t *\n\t\t\t\t * Only valid if in the genesis checkpoint (0) and if this is the very first transaction ever\n\t\t\t\t * executed on the chain.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.GenesisTransaction genesis = 4;\n\t\t\t\t */\n\t\t\t\tgenesis: GenesisTransaction;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'consensusCommitPrologue';\n\t\t\t\t/**\n\t\t\t\t * consensus commit update info\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.ConsensusCommitPrologue consensus_commit_prologue = 5;\n\t\t\t\t */\n\t\t\t\tconsensusCommitPrologue: ConsensusCommitPrologue;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'authenticatorStateUpdate';\n\t\t\t\t/**\n\t\t\t\t * Update set of valid JWKs used for zklogin.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.AuthenticatorStateUpdate authenticator_state_update = 6;\n\t\t\t\t */\n\t\t\t\tauthenticatorStateUpdate: AuthenticatorStateUpdate;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'endOfEpoch';\n\t\t\t\t/**\n\t\t\t\t * Set of operations to run at the end of the epoch to close out the current epoch and start\n\t\t\t\t * the next one.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.EndOfEpochTransaction end_of_epoch = 7;\n\t\t\t\t */\n\t\t\t\tendOfEpoch: EndOfEpochTransaction;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'randomnessStateUpdate';\n\t\t\t\t/**\n\t\t\t\t * Randomness update.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.RandomnessStateUpdate randomness_state_update = 8;\n\t\t\t\t */\n\t\t\t\trandomnessStateUpdate: RandomnessStateUpdate;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.TransactionKind.Kind\n */\nexport enum TransactionKind_Kind {\n\t/**\n\t * @generated from protobuf enum value: KIND_UNKNOWN = 0;\n\t */\n\tKIND_UNKNOWN = 0,\n\t/**\n\t * A user transaction comprised of a list of native commands and Move calls.\n\t *\n\t * @generated from protobuf enum value: PROGRAMMABLE_TRANSACTION = 1;\n\t */\n\tPROGRAMMABLE_TRANSACTION = 1,\n\t/**\n\t * System transaction used to end an epoch.\n\t *\n\t * The `ChangeEpoch` variant is now deprecated (but the `ChangeEpoch` struct is still used by\n\t * `EndOfEpochTransaction`).\n\t *\n\t * @generated from protobuf enum value: CHANGE_EPOCH = 2;\n\t */\n\tCHANGE_EPOCH = 2,\n\t/**\n\t * Transaction used to initialize the chain state.\n\t *\n\t * Only valid if in the genesis checkpoint (0) and if this is the very first transaction ever\n\t * executed on the chain.\n\t *\n\t * @generated from protobuf enum value: GENESIS = 3;\n\t */\n\tGENESIS = 3,\n\t/**\n\t * V1 consensus commit update.\n\t *\n\t * @generated from protobuf enum value: CONSENSUS_COMMIT_PROLOGUE_V1 = 4;\n\t */\n\tCONSENSUS_COMMIT_PROLOGUE_V1 = 4,\n\t/**\n\t * Update set of valid JWKs used for zklogin.\n\t *\n\t * @generated from protobuf enum value: AUTHENTICATOR_STATE_UPDATE = 5;\n\t */\n\tAUTHENTICATOR_STATE_UPDATE = 5,\n\t/**\n\t * Set of operations to run at the end of the epoch to close out the current epoch and start\n\t * the next one.\n\t *\n\t * @generated from protobuf enum value: END_OF_EPOCH = 6;\n\t */\n\tEND_OF_EPOCH = 6,\n\t/**\n\t * Randomness update.\n\t *\n\t * @generated from protobuf enum value: RANDOMNESS_STATE_UPDATE = 7;\n\t */\n\tRANDOMNESS_STATE_UPDATE = 7,\n\t/**\n\t * V2 consensus commit update.\n\t *\n\t * @generated from protobuf enum value: CONSENSUS_COMMIT_PROLOGUE_V2 = 8;\n\t */\n\tCONSENSUS_COMMIT_PROLOGUE_V2 = 8,\n\t/**\n\t * V3 consensus commit update.\n\t *\n\t * @generated from protobuf enum value: CONSENSUS_COMMIT_PROLOGUE_V3 = 9;\n\t */\n\tCONSENSUS_COMMIT_PROLOGUE_V3 = 9,\n\t/**\n\t * V4 consensus commit update.\n\t *\n\t * @generated from protobuf enum value: CONSENSUS_COMMIT_PROLOGUE_V4 = 10;\n\t */\n\tCONSENSUS_COMMIT_PROLOGUE_V4 = 10,\n\t/**\n\t * A system transaction comprised of a list of native commands and Move calls.\n\t *\n\t * @generated from protobuf enum value: PROGRAMMABLE_SYSTEM_TRANSACTION = 11;\n\t */\n\tPROGRAMMABLE_SYSTEM_TRANSACTION = 11,\n}\n/**\n * A user transaction.\n *\n * Contains a series of native commands and Move calls where the results of one command can be\n * used in future commands.\n *\n * @generated from protobuf message sui.rpc.v2.ProgrammableTransaction\n */\nexport interface ProgrammableTransaction {\n\t/**\n\t * Input objects or primitive values.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Input inputs = 1;\n\t */\n\tinputs: Input[];\n\t/**\n\t * The commands to be executed sequentially. A failure in any command\n\t * results in the failure of the entire transaction.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Command commands = 2;\n\t */\n\tcommands: Command[];\n}\n/**\n * A single command in a programmable transaction.\n *\n * @generated from protobuf message sui.rpc.v2.Command\n */\nexport interface Command {\n\t/**\n\t * @generated from protobuf oneof: command\n\t */\n\tcommand:\n\t\t| {\n\t\t\t\toneofKind: 'moveCall';\n\t\t\t\t/**\n\t\t\t\t * A call to either an entry or a public Move function.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.MoveCall move_call = 1;\n\t\t\t\t */\n\t\t\t\tmoveCall: MoveCall;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'transferObjects';\n\t\t\t\t/**\n\t\t\t\t * `(Vec<forall T:key+store. T>, address)`\n\t\t\t\t * It sends n-objects to the specified address. These objects must have store\n\t\t\t\t * (public transfer) and either the previous owner must be an address or the object must\n\t\t\t\t * be newly created.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.TransferObjects transfer_objects = 2;\n\t\t\t\t */\n\t\t\t\ttransferObjects: TransferObjects;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'splitCoins';\n\t\t\t\t/**\n\t\t\t\t * `(&mut Coin<T>, Vec<u64>)` -> `Vec<Coin<T>>`\n\t\t\t\t * It splits off some amounts into new coins with those amounts.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.SplitCoins split_coins = 3;\n\t\t\t\t */\n\t\t\t\tsplitCoins: SplitCoins;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'mergeCoins';\n\t\t\t\t/**\n\t\t\t\t * `(&mut Coin<T>, Vec<Coin<T>>)`\n\t\t\t\t * It merges n-coins into the first coin.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.MergeCoins merge_coins = 4;\n\t\t\t\t */\n\t\t\t\tmergeCoins: MergeCoins;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'publish';\n\t\t\t\t/**\n\t\t\t\t * Publishes a Move package. It takes the package bytes and a list of the package's transitive\n\t\t\t\t * dependencies to link against on chain.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.Publish publish = 5;\n\t\t\t\t */\n\t\t\t\tpublish: Publish;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'makeMoveVector';\n\t\t\t\t/**\n\t\t\t\t * `forall T: Vec<T> -> vector<T>`\n\t\t\t\t * Given n-values of the same type, it constructs a vector. For non-objects or an empty vector,\n\t\t\t\t * the type tag must be specified.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.MakeMoveVector make_move_vector = 6;\n\t\t\t\t */\n\t\t\t\tmakeMoveVector: MakeMoveVector;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'upgrade';\n\t\t\t\t/**\n\t\t\t\t * Upgrades a Move package.\n\t\t\t\t * Takes (in order):\n\t\t\t\t * 1. A vector of serialized modules for the package.\n\t\t\t\t * 2. A vector of object ids for the transitive dependencies of the new package.\n\t\t\t\t * 3. The object ID of the package being upgraded.\n\t\t\t\t * 4. An argument holding the `UpgradeTicket` that must have been produced from an earlier command in the same\n\t\t\t\t * programmable transaction.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.Upgrade upgrade = 7;\n\t\t\t\t */\n\t\t\t\tupgrade: Upgrade;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * Command to call a Move function.\n *\n * Functions that can be called by a `MoveCall` command are those that have a function signature\n * that is either `entry` or `public` (which don't have a reference return type).\n *\n * @generated from protobuf message sui.rpc.v2.MoveCall\n */\nexport interface MoveCall {\n\t/**\n\t * The package containing the module and function.\n\t *\n\t * @generated from protobuf field: optional string package = 1;\n\t */\n\tpackage?: string;\n\t/**\n\t * The specific module in the package containing the function.\n\t *\n\t * @generated from protobuf field: optional string module = 2;\n\t */\n\tmodule?: string;\n\t/**\n\t * The function to be called.\n\t *\n\t * @generated from protobuf field: optional string function = 3;\n\t */\n\tfunction?: string;\n\t/**\n\t * The type arguments to the function.\n\t *\n\t * @generated from protobuf field: repeated string type_arguments = 4;\n\t */\n\ttypeArguments: string[];\n\t/**\n\t * The arguments to the function.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Argument arguments = 5;\n\t */\n\targuments: Argument[];\n}\n/**\n * Command to transfer ownership of a set of objects to an address.\n *\n * @generated from protobuf message sui.rpc.v2.TransferObjects\n */\nexport interface TransferObjects {\n\t/**\n\t * Set of objects to transfer.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Argument objects = 1;\n\t */\n\tobjects: Argument[];\n\t/**\n\t * The address to transfer ownership to.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Argument address = 2;\n\t */\n\taddress?: Argument;\n}\n/**\n * Command to split a single coin object into multiple coins.\n *\n * @generated from protobuf message sui.rpc.v2.SplitCoins\n */\nexport interface SplitCoins {\n\t/**\n\t * The coin to split.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Argument coin = 1;\n\t */\n\tcoin?: Argument;\n\t/**\n\t * The amounts to split off.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Argument amounts = 2;\n\t */\n\tamounts: Argument[];\n}\n/**\n * Command to merge multiple coins of the same type into a single coin.\n *\n * @generated from protobuf message sui.rpc.v2.MergeCoins\n */\nexport interface MergeCoins {\n\t/**\n\t * Coin to merge coins into.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Argument coin = 1;\n\t */\n\tcoin?: Argument;\n\t/**\n\t * Set of coins to merge into `coin`.\n\t *\n\t * All listed coins must be of the same type and be the same type as `coin`\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Argument coins_to_merge = 2;\n\t */\n\tcoinsToMerge: Argument[];\n}\n/**\n * Command to publish a new Move package.\n *\n * @generated from protobuf message sui.rpc.v2.Publish\n */\nexport interface Publish {\n\t/**\n\t * The serialized Move modules.\n\t *\n\t * @generated from protobuf field: repeated bytes modules = 1;\n\t */\n\tmodules: Uint8Array[];\n\t/**\n\t * Set of packages that the to-be published package depends on.\n\t *\n\t * @generated from protobuf field: repeated string dependencies = 2;\n\t */\n\tdependencies: string[];\n}\n/**\n * Command to build a Move vector out of a set of individual elements.\n *\n * @generated from protobuf message sui.rpc.v2.MakeMoveVector\n */\nexport interface MakeMoveVector {\n\t/**\n\t * Type of the individual elements.\n\t *\n\t * This is required to be set when the type can't be inferred, for example when the set of\n\t * provided arguments are all pure input values.\n\t *\n\t * @generated from protobuf field: optional string element_type = 1;\n\t */\n\telementType?: string;\n\t/**\n\t * The set individual elements to build the vector with.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Argument elements = 2;\n\t */\n\telements: Argument[];\n}\n/**\n * Command to upgrade an already published package.\n *\n * @generated from protobuf message sui.rpc.v2.Upgrade\n */\nexport interface Upgrade {\n\t/**\n\t * The serialized Move modules.\n\t *\n\t * @generated from protobuf field: repeated bytes modules = 1;\n\t */\n\tmodules: Uint8Array[];\n\t/**\n\t * Set of packages that the to-be published package depends on.\n\t *\n\t * @generated from protobuf field: repeated string dependencies = 2;\n\t */\n\tdependencies: string[];\n\t/**\n\t * Package ID of the package to upgrade.\n\t *\n\t * @generated from protobuf field: optional string package = 3;\n\t */\n\tpackage?: string;\n\t/**\n\t * Ticket authorizing the upgrade.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Argument ticket = 4;\n\t */\n\tticket?: Argument;\n}\n/**\n * Randomness update.\n *\n * @generated from protobuf message sui.rpc.v2.RandomnessStateUpdate\n */\nexport interface RandomnessStateUpdate {\n\t/**\n\t * Epoch of the randomness state update transaction.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * Randomness round of the update.\n\t *\n\t * @generated from protobuf field: optional uint64 randomness_round = 2;\n\t */\n\trandomnessRound?: bigint;\n\t/**\n\t * Updated random bytes.\n\t *\n\t * @generated from protobuf field: optional bytes random_bytes = 3;\n\t */\n\trandomBytes?: Uint8Array;\n\t/**\n\t * The initial version of the randomness object that it was shared at.\n\t *\n\t * @generated from protobuf field: optional uint64 randomness_object_initial_shared_version = 4;\n\t */\n\trandomnessObjectInitialSharedVersion?: bigint;\n}\n/**\n * System transaction used to change the epoch.\n *\n * @generated from protobuf message sui.rpc.v2.ChangeEpoch\n */\nexport interface ChangeEpoch {\n\t/**\n\t * The next (to become) epoch ID.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * The protocol version in effect in the new epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 protocol_version = 2;\n\t */\n\tprotocolVersion?: bigint;\n\t/**\n\t * The total amount of gas charged for storage during the epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 storage_charge = 3;\n\t */\n\tstorageCharge?: bigint;\n\t/**\n\t * The total amount of gas charged for computation during the epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 computation_charge = 4;\n\t */\n\tcomputationCharge?: bigint;\n\t/**\n\t * The amount of storage rebate refunded to the txn senders.\n\t *\n\t * @generated from protobuf field: optional uint64 storage_rebate = 5;\n\t */\n\tstorageRebate?: bigint;\n\t/**\n\t * The non-refundable storage fee.\n\t *\n\t * @generated from protobuf field: optional uint64 non_refundable_storage_fee = 6;\n\t */\n\tnonRefundableStorageFee?: bigint;\n\t/**\n\t * Unix timestamp when epoch started.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp epoch_start_timestamp = 7;\n\t */\n\tepochStartTimestamp?: Timestamp;\n\t/**\n\t * System packages (specifically framework and Move stdlib) that are written before the new\n\t * epoch starts. This tracks framework upgrades on chain. When executing the `ChangeEpoch` txn,\n\t * the validator must write out the following modules. Modules are provided with the version they\n\t * will be upgraded to, their modules in serialized form (which include their package ID), and\n\t * a list of their transitive dependencies.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.SystemPackage system_packages = 8;\n\t */\n\tsystemPackages: SystemPackage[];\n}\n/**\n * System package.\n *\n * @generated from protobuf message sui.rpc.v2.SystemPackage\n */\nexport interface SystemPackage {\n\t/**\n\t * Version of the package.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 1;\n\t */\n\tversion?: bigint;\n\t/**\n\t * Move modules.\n\t *\n\t * @generated from protobuf field: repeated bytes modules = 2;\n\t */\n\tmodules: Uint8Array[];\n\t/**\n\t * Package dependencies.\n\t *\n\t * @generated from protobuf field: repeated string dependencies = 3;\n\t */\n\tdependencies: string[];\n}\n/**\n * The genesis transaction.\n *\n * @generated from protobuf message sui.rpc.v2.GenesisTransaction\n */\nexport interface GenesisTransaction {\n\t/**\n\t * Set of genesis objects.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Object objects = 1;\n\t */\n\tobjects: Object[];\n}\n/**\n * Consensus commit prologue system transaction.\n *\n * This message can represent V1, V2, and V3 prologue types.\n *\n * @generated from protobuf message sui.rpc.v2.ConsensusCommitPrologue\n */\nexport interface ConsensusCommitPrologue {\n\t/**\n\t * Epoch of the commit prologue transaction.\n\t *\n\t * Present in V1, V2, V3, V4.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * Consensus round of the commit.\n\t *\n\t * Present in V1, V2, V3, V4.\n\t *\n\t * @generated from protobuf field: optional uint64 round = 2;\n\t */\n\tround?: bigint;\n\t/**\n\t * Unix timestamp from consensus.\n\t *\n\t * Present in V1, V2, V3, V4.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp commit_timestamp = 3;\n\t */\n\tcommitTimestamp?: Timestamp;\n\t/**\n\t * Digest of consensus output.\n\t *\n\t * Present in V2, V3, V4.\n\t *\n\t * @generated from protobuf field: optional string consensus_commit_digest = 4;\n\t */\n\tconsensusCommitDigest?: string;\n\t/**\n\t * The sub DAG index of the consensus commit. This field is populated if there\n\t * are multiple consensus commits per round.\n\t *\n\t * Present in V3, V4.\n\t *\n\t * @generated from protobuf field: optional uint64 sub_dag_index = 5;\n\t */\n\tsubDagIndex?: bigint;\n\t/**\n\t * Stores consensus handler determined consensus object version assignments.\n\t *\n\t * Present in V3, V4.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ConsensusDeterminedVersionAssignments consensus_determined_version_assignments = 6;\n\t */\n\tconsensusDeterminedVersionAssignments?: ConsensusDeterminedVersionAssignments;\n\t/**\n\t * Digest of any additional state computed by the consensus handler.\n\t * Used to detect forking bugs as early as possible.\n\t *\n\t * Present in V4.\n\t *\n\t * @generated from protobuf field: optional string additional_state_digest = 7;\n\t */\n\tadditionalStateDigest?: string;\n}\n/**\n * Object version assignment from consensus.\n *\n * @generated from protobuf message sui.rpc.v2.VersionAssignment\n */\nexport interface VersionAssignment {\n\t/**\n\t * `ObjectId` of the object.\n\t *\n\t * @generated from protobuf field: optional string object_id = 1;\n\t */\n\tobjectId?: string;\n\t/**\n\t * start version of the consensus stream for this object\n\t *\n\t * @generated from protobuf field: optional uint64 start_version = 2;\n\t */\n\tstartVersion?: bigint;\n\t/**\n\t * Assigned version.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 3;\n\t */\n\tversion?: bigint;\n}\n/**\n * A transaction that was canceled.\n *\n * @generated from protobuf message sui.rpc.v2.CanceledTransaction\n */\nexport interface CanceledTransaction {\n\t/**\n\t * Digest of the canceled transaction.\n\t *\n\t * @generated from protobuf field: optional string digest = 1;\n\t */\n\tdigest?: string;\n\t/**\n\t * List of object version assignments.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.VersionAssignment version_assignments = 2;\n\t */\n\tversionAssignments: VersionAssignment[];\n}\n/**\n * Version assignments performed by consensus.\n *\n * @generated from protobuf message sui.rpc.v2.ConsensusDeterminedVersionAssignments\n */\nexport interface ConsensusDeterminedVersionAssignments {\n\t/**\n\t * Version of this message\n\t *\n\t * @generated from protobuf field: optional int32 version = 1;\n\t */\n\tversion?: number;\n\t/**\n\t * Canceled transaction version assignment.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.CanceledTransaction canceled_transactions = 3;\n\t */\n\tcanceledTransactions: CanceledTransaction[];\n}\n/**\n * Update the set of valid JWKs.\n *\n * @generated from protobuf message sui.rpc.v2.AuthenticatorStateUpdate\n */\nexport interface AuthenticatorStateUpdate {\n\t/**\n\t * Epoch of the authenticator state update transaction.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * Consensus round of the authenticator state update.\n\t *\n\t * @generated from protobuf field: optional uint64 round = 2;\n\t */\n\tround?: bigint;\n\t/**\n\t * Newly active JWKs.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ActiveJwk new_active_jwks = 3;\n\t */\n\tnewActiveJwks: ActiveJwk[];\n\t/**\n\t * The initial version of the authenticator object that it was shared at.\n\t *\n\t * @generated from protobuf field: optional uint64 authenticator_object_initial_shared_version = 4;\n\t */\n\tauthenticatorObjectInitialSharedVersion?: bigint;\n}\n/**\n * A new JWK.\n *\n * @generated from protobuf message sui.rpc.v2.ActiveJwk\n */\nexport interface ActiveJwk {\n\t/**\n\t * Identifier used to uniquely identify a JWK.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.JwkId id = 1;\n\t */\n\tid?: JwkId;\n\t/**\n\t * The JWK.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Jwk jwk = 2;\n\t */\n\tjwk?: Jwk;\n\t/**\n\t * Most recent epoch in which the JWK was validated.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 3;\n\t */\n\tepoch?: bigint;\n}\n/**\n * Set of operations run at the end of the epoch to close out the current epoch\n * and start the next one.\n *\n * @generated from protobuf message sui.rpc.v2.EndOfEpochTransaction\n */\nexport interface EndOfEpochTransaction {\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.EndOfEpochTransactionKind transactions = 1;\n\t */\n\ttransactions: EndOfEpochTransactionKind[];\n}\n/**\n * Operation run at the end of an epoch.\n *\n * @generated from protobuf message sui.rpc.v2.EndOfEpochTransactionKind\n */\nexport interface EndOfEpochTransactionKind {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.EndOfEpochTransactionKind.Kind kind = 1;\n\t */\n\tkind?: EndOfEpochTransactionKind_Kind;\n\t/**\n\t * @generated from protobuf oneof: data\n\t */\n\tdata:\n\t\t| {\n\t\t\t\toneofKind: 'changeEpoch';\n\t\t\t\t/**\n\t\t\t\t * End the epoch and start the next one.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.ChangeEpoch change_epoch = 2;\n\t\t\t\t */\n\t\t\t\tchangeEpoch: ChangeEpoch;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'authenticatorStateExpire';\n\t\t\t\t/**\n\t\t\t\t * Expire JWKs used for zklogin.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.AuthenticatorStateExpire authenticator_state_expire = 3;\n\t\t\t\t */\n\t\t\t\tauthenticatorStateExpire: AuthenticatorStateExpire;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'executionTimeObservations';\n\t\t\t\t/**\n\t\t\t\t * Execution time observations from the committee to preserve cross epoch\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.ExecutionTimeObservations execution_time_observations = 4;\n\t\t\t\t */\n\t\t\t\texecutionTimeObservations: ExecutionTimeObservations;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'bridgeChainId';\n\t\t\t\t/**\n\t\t\t\t * ChainId used when initializing the bridge\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: string bridge_chain_id = 5;\n\t\t\t\t */\n\t\t\t\tbridgeChainId: string;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'bridgeObjectVersion';\n\t\t\t\t/**\n\t\t\t\t * Start version of the Bridge object\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: uint64 bridge_object_version = 6;\n\t\t\t\t */\n\t\t\t\tbridgeObjectVersion: bigint;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'storageCost';\n\t\t\t\t/**\n\t\t\t\t * Contains the end-of-epoch-computed storage cost for accumulator objects.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: uint64 storage_cost = 7;\n\t\t\t\t */\n\t\t\t\tstorageCost: bigint;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.EndOfEpochTransactionKind.Kind\n */\nexport enum EndOfEpochTransactionKind_Kind {\n\t/**\n\t * @generated from protobuf enum value: KIND_UNKNOWN = 0;\n\t */\n\tKIND_UNKNOWN = 0,\n\t/**\n\t * End the epoch and start the next one.\n\t *\n\t * @generated from protobuf enum value: CHANGE_EPOCH = 1;\n\t */\n\tCHANGE_EPOCH = 1,\n\t/**\n\t * Create and initialize the authenticator object used for zklogin.\n\t *\n\t * @generated from protobuf enum value: AUTHENTICATOR_STATE_CREATE = 2;\n\t */\n\tAUTHENTICATOR_STATE_CREATE = 2,\n\t/**\n\t * Expire JWKs used for zklogin.\n\t *\n\t * @generated from protobuf enum value: AUTHENTICATOR_STATE_EXPIRE = 3;\n\t */\n\tAUTHENTICATOR_STATE_EXPIRE = 3,\n\t/**\n\t * Create and initialize the randomness object.\n\t *\n\t * @generated from protobuf enum value: RANDOMNESS_STATE_CREATE = 4;\n\t */\n\tRANDOMNESS_STATE_CREATE = 4,\n\t/**\n\t * Create and initialize the deny list object.\n\t *\n\t * @generated from protobuf enum value: DENY_LIST_STATE_CREATE = 5;\n\t */\n\tDENY_LIST_STATE_CREATE = 5,\n\t/**\n\t * Create and initialize the bridge object.\n\t *\n\t * @generated from protobuf enum value: BRIDGE_STATE_CREATE = 6;\n\t */\n\tBRIDGE_STATE_CREATE = 6,\n\t/**\n\t * Initialize the bridge committee.\n\t *\n\t * @generated from protobuf enum value: BRIDGE_COMMITTEE_INIT = 7;\n\t */\n\tBRIDGE_COMMITTEE_INIT = 7,\n\t/**\n\t * Execution time observations from the committee to preserve cross epoch\n\t *\n\t * @generated from protobuf enum value: STORE_EXECUTION_TIME_OBSERVATIONS = 8;\n\t */\n\tSTORE_EXECUTION_TIME_OBSERVATIONS = 8,\n\t/**\n\t * Create the accumulator root object.\n\t *\n\t * @generated from protobuf enum value: ACCUMULATOR_ROOT_CREATE = 9;\n\t */\n\tACCUMULATOR_ROOT_CREATE = 9,\n\t/**\n\t * Create and initialize the Coin Registry object.\n\t *\n\t * @generated from protobuf enum value: COIN_REGISTRY_CREATE = 10;\n\t */\n\tCOIN_REGISTRY_CREATE = 10,\n\t/**\n\t * Create and initialize the Display Registry object.\n\t *\n\t * @generated from protobuf enum value: DISPLAY_REGISTRY_CREATE = 11;\n\t */\n\tDISPLAY_REGISTRY_CREATE = 11,\n\t/**\n\t * Create and initialize the Address Alias State object.\n\t *\n\t * @generated from protobuf enum value: ADDRESS_ALIAS_STATE_CREATE = 12;\n\t */\n\tADDRESS_ALIAS_STATE_CREATE = 12,\n\t/**\n\t * Write the end-of-epoch-computed storage cost for accumulator objects.\n\t *\n\t * @generated from protobuf enum value: WRITE_ACCUMULATOR_STORAGE_COST = 13;\n\t */\n\tWRITE_ACCUMULATOR_STORAGE_COST = 13,\n}\n/**\n * Expire old JWKs.\n *\n * @generated from protobuf message sui.rpc.v2.AuthenticatorStateExpire\n */\nexport interface AuthenticatorStateExpire {\n\t/**\n\t * Expire JWKs that have a lower epoch than this.\n\t *\n\t * @generated from protobuf field: optional uint64 min_epoch = 1;\n\t */\n\tminEpoch?: bigint;\n\t/**\n\t * The initial version of the authenticator object that it was shared at.\n\t *\n\t * @generated from protobuf field: optional uint64 authenticator_object_initial_shared_version = 2;\n\t */\n\tauthenticatorObjectInitialSharedVersion?: bigint;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ExecutionTimeObservations\n */\nexport interface ExecutionTimeObservations {\n\t/**\n\t * Version of this ExecutionTimeObservations\n\t *\n\t * @generated from protobuf field: optional int32 version = 1;\n\t */\n\tversion?: number;\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.ExecutionTimeObservation observations = 2;\n\t */\n\tobservations: ExecutionTimeObservation[];\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ExecutionTimeObservation\n */\nexport interface ExecutionTimeObservation {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ExecutionTimeObservation.ExecutionTimeObservationKind kind = 1;\n\t */\n\tkind?: ExecutionTimeObservation_ExecutionTimeObservationKind;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveCall move_entry_point = 2;\n\t */\n\tmoveEntryPoint?: MoveCall;\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.ValidatorExecutionTimeObservation validator_observations = 3;\n\t */\n\tvalidatorObservations: ValidatorExecutionTimeObservation[];\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.ExecutionTimeObservation.ExecutionTimeObservationKind\n */\nexport enum ExecutionTimeObservation_ExecutionTimeObservationKind {\n\t/**\n\t * @generated from protobuf enum value: EXECUTION_TIME_OBSERVATION_KIND_UNKNOWN = 0;\n\t */\n\tEXECUTION_TIME_OBSERVATION_KIND_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: MOVE_ENTRY_POINT = 1;\n\t */\n\tMOVE_ENTRY_POINT = 1,\n\t/**\n\t * @generated from protobuf enum value: TRANSFER_OBJECTS = 2;\n\t */\n\tTRANSFER_OBJECTS = 2,\n\t/**\n\t * @generated from protobuf enum value: SPLIT_COINS = 3;\n\t */\n\tSPLIT_COINS = 3,\n\t/**\n\t * @generated from protobuf enum value: MERGE_COINS = 4;\n\t */\n\tMERGE_COINS = 4,\n\t/**\n\t * @generated from protobuf enum value: PUBLISH = 5;\n\t */\n\tPUBLISH = 5,\n\t/**\n\t * @generated from protobuf enum value: MAKE_MOVE_VECTOR = 6;\n\t */\n\tMAKE_MOVE_VECTOR = 6,\n\t/**\n\t * @generated from protobuf enum value: UPGRADE = 7;\n\t */\n\tUPGRADE = 7,\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ValidatorExecutionTimeObservation\n */\nexport interface ValidatorExecutionTimeObservation {\n\t/**\n\t * Bls12381 public key of the validator\n\t *\n\t * @generated from protobuf field: optional bytes validator = 1;\n\t */\n\tvalidator?: Uint8Array;\n\t/**\n\t * Duration of an execution observation\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Duration duration = 2;\n\t */\n\tduration?: Duration;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Transaction$Type extends MessageType<Transaction> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Transaction', [\n\t\t\t{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'version', kind: 'scalar', opt: true, T: 5 /*ScalarType.INT32*/ },\n\t\t\t{ no: 4, name: 'kind', kind: 'message', T: () => TransactionKind },\n\t\t\t{ no: 5, name: 'sender', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 6, name: 'gas_payment', kind: 'message', T: () => GasPayment },\n\t\t\t{ no: 7, name: 'expiration', kind: 'message', T: () => TransactionExpiration },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Transaction\n */\nexport const Transaction = new Transaction$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GasPayment$Type extends MessageType<GasPayment> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GasPayment', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ObjectReference,\n\t\t\t},\n\t\t\t{ no: 2, name: 'owner', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'price',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'budget',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GasPayment\n */\nexport const GasPayment = new GasPayment$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransactionExpiration$Type extends MessageType<TransactionExpiration> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TransactionExpiration', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.TransactionExpiration.TransactionExpirationKind',\n\t\t\t\t\tTransactionExpiration_TransactionExpirationKind,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'min_epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 4, name: 'min_timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{ no: 5, name: 'max_timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{ no: 6, name: 'chain', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 7, name: 'nonce', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TransactionExpiration\n */\nexport const TransactionExpiration = new TransactionExpiration$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransactionKind$Type extends MessageType<TransactionKind> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TransactionKind', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.TransactionKind.Kind', TransactionKind_Kind],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'programmable_transaction',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: () => ProgrammableTransaction,\n\t\t\t},\n\t\t\t{ no: 3, name: 'change_epoch', kind: 'message', oneof: 'data', T: () => ChangeEpoch },\n\t\t\t{ no: 4, name: 'genesis', kind: 'message', oneof: 'data', T: () => GenesisTransaction },\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'consensus_commit_prologue',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: () => ConsensusCommitPrologue,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'authenticator_state_update',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: () => AuthenticatorStateUpdate,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'end_of_epoch',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: () => EndOfEpochTransaction,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'randomness_state_update',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: () => RandomnessStateUpdate,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TransactionKind\n */\nexport const TransactionKind = new TransactionKind$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ProgrammableTransaction$Type extends MessageType<ProgrammableTransaction> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ProgrammableTransaction', [\n\t\t\t{ no: 1, name: 'inputs', kind: 'message', repeat: 2 /*RepeatType.UNPACKED*/, T: () => Input },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'commands',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Command,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ProgrammableTransaction\n */\nexport const ProgrammableTransaction = new ProgrammableTransaction$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Command$Type extends MessageType<Command> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Command', [\n\t\t\t{ no: 1, name: 'move_call', kind: 'message', oneof: 'command', T: () => MoveCall },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'transfer_objects',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'command',\n\t\t\t\tT: () => TransferObjects,\n\t\t\t},\n\t\t\t{ no: 3, name: 'split_coins', kind: 'message', oneof: 'command', T: () => SplitCoins },\n\t\t\t{ no: 4, name: 'merge_coins', kind: 'message', oneof: 'command', T: () => MergeCoins },\n\t\t\t{ no: 5, name: 'publish', kind: 'message', oneof: 'command', T: () => Publish },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'make_move_vector',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'command',\n\t\t\t\tT: () => MakeMoveVector,\n\t\t\t},\n\t\t\t{ no: 7, name: 'upgrade', kind: 'message', oneof: 'command', T: () => Upgrade },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Command\n */\nexport const Command = new Command$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MoveCall$Type extends MessageType<MoveCall> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MoveCall', [\n\t\t\t{ no: 1, name: 'package', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'module', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'function', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'type_arguments',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'arguments',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Argument,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MoveCall\n */\nexport const MoveCall = new MoveCall$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransferObjects$Type extends MessageType<TransferObjects> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TransferObjects', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Argument,\n\t\t\t},\n\t\t\t{ no: 2, name: 'address', kind: 'message', T: () => Argument },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TransferObjects\n */\nexport const TransferObjects = new TransferObjects$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SplitCoins$Type extends MessageType<SplitCoins> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SplitCoins', [\n\t\t\t{ no: 1, name: 'coin', kind: 'message', T: () => Argument },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'amounts',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Argument,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SplitCoins\n */\nexport const SplitCoins = new SplitCoins$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MergeCoins$Type extends MessageType<MergeCoins> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MergeCoins', [\n\t\t\t{ no: 1, name: 'coin', kind: 'message', T: () => Argument },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'coins_to_merge',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Argument,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MergeCoins\n */\nexport const MergeCoins = new MergeCoins$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Publish$Type extends MessageType<Publish> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Publish', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'modules',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'dependencies',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Publish\n */\nexport const Publish = new Publish$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MakeMoveVector$Type extends MessageType<MakeMoveVector> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MakeMoveVector', [\n\t\t\t{ no: 1, name: 'element_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'elements',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Argument,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MakeMoveVector\n */\nexport const MakeMoveVector = new MakeMoveVector$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Upgrade$Type extends MessageType<Upgrade> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Upgrade', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'modules',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'dependencies',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'package', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'ticket', kind: 'message', T: () => Argument },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Upgrade\n */\nexport const Upgrade = new Upgrade$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass RandomnessStateUpdate$Type extends MessageType<RandomnessStateUpdate> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.RandomnessStateUpdate', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'randomness_round',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'random_bytes', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'randomness_object_initial_shared_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.RandomnessStateUpdate\n */\nexport const RandomnessStateUpdate = new RandomnessStateUpdate$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ChangeEpoch$Type extends MessageType<ChangeEpoch> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ChangeEpoch', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'protocol_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'storage_charge',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'computation_charge',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'storage_rebate',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'non_refundable_storage_fee',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 7, name: 'epoch_start_timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'system_packages',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => SystemPackage,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ChangeEpoch\n */\nexport const ChangeEpoch = new ChangeEpoch$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SystemPackage$Type extends MessageType<SystemPackage> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SystemPackage', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'modules',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'dependencies',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SystemPackage\n */\nexport const SystemPackage = new SystemPackage$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GenesisTransaction$Type extends MessageType<GenesisTransaction> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GenesisTransaction', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Object,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GenesisTransaction\n */\nexport const GenesisTransaction = new GenesisTransaction$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ConsensusCommitPrologue$Type extends MessageType<ConsensusCommitPrologue> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ConsensusCommitPrologue', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'round',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'commit_timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'consensus_commit_digest',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'sub_dag_index',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'consensus_determined_version_assignments',\n\t\t\t\tkind: 'message',\n\t\t\t\tT: () => ConsensusDeterminedVersionAssignments,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'additional_state_digest',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ConsensusCommitPrologue\n */\nexport const ConsensusCommitPrologue = new ConsensusCommitPrologue$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass VersionAssignment$Type extends MessageType<VersionAssignment> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.VersionAssignment', [\n\t\t\t{ no: 1, name: 'object_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'start_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.VersionAssignment\n */\nexport const VersionAssignment = new VersionAssignment$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CanceledTransaction$Type extends MessageType<CanceledTransaction> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CanceledTransaction', [\n\t\t\t{ no: 1, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'version_assignments',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => VersionAssignment,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CanceledTransaction\n */\nexport const CanceledTransaction = new CanceledTransaction$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ConsensusDeterminedVersionAssignments$Type extends MessageType<ConsensusDeterminedVersionAssignments> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ConsensusDeterminedVersionAssignments', [\n\t\t\t{ no: 1, name: 'version', kind: 'scalar', opt: true, T: 5 /*ScalarType.INT32*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'canceled_transactions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => CanceledTransaction,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ConsensusDeterminedVersionAssignments\n */\nexport const ConsensusDeterminedVersionAssignments =\n\tnew ConsensusDeterminedVersionAssignments$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthenticatorStateUpdate$Type extends MessageType<AuthenticatorStateUpdate> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.AuthenticatorStateUpdate', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'round',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'new_active_jwks',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ActiveJwk,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'authenticator_object_initial_shared_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.AuthenticatorStateUpdate\n */\nexport const AuthenticatorStateUpdate = new AuthenticatorStateUpdate$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ActiveJwk$Type extends MessageType<ActiveJwk> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ActiveJwk', [\n\t\t\t{ no: 1, name: 'id', kind: 'message', T: () => JwkId },\n\t\t\t{ no: 2, name: 'jwk', kind: 'message', T: () => Jwk },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ActiveJwk\n */\nexport const ActiveJwk = new ActiveJwk$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass EndOfEpochTransaction$Type extends MessageType<EndOfEpochTransaction> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.EndOfEpochTransaction', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'transactions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => EndOfEpochTransactionKind,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.EndOfEpochTransaction\n */\nexport const EndOfEpochTransaction = new EndOfEpochTransaction$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass EndOfEpochTransactionKind$Type extends MessageType<EndOfEpochTransactionKind> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.EndOfEpochTransactionKind', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.EndOfEpochTransactionKind.Kind', EndOfEpochTransactionKind_Kind],\n\t\t\t},\n\t\t\t{ no: 2, name: 'change_epoch', kind: 'message', oneof: 'data', T: () => ChangeEpoch },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'authenticator_state_expire',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: () => AuthenticatorStateExpire,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'execution_time_observations',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: () => ExecutionTimeObservations,\n\t\t\t},\n\t\t\t{ no: 5, name: 'bridge_chain_id', kind: 'scalar', oneof: 'data', T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'bridge_object_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'storage_cost',\n\t\t\t\tkind: 'scalar',\n\t\t\t\toneof: 'data',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.EndOfEpochTransactionKind\n */\nexport const EndOfEpochTransactionKind = new EndOfEpochTransactionKind$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AuthenticatorStateExpire$Type extends MessageType<AuthenticatorStateExpire> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.AuthenticatorStateExpire', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'min_epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'authenticator_object_initial_shared_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.AuthenticatorStateExpire\n */\nexport const AuthenticatorStateExpire = new AuthenticatorStateExpire$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ExecutionTimeObservations$Type extends MessageType<ExecutionTimeObservations> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ExecutionTimeObservations', [\n\t\t\t{ no: 1, name: 'version', kind: 'scalar', opt: true, T: 5 /*ScalarType.INT32*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'observations',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ExecutionTimeObservation,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ExecutionTimeObservations\n */\nexport const ExecutionTimeObservations = new ExecutionTimeObservations$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ExecutionTimeObservation$Type extends MessageType<ExecutionTimeObservation> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ExecutionTimeObservation', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.ExecutionTimeObservation.ExecutionTimeObservationKind',\n\t\t\t\t\tExecutionTimeObservation_ExecutionTimeObservationKind,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ no: 2, name: 'move_entry_point', kind: 'message', T: () => MoveCall },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'validator_observations',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ValidatorExecutionTimeObservation,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ExecutionTimeObservation\n */\nexport const ExecutionTimeObservation = new ExecutionTimeObservation$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ValidatorExecutionTimeObservation$Type extends MessageType<ValidatorExecutionTimeObservation> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ValidatorExecutionTimeObservation', [\n\t\t\t{ no: 1, name: 'validator', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 2, name: 'duration', kind: 'message', T: () => Duration },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ValidatorExecutionTimeObservation\n */\nexport const ValidatorExecutionTimeObservation = new ValidatorExecutionTimeObservation$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\n\nimport type { bcs } from '../bcs/index.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type {\n\tCallArg,\n\tCommand as BcsCommand,\n\tTransactionData,\n} from '../transactions/data/internal.js';\nimport type { Transaction as GrpcTransaction } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport {\n\tTransaction as GrpcTransactionType,\n\tTransactionExpiration_TransactionExpirationKind,\n} from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { ObjectReference } from '../grpc/proto/sui/rpc/v2/object_reference.js';\nimport type { Input } from '../grpc/proto/sui/rpc/v2/input.js';\nimport { FundsWithdrawal_Source, Input_InputKind } from '../grpc/proto/sui/rpc/v2/input.js';\nimport type { Command } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { Argument } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Argument_ArgumentKind } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Transaction } from '../transactions/Transaction.js';\n\n/**\n * Converts CallArg (TypeScript internal format) to gRPC Input format\n */\nfunction callArgToGrpcInput(arg: CallArg): Input {\n\tswitch (arg.$kind) {\n\t\tcase 'Pure':\n\t\t\t// Pure.bytes is a base64-encoded string that needs to be decoded\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.PURE,\n\t\t\t\tpure: fromBase64(arg.Pure.bytes),\n\t\t\t};\n\n\t\tcase 'Object':\n\t\t\tif (arg.Object.$kind === 'ImmOrOwnedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.IMMUTABLE_OR_OWNED,\n\t\t\t\t\tobjectId: arg.Object.ImmOrOwnedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.ImmOrOwnedObject.version),\n\t\t\t\t\tdigest: arg.Object.ImmOrOwnedObject.digest,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'SharedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.SHARED,\n\t\t\t\t\tobjectId: arg.Object.SharedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.SharedObject.initialSharedVersion),\n\t\t\t\t\tmutable: arg.Object.SharedObject.mutable,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'Receiving') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.RECEIVING,\n\t\t\t\t\tobjectId: arg.Object.Receiving.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.Receiving.version),\n\t\t\t\t\tdigest: arg.Object.Receiving.digest,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthrow new Error(`Unknown Object kind: ${JSON.stringify(arg.Object)}`);\n\n\t\tcase 'UnresolvedObject':\n\t\t\tconst unresolved = arg.UnresolvedObject;\n\t\t\treturn {\n\t\t\t\tobjectId: unresolved.objectId,\n\t\t\t\tversion: unresolved.version\n\t\t\t\t\t? BigInt(unresolved.version)\n\t\t\t\t\t: unresolved.initialSharedVersion\n\t\t\t\t\t\t? BigInt(unresolved.initialSharedVersion)\n\t\t\t\t\t\t: undefined,\n\t\t\t\tdigest: unresolved.digest ?? undefined,\n\t\t\t\tmutable: unresolved.mutable ?? undefined,\n\t\t\t};\n\n\t\tcase 'UnresolvedPure':\n\t\t\tthrow new Error('UnresolvedPure arguments must be resolved before converting to gRPC format');\n\n\t\tcase 'FundsWithdrawal': {\n\t\t\tconst withdrawal = arg.FundsWithdrawal;\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.FUNDS_WITHDRAWAL,\n\t\t\t\tfundsWithdrawal: {\n\t\t\t\t\tamount:\n\t\t\t\t\t\twithdrawal.reservation.$kind === 'MaxAmountU64'\n\t\t\t\t\t\t\t? BigInt(withdrawal.reservation.MaxAmountU64)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcoinType: withdrawal.typeArg.$kind === 'Balance' ? withdrawal.typeArg.Balance : undefined,\n\t\t\t\t\tsource:\n\t\t\t\t\t\twithdrawal.withdrawFrom.$kind === 'Sponsor'\n\t\t\t\t\t\t\t? FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t: FundsWithdrawal_Source.SENDER,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown CallArg kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\n/**\n * Converts a TypeScript Argument to gRPC Argument\n */\nfunction tsArgumentToGrpcArgument(arg: typeof bcs.Argument.$inferInput): Argument {\n\tif ('GasCoin' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.GAS };\n\t} else if ('Input' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.INPUT, input: arg.Input };\n\t} else if ('Result' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.RESULT, result: arg.Result };\n\t} else if ('NestedResult' in arg) {\n\t\treturn {\n\t\t\tkind: Argument_ArgumentKind.RESULT,\n\t\t\tresult: arg.NestedResult[0],\n\t\t\tsubresult: arg.NestedResult[1],\n\t\t};\n\t}\n\tthrow new Error(`Unknown Argument: ${JSON.stringify(arg)}`);\n}\n\n/**\n * Converts TypeScript Command to gRPC Command\n */\nfunction tsCommandToGrpcCommand(cmd: BcsCommand): Command {\n\tswitch (cmd.$kind) {\n\t\tcase 'MoveCall':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'moveCall',\n\t\t\t\t\tmoveCall: {\n\t\t\t\t\t\tpackage: cmd.MoveCall.package,\n\t\t\t\t\t\tmodule: cmd.MoveCall.module,\n\t\t\t\t\t\tfunction: cmd.MoveCall.function,\n\t\t\t\t\t\ttypeArguments: cmd.MoveCall.typeArguments,\n\t\t\t\t\t\targuments: cmd.MoveCall.arguments.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'TransferObjects':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'transferObjects',\n\t\t\t\t\ttransferObjects: {\n\t\t\t\t\t\tobjects: cmd.TransferObjects.objects.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t\taddress: tsArgumentToGrpcArgument(cmd.TransferObjects.address),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'SplitCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'splitCoins',\n\t\t\t\t\tsplitCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.SplitCoins.coin),\n\t\t\t\t\t\tamounts: cmd.SplitCoins.amounts.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MergeCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'mergeCoins',\n\t\t\t\t\tmergeCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.MergeCoins.destination),\n\t\t\t\t\t\tcoinsToMerge: cmd.MergeCoins.sources.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Publish':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'publish',\n\t\t\t\t\tpublish: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Publish.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Publish.dependencies,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MakeMoveVec':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'makeMoveVector',\n\t\t\t\t\tmakeMoveVector: {\n\t\t\t\t\t\telementType: cmd.MakeMoveVec.type ?? undefined,\n\t\t\t\t\t\telements: cmd.MakeMoveVec.elements.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Upgrade':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'upgrade',\n\t\t\t\t\tupgrade: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Upgrade.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Upgrade.dependencies,\n\t\t\t\t\t\tpackage: cmd.Upgrade.package,\n\t\t\t\t\t\tticket: tsArgumentToGrpcArgument(cmd.Upgrade.ticket),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(cmd)}`);\n\t}\n}\n\nexport function transactionDataToGrpcTransaction(data: TransactionData): GrpcTransaction {\n\tconst grpcInputs = data.inputs.map(callArgToGrpcInput);\n\n\tconst grpcCommands = data.commands.map(tsCommandToGrpcCommand);\n\n\tconst transaction: GrpcTransaction = {\n\t\tversion: 1,\n\t\tkind: {\n\t\t\tdata: {\n\t\t\t\toneofKind: 'programmableTransaction',\n\t\t\t\tprogrammableTransaction: {\n\t\t\t\t\tinputs: grpcInputs,\n\t\t\t\t\tcommands: grpcCommands,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n\n\tif (data.sender) {\n\t\ttransaction.sender = data.sender;\n\t}\n\n\tconst gasOwner = data.gasData.owner ?? data.sender;\n\n\ttransaction.gasPayment = {\n\t\tobjects: data.gasData.payment\n\t\t\t? data.gasData.payment.map((ref) => ({\n\t\t\t\t\tobjectId: ref.objectId,\n\t\t\t\t\tversion: BigInt(ref.version),\n\t\t\t\t\tdigest: ref.digest,\n\t\t\t\t}))\n\t\t\t: [],\n\t\tprice: data.gasData.price ? BigInt(data.gasData.price) : undefined,\n\t\tbudget: data.gasData.budget ? BigInt(data.gasData.budget) : undefined,\n\t};\n\n\tif (gasOwner) {\n\t\ttransaction.gasPayment.owner = gasOwner;\n\t}\n\n\tif (data.expiration) {\n\t\tif ('None' in data.expiration) {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.NONE,\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'Epoch') {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.EPOCH,\n\t\t\t\tepoch: BigInt(data.expiration.Epoch),\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'ValidDuring') {\n\t\t\tconst validDuring = data.expiration.ValidDuring;\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.VALID_DURING,\n\t\t\t\tminEpoch: validDuring.minEpoch != null ? BigInt(validDuring.minEpoch) : undefined,\n\t\t\t\tepoch: validDuring.maxEpoch != null ? BigInt(validDuring.maxEpoch) : undefined,\n\t\t\t\tchain: validDuring.chain,\n\t\t\t\tnonce: validDuring.nonce,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn transaction;\n}\n\nexport function applyGrpcResolvedTransaction(\n\ttransactionData: TransactionDataBuilder,\n\tresolvedTransaction: GrpcTransaction,\n\toptions?: { onlyTransactionKind?: boolean },\n): void {\n\tconst resolved = grpcTransactionToTransactionData(resolvedTransaction);\n\n\tif (options?.onlyTransactionKind) {\n\t\ttransactionData.applyResolvedData({\n\t\t\t...resolved,\n\t\t\tgasData: {\n\t\t\t\tbudget: null,\n\t\t\t\towner: null,\n\t\t\t\tpayment: null,\n\t\t\t\tprice: null,\n\t\t\t},\n\t\t\texpiration: null,\n\t\t});\n\t} else {\n\t\ttransactionData.applyResolvedData(resolved);\n\t}\n}\n\n/**\n * Converts an array of ObjectReferences from gRPC format to TypeScript SuiObjectRef format\n */\nexport function grpcObjectReferencesToBcs(refs: ObjectReference[]): {\n\tobjectId: string;\n\tversion: string;\n\tdigest: string;\n}[] {\n\treturn refs.map((ref) => ({\n\t\tobjectId: ref.objectId!,\n\t\tversion: ref.version?.toString()!,\n\t\tdigest: ref.digest!,\n\t}));\n}\n\nexport function transactionToGrpcTransaction(transaction: Transaction) {\n\tconst snapshot = transaction.getData();\n\n\tif (!snapshot.sender) {\n\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t}\n\n\treturn transactionDataToGrpcTransaction(snapshot);\n}\n\nexport function transactionToGrpcJson(transaction: Transaction): unknown {\n\tconst grpcTransaction = transactionToGrpcTransaction(transaction);\n\treturn GrpcTransactionType.toJson(grpcTransaction);\n}\n\nfunction grpcInputToCallArg(input: Input): CallArg {\n\tswitch (input.kind) {\n\t\tcase Input_InputKind.PURE:\n\t\t\treturn {\n\t\t\t\t$kind: 'Pure',\n\t\t\t\tPure: { bytes: toBase64(input.pure!) },\n\t\t\t};\n\n\t\tcase Input_InputKind.IMMUTABLE_OR_OWNED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'ImmOrOwnedObject',\n\t\t\t\t\tImmOrOwnedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.SHARED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'SharedObject',\n\t\t\t\t\tSharedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tinitialSharedVersion: input.version!.toString(),\n\t\t\t\t\t\tmutable: input.mutable ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.RECEIVING:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'Receiving',\n\t\t\t\t\tReceiving: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.FUNDS_WITHDRAWAL:\n\t\t\treturn {\n\t\t\t\t$kind: 'FundsWithdrawal',\n\t\t\t\tFundsWithdrawal: {\n\t\t\t\t\treservation: {\n\t\t\t\t\t\t$kind: 'MaxAmountU64' as const,\n\t\t\t\t\t\tMaxAmountU64: input.fundsWithdrawal?.amount?.toString() ?? '0',\n\t\t\t\t\t},\n\t\t\t\t\ttypeArg: {\n\t\t\t\t\t\t$kind: 'Balance' as const,\n\t\t\t\t\t\tBalance: input.fundsWithdrawal?.coinType ?? '0x2::sui::SUI',\n\t\t\t\t\t},\n\t\t\t\t\twithdrawFrom:\n\t\t\t\t\t\tinput.fundsWithdrawal?.source === FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t? { $kind: 'Sponsor' as const, Sponsor: true as const }\n\t\t\t\t\t\t\t: { $kind: 'Sender' as const, Sender: true as const },\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Input kind: ${JSON.stringify(input)}`);\n\t}\n}\n\nfunction grpcArgumentToTsArgument(\n\targ: Argument,\n):\n\t| { $kind: 'GasCoin'; GasCoin: true }\n\t| { $kind: 'Input'; Input: number }\n\t| { $kind: 'Result'; Result: number }\n\t| { $kind: 'NestedResult'; NestedResult: [number, number] } {\n\tswitch (arg.kind) {\n\t\tcase Argument_ArgumentKind.GAS:\n\t\t\treturn { $kind: 'GasCoin', GasCoin: true };\n\t\tcase Argument_ArgumentKind.INPUT:\n\t\t\treturn { $kind: 'Input', Input: arg.input! };\n\t\tcase Argument_ArgumentKind.RESULT:\n\t\t\tif (arg.subresult != null) {\n\t\t\t\treturn { $kind: 'NestedResult', NestedResult: [arg.result!, arg.subresult] };\n\t\t\t}\n\t\t\treturn { $kind: 'Result', Result: arg.result! };\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Argument kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\nfunction grpcCommandToTsCommand(cmd: Command): BcsCommand {\n\tconst command = cmd.command;\n\tif (!command) {\n\t\tthrow new Error('Command is missing');\n\t}\n\n\tswitch (command.oneofKind) {\n\t\tcase 'moveCall':\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveCall',\n\t\t\t\tMoveCall: {\n\t\t\t\t\tpackage: command.moveCall.package!,\n\t\t\t\t\tmodule: command.moveCall.module!,\n\t\t\t\t\tfunction: command.moveCall.function!,\n\t\t\t\t\ttypeArguments: command.moveCall.typeArguments ?? [],\n\t\t\t\t\targuments: command.moveCall.arguments.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'transferObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'TransferObjects',\n\t\t\t\tTransferObjects: {\n\t\t\t\t\tobjects: command.transferObjects.objects.map(grpcArgumentToTsArgument),\n\t\t\t\t\taddress: grpcArgumentToTsArgument(command.transferObjects.address!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'splitCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'SplitCoins',\n\t\t\t\tSplitCoins: {\n\t\t\t\t\tcoin: grpcArgumentToTsArgument(command.splitCoins.coin!),\n\t\t\t\t\tamounts: command.splitCoins.amounts.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'mergeCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'MergeCoins',\n\t\t\t\tMergeCoins: {\n\t\t\t\t\tdestination: grpcArgumentToTsArgument(command.mergeCoins.coin!),\n\t\t\t\t\tsources: command.mergeCoins.coinsToMerge.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'publish':\n\t\t\treturn {\n\t\t\t\t$kind: 'Publish',\n\t\t\t\tPublish: {\n\t\t\t\t\tmodules: command.publish.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.publish.dependencies ?? [],\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'makeMoveVector':\n\t\t\treturn {\n\t\t\t\t$kind: 'MakeMoveVec',\n\t\t\t\tMakeMoveVec: {\n\t\t\t\t\ttype: command.makeMoveVector.elementType ?? null,\n\t\t\t\t\telements: command.makeMoveVector.elements.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'upgrade':\n\t\t\treturn {\n\t\t\t\t$kind: 'Upgrade',\n\t\t\t\tUpgrade: {\n\t\t\t\t\tmodules: command.upgrade.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.upgrade.dependencies ?? [],\n\t\t\t\t\tpackage: command.upgrade.package!,\n\t\t\t\t\tticket: grpcArgumentToTsArgument(command.upgrade.ticket!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(command)}`);\n\t}\n}\n\nexport function grpcTransactionToTransactionData(grpcTx: GrpcTransaction): TransactionData {\n\tconst programmableTx = grpcTx.kind?.data;\n\tif (programmableTx?.oneofKind !== 'programmableTransaction') {\n\t\tthrow new Error('Only programmable transactions are supported');\n\t}\n\n\tconst inputs = programmableTx.programmableTransaction.inputs.map(grpcInputToCallArg);\n\tconst commands = programmableTx.programmableTransaction.commands.map(grpcCommandToTsCommand);\n\n\tlet expiration: TransactionData['expiration'] = null;\n\tif (grpcTx.expiration) {\n\t\tswitch (grpcTx.expiration.kind) {\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.NONE:\n\t\t\t\texpiration = { $kind: 'None', None: true };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.EPOCH:\n\t\t\t\texpiration = { $kind: 'Epoch', Epoch: grpcTx.expiration.epoch!.toString() };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.VALID_DURING:\n\t\t\t\texpiration = {\n\t\t\t\t\t$kind: 'ValidDuring',\n\t\t\t\t\tValidDuring: {\n\t\t\t\t\t\tminEpoch: grpcTx.expiration.minEpoch?.toString() ?? null,\n\t\t\t\t\t\tmaxEpoch: grpcTx.expiration.epoch?.toString() ?? null,\n\t\t\t\t\t\tminTimestamp: null,\n\t\t\t\t\t\tmaxTimestamp: null,\n\t\t\t\t\t\tchain: grpcTx.expiration.chain ?? '',\n\t\t\t\t\t\tnonce: grpcTx.expiration.nonce ?? 0,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tversion: 2 as const,\n\t\tsender: grpcTx.sender ?? null,\n\t\texpiration,\n\t\tgasData: {\n\t\t\tbudget: grpcTx.gasPayment?.budget?.toString() ?? null,\n\t\t\towner: grpcTx.gasPayment?.owner ?? null,\n\t\t\tpayment:\n\t\t\t\tgrpcTx.gasPayment?.objects?.map((obj) => ({\n\t\t\t\t\tobjectId: obj.objectId!,\n\t\t\t\t\tversion: obj.version!.toString(),\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t})) ?? null,\n\t\t\tprice: grpcTx.gasPayment?.price?.toString() ?? null,\n\t\t},\n\t\tinputs,\n\t\tcommands,\n\t};\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/execution_status.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * The status of an executed transaction.\n *\n * @generated from protobuf message sui.rpc.v2.ExecutionStatus\n */\nexport interface ExecutionStatus {\n\t/**\n\t * Indicates if the transaction was successful or not.\n\t *\n\t * @generated from protobuf field: optional bool success = 1;\n\t */\n\tsuccess?: boolean;\n\t/**\n\t * The error if `success` is false.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ExecutionError error = 2;\n\t */\n\terror?: ExecutionError;\n}\n/**\n * An error that can occur during the execution of a transaction.\n *\n * @generated from protobuf message sui.rpc.v2.ExecutionError\n */\nexport interface ExecutionError {\n\t/**\n\t * A human readable description of the error\n\t *\n\t * @generated from protobuf field: optional string description = 1;\n\t */\n\tdescription?: string;\n\t/**\n\t * The command, if any, during which the error occurred.\n\t *\n\t * @generated from protobuf field: optional uint64 command = 2;\n\t */\n\tcommand?: bigint;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ExecutionError.ExecutionErrorKind kind = 3;\n\t */\n\tkind?: ExecutionError_ExecutionErrorKind;\n\t/**\n\t * @generated from protobuf oneof: error_details\n\t */\n\terrorDetails:\n\t\t| {\n\t\t\t\toneofKind: 'abort';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.MoveAbort abort = 4;\n\t\t\t\t */\n\t\t\t\tabort: MoveAbort;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'sizeError';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.SizeError size_error = 5;\n\t\t\t\t */\n\t\t\t\tsizeError: SizeError;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'commandArgumentError';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.CommandArgumentError command_argument_error = 6;\n\t\t\t\t */\n\t\t\t\tcommandArgumentError: CommandArgumentError;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'typeArgumentError';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.TypeArgumentError type_argument_error = 7;\n\t\t\t\t */\n\t\t\t\ttypeArgumentError: TypeArgumentError;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'packageUpgradeError';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.PackageUpgradeError package_upgrade_error = 8;\n\t\t\t\t */\n\t\t\t\tpackageUpgradeError: PackageUpgradeError;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'indexError';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.IndexError index_error = 9;\n\t\t\t\t */\n\t\t\t\tindexError: IndexError;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'objectId';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: string object_id = 10;\n\t\t\t\t */\n\t\t\t\tobjectId: string;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'coinDenyListError';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.CoinDenyListError coin_deny_list_error = 11;\n\t\t\t\t */\n\t\t\t\tcoinDenyListError: CoinDenyListError;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'congestedObjects';\n\t\t\t\t/**\n\t\t\t\t * Set of objects that were congested, leading to the transaction's cancellation.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.CongestedObjects congested_objects = 12;\n\t\t\t\t */\n\t\t\t\tcongestedObjects: CongestedObjects;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.ExecutionError.ExecutionErrorKind\n */\nexport enum ExecutionError_ExecutionErrorKind {\n\t/**\n\t * @generated from protobuf enum value: EXECUTION_ERROR_KIND_UNKNOWN = 0;\n\t */\n\tEXECUTION_ERROR_KIND_UNKNOWN = 0,\n\t/**\n\t * Insufficient gas.\n\t *\n\t * @generated from protobuf enum value: INSUFFICIENT_GAS = 1;\n\t */\n\tINSUFFICIENT_GAS = 1,\n\t/**\n\t * Invalid `Gas` object.\n\t *\n\t * @generated from protobuf enum value: INVALID_GAS_OBJECT = 2;\n\t */\n\tINVALID_GAS_OBJECT = 2,\n\t/**\n\t * Invariant violation.\n\t *\n\t * @generated from protobuf enum value: INVARIANT_VIOLATION = 3;\n\t */\n\tINVARIANT_VIOLATION = 3,\n\t/**\n\t * Attempted to use feature that is not supported yet.\n\t *\n\t * @generated from protobuf enum value: FEATURE_NOT_YET_SUPPORTED = 4;\n\t */\n\tFEATURE_NOT_YET_SUPPORTED = 4,\n\t/**\n\t * Move object is larger than the maximum allowed size.\n\t *\n\t * @generated from protobuf enum value: OBJECT_TOO_BIG = 5;\n\t */\n\tOBJECT_TOO_BIG = 5,\n\t/**\n\t * Package is larger than the maximum allowed size.\n\t *\n\t * @generated from protobuf enum value: PACKAGE_TOO_BIG = 6;\n\t */\n\tPACKAGE_TOO_BIG = 6,\n\t/**\n\t * Circular object ownership.\n\t *\n\t * @generated from protobuf enum value: CIRCULAR_OBJECT_OWNERSHIP = 7;\n\t */\n\tCIRCULAR_OBJECT_OWNERSHIP = 7,\n\t/**\n\t * Insufficient coin balance for requested operation.\n\t *\n\t * @generated from protobuf enum value: INSUFFICIENT_COIN_BALANCE = 8;\n\t */\n\tINSUFFICIENT_COIN_BALANCE = 8,\n\t/**\n\t * Coin balance overflowed an u64.\n\t *\n\t * @generated from protobuf enum value: COIN_BALANCE_OVERFLOW = 9;\n\t */\n\tCOIN_BALANCE_OVERFLOW = 9,\n\t/**\n\t * Publish error, non-zero address.\n\t * The modules in the package must have their self-addresses set to zero.\n\t *\n\t * @generated from protobuf enum value: PUBLISH_ERROR_NON_ZERO_ADDRESS = 10;\n\t */\n\tPUBLISH_ERROR_NON_ZERO_ADDRESS = 10,\n\t/**\n\t * Sui Move bytecode verification error.\n\t *\n\t * @generated from protobuf enum value: SUI_MOVE_VERIFICATION_ERROR = 11;\n\t */\n\tSUI_MOVE_VERIFICATION_ERROR = 11,\n\t/**\n\t * Error from a non-abort instruction.\n\t * Possible causes:\n\t * Arithmetic error, stack overflow, max value depth, or similar.\n\t *\n\t * @generated from protobuf enum value: MOVE_PRIMITIVE_RUNTIME_ERROR = 12;\n\t */\n\tMOVE_PRIMITIVE_RUNTIME_ERROR = 12,\n\t/**\n\t * Move runtime abort.\n\t *\n\t * @generated from protobuf enum value: MOVE_ABORT = 13;\n\t */\n\tMOVE_ABORT = 13,\n\t/**\n\t * Bytecode verification error.\n\t *\n\t * @generated from protobuf enum value: VM_VERIFICATION_OR_DESERIALIZATION_ERROR = 14;\n\t */\n\tVM_VERIFICATION_OR_DESERIALIZATION_ERROR = 14,\n\t/**\n\t * MoveVm invariant violation.\n\t *\n\t * @generated from protobuf enum value: VM_INVARIANT_VIOLATION = 15;\n\t */\n\tVM_INVARIANT_VIOLATION = 15,\n\t/**\n\t * Function not found.\n\t *\n\t * @generated from protobuf enum value: FUNCTION_NOT_FOUND = 16;\n\t */\n\tFUNCTION_NOT_FOUND = 16,\n\t/**\n\t * Parity mismatch for Move function.\n\t * The number of arguments does not match the number of parameters.\n\t *\n\t * @generated from protobuf enum value: ARITY_MISMATCH = 17;\n\t */\n\tARITY_MISMATCH = 17,\n\t/**\n\t * Type parity mismatch for Move function.\n\t * Mismatch between the number of actual versus expected type arguments.\n\t *\n\t * @generated from protobuf enum value: TYPE_ARITY_MISMATCH = 18;\n\t */\n\tTYPE_ARITY_MISMATCH = 18,\n\t/**\n\t * Non-entry function invoked. Move Call must start with an entry function.\n\t *\n\t * @generated from protobuf enum value: NON_ENTRY_FUNCTION_INVOKED = 19;\n\t */\n\tNON_ENTRY_FUNCTION_INVOKED = 19,\n\t/**\n\t * Invalid command argument.\n\t *\n\t * @generated from protobuf enum value: COMMAND_ARGUMENT_ERROR = 20;\n\t */\n\tCOMMAND_ARGUMENT_ERROR = 20,\n\t/**\n\t * Type argument error.\n\t *\n\t * @generated from protobuf enum value: TYPE_ARGUMENT_ERROR = 21;\n\t */\n\tTYPE_ARGUMENT_ERROR = 21,\n\t/**\n\t * Unused result without the drop ability.\n\t *\n\t * @generated from protobuf enum value: UNUSED_VALUE_WITHOUT_DROP = 22;\n\t */\n\tUNUSED_VALUE_WITHOUT_DROP = 22,\n\t/**\n\t * Invalid public Move function signature.\n\t * Unsupported return type for return value.\n\t *\n\t * @generated from protobuf enum value: INVALID_PUBLIC_FUNCTION_RETURN_TYPE = 23;\n\t */\n\tINVALID_PUBLIC_FUNCTION_RETURN_TYPE = 23,\n\t/**\n\t * Invalid transfer object, object does not have public transfer.\n\t *\n\t * @generated from protobuf enum value: INVALID_TRANSFER_OBJECT = 24;\n\t */\n\tINVALID_TRANSFER_OBJECT = 24,\n\t/**\n\t * Effects from the transaction are too large.\n\t *\n\t * @generated from protobuf enum value: EFFECTS_TOO_LARGE = 25;\n\t */\n\tEFFECTS_TOO_LARGE = 25,\n\t/**\n\t * Publish or Upgrade is missing dependency.\n\t *\n\t * @generated from protobuf enum value: PUBLISH_UPGRADE_MISSING_DEPENDENCY = 26;\n\t */\n\tPUBLISH_UPGRADE_MISSING_DEPENDENCY = 26,\n\t/**\n\t * Publish or upgrade dependency downgrade.\n\t *\n\t * Indirect (transitive) dependency of published or upgraded package has been assigned an\n\t * on-chain version that is less than the version required by one of the package's\n\t * transitive dependencies.\n\t *\n\t * @generated from protobuf enum value: PUBLISH_UPGRADE_DEPENDENCY_DOWNGRADE = 27;\n\t */\n\tPUBLISH_UPGRADE_DEPENDENCY_DOWNGRADE = 27,\n\t/**\n\t * Invalid package upgrade.\n\t *\n\t * @generated from protobuf enum value: PACKAGE_UPGRADE_ERROR = 28;\n\t */\n\tPACKAGE_UPGRADE_ERROR = 28,\n\t/**\n\t * Indicates the transaction tried to write objects too large to storage.\n\t *\n\t * @generated from protobuf enum value: WRITTEN_OBJECTS_TOO_LARGE = 29;\n\t */\n\tWRITTEN_OBJECTS_TOO_LARGE = 29,\n\t/**\n\t * Certificate is on the deny list.\n\t *\n\t * @generated from protobuf enum value: CERTIFICATE_DENIED = 30;\n\t */\n\tCERTIFICATE_DENIED = 30,\n\t/**\n\t * Sui Move bytecode verification timed out.\n\t *\n\t * @generated from protobuf enum value: SUI_MOVE_VERIFICATION_TIMEDOUT = 31;\n\t */\n\tSUI_MOVE_VERIFICATION_TIMEDOUT = 31,\n\t/**\n\t * The requested consensus object operation is not allowed.\n\t *\n\t * @generated from protobuf enum value: CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED = 32;\n\t */\n\tCONSENSUS_OBJECT_OPERATION_NOT_ALLOWED = 32,\n\t/**\n\t * Requested consensus object has been deleted.\n\t *\n\t * @generated from protobuf enum value: INPUT_OBJECT_DELETED = 33;\n\t */\n\tINPUT_OBJECT_DELETED = 33,\n\t/**\n\t * Certificate is canceled due to congestion on consensus objects.\n\t *\n\t * @generated from protobuf enum value: EXECUTION_CANCELED_DUE_TO_CONSENSUS_OBJECT_CONGESTION = 34;\n\t */\n\tEXECUTION_CANCELED_DUE_TO_CONSENSUS_OBJECT_CONGESTION = 34,\n\t/**\n\t * Address is denied for this coin type.\n\t *\n\t * @generated from protobuf enum value: ADDRESS_DENIED_FOR_COIN = 35;\n\t */\n\tADDRESS_DENIED_FOR_COIN = 35,\n\t/**\n\t * Coin type is globally paused for use.\n\t *\n\t * @generated from protobuf enum value: COIN_TYPE_GLOBAL_PAUSE = 36;\n\t */\n\tCOIN_TYPE_GLOBAL_PAUSE = 36,\n\t/**\n\t * Certificate is canceled because randomness could not be generated this epoch.\n\t *\n\t * @generated from protobuf enum value: EXECUTION_CANCELED_DUE_TO_RANDOMNESS_UNAVAILABLE = 37;\n\t */\n\tEXECUTION_CANCELED_DUE_TO_RANDOMNESS_UNAVAILABLE = 37,\n\t/**\n\t * Move vector element (passed to MakeMoveVec) with size {value_size} is larger \\\n\t * than the maximum size {max_scaled_size}. Note that this maximum is scaled based on the \\\n\t * type of the vector element.\n\t *\n\t * @generated from protobuf enum value: MOVE_VECTOR_ELEM_TOO_BIG = 38;\n\t */\n\tMOVE_VECTOR_ELEM_TOO_BIG = 38,\n\t/**\n\t * Move value (possibly an upgrade ticket or a dev-inspect value) with size {value_size} \\\n\t * is larger than the maximum size {max_scaled_size}. Note that this maximum is scaled based \\\n\t * on the type of the value.\n\t *\n\t * @generated from protobuf enum value: MOVE_RAW_VALUE_TOO_BIG = 39;\n\t */\n\tMOVE_RAW_VALUE_TOO_BIG = 39,\n\t/**\n\t * A valid linkage was unable to be determined for the transaction or one of its commands.\n\t *\n\t * @generated from protobuf enum value: INVALID_LINKAGE = 40;\n\t */\n\tINVALID_LINKAGE = 40,\n\t/**\n\t * Insufficient funds for transaction withdrawal\n\t *\n\t * @generated from protobuf enum value: INSUFFICIENT_FUNDS_FOR_WITHDRAW = 41;\n\t */\n\tINSUFFICIENT_FUNDS_FOR_WITHDRAW = 41,\n\t/**\n\t * An input object with non-exclusive write mutability was modified\n\t *\n\t * @generated from protobuf enum value: NON_EXCLUSIVE_WRITE_INPUT_OBJECT_MODIFIED = 42;\n\t */\n\tNON_EXCLUSIVE_WRITE_INPUT_OBJECT_MODIFIED = 42,\n}\n/**\n * @generated from protobuf message sui.rpc.v2.MoveAbort\n */\nexport interface MoveAbort {\n\t/**\n\t * @generated from protobuf field: optional uint64 abort_code = 1;\n\t */\n\tabortCode?: bigint;\n\t/**\n\t * Location in Move where the error occurred.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveLocation location = 2;\n\t */\n\tlocation?: MoveLocation;\n\t/**\n\t * Extra error information if abort code is a \"Clever Error\"\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.CleverError clever_error = 3;\n\t */\n\tcleverError?: CleverError;\n}\n/**\n * Location in Move bytecode where an error occurred.\n *\n * @generated from protobuf message sui.rpc.v2.MoveLocation\n */\nexport interface MoveLocation {\n\t/**\n\t * The package ID.\n\t *\n\t * @generated from protobuf field: optional string package = 1;\n\t */\n\tpackage?: string;\n\t/**\n\t * The module name.\n\t *\n\t * @generated from protobuf field: optional string module = 2;\n\t */\n\tmodule?: string;\n\t/**\n\t * The function index.\n\t *\n\t * @generated from protobuf field: optional uint32 function = 3;\n\t */\n\tfunction?: number;\n\t/**\n\t * Offset of the instruction where the error occurred.\n\t *\n\t * @generated from protobuf field: optional uint32 instruction = 4;\n\t */\n\tinstruction?: number;\n\t/**\n\t * The name of the function, if available.\n\t *\n\t * @generated from protobuf field: optional string function_name = 5;\n\t */\n\tfunctionName?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.CleverError\n */\nexport interface CleverError {\n\t/**\n\t * @generated from protobuf field: optional uint64 error_code = 1;\n\t */\n\terrorCode?: bigint;\n\t/**\n\t * @generated from protobuf field: optional uint64 line_number = 2;\n\t */\n\tlineNumber?: bigint;\n\t/**\n\t * @generated from protobuf field: optional string constant_name = 3;\n\t */\n\tconstantName?: string;\n\t/**\n\t * @generated from protobuf field: optional string constant_type = 4;\n\t */\n\tconstantType?: string;\n\t/**\n\t * @generated from protobuf oneof: value\n\t */\n\tvalue:\n\t\t| {\n\t\t\t\toneofKind: 'rendered';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: string rendered = 5;\n\t\t\t\t */\n\t\t\t\trendered: string;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'raw';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: bytes raw = 6;\n\t\t\t\t */\n\t\t\t\traw: Uint8Array;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * A size error.\n *\n * @generated from protobuf message sui.rpc.v2.SizeError\n */\nexport interface SizeError {\n\t/**\n\t * The offending size.\n\t *\n\t * @generated from protobuf field: optional uint64 size = 1;\n\t */\n\tsize?: bigint;\n\t/**\n\t * The maximum allowable size.\n\t *\n\t * @generated from protobuf field: optional uint64 max_size = 2;\n\t */\n\tmaxSize?: bigint;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.IndexError\n */\nexport interface IndexError {\n\t/**\n\t * Index of an input or result.\n\t *\n\t * @generated from protobuf field: optional uint32 index = 1;\n\t */\n\tindex?: number;\n\t/**\n\t * Index of a subresult.\n\t *\n\t * @generated from protobuf field: optional uint32 subresult = 2;\n\t */\n\tsubresult?: number;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.CoinDenyListError\n */\nexport interface CoinDenyListError {\n\t/**\n\t * Denied address.\n\t *\n\t * @generated from protobuf field: optional string address = 1;\n\t */\n\taddress?: string;\n\t/**\n\t * Coin type.\n\t *\n\t * @generated from protobuf field: optional string coin_type = 2;\n\t */\n\tcoinType?: string;\n}\n/**\n * Set of objects that were congested, leading to the transaction's cancellation.\n *\n * @generated from protobuf message sui.rpc.v2.CongestedObjects\n */\nexport interface CongestedObjects {\n\t/**\n\t * @generated from protobuf field: repeated string objects = 1;\n\t */\n\tobjects: string[];\n}\n/**\n * An error with an argument to a command.\n *\n * @generated from protobuf message sui.rpc.v2.CommandArgumentError\n */\nexport interface CommandArgumentError {\n\t/**\n\t * Position of the problematic argument.\n\t *\n\t * @generated from protobuf field: optional uint32 argument = 1;\n\t */\n\targument?: number;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.CommandArgumentError.CommandArgumentErrorKind kind = 2;\n\t */\n\tkind?: CommandArgumentError_CommandArgumentErrorKind;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.IndexError index_error = 3;\n\t */\n\tindexError?: IndexError;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.CommandArgumentError.CommandArgumentErrorKind\n */\nexport enum CommandArgumentError_CommandArgumentErrorKind {\n\t/**\n\t * @generated from protobuf enum value: COMMAND_ARGUMENT_ERROR_KIND_UNKNOWN = 0;\n\t */\n\tCOMMAND_ARGUMENT_ERROR_KIND_UNKNOWN = 0,\n\t/**\n\t * The type of the value does not match the expected type.\n\t *\n\t * @generated from protobuf enum value: TYPE_MISMATCH = 1;\n\t */\n\tTYPE_MISMATCH = 1,\n\t/**\n\t * The argument cannot be deserialized into a value of the specified type.\n\t *\n\t * @generated from protobuf enum value: INVALID_BCS_BYTES = 2;\n\t */\n\tINVALID_BCS_BYTES = 2,\n\t/**\n\t * The argument cannot be instantiated from raw bytes.\n\t *\n\t * @generated from protobuf enum value: INVALID_USAGE_OF_PURE_ARGUMENT = 3;\n\t */\n\tINVALID_USAGE_OF_PURE_ARGUMENT = 3,\n\t/**\n\t * Invalid argument to private entry function.\n\t * Private entry functions cannot take arguments from other Move functions.\n\t *\n\t * @generated from protobuf enum value: INVALID_ARGUMENT_TO_PRIVATE_ENTRY_FUNCTION = 4;\n\t */\n\tINVALID_ARGUMENT_TO_PRIVATE_ENTRY_FUNCTION = 4,\n\t/**\n\t * Out of bounds access to input or results.\n\t *\n\t * `index` field will be set indicating the invalid index value.\n\t *\n\t * @generated from protobuf enum value: INDEX_OUT_OF_BOUNDS = 5;\n\t */\n\tINDEX_OUT_OF_BOUNDS = 5,\n\t/**\n\t * Out of bounds access to subresult.\n\t *\n\t * `index` and `subresult` fields will be set indicating the invalid index value.\n\t *\n\t * @generated from protobuf enum value: SECONDARY_INDEX_OUT_OF_BOUNDS = 6;\n\t */\n\tSECONDARY_INDEX_OUT_OF_BOUNDS = 6,\n\t/**\n\t * Invalid usage of result.\n\t * Expected a single result but found either no return value or multiple.\n\t * `index` field will be set indicating the invalid index value.\n\t *\n\t * @generated from protobuf enum value: INVALID_RESULT_ARITY = 7;\n\t */\n\tINVALID_RESULT_ARITY = 7,\n\t/**\n\t * Invalid usage of gas coin.\n\t * The gas coin can only be used by-value with a `TransferObject` command.\n\t *\n\t * @generated from protobuf enum value: INVALID_GAS_COIN_USAGE = 8;\n\t */\n\tINVALID_GAS_COIN_USAGE = 8,\n\t/**\n\t * Invalid usage of Move value.\n\t * - Mutably borrowed values require unique usage.\n\t * - Immutably borrowed values cannot be taken or borrowed mutably.\n\t * - Taken values cannot be used again.\n\t *\n\t * @generated from protobuf enum value: INVALID_VALUE_USAGE = 9;\n\t */\n\tINVALID_VALUE_USAGE = 9,\n\t/**\n\t * Immutable objects cannot be passed by-value.\n\t *\n\t * @generated from protobuf enum value: INVALID_OBJECT_BY_VALUE = 10;\n\t */\n\tINVALID_OBJECT_BY_VALUE = 10,\n\t/**\n\t * Immutable objects cannot be passed by mutable reference, `&mut`.\n\t *\n\t * @generated from protobuf enum value: INVALID_OBJECT_BY_MUT_REF = 11;\n\t */\n\tINVALID_OBJECT_BY_MUT_REF = 11,\n\t/**\n\t * Consensus object operations such as wrapping, freezing, or converting to owned are not\n\t * allowed.\n\t *\n\t * @generated from protobuf enum value: CONSENSUS_OBJECT_OPERATION_NOT_ALLOWED = 12;\n\t */\n\tCONSENSUS_OBJECT_OPERATION_NOT_ALLOWED = 12,\n\t/**\n\t * Invalid argument arity. Expected a single argument but found a result that expanded to\n\t * multiple arguments.\n\t *\n\t * @generated from protobuf enum value: INVALID_ARGUMENT_ARITY = 13;\n\t */\n\tINVALID_ARGUMENT_ARITY = 13,\n\t/**\n\t * Object passed to TransferObject does not have public transfer, i.e. the `store` ability\n\t *\n\t * @generated from protobuf enum value: INVALID_TRANSFER_OBJECT = 14;\n\t */\n\tINVALID_TRANSFER_OBJECT = 14,\n\t/**\n\t * First argument to MakeMoveVec is not an object. If no type is specified for MakeMoveVec,\n\t * all arguments must be the same object type.\n\t *\n\t * @generated from protobuf enum value: INVALID_MAKE_MOVE_VEC_NON_OBJECT_ARGUMENT = 15;\n\t */\n\tINVALID_MAKE_MOVE_VEC_NON_OBJECT_ARGUMENT = 15,\n\t/**\n\t * Specified argument location does not have a value and cannot be used\n\t *\n\t * @generated from protobuf enum value: ARGUMENT_WITHOUT_VALUE = 16;\n\t */\n\tARGUMENT_WITHOUT_VALUE = 16,\n\t/**\n\t * Cannot move a borrowed value. The value's type does resulted in this argument usage being\n\t * inferred as a move. This is likely due to the type not having the `copy` ability; although\n\t * in rare cases, it could also be this is the last usage of a value without the `drop`\n\t * ability.\n\t *\n\t * @generated from protobuf enum value: CANNOT_MOVE_BORROWED_VALUE = 17;\n\t */\n\tCANNOT_MOVE_BORROWED_VALUE = 17,\n\t/**\n\t * Cannot write to an argument location that is still borrowed, and where that borrow is an\n\t * extension of that reference. This is likely due to this argument being used in a Move call\n\t * that returns a reference, and that reference is used in a later command.\n\t *\n\t * @generated from protobuf enum value: CANNOT_WRITE_TO_EXTENDED_REFERENCE = 18;\n\t */\n\tCANNOT_WRITE_TO_EXTENDED_REFERENCE = 18,\n\t/**\n\t * The argument specified cannot be used as a reference argument in the Move call. Either the\n\t * argument is a mutable reference and it conflicts with another argument to the call, or the\n\t * argument is mutable and another reference extends it and will be used in a later command.\n\t *\n\t * @generated from protobuf enum value: INVALID_REFERENCE_ARGUMENT = 19;\n\t */\n\tINVALID_REFERENCE_ARGUMENT = 19,\n}\n/**\n * An error with upgrading a package.\n *\n * @generated from protobuf message sui.rpc.v2.PackageUpgradeError\n */\nexport interface PackageUpgradeError {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.PackageUpgradeError.PackageUpgradeErrorKind kind = 1;\n\t */\n\tkind?: PackageUpgradeError_PackageUpgradeErrorKind;\n\t/**\n\t * The Package Id.\n\t *\n\t * @generated from protobuf field: optional string package_id = 2;\n\t */\n\tpackageId?: string;\n\t/**\n\t * A digest.\n\t *\n\t * @generated from protobuf field: optional string digest = 3;\n\t */\n\tdigest?: string;\n\t/**\n\t * The policy.\n\t *\n\t * @generated from protobuf field: optional uint32 policy = 4;\n\t */\n\tpolicy?: number;\n\t/**\n\t * The ticket Id.\n\t *\n\t * @generated from protobuf field: optional string ticket_id = 5;\n\t */\n\tticketId?: string;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.PackageUpgradeError.PackageUpgradeErrorKind\n */\nexport enum PackageUpgradeError_PackageUpgradeErrorKind {\n\t/**\n\t * @generated from protobuf enum value: PACKAGE_UPGRADE_ERROR_KIND_UNKNOWN = 0;\n\t */\n\tPACKAGE_UPGRADE_ERROR_KIND_UNKNOWN = 0,\n\t/**\n\t * Unable to fetch package.\n\t *\n\t * @generated from protobuf enum value: UNABLE_TO_FETCH_PACKAGE = 1;\n\t */\n\tUNABLE_TO_FETCH_PACKAGE = 1,\n\t/**\n\t * Object is not a package.\n\t *\n\t * @generated from protobuf enum value: NOT_A_PACKAGE = 2;\n\t */\n\tNOT_A_PACKAGE = 2,\n\t/**\n\t * Package upgrade is incompatible with previous version.\n\t *\n\t * @generated from protobuf enum value: INCOMPATIBLE_UPGRADE = 3;\n\t */\n\tINCOMPATIBLE_UPGRADE = 3,\n\t/**\n\t * Digest in upgrade ticket and computed digest differ.\n\t *\n\t * @generated from protobuf enum value: DIGEST_DOES_NOT_MATCH = 4;\n\t */\n\tDIGEST_DOES_NOT_MATCH = 4,\n\t/**\n\t * Upgrade policy is not valid.\n\t *\n\t * @generated from protobuf enum value: UNKNOWN_UPGRADE_POLICY = 5;\n\t */\n\tUNKNOWN_UPGRADE_POLICY = 5,\n\t/**\n\t * Package ID does not match `PackageId` in upgrade ticket.\n\t *\n\t * @generated from protobuf enum value: PACKAGE_ID_DOES_NOT_MATCH = 6;\n\t */\n\tPACKAGE_ID_DOES_NOT_MATCH = 6,\n}\n/**\n * Type argument error.\n *\n * @generated from protobuf message sui.rpc.v2.TypeArgumentError\n */\nexport interface TypeArgumentError {\n\t/**\n\t * Index of the problematic type argument.\n\t *\n\t * @generated from protobuf field: optional uint32 type_argument = 1;\n\t */\n\ttypeArgument?: number;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.TypeArgumentError.TypeArgumentErrorKind kind = 2;\n\t */\n\tkind?: TypeArgumentError_TypeArgumentErrorKind;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.TypeArgumentError.TypeArgumentErrorKind\n */\nexport enum TypeArgumentError_TypeArgumentErrorKind {\n\t/**\n\t * @generated from protobuf enum value: TYPE_ARGUMENT_ERROR_KIND_UNKNOWN = 0;\n\t */\n\tTYPE_ARGUMENT_ERROR_KIND_UNKNOWN = 0,\n\t/**\n\t * A type was not found in the module specified.\n\t *\n\t * @generated from protobuf enum value: TYPE_NOT_FOUND = 1;\n\t */\n\tTYPE_NOT_FOUND = 1,\n\t/**\n\t * A type provided did not match the specified constraint.\n\t *\n\t * @generated from protobuf enum value: CONSTRAINT_NOT_SATISFIED = 2;\n\t */\n\tCONSTRAINT_NOT_SATISFIED = 2,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ExecutionStatus$Type extends MessageType<ExecutionStatus> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ExecutionStatus', [\n\t\t\t{ no: 1, name: 'success', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{ no: 2, name: 'error', kind: 'message', T: () => ExecutionError },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ExecutionStatus\n */\nexport const ExecutionStatus = new ExecutionStatus$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ExecutionError$Type extends MessageType<ExecutionError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ExecutionError', [\n\t\t\t{ no: 1, name: 'description', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'command',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.ExecutionError.ExecutionErrorKind',\n\t\t\t\t\tExecutionError_ExecutionErrorKind,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ no: 4, name: 'abort', kind: 'message', oneof: 'errorDetails', T: () => MoveAbort },\n\t\t\t{ no: 5, name: 'size_error', kind: 'message', oneof: 'errorDetails', T: () => SizeError },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'command_argument_error',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'errorDetails',\n\t\t\t\tT: () => CommandArgumentError,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'type_argument_error',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'errorDetails',\n\t\t\t\tT: () => TypeArgumentError,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'package_upgrade_error',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'errorDetails',\n\t\t\t\tT: () => PackageUpgradeError,\n\t\t\t},\n\t\t\t{ no: 9, name: 'index_error', kind: 'message', oneof: 'errorDetails', T: () => IndexError },\n\t\t\t{\n\t\t\t\tno: 10,\n\t\t\t\tname: 'object_id',\n\t\t\t\tkind: 'scalar',\n\t\t\t\toneof: 'errorDetails',\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 11,\n\t\t\t\tname: 'coin_deny_list_error',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'errorDetails',\n\t\t\t\tT: () => CoinDenyListError,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 12,\n\t\t\t\tname: 'congested_objects',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'errorDetails',\n\t\t\t\tT: () => CongestedObjects,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ExecutionError\n */\nexport const ExecutionError = new ExecutionError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MoveAbort$Type extends MessageType<MoveAbort> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MoveAbort', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'abort_code',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'location', kind: 'message', T: () => MoveLocation },\n\t\t\t{ no: 3, name: 'clever_error', kind: 'message', T: () => CleverError },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MoveAbort\n */\nexport const MoveAbort = new MoveAbort$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MoveLocation$Type extends MessageType<MoveLocation> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MoveLocation', [\n\t\t\t{ no: 1, name: 'package', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'module', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'function', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 4, name: 'instruction', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 5, name: 'function_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MoveLocation\n */\nexport const MoveLocation = new MoveLocation$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CleverError$Type extends MessageType<CleverError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CleverError', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'error_code',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'line_number',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'constant_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'constant_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'rendered', kind: 'scalar', oneof: 'value', T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 6, name: 'raw', kind: 'scalar', oneof: 'value', T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CleverError\n */\nexport const CleverError = new CleverError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SizeError$Type extends MessageType<SizeError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SizeError', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'size',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'max_size',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SizeError\n */\nexport const SizeError = new SizeError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass IndexError$Type extends MessageType<IndexError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.IndexError', [\n\t\t\t{ no: 1, name: 'index', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 2, name: 'subresult', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.IndexError\n */\nexport const IndexError = new IndexError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CoinDenyListError$Type extends MessageType<CoinDenyListError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CoinDenyListError', [\n\t\t\t{ no: 1, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'coin_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CoinDenyListError\n */\nexport const CoinDenyListError = new CoinDenyListError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CongestedObjects$Type extends MessageType<CongestedObjects> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CongestedObjects', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'objects',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CongestedObjects\n */\nexport const CongestedObjects = new CongestedObjects$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CommandArgumentError$Type extends MessageType<CommandArgumentError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CommandArgumentError', [\n\t\t\t{ no: 1, name: 'argument', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.CommandArgumentError.CommandArgumentErrorKind',\n\t\t\t\t\tCommandArgumentError_CommandArgumentErrorKind,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ no: 3, name: 'index_error', kind: 'message', T: () => IndexError },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CommandArgumentError\n */\nexport const CommandArgumentError = new CommandArgumentError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PackageUpgradeError$Type extends MessageType<PackageUpgradeError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.PackageUpgradeError', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.PackageUpgradeError.PackageUpgradeErrorKind',\n\t\t\t\t\tPackageUpgradeError_PackageUpgradeErrorKind,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ no: 2, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'policy', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 5, name: 'ticket_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.PackageUpgradeError\n */\nexport const PackageUpgradeError = new PackageUpgradeError$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass TypeArgumentError$Type extends MessageType<TypeArgumentError> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TypeArgumentError', [\n\t\t\t{ no: 1, name: 'type_argument', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.TypeArgumentError.TypeArgumentErrorKind',\n\t\t\t\t\tTypeArgumentError_TypeArgumentErrorKind,\n\t\t\t\t],\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TypeArgumentError\n */\nexport const TypeArgumentError = new TypeArgumentError$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/gas_cost_summary.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * Summary of gas charges.\n *\n * @generated from protobuf message sui.rpc.v2.GasCostSummary\n */\nexport interface GasCostSummary {\n\t/**\n\t * Cost of computation/execution.\n\t *\n\t * @generated from protobuf field: optional uint64 computation_cost = 1;\n\t */\n\tcomputationCost?: bigint;\n\t/**\n\t * Storage cost, it's the sum of all storage cost for all objects created or mutated.\n\t *\n\t * @generated from protobuf field: optional uint64 storage_cost = 2;\n\t */\n\tstorageCost?: bigint;\n\t/**\n\t * The amount of storage cost refunded to the user for all objects deleted or mutated in the\n\t * transaction.\n\t *\n\t * @generated from protobuf field: optional uint64 storage_rebate = 3;\n\t */\n\tstorageRebate?: bigint;\n\t/**\n\t * The fee for the rebate. The portion of the storage rebate kept by the system.\n\t *\n\t * @generated from protobuf field: optional uint64 non_refundable_storage_fee = 4;\n\t */\n\tnonRefundableStorageFee?: bigint;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass GasCostSummary$Type extends MessageType<GasCostSummary> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GasCostSummary', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'computation_cost',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'storage_cost',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'storage_rebate',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'non_refundable_storage_fee',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GasCostSummary\n */\nexport const GasCostSummary = new GasCostSummary$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/effects.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Owner } from './owner.js';\nimport { ObjectReference } from './object_reference.js';\nimport { GasCostSummary } from './gas_cost_summary.js';\nimport { ExecutionStatus } from './execution_status.js';\nimport { Bcs } from './bcs.js';\n/**\n * The effects of executing a transaction.\n *\n * @generated from protobuf message sui.rpc.v2.TransactionEffects\n */\nexport interface TransactionEffects {\n\t/**\n\t * This TransactionEffects serialized as BCS.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;\n\t */\n\tbcs?: Bcs;\n\t/**\n\t * The digest of this TransactionEffects.\n\t *\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n\t/**\n\t * Version of this TransactionEffects.\n\t *\n\t * @generated from protobuf field: optional int32 version = 3;\n\t */\n\tversion?: number;\n\t/**\n\t * The status of the execution.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ExecutionStatus status = 4;\n\t */\n\tstatus?: ExecutionStatus;\n\t/**\n\t * The epoch when this transaction was executed.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 5;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * The gas used by this transaction.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.GasCostSummary gas_used = 6;\n\t */\n\tgasUsed?: GasCostSummary;\n\t/**\n\t * The transaction digest.\n\t *\n\t * @generated from protobuf field: optional string transaction_digest = 7;\n\t */\n\ttransactionDigest?: string;\n\t/**\n\t * Information about the gas object. Also present in the `changed_objects` vector.\n\t *\n\t * System transactions that don't require gas will leave this as `None`.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ChangedObject gas_object = 8;\n\t */\n\tgasObject?: ChangedObject;\n\t/**\n\t * The digest of the events emitted during execution,\n\t * can be `None` if the transaction does not emit any event.\n\t *\n\t * @generated from protobuf field: optional string events_digest = 9;\n\t */\n\teventsDigest?: string;\n\t/**\n\t * The set of transaction digests this transaction depends on.\n\t *\n\t * @generated from protobuf field: repeated string dependencies = 10;\n\t */\n\tdependencies: string[];\n\t/**\n\t * The version number of all the written objects (excluding packages) by this transaction.\n\t *\n\t * @generated from protobuf field: optional uint64 lamport_version = 11;\n\t */\n\tlamportVersion?: bigint;\n\t/**\n\t * Objects whose state are changed by this transaction.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ChangedObject changed_objects = 12;\n\t */\n\tchangedObjects: ChangedObject[];\n\t/**\n\t * Consensus objects that are not mutated in this transaction. Unlike owned objects,\n\t * read-only consensus objects' version are not committed in the transaction,\n\t * and in order for a node to catch up and execute it without consensus sequencing,\n\t * the version needs to be committed in the effects.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.UnchangedConsensusObject unchanged_consensus_objects = 13;\n\t */\n\tunchangedConsensusObjects: UnchangedConsensusObject[];\n\t/**\n\t * Auxiliary data that are not protocol-critical, generated as part of the effects but are stored separately.\n\t * Storing it separately allows us to avoid bloating the effects with data that are not critical.\n\t * It also provides more flexibility on the format and type of the data.\n\t *\n\t * @generated from protobuf field: optional string auxiliary_data_digest = 14;\n\t */\n\tauxiliaryDataDigest?: string;\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.ObjectReference unchanged_loaded_runtime_objects = 15;\n\t */\n\tunchangedLoadedRuntimeObjects: ObjectReference[];\n}\n/**\n * Input/output state of an object that was changed during execution.\n *\n * @generated from protobuf message sui.rpc.v2.ChangedObject\n */\nexport interface ChangedObject {\n\t/**\n\t * ID of the object.\n\t *\n\t * @generated from protobuf field: optional string object_id = 1;\n\t */\n\tobjectId?: string;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ChangedObject.InputObjectState input_state = 2;\n\t */\n\tinputState?: ChangedObject_InputObjectState;\n\t/**\n\t * Version of the object before this transaction executed.\n\t *\n\t * @generated from protobuf field: optional uint64 input_version = 3;\n\t */\n\tinputVersion?: bigint;\n\t/**\n\t * Digest of the object before this transaction executed.\n\t *\n\t * @generated from protobuf field: optional string input_digest = 4;\n\t */\n\tinputDigest?: string;\n\t/**\n\t * Owner of the object before this transaction executed.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Owner input_owner = 5;\n\t */\n\tinputOwner?: Owner;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ChangedObject.OutputObjectState output_state = 6;\n\t */\n\toutputState?: ChangedObject_OutputObjectState;\n\t/**\n\t * Version of the object after this transaction executed.\n\t *\n\t * @generated from protobuf field: optional uint64 output_version = 7;\n\t */\n\toutputVersion?: bigint;\n\t/**\n\t * Digest of the object after this transaction executed.\n\t *\n\t * @generated from protobuf field: optional string output_digest = 8;\n\t */\n\toutputDigest?: string;\n\t/**\n\t * Owner of the object after this transaction executed.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Owner output_owner = 9;\n\t */\n\toutputOwner?: Owner;\n\t/**\n\t * The contents of the accumulator write when `output_state` is `OUTPUT_OBJECT_STATE_ACCUMULATOR_WRITE`\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.AccumulatorWrite accumulator_write = 12;\n\t */\n\taccumulatorWrite?: AccumulatorWrite;\n\t/**\n\t * What happened to an `ObjectId` during execution.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ChangedObject.IdOperation id_operation = 10;\n\t */\n\tidOperation?: ChangedObject_IdOperation;\n\t/**\n\t * Type information is not provided by the effects structure but is instead\n\t * provided by an indexing layer\n\t *\n\t * @generated from protobuf field: optional string object_type = 11;\n\t */\n\tobjectType?: string;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.ChangedObject.InputObjectState\n */\nexport enum ChangedObject_InputObjectState {\n\t/**\n\t * @generated from protobuf enum value: INPUT_OBJECT_STATE_UNKNOWN = 0;\n\t */\n\tUNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: INPUT_OBJECT_STATE_DOES_NOT_EXIST = 1;\n\t */\n\tDOES_NOT_EXIST = 1,\n\t/**\n\t * @generated from protobuf enum value: INPUT_OBJECT_STATE_EXISTS = 2;\n\t */\n\tEXISTS = 2,\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.ChangedObject.OutputObjectState\n */\nexport enum ChangedObject_OutputObjectState {\n\t/**\n\t * @generated from protobuf enum value: OUTPUT_OBJECT_STATE_UNKNOWN = 0;\n\t */\n\tUNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: OUTPUT_OBJECT_STATE_DOES_NOT_EXIST = 1;\n\t */\n\tDOES_NOT_EXIST = 1,\n\t/**\n\t * @generated from protobuf enum value: OUTPUT_OBJECT_STATE_OBJECT_WRITE = 2;\n\t */\n\tOBJECT_WRITE = 2,\n\t/**\n\t * @generated from protobuf enum value: OUTPUT_OBJECT_STATE_PACKAGE_WRITE = 3;\n\t */\n\tPACKAGE_WRITE = 3,\n\t/**\n\t * @generated from protobuf enum value: OUTPUT_OBJECT_STATE_ACCUMULATOR_WRITE = 4;\n\t */\n\tACCUMULATOR_WRITE = 4,\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.ChangedObject.IdOperation\n */\nexport enum ChangedObject_IdOperation {\n\t/**\n\t * @generated from protobuf enum value: ID_OPERATION_UNKNOWN = 0;\n\t */\n\tID_OPERATION_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: NONE = 1;\n\t */\n\tNONE = 1,\n\t/**\n\t * @generated from protobuf enum value: CREATED = 2;\n\t */\n\tCREATED = 2,\n\t/**\n\t * @generated from protobuf enum value: DELETED = 3;\n\t */\n\tDELETED = 3,\n}\n/**\n * An entry in an event digest accumulator value.\n *\n * @generated from protobuf message sui.rpc.v2.EventDigestEntry\n */\nexport interface EventDigestEntry {\n\t/**\n\t * Index of the event within its transaction.\n\t *\n\t * @generated from protobuf field: optional uint64 event_index = 1;\n\t */\n\teventIndex?: bigint;\n\t/**\n\t * Digest of the event.\n\t *\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.AccumulatorWrite\n */\nexport interface AccumulatorWrite {\n\t/**\n\t * @generated from protobuf field: optional string address = 1;\n\t */\n\taddress?: string;\n\t/**\n\t * @generated from protobuf field: optional string accumulator_type = 2;\n\t */\n\taccumulatorType?: string;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.AccumulatorWrite.AccumulatorOperation operation = 3;\n\t */\n\toperation?: AccumulatorWrite_AccumulatorOperation;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.AccumulatorWrite.AccumulatorValue value_kind = 4;\n\t */\n\tvalueKind?: AccumulatorWrite_AccumulatorValue;\n\t/**\n\t * Set when the accumulator value is an integer (value_kind = INTEGER).\n\t *\n\t * @generated from protobuf field: optional uint64 integer_value = 5;\n\t */\n\tintegerValue?: bigint;\n\t/**\n\t * Set, with len 2, when the accumulator value is an integer tuple\n\t * (value_kind = INTEGER_TUPLE).\n\t *\n\t * @generated from protobuf field: repeated uint64 integer_tuple = 6;\n\t */\n\tintegerTuple: bigint[];\n\t/**\n\t * Set when the accumulator value is an event digest list (value_kind = EVENT_DIGEST).\n\t * Contains a non-empty list of (event_index, digest) pairs representing\n\t * authenticated event stream entries within a transaction.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.EventDigestEntry event_digest_value = 7;\n\t */\n\teventDigestValue: EventDigestEntry[];\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.AccumulatorWrite.AccumulatorOperation\n */\nexport enum AccumulatorWrite_AccumulatorOperation {\n\t/**\n\t * @generated from protobuf enum value: ACCUMULATOR_OPERATION_UNKNOWN = 0;\n\t */\n\tACCUMULATOR_OPERATION_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: MERGE = 1;\n\t */\n\tMERGE = 1,\n\t/**\n\t * @generated from protobuf enum value: SPLIT = 2;\n\t */\n\tSPLIT = 2,\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.AccumulatorWrite.AccumulatorValue\n */\nexport enum AccumulatorWrite_AccumulatorValue {\n\t/**\n\t * @generated from protobuf enum value: ACCUMULATOR_VALUE_UNKNOWN = 0;\n\t */\n\tACCUMULATOR_VALUE_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: INTEGER = 1;\n\t */\n\tINTEGER = 1,\n\t/**\n\t * @generated from protobuf enum value: INTEGER_TUPLE = 2;\n\t */\n\tINTEGER_TUPLE = 2,\n\t/**\n\t * @generated from protobuf enum value: EVENT_DIGEST = 3;\n\t */\n\tEVENT_DIGEST = 3,\n}\n/**\n * A consensus object that wasn't changed during execution.\n *\n * @generated from protobuf message sui.rpc.v2.UnchangedConsensusObject\n */\nexport interface UnchangedConsensusObject {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.UnchangedConsensusObject.UnchangedConsensusObjectKind kind = 1;\n\t */\n\tkind?: UnchangedConsensusObject_UnchangedConsensusObjectKind;\n\t/**\n\t * ObjectId of the consensus object.\n\t *\n\t * @generated from protobuf field: optional string object_id = 2;\n\t */\n\tobjectId?: string;\n\t/**\n\t * Version of the consensus object.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 3;\n\t */\n\tversion?: bigint;\n\t/**\n\t * Digest of the consensus object.\n\t *\n\t * @generated from protobuf field: optional string digest = 4;\n\t */\n\tdigest?: string;\n\t/**\n\t * Type information is not provided by the effects structure but is instead\n\t * provided by an indexing layer\n\t *\n\t * @generated from protobuf field: optional string object_type = 5;\n\t */\n\tobjectType?: string;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.UnchangedConsensusObject.UnchangedConsensusObjectKind\n */\nexport enum UnchangedConsensusObject_UnchangedConsensusObjectKind {\n\t/**\n\t * @generated from protobuf enum value: UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN = 0;\n\t */\n\tUNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN = 0,\n\t/**\n\t * Read-only consensus object from the input.\n\t *\n\t * @generated from protobuf enum value: READ_ONLY_ROOT = 1;\n\t */\n\tREAD_ONLY_ROOT = 1,\n\t/**\n\t * Objects with ended consensus streams that appear mutably/owned in the input.\n\t *\n\t * @generated from protobuf enum value: MUTATE_CONSENSUS_STREAM_ENDED = 2;\n\t */\n\tMUTATE_CONSENSUS_STREAM_ENDED = 2,\n\t/**\n\t * Objects with ended consensus streams objects that appear as read-only in the input.\n\t *\n\t * @generated from protobuf enum value: READ_CONSENSUS_STREAM_ENDED = 3;\n\t */\n\tREAD_CONSENSUS_STREAM_ENDED = 3,\n\t/**\n\t * Consensus objects that were congested and resulted in this transaction being\n\t * canceled.\n\t *\n\t * @generated from protobuf enum value: CANCELED = 4;\n\t */\n\tCANCELED = 4,\n\t/**\n\t * Read of a per-epoch config object that should remain the same during an\n\t * epoch. This optionally will indicate the sequence number of the config\n\t * object at the start of the epoch.\n\t *\n\t * @generated from protobuf enum value: PER_EPOCH_CONFIG = 5;\n\t */\n\tPER_EPOCH_CONFIG = 5,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransactionEffects$Type extends MessageType<TransactionEffects> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TransactionEffects', [\n\t\t\t{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'version', kind: 'scalar', opt: true, T: 5 /*ScalarType.INT32*/ },\n\t\t\t{ no: 4, name: 'status', kind: 'message', T: () => ExecutionStatus },\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 6, name: 'gas_used', kind: 'message', T: () => GasCostSummary },\n\t\t\t{ no: 7, name: 'transaction_digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 8, name: 'gas_object', kind: 'message', T: () => ChangedObject },\n\t\t\t{ no: 9, name: 'events_digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 10,\n\t\t\t\tname: 'dependencies',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 11,\n\t\t\t\tname: 'lamport_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 12,\n\t\t\t\tname: 'changed_objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ChangedObject,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 13,\n\t\t\t\tname: 'unchanged_consensus_objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => UnchangedConsensusObject,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 14,\n\t\t\t\tname: 'auxiliary_data_digest',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 15,\n\t\t\t\tname: 'unchanged_loaded_runtime_objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ObjectReference,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TransactionEffects\n */\nexport const TransactionEffects = new TransactionEffects$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ChangedObject$Type extends MessageType<ChangedObject> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ChangedObject', [\n\t\t\t{ no: 1, name: 'object_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'input_state',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.ChangedObject.InputObjectState',\n\t\t\t\t\tChangedObject_InputObjectState,\n\t\t\t\t\t'INPUT_OBJECT_STATE_',\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'input_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 4, name: 'input_digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'input_owner', kind: 'message', T: () => Owner },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'output_state',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.ChangedObject.OutputObjectState',\n\t\t\t\t\tChangedObject_OutputObjectState,\n\t\t\t\t\t'OUTPUT_OBJECT_STATE_',\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'output_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 8, name: 'output_digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 9, name: 'output_owner', kind: 'message', T: () => Owner },\n\t\t\t{ no: 12, name: 'accumulator_write', kind: 'message', T: () => AccumulatorWrite },\n\t\t\t{\n\t\t\t\tno: 10,\n\t\t\t\tname: 'id_operation',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.ChangedObject.IdOperation', ChangedObject_IdOperation],\n\t\t\t},\n\t\t\t{ no: 11, name: 'object_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ChangedObject\n */\nexport const ChangedObject = new ChangedObject$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass EventDigestEntry$Type extends MessageType<EventDigestEntry> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.EventDigestEntry', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'event_index',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.EventDigestEntry\n */\nexport const EventDigestEntry = new EventDigestEntry$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AccumulatorWrite$Type extends MessageType<AccumulatorWrite> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.AccumulatorWrite', [\n\t\t\t{ no: 1, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'accumulator_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'operation',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.AccumulatorWrite.AccumulatorOperation',\n\t\t\t\t\tAccumulatorWrite_AccumulatorOperation,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'value_kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.AccumulatorWrite.AccumulatorValue',\n\t\t\t\t\tAccumulatorWrite_AccumulatorValue,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'integer_value',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'integer_tuple',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 1 /*RepeatType.PACKED*/,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'event_digest_value',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => EventDigestEntry,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.AccumulatorWrite\n */\nexport const AccumulatorWrite = new AccumulatorWrite$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass UnchangedConsensusObject$Type extends MessageType<UnchangedConsensusObject> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.UnchangedConsensusObject', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.UnchangedConsensusObject.UnchangedConsensusObjectKind',\n\t\t\t\t\tUnchangedConsensusObject_UnchangedConsensusObjectKind,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ no: 2, name: 'object_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 4, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'object_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.UnchangedConsensusObject\n */\nexport const UnchangedConsensusObject = new UnchangedConsensusObject$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/signature_scheme.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\n/**\n * Flag use to disambiguate the signature schemes supported by Sui.\n *\n * Note: the enum values defined by this proto message exactly match their\n * expected BCS serialized values when serialized as a u8. See\n * [enum.SignatureScheme](https://mystenlabs.github.io/sui-rust-sdk/sui_sdk_types/enum.SignatureScheme.html)\n * for more information about signature schemes.\n *\n * @generated from protobuf enum sui.rpc.v2.SignatureScheme\n */\nexport enum SignatureScheme {\n\t/**\n\t * @generated from protobuf enum value: ED25519 = 0;\n\t */\n\tED25519 = 0,\n\t/**\n\t * @generated from protobuf enum value: SECP256K1 = 1;\n\t */\n\tSECP256K1 = 1,\n\t/**\n\t * @generated from protobuf enum value: SECP256R1 = 2;\n\t */\n\tSECP256R1 = 2,\n\t/**\n\t * @generated from protobuf enum value: MULTISIG = 3;\n\t */\n\tMULTISIG = 3,\n\t/**\n\t * @generated from protobuf enum value: BLS12381 = 4;\n\t */\n\tBLS12381 = 4,\n\t/**\n\t * @generated from protobuf enum value: ZKLOGIN = 5;\n\t */\n\tZKLOGIN = 5,\n\t/**\n\t * @generated from protobuf enum value: PASSKEY = 6;\n\t */\n\tPASSKEY = 6,\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/signature.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { JwkId } from './jwk.js';\nimport { SignatureScheme } from './signature_scheme.js';\nimport { Bcs } from './bcs.js';\n/**\n * A signature from a user.\n *\n * @generated from protobuf message sui.rpc.v2.UserSignature\n */\nexport interface UserSignature {\n\t/**\n\t * This signature serialized as as BCS.\n\t *\n\t * When provided as input this will support both the form that is length\n\t * prefixed as well as not length prefixed.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;\n\t */\n\tbcs?: Bcs;\n\t/**\n\t * The signature scheme of this signature.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 2;\n\t */\n\tscheme?: SignatureScheme;\n\t/**\n\t * @generated from protobuf oneof: signature\n\t */\n\tsignature:\n\t\t| {\n\t\t\t\toneofKind: 'simple';\n\t\t\t\t/**\n\t\t\t\t * Simple signature if scheme is ed25519 | secp256k1 | secp256r1.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.SimpleSignature simple = 3;\n\t\t\t\t */\n\t\t\t\tsimple: SimpleSignature;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'multisig';\n\t\t\t\t/**\n\t\t\t\t * The multisig aggregated signature if scheme is `MULTISIG`.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.MultisigAggregatedSignature multisig = 4;\n\t\t\t\t */\n\t\t\t\tmultisig: MultisigAggregatedSignature;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'zklogin';\n\t\t\t\t/**\n\t\t\t\t * The zklogin authenticator if scheme is `ZKLOGIN`.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.ZkLoginAuthenticator zklogin = 5;\n\t\t\t\t */\n\t\t\t\tzklogin: ZkLoginAuthenticator;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'passkey';\n\t\t\t\t/**\n\t\t\t\t * The passkey authenticator if scheme is `PASSKEY`.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.PasskeyAuthenticator passkey = 6;\n\t\t\t\t */\n\t\t\t\tpasskey: PasskeyAuthenticator;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * Either an ed25519, secp256k1 or secp256r1 signature\n *\n * @generated from protobuf message sui.rpc.v2.SimpleSignature\n */\nexport interface SimpleSignature {\n\t/**\n\t * The signature scheme of this signature.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 1;\n\t */\n\tscheme?: SignatureScheme;\n\t/**\n\t * Signature bytes\n\t *\n\t * @generated from protobuf field: optional bytes signature = 2;\n\t */\n\tsignature?: Uint8Array;\n\t/**\n\t * Public key bytes\n\t *\n\t * @generated from protobuf field: optional bytes public_key = 3;\n\t */\n\tpublicKey?: Uint8Array;\n}\n/**\n * Public key equivalent for zklogin authenticators.\n *\n * @generated from protobuf message sui.rpc.v2.ZkLoginPublicIdentifier\n */\nexport interface ZkLoginPublicIdentifier {\n\t/**\n\t * @generated from protobuf field: optional string iss = 1;\n\t */\n\tiss?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string address_seed = 2;\n\t */\n\taddressSeed?: string;\n}\n/**\n * Set of valid public keys for multisig committee members.\n *\n * @generated from protobuf message sui.rpc.v2.MultisigMemberPublicKey\n */\nexport interface MultisigMemberPublicKey {\n\t/**\n\t * The signature scheme of this public key.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 1;\n\t */\n\tscheme?: SignatureScheme;\n\t/**\n\t * Public key bytes if scheme is ed25519 | secp256k1 | secp256r1 | passkey.\n\t *\n\t * @generated from protobuf field: optional bytes public_key = 2;\n\t */\n\tpublicKey?: Uint8Array;\n\t/**\n\t * A zklogin public identifier if scheme is zklogin.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ZkLoginPublicIdentifier zklogin = 3;\n\t */\n\tzklogin?: ZkLoginPublicIdentifier;\n}\n/**\n * A member in a multisig committee.\n *\n * @generated from protobuf message sui.rpc.v2.MultisigMember\n */\nexport interface MultisigMember {\n\t/**\n\t * The public key of the committee member.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MultisigMemberPublicKey public_key = 1;\n\t */\n\tpublicKey?: MultisigMemberPublicKey;\n\t/**\n\t * The weight of this member's signature.\n\t *\n\t * @generated from protobuf field: optional uint32 weight = 2;\n\t */\n\tweight?: number;\n}\n/**\n * A multisig committee.\n *\n * @generated from protobuf message sui.rpc.v2.MultisigCommittee\n */\nexport interface MultisigCommittee {\n\t/**\n\t * A list of committee members and their corresponding weight.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.MultisigMember members = 1;\n\t */\n\tmembers: MultisigMember[];\n\t/**\n\t * The threshold of signatures needed to validate a signature from\n\t * this committee.\n\t *\n\t * @generated from protobuf field: optional uint32 threshold = 2;\n\t */\n\tthreshold?: number;\n}\n/**\n * Aggregated signature from members of a multisig committee.\n *\n * @generated from protobuf message sui.rpc.v2.MultisigAggregatedSignature\n */\nexport interface MultisigAggregatedSignature {\n\t/**\n\t * The plain signatures encoded with signature scheme.\n\t *\n\t * The signatures must be in the same order as they are listed in the committee.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.MultisigMemberSignature signatures = 1;\n\t */\n\tsignatures: MultisigMemberSignature[];\n\t/**\n\t * Bitmap indicating which committee members contributed to the\n\t * signature.\n\t *\n\t * @generated from protobuf field: optional uint32 bitmap = 2;\n\t */\n\tbitmap?: number;\n\t/**\n\t * If present, means this signature's on-chain format uses the old\n\t * legacy multisig format.\n\t *\n\t * @generated from protobuf field: optional bytes legacy_bitmap = 3;\n\t */\n\tlegacyBitmap?: Uint8Array;\n\t/**\n\t * The committee to use to validate this signature.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MultisigCommittee committee = 4;\n\t */\n\tcommittee?: MultisigCommittee;\n}\n/**\n * A signature from a member of a multisig committee.\n *\n * @generated from protobuf message sui.rpc.v2.MultisigMemberSignature\n */\nexport interface MultisigMemberSignature {\n\t/**\n\t * The signature scheme of this signature.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 1;\n\t */\n\tscheme?: SignatureScheme;\n\t/**\n\t * Signature bytes if scheme is ed25519 | secp256k1 | secp256r1.\n\t *\n\t * @generated from protobuf field: optional bytes signature = 2;\n\t */\n\tsignature?: Uint8Array;\n\t/**\n\t * The zklogin authenticator if scheme is `ZKLOGIN`.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ZkLoginAuthenticator zklogin = 3;\n\t */\n\tzklogin?: ZkLoginAuthenticator;\n\t/**\n\t * The passkey authenticator if scheme is `PASSKEY`.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.PasskeyAuthenticator passkey = 4;\n\t */\n\tpasskey?: PasskeyAuthenticator;\n}\n/**\n * A zklogin authenticator.\n *\n * @generated from protobuf message sui.rpc.v2.ZkLoginAuthenticator\n */\nexport interface ZkLoginAuthenticator {\n\t/**\n\t * Zklogin proof and inputs required to perform proof verification.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ZkLoginInputs inputs = 1;\n\t */\n\tinputs?: ZkLoginInputs;\n\t/**\n\t * Maximum epoch for which the proof is valid.\n\t *\n\t * @generated from protobuf field: optional uint64 max_epoch = 2;\n\t */\n\tmaxEpoch?: bigint;\n\t/**\n\t * User signature with the public key attested to by the provided proof.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SimpleSignature signature = 3;\n\t */\n\tsignature?: SimpleSignature;\n\t/**\n\t * The public identifier (similar to a public key) for this zklogin authenticator\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ZkLoginPublicIdentifier public_identifier = 4;\n\t */\n\tpublicIdentifier?: ZkLoginPublicIdentifier;\n\t/**\n\t * The id of the JWK used to authorize this zklogin authenticator\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.JwkId jwk_id = 5;\n\t */\n\tjwkId?: JwkId;\n}\n/**\n * A zklogin groth16 proof and the required inputs to perform proof verification.\n *\n * @generated from protobuf message sui.rpc.v2.ZkLoginInputs\n */\nexport interface ZkLoginInputs {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ZkLoginProof proof_points = 1;\n\t */\n\tproofPoints?: ZkLoginProof;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ZkLoginClaim iss_base64_details = 2;\n\t */\n\tissBase64Details?: ZkLoginClaim;\n\t/**\n\t * @generated from protobuf field: optional string header_base64 = 3;\n\t */\n\theaderBase64?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string address_seed = 4;\n\t */\n\taddressSeed?: string;\n}\n/**\n * A zklogin groth16 proof.\n *\n * @generated from protobuf message sui.rpc.v2.ZkLoginProof\n */\nexport interface ZkLoginProof {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.CircomG1 a = 1;\n\t */\n\ta?: CircomG1;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.CircomG2 b = 2;\n\t */\n\tb?: CircomG2;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.CircomG1 c = 3;\n\t */\n\tc?: CircomG1;\n}\n/**\n * A claim of the iss in a zklogin proof.\n *\n * @generated from protobuf message sui.rpc.v2.ZkLoginClaim\n */\nexport interface ZkLoginClaim {\n\t/**\n\t * @generated from protobuf field: optional string value = 1;\n\t */\n\tvalue?: string;\n\t/**\n\t * @generated from protobuf field: optional uint32 index_mod_4 = 2;\n\t */\n\tindexMod4?: number;\n}\n/**\n * A G1 point.\n *\n * @generated from protobuf message sui.rpc.v2.CircomG1\n */\nexport interface CircomG1 {\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e0 = 1;\n\t */\n\te0?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e1 = 2;\n\t */\n\te1?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e2 = 3;\n\t */\n\te2?: string;\n}\n/**\n * A G2 point.\n *\n * @generated from protobuf message sui.rpc.v2.CircomG2\n */\nexport interface CircomG2 {\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e00 = 1;\n\t */\n\te00?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e01 = 2;\n\t */\n\te01?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e10 = 3;\n\t */\n\te10?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e11 = 4;\n\t */\n\te11?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e20 = 5;\n\t */\n\te20?: string;\n\t/**\n\t * base10 encoded Bn254FieldElement\n\t *\n\t * @generated from protobuf field: optional string e21 = 6;\n\t */\n\te21?: string;\n}\n/**\n * A passkey authenticator.\n *\n * See\n * [struct.PasskeyAuthenticator](https://mystenlabs.github.io/sui-rust-sdk/sui_sdk_types/struct.PasskeyAuthenticator.html#bcs)\n * for more information on the requirements on the shape of the\n * `client_data_json` field.\n *\n * @generated from protobuf message sui.rpc.v2.PasskeyAuthenticator\n */\nexport interface PasskeyAuthenticator {\n\t/**\n\t * Opaque authenticator data for this passkey signature.\n\t *\n\t * See [Authenticator Data](https://www.w3.org/TR/webauthn-2/#sctn-authenticator-data) for\n\t * more information on this field.\n\t *\n\t * @generated from protobuf field: optional bytes authenticator_data = 1;\n\t */\n\tauthenticatorData?: Uint8Array;\n\t/**\n\t * Structured, unparsed, JSON for this passkey signature.\n\t *\n\t * See [CollectedClientData](https://www.w3.org/TR/webauthn-2/#dictdef-collectedclientdata)\n\t * for more information on this field.\n\t *\n\t * @generated from protobuf field: optional string client_data_json = 2;\n\t */\n\tclientDataJson?: string;\n\t/**\n\t * A secp256r1 signature.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SimpleSignature signature = 3;\n\t */\n\tsignature?: SimpleSignature;\n}\n/**\n * The validator set for a particular epoch.\n *\n * @generated from protobuf message sui.rpc.v2.ValidatorCommittee\n */\nexport interface ValidatorCommittee {\n\t/**\n\t * The epoch where this committee governs.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * The committee members.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ValidatorCommitteeMember members = 2;\n\t */\n\tmembers: ValidatorCommitteeMember[];\n}\n/**\n * A member of a validator committee.\n *\n * @generated from protobuf message sui.rpc.v2.ValidatorCommitteeMember\n */\nexport interface ValidatorCommitteeMember {\n\t/**\n\t * The 96-byte Bls12381 public key for this validator.\n\t *\n\t * @generated from protobuf field: optional bytes public_key = 1;\n\t */\n\tpublicKey?: Uint8Array;\n\t/**\n\t * voting weight this validator possesses.\n\t *\n\t * @generated from protobuf field: optional uint64 weight = 2;\n\t */\n\tweight?: bigint;\n}\n/**\n * / An aggregated signature from multiple validators.\n *\n * @generated from protobuf message sui.rpc.v2.ValidatorAggregatedSignature\n */\nexport interface ValidatorAggregatedSignature {\n\t/**\n\t * The epoch when this signature was produced.\n\t *\n\t * This can be used to lookup the `ValidatorCommittee` from this epoch\n\t * to verify this signature.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * The 48-byte Bls12381 aggregated signature.\n\t *\n\t * @generated from protobuf field: optional bytes signature = 2;\n\t */\n\tsignature?: Uint8Array;\n\t/**\n\t * Bitmap indicating which members of the committee contributed to\n\t * this signature.\n\t *\n\t * @generated from protobuf field: optional bytes bitmap = 3;\n\t */\n\tbitmap?: Uint8Array;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass UserSignature$Type extends MessageType<UserSignature> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.UserSignature', [\n\t\t\t{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'scheme',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],\n\t\t\t},\n\t\t\t{ no: 3, name: 'simple', kind: 'message', oneof: 'signature', T: () => SimpleSignature },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'multisig',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'signature',\n\t\t\t\tT: () => MultisigAggregatedSignature,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'zklogin',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'signature',\n\t\t\t\tT: () => ZkLoginAuthenticator,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'passkey',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'signature',\n\t\t\t\tT: () => PasskeyAuthenticator,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.UserSignature\n */\nexport const UserSignature = new UserSignature$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SimpleSignature$Type extends MessageType<SimpleSignature> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SimpleSignature', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'scheme',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],\n\t\t\t},\n\t\t\t{ no: 2, name: 'signature', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 3, name: 'public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SimpleSignature\n */\nexport const SimpleSignature = new SimpleSignature$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ZkLoginPublicIdentifier$Type extends MessageType<ZkLoginPublicIdentifier> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ZkLoginPublicIdentifier', [\n\t\t\t{ no: 1, name: 'iss', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'address_seed', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginPublicIdentifier\n */\nexport const ZkLoginPublicIdentifier = new ZkLoginPublicIdentifier$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MultisigMemberPublicKey$Type extends MessageType<MultisigMemberPublicKey> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MultisigMemberPublicKey', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'scheme',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],\n\t\t\t},\n\t\t\t{ no: 2, name: 'public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 3, name: 'zklogin', kind: 'message', T: () => ZkLoginPublicIdentifier },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MultisigMemberPublicKey\n */\nexport const MultisigMemberPublicKey = new MultisigMemberPublicKey$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MultisigMember$Type extends MessageType<MultisigMember> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MultisigMember', [\n\t\t\t{ no: 1, name: 'public_key', kind: 'message', T: () => MultisigMemberPublicKey },\n\t\t\t{ no: 2, name: 'weight', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MultisigMember\n */\nexport const MultisigMember = new MultisigMember$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MultisigCommittee$Type extends MessageType<MultisigCommittee> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MultisigCommittee', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'members',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => MultisigMember,\n\t\t\t},\n\t\t\t{ no: 2, name: 'threshold', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MultisigCommittee\n */\nexport const MultisigCommittee = new MultisigCommittee$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MultisigAggregatedSignature$Type extends MessageType<MultisigAggregatedSignature> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MultisigAggregatedSignature', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'signatures',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => MultisigMemberSignature,\n\t\t\t},\n\t\t\t{ no: 2, name: 'bitmap', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'legacy_bitmap', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 4, name: 'committee', kind: 'message', T: () => MultisigCommittee },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MultisigAggregatedSignature\n */\nexport const MultisigAggregatedSignature = new MultisigAggregatedSignature$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MultisigMemberSignature$Type extends MessageType<MultisigMemberSignature> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MultisigMemberSignature', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'scheme',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],\n\t\t\t},\n\t\t\t{ no: 2, name: 'signature', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 3, name: 'zklogin', kind: 'message', T: () => ZkLoginAuthenticator },\n\t\t\t{ no: 4, name: 'passkey', kind: 'message', T: () => PasskeyAuthenticator },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MultisigMemberSignature\n */\nexport const MultisigMemberSignature = new MultisigMemberSignature$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ZkLoginAuthenticator$Type extends MessageType<ZkLoginAuthenticator> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ZkLoginAuthenticator', [\n\t\t\t{ no: 1, name: 'inputs', kind: 'message', T: () => ZkLoginInputs },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'max_epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'signature', kind: 'message', T: () => SimpleSignature },\n\t\t\t{ no: 4, name: 'public_identifier', kind: 'message', T: () => ZkLoginPublicIdentifier },\n\t\t\t{ no: 5, name: 'jwk_id', kind: 'message', T: () => JwkId },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginAuthenticator\n */\nexport const ZkLoginAuthenticator = new ZkLoginAuthenticator$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ZkLoginInputs$Type extends MessageType<ZkLoginInputs> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ZkLoginInputs', [\n\t\t\t{ no: 1, name: 'proof_points', kind: 'message', T: () => ZkLoginProof },\n\t\t\t{ no: 2, name: 'iss_base64_details', kind: 'message', T: () => ZkLoginClaim },\n\t\t\t{ no: 3, name: 'header_base64', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'address_seed', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginInputs\n */\nexport const ZkLoginInputs = new ZkLoginInputs$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ZkLoginProof$Type extends MessageType<ZkLoginProof> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ZkLoginProof', [\n\t\t\t{ no: 1, name: 'a', kind: 'message', T: () => CircomG1 },\n\t\t\t{ no: 2, name: 'b', kind: 'message', T: () => CircomG2 },\n\t\t\t{ no: 3, name: 'c', kind: 'message', T: () => CircomG1 },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginProof\n */\nexport const ZkLoginProof = new ZkLoginProof$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ZkLoginClaim$Type extends MessageType<ZkLoginClaim> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ZkLoginClaim', [\n\t\t\t{ no: 1, name: 'value', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'index_mod_4', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginClaim\n */\nexport const ZkLoginClaim = new ZkLoginClaim$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CircomG1$Type extends MessageType<CircomG1> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CircomG1', [\n\t\t\t{ no: 1, name: 'e0', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'e1', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'e2', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CircomG1\n */\nexport const CircomG1 = new CircomG1$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CircomG2$Type extends MessageType<CircomG2> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CircomG2', [\n\t\t\t{ no: 1, name: 'e00', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'e01', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'e10', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'e11', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'e20', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 6, name: 'e21', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CircomG2\n */\nexport const CircomG2 = new CircomG2$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PasskeyAuthenticator$Type extends MessageType<PasskeyAuthenticator> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.PasskeyAuthenticator', [\n\t\t\t{ no: 1, name: 'authenticator_data', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 2, name: 'client_data_json', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'signature', kind: 'message', T: () => SimpleSignature },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.PasskeyAuthenticator\n */\nexport const PasskeyAuthenticator = new PasskeyAuthenticator$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ValidatorCommittee$Type extends MessageType<ValidatorCommittee> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ValidatorCommittee', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'members',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ValidatorCommitteeMember,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ValidatorCommittee\n */\nexport const ValidatorCommittee = new ValidatorCommittee$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ValidatorCommitteeMember$Type extends MessageType<ValidatorCommitteeMember> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ValidatorCommitteeMember', [\n\t\t\t{ no: 1, name: 'public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'weight',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ValidatorCommitteeMember\n */\nexport const ValidatorCommitteeMember = new ValidatorCommitteeMember$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ValidatorAggregatedSignature$Type extends MessageType<ValidatorAggregatedSignature> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ValidatorAggregatedSignature', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'signature', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 3, name: 'bitmap', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ValidatorAggregatedSignature\n */\nexport const ValidatorAggregatedSignature = new ValidatorAggregatedSignature$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/balance_change.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * The delta, or change, in balance for an address for a particular `Coin` type.\n *\n * @generated from protobuf message sui.rpc.v2.BalanceChange\n */\nexport interface BalanceChange {\n\t/**\n\t * The account address that is affected by this balance change event.\n\t *\n\t * @generated from protobuf field: optional string address = 1;\n\t */\n\taddress?: string;\n\t/**\n\t * The `Coin` type of this balance change event.\n\t *\n\t * @generated from protobuf field: optional string coin_type = 2;\n\t */\n\tcoinType?: string;\n\t/**\n\t * The amount or change in balance.\n\t *\n\t * @generated from protobuf field: optional string amount = 3;\n\t */\n\tamount?: string;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass BalanceChange$Type extends MessageType<BalanceChange> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.BalanceChange', [\n\t\t\t{ no: 1, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'coin_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'amount', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.BalanceChange\n */\nexport const BalanceChange = new BalanceChange$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/event.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Value } from '../../../google/protobuf/struct.js';\nimport { Bcs } from './bcs.js';\n/**\n * Events emitted during the successful execution of a transaction.\n *\n * @generated from protobuf message sui.rpc.v2.TransactionEvents\n */\nexport interface TransactionEvents {\n\t/**\n\t * This TransactionEvents serialized as BCS.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;\n\t */\n\tbcs?: Bcs;\n\t/**\n\t * The digest of this TransactionEvents.\n\t *\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n\t/**\n\t * Set of events emitted by a transaction.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Event events = 3;\n\t */\n\tevents: Event[];\n}\n/**\n * An event.\n *\n * @generated from protobuf message sui.rpc.v2.Event\n */\nexport interface Event {\n\t/**\n\t * Package ID of the top-level function invoked by a `MoveCall` command that triggered this\n\t * event to be emitted.\n\t *\n\t * @generated from protobuf field: optional string package_id = 1;\n\t */\n\tpackageId?: string;\n\t/**\n\t * Module name of the top-level function invoked by a `MoveCall` command that triggered this\n\t * event to be emitted.\n\t *\n\t * @generated from protobuf field: optional string module = 2;\n\t */\n\tmodule?: string;\n\t/**\n\t * Address of the account that sent the transaction where this event was emitted.\n\t *\n\t * @generated from protobuf field: optional string sender = 3;\n\t */\n\tsender?: string;\n\t/**\n\t * The type of the event emitted.\n\t *\n\t * @generated from protobuf field: optional string event_type = 4;\n\t */\n\teventType?: string;\n\t/**\n\t * BCS serialized bytes of the event.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs contents = 5;\n\t */\n\tcontents?: Bcs;\n\t/**\n\t * JSON rendering of the event.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Value json = 6;\n\t */\n\tjson?: Value;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass TransactionEvents$Type extends MessageType<TransactionEvents> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.TransactionEvents', [\n\t\t\t{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'events', kind: 'message', repeat: 2 /*RepeatType.UNPACKED*/, T: () => Event },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.TransactionEvents\n */\nexport const TransactionEvents = new TransactionEvents$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Event$Type extends MessageType<Event> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Event', [\n\t\t\t{ no: 1, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'module', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'sender', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'event_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'contents', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 6, name: 'json', kind: 'message', T: () => Value },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Event\n */\nexport const Event = new Event$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/executed_transaction.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { ObjectSet } from './object.js';\nimport { BalanceChange } from './balance_change.js';\nimport { Timestamp } from '../../../google/protobuf/timestamp.js';\nimport { TransactionEvents } from './event.js';\nimport { TransactionEffects } from './effects.js';\nimport { UserSignature } from './signature.js';\nimport { Transaction } from './transaction.js';\n/**\n * @generated from protobuf message sui.rpc.v2.ExecutedTransaction\n */\nexport interface ExecutedTransaction {\n\t/**\n\t * The digest of this Transaction.\n\t *\n\t * @generated from protobuf field: optional string digest = 1;\n\t */\n\tdigest?: string;\n\t/**\n\t * The transaction itself.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Transaction transaction = 2;\n\t */\n\ttransaction?: Transaction;\n\t/**\n\t * List of user signatures that are used to authorize the\n\t * execution of this transaction.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.UserSignature signatures = 3;\n\t */\n\tsignatures: UserSignature[];\n\t/**\n\t * The `TransactionEffects` for this transaction.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.TransactionEffects effects = 4;\n\t */\n\teffects?: TransactionEffects;\n\t/**\n\t * The `TransactionEvents` for this transaction.\n\t *\n\t * This field might be empty, even if it was explicitly requested, if the\n\t * transaction didn't produce any events.\n\t * `sui.types.TransactionEffects.events_digest` is populated if the\n\t * transaction produced any events.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.TransactionEvents events = 5;\n\t */\n\tevents?: TransactionEvents;\n\t/**\n\t * The sequence number for the checkpoint that includes this transaction.\n\t *\n\t * @generated from protobuf field: optional uint64 checkpoint = 6;\n\t */\n\tcheckpoint?: bigint;\n\t/**\n\t * The Unix timestamp of the checkpoint that includes this transaction.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp timestamp = 7;\n\t */\n\ttimestamp?: Timestamp;\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.BalanceChange balance_changes = 8;\n\t */\n\tbalanceChanges: BalanceChange[];\n\t/**\n\t * Set of objects either referenced as inputs or produced as\n\t * outputs from this Transaction.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ObjectSet objects = 9;\n\t */\n\tobjects?: ObjectSet;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ExecutedTransaction$Type extends MessageType<ExecutedTransaction> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ExecutedTransaction', [\n\t\t\t{ no: 1, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'transaction', kind: 'message', T: () => Transaction },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'signatures',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => UserSignature,\n\t\t\t},\n\t\t\t{ no: 4, name: 'effects', kind: 'message', T: () => TransactionEffects },\n\t\t\t{ no: 5, name: 'events', kind: 'message', T: () => TransactionEvents },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'checkpoint',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 7, name: 'timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'balance_changes',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => BalanceChange,\n\t\t\t},\n\t\t\t{ no: 9, name: 'objects', kind: 'message', T: () => ObjectSet },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ExecutedTransaction\n */\nexport const ExecutedTransaction = new ExecutedTransaction$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"google/protobuf/field_mask.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport { typeofJsonValue } from '@protobuf-ts/runtime';\nimport type { JsonValue } from '@protobuf-ts/runtime';\nimport { lowerCamelCase } from '@protobuf-ts/runtime';\nimport type { JsonReadOptions } from '@protobuf-ts/runtime';\nimport type { JsonWriteOptions } from '@protobuf-ts/runtime';\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * `FieldMask` represents a set of symbolic field paths, for example:\n *\n * paths: \"f.a\"\n * paths: \"f.b.d\"\n *\n * Here `f` represents a field in some root message, `a` and `b`\n * fields in the message found in `f`, and `d` a field found in the\n * message in `f.b`.\n *\n * Field masks are used to specify a subset of fields that should be\n * returned by a get operation or modified by an update operation.\n * Field masks also have a custom JSON encoding (see below).\n *\n * # Field Masks in Projections\n *\n * When used in the context of a projection, a response message or\n * sub-message is filtered by the API to only contain those fields as\n * specified in the mask. For example, if the mask in the previous\n * example is applied to a response message as follows:\n *\n * f {\n * a : 22\n * b {\n * d : 1\n * x : 2\n * }\n * y : 13\n * }\n * z: 8\n *\n * The result will not contain specific values for fields x,y and z\n * (their value will be set to the default, and omitted in proto text\n * output):\n *\n *\n * f {\n * a : 22\n * b {\n * d : 1\n * }\n * }\n *\n * A repeated field is not allowed except at the last position of a\n * paths string.\n *\n * If a FieldMask object is not present in a get operation, the\n * operation applies to all fields (as if a FieldMask of all fields\n * had been specified).\n *\n * Note that a field mask does not necessarily apply to the\n * top-level response message. In case of a REST get operation, the\n * field mask applies directly to the response, but in case of a REST\n * list operation, the mask instead applies to each individual message\n * in the returned resource list. In case of a REST custom method,\n * other definitions may be used. Where the mask applies will be\n * clearly documented together with its declaration in the API. In\n * any case, the effect on the returned resource/resources is required\n * behavior for APIs.\n *\n * # Field Masks in Update Operations\n *\n * A field mask in update operations specifies which fields of the\n * targeted resource are going to be updated. The API is required\n * to only change the values of the fields as specified in the mask\n * and leave the others untouched. If a resource is passed in to\n * describe the updated values, the API ignores the values of all\n * fields not covered by the mask.\n *\n * If a repeated field is specified for an update operation, new values will\n * be appended to the existing repeated field in the target resource. Note that\n * a repeated field is only allowed in the last position of a `paths` string.\n *\n * If a sub-message is specified in the last position of the field mask for an\n * update operation, then new value will be merged into the existing sub-message\n * in the target resource.\n *\n * For example, given the target message:\n *\n * f {\n * b {\n * d: 1\n * x: 2\n * }\n * c: [1]\n * }\n *\n * And an update message:\n *\n * f {\n * b {\n * d: 10\n * }\n * c: [2]\n * }\n *\n * then if the field mask is:\n *\n * paths: [\"f.b\", \"f.c\"]\n *\n * then the result will be:\n *\n * f {\n * b {\n * d: 10\n * x: 2\n * }\n * c: [1, 2]\n * }\n *\n * An implementation may provide options to override this default behavior for\n * repeated and message fields.\n *\n * In order to reset a field's value to the default, the field must\n * be in the mask and set to the default value in the provided resource.\n * Hence, in order to reset all fields of a resource, provide a default\n * instance of the resource and set all fields in the mask, or do\n * not provide a mask as described below.\n *\n * If a field mask is not present on update, the operation applies to\n * all fields (as if a field mask of all fields has been specified).\n * Note that in the presence of schema evolution, this may mean that\n * fields the client does not know and has therefore not filled into\n * the request will be reset to their default. If this is unwanted\n * behavior, a specific service may require a client to always specify\n * a field mask, producing an error if not.\n *\n * As with get operations, the location of the resource which\n * describes the updated values in the request message depends on the\n * operation kind. In any case, the effect of the field mask is\n * required to be honored by the API.\n *\n * ## Considerations for HTTP REST\n *\n * The HTTP kind of an update operation which uses a field mask must\n * be set to PATCH instead of PUT in order to satisfy HTTP semantics\n * (PUT must only be used for full updates).\n *\n * # JSON Encoding of Field Masks\n *\n * In JSON, a field mask is encoded as a single string where paths are\n * separated by a comma. Fields name in each path are converted\n * to/from lower-camel naming conventions.\n *\n * As an example, consider the following message declarations:\n *\n * message Profile {\n * User user = 1;\n * Photo photo = 2;\n * }\n * message User {\n * string display_name = 1;\n * string address = 2;\n * }\n *\n * In proto a field mask for `Profile` may look as such:\n *\n * mask {\n * paths: \"user.display_name\"\n * paths: \"photo\"\n * }\n *\n * In JSON, the same mask is represented as below:\n *\n * {\n * mask: \"user.displayName,photo\"\n * }\n *\n * # Field Masks and Oneof Fields\n *\n * Field masks treat fields in oneofs just as regular fields. Consider the\n * following message:\n *\n * message SampleMessage {\n * oneof test_oneof {\n * string name = 4;\n * SubMessage sub_message = 9;\n * }\n * }\n *\n * The field mask can be:\n *\n * mask {\n * paths: \"name\"\n * }\n *\n * Or:\n *\n * mask {\n * paths: \"sub_message\"\n * }\n *\n * Note that oneof type names (\"test_oneof\" in this case) cannot be used in\n * paths.\n *\n * ## Field Mask Verification\n *\n * The implementation of any API method which has a FieldMask type field in the\n * request should verify the included field paths, and return an\n * `INVALID_ARGUMENT` error if any path is unmappable.\n *\n * @generated from protobuf message google.protobuf.FieldMask\n */\nexport interface FieldMask {\n\t/**\n\t * The set of field mask paths.\n\t *\n\t * @generated from protobuf field: repeated string paths = 1;\n\t */\n\tpaths: string[];\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldMask$Type extends MessageType<FieldMask> {\n\tconstructor() {\n\t\tsuper('google.protobuf.FieldMask', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'paths',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t]);\n\t}\n\t/**\n\t * Encode `FieldMask` to JSON object.\n\t */\n\tinternalJsonWrite(message: FieldMask, options: JsonWriteOptions): JsonValue {\n\t\tconst invalidFieldMaskJsonRegex = /[A-Z]|(_([.0-9_]|$))/g;\n\t\treturn message.paths\n\t\t\t.map((p) => {\n\t\t\t\tif (invalidFieldMaskJsonRegex.test(p))\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Unable to encode FieldMask to JSON. lowerCamelCase of path name \"' +\n\t\t\t\t\t\t\tp +\n\t\t\t\t\t\t\t'\" is irreversible.',\n\t\t\t\t\t);\n\t\t\t\treturn lowerCamelCase(p);\n\t\t\t})\n\t\t\t.join(',');\n\t}\n\t/**\n\t * Decode `FieldMask` from JSON object.\n\t */\n\tinternalJsonRead(json: JsonValue, options: JsonReadOptions, target?: FieldMask): FieldMask {\n\t\tif (typeof json !== 'string')\n\t\t\tthrow new Error(\n\t\t\t\t'Unable to parse FieldMask from JSON ' + typeofJsonValue(json) + '. Expected string.',\n\t\t\t);\n\t\tif (!target) target = this.create();\n\t\tif (json === '') return target;\n\t\tlet camelToSnake = (str: string) => {\n\t\t\tif (str.includes('_'))\n\t\t\t\tthrow new Error('Unable to parse FieldMask from JSON. Path names must be lowerCamelCase.');\n\t\t\tlet sc = str.replace(/[A-Z]/g, (letter) => '_' + letter.toLowerCase());\n\t\t\treturn sc;\n\t\t};\n\t\ttarget.paths = json.split(',').map(camelToSnake);\n\t\treturn target;\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.FieldMask\n */\nexport const FieldMask = new FieldMask$Type();\n","import { lowerCamelCase } from \"@protobuf-ts/runtime\";\n/**\n * Turns PartialMethodInfo into MethodInfo.\n */\nexport function normalizeMethodInfo(method, service) {\n var _a, _b, _c;\n let m = method;\n m.service = service;\n m.localName = (_a = m.localName) !== null && _a !== void 0 ? _a : lowerCamelCase(m.name);\n // noinspection PointlessBooleanExpressionJS\n m.serverStreaming = !!m.serverStreaming;\n // noinspection PointlessBooleanExpressionJS\n m.clientStreaming = !!m.clientStreaming;\n m.options = (_b = m.options) !== null && _b !== void 0 ? _b : {};\n m.idempotency = (_c = m.idempotency) !== null && _c !== void 0 ? _c : undefined;\n return m;\n}\n/**\n * Read custom method options from a generated service client.\n *\n * @deprecated use readMethodOption()\n */\nexport function readMethodOptions(service, methodName, extensionName, extensionType) {\n var _a;\n const options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options;\n return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : undefined;\n}\nexport function readMethodOption(service, methodName, extensionName, extensionType) {\n var _a;\n const options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options;\n if (!options) {\n return undefined;\n }\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\nexport function readServiceOption(service, extensionName, extensionType) {\n const options = service.options;\n if (!options) {\n return undefined;\n }\n const optionVal = options[extensionName];\n if (optionVal === undefined) {\n return optionVal;\n }\n return extensionType ? extensionType.fromJson(optionVal) : optionVal;\n}\n","import { normalizeMethodInfo } from \"./reflection-info\";\nexport class ServiceType {\n constructor(typeName, methods, options) {\n this.typeName = typeName;\n this.methods = methods.map(i => normalizeMethodInfo(i, this));\n this.options = options !== null && options !== void 0 ? options : {};\n }\n}\n","/**\n * An error that occurred while calling a RPC method.\n */\nexport class RpcError extends Error {\n constructor(message, code = 'UNKNOWN', meta) {\n super(message);\n this.name = 'RpcError';\n // see https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#example\n Object.setPrototypeOf(this, new.target.prototype);\n this.code = code;\n this.meta = meta !== null && meta !== void 0 ? meta : {};\n }\n toString() {\n const l = [this.name + ': ' + this.message];\n if (this.code) {\n l.push('');\n l.push('Code: ' + this.code);\n }\n if (this.serviceName && this.methodName) {\n l.push('Method: ' + this.serviceName + '/' + this.methodName);\n }\n let m = Object.entries(this.meta);\n if (m.length) {\n l.push('');\n l.push('Meta:');\n for (let [k, v] of m) {\n l.push(` ${k}: ${v}`);\n }\n }\n return l.join('\\n');\n }\n}\n","import { mergeBinaryOptions, mergeJsonOptions } from \"@protobuf-ts/runtime\";\n/**\n * Merges custom RPC options with defaults. Returns a new instance and keeps\n * the \"defaults\" and the \"options\" unmodified.\n *\n * Merges `RpcMetadata` \"meta\", overwriting values from \"defaults\" with\n * values from \"options\". Does not append values to existing entries.\n *\n * Merges \"jsonOptions\", including \"jsonOptions.typeRegistry\", by creating\n * a new array that contains types from \"options.jsonOptions.typeRegistry\"\n * first, then types from \"defaults.jsonOptions.typeRegistry\".\n *\n * Merges \"binaryOptions\".\n *\n * Merges \"interceptors\" by creating a new array that contains interceptors\n * from \"defaults\" first, then interceptors from \"options\".\n *\n * Works with objects that extend `RpcOptions`, but only if the added\n * properties are of type Date, primitive like string, boolean, or Array\n * of primitives. If you have other property types, you have to merge them\n * yourself.\n */\nexport function mergeRpcOptions(defaults, options) {\n if (!options)\n return defaults;\n let o = {};\n copy(defaults, o);\n copy(options, o);\n for (let key of Object.keys(options)) {\n let val = options[key];\n switch (key) {\n case \"jsonOptions\":\n o.jsonOptions = mergeJsonOptions(defaults.jsonOptions, o.jsonOptions);\n break;\n case \"binaryOptions\":\n o.binaryOptions = mergeBinaryOptions(defaults.binaryOptions, o.binaryOptions);\n break;\n case \"meta\":\n o.meta = {};\n copy(defaults.meta, o.meta);\n copy(options.meta, o.meta);\n break;\n case \"interceptors\":\n o.interceptors = defaults.interceptors ? defaults.interceptors.concat(val) : val.concat();\n break;\n }\n }\n return o;\n}\nfunction copy(a, into) {\n if (!a)\n return;\n let c = into;\n for (let [k, v] of Object.entries(a)) {\n if (v instanceof Date)\n c[k] = new Date(v.getTime());\n else if (Array.isArray(v))\n c[k] = v.concat();\n else\n c[k] = v;\n }\n}\n","export var DeferredState;\n(function (DeferredState) {\n DeferredState[DeferredState[\"PENDING\"] = 0] = \"PENDING\";\n DeferredState[DeferredState[\"REJECTED\"] = 1] = \"REJECTED\";\n DeferredState[DeferredState[\"RESOLVED\"] = 2] = \"RESOLVED\";\n})(DeferredState || (DeferredState = {}));\n/**\n * A deferred promise. This is a \"controller\" for a promise, which lets you\n * pass a promise around and reject or resolve it from the outside.\n *\n * Warning: This class is to be used with care. Using it can make code very\n * difficult to read. It is intended for use in library code that exposes\n * promises, not for regular business logic.\n */\nexport class Deferred {\n /**\n * @param preventUnhandledRejectionWarning - prevents the warning\n * \"Unhandled Promise rejection\" by adding a noop rejection handler.\n * Working with calls returned from the runtime-rpc package in an\n * async function usually means awaiting one call property after\n * the other. This means that the \"status\" is not being awaited when\n * an earlier await for the \"headers\" is rejected. This causes the\n * \"unhandled promise reject\" warning. A more correct behaviour for\n * calls might be to become aware whether at least one of the\n * promises is handled and swallow the rejection warning for the\n * others.\n */\n constructor(preventUnhandledRejectionWarning = true) {\n this._state = DeferredState.PENDING;\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n if (preventUnhandledRejectionWarning) {\n this._promise.catch(_ => { });\n }\n }\n /**\n * Get the current state of the promise.\n */\n get state() {\n return this._state;\n }\n /**\n * Get the deferred promise.\n */\n get promise() {\n return this._promise;\n }\n /**\n * Resolve the promise. Throws if the promise is already resolved or rejected.\n */\n resolve(value) {\n if (this.state !== DeferredState.PENDING)\n throw new Error(`cannot resolve ${DeferredState[this.state].toLowerCase()}`);\n this._resolve(value);\n this._state = DeferredState.RESOLVED;\n }\n /**\n * Reject the promise. Throws if the promise is already resolved or rejected.\n */\n reject(reason) {\n if (this.state !== DeferredState.PENDING)\n throw new Error(`cannot reject ${DeferredState[this.state].toLowerCase()}`);\n this._reject(reason);\n this._state = DeferredState.REJECTED;\n }\n /**\n * Resolve the promise. Ignore if not pending.\n */\n resolvePending(val) {\n if (this._state === DeferredState.PENDING)\n this.resolve(val);\n }\n /**\n * Reject the promise. Ignore if not pending.\n */\n rejectPending(reason) {\n if (this._state === DeferredState.PENDING)\n this.reject(reason);\n }\n}\n","import { Deferred, DeferredState } from \"./deferred\";\nimport { assert } from \"@protobuf-ts/runtime\";\n/**\n * A `RpcOutputStream` that you control.\n */\nexport class RpcOutputStreamController {\n constructor() {\n this._lis = {\n nxt: [],\n msg: [],\n err: [],\n cmp: [],\n };\n this._closed = false;\n // --- RpcOutputStream async iterator API\n // iterator state.\n // is undefined when no iterator has been acquired yet.\n this._itState = { q: [] };\n }\n // --- RpcOutputStream callback API\n onNext(callback) {\n return this.addLis(callback, this._lis.nxt);\n }\n onMessage(callback) {\n return this.addLis(callback, this._lis.msg);\n }\n onError(callback) {\n return this.addLis(callback, this._lis.err);\n }\n onComplete(callback) {\n return this.addLis(callback, this._lis.cmp);\n }\n addLis(callback, list) {\n list.push(callback);\n return () => {\n let i = list.indexOf(callback);\n if (i >= 0)\n list.splice(i, 1);\n };\n }\n // remove all listeners\n clearLis() {\n for (let l of Object.values(this._lis))\n l.splice(0, l.length);\n }\n // --- Controller API\n /**\n * Is this stream already closed by a completion or error?\n */\n get closed() {\n return this._closed !== false;\n }\n /**\n * Emit message, close with error, or close successfully, but only one\n * at a time.\n * Can be used to wrap a stream by using the other stream's `onNext`.\n */\n notifyNext(message, error, complete) {\n assert((message ? 1 : 0) + (error ? 1 : 0) + (complete ? 1 : 0) <= 1, 'only one emission at a time');\n if (message)\n this.notifyMessage(message);\n if (error)\n this.notifyError(error);\n if (complete)\n this.notifyComplete();\n }\n /**\n * Emits a new message. Throws if stream is closed.\n *\n * Triggers onNext and onMessage callbacks.\n */\n notifyMessage(message) {\n assert(!this.closed, 'stream is closed');\n this.pushIt({ value: message, done: false });\n this._lis.msg.forEach(l => l(message));\n this._lis.nxt.forEach(l => l(message, undefined, false));\n }\n /**\n * Closes the stream with an error. Throws if stream is closed.\n *\n * Triggers onNext and onError callbacks.\n */\n notifyError(error) {\n assert(!this.closed, 'stream is closed');\n this._closed = error;\n this.pushIt(error);\n this._lis.err.forEach(l => l(error));\n this._lis.nxt.forEach(l => l(undefined, error, false));\n this.clearLis();\n }\n /**\n * Closes the stream successfully. Throws if stream is closed.\n *\n * Triggers onNext and onComplete callbacks.\n */\n notifyComplete() {\n assert(!this.closed, 'stream is closed');\n this._closed = true;\n this.pushIt({ value: null, done: true });\n this._lis.cmp.forEach(l => l());\n this._lis.nxt.forEach(l => l(undefined, undefined, true));\n this.clearLis();\n }\n /**\n * Creates an async iterator (that can be used with `for await {...}`)\n * to consume the stream.\n *\n * Some things to note:\n * - If an error occurs, the `for await` will throw it.\n * - If an error occurred before the `for await` was started, `for await`\n * will re-throw it.\n * - If the stream is already complete, the `for await` will be empty.\n * - If your `for await` consumes slower than the stream produces,\n * for example because you are relaying messages in a slow operation,\n * messages are queued.\n */\n [Symbol.asyncIterator]() {\n // if we are closed, we are definitely not receiving any more messages.\n // but we can't let the iterator get stuck. we want to either:\n // a) finish the new iterator immediately, because we are completed\n // b) reject the new iterator, because we errored\n if (this._closed === true)\n this.pushIt({ value: null, done: true });\n else if (this._closed !== false)\n this.pushIt(this._closed);\n // the async iterator\n return {\n next: () => {\n let state = this._itState;\n assert(state, \"bad state\"); // if we don't have a state here, code is broken\n // there should be no pending result.\n // did the consumer call next() before we resolved our previous result promise?\n assert(!state.p, \"iterator contract broken\");\n // did we produce faster than the iterator consumed?\n // return the oldest result from the queue.\n let first = state.q.shift();\n if (first)\n return (\"value\" in first) ? Promise.resolve(first) : Promise.reject(first);\n // we have no result ATM, but we promise one.\n // as soon as we have a result, we must resolve promise.\n state.p = new Deferred();\n return state.p.promise;\n },\n };\n }\n // \"push\" a new iterator result.\n // this either resolves a pending promise, or enqueues the result.\n pushIt(result) {\n let state = this._itState;\n // is the consumer waiting for us?\n if (state.p) {\n // yes, consumer is waiting for this promise.\n const p = state.p;\n assert(p.state == DeferredState.PENDING, \"iterator contract broken\");\n // resolve the promise\n (\"value\" in result) ? p.resolve(result) : p.reject(result);\n // must cleanup, otherwise iterator.next() would pick it up again.\n delete state.p;\n }\n else {\n // we are producing faster than the iterator consumes.\n // push result onto queue.\n state.q.push(result);\n }\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/**\n * A unary RPC call. Unary means there is exactly one input message and\n * exactly one output message unless an error occurred.\n */\nexport class UnaryCall {\n constructor(method, requestHeaders, request, headers, response, status, trailers) {\n this.method = method;\n this.requestHeaders = requestHeaders;\n this.request = request;\n this.headers = headers;\n this.response = response;\n this.status = status;\n this.trailers = trailers;\n }\n /**\n * If you are only interested in the final outcome of this call,\n * you can await it to receive a `FinishedUnaryCall`.\n */\n then(onfulfilled, onrejected) {\n return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));\n }\n promiseFinished() {\n return __awaiter(this, void 0, void 0, function* () {\n let [headers, response, status, trailers] = yield Promise.all([this.headers, this.response, this.status, this.trailers]);\n return {\n method: this.method,\n requestHeaders: this.requestHeaders,\n request: this.request,\n headers,\n response,\n status,\n trailers\n };\n });\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/**\n * A server streaming RPC call. The client provides exactly one input message\n * but the server may respond with 0, 1, or more messages.\n */\nexport class ServerStreamingCall {\n constructor(method, requestHeaders, request, headers, response, status, trailers) {\n this.method = method;\n this.requestHeaders = requestHeaders;\n this.request = request;\n this.headers = headers;\n this.responses = response;\n this.status = status;\n this.trailers = trailers;\n }\n /**\n * Instead of awaiting the response status and trailers, you can\n * just as well await this call itself to receive the server outcome.\n * You should first setup some listeners to the `request` to\n * see the actual messages the server replied with.\n */\n then(onfulfilled, onrejected) {\n return this.promiseFinished().then(value => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, reason => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason));\n }\n promiseFinished() {\n return __awaiter(this, void 0, void 0, function* () {\n let [headers, status, trailers] = yield Promise.all([this.headers, this.status, this.trailers]);\n return {\n method: this.method,\n requestHeaders: this.requestHeaders,\n request: this.request,\n headers,\n status,\n trailers,\n };\n });\n }\n}\n","import { assertNever } from \"@protobuf-ts/runtime\";\n/**\n * Creates a \"stack\" of of all interceptors specified in the given `RpcOptions`.\n * Used by generated client implementations.\n * @internal\n */\nexport function stackIntercept(kind, transport, method, options, input) {\n var _a, _b, _c, _d;\n if (kind == \"unary\") {\n let tail = (mtd, inp, opt) => transport.unary(mtd, inp, opt);\n for (const curr of ((_a = options.interceptors) !== null && _a !== void 0 ? _a : []).filter(i => i.interceptUnary).reverse()) {\n const next = tail;\n tail = (mtd, inp, opt) => curr.interceptUnary(next, mtd, inp, opt);\n }\n return tail(method, input, options);\n }\n if (kind == \"serverStreaming\") {\n let tail = (mtd, inp, opt) => transport.serverStreaming(mtd, inp, opt);\n for (const curr of ((_b = options.interceptors) !== null && _b !== void 0 ? _b : []).filter(i => i.interceptServerStreaming).reverse()) {\n const next = tail;\n tail = (mtd, inp, opt) => curr.interceptServerStreaming(next, mtd, inp, opt);\n }\n return tail(method, input, options);\n }\n if (kind == \"clientStreaming\") {\n let tail = (mtd, opt) => transport.clientStreaming(mtd, opt);\n for (const curr of ((_c = options.interceptors) !== null && _c !== void 0 ? _c : []).filter(i => i.interceptClientStreaming).reverse()) {\n const next = tail;\n tail = (mtd, opt) => curr.interceptClientStreaming(next, mtd, opt);\n }\n return tail(method, options);\n }\n if (kind == \"duplex\") {\n let tail = (mtd, opt) => transport.duplex(mtd, opt);\n for (const curr of ((_d = options.interceptors) !== null && _d !== void 0 ? _d : []).filter(i => i.interceptDuplex).reverse()) {\n const next = tail;\n tail = (mtd, opt) => curr.interceptDuplex(next, mtd, opt);\n }\n return tail(method, options);\n }\n assertNever(kind);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackUnaryInterceptors(transport, method, input, options) {\n return stackIntercept(\"unary\", transport, method, options, input);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackServerStreamingInterceptors(transport, method, input, options) {\n return stackIntercept(\"serverStreaming\", transport, method, options, input);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackClientStreamingInterceptors(transport, method, options) {\n return stackIntercept(\"clientStreaming\", transport, method, options);\n}\n/**\n * @deprecated replaced by `stackIntercept()`, still here to support older generated code\n */\nexport function stackDuplexStreamingInterceptors(transport, method, options) {\n return stackIntercept(\"duplex\", transport, method, options);\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/transaction_execution_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Value } from '../../../google/protobuf/struct.js';\nimport { Bcs } from './bcs.js';\nimport { Argument } from './argument.js';\nimport { ExecutedTransaction } from './executed_transaction.js';\nimport { FieldMask } from '../../../google/protobuf/field_mask.js';\nimport { UserSignature } from './signature.js';\nimport { Transaction } from './transaction.js';\n/**\n * @generated from protobuf message sui.rpc.v2.ExecuteTransactionRequest\n */\nexport interface ExecuteTransactionRequest {\n\t/**\n\t * The transaction to execute.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Transaction transaction = 1;\n\t */\n\ttransaction?: Transaction;\n\t/**\n\t * Set of `UserSignature`s authorizing the execution of the provided\n\t * transaction.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.UserSignature signatures = 2;\n\t */\n\tsignatures: UserSignature[];\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `effects.status,checkpoint`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 3;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * Response message for `NodeService.ExecuteTransaction`.\n *\n * @generated from protobuf message sui.rpc.v2.ExecuteTransactionResponse\n */\nexport interface ExecuteTransactionResponse {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ExecutedTransaction transaction = 1;\n\t */\n\ttransaction?: ExecutedTransaction;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.SimulateTransactionRequest\n */\nexport interface SimulateTransactionRequest {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Transaction transaction = 1;\n\t */\n\ttransaction?: Transaction;\n\t/**\n\t * Mask specifying which fields to read.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 2;\n\t */\n\treadMask?: FieldMask;\n\t/**\n\t * Specify whether checks should be ENABLED (default) or DISABLED while executing the transaction\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SimulateTransactionRequest.TransactionChecks checks = 3;\n\t */\n\tchecks?: SimulateTransactionRequest_TransactionChecks;\n\t/**\n\t * Perform gas selection based on a budget estimation and include the\n\t * selected gas payment and budget in the response.\n\t *\n\t * This option will be ignored if `checks` is `DISABLED`.\n\t *\n\t * @generated from protobuf field: optional bool do_gas_selection = 4;\n\t */\n\tdoGasSelection?: boolean;\n}\n/**\n * buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX\n *\n * @generated from protobuf enum sui.rpc.v2.SimulateTransactionRequest.TransactionChecks\n */\nexport enum SimulateTransactionRequest_TransactionChecks {\n\t/**\n\t * @generated from protobuf enum value: ENABLED = 0;\n\t */\n\tENABLED = 0,\n\t/**\n\t * @generated from protobuf enum value: DISABLED = 1;\n\t */\n\tDISABLED = 1,\n}\n/**\n * @generated from protobuf message sui.rpc.v2.SimulateTransactionResponse\n */\nexport interface SimulateTransactionResponse {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ExecutedTransaction transaction = 1;\n\t */\n\ttransaction?: ExecutedTransaction;\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.CommandResult command_outputs = 2;\n\t */\n\tcommandOutputs: CommandResult[];\n\t/**\n\t * A suggested gas price to use, that is above RGP, in order to provide a\n\t * better chance of the transaction being included in the presence of\n\t * congested objects.\n\t *\n\t * @generated from protobuf field: optional uint64 suggested_gas_price = 3;\n\t */\n\tsuggestedGasPrice?: bigint;\n}\n/**\n * An intermediate result/output from the execution of a single command\n *\n * @generated from protobuf message sui.rpc.v2.CommandResult\n */\nexport interface CommandResult {\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.CommandOutput return_values = 1;\n\t */\n\treturnValues: CommandOutput[];\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.CommandOutput mutated_by_ref = 2;\n\t */\n\tmutatedByRef: CommandOutput[];\n}\n/**\n * @generated from protobuf message sui.rpc.v2.CommandOutput\n */\nexport interface CommandOutput {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Argument argument = 1;\n\t */\n\targument?: Argument;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs value = 2;\n\t */\n\tvalue?: Bcs;\n\t/**\n\t * JSON rendering of the output.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Value json = 3;\n\t */\n\tjson?: Value;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ExecuteTransactionRequest$Type extends MessageType<ExecuteTransactionRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ExecuteTransactionRequest', [\n\t\t\t{ no: 1, name: 'transaction', kind: 'message', T: () => Transaction },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'signatures',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => UserSignature,\n\t\t\t},\n\t\t\t{ no: 3, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ExecuteTransactionRequest\n */\nexport const ExecuteTransactionRequest = new ExecuteTransactionRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ExecuteTransactionResponse$Type extends MessageType<ExecuteTransactionResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ExecuteTransactionResponse', [\n\t\t\t{ no: 1, name: 'transaction', kind: 'message', T: () => ExecutedTransaction },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ExecuteTransactionResponse\n */\nexport const ExecuteTransactionResponse = new ExecuteTransactionResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SimulateTransactionRequest$Type extends MessageType<SimulateTransactionRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SimulateTransactionRequest', [\n\t\t\t{ no: 1, name: 'transaction', kind: 'message', T: () => Transaction },\n\t\t\t{ no: 2, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'checks',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.SimulateTransactionRequest.TransactionChecks',\n\t\t\t\t\tSimulateTransactionRequest_TransactionChecks,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ no: 4, name: 'do_gas_selection', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SimulateTransactionRequest\n */\nexport const SimulateTransactionRequest = new SimulateTransactionRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SimulateTransactionResponse$Type extends MessageType<SimulateTransactionResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SimulateTransactionResponse', [\n\t\t\t{ no: 1, name: 'transaction', kind: 'message', T: () => ExecutedTransaction },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'command_outputs',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => CommandResult,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'suggested_gas_price',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SimulateTransactionResponse\n */\nexport const SimulateTransactionResponse = new SimulateTransactionResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CommandResult$Type extends MessageType<CommandResult> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CommandResult', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'return_values',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => CommandOutput,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'mutated_by_ref',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => CommandOutput,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CommandResult\n */\nexport const CommandResult = new CommandResult$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CommandOutput$Type extends MessageType<CommandOutput> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CommandOutput', [\n\t\t\t{ no: 1, name: 'argument', kind: 'message', T: () => Argument },\n\t\t\t{ no: 2, name: 'value', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 3, name: 'json', kind: 'message', T: () => Value },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CommandOutput\n */\nexport const CommandOutput = new CommandOutput$Type();\n/**\n * @generated ServiceType for protobuf service sui.rpc.v2.TransactionExecutionService\n */\nexport const TransactionExecutionService = new ServiceType(\n\t'sui.rpc.v2.TransactionExecutionService',\n\t[\n\t\t{\n\t\t\tname: 'ExecuteTransaction',\n\t\t\toptions: {},\n\t\t\tI: ExecuteTransactionRequest,\n\t\t\tO: ExecuteTransactionResponse,\n\t\t},\n\t\t{\n\t\t\tname: 'SimulateTransaction',\n\t\t\toptions: {},\n\t\t\tI: SimulateTransactionRequest,\n\t\t\tO: SimulateTransactionResponse,\n\t\t},\n\t],\n);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CoreClientOptions, SuiClientTypes } from '../client/index.js';\nimport { CoreClient, formatMoveAbortMessage, SimulationError } from '../client/index.js';\nimport type { SuiGrpcClient } from './client.js';\nimport type { Owner } from './proto/sui/rpc/v2/owner.js';\nimport { Owner_OwnerKind } from './proto/sui/rpc/v2/owner.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport type { ExecutedTransaction } from './proto/sui/rpc/v2/executed_transaction.js';\nimport type { TransactionEffects } from './proto/sui/rpc/v2/effects.js';\nimport {\n\tUnchangedConsensusObject_UnchangedConsensusObjectKind,\n\tChangedObject_IdOperation,\n\tChangedObject_InputObjectState,\n\tChangedObject_OutputObjectState,\n} from './proto/sui/rpc/v2/effects.js';\nimport type {\n\tExecutionError as GrpcExecutionError,\n\tMoveAbort as GrpcMoveAbort,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport {\n\tExecutionError_ExecutionErrorKind,\n\tCommandArgumentError_CommandArgumentErrorKind,\n\tTypeArgumentError_TypeArgumentErrorKind,\n\tPackageUpgradeError_PackageUpgradeErrorKind,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\nimport { TransactionDataBuilder } from '../transactions/index.js';\nimport { bcs } from '../bcs/index.js';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { OpenSignature, OpenSignatureBody } from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tAbility,\n\tFunctionDescriptor_Visibility,\n\tOpenSignature_Reference,\n\tOpenSignatureBody_Type,\n} from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tapplyGrpcResolvedTransaction,\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcTransaction,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { Value } from './proto/google/protobuf/struct.js';\nimport { SimulateTransactionRequest_TransactionChecks } from './proto/sui/rpc/v2/transaction_execution_service.js';\n\nexport interface GrpcCoreClientOptions extends CoreClientOptions {\n\tclient: SuiGrpcClient;\n}\nexport class GrpcCoreClient extends CoreClient {\n\t#client: SuiGrpcClient;\n\tconstructor({ client, ...options }: GrpcCoreClientOptions) {\n\t\tsuper(options);\n\t\tthis.#client = client;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tfor (const batch of batches) {\n\t\t\tconst response = await this.#client.ledgerService.batchGetObjects({\n\t\t\t\trequests: batch.map((id) => ({ objectId: id })),\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tresults.push(\n\t\t\t\t...response.response.objects.map((object): SuiClientTypes.Object<Include> | Error => {\n\t\t\t\t\tif (object.result.oneofKind === 'error') {\n\t\t\t\t\t\t// TODO: improve error handling\n\t\t\t\t\t\treturn new Error(object.result.error.message);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (object.result.oneofKind !== 'object') {\n\t\t\t\t\t\treturn new Error('Unexpected result type');\n\t\t\t\t\t}\n\n\t\t\t\t\tconst bcsContent = object.result.object.contents?.value ?? undefined;\n\t\t\t\t\tconst objectBcs = object.result.object.bcs?.value ?? undefined;\n\n\t\t\t\t\t// Package objects have type \"package\" which is not a struct tag, so don't normalize it\n\t\t\t\t\tconst objectType = object.result.object.objectType;\n\t\t\t\t\tconst type =\n\t\t\t\t\t\tobjectType && objectType.includes('::')\n\t\t\t\t\t\t\t? normalizeStructTag(objectType)\n\t\t\t\t\t\t\t: (objectType ?? '');\n\n\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t? object.result.object.json\n\t\t\t\t\t\t\t? (Value.toJson(object.result.object.json) as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\tconst displayData = mapDisplayProto(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobject.result.object.display,\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tobjectId: object.result.object.objectId!,\n\t\t\t\t\t\tversion: object.result.object.version?.toString()!,\n\t\t\t\t\t\tdigest: object.result.object.digest!,\n\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\towner: mapOwner(object.result.object.owner)!,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tpreviousTransaction: (object.result.object.previousTransaction ??\n\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects({\n\t\t\towner: options.owner,\n\t\t\tobjectType: options.type\n\t\t\t\t? (await this.mvr.resolveType({ type: options.type })).type\n\t\t\t\t: undefined,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\tpageSize: options.limit,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\tconst objects = response.response.objects.map(\n\t\t\t(object): SuiClientTypes.Object<Include> => ({\n\t\t\t\tobjectId: object.objectId!,\n\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\tdigest: object.digest!,\n\t\t\t\tcontent: object.contents?.value as SuiClientTypes.Object<Include>['content'],\n\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\ttype: object.objectType!,\n\t\t\t\tpreviousTransaction: (object.previousTransaction ??\n\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\tobjectBcs: object.bcs?.value as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t? object.json\n\t\t\t\t\t\t? (Value.toJson(object.json) as Record<string, unknown>)\n\t\t\t\t\t\t: null\n\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\tdisplay: mapDisplayProto(\n\t\t\t\t\toptions.include?.display,\n\t\t\t\t\tobject.display,\n\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tobjects,\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id', 'balance'];\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects({\n\t\t\towner: options.owner,\n\t\t\tobjectType: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: response.response.objects.map(\n\t\t\t\t(object): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\t\tdigest: object.digest!,\n\t\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\t\ttype: object.objectType!,\n\t\t\t\t\tbalance: object.balance?.toString()!,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#client.stateService.getBalance({\n\t\t\towner: options.owner,\n\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tbalance: result.response.balance?.balance?.toString() ?? '0',\n\t\t\t\tcoinType: result.response.balance?.coinType ?? coinType,\n\t\t\t\tcoinBalance: result.response.balance?.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: result.response.balance?.addressBalance?.toString() ?? '0',\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tlet response;\n\t\ttry {\n\t\t\t({ response } = await this.#client.stateService.getCoinInfo({\n\t\t\t\tcoinType,\n\t\t\t}));\n\t\t} catch {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\tif (!response.metadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: response.metadata.id ?? null,\n\t\t\t\tdecimals: response.metadata.decimals ?? 0,\n\t\t\t\tname: response.metadata.name ?? '',\n\t\t\t\tsymbol: response.metadata.symbol ?? '',\n\t\t\t\tdescription: response.metadata.description ?? '',\n\t\t\t\ticonUrl: response.metadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst result = await this.#client.stateService.listBalances({\n\t\t\towner: options.owner,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\tpageSize: options.limit,\n\t\t});\n\n\t\treturn {\n\t\t\thasNextPage: !!result.response.nextPageToken,\n\t\t\tcursor: result.response.nextPageToken ? toBase64(result.response.nextPageToken) : null,\n\t\t\tbalances: result.response.balances.map((balance) => ({\n\t\t\t\tbalance: balance.balance?.toString() ?? '0',\n\t\t\t\tcoinType: balance.coinType!,\n\t\t\t\tcoinBalance: balance.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: balance.addressBalance?.toString() ?? '0',\n\t\t\t})),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.sender',\n\t\t\t\t'transaction.gas_payment',\n\t\t\t\t'transaction.expiration',\n\t\t\t\t'transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\tpaths.push('effects.changed_objects.object_type');\n\t\t\tpaths.push('effects.changed_objects.object_id');\n\t\t}\n\n\t\tconst { response } = await this.#client.ledgerService.getTransaction({\n\t\t\tdigest: options.digest,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\tif (!response.transaction) {\n\t\t\tthrow new Error(`Transaction ${options.digest} not found`);\n\t\t}\n\n\t\treturn parseTransaction(response.transaction, options.include);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.sender',\n\t\t\t\t'transaction.gas_payment',\n\t\t\t\t'transaction.expiration',\n\t\t\t\t'transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\tpaths.push('effects.changed_objects.object_type');\n\t\t\tpaths.push('effects.changed_objects.object_id');\n\t\t}\n\n\t\tconst { response } = await this.#client.transactionExecutionService.executeTransaction({\n\t\t\ttransaction: {\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsignatures: options.signatures.map((signature) => ({\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: fromBase64(signature),\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\toneofKind: undefined,\n\t\t\t\t},\n\t\t\t})),\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\treturn parseTransaction(response.transaction!, options.include);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\tconst paths = [\n\t\t\t'transaction.digest',\n\t\t\t'transaction.transaction.digest',\n\t\t\t'transaction.signatures',\n\t\t\t'transaction.effects.status',\n\t\t];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t'transaction.transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('transaction.balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('transaction.effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('transaction.events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\t// Use effects.changed_objects to match JSON-RPC behavior (which uses objectChanges)\n\t\t\tpaths.push('transaction.effects.changed_objects.object_type');\n\t\t\tpaths.push('transaction.effects.changed_objects.object_id');\n\t\t}\n\t\tif (options.include?.commandResults) {\n\t\t\tpaths.push('command_outputs');\n\t\t}\n\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\tconst { response } = await this.#client.transactionExecutionService.simulateTransaction({\n\t\t\ttransaction:\n\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: transactionToGrpcTransaction(options.transaction),\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t\tdoGasSelection: false,\n\t\t\tchecks:\n\t\t\t\toptions.checksEnabled === false\n\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t});\n\n\t\tconst transactionResult = parseTransaction(response.transaction!, options.include);\n\n\t\t// Add command results if requested\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && response.commandOutputs\n\t\t\t\t? response.commandOutputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.value ?? null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedByRef ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.value ?? null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t}))\n\t\t\t\t: undefined;\n\n\t\tif (transactionResult.$kind === 'Transaction') {\n\t\t\treturn {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: transactionResult.Transaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t}\n\t}\n\tasync getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: {\n\t\t\t\tpaths: ['reference_gas_price'],\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\treferenceGasPrice: response.response.epoch?.referenceGasPrice?.toString() ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: { paths: ['protocol_config'] },\n\t\t});\n\n\t\tconst protocolConfig = response.response.epoch?.protocolConfig;\n\t\tif (!protocolConfig) {\n\t\t\tthrow new Error('Protocol config not found in response');\n\t\t}\n\n\t\tconst featureFlags: Record<string, boolean> = { ...protocolConfig.featureFlags };\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tif (protocolConfig.attributes) {\n\t\t\tfor (const [key, value] of Object.entries(protocolConfig.attributes)) {\n\t\t\t\tattributes[key] = value ?? null;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: protocolConfig.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: {\n\t\t\t\tpaths: [\n\t\t\t\t\t'system_state.version',\n\t\t\t\t\t'system_state.epoch',\n\t\t\t\t\t'system_state.protocol_version',\n\t\t\t\t\t'system_state.reference_gas_price',\n\t\t\t\t\t'system_state.epoch_start_timestamp_ms',\n\t\t\t\t\t'system_state.safe_mode',\n\t\t\t\t\t'system_state.safe_mode_storage_rewards',\n\t\t\t\t\t'system_state.safe_mode_computation_rewards',\n\t\t\t\t\t'system_state.safe_mode_storage_rebates',\n\t\t\t\t\t'system_state.safe_mode_non_refundable_storage_fee',\n\t\t\t\t\t'system_state.parameters',\n\t\t\t\t\t'system_state.storage_fund',\n\t\t\t\t\t'system_state.stake_subsidy',\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\n\t\tconst epoch = response.response.epoch;\n\t\tconst systemState = epoch?.systemState;\n\t\tif (!systemState) {\n\t\t\tthrow new Error('System state not found in response');\n\t\t}\n\n\t\tconst startMs = epoch?.start?.seconds\n\t\t\t? Number(epoch.start.seconds) * 1000 + Math.floor((epoch.start.nanos || 0) / 1_000_000)\n\t\t\t: systemState.epochStartTimestampMs\n\t\t\t\t? Number(systemState.epochStartTimestampMs)\n\t\t\t\t: (null as never);\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemState.version?.toString() ?? (null as never),\n\t\t\t\tepoch: systemState.epoch?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: systemState.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: systemState.referenceGasPrice?.toString() ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs.toString(),\n\t\t\t\tsafeMode: systemState.safeMode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemState.safeModeStorageRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemState.safeModeComputationRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeStorageRebates: systemState.safeModeStorageRebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemState.safeModeNonRefundableStorageFee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs: systemState.parameters?.epochDurationMs?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemState.parameters?.stakeSubsidyStartEpoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemState.parameters?.maxValidatorCount?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemState.parameters?.minValidatorJoiningStake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeThreshold?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeGracePeriod?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemState.storageFund?.totalObjectStorageRebates?.toString() ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemState.storageFund?.nonRefundableBalance?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemState.stakeSubsidy?.balance?.toString() ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.distributionCounter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.currentDistributionAmount?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyPeriodLength?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyDecreaseRate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#client.listDynamicFields(options);\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst messageBytes = fromBase64(options.bytes);\n\n\t\t// For PersonalMessage, the server expects BCS-encoded vector<u8>\n\t\t// For TransactionData, the server expects the raw BCS-encoded TransactionData as-is\n\t\tconst messageValue =\n\t\t\toptions.intentScope === 'PersonalMessage'\n\t\t\t\t? bcs.byteVector().serialize(messageBytes).toBytes()\n\t\t\t\t: messageBytes;\n\n\t\tconst { response } = await this.#client.signatureVerificationService.verifySignature({\n\t\t\tmessage: {\n\t\t\t\tname: options.intentScope,\n\t\t\t\tvalue: messageValue,\n\t\t\t},\n\t\t\tsignature: {\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: fromBase64(options.signature),\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\toneofKind: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t\taddress: options.address,\n\t\t\tjwks: [],\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: response.isValid ?? false,\n\t\t\terrors: response.reason ? [response.reason] : [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name =\n\t\t\t(\n\t\t\t\tawait this.#client.nameService.reverseLookupName({\n\t\t\t\t\taddress: options.address,\n\t\t\t\t})\n\t\t\t).response.record?.name ?? null;\n\t\treturn {\n\t\t\tdata: {\n\t\t\t\tname,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst resolvedPackageId = (await this.mvr.resolvePackage({ package: options.packageId }))\n\t\t\t.package;\n\t\tconst { response } = await this.#client.movePackageService.getFunction({\n\t\t\tpackageId: resolvedPackageId,\n\t\t\tmoduleName: options.moduleName,\n\t\t\tname: options.name,\n\t\t});\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (response.function?.visibility) {\n\t\t\tcase FunctionDescriptor_Visibility.PUBLIC:\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.PRIVATE:\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.FRIEND:\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(resolvedPackageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: response.function?.name!,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: response.function?.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tresponse.function?.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase Ability.COPY:\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase Ability.DROP:\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase Ability.STORE:\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase Ability.KEY:\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tresponse.function?.parameters?.map((param) => parseNormalizedSuiMoveType(param)) ?? [],\n\t\t\t\treturns: response.function?.returns?.map((ret) => parseNormalizedSuiMoveType(ret)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst { response } = await this.#client.ledgerService.getServiceInfo({});\n\t\t\tif (!response.chainId) {\n\t\t\t\tthrow new Error('Chain identifier not found in service info');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: response.chainId,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst client = this.#client;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\t// The resolved transaction will not include the sender if it wasn't set originally\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tconst result = await client.transactionExecutionService.simulateTransaction({\n\t\t\t\t\ttransaction: grpcTransaction,\n\t\t\t\t\tdoGasSelection:\n\t\t\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null),\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths: [\n\t\t\t\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t\t\t\t'transaction.transaction.kind',\n\t\t\t\t\t\t\t'transaction.effects.status',\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tresponse = result.response;\n\t\t\t} catch (error) {\n\t\t\t\t// https://github.com/timostamm/protobuf-ts/pull/739\n\t\t\t\tif (error instanceof Error && error.message) {\n\t\t\t\t\tthrow new SimulationError(decodeURIComponent(error.message), { cause: error });\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\tresponse.transaction?.effects?.status &&\n\t\t\t\t!response.transaction.effects.status.success\n\t\t\t) {\n\t\t\t\tconst executionError = response.transaction.effects.status.error\n\t\t\t\t\t? parseGrpcExecutionError(response.transaction.effects.status.error)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!response.transaction?.transaction) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tapplyGrpcResolvedTransaction(transactionData, response.transaction.transaction, options);\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\n\nfunction mapDisplayProto(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: Value; errors?: Value } | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (display === undefined) return null;\n\treturn {\n\t\toutput:\n\t\t\tdisplay.output !== undefined\n\t\t\t\t? (Value.toJson(display.output) as Record<string, unknown> | null)\n\t\t\t\t: null,\n\t\terrors:\n\t\t\tdisplay.errors !== undefined\n\t\t\t\t? (Value.toJson(display.errors) as Record<string, string> | null)\n\t\t\t\t: null,\n\t};\n}\n\nfunction mapOwner(owner: Owner | null | undefined): SuiClientTypes.ObjectOwner | null {\n\tif (!owner) {\n\t\treturn null;\n\t}\n\tif (owner.kind === Owner_OwnerKind.IMMUTABLE) {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.ADDRESS) {\n\t\treturn {\n\t\t\tAddressOwner: owner.address!,\n\t\t\t$kind: 'AddressOwner',\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.OBJECT) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.address!,\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.SHARED) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.version?.toString()!,\n\t\t\t},\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.CONSENSUS_ADDRESS) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\tConsensusAddressOwner: {\n\t\t\t\tstartVersion: owner.version?.toString()!,\n\t\t\t\towner: owner.address!,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`Unknown owner kind ${JSON.stringify(owner, (_k, v) => (typeof v === 'bigint' ? v.toString() : v))}`,\n\t);\n}\n\nfunction parseGrpcExecutionError(error: GrpcExecutionError): SuiClientTypes.ExecutionError {\n\tconst message = error.description ?? 'Unknown error';\n\tconst command = error.command != null ? Number(error.command) : undefined;\n\tconst details = error.errorDetails;\n\n\tswitch (details?.oneofKind) {\n\t\tcase 'abort': {\n\t\t\tconst abort = details.abort;\n\t\t\tconst cleverError = abort.cleverError;\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveAbort',\n\t\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\t\tcommand,\n\t\t\t\t\tlocation: abort.location,\n\t\t\t\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\t\t\t\tcleverError: cleverError\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlineNumber:\n\t\t\t\t\t\t\t\t\tcleverError.lineNumber != null ? Number(cleverError.lineNumber) : undefined,\n\t\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\tcleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t\t\t\t? cleverError.value.rendered\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t\tcommand,\n\t\t\t\tMoveAbort: parseMoveAbort(abort),\n\t\t\t};\n\t\t}\n\n\t\tcase 'sizeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tsize: Number(details.sizeError.size ?? 0n),\n\t\t\t\t\tmaxSize: Number(details.sizeError.maxSize ?? 0n),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'commandArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CommandArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCommandArgumentError: {\n\t\t\t\t\targument: details.commandArgumentError.argument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.commandArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'typeArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'TypeArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tTypeArgumentError: {\n\t\t\t\t\ttypeArgument: details.typeArgumentError.typeArgument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.typeArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'packageUpgradeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'PackageUpgradeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tPackageUpgradeError: {\n\t\t\t\t\tname: mapErrorName(details.packageUpgradeError.kind),\n\t\t\t\t\tpackageId: details.packageUpgradeError.packageId,\n\t\t\t\t\tdigest: details.packageUpgradeError.digest,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'indexError':\n\t\t\treturn {\n\t\t\t\t$kind: 'IndexError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tIndexError: {\n\t\t\t\t\tindex: details.indexError.index,\n\t\t\t\t\tsubresult: details.indexError.subresult,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'coinDenyListError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CoinDenyListError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCoinDenyListError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tcoinType: details.coinDenyListError.coinType!,\n\t\t\t\t\taddress: details.coinDenyListError.address,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'congestedObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'CongestedObjects',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCongestedObjects: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjects: details.congestedObjects.objects,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'objectId':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjectId: details.objectId,\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\t}\n}\n\nfunction parseMoveAbort(abort: GrpcMoveAbort): SuiClientTypes.MoveAbort {\n\treturn {\n\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\tlocation: { ...abort.location },\n\t\tcleverError: abort.cleverError\n\t\t\t? {\n\t\t\t\t\terrorCode:\n\t\t\t\t\t\tabort.cleverError.errorCode != null ? Number(abort.cleverError.errorCode) : undefined,\n\t\t\t\t\tlineNumber:\n\t\t\t\t\t\tabort.cleverError.lineNumber != null ? Number(abort.cleverError.lineNumber) : undefined,\n\t\t\t\t\tconstantName: abort.cleverError.constantName,\n\t\t\t\t\tconstantType: abort.cleverError.constantType,\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tabort.cleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t? abort.cleverError.value.rendered\n\t\t\t\t\t\t\t: abort.cleverError.value?.oneofKind === 'raw'\n\t\t\t\t\t\t\t\t? toBase64(abort.cleverError.value.raw)\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t}\n\t\t\t: undefined,\n\t};\n}\n\nfunction mapErrorName(\n\tkind:\n\t\t| ExecutionError_ExecutionErrorKind\n\t\t| CommandArgumentError_CommandArgumentErrorKind\n\t\t| TypeArgumentError_TypeArgumentErrorKind\n\t\t| PackageUpgradeError_PackageUpgradeErrorKind\n\t\t| undefined,\n): string {\n\tif (kind == null) {\n\t\treturn 'Unknown';\n\t}\n\tconst name = CommandArgumentError_CommandArgumentErrorKind[kind];\n\tif (!name || name.endsWith('_UNKNOWN')) {\n\t\treturn 'Unknown';\n\t}\n\treturn name\n\t\t.split('_')\n\t\t.map((word) => word.charAt(0) + word.slice(1).toLowerCase())\n\t\t.join('');\n}\n\nfunction mapIdOperation(\n\toperation: ChangedObject_IdOperation | undefined,\n): null | 'Created' | 'Deleted' | 'Unknown' | 'None' {\n\tif (operation == null) {\n\t\treturn null;\n\t}\n\tswitch (operation) {\n\t\tcase ChangedObject_IdOperation.CREATED:\n\t\t\treturn 'Created';\n\t\tcase ChangedObject_IdOperation.DELETED:\n\t\t\treturn 'Deleted';\n\t\tcase ChangedObject_IdOperation.NONE:\n\t\tcase ChangedObject_IdOperation.ID_OPERATION_UNKNOWN:\n\t\t\treturn 'None';\n\t\tdefault:\n\t\t\toperation satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapInputObjectState(\n\tstate: ChangedObject_InputObjectState | undefined,\n): null | 'Exists' | 'DoesNotExist' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_InputObjectState.EXISTS:\n\t\t\treturn 'Exists';\n\t\tcase ChangedObject_InputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_InputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapOutputObjectState(\n\tstate: ChangedObject_OutputObjectState | undefined,\n): null | 'ObjectWrite' | 'PackageWrite' | 'DoesNotExist' | 'AccumulatorWriteV1' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_OutputObjectState.OBJECT_WRITE:\n\t\t\treturn 'ObjectWrite';\n\t\tcase ChangedObject_OutputObjectState.PACKAGE_WRITE:\n\t\t\treturn 'PackageWrite';\n\t\tcase ChangedObject_OutputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_OutputObjectState.ACCUMULATOR_WRITE:\n\t\t\treturn 'AccumulatorWriteV1';\n\t\tcase ChangedObject_OutputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapUnchangedConsensusObjectKind(\n\tkind: UnchangedConsensusObject_UnchangedConsensusObjectKind | undefined,\n): null | SuiClientTypes.UnchangedConsensusObject['kind'] {\n\tif (kind == null) {\n\t\treturn null;\n\t}\n\tswitch (kind) {\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_ONLY_ROOT:\n\t\t\treturn 'ReadOnlyRoot';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.MUTATE_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'MutateConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'ReadConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.CANCELED:\n\t\t\treturn 'Cancelled';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.PER_EPOCH_CONFIG:\n\t\t\treturn 'PerEpochConfig';\n\t\tdefault:\n\t\t\tkind satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function parseTransactionEffects({\n\teffects,\n}: {\n\teffects: TransactionEffects | undefined;\n}): SuiClientTypes.TransactionEffects | null {\n\tif (!effects) {\n\t\treturn null;\n\t}\n\n\tconst changedObjects = effects.changedObjects.map((change): SuiClientTypes.ChangedObject => {\n\t\treturn {\n\t\t\tobjectId: change.objectId!,\n\t\t\tinputState: mapInputObjectState(change.inputState)!,\n\t\t\tinputVersion: change.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: change.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(change.inputOwner),\n\t\t\toutputState: mapOutputObjectState(change.outputState)!,\n\t\t\toutputVersion: change.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: change.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(change.outputOwner),\n\t\t\tidOperation: mapIdOperation(change.idOperation)!,\n\t\t};\n\t});\n\n\treturn {\n\t\tbcs: effects.bcs?.value!,\n\n\t\tversion: 2,\n\t\tstatus: effects.status?.success\n\t\t\t? {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\terror: null,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGrpcExecutionError(effects.status!.error!),\n\t\t\t\t},\n\t\tgasUsed: {\n\t\t\tcomputationCost: effects.gasUsed?.computationCost?.toString()!,\n\t\t\tstorageCost: effects.gasUsed?.storageCost?.toString()!,\n\t\t\tstorageRebate: effects.gasUsed?.storageRebate?.toString()!,\n\t\t\tnonRefundableStorageFee: effects.gasUsed?.nonRefundableStorageFee?.toString()!,\n\t\t},\n\t\ttransactionDigest: effects.transactionDigest!,\n\t\tgasObject: {\n\t\t\tobjectId: effects.gasObject?.objectId!,\n\t\t\tinputState: mapInputObjectState(effects.gasObject?.inputState)!,\n\t\t\tinputVersion: effects.gasObject?.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: effects.gasObject?.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(effects.gasObject?.inputOwner),\n\t\t\toutputState: mapOutputObjectState(effects.gasObject?.outputState)!,\n\t\t\toutputVersion: effects.gasObject?.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: effects.gasObject?.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(effects.gasObject?.outputOwner),\n\t\t\tidOperation: mapIdOperation(effects.gasObject?.idOperation)!,\n\t\t},\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion?.toString() ?? null,\n\t\tchangedObjects,\n\t\tunchangedConsensusObjects: effects.unchangedConsensusObjects.map(\n\t\t\t(object): SuiClientTypes.UnchangedConsensusObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: mapUnchangedConsensusObjectKind(object.kind)!,\n\t\t\t\t\t// TODO: we are inconsistent about id vs objectId\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString() ?? null,\n\t\t\t\t\tdigest: object.digest ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxiliaryDataDigest ?? null,\n\t};\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: ExecutedTransaction,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\tif (include?.objectTypes) {\n\t\ttransaction.effects?.changedObjects?.forEach((change) => {\n\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t}\n\t\t});\n\t}\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction) {\n\t\tconst tx = transaction.transaction;\n\n\t\tif (!tx) {\n\t\t\tthrow new Error('Transaction data is required but missing from gRPC response');\n\t\t}\n\n\t\tconst resolved = grpcTransactionToTransactionData(tx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes = include?.bcs ? transaction.transaction?.bcs?.value : undefined;\n\n\tconst effects = include?.effects\n\t\t? parseTransactionEffects({\n\t\t\t\teffects: transaction.effects,\n\t\t\t})\n\t\t: undefined;\n\n\tconst status: SuiClientTypes.ExecutionStatus = transaction.effects?.status?.success\n\t\t? { success: true, error: null }\n\t\t: {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: transaction.effects?.status?.error\n\t\t\t\t\t? parseGrpcExecutionError(transaction.effects.status.error)\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t$kind: 'Unknown',\n\t\t\t\t\t\t\tmessage: 'Transaction failed',\n\t\t\t\t\t\t\tUnknown: null,\n\t\t\t\t\t\t},\n\t\t\t};\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tepoch: transaction.effects?.epoch?.toString() ?? null,\n\t\tstatus,\n\t\teffects: effects as SuiClientTypes.Transaction<Include>['effects'],\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures?.map((sig) => toBase64(sig.bcs?.value!)) ?? [],\n\t\tbalanceChanges: (include?.balanceChanges\n\t\t\t? (transaction.balanceChanges?.map((change) => ({\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.events?.events.map((event) => ({\n\t\t\t\t\tpackageId: normalizeSuiAddress(event.packageId!),\n\t\t\t\t\tmodule: event.module!,\n\t\t\t\t\tsender: normalizeSuiAddress(event.sender!),\n\t\t\t\t\teventType: event.eventType!,\n\t\t\t\t\tbcs: event.contents?.value ?? new Uint8Array(),\n\t\t\t\t\tjson: event.json ? (Value.toJson(event.json) as Record<string, unknown>) : null,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: result,\n\t\t\t}\n\t\t: {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: result,\n\t\t\t};\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.reference === OpenSignature_Reference.IMMUTABLE) {\n\t\treference = 'immutable';\n\t} else if (type.reference === OpenSignature_Reference.MUTABLE) {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body!),\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(type: OpenSignatureBody): SuiClientTypes.OpenSignatureBody {\n\tswitch (type.type) {\n\t\tcase OpenSignatureBody_Type.TYPE_UNKNOWN:\n\t\t\treturn { $kind: 'unknown' };\n\t\tcase OpenSignatureBody_Type.ADDRESS:\n\t\t\treturn { $kind: 'address' };\n\t\tcase OpenSignatureBody_Type.BOOL:\n\t\t\treturn { $kind: 'bool' };\n\t\tcase OpenSignatureBody_Type.U8:\n\t\t\treturn { $kind: 'u8' };\n\t\tcase OpenSignatureBody_Type.U16:\n\t\t\treturn { $kind: 'u16' };\n\t\tcase OpenSignatureBody_Type.U32:\n\t\t\treturn { $kind: 'u32' };\n\t\tcase OpenSignatureBody_Type.U64:\n\t\t\treturn { $kind: 'u64' };\n\t\tcase OpenSignatureBody_Type.U128:\n\t\t\treturn { $kind: 'u128' };\n\t\tcase OpenSignatureBody_Type.U256:\n\t\t\treturn { $kind: 'u256' };\n\t\tcase OpenSignatureBody_Type.VECTOR:\n\t\t\treturn {\n\t\t\t\t$kind: 'vector',\n\t\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.typeParameterInstantiation[0]),\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.DATATYPE:\n\t\t\treturn {\n\t\t\t\t$kind: 'datatype',\n\t\t\t\tdatatype: {\n\t\t\t\t\ttypeName: type.typeName!,\n\t\t\t\t\ttypeParameters: type.typeParameterInstantiation.map((t) =>\n\t\t\t\t\t\tparseNormalizedSuiMoveTypeBody(t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.TYPE_PARAMETER:\n\t\t\treturn {\n\t\t\t\t$kind: 'typeParameter',\n\t\t\t\tindex: type.typeParameter!,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn { $kind: 'unknown' };\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/transaction_execution_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { TransactionExecutionService } from './transaction_execution_service.js';\nimport type { SimulateTransactionResponse } from './transaction_execution_service.js';\nimport type { SimulateTransactionRequest } from './transaction_execution_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { ExecuteTransactionResponse } from './transaction_execution_service.js';\nimport type { ExecuteTransactionRequest } from './transaction_execution_service.js';\nimport type { UnaryCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * @generated from protobuf service sui.rpc.v2.TransactionExecutionService\n */\nexport interface ITransactionExecutionServiceClient {\n\t/**\n\t * @generated from protobuf rpc: ExecuteTransaction(sui.rpc.v2.ExecuteTransactionRequest) returns (sui.rpc.v2.ExecuteTransactionResponse);\n\t */\n\texecuteTransaction(\n\t\tinput: ExecuteTransactionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ExecuteTransactionRequest, ExecuteTransactionResponse>;\n\t/**\n\t * @generated from protobuf rpc: SimulateTransaction(sui.rpc.v2.SimulateTransactionRequest) returns (sui.rpc.v2.SimulateTransactionResponse);\n\t */\n\tsimulateTransaction(\n\t\tinput: SimulateTransactionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<SimulateTransactionRequest, SimulateTransactionResponse>;\n}\n/**\n * @generated from protobuf service sui.rpc.v2.TransactionExecutionService\n */\nexport class TransactionExecutionServiceClient\n\timplements ITransactionExecutionServiceClient, ServiceInfo\n{\n\ttypeName = TransactionExecutionService.typeName;\n\tmethods = TransactionExecutionService.methods;\n\toptions = TransactionExecutionService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * @generated from protobuf rpc: ExecuteTransaction(sui.rpc.v2.ExecuteTransactionRequest) returns (sui.rpc.v2.ExecuteTransactionResponse);\n\t */\n\texecuteTransaction(\n\t\tinput: ExecuteTransactionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ExecuteTransactionRequest, ExecuteTransactionResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<ExecuteTransactionRequest, ExecuteTransactionResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: SimulateTransaction(sui.rpc.v2.SimulateTransactionRequest) returns (sui.rpc.v2.SimulateTransactionResponse);\n\t */\n\tsimulateTransaction(\n\t\tinput: SimulateTransactionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<SimulateTransactionRequest, SimulateTransactionResponse> {\n\t\tconst method = this.methods[1],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<SimulateTransactionRequest, SimulateTransactionResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/protocol_config.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * @generated from protobuf message sui.rpc.v2.ProtocolConfig\n */\nexport interface ProtocolConfig {\n\t/**\n\t * @generated from protobuf field: optional uint64 protocol_version = 1;\n\t */\n\tprotocolVersion?: bigint;\n\t/**\n\t * @generated from protobuf field: map<string, bool> feature_flags = 2;\n\t */\n\tfeatureFlags: {\n\t\t[key: string]: boolean;\n\t};\n\t/**\n\t * @generated from protobuf field: map<string, string> attributes = 3;\n\t */\n\tattributes: {\n\t\t[key: string]: string;\n\t};\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass ProtocolConfig$Type extends MessageType<ProtocolConfig> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ProtocolConfig', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'protocol_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'feature_flags',\n\t\t\t\tkind: 'map',\n\t\t\t\tK: 9 /*ScalarType.STRING*/,\n\t\t\t\tV: { kind: 'scalar', T: 8 /*ScalarType.BOOL*/ },\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'attributes',\n\t\t\t\tkind: 'map',\n\t\t\t\tK: 9 /*ScalarType.STRING*/,\n\t\t\t\tV: { kind: 'scalar', T: 9 /*ScalarType.STRING*/ },\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ProtocolConfig\n */\nexport const ProtocolConfig = new ProtocolConfig$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/system_state.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * @generated from protobuf message sui.rpc.v2.SystemState\n */\nexport interface SystemState {\n\t/**\n\t * The version of the system state data structure type.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 1;\n\t */\n\tversion?: bigint;\n\t/**\n\t * The epoch id\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 2;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * The protocol version\n\t *\n\t * @generated from protobuf field: optional uint64 protocol_version = 3;\n\t */\n\tprotocolVersion?: bigint;\n\t/**\n\t * Information about the validators\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ValidatorSet validators = 4;\n\t */\n\tvalidators?: ValidatorSet;\n\t/**\n\t * Storage Fund info\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.StorageFund storage_fund = 5;\n\t */\n\tstorageFund?: StorageFund;\n\t/**\n\t * Set of system config parameters\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SystemParameters parameters = 6;\n\t */\n\tparameters?: SystemParameters;\n\t/**\n\t * The reference gas price for this epoch\n\t *\n\t * @generated from protobuf field: optional uint64 reference_gas_price = 7;\n\t */\n\treferenceGasPrice?: bigint;\n\t/**\n\t * A list of the records of validator reporting each other.\n\t *\n\t * There is an entry in this list for each validator that has been reported\n\t * at least once. Each record contains all the validators that reported\n\t * them. If a validator has never been reported they don't have a record in this list.\n\t * This lists persists across epoch: a peer continues being in a reported state until the\n\t * reporter doesn't explicitly remove their report.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ValidatorReportRecord validator_report_records = 8;\n\t */\n\tvalidatorReportRecords: ValidatorReportRecord[];\n\t/**\n\t * Schedule of stake subsidies given out each epoch.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.StakeSubsidy stake_subsidy = 9;\n\t */\n\tstakeSubsidy?: StakeSubsidy;\n\t/**\n\t * Whether the system is running in a downgraded safe mode due to a non-recoverable bug.\n\t * This is set whenever we failed to execute advance_epoch, and ended up executing advance_epoch_safe_mode.\n\t * It can be reset once we are able to successfully execute advance_epoch.\n\t * The rest of the fields starting with `safe_mode_` are accumulated during safe mode\n\t * when advance_epoch_safe_mode is executed. They will eventually be processed once we\n\t * are out of safe mode.\n\t *\n\t * @generated from protobuf field: optional bool safe_mode = 10;\n\t */\n\tsafeMode?: boolean;\n\t/**\n\t * Storage rewards accumulated during safe_mode\n\t *\n\t * @generated from protobuf field: optional uint64 safe_mode_storage_rewards = 11;\n\t */\n\tsafeModeStorageRewards?: bigint;\n\t/**\n\t * Computation rewards accumulated during safe_mode\n\t *\n\t * @generated from protobuf field: optional uint64 safe_mode_computation_rewards = 12;\n\t */\n\tsafeModeComputationRewards?: bigint;\n\t/**\n\t * Storage rebates paid out during safe_mode\n\t *\n\t * @generated from protobuf field: optional uint64 safe_mode_storage_rebates = 13;\n\t */\n\tsafeModeStorageRebates?: bigint;\n\t/**\n\t * Nonrefundable storage fees accumulated during safe_mode\n\t *\n\t * @generated from protobuf field: optional uint64 safe_mode_non_refundable_storage_fee = 14;\n\t */\n\tsafeModeNonRefundableStorageFee?: bigint;\n\t/**\n\t * Unix timestamp of when this this epoch started\n\t *\n\t * @generated from protobuf field: optional uint64 epoch_start_timestamp_ms = 15;\n\t */\n\tepochStartTimestampMs?: bigint;\n\t/**\n\t * Any extra fields that's not defined statically.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable extra_fields = 16;\n\t */\n\textraFields?: MoveTable;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ValidatorReportRecord\n */\nexport interface ValidatorReportRecord {\n\t/**\n\t * The address of the validator being reported\n\t *\n\t * @generated from protobuf field: optional string reported = 1;\n\t */\n\treported?: string;\n\t/**\n\t * The list of validator (addresses) that are reporting on the validator specified by `reported`\n\t *\n\t * @generated from protobuf field: repeated string reporters = 2;\n\t */\n\treporters: string[];\n}\n/**\n * @generated from protobuf message sui.rpc.v2.SystemParameters\n */\nexport interface SystemParameters {\n\t/**\n\t * The duration of an epoch, in milliseconds.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch_duration_ms = 1;\n\t */\n\tepochDurationMs?: bigint;\n\t/**\n\t * The starting epoch in which stake subsidies start being paid out\n\t *\n\t * @generated from protobuf field: optional uint64 stake_subsidy_start_epoch = 2;\n\t */\n\tstakeSubsidyStartEpoch?: bigint;\n\t/**\n\t * Minimum number of active validators at any moment.\n\t *\n\t * @generated from protobuf field: optional uint64 min_validator_count = 3;\n\t */\n\tminValidatorCount?: bigint;\n\t/**\n\t * Maximum number of active validators at any moment.\n\t * We do not allow the number of validators in any epoch to go above this.\n\t *\n\t * @generated from protobuf field: optional uint64 max_validator_count = 4;\n\t */\n\tmaxValidatorCount?: bigint;\n\t/**\n\t * Deprecated.\n\t * Lower-bound on the amount of stake required to become a validator.\n\t *\n\t * @generated from protobuf field: optional uint64 min_validator_joining_stake = 5;\n\t */\n\tminValidatorJoiningStake?: bigint;\n\t/**\n\t * Deprecated.\n\t * Validators with stake amount below `validator_low_stake_threshold` are considered to\n\t * have low stake and will be escorted out of the validator set after being below this\n\t * threshold for more than `validator_low_stake_grace_period` number of epochs.\n\t *\n\t * @generated from protobuf field: optional uint64 validator_low_stake_threshold = 6;\n\t */\n\tvalidatorLowStakeThreshold?: bigint;\n\t/**\n\t * Deprecated.\n\t * Validators with stake below `validator_very_low_stake_threshold` will be removed\n\t * immediately at epoch change, no grace period.\n\t *\n\t * @generated from protobuf field: optional uint64 validator_very_low_stake_threshold = 7;\n\t */\n\tvalidatorVeryLowStakeThreshold?: bigint;\n\t/**\n\t * A validator can have stake below `validator_low_stake_threshold`\n\t * for this many epochs before being kicked out.\n\t *\n\t * @generated from protobuf field: optional uint64 validator_low_stake_grace_period = 8;\n\t */\n\tvalidatorLowStakeGracePeriod?: bigint;\n\t/**\n\t * Any extra fields that are not defined statically.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable extra_fields = 9;\n\t */\n\textraFields?: MoveTable;\n}\n/**\n * A message that represents a Move `0x2::table::Table` or `0x2::bag::Bag`\n *\n * @generated from protobuf message sui.rpc.v2.MoveTable\n */\nexport interface MoveTable {\n\t/**\n\t * The UID of the table or bag\n\t *\n\t * @generated from protobuf field: optional string id = 1;\n\t */\n\tid?: string;\n\t/**\n\t * The size or number of key-value pairs in the table or bag\n\t *\n\t * @generated from protobuf field: optional uint64 size = 2;\n\t */\n\tsize?: bigint;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.StakeSubsidy\n */\nexport interface StakeSubsidy {\n\t/**\n\t * Balance of SUI set aside for stake subsidies that will be drawn down over time.\n\t *\n\t * @generated from protobuf field: optional uint64 balance = 1;\n\t */\n\tbalance?: bigint;\n\t/**\n\t * Count of the number of times stake subsidies have been distributed.\n\t *\n\t * @generated from protobuf field: optional uint64 distribution_counter = 2;\n\t */\n\tdistributionCounter?: bigint;\n\t/**\n\t * The amount of stake subsidy to be drawn down per distribution.\n\t * This amount decays and decreases over time.\n\t *\n\t * @generated from protobuf field: optional uint64 current_distribution_amount = 3;\n\t */\n\tcurrentDistributionAmount?: bigint;\n\t/**\n\t * Number of distributions to occur before the distribution amount decays.\n\t *\n\t * @generated from protobuf field: optional uint64 stake_subsidy_period_length = 4;\n\t */\n\tstakeSubsidyPeriodLength?: bigint;\n\t/**\n\t * The rate at which the distribution amount decays at the end of each\n\t * period. Expressed in basis points.\n\t *\n\t * @generated from protobuf field: optional uint32 stake_subsidy_decrease_rate = 5;\n\t */\n\tstakeSubsidyDecreaseRate?: number;\n\t/**\n\t * Any extra fields that's not defined statically.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable extra_fields = 6;\n\t */\n\textraFields?: MoveTable;\n}\n/**\n * Struct representing the onchain storage fund.\n *\n * @generated from protobuf message sui.rpc.v2.StorageFund\n */\nexport interface StorageFund {\n\t/**\n\t * This is the sum of `storage_rebate` of\n\t * all objects currently stored on-chain. To maintain this invariant, the only inflow of this\n\t * balance is storage charges collected from transactions, and the only outflow is storage rebates\n\t * of transactions, including both the portion refunded to the transaction senders as well as\n\t * the non-refundable portion taken out and put into `non_refundable_balance`.\n\t *\n\t * @generated from protobuf field: optional uint64 total_object_storage_rebates = 1;\n\t */\n\ttotalObjectStorageRebates?: bigint;\n\t/**\n\t * Represents any remaining inflow of the storage fund that should not\n\t * be taken out of the fund.\n\t *\n\t * @generated from protobuf field: optional uint64 non_refundable_balance = 2;\n\t */\n\tnonRefundableBalance?: bigint;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ValidatorSet\n */\nexport interface ValidatorSet {\n\t/**\n\t * Total amount of stake from all active validators at the beginning of the epoch.\n\t * Written only once per epoch, in `advance_epoch` function.\n\t *\n\t * @generated from protobuf field: optional uint64 total_stake = 1;\n\t */\n\ttotalStake?: bigint;\n\t/**\n\t * The current list of active validators.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Validator active_validators = 2;\n\t */\n\tactiveValidators: Validator[];\n\t/**\n\t * List of new validator candidates added during the current epoch.\n\t * They will be processed at the end of the epoch.\n\t *\n\t * key: u64 (index), value: 0x3::validator::Validator\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable pending_active_validators = 3;\n\t */\n\tpendingActiveValidators?: MoveTable;\n\t/**\n\t * Removal requests from the validators. Each element is an index\n\t * pointing to `active_validators`.\n\t *\n\t * @generated from protobuf field: repeated uint64 pending_removals = 4;\n\t */\n\tpendingRemovals: bigint[];\n\t/**\n\t * Mappings from staking pool's ID to the sui address of a validator.\n\t *\n\t * key: address (staking pool Id), value: address (sui address of the validator)\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable staking_pool_mappings = 5;\n\t */\n\tstakingPoolMappings?: MoveTable;\n\t/**\n\t * Mapping from a staking pool ID to the inactive validator that has that pool as its staking pool.\n\t * When a validator is deactivated the validator is removed from `active_validators` it\n\t * is added to this table so that stakers can continue to withdraw their stake from it.\n\t *\n\t * key: address (staking pool Id), value: 0x3::validator_wrapper::ValidatorWrapper\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable inactive_validators = 6;\n\t */\n\tinactiveValidators?: MoveTable;\n\t/**\n\t * Table storing preactive/candidate validators, mapping their addresses to their `Validator ` structs.\n\t * When an address calls `request_add_validator_candidate`, they get added to this table and become a preactive\n\t * validator.\n\t * When the candidate has met the min stake requirement, they can call `request_add_validator` to\n\t * officially add them to the active validator set `active_validators` next epoch.\n\t *\n\t * key: address (sui address of the validator), value: 0x3::validator_wrapper::ValidatorWrapper\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable validator_candidates = 7;\n\t */\n\tvalidatorCandidates?: MoveTable;\n\t/**\n\t * Table storing the number of epochs during which a validator's stake has been below the low stake threshold.\n\t *\n\t * @generated from protobuf field: map<string, uint64> at_risk_validators = 8;\n\t */\n\tatRiskValidators: {\n\t\t[key: string]: bigint;\n\t};\n\t/**\n\t * Any extra fields that's not defined statically.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable extra_fields = 9;\n\t */\n\textraFields?: MoveTable;\n}\n/**\n * Definition of a Validator in the system contracts\n *\n * Note: fields of ValidatorMetadata are flattened into this type\n *\n * @generated from protobuf message sui.rpc.v2.Validator\n */\nexport interface Validator {\n\t/**\n\t * A unique human-readable name of this validator.\n\t *\n\t * @generated from protobuf field: optional string name = 1;\n\t */\n\tname?: string;\n\t/**\n\t * The Sui Address of the validator. This is the sender that created the Validator object,\n\t * and also the address to send validator/coins to during withdraws.\n\t *\n\t * @generated from protobuf field: optional string address = 2;\n\t */\n\taddress?: string;\n\t/**\n\t * @generated from protobuf field: optional string description = 3;\n\t */\n\tdescription?: string;\n\t/**\n\t * @generated from protobuf field: optional string image_url = 4;\n\t */\n\timageUrl?: string;\n\t/**\n\t * @generated from protobuf field: optional string project_url = 5;\n\t */\n\tprojectUrl?: string;\n\t/**\n\t * The public key bytes corresponding to the private key that the validator\n\t * holds to sign transactions. For now, this is the same as AuthorityName.\n\t *\n\t * @generated from protobuf field: optional bytes protocol_public_key = 7;\n\t */\n\tprotocolPublicKey?: Uint8Array;\n\t/**\n\t * This is a proof that the validator has ownership of the protocol private key\n\t *\n\t * @generated from protobuf field: optional bytes proof_of_possession = 8;\n\t */\n\tproofOfPossession?: Uint8Array;\n\t/**\n\t * The public key bytes corresponding to the private key that the validator\n\t * uses to establish TLS connections\n\t *\n\t * @generated from protobuf field: optional bytes network_public_key = 10;\n\t */\n\tnetworkPublicKey?: Uint8Array;\n\t/**\n\t * The public key bytes corresponding to the Narwhal Worker\n\t *\n\t * @generated from protobuf field: optional bytes worker_public_key = 12;\n\t */\n\tworkerPublicKey?: Uint8Array;\n\t/**\n\t * The network address of the validator (could also contain extra info such as port, DNS and etc.).\n\t *\n\t * @generated from protobuf field: optional string network_address = 13;\n\t */\n\tnetworkAddress?: string;\n\t/**\n\t * The address of the validator used for p2p activities such as state sync (could also contain extra info such as port, DNS and etc.).\n\t *\n\t * @generated from protobuf field: optional string p2p_address = 14 [json_name = \"p2pAddress\"];\n\t */\n\tp2PAddress?: string;\n\t/**\n\t * The address of the narwhal primary\n\t *\n\t * @generated from protobuf field: optional string primary_address = 15;\n\t */\n\tprimaryAddress?: string;\n\t/**\n\t * The address of the narwhal worker\n\t *\n\t * @generated from protobuf field: optional string worker_address = 16;\n\t */\n\tworkerAddress?: string;\n\t/**\n\t * @generated from protobuf field: optional bytes next_epoch_protocol_public_key = 18;\n\t */\n\tnextEpochProtocolPublicKey?: Uint8Array;\n\t/**\n\t * @generated from protobuf field: optional bytes next_epoch_proof_of_possession = 19;\n\t */\n\tnextEpochProofOfPossession?: Uint8Array;\n\t/**\n\t * @generated from protobuf field: optional bytes next_epoch_network_public_key = 21;\n\t */\n\tnextEpochNetworkPublicKey?: Uint8Array;\n\t/**\n\t * @generated from protobuf field: optional bytes next_epoch_worker_public_key = 23;\n\t */\n\tnextEpochWorkerPublicKey?: Uint8Array;\n\t/**\n\t * @generated from protobuf field: optional string next_epoch_network_address = 24;\n\t */\n\tnextEpochNetworkAddress?: string;\n\t/**\n\t * @generated from protobuf field: optional string next_epoch_p2p_address = 25 [json_name = \"nextEpochP2pAddress\"];\n\t */\n\tnextEpochP2PAddress?: string;\n\t/**\n\t * @generated from protobuf field: optional string next_epoch_primary_address = 26;\n\t */\n\tnextEpochPrimaryAddress?: string;\n\t/**\n\t * @generated from protobuf field: optional string next_epoch_worker_address = 27;\n\t */\n\tnextEpochWorkerAddress?: string;\n\t/**\n\t * Any extra fields that's not defined statically in the `ValidatorMetadata` struct\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable metadata_extra_fields = 28;\n\t */\n\tmetadataExtraFields?: MoveTable;\n\t/**\n\t * The voting power of this validator, which might be different from its\n\t * stake amount.\n\t *\n\t * @generated from protobuf field: optional uint64 voting_power = 29;\n\t */\n\tvotingPower?: bigint;\n\t/**\n\t * The ID of this validator's current valid `UnverifiedValidatorOperationCap`\n\t *\n\t * @generated from protobuf field: optional string operation_cap_id = 30;\n\t */\n\toperationCapId?: string;\n\t/**\n\t * Gas price quote, updated only at end of epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 gas_price = 31;\n\t */\n\tgasPrice?: bigint;\n\t/**\n\t * Staking pool for this validator.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.StakingPool staking_pool = 32;\n\t */\n\tstakingPool?: StakingPool;\n\t/**\n\t * Commission rate of the validator, in basis point.\n\t *\n\t * @generated from protobuf field: optional uint64 commission_rate = 33;\n\t */\n\tcommissionRate?: bigint;\n\t/**\n\t * Total amount of stake that would be active in the next epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 next_epoch_stake = 34;\n\t */\n\tnextEpochStake?: bigint;\n\t/**\n\t * This validator's gas price quote for the next epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 next_epoch_gas_price = 35;\n\t */\n\tnextEpochGasPrice?: bigint;\n\t/**\n\t * The commission rate of the validator starting the next epoch, in basis point.\n\t *\n\t * @generated from protobuf field: optional uint64 next_epoch_commission_rate = 36;\n\t */\n\tnextEpochCommissionRate?: bigint;\n\t/**\n\t * Any extra fields that's not defined statically.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable extra_fields = 37;\n\t */\n\textraFields?: MoveTable;\n}\n/**\n * A staking pool embedded in each validator struct in the system state object.\n *\n * @generated from protobuf message sui.rpc.v2.StakingPool\n */\nexport interface StakingPool {\n\t/**\n\t * UID of the StakingPool object\n\t *\n\t * @generated from protobuf field: optional string id = 1;\n\t */\n\tid?: string;\n\t/**\n\t * The epoch at which this pool became active.\n\t * The value is `None` if the pool is pre-active and `Some(<epoch_number>)` if active or inactive.\n\t *\n\t * @generated from protobuf field: optional uint64 activation_epoch = 2;\n\t */\n\tactivationEpoch?: bigint;\n\t/**\n\t * The epoch at which this staking pool ceased to be active. `None` = {pre-active, active},\n\t * `Some(<epoch_number>)` if in-active, and it was de-activated at epoch `<epoch_number>`.\n\t *\n\t * @generated from protobuf field: optional uint64 deactivation_epoch = 3;\n\t */\n\tdeactivationEpoch?: bigint;\n\t/**\n\t * The total number of SUI tokens in this pool, including the SUI in the rewards_pool, as well as in all the principal\n\t * in the `StakedSui` object, updated at epoch boundaries.\n\t *\n\t * @generated from protobuf field: optional uint64 sui_balance = 4;\n\t */\n\tsuiBalance?: bigint;\n\t/**\n\t * The epoch stake rewards will be added here at the end of each epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 rewards_pool = 5;\n\t */\n\trewardsPool?: bigint;\n\t/**\n\t * Total number of pool tokens issued by the pool.\n\t *\n\t * @generated from protobuf field: optional uint64 pool_token_balance = 6;\n\t */\n\tpoolTokenBalance?: bigint;\n\t/**\n\t * Exchange rate history of previous epochs.\n\t *\n\t * The entries start from the `activation_epoch` of this pool and contains exchange rates at the beginning of each epoch,\n\t * i.e., right after the rewards for the previous epoch have been deposited into the pool.\n\t *\n\t * key: u64 (epoch number), value: PoolTokenExchangeRate\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable exchange_rates = 7;\n\t */\n\texchangeRates?: MoveTable;\n\t/**\n\t * Pending stake amount for this epoch, emptied at epoch boundaries.\n\t *\n\t * @generated from protobuf field: optional uint64 pending_stake = 8;\n\t */\n\tpendingStake?: bigint;\n\t/**\n\t * Pending stake withdrawn during the current epoch, emptied at epoch boundaries.\n\t * This includes both the principal and rewards SUI withdrawn.\n\t *\n\t * @generated from protobuf field: optional uint64 pending_total_sui_withdraw = 9;\n\t */\n\tpendingTotalSuiWithdraw?: bigint;\n\t/**\n\t * Pending pool token withdrawn during the current epoch, emptied at epoch boundaries.\n\t *\n\t * @generated from protobuf field: optional uint64 pending_pool_token_withdraw = 10;\n\t */\n\tpendingPoolTokenWithdraw?: bigint;\n\t/**\n\t * Any extra fields that's not defined statically.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.MoveTable extra_fields = 11;\n\t */\n\textraFields?: MoveTable;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass SystemState$Type extends MessageType<SystemState> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SystemState', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'protocol_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 4, name: 'validators', kind: 'message', T: () => ValidatorSet },\n\t\t\t{ no: 5, name: 'storage_fund', kind: 'message', T: () => StorageFund },\n\t\t\t{ no: 6, name: 'parameters', kind: 'message', T: () => SystemParameters },\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'reference_gas_price',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'validator_report_records',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ValidatorReportRecord,\n\t\t\t},\n\t\t\t{ no: 9, name: 'stake_subsidy', kind: 'message', T: () => StakeSubsidy },\n\t\t\t{ no: 10, name: 'safe_mode', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{\n\t\t\t\tno: 11,\n\t\t\t\tname: 'safe_mode_storage_rewards',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 12,\n\t\t\t\tname: 'safe_mode_computation_rewards',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 13,\n\t\t\t\tname: 'safe_mode_storage_rebates',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 14,\n\t\t\t\tname: 'safe_mode_non_refundable_storage_fee',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 15,\n\t\t\t\tname: 'epoch_start_timestamp_ms',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 16, name: 'extra_fields', kind: 'message', T: () => MoveTable },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SystemState\n */\nexport const SystemState = new SystemState$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ValidatorReportRecord$Type extends MessageType<ValidatorReportRecord> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ValidatorReportRecord', [\n\t\t\t{ no: 1, name: 'reported', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'reporters',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ValidatorReportRecord\n */\nexport const ValidatorReportRecord = new ValidatorReportRecord$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SystemParameters$Type extends MessageType<SystemParameters> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SystemParameters', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch_duration_ms',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'stake_subsidy_start_epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'min_validator_count',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'max_validator_count',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'min_validator_joining_stake',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'validator_low_stake_threshold',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'validator_very_low_stake_threshold',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'validator_low_stake_grace_period',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 9, name: 'extra_fields', kind: 'message', T: () => MoveTable },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SystemParameters\n */\nexport const SystemParameters = new SystemParameters$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MoveTable$Type extends MessageType<MoveTable> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.MoveTable', [\n\t\t\t{ no: 1, name: 'id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'size',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.MoveTable\n */\nexport const MoveTable = new MoveTable$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass StakeSubsidy$Type extends MessageType<StakeSubsidy> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.StakeSubsidy', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'distribution_counter',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'current_distribution_amount',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'stake_subsidy_period_length',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'stake_subsidy_decrease_rate',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 13 /*ScalarType.UINT32*/,\n\t\t\t},\n\t\t\t{ no: 6, name: 'extra_fields', kind: 'message', T: () => MoveTable },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.StakeSubsidy\n */\nexport const StakeSubsidy = new StakeSubsidy$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass StorageFund$Type extends MessageType<StorageFund> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.StorageFund', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'total_object_storage_rebates',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'non_refundable_balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.StorageFund\n */\nexport const StorageFund = new StorageFund$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ValidatorSet$Type extends MessageType<ValidatorSet> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ValidatorSet', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'total_stake',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'active_validators',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Validator,\n\t\t\t},\n\t\t\t{ no: 3, name: 'pending_active_validators', kind: 'message', T: () => MoveTable },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'pending_removals',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 1 /*RepeatType.PACKED*/,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 5, name: 'staking_pool_mappings', kind: 'message', T: () => MoveTable },\n\t\t\t{ no: 6, name: 'inactive_validators', kind: 'message', T: () => MoveTable },\n\t\t\t{ no: 7, name: 'validator_candidates', kind: 'message', T: () => MoveTable },\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'at_risk_validators',\n\t\t\t\tkind: 'map',\n\t\t\t\tK: 9 /*ScalarType.STRING*/,\n\t\t\t\tV: { kind: 'scalar', T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ },\n\t\t\t},\n\t\t\t{ no: 9, name: 'extra_fields', kind: 'message', T: () => MoveTable },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ValidatorSet\n */\nexport const ValidatorSet = new ValidatorSet$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Validator$Type extends MessageType<Validator> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Validator', [\n\t\t\t{ no: 1, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'description', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'image_url', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'project_url', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 7, name: 'protocol_public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 8, name: 'proof_of_possession', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 10, name: 'network_public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 12, name: 'worker_public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 13, name: 'network_address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 14,\n\t\t\t\tname: 'p2p_address',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tjsonName: 'p2pAddress',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{ no: 15, name: 'primary_address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 16, name: 'worker_address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 18,\n\t\t\t\tname: 'next_epoch_protocol_public_key',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 19,\n\t\t\t\tname: 'next_epoch_proof_of_possession',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 21,\n\t\t\t\tname: 'next_epoch_network_public_key',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 23,\n\t\t\t\tname: 'next_epoch_worker_public_key',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 24,\n\t\t\t\tname: 'next_epoch_network_address',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 25,\n\t\t\t\tname: 'next_epoch_p2p_address',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tjsonName: 'nextEpochP2pAddress',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 26,\n\t\t\t\tname: 'next_epoch_primary_address',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 27,\n\t\t\t\tname: 'next_epoch_worker_address',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{ no: 28, name: 'metadata_extra_fields', kind: 'message', T: () => MoveTable },\n\t\t\t{\n\t\t\t\tno: 29,\n\t\t\t\tname: 'voting_power',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 30, name: 'operation_cap_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 31,\n\t\t\t\tname: 'gas_price',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 32, name: 'staking_pool', kind: 'message', T: () => StakingPool },\n\t\t\t{\n\t\t\t\tno: 33,\n\t\t\t\tname: 'commission_rate',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 34,\n\t\t\t\tname: 'next_epoch_stake',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 35,\n\t\t\t\tname: 'next_epoch_gas_price',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 36,\n\t\t\t\tname: 'next_epoch_commission_rate',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 37, name: 'extra_fields', kind: 'message', T: () => MoveTable },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Validator\n */\nexport const Validator = new Validator$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass StakingPool$Type extends MessageType<StakingPool> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.StakingPool', [\n\t\t\t{ no: 1, name: 'id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'activation_epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'deactivation_epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'sui_balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'rewards_pool',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'pool_token_balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 7, name: 'exchange_rates', kind: 'message', T: () => MoveTable },\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'pending_stake',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 9,\n\t\t\t\tname: 'pending_total_sui_withdraw',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 10,\n\t\t\t\tname: 'pending_pool_token_withdraw',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 11, name: 'extra_fields', kind: 'message', T: () => MoveTable },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.StakingPool\n */\nexport const StakingPool = new StakingPool$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/epoch.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { ProtocolConfig } from './protocol_config.js';\nimport { Timestamp } from '../../../google/protobuf/timestamp.js';\nimport { SystemState } from './system_state.js';\nimport { ValidatorCommittee } from './signature.js';\n/**\n * @generated from protobuf message sui.rpc.v2.Epoch\n */\nexport interface Epoch {\n\t/**\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * The committee governing this epoch.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ValidatorCommittee committee = 2;\n\t */\n\tcommittee?: ValidatorCommittee;\n\t/**\n\t * Snapshot of Sui's SystemState (`0x3::sui_system::SystemState`) at the\n\t * beginning of the epoch, for past epochs, or the current state for the\n\t * current epoch.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.SystemState system_state = 3;\n\t */\n\tsystemState?: SystemState;\n\t/**\n\t * @generated from protobuf field: optional uint64 first_checkpoint = 4;\n\t */\n\tfirstCheckpoint?: bigint;\n\t/**\n\t * @generated from protobuf field: optional uint64 last_checkpoint = 5;\n\t */\n\tlastCheckpoint?: bigint;\n\t/**\n\t * @generated from protobuf field: optional google.protobuf.Timestamp start = 6;\n\t */\n\tstart?: Timestamp;\n\t/**\n\t * @generated from protobuf field: optional google.protobuf.Timestamp end = 7;\n\t */\n\tend?: Timestamp;\n\t/**\n\t * Reference gas price denominated in MIST\n\t *\n\t * @generated from protobuf field: optional uint64 reference_gas_price = 8;\n\t */\n\treferenceGasPrice?: bigint;\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ProtocolConfig protocol_config = 9;\n\t */\n\tprotocolConfig?: ProtocolConfig;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Epoch$Type extends MessageType<Epoch> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Epoch', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'committee', kind: 'message', T: () => ValidatorCommittee },\n\t\t\t{ no: 3, name: 'system_state', kind: 'message', T: () => SystemState },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'first_checkpoint',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'last_checkpoint',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 6, name: 'start', kind: 'message', T: () => Timestamp },\n\t\t\t{ no: 7, name: 'end', kind: 'message', T: () => Timestamp },\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'reference_gas_price',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 9, name: 'protocol_config', kind: 'message', T: () => ProtocolConfig },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Epoch\n */\nexport const Epoch = new Epoch$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/checkpoint_contents.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { UserSignature } from './signature.js';\nimport { Bcs } from './bcs.js';\n/**\n * The committed to contents of a checkpoint.\n *\n * @generated from protobuf message sui.rpc.v2.CheckpointContents\n */\nexport interface CheckpointContents {\n\t/**\n\t * This CheckpointContents serialized as BCS.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;\n\t */\n\tbcs?: Bcs;\n\t/**\n\t * The digest of this CheckpointContents.\n\t *\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n\t/**\n\t * Version of this CheckpointContents\n\t *\n\t * @generated from protobuf field: optional int32 version = 3;\n\t */\n\tversion?: number;\n\t/**\n\t * Set of transactions committed to in this checkpoint.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.CheckpointedTransactionInfo transactions = 4;\n\t */\n\ttransactions: CheckpointedTransactionInfo[];\n}\n/**\n * Transaction information committed to in a checkpoint.\n *\n * @generated from protobuf message sui.rpc.v2.CheckpointedTransactionInfo\n */\nexport interface CheckpointedTransactionInfo {\n\t/**\n\t * Digest of the transaction.\n\t *\n\t * @generated from protobuf field: optional string transaction = 1;\n\t */\n\ttransaction?: string;\n\t/**\n\t * Digest of the effects.\n\t *\n\t * @generated from protobuf field: optional string effects = 2;\n\t */\n\teffects?: string;\n\t/**\n\t * Set of user signatures that authorized the transaction.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.UserSignature signatures = 3;\n\t */\n\tsignatures: UserSignature[];\n\t/**\n\t * The `AddressAliases` object version, if any, that was used to verify the\n\t * UserSignature at the same position in `signatures`.\n\t *\n\t * This field is present when CheckpointContents.version is >= 2.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.AddressAliasesVersion address_aliases_versions = 4;\n\t */\n\taddressAliasesVersions: AddressAliasesVersion[];\n}\n/**\n * @generated from protobuf message sui.rpc.v2.AddressAliasesVersion\n */\nexport interface AddressAliasesVersion {\n\t/**\n\t * @generated from protobuf field: optional uint64 version = 1;\n\t */\n\tversion?: bigint;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass CheckpointContents$Type extends MessageType<CheckpointContents> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CheckpointContents', [\n\t\t\t{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'version', kind: 'scalar', opt: true, T: 5 /*ScalarType.INT32*/ },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'transactions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => CheckpointedTransactionInfo,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CheckpointContents\n */\nexport const CheckpointContents = new CheckpointContents$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CheckpointedTransactionInfo$Type extends MessageType<CheckpointedTransactionInfo> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CheckpointedTransactionInfo', [\n\t\t\t{ no: 1, name: 'transaction', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'effects', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'signatures',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => UserSignature,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'address_aliases_versions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => AddressAliasesVersion,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CheckpointedTransactionInfo\n */\nexport const CheckpointedTransactionInfo = new CheckpointedTransactionInfo$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AddressAliasesVersion$Type extends MessageType<AddressAliasesVersion> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.AddressAliasesVersion', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.AddressAliasesVersion\n */\nexport const AddressAliasesVersion = new AddressAliasesVersion$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/checkpoint_summary.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { ValidatorCommitteeMember } from './signature.js';\nimport { Timestamp } from '../../../google/protobuf/timestamp.js';\nimport { GasCostSummary } from './gas_cost_summary.js';\nimport { Bcs } from './bcs.js';\n/**\n * A header for a checkpoint on the Sui blockchain.\n *\n * On the Sui network, checkpoints define the history of the blockchain. They are quite similar to\n * the concept of blocks used by other blockchains like Bitcoin or Ethereum. The Sui blockchain,\n * however, forms checkpoints after transaction execution has already happened to provide a\n * certified history of the chain, instead of being formed before execution.\n *\n * Checkpoints commit to a variety of state, including but not limited to:\n * - The hash of the previous checkpoint.\n * - The set of transaction digests, their corresponding effects digests, as well as the set of\n * user signatures that authorized its execution.\n * - The objects produced by a transaction.\n * - The set of live objects that make up the current state of the chain.\n * - On epoch transitions, the next validator committee.\n *\n * `CheckpointSummary`s themselves don't directly include all of the previous information but they\n * are the top-level type by which all the information is committed to transitively via cryptographic\n * hashes included in the summary. `CheckpointSummary`s are signed and certified by a quorum of\n * the validator committee in a given epoch to allow verification of the chain's state.\n *\n * @generated from protobuf message sui.rpc.v2.CheckpointSummary\n */\nexport interface CheckpointSummary {\n\t/**\n\t * This CheckpointSummary serialized as BCS.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;\n\t */\n\tbcs?: Bcs;\n\t/**\n\t * The digest of this CheckpointSummary.\n\t *\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n\t/**\n\t * Epoch that this checkpoint belongs to.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 3;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * The height of this checkpoint.\n\t *\n\t * @generated from protobuf field: optional uint64 sequence_number = 4;\n\t */\n\tsequenceNumber?: bigint;\n\t/**\n\t * Total number of transactions committed since genesis, including those in this\n\t * checkpoint.\n\t *\n\t * @generated from protobuf field: optional uint64 total_network_transactions = 5;\n\t */\n\ttotalNetworkTransactions?: bigint;\n\t/**\n\t * The hash of the `CheckpointContents` for this checkpoint.\n\t *\n\t * @generated from protobuf field: optional string content_digest = 6;\n\t */\n\tcontentDigest?: string;\n\t/**\n\t * The hash of the previous `CheckpointSummary`.\n\t *\n\t * This will be `None` only for the first, or genesis, checkpoint.\n\t *\n\t * @generated from protobuf field: optional string previous_digest = 7;\n\t */\n\tpreviousDigest?: string;\n\t/**\n\t * The running total gas costs of all transactions included in the current epoch so far\n\t * until this checkpoint.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.GasCostSummary epoch_rolling_gas_cost_summary = 8;\n\t */\n\tepochRollingGasCostSummary?: GasCostSummary;\n\t/**\n\t * Timestamp of the checkpoint - number of milliseconds from the Unix epoch\n\t * Checkpoint timestamps are monotonic, but not strongly monotonic - subsequent\n\t * checkpoints can have the same timestamp if they originate from the same underlining consensus commit.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp timestamp = 9;\n\t */\n\ttimestamp?: Timestamp;\n\t/**\n\t * Commitments to checkpoint-specific state.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.CheckpointCommitment commitments = 10;\n\t */\n\tcommitments: CheckpointCommitment[];\n\t/**\n\t * Extra data only present in the final checkpoint of an epoch.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.EndOfEpochData end_of_epoch_data = 11;\n\t */\n\tendOfEpochData?: EndOfEpochData;\n\t/**\n\t * `CheckpointSummary` is not an evolvable structure - it must be readable by any version of\n\t * the code. Therefore, to allow extensions to be added to `CheckpointSummary`,\n\t * opaque data can be added to checkpoints, which can be deserialized based on the current\n\t * protocol version.\n\t *\n\t * @generated from protobuf field: optional bytes version_specific_data = 12;\n\t */\n\tversionSpecificData?: Uint8Array;\n}\n/**\n * Data, which when included in a `CheckpointSummary`, signals the end of an `Epoch`.\n *\n * @generated from protobuf message sui.rpc.v2.EndOfEpochData\n */\nexport interface EndOfEpochData {\n\t/**\n\t * The set of validators that will be in the `ValidatorCommittee` for the next epoch.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ValidatorCommitteeMember next_epoch_committee = 1;\n\t */\n\tnextEpochCommittee: ValidatorCommitteeMember[];\n\t/**\n\t * The protocol version that is in effect during the next epoch.\n\t *\n\t * @generated from protobuf field: optional uint64 next_epoch_protocol_version = 2;\n\t */\n\tnextEpochProtocolVersion?: bigint;\n\t/**\n\t * Commitments to epoch specific state (live object set)\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.CheckpointCommitment epoch_commitments = 3;\n\t */\n\tepochCommitments: CheckpointCommitment[];\n}\n/**\n * A commitment made by a checkpoint.\n *\n * @generated from protobuf message sui.rpc.v2.CheckpointCommitment\n */\nexport interface CheckpointCommitment {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.CheckpointCommitment.CheckpointCommitmentKind kind = 1;\n\t */\n\tkind?: CheckpointCommitment_CheckpointCommitmentKind;\n\t/**\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.CheckpointCommitment.CheckpointCommitmentKind\n */\nexport enum CheckpointCommitment_CheckpointCommitmentKind {\n\t/**\n\t * @generated from protobuf enum value: CHECKPOINT_COMMITMENT_KIND_UNKNOWN = 0;\n\t */\n\tCHECKPOINT_COMMITMENT_KIND_UNKNOWN = 0,\n\t/**\n\t * An elliptic curve multiset hash attesting to the set of objects that\n\t * comprise the live state of the Sui blockchain.\n\t *\n\t * @generated from protobuf enum value: ECMH_LIVE_OBJECT_SET = 1;\n\t */\n\tECMH_LIVE_OBJECT_SET = 1,\n\t/**\n\t * Digest of the checkpoint artifacts.\n\t *\n\t * @generated from protobuf enum value: CHECKPOINT_ARTIFACTS = 2;\n\t */\n\tCHECKPOINT_ARTIFACTS = 2,\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass CheckpointSummary$Type extends MessageType<CheckpointSummary> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CheckpointSummary', [\n\t\t\t{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'sequence_number',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'total_network_transactions',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 6, name: 'content_digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 7, name: 'previous_digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 8, name: 'epoch_rolling_gas_cost_summary', kind: 'message', T: () => GasCostSummary },\n\t\t\t{ no: 9, name: 'timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{\n\t\t\t\tno: 10,\n\t\t\t\tname: 'commitments',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => CheckpointCommitment,\n\t\t\t},\n\t\t\t{ no: 11, name: 'end_of_epoch_data', kind: 'message', T: () => EndOfEpochData },\n\t\t\t{\n\t\t\t\tno: 12,\n\t\t\t\tname: 'version_specific_data',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 12 /*ScalarType.BYTES*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CheckpointSummary\n */\nexport const CheckpointSummary = new CheckpointSummary$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass EndOfEpochData$Type extends MessageType<EndOfEpochData> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.EndOfEpochData', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'next_epoch_committee',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ValidatorCommitteeMember,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'next_epoch_protocol_version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'epoch_commitments',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => CheckpointCommitment,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.EndOfEpochData\n */\nexport const EndOfEpochData = new EndOfEpochData$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CheckpointCommitment$Type extends MessageType<CheckpointCommitment> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CheckpointCommitment', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.CheckpointCommitment.CheckpointCommitmentKind',\n\t\t\t\t\tCheckpointCommitment_CheckpointCommitmentKind,\n\t\t\t\t],\n\t\t\t},\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CheckpointCommitment\n */\nexport const CheckpointCommitment = new CheckpointCommitment$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/checkpoint.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { ObjectSet } from './object.js';\nimport { ExecutedTransaction } from './executed_transaction.js';\nimport { CheckpointContents } from './checkpoint_contents.js';\nimport { ValidatorAggregatedSignature } from './signature.js';\nimport { CheckpointSummary } from './checkpoint_summary.js';\n/**\n * @generated from protobuf message sui.rpc.v2.Checkpoint\n */\nexport interface Checkpoint {\n\t/**\n\t * The height of this checkpoint.\n\t *\n\t * @generated from protobuf field: optional uint64 sequence_number = 1;\n\t */\n\tsequenceNumber?: bigint;\n\t/**\n\t * The digest of this Checkpoint's CheckpointSummary.\n\t *\n\t * @generated from protobuf field: optional string digest = 2;\n\t */\n\tdigest?: string;\n\t/**\n\t * The `CheckpointSummary` for this checkpoint.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.CheckpointSummary summary = 3;\n\t */\n\tsummary?: CheckpointSummary;\n\t/**\n\t * An aggregated quorum signature from the validator committee that\n\t * certified this checkpoint.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ValidatorAggregatedSignature signature = 4;\n\t */\n\tsignature?: ValidatorAggregatedSignature;\n\t/**\n\t * The `CheckpointContents` for this checkpoint.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.CheckpointContents contents = 5;\n\t */\n\tcontents?: CheckpointContents;\n\t/**\n\t * List of transactions included in this checkpoint.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ExecutedTransaction transactions = 6;\n\t */\n\ttransactions: ExecutedTransaction[];\n\t/**\n\t * Set of objects either referenced as inputs or produced as\n\t * outputs by transactions included in this checkpoint.\n\t *\n\t * In order to benefit from deduplication of objects that\n\t * appear in multiple transactions in this checkpoint, objects\n\t * will only be present here and the `transactions.objects`\n\t * field will not be populated.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.ObjectSet objects = 7;\n\t */\n\tobjects?: ObjectSet;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Checkpoint$Type extends MessageType<Checkpoint> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Checkpoint', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'sequence_number',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'summary', kind: 'message', T: () => CheckpointSummary },\n\t\t\t{ no: 4, name: 'signature', kind: 'message', T: () => ValidatorAggregatedSignature },\n\t\t\t{ no: 5, name: 'contents', kind: 'message', T: () => CheckpointContents },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'transactions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ExecutedTransaction,\n\t\t\t},\n\t\t\t{ no: 7, name: 'objects', kind: 'message', T: () => ObjectSet },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Checkpoint\n */\nexport const Checkpoint = new Checkpoint$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"google/protobuf/any.proto\" (package \"google.protobuf\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc. All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\nimport { isJsonObject } from '@protobuf-ts/runtime';\nimport { typeofJsonValue } from '@protobuf-ts/runtime';\nimport type { JsonValue } from '@protobuf-ts/runtime';\nimport { jsonWriteOptions } from '@protobuf-ts/runtime';\nimport type { JsonReadOptions } from '@protobuf-ts/runtime';\nimport type { JsonWriteOptions } from '@protobuf-ts/runtime';\nimport type { BinaryReadOptions } from '@protobuf-ts/runtime';\nimport type { IMessageType } from '@protobuf-ts/runtime';\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * `Any` contains an arbitrary serialized protocol buffer message along with a\n * URL that describes the type of the serialized message.\n *\n * Protobuf library provides support to pack/unpack Any values in the form\n * of utility functions or additional generated methods of the Any type.\n *\n * Example 1: Pack and unpack a message in C++.\n *\n * Foo foo = ...;\n * Any any;\n * any.PackFrom(foo);\n * ...\n * if (any.UnpackTo(&foo)) {\n * ...\n * }\n *\n * Example 2: Pack and unpack a message in Java.\n *\n * Foo foo = ...;\n * Any any = Any.pack(foo);\n * ...\n * if (any.is(Foo.class)) {\n * foo = any.unpack(Foo.class);\n * }\n * // or ...\n * if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n * foo = any.unpack(Foo.getDefaultInstance());\n * }\n *\n * Example 3: Pack and unpack a message in Python.\n *\n * foo = Foo(...)\n * any = Any()\n * any.Pack(foo)\n * ...\n * if any.Is(Foo.DESCRIPTOR):\n * any.Unpack(foo)\n * ...\n *\n * Example 4: Pack and unpack a message in Go\n *\n * foo := &pb.Foo{...}\n * any, err := anypb.New(foo)\n * if err != nil {\n * ...\n * }\n * ...\n * foo := &pb.Foo{}\n * if err := any.UnmarshalTo(foo); err != nil {\n * ...\n * }\n *\n * The pack methods provided by protobuf library will by default use\n * 'type.googleapis.com/full.type.name' as the type URL and the unpack\n * methods only use the fully qualified type name after the last '/'\n * in the type URL, for example \"foo.bar.com/x/y.z\" will yield type\n * name \"y.z\".\n *\n * JSON\n * ====\n * The JSON representation of an `Any` value uses the regular\n * representation of the deserialized, embedded message, with an\n * additional field `@type` which contains the type URL. Example:\n *\n * package google.profile;\n * message Person {\n * string first_name = 1;\n * string last_name = 2;\n * }\n *\n * {\n * \"@type\": \"type.googleapis.com/google.profile.Person\",\n * \"firstName\": <string>,\n * \"lastName\": <string>\n * }\n *\n * If the embedded message type is well-known and has a custom JSON\n * representation, that representation will be embedded adding a field\n * `value` which holds the custom JSON in addition to the `@type`\n * field. Example (for message [google.protobuf.Duration][]):\n *\n * {\n * \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n * \"value\": \"1.212s\"\n * }\n *\n *\n * @generated from protobuf message google.protobuf.Any\n */\nexport interface Any {\n\t/**\n\t * A URL/resource name that uniquely identifies the type of the serialized\n\t * protocol buffer message. This string must contain at least\n\t * one \"/\" character. The last segment of the URL's path must represent\n\t * the fully qualified name of the type (as in\n\t * `path/google.protobuf.Duration`). The name should be in a canonical form\n\t * (e.g., leading \".\" is not accepted).\n\t *\n\t * In practice, teams usually precompile into the binary all types that they\n\t * expect it to use in the context of Any. However, for URLs which use the\n\t * scheme `http`, `https`, or no scheme, one can optionally set up a type\n\t * server that maps type URLs to message definitions as follows:\n\t *\n\t * * If no scheme is provided, `https` is assumed.\n\t * * An HTTP GET on the URL must yield a [google.protobuf.Type][]\n\t * value in binary format, or produce an error.\n\t * * Applications are allowed to cache lookup results based on the\n\t * URL, or have them precompiled into a binary to avoid any\n\t * lookup. Therefore, binary compatibility needs to be preserved\n\t * on changes to types. (Use versioned type names to manage\n\t * breaking changes.)\n\t *\n\t * Note: this functionality is not currently available in the official\n\t * protobuf release, and it is not used for type URLs beginning with\n\t * type.googleapis.com. As of May 2023, there are no widely used type server\n\t * implementations and no plans to implement one.\n\t *\n\t * Schemes other than `http`, `https` (or the empty scheme) might be\n\t * used with implementation specific semantics.\n\t *\n\t *\n\t * @generated from protobuf field: string type_url = 1;\n\t */\n\ttypeUrl: string;\n\t/**\n\t * Must be a valid serialized protocol buffer of the above specified type.\n\t *\n\t * @generated from protobuf field: bytes value = 2;\n\t */\n\tvalue: Uint8Array;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Any$Type extends MessageType<Any> {\n\tconstructor() {\n\t\tsuper('google.protobuf.Any', [\n\t\t\t{ no: 1, name: 'type_url', kind: 'scalar', T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'value', kind: 'scalar', T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n\t/**\n\t * Pack the message into a new `Any`.\n\t *\n\t * Uses 'type.googleapis.com/full.type.name' as the type URL.\n\t */\n\tpack<T extends object>(message: T, type: IMessageType<T>): Any {\n\t\treturn {\n\t\t\ttypeUrl: this.typeNameToUrl(type.typeName),\n\t\t\tvalue: type.toBinary(message),\n\t\t};\n\t}\n\t/**\n\t * Unpack the message from the `Any`.\n\t */\n\tunpack<T extends object>(\n\t\tany: Any,\n\t\ttype: IMessageType<T>,\n\t\toptions?: Partial<BinaryReadOptions>,\n\t): T {\n\t\tif (!this.contains(any, type))\n\t\t\tthrow new Error(\n\t\t\t\t\"Cannot unpack google.protobuf.Any with typeUrl '\" +\n\t\t\t\t\tany.typeUrl +\n\t\t\t\t\t\"' as \" +\n\t\t\t\t\ttype.typeName +\n\t\t\t\t\t'.',\n\t\t\t);\n\t\treturn type.fromBinary(any.value, options);\n\t}\n\t/**\n\t * Does the given `Any` contain a packed message of the given type?\n\t */\n\tcontains(any: Any, type: IMessageType<any> | string): boolean {\n\t\tif (!any.typeUrl.length) return false;\n\t\tlet wants = typeof type == 'string' ? type : type.typeName;\n\t\tlet has = this.typeUrlToName(any.typeUrl);\n\t\treturn wants === has;\n\t}\n\t/**\n\t * Convert the message to canonical JSON value.\n\t *\n\t * You have to provide the `typeRegistry` option so that the\n\t * packed message can be converted to JSON.\n\t *\n\t * The `typeRegistry` option is also required to read\n\t * `google.protobuf.Any` from JSON format.\n\t */\n\tinternalJsonWrite(any: Any, options: JsonWriteOptions): JsonValue {\n\t\tif (any.typeUrl === '') return {};\n\t\tlet typeName = this.typeUrlToName(any.typeUrl);\n\t\tlet opt = jsonWriteOptions(options);\n\t\tlet type = opt.typeRegistry?.find((t) => t.typeName === typeName);\n\t\tif (!type)\n\t\t\tthrow new globalThis.Error(\n\t\t\t\t\"Unable to convert google.protobuf.Any with typeUrl '\" +\n\t\t\t\t\tany.typeUrl +\n\t\t\t\t\t\"' to JSON. The specified type \" +\n\t\t\t\t\ttypeName +\n\t\t\t\t\t' is not available in the type registry.',\n\t\t\t);\n\t\tlet value = type.fromBinary(any.value, { readUnknownField: false });\n\t\tlet json = type.internalJsonWrite(value, opt);\n\t\tif (typeName.startsWith('google.protobuf.') || !isJsonObject(json)) json = { value: json };\n\t\tjson['@type'] = any.typeUrl;\n\t\treturn json;\n\t}\n\tinternalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Any): Any {\n\t\tif (!isJsonObject(json))\n\t\t\tthrow new globalThis.Error(\n\t\t\t\t'Unable to parse google.protobuf.Any from JSON ' + typeofJsonValue(json) + '.',\n\t\t\t);\n\t\tif (typeof json['@type'] != 'string' || json['@type'] == '') return this.create();\n\t\tlet typeName = this.typeUrlToName(json['@type']);\n\t\tlet type = options?.typeRegistry?.find((t) => t.typeName == typeName);\n\t\tif (!type)\n\t\t\tthrow new globalThis.Error(\n\t\t\t\t'Unable to parse google.protobuf.Any from JSON. The specified type ' +\n\t\t\t\t\ttypeName +\n\t\t\t\t\t' is not available in the type registry.',\n\t\t\t);\n\t\tlet value;\n\t\tif (typeName.startsWith('google.protobuf.') && json.hasOwnProperty('value'))\n\t\t\tvalue = type.fromJson(json['value'], options);\n\t\telse {\n\t\t\tlet copy = Object.assign({}, json);\n\t\t\tdelete copy['@type'];\n\t\t\tvalue = type.fromJson(copy, options);\n\t\t}\n\t\tif (target === undefined) target = this.create();\n\t\ttarget.typeUrl = json['@type'];\n\t\ttarget.value = type.toBinary(value);\n\t\treturn target;\n\t}\n\ttypeNameToUrl(name: string): string {\n\t\tif (!name.length) throw new Error('invalid type name: ' + name);\n\t\treturn 'type.googleapis.com/' + name;\n\t}\n\ttypeUrlToName(url: string): string {\n\t\tif (!url.length) throw new Error('invalid type url: ' + url);\n\t\tlet slash = url.lastIndexOf('/');\n\t\tlet name = slash > 0 ? url.substring(slash + 1) : url;\n\t\tif (!name.length) throw new Error('invalid type url: ' + url);\n\t\treturn name;\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.protobuf.Any\n */\nexport const Any = new Any$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"google/rpc/status.proto\" (package \"google.rpc\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright 2024 Google LLC\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n//\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Any } from '../protobuf/any.js';\n/**\n * The `Status` type defines a logical error model that is suitable for\n * different programming environments, including REST APIs and RPC APIs. It is\n * used by [gRPC](https://github.com/grpc). Each `Status` message contains\n * three pieces of data: error code, error message, and error details.\n *\n * You can find out more about this error model and how to work with it in the\n * [API Design Guide](https://cloud.google.com/apis/design/errors).\n *\n * @generated from protobuf message google.rpc.Status\n */\nexport interface Status {\n\t/**\n\t * The status code, which should be an enum value of\n\t * [google.rpc.Code][google.rpc.Code].\n\t *\n\t * @generated from protobuf field: int32 code = 1;\n\t */\n\tcode: number;\n\t/**\n\t * A developer-facing error message, which should be in English. Any\n\t * user-facing error message should be localized and sent in the\n\t * [google.rpc.Status.details][google.rpc.Status.details] field, or localized\n\t * by the client.\n\t *\n\t * @generated from protobuf field: string message = 2;\n\t */\n\tmessage: string;\n\t/**\n\t * A list of messages that carry the error details. There is a common set of\n\t * message types for APIs to use.\n\t *\n\t * @generated from protobuf field: repeated google.protobuf.Any details = 3;\n\t */\n\tdetails: Any[];\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass Status$Type extends MessageType<Status> {\n\tconstructor() {\n\t\tsuper('google.rpc.Status', [\n\t\t\t{ no: 1, name: 'code', kind: 'scalar', T: 5 /*ScalarType.INT32*/ },\n\t\t\t{ no: 2, name: 'message', kind: 'scalar', T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'details', kind: 'message', repeat: 2 /*RepeatType.UNPACKED*/, T: () => Any },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message google.rpc.Status\n */\nexport const Status = new Status$Type();\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/ledger_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Epoch } from './epoch.js';\nimport { Checkpoint } from './checkpoint.js';\nimport { ExecutedTransaction } from './executed_transaction.js';\nimport { Status } from '../../../google/rpc/status.js';\nimport { Object } from './object.js';\nimport { FieldMask } from '../../../google/protobuf/field_mask.js';\nimport { Timestamp } from '../../../google/protobuf/timestamp.js';\n/**\n * @generated from protobuf message sui.rpc.v2.GetServiceInfoRequest\n */\nexport interface GetServiceInfoRequest {}\n/**\n * @generated from protobuf message sui.rpc.v2.GetServiceInfoResponse\n */\nexport interface GetServiceInfoResponse {\n\t/**\n\t * The chain identifier of the chain that this node is on.\n\t *\n\t * The chain identifier is the digest of the genesis checkpoint, the\n\t * checkpoint with sequence number 0.\n\t *\n\t * @generated from protobuf field: optional string chain_id = 1;\n\t */\n\tchainId?: string;\n\t/**\n\t * Human-readable name of the chain that this node is on.\n\t *\n\t * This is intended to be a human-readable name like `mainnet`, `testnet`, and so on.\n\t *\n\t * @generated from protobuf field: optional string chain = 2;\n\t */\n\tchain?: string;\n\t/**\n\t * Current epoch of the node based on its highest executed checkpoint.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 3;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * Checkpoint height of the most recently executed checkpoint.\n\t *\n\t * @generated from protobuf field: optional uint64 checkpoint_height = 4;\n\t */\n\tcheckpointHeight?: bigint;\n\t/**\n\t * Unix timestamp of the most recently executed checkpoint.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp timestamp = 5;\n\t */\n\ttimestamp?: Timestamp;\n\t/**\n\t * The lowest checkpoint for which checkpoints and transaction data are available.\n\t *\n\t * @generated from protobuf field: optional uint64 lowest_available_checkpoint = 6;\n\t */\n\tlowestAvailableCheckpoint?: bigint;\n\t/**\n\t * The lowest checkpoint for which object data is available.\n\t *\n\t * @generated from protobuf field: optional uint64 lowest_available_checkpoint_objects = 7;\n\t */\n\tlowestAvailableCheckpointObjects?: bigint;\n\t/**\n\t * Software version of the service. Similar to the `server` http header.\n\t *\n\t * @generated from protobuf field: optional string server = 8;\n\t */\n\tserver?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetObjectRequest\n */\nexport interface GetObjectRequest {\n\t/**\n\t * Required. The `ObjectId` of the requested object.\n\t *\n\t * @generated from protobuf field: optional string object_id = 1;\n\t */\n\tobjectId?: string;\n\t/**\n\t * Request a specific version of the object.\n\t * If no version is specified, and the object is live, then the latest\n\t * version of the object is returned.\n\t *\n\t * @generated from protobuf field: optional uint64 version = 2;\n\t */\n\tversion?: bigint;\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `object_id,version,digest`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 3;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetObjectResponse\n */\nexport interface GetObjectResponse {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Object object = 1;\n\t */\n\tobject?: Object;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.BatchGetObjectsRequest\n */\nexport interface BatchGetObjectsRequest {\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.GetObjectRequest requests = 1;\n\t */\n\trequests: GetObjectRequest[];\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `object_id,version,digest`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 2;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.BatchGetObjectsResponse\n */\nexport interface BatchGetObjectsResponse {\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.GetObjectResult objects = 1;\n\t */\n\tobjects: GetObjectResult[];\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetObjectResult\n */\nexport interface GetObjectResult {\n\t/**\n\t * @generated from protobuf oneof: result\n\t */\n\tresult:\n\t\t| {\n\t\t\t\toneofKind: 'object';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.Object object = 1;\n\t\t\t\t */\n\t\t\t\tobject: Object;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'error';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: google.rpc.Status error = 2;\n\t\t\t\t */\n\t\t\t\terror: Status;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetTransactionRequest\n */\nexport interface GetTransactionRequest {\n\t/**\n\t * Required. The digest of the requested transaction.\n\t *\n\t * @generated from protobuf field: optional string digest = 1;\n\t */\n\tdigest?: string;\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `digest`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 2;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetTransactionResponse\n */\nexport interface GetTransactionResponse {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.ExecutedTransaction transaction = 1;\n\t */\n\ttransaction?: ExecutedTransaction;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.BatchGetTransactionsRequest\n */\nexport interface BatchGetTransactionsRequest {\n\t/**\n\t * Required. The digests of the requested transactions.\n\t *\n\t * @generated from protobuf field: repeated string digests = 1;\n\t */\n\tdigests: string[];\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `digest`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 2;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.BatchGetTransactionsResponse\n */\nexport interface BatchGetTransactionsResponse {\n\t/**\n\t * @generated from protobuf field: repeated sui.rpc.v2.GetTransactionResult transactions = 1;\n\t */\n\ttransactions: GetTransactionResult[];\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetTransactionResult\n */\nexport interface GetTransactionResult {\n\t/**\n\t * @generated from protobuf oneof: result\n\t */\n\tresult:\n\t\t| {\n\t\t\t\toneofKind: 'transaction';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: sui.rpc.v2.ExecutedTransaction transaction = 1;\n\t\t\t\t */\n\t\t\t\ttransaction: ExecutedTransaction;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'error';\n\t\t\t\t/**\n\t\t\t\t * @generated from protobuf field: google.rpc.Status error = 2;\n\t\t\t\t */\n\t\t\t\terror: Status;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetCheckpointRequest\n */\nexport interface GetCheckpointRequest {\n\t/**\n\t * @generated from protobuf oneof: checkpoint_id\n\t */\n\tcheckpointId:\n\t\t| {\n\t\t\t\toneofKind: 'sequenceNumber';\n\t\t\t\t/**\n\t\t\t\t * The sequence number of the requested checkpoint.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: uint64 sequence_number = 1;\n\t\t\t\t */\n\t\t\t\tsequenceNumber: bigint;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: 'digest';\n\t\t\t\t/**\n\t\t\t\t * The digest of the requested checkpoint.\n\t\t\t\t *\n\t\t\t\t * @generated from protobuf field: string digest = 2;\n\t\t\t\t */\n\t\t\t\tdigest: string;\n\t\t }\n\t\t| {\n\t\t\t\toneofKind: undefined;\n\t\t };\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `sequence_number,digest`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 3;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetCheckpointResponse\n */\nexport interface GetCheckpointResponse {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Checkpoint checkpoint = 1;\n\t */\n\tcheckpoint?: Checkpoint;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetEpochRequest\n */\nexport interface GetEpochRequest {\n\t/**\n\t * The requested epoch.\n\t * If no epoch is provided the current epoch will be returned.\n\t *\n\t * @generated from protobuf field: optional uint64 epoch = 1;\n\t */\n\tepoch?: bigint;\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `epoch`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 2;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetEpochResponse\n */\nexport interface GetEpochResponse {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.Epoch epoch = 1;\n\t */\n\tepoch?: Epoch;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetServiceInfoRequest$Type extends MessageType<GetServiceInfoRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetServiceInfoRequest', []);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetServiceInfoRequest\n */\nexport const GetServiceInfoRequest = new GetServiceInfoRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetServiceInfoResponse$Type extends MessageType<GetServiceInfoResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetServiceInfoResponse', [\n\t\t\t{ no: 1, name: 'chain_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'chain', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'checkpoint_height',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 5, name: 'timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'lowest_available_checkpoint',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 7,\n\t\t\t\tname: 'lowest_available_checkpoint_objects',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 8, name: 'server', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetServiceInfoResponse\n */\nexport const GetServiceInfoResponse = new GetServiceInfoResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetObjectRequest$Type extends MessageType<GetObjectRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetObjectRequest', [\n\t\t\t{ no: 1, name: 'object_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetObjectRequest\n */\nexport const GetObjectRequest = new GetObjectRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetObjectResponse$Type extends MessageType<GetObjectResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetObjectResponse', [\n\t\t\t{ no: 1, name: 'object', kind: 'message', T: () => Object },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetObjectResponse\n */\nexport const GetObjectResponse = new GetObjectResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass BatchGetObjectsRequest$Type extends MessageType<BatchGetObjectsRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.BatchGetObjectsRequest', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'requests',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => GetObjectRequest,\n\t\t\t},\n\t\t\t{ no: 2, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.BatchGetObjectsRequest\n */\nexport const BatchGetObjectsRequest = new BatchGetObjectsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass BatchGetObjectsResponse$Type extends MessageType<BatchGetObjectsResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.BatchGetObjectsResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => GetObjectResult,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.BatchGetObjectsResponse\n */\nexport const BatchGetObjectsResponse = new BatchGetObjectsResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetObjectResult$Type extends MessageType<GetObjectResult> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetObjectResult', [\n\t\t\t{ no: 1, name: 'object', kind: 'message', oneof: 'result', T: () => Object },\n\t\t\t{ no: 2, name: 'error', kind: 'message', oneof: 'result', T: () => Status },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetObjectResult\n */\nexport const GetObjectResult = new GetObjectResult$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetTransactionRequest$Type extends MessageType<GetTransactionRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetTransactionRequest', [\n\t\t\t{ no: 1, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetTransactionRequest\n */\nexport const GetTransactionRequest = new GetTransactionRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetTransactionResponse$Type extends MessageType<GetTransactionResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetTransactionResponse', [\n\t\t\t{ no: 1, name: 'transaction', kind: 'message', T: () => ExecutedTransaction },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetTransactionResponse\n */\nexport const GetTransactionResponse = new GetTransactionResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass BatchGetTransactionsRequest$Type extends MessageType<BatchGetTransactionsRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.BatchGetTransactionsRequest', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'digests',\n\t\t\t\tkind: 'scalar',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.BatchGetTransactionsRequest\n */\nexport const BatchGetTransactionsRequest = new BatchGetTransactionsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass BatchGetTransactionsResponse$Type extends MessageType<BatchGetTransactionsResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.BatchGetTransactionsResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'transactions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => GetTransactionResult,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.BatchGetTransactionsResponse\n */\nexport const BatchGetTransactionsResponse = new BatchGetTransactionsResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetTransactionResult$Type extends MessageType<GetTransactionResult> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetTransactionResult', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'transaction',\n\t\t\t\tkind: 'message',\n\t\t\t\toneof: 'result',\n\t\t\t\tT: () => ExecutedTransaction,\n\t\t\t},\n\t\t\t{ no: 2, name: 'error', kind: 'message', oneof: 'result', T: () => Status },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetTransactionResult\n */\nexport const GetTransactionResult = new GetTransactionResult$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetCheckpointRequest$Type extends MessageType<GetCheckpointRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetCheckpointRequest', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'sequence_number',\n\t\t\t\tkind: 'scalar',\n\t\t\t\toneof: 'checkpointId',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'digest', kind: 'scalar', oneof: 'checkpointId', T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetCheckpointRequest\n */\nexport const GetCheckpointRequest = new GetCheckpointRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetCheckpointResponse$Type extends MessageType<GetCheckpointResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetCheckpointResponse', [\n\t\t\t{ no: 1, name: 'checkpoint', kind: 'message', T: () => Checkpoint },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetCheckpointResponse\n */\nexport const GetCheckpointResponse = new GetCheckpointResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetEpochRequest$Type extends MessageType<GetEpochRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetEpochRequest', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetEpochRequest\n */\nexport const GetEpochRequest = new GetEpochRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetEpochResponse$Type extends MessageType<GetEpochResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetEpochResponse', [\n\t\t\t{ no: 1, name: 'epoch', kind: 'message', T: () => Epoch },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetEpochResponse\n */\nexport const GetEpochResponse = new GetEpochResponse$Type();\n/**\n * @generated ServiceType for protobuf service sui.rpc.v2.LedgerService\n */\nexport const LedgerService = new ServiceType('sui.rpc.v2.LedgerService', [\n\t{ name: 'GetServiceInfo', options: {}, I: GetServiceInfoRequest, O: GetServiceInfoResponse },\n\t{ name: 'GetObject', options: {}, I: GetObjectRequest, O: GetObjectResponse },\n\t{ name: 'BatchGetObjects', options: {}, I: BatchGetObjectsRequest, O: BatchGetObjectsResponse },\n\t{ name: 'GetTransaction', options: {}, I: GetTransactionRequest, O: GetTransactionResponse },\n\t{\n\t\tname: 'BatchGetTransactions',\n\t\toptions: {},\n\t\tI: BatchGetTransactionsRequest,\n\t\tO: BatchGetTransactionsResponse,\n\t},\n\t{ name: 'GetCheckpoint', options: {}, I: GetCheckpointRequest, O: GetCheckpointResponse },\n\t{ name: 'GetEpoch', options: {}, I: GetEpochRequest, O: GetEpochResponse },\n]);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/ledger_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { LedgerService } from './ledger_service.js';\nimport type { GetEpochResponse } from './ledger_service.js';\nimport type { GetEpochRequest } from './ledger_service.js';\nimport type { GetCheckpointResponse } from './ledger_service.js';\nimport type { GetCheckpointRequest } from './ledger_service.js';\nimport type { BatchGetTransactionsResponse } from './ledger_service.js';\nimport type { BatchGetTransactionsRequest } from './ledger_service.js';\nimport type { GetTransactionResponse } from './ledger_service.js';\nimport type { GetTransactionRequest } from './ledger_service.js';\nimport type { BatchGetObjectsResponse } from './ledger_service.js';\nimport type { BatchGetObjectsRequest } from './ledger_service.js';\nimport type { GetObjectResponse } from './ledger_service.js';\nimport type { GetObjectRequest } from './ledger_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { GetServiceInfoResponse } from './ledger_service.js';\nimport type { GetServiceInfoRequest } from './ledger_service.js';\nimport type { UnaryCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * @generated from protobuf service sui.rpc.v2.LedgerService\n */\nexport interface ILedgerServiceClient {\n\t/**\n\t * Query the service for general information about its current state.\n\t *\n\t * @generated from protobuf rpc: GetServiceInfo(sui.rpc.v2.GetServiceInfoRequest) returns (sui.rpc.v2.GetServiceInfoResponse);\n\t */\n\tgetServiceInfo(\n\t\tinput: GetServiceInfoRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetServiceInfoRequest, GetServiceInfoResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetObject(sui.rpc.v2.GetObjectRequest) returns (sui.rpc.v2.GetObjectResponse);\n\t */\n\tgetObject(\n\t\tinput: GetObjectRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetObjectRequest, GetObjectResponse>;\n\t/**\n\t * @generated from protobuf rpc: BatchGetObjects(sui.rpc.v2.BatchGetObjectsRequest) returns (sui.rpc.v2.BatchGetObjectsResponse);\n\t */\n\tbatchGetObjects(\n\t\tinput: BatchGetObjectsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<BatchGetObjectsRequest, BatchGetObjectsResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetTransaction(sui.rpc.v2.GetTransactionRequest) returns (sui.rpc.v2.GetTransactionResponse);\n\t */\n\tgetTransaction(\n\t\tinput: GetTransactionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetTransactionRequest, GetTransactionResponse>;\n\t/**\n\t * @generated from protobuf rpc: BatchGetTransactions(sui.rpc.v2.BatchGetTransactionsRequest) returns (sui.rpc.v2.BatchGetTransactionsResponse);\n\t */\n\tbatchGetTransactions(\n\t\tinput: BatchGetTransactionsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<BatchGetTransactionsRequest, BatchGetTransactionsResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetCheckpoint(sui.rpc.v2.GetCheckpointRequest) returns (sui.rpc.v2.GetCheckpointResponse);\n\t */\n\tgetCheckpoint(\n\t\tinput: GetCheckpointRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetCheckpointRequest, GetCheckpointResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetEpoch(sui.rpc.v2.GetEpochRequest) returns (sui.rpc.v2.GetEpochResponse);\n\t */\n\tgetEpoch(\n\t\tinput: GetEpochRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetEpochRequest, GetEpochResponse>;\n}\n/**\n * @generated from protobuf service sui.rpc.v2.LedgerService\n */\nexport class LedgerServiceClient implements ILedgerServiceClient, ServiceInfo {\n\ttypeName = LedgerService.typeName;\n\tmethods = LedgerService.methods;\n\toptions = LedgerService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * Query the service for general information about its current state.\n\t *\n\t * @generated from protobuf rpc: GetServiceInfo(sui.rpc.v2.GetServiceInfoRequest) returns (sui.rpc.v2.GetServiceInfoResponse);\n\t */\n\tgetServiceInfo(\n\t\tinput: GetServiceInfoRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetServiceInfoRequest, GetServiceInfoResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetServiceInfoRequest, GetServiceInfoResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetObject(sui.rpc.v2.GetObjectRequest) returns (sui.rpc.v2.GetObjectResponse);\n\t */\n\tgetObject(\n\t\tinput: GetObjectRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetObjectRequest, GetObjectResponse> {\n\t\tconst method = this.methods[1],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetObjectRequest, GetObjectResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: BatchGetObjects(sui.rpc.v2.BatchGetObjectsRequest) returns (sui.rpc.v2.BatchGetObjectsResponse);\n\t */\n\tbatchGetObjects(\n\t\tinput: BatchGetObjectsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<BatchGetObjectsRequest, BatchGetObjectsResponse> {\n\t\tconst method = this.methods[2],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<BatchGetObjectsRequest, BatchGetObjectsResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetTransaction(sui.rpc.v2.GetTransactionRequest) returns (sui.rpc.v2.GetTransactionResponse);\n\t */\n\tgetTransaction(\n\t\tinput: GetTransactionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetTransactionRequest, GetTransactionResponse> {\n\t\tconst method = this.methods[3],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetTransactionRequest, GetTransactionResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: BatchGetTransactions(sui.rpc.v2.BatchGetTransactionsRequest) returns (sui.rpc.v2.BatchGetTransactionsResponse);\n\t */\n\tbatchGetTransactions(\n\t\tinput: BatchGetTransactionsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<BatchGetTransactionsRequest, BatchGetTransactionsResponse> {\n\t\tconst method = this.methods[4],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<BatchGetTransactionsRequest, BatchGetTransactionsResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetCheckpoint(sui.rpc.v2.GetCheckpointRequest) returns (sui.rpc.v2.GetCheckpointResponse);\n\t */\n\tgetCheckpoint(\n\t\tinput: GetCheckpointRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetCheckpointRequest, GetCheckpointResponse> {\n\t\tconst method = this.methods[5],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetCheckpointRequest, GetCheckpointResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetEpoch(sui.rpc.v2.GetEpochRequest) returns (sui.rpc.v2.GetEpochResponse);\n\t */\n\tgetEpoch(\n\t\tinput: GetEpochRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetEpochRequest, GetEpochResponse> {\n\t\tconst method = this.methods[6],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetEpochRequest, GetEpochResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/move_package_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { FunctionDescriptor } from './move_package.js';\nimport { DatatypeDescriptor } from './move_package.js';\nimport { Package } from './move_package.js';\n/**\n * @generated from protobuf message sui.rpc.v2.GetPackageRequest\n */\nexport interface GetPackageRequest {\n\t/**\n\t * Required. The `storage_id` of the requested package.\n\t *\n\t * @generated from protobuf field: optional string package_id = 1;\n\t */\n\tpackageId?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetPackageResponse\n */\nexport interface GetPackageResponse {\n\t/**\n\t * The package.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Package package = 1;\n\t */\n\tpackage?: Package;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetDatatypeRequest\n */\nexport interface GetDatatypeRequest {\n\t/**\n\t * Required. The `storage_id` of the requested package.\n\t *\n\t * @generated from protobuf field: optional string package_id = 1;\n\t */\n\tpackageId?: string;\n\t/**\n\t * Required. The name of the requested module.\n\t *\n\t * @generated from protobuf field: optional string module_name = 2;\n\t */\n\tmoduleName?: string;\n\t/**\n\t * Required. The name of the requested datatype.\n\t *\n\t * @generated from protobuf field: optional string name = 3;\n\t */\n\tname?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetDatatypeResponse\n */\nexport interface GetDatatypeResponse {\n\t/**\n\t * The datatype.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.DatatypeDescriptor datatype = 1;\n\t */\n\tdatatype?: DatatypeDescriptor;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetFunctionRequest\n */\nexport interface GetFunctionRequest {\n\t/**\n\t * Required. The `storage_id` of the requested package.\n\t *\n\t * @generated from protobuf field: optional string package_id = 1;\n\t */\n\tpackageId?: string;\n\t/**\n\t * Required. The name of the requested module.\n\t *\n\t * @generated from protobuf field: optional string module_name = 2;\n\t */\n\tmoduleName?: string;\n\t/**\n\t * Required. The name of the requested function.\n\t *\n\t * @generated from protobuf field: optional string name = 3;\n\t */\n\tname?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.GetFunctionResponse\n */\nexport interface GetFunctionResponse {\n\t/**\n\t * The function.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.FunctionDescriptor function = 1;\n\t */\n\tfunction?: FunctionDescriptor;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ListPackageVersionsRequest\n */\nexport interface ListPackageVersionsRequest {\n\t/**\n\t * Required. The `storage_id` of any version of the package.\n\t *\n\t * @generated from protobuf field: optional string package_id = 1;\n\t */\n\tpackageId?: string;\n\t/**\n\t * The maximum number of versions to return. The service may return fewer than this value.\n\t * If unspecified, at most `1000` entries will be returned.\n\t * The maximum value is `10000`; values above `10000` will be coerced to `10000`.\n\t *\n\t * @generated from protobuf field: optional uint32 page_size = 2;\n\t */\n\tpageSize?: number;\n\t/**\n\t * A page token, received from a previous `ListPackageVersions` call.\n\t * Provide this to retrieve the subsequent page.\n\t *\n\t * When paginating, all other parameters provided to `ListPackageVersions` must\n\t * match the call that provided the page token.\n\t *\n\t * @generated from protobuf field: optional bytes page_token = 3;\n\t */\n\tpageToken?: Uint8Array;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ListPackageVersionsResponse\n */\nexport interface ListPackageVersionsResponse {\n\t/**\n\t * List of all package versions, ordered by version.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.PackageVersion versions = 1;\n\t */\n\tversions: PackageVersion[];\n\t/**\n\t * A token, which can be sent as `page_token` to retrieve the next page.\n\t * If this field is omitted, there are no subsequent pages.\n\t *\n\t * @generated from protobuf field: optional bytes next_page_token = 2;\n\t */\n\tnextPageToken?: Uint8Array;\n}\n/**\n * A simplified representation of a package version\n *\n * @generated from protobuf message sui.rpc.v2.PackageVersion\n */\nexport interface PackageVersion {\n\t/**\n\t * The storage ID of this package version\n\t *\n\t * @generated from protobuf field: optional string package_id = 1;\n\t */\n\tpackageId?: string;\n\t/**\n\t * The version number\n\t *\n\t * @generated from protobuf field: optional uint64 version = 2;\n\t */\n\tversion?: bigint;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetPackageRequest$Type extends MessageType<GetPackageRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetPackageRequest', [\n\t\t\t{ no: 1, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetPackageRequest\n */\nexport const GetPackageRequest = new GetPackageRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetPackageResponse$Type extends MessageType<GetPackageResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetPackageResponse', [\n\t\t\t{ no: 1, name: 'package', kind: 'message', T: () => Package },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetPackageResponse\n */\nexport const GetPackageResponse = new GetPackageResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetDatatypeRequest$Type extends MessageType<GetDatatypeRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetDatatypeRequest', [\n\t\t\t{ no: 1, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'module_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetDatatypeRequest\n */\nexport const GetDatatypeRequest = new GetDatatypeRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetDatatypeResponse$Type extends MessageType<GetDatatypeResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetDatatypeResponse', [\n\t\t\t{ no: 1, name: 'datatype', kind: 'message', T: () => DatatypeDescriptor },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetDatatypeResponse\n */\nexport const GetDatatypeResponse = new GetDatatypeResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetFunctionRequest$Type extends MessageType<GetFunctionRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetFunctionRequest', [\n\t\t\t{ no: 1, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'module_name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetFunctionRequest\n */\nexport const GetFunctionRequest = new GetFunctionRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetFunctionResponse$Type extends MessageType<GetFunctionResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetFunctionResponse', [\n\t\t\t{ no: 1, name: 'function', kind: 'message', T: () => FunctionDescriptor },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetFunctionResponse\n */\nexport const GetFunctionResponse = new GetFunctionResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListPackageVersionsRequest$Type extends MessageType<ListPackageVersionsRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListPackageVersionsRequest', [\n\t\t\t{ no: 1, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'page_size', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListPackageVersionsRequest\n */\nexport const ListPackageVersionsRequest = new ListPackageVersionsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListPackageVersionsResponse$Type extends MessageType<ListPackageVersionsResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListPackageVersionsResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'versions',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => PackageVersion,\n\t\t\t},\n\t\t\t{ no: 2, name: 'next_page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListPackageVersionsResponse\n */\nexport const ListPackageVersionsResponse = new ListPackageVersionsResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass PackageVersion$Type extends MessageType<PackageVersion> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.PackageVersion', [\n\t\t\t{ no: 1, name: 'package_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'version',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.PackageVersion\n */\nexport const PackageVersion = new PackageVersion$Type();\n/**\n * @generated ServiceType for protobuf service sui.rpc.v2.MovePackageService\n */\nexport const MovePackageService = new ServiceType('sui.rpc.v2.MovePackageService', [\n\t{ name: 'GetPackage', options: {}, I: GetPackageRequest, O: GetPackageResponse },\n\t{ name: 'GetDatatype', options: {}, I: GetDatatypeRequest, O: GetDatatypeResponse },\n\t{ name: 'GetFunction', options: {}, I: GetFunctionRequest, O: GetFunctionResponse },\n\t{\n\t\tname: 'ListPackageVersions',\n\t\toptions: {},\n\t\tI: ListPackageVersionsRequest,\n\t\tO: ListPackageVersionsResponse,\n\t},\n]);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/move_package_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { MovePackageService } from './move_package_service.js';\nimport type { ListPackageVersionsResponse } from './move_package_service.js';\nimport type { ListPackageVersionsRequest } from './move_package_service.js';\nimport type { GetFunctionResponse } from './move_package_service.js';\nimport type { GetFunctionRequest } from './move_package_service.js';\nimport type { GetDatatypeResponse } from './move_package_service.js';\nimport type { GetDatatypeRequest } from './move_package_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { GetPackageResponse } from './move_package_service.js';\nimport type { GetPackageRequest } from './move_package_service.js';\nimport type { UnaryCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * @generated from protobuf service sui.rpc.v2.MovePackageService\n */\nexport interface IMovePackageServiceClient {\n\t/**\n\t * @generated from protobuf rpc: GetPackage(sui.rpc.v2.GetPackageRequest) returns (sui.rpc.v2.GetPackageResponse);\n\t */\n\tgetPackage(\n\t\tinput: GetPackageRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetPackageRequest, GetPackageResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetDatatype(sui.rpc.v2.GetDatatypeRequest) returns (sui.rpc.v2.GetDatatypeResponse);\n\t */\n\tgetDatatype(\n\t\tinput: GetDatatypeRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetDatatypeRequest, GetDatatypeResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetFunction(sui.rpc.v2.GetFunctionRequest) returns (sui.rpc.v2.GetFunctionResponse);\n\t */\n\tgetFunction(\n\t\tinput: GetFunctionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetFunctionRequest, GetFunctionResponse>;\n\t/**\n\t * @generated from protobuf rpc: ListPackageVersions(sui.rpc.v2.ListPackageVersionsRequest) returns (sui.rpc.v2.ListPackageVersionsResponse);\n\t */\n\tlistPackageVersions(\n\t\tinput: ListPackageVersionsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListPackageVersionsRequest, ListPackageVersionsResponse>;\n}\n/**\n * @generated from protobuf service sui.rpc.v2.MovePackageService\n */\nexport class MovePackageServiceClient implements IMovePackageServiceClient, ServiceInfo {\n\ttypeName = MovePackageService.typeName;\n\tmethods = MovePackageService.methods;\n\toptions = MovePackageService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * @generated from protobuf rpc: GetPackage(sui.rpc.v2.GetPackageRequest) returns (sui.rpc.v2.GetPackageResponse);\n\t */\n\tgetPackage(\n\t\tinput: GetPackageRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetPackageRequest, GetPackageResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetPackageRequest, GetPackageResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetDatatype(sui.rpc.v2.GetDatatypeRequest) returns (sui.rpc.v2.GetDatatypeResponse);\n\t */\n\tgetDatatype(\n\t\tinput: GetDatatypeRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetDatatypeRequest, GetDatatypeResponse> {\n\t\tconst method = this.methods[1],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetDatatypeRequest, GetDatatypeResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetFunction(sui.rpc.v2.GetFunctionRequest) returns (sui.rpc.v2.GetFunctionResponse);\n\t */\n\tgetFunction(\n\t\tinput: GetFunctionRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetFunctionRequest, GetFunctionResponse> {\n\t\tconst method = this.methods[2],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetFunctionRequest, GetFunctionResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: ListPackageVersions(sui.rpc.v2.ListPackageVersionsRequest) returns (sui.rpc.v2.ListPackageVersionsResponse);\n\t */\n\tlistPackageVersions(\n\t\tinput: ListPackageVersionsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListPackageVersionsRequest, ListPackageVersionsResponse> {\n\t\tconst method = this.methods[3],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<ListPackageVersionsRequest, ListPackageVersionsResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/signature_verification_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { ActiveJwk } from './transaction.js';\nimport { UserSignature } from './signature.js';\nimport { Bcs } from './bcs.js';\n/**\n * @generated from protobuf message sui.rpc.v2.VerifySignatureRequest\n */\nexport interface VerifySignatureRequest {\n\t/**\n\t * The message to verify against.\n\t *\n\t * Today the only supported message types are `PersonalMessage` and\n\t * `TransactionData` and the `Bcs.name` must be set to indicate which type of\n\t * message is being verified.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs message = 1;\n\t */\n\tmessage?: Bcs;\n\t/**\n\t * The signature to verify.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.UserSignature signature = 2;\n\t */\n\tsignature?: UserSignature;\n\t/**\n\t * Optional. Address to validate against the provided signature.\n\t *\n\t * If provided, this address will be compared against the the address derived\n\t * from the provide signature and a successful response will only be returned\n\t * if they match.\n\t *\n\t * @generated from protobuf field: optional string address = 3;\n\t */\n\taddress?: string;\n\t/**\n\t * The set of JWKs to use when verifying Zklogin signatures.\n\t * If this is empty the current set of valid JWKs stored onchain will be used\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.ActiveJwk jwks = 4;\n\t */\n\tjwks: ActiveJwk[];\n}\n/**\n * @generated from protobuf message sui.rpc.v2.VerifySignatureResponse\n */\nexport interface VerifySignatureResponse {\n\t/**\n\t * Indicates if the provided signature was valid given the requested parameters.\n\t *\n\t * @generated from protobuf field: optional bool is_valid = 1;\n\t */\n\tisValid?: boolean;\n\t/**\n\t * If `is_valid` is `false`, this is the reason for why the signature verification failed.\n\t *\n\t * @generated from protobuf field: optional string reason = 2;\n\t */\n\treason?: string;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass VerifySignatureRequest$Type extends MessageType<VerifySignatureRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.VerifySignatureRequest', [\n\t\t\t{ no: 1, name: 'message', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 2, name: 'signature', kind: 'message', T: () => UserSignature },\n\t\t\t{ no: 3, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'jwks',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => ActiveJwk,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.VerifySignatureRequest\n */\nexport const VerifySignatureRequest = new VerifySignatureRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass VerifySignatureResponse$Type extends MessageType<VerifySignatureResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.VerifySignatureResponse', [\n\t\t\t{ no: 1, name: 'is_valid', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{ no: 2, name: 'reason', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.VerifySignatureResponse\n */\nexport const VerifySignatureResponse = new VerifySignatureResponse$Type();\n/**\n * @generated ServiceType for protobuf service sui.rpc.v2.SignatureVerificationService\n */\nexport const SignatureVerificationService = new ServiceType(\n\t'sui.rpc.v2.SignatureVerificationService',\n\t[{ name: 'VerifySignature', options: {}, I: VerifySignatureRequest, O: VerifySignatureResponse }],\n);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/signature_verification_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { SignatureVerificationService } from './signature_verification_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { VerifySignatureResponse } from './signature_verification_service.js';\nimport type { VerifySignatureRequest } from './signature_verification_service.js';\nimport type { UnaryCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * @generated from protobuf service sui.rpc.v2.SignatureVerificationService\n */\nexport interface ISignatureVerificationServiceClient {\n\t/**\n\t * Perform signature verification of a UserSignature against the provided message.\n\t *\n\t * @generated from protobuf rpc: VerifySignature(sui.rpc.v2.VerifySignatureRequest) returns (sui.rpc.v2.VerifySignatureResponse);\n\t */\n\tverifySignature(\n\t\tinput: VerifySignatureRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<VerifySignatureRequest, VerifySignatureResponse>;\n}\n/**\n * @generated from protobuf service sui.rpc.v2.SignatureVerificationService\n */\nexport class SignatureVerificationServiceClient\n\timplements ISignatureVerificationServiceClient, ServiceInfo\n{\n\ttypeName = SignatureVerificationService.typeName;\n\tmethods = SignatureVerificationService.methods;\n\toptions = SignatureVerificationService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * Perform signature verification of a UserSignature against the provided message.\n\t *\n\t * @generated from protobuf rpc: VerifySignature(sui.rpc.v2.VerifySignatureRequest) returns (sui.rpc.v2.VerifySignatureResponse);\n\t */\n\tverifySignature(\n\t\tinput: VerifySignatureRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<VerifySignatureRequest, VerifySignatureResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<VerifySignatureRequest, VerifySignatureResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/state_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Bcs } from './bcs.js';\nimport { Object } from './object.js';\nimport { FieldMask } from '../../../google/protobuf/field_mask.js';\n/**\n * Request message for `NodeService.GetCoinInfo`.\n *\n * @generated from protobuf message sui.rpc.v2.GetCoinInfoRequest\n */\nexport interface GetCoinInfoRequest {\n\t/**\n\t * The coin type to request information about\n\t *\n\t * @generated from protobuf field: optional string coin_type = 1;\n\t */\n\tcoinType?: string;\n}\n/**\n * Response message for `NodeService.GetCoinInfo`.\n *\n * @generated from protobuf message sui.rpc.v2.GetCoinInfoResponse\n */\nexport interface GetCoinInfoResponse {\n\t/**\n\t * Required. The coin type.\n\t *\n\t * @generated from protobuf field: optional string coin_type = 1;\n\t */\n\tcoinType?: string;\n\t/**\n\t * This field will be populated with information about this coin\n\t * type's `0x2::coin::CoinMetadata` if it exists and has not been wrapped.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.CoinMetadata metadata = 2;\n\t */\n\tmetadata?: CoinMetadata;\n\t/**\n\t * This field will be populated with information about this coin\n\t * type's `0x2::coin::TreasuryCap` if it exists and has not been wrapped.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.CoinTreasury treasury = 3;\n\t */\n\ttreasury?: CoinTreasury;\n\t/**\n\t * If this coin type is a regulated coin, this field will be\n\t * populated with information either from its Currency object\n\t * in the CoinRegistry, or from its `0x2::coin::RegulatedCoinMetadata`\n\t * object for coins that have not been migrated to the CoinRegistry\n\t *\n\t * If this coin is not known to be regulated, only the\n\t * coin_regulated_state field will be populated.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.RegulatedCoinMetadata regulated_metadata = 4;\n\t */\n\tregulatedMetadata?: RegulatedCoinMetadata;\n}\n/**\n * Metadata for a coin type\n *\n * @generated from protobuf message sui.rpc.v2.CoinMetadata\n */\nexport interface CoinMetadata {\n\t/**\n\t * ObjectId of the `0x2::coin::CoinMetadata` object or\n\t * 0x2::sui::coin_registry::Currency object (when registered with CoinRegistry).\n\t *\n\t * @generated from protobuf field: optional string id = 1;\n\t */\n\tid?: string;\n\t/**\n\t * Number of decimal places to coin uses.\n\t *\n\t * @generated from protobuf field: optional uint32 decimals = 2;\n\t */\n\tdecimals?: number;\n\t/**\n\t * Name for the token\n\t *\n\t * @generated from protobuf field: optional string name = 3;\n\t */\n\tname?: string;\n\t/**\n\t * Symbol for the token\n\t *\n\t * @generated from protobuf field: optional string symbol = 4;\n\t */\n\tsymbol?: string;\n\t/**\n\t * Description of the token\n\t *\n\t * @generated from protobuf field: optional string description = 5;\n\t */\n\tdescription?: string;\n\t/**\n\t * URL for the token logo\n\t *\n\t * @generated from protobuf field: optional string icon_url = 6;\n\t */\n\ticonUrl?: string;\n\t/**\n\t * The MetadataCap ID if it has been claimed for this coin type.\n\t * This capability allows updating the coin's metadata fields.\n\t * Only populated when metadata is from CoinRegistry.\n\t *\n\t * @generated from protobuf field: optional string metadata_cap_id = 7;\n\t */\n\tmetadataCapId?: string;\n\t/**\n\t * State of the MetadataCap for this coin type.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.CoinMetadata.MetadataCapState metadata_cap_state = 8;\n\t */\n\tmetadataCapState?: CoinMetadata_MetadataCapState;\n}\n/**\n * Information about the state of the coin's MetadataCap\n *\n * @generated from protobuf enum sui.rpc.v2.CoinMetadata.MetadataCapState\n */\nexport enum CoinMetadata_MetadataCapState {\n\t/**\n\t * Indicates the state of the MetadataCap is unknown.\n\t * Set when the coin has not been migrated to the CoinRegistry.\n\t *\n\t * @generated from protobuf enum value: METADATA_CAP_STATE_UNKNOWN = 0;\n\t */\n\tMETADATA_CAP_STATE_UNKNOWN = 0,\n\t/**\n\t * Indicates the MetadataCap has been claimed.\n\t *\n\t * @generated from protobuf enum value: CLAIMED = 1;\n\t */\n\tCLAIMED = 1,\n\t/**\n\t * Indicates the MetadataCap has not been claimed.\n\t *\n\t * @generated from protobuf enum value: UNCLAIMED = 2;\n\t */\n\tUNCLAIMED = 2,\n\t/**\n\t * Indicates the MetadataCap has been deleted.\n\t *\n\t * @generated from protobuf enum value: DELETED = 3;\n\t */\n\tDELETED = 3,\n}\n/**\n * Information about a coin type's `0x2::coin::TreasuryCap` and its total available supply\n *\n * @generated from protobuf message sui.rpc.v2.CoinTreasury\n */\nexport interface CoinTreasury {\n\t/**\n\t * ObjectId of the `0x2::coin::TreasuryCap` object.\n\t *\n\t * @generated from protobuf field: optional string id = 1;\n\t */\n\tid?: string;\n\t/**\n\t * Total available supply for this coin type.\n\t *\n\t * @generated from protobuf field: optional uint64 total_supply = 2;\n\t */\n\ttotalSupply?: bigint;\n\t/**\n\t * Supply state indicating if the supply is fixed or can still be minted\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.CoinTreasury.SupplyState supply_state = 3;\n\t */\n\tsupplyState?: CoinTreasury_SupplyState;\n}\n/**\n * Supply state of a coin, matching the Move SupplyState enum\n *\n * @generated from protobuf enum sui.rpc.v2.CoinTreasury.SupplyState\n */\nexport enum CoinTreasury_SupplyState {\n\t/**\n\t * Supply is unknown or TreasuryCap still exists (minting still possible)\n\t *\n\t * @generated from protobuf enum value: SUPPLY_STATE_UNKNOWN = 0;\n\t */\n\tSUPPLY_STATE_UNKNOWN = 0,\n\t/**\n\t * Supply is fixed (TreasuryCap consumed, no more minting possible)\n\t *\n\t * @generated from protobuf enum value: FIXED = 1;\n\t */\n\tFIXED = 1,\n\t/**\n\t * Supply can only decrease (burning allowed, minting not allowed)\n\t *\n\t * @generated from protobuf enum value: BURN_ONLY = 2;\n\t */\n\tBURN_ONLY = 2,\n}\n/**\n * Information about a regulated coin, which indicates that it makes use of the transfer deny list.\n *\n * @generated from protobuf message sui.rpc.v2.RegulatedCoinMetadata\n */\nexport interface RegulatedCoinMetadata {\n\t/**\n\t * ObjectId of the `0x2::coin::RegulatedCoinMetadata` object.\n\t * Only present for coins that have not been migrated to CoinRegistry.\n\t *\n\t * @generated from protobuf field: optional string id = 1;\n\t */\n\tid?: string;\n\t/**\n\t * The ID of the coin's `CoinMetadata` or `CoinData` object.\n\t *\n\t * @generated from protobuf field: optional string coin_metadata_object = 2;\n\t */\n\tcoinMetadataObject?: string;\n\t/**\n\t * The ID of the coin's `DenyCap` object.\n\t *\n\t * @generated from protobuf field: optional string deny_cap_object = 3;\n\t */\n\tdenyCapObject?: string;\n\t/**\n\t * Whether the coin can be globally paused\n\t *\n\t * @generated from protobuf field: optional bool allow_global_pause = 4;\n\t */\n\tallowGlobalPause?: boolean;\n\t/**\n\t * Variant of the regulated coin metadata\n\t *\n\t * @generated from protobuf field: optional uint32 variant = 5;\n\t */\n\tvariant?: number;\n\t/**\n\t * Indicates the coin's regulated state.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.RegulatedCoinMetadata.CoinRegulatedState coin_regulated_state = 6;\n\t */\n\tcoinRegulatedState?: RegulatedCoinMetadata_CoinRegulatedState;\n}\n/**\n * Indicates the state of the regulation of the coin.\n *\n * @generated from protobuf enum sui.rpc.v2.RegulatedCoinMetadata.CoinRegulatedState\n */\nexport enum RegulatedCoinMetadata_CoinRegulatedState {\n\t/**\n\t * Indicates the regulation state of the coin is unknown.\n\t * This is set when a coin has not been migrated to the\n\t * coin registry and has no `0x2::coin::RegulatedCoinMetadata`\n\t * object.\n\t *\n\t * @generated from protobuf enum value: COIN_REGULATED_STATE_UNKNOWN = 0;\n\t */\n\tCOIN_REGULATED_STATE_UNKNOWN = 0,\n\t/**\n\t * Indicates a coin is regulated. RegulatedCoinMetadata will be populated.\n\t *\n\t * @generated from protobuf enum value: REGULATED = 1;\n\t */\n\tREGULATED = 1,\n\t/**\n\t * Indicates a coin is unregulated.\n\t *\n\t * @generated from protobuf enum value: UNREGULATED = 2;\n\t */\n\tUNREGULATED = 2,\n}\n/**\n * Request message for `LiveDataService.GetBalance`.\n *\n * @generated from protobuf message sui.rpc.v2.GetBalanceRequest\n */\nexport interface GetBalanceRequest {\n\t/**\n\t * Required. The owner's Sui address.\n\t *\n\t * @generated from protobuf field: optional string owner = 1;\n\t */\n\towner?: string;\n\t/**\n\t * Required. The type names for the coin (e.g., 0x2::sui::SUI).\n\t *\n\t * @generated from protobuf field: optional string coin_type = 2;\n\t */\n\tcoinType?: string;\n}\n/**\n * Response message for `LiveDataService.GetBalance`.\n * Return the total coin balance for one coin type, owned by the address owner.\n *\n * @generated from protobuf message sui.rpc.v2.GetBalanceResponse\n */\nexport interface GetBalanceResponse {\n\t/**\n\t * The balance information for the requested coin type.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Balance balance = 1;\n\t */\n\tbalance?: Balance;\n}\n/**\n * Request message for `LiveDataService.ListBalances`.\n *\n * @generated from protobuf message sui.rpc.v2.ListBalancesRequest\n */\nexport interface ListBalancesRequest {\n\t/**\n\t * Required. The owner's Sui address.\n\t *\n\t * @generated from protobuf field: optional string owner = 1;\n\t */\n\towner?: string;\n\t/**\n\t * The maximum number of balance entries to return. The service may return fewer than this value.\n\t * If unspecified, at most `50` entries will be returned.\n\t * The maximum value is `1000`; values above `1000` will be coerced to `1000`.\n\t *\n\t * @generated from protobuf field: optional uint32 page_size = 2;\n\t */\n\tpageSize?: number;\n\t/**\n\t * A page token, received from a previous `ListBalances` call.\n\t * Provide this to retrieve the subsequent page.\n\t *\n\t * When paginating, all other parameters provided to `ListBalances` must\n\t * match the call that provided the page token.\n\t *\n\t * @generated from protobuf field: optional bytes page_token = 3;\n\t */\n\tpageToken?: Uint8Array;\n}\n/**\n * Response message for `LiveDataService.ListBalances`.\n * Return the total coin balance for all coin types, owned by the address owner.\n *\n * @generated from protobuf message sui.rpc.v2.ListBalancesResponse\n */\nexport interface ListBalancesResponse {\n\t/**\n\t * The list of coin types and their respective balances.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Balance balances = 1;\n\t */\n\tbalances: Balance[];\n\t/**\n\t * A token, which can be sent as `page_token` to retrieve the next page.\n\t * If this field is omitted, there are no subsequent pages.\n\t *\n\t * @generated from protobuf field: optional bytes next_page_token = 2;\n\t */\n\tnextPageToken?: Uint8Array;\n}\n/**\n * Balance information for a specific coin type.\n *\n * @generated from protobuf message sui.rpc.v2.Balance\n */\nexport interface Balance {\n\t/**\n\t * The type of the coin (e.g., 0x2::sui::SUI).\n\t *\n\t * @generated from protobuf field: optional string coin_type = 1;\n\t */\n\tcoinType?: string;\n\t/**\n\t * The total balance of `coin_type` in its smallest unit.\n\t * This is the sum of all spendable amounts of `coin_type` (`address_balance`\n\t * and `coin_balance`).\n\t *\n\t * @generated from protobuf field: optional uint64 balance = 3;\n\t */\n\tbalance?: bigint;\n\t/**\n\t * The balance of `Balance<T>` in this address's Address Balance.\n\t *\n\t * @generated from protobuf field: optional uint64 address_balance = 4;\n\t */\n\taddressBalance?: bigint;\n\t/**\n\t * The balance of all `Coin<T>` objects owned by this address.\n\t *\n\t * @generated from protobuf field: optional uint64 coin_balance = 5;\n\t */\n\tcoinBalance?: bigint;\n}\n/**\n * Request message for `NodeService.ListDynamicFields`\n *\n * @generated from protobuf message sui.rpc.v2.ListDynamicFieldsRequest\n */\nexport interface ListDynamicFieldsRequest {\n\t/**\n\t * Required. The `UID` of the parent, which owns the collections of dynamic fields.\n\t *\n\t * @generated from protobuf field: optional string parent = 1;\n\t */\n\tparent?: string;\n\t/**\n\t * The maximum number of dynamic fields to return. The service may return fewer than this value.\n\t * If unspecified, at most `50` entries will be returned.\n\t * The maximum value is `1000`; values above `1000` will be coerced to `1000`.\n\t *\n\t * @generated from protobuf field: optional uint32 page_size = 2;\n\t */\n\tpageSize?: number;\n\t/**\n\t * A page token, received from a previous `ListDynamicFields` call.\n\t * Provide this to retrieve the subsequent page.\n\t *\n\t * When paginating, all other parameters provided to `ListDynamicFields` must\n\t * match the call that provided the page token.\n\t *\n\t * @generated from protobuf field: optional bytes page_token = 3;\n\t */\n\tpageToken?: Uint8Array;\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `parent,field_id`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 4;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * Response message for `NodeService.ListDynamicFields`\n *\n * @generated from protobuf message sui.rpc.v2.ListDynamicFieldsResponse\n */\nexport interface ListDynamicFieldsResponse {\n\t/**\n\t * Page of dynamic fields owned by the specified parent.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.DynamicField dynamic_fields = 1;\n\t */\n\tdynamicFields: DynamicField[];\n\t/**\n\t * A token, which can be sent as `page_token` to retrieve the next page.\n\t * If this field is omitted, there are no subsequent pages.\n\t *\n\t * @generated from protobuf field: optional bytes next_page_token = 2;\n\t */\n\tnextPageToken?: Uint8Array;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.DynamicField\n */\nexport interface DynamicField {\n\t/**\n\t * @generated from protobuf field: optional sui.rpc.v2.DynamicField.DynamicFieldKind kind = 1;\n\t */\n\tkind?: DynamicField_DynamicFieldKind;\n\t/**\n\t * ObjectId of this dynamic field's parent.\n\t *\n\t * @generated from protobuf field: optional string parent = 2;\n\t */\n\tparent?: string;\n\t/**\n\t * ObjectId of this dynamic field.\n\t *\n\t * @generated from protobuf field: optional string field_id = 3;\n\t */\n\tfieldId?: string;\n\t/**\n\t * The field object itself\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Object field_object = 4;\n\t */\n\tfieldObject?: Object;\n\t/**\n\t * The dynamic field's \"name\"\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs name = 5;\n\t */\n\tname?: Bcs;\n\t/**\n\t * The dynamic field's \"value\"\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Bcs value = 6;\n\t */\n\tvalue?: Bcs;\n\t/**\n\t * The type of the dynamic field \"value\".\n\t *\n\t * If this is a dynamic object field then this is the type of the object\n\t * itself (which is a child of this field), otherwise this is the type of the\n\t * value of this field.\n\t *\n\t * @generated from protobuf field: optional string value_type = 7;\n\t */\n\tvalueType?: string;\n\t/**\n\t * The ObjectId of the child object when a child is a dynamic\n\t * object field.\n\t *\n\t * The presence or absence of this field can be used to determine if a child\n\t * is a dynamic field or a dynamic child object\n\t *\n\t * @generated from protobuf field: optional string child_id = 8;\n\t */\n\tchildId?: string;\n\t/**\n\t * The object itself when a child is a dynamic object field.\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Object child_object = 9;\n\t */\n\tchildObject?: Object;\n}\n/**\n * @generated from protobuf enum sui.rpc.v2.DynamicField.DynamicFieldKind\n */\nexport enum DynamicField_DynamicFieldKind {\n\t/**\n\t * @generated from protobuf enum value: DYNAMIC_FIELD_KIND_UNKNOWN = 0;\n\t */\n\tDYNAMIC_FIELD_KIND_UNKNOWN = 0,\n\t/**\n\t * @generated from protobuf enum value: FIELD = 1;\n\t */\n\tFIELD = 1,\n\t/**\n\t * @generated from protobuf enum value: OBJECT = 2;\n\t */\n\tOBJECT = 2,\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ListOwnedObjectsRequest\n */\nexport interface ListOwnedObjectsRequest {\n\t/**\n\t * Required. The address of the account that owns the objects.\n\t *\n\t * @generated from protobuf field: optional string owner = 1;\n\t */\n\towner?: string;\n\t/**\n\t * The maximum number of entries return. The service may return fewer than this value.\n\t * If unspecified, at most `50` entries will be returned.\n\t * The maximum value is `1000`; values above `1000` will be coerced to `1000`.\n\t *\n\t * @generated from protobuf field: optional uint32 page_size = 2;\n\t */\n\tpageSize?: number;\n\t/**\n\t * A page token, received from a previous `ListOwnedObjects` call.\n\t * Provide this to retrieve the subsequent page.\n\t *\n\t * When paginating, all other parameters provided to `ListOwnedObjects` must\n\t * match the call that provided the page token.\n\t *\n\t * @generated from protobuf field: optional bytes page_token = 3;\n\t */\n\tpageToken?: Uint8Array;\n\t/**\n\t * Mask specifying which fields to read.\n\t * If no mask is specified, defaults to `object_id,version,object_type`.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 4;\n\t */\n\treadMask?: FieldMask;\n\t/**\n\t * Optional type filter to limit the types of objects listed.\n\t *\n\t * Providing an object type with no type params will return objects of that\n\t * type with any type parameter, e.g. `0x2::coin::Coin` will return all\n\t * `Coin<T>` objects regardless of the type parameter `T`. Providing a type\n\t * with a type param will restrict the returned objects to only those objects\n\t * that match the provided type parameters, e.g.\n\t * `0x2::coin::Coin<0x2::sui::SUI>` will only return `Coin<SUI>` objects.\n\t *\n\t * @generated from protobuf field: optional string object_type = 5;\n\t */\n\tobjectType?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ListOwnedObjectsResponse\n */\nexport interface ListOwnedObjectsResponse {\n\t/**\n\t * Page of dynamic fields owned by the specified parent.\n\t *\n\t * @generated from protobuf field: repeated sui.rpc.v2.Object objects = 1;\n\t */\n\tobjects: Object[];\n\t/**\n\t * A token, which can be sent as `page_token` to retrieve the next page.\n\t * If this field is omitted, there are no subsequent pages.\n\t *\n\t * @generated from protobuf field: optional bytes next_page_token = 2;\n\t */\n\tnextPageToken?: Uint8Array;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetCoinInfoRequest$Type extends MessageType<GetCoinInfoRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetCoinInfoRequest', [\n\t\t\t{ no: 1, name: 'coin_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetCoinInfoRequest\n */\nexport const GetCoinInfoRequest = new GetCoinInfoRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetCoinInfoResponse$Type extends MessageType<GetCoinInfoResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetCoinInfoResponse', [\n\t\t\t{ no: 1, name: 'coin_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'metadata', kind: 'message', T: () => CoinMetadata },\n\t\t\t{ no: 3, name: 'treasury', kind: 'message', T: () => CoinTreasury },\n\t\t\t{ no: 4, name: 'regulated_metadata', kind: 'message', T: () => RegulatedCoinMetadata },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetCoinInfoResponse\n */\nexport const GetCoinInfoResponse = new GetCoinInfoResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CoinMetadata$Type extends MessageType<CoinMetadata> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CoinMetadata', [\n\t\t\t{ no: 1, name: 'id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'decimals', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'symbol', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 5, name: 'description', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 6, name: 'icon_url', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 7, name: 'metadata_cap_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 8,\n\t\t\t\tname: 'metadata_cap_state',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.CoinMetadata.MetadataCapState', CoinMetadata_MetadataCapState],\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CoinMetadata\n */\nexport const CoinMetadata = new CoinMetadata$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CoinTreasury$Type extends MessageType<CoinTreasury> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.CoinTreasury', [\n\t\t\t{ no: 1, name: 'id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'total_supply',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'supply_state',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.CoinTreasury.SupplyState', CoinTreasury_SupplyState],\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.CoinTreasury\n */\nexport const CoinTreasury = new CoinTreasury$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass RegulatedCoinMetadata$Type extends MessageType<RegulatedCoinMetadata> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.RegulatedCoinMetadata', [\n\t\t\t{ no: 1, name: 'id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'coin_metadata_object',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 9 /*ScalarType.STRING*/,\n\t\t\t},\n\t\t\t{ no: 3, name: 'deny_cap_object', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'allow_global_pause', kind: 'scalar', opt: true, T: 8 /*ScalarType.BOOL*/ },\n\t\t\t{ no: 5, name: 'variant', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'coin_regulated_state',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => [\n\t\t\t\t\t'sui.rpc.v2.RegulatedCoinMetadata.CoinRegulatedState',\n\t\t\t\t\tRegulatedCoinMetadata_CoinRegulatedState,\n\t\t\t\t],\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.RegulatedCoinMetadata\n */\nexport const RegulatedCoinMetadata = new RegulatedCoinMetadata$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetBalanceRequest$Type extends MessageType<GetBalanceRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetBalanceRequest', [\n\t\t\t{ no: 1, name: 'owner', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'coin_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetBalanceRequest\n */\nexport const GetBalanceRequest = new GetBalanceRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetBalanceResponse$Type extends MessageType<GetBalanceResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.GetBalanceResponse', [\n\t\t\t{ no: 1, name: 'balance', kind: 'message', T: () => Balance },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.GetBalanceResponse\n */\nexport const GetBalanceResponse = new GetBalanceResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListBalancesRequest$Type extends MessageType<ListBalancesRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListBalancesRequest', [\n\t\t\t{ no: 1, name: 'owner', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'page_size', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListBalancesRequest\n */\nexport const ListBalancesRequest = new ListBalancesRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListBalancesResponse$Type extends MessageType<ListBalancesResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListBalancesResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'balances',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Balance,\n\t\t\t},\n\t\t\t{ no: 2, name: 'next_page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListBalancesResponse\n */\nexport const ListBalancesResponse = new ListBalancesResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass Balance$Type extends MessageType<Balance> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.Balance', [\n\t\t\t{ no: 1, name: 'coin_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'address_balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 5,\n\t\t\t\tname: 'coin_balance',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.Balance\n */\nexport const Balance = new Balance$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListDynamicFieldsRequest$Type extends MessageType<ListDynamicFieldsRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListDynamicFieldsRequest', [\n\t\t\t{ no: 1, name: 'parent', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'page_size', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 4, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListDynamicFieldsRequest\n */\nexport const ListDynamicFieldsRequest = new ListDynamicFieldsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListDynamicFieldsResponse$Type extends MessageType<ListDynamicFieldsResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListDynamicFieldsResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'dynamic_fields',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => DynamicField,\n\t\t\t},\n\t\t\t{ no: 2, name: 'next_page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListDynamicFieldsResponse\n */\nexport const ListDynamicFieldsResponse = new ListDynamicFieldsResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass DynamicField$Type extends MessageType<DynamicField> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.DynamicField', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'kind',\n\t\t\t\tkind: 'enum',\n\t\t\t\topt: true,\n\t\t\t\tT: () => ['sui.rpc.v2.DynamicField.DynamicFieldKind', DynamicField_DynamicFieldKind],\n\t\t\t},\n\t\t\t{ no: 2, name: 'parent', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'field_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'field_object', kind: 'message', T: () => Object },\n\t\t\t{ no: 5, name: 'name', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 6, name: 'value', kind: 'message', T: () => Bcs },\n\t\t\t{ no: 7, name: 'value_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 8, name: 'child_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 9, name: 'child_object', kind: 'message', T: () => Object },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.DynamicField\n */\nexport const DynamicField = new DynamicField$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListOwnedObjectsRequest$Type extends MessageType<ListOwnedObjectsRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListOwnedObjectsRequest', [\n\t\t\t{ no: 1, name: 'owner', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'page_size', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },\n\t\t\t{ no: 3, name: 'page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t\t{ no: 4, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t\t{ no: 5, name: 'object_type', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListOwnedObjectsRequest\n */\nexport const ListOwnedObjectsRequest = new ListOwnedObjectsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListOwnedObjectsResponse$Type extends MessageType<ListOwnedObjectsResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ListOwnedObjectsResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'objects',\n\t\t\t\tkind: 'message',\n\t\t\t\trepeat: 2 /*RepeatType.UNPACKED*/,\n\t\t\t\tT: () => Object,\n\t\t\t},\n\t\t\t{ no: 2, name: 'next_page_token', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ListOwnedObjectsResponse\n */\nexport const ListOwnedObjectsResponse = new ListOwnedObjectsResponse$Type();\n/**\n * @generated ServiceType for protobuf service sui.rpc.v2.StateService\n */\nexport const StateService = new ServiceType('sui.rpc.v2.StateService', [\n\t{\n\t\tname: 'ListDynamicFields',\n\t\toptions: {},\n\t\tI: ListDynamicFieldsRequest,\n\t\tO: ListDynamicFieldsResponse,\n\t},\n\t{\n\t\tname: 'ListOwnedObjects',\n\t\toptions: {},\n\t\tI: ListOwnedObjectsRequest,\n\t\tO: ListOwnedObjectsResponse,\n\t},\n\t{ name: 'GetCoinInfo', options: {}, I: GetCoinInfoRequest, O: GetCoinInfoResponse },\n\t{ name: 'GetBalance', options: {}, I: GetBalanceRequest, O: GetBalanceResponse },\n\t{ name: 'ListBalances', options: {}, I: ListBalancesRequest, O: ListBalancesResponse },\n]);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/state_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { StateService } from './state_service.js';\nimport type { ListBalancesResponse } from './state_service.js';\nimport type { ListBalancesRequest } from './state_service.js';\nimport type { GetBalanceResponse } from './state_service.js';\nimport type { GetBalanceRequest } from './state_service.js';\nimport type { GetCoinInfoResponse } from './state_service.js';\nimport type { GetCoinInfoRequest } from './state_service.js';\nimport type { ListOwnedObjectsResponse } from './state_service.js';\nimport type { ListOwnedObjectsRequest } from './state_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { ListDynamicFieldsResponse } from './state_service.js';\nimport type { ListDynamicFieldsRequest } from './state_service.js';\nimport type { UnaryCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * @generated from protobuf service sui.rpc.v2.StateService\n */\nexport interface IStateServiceClient {\n\t/**\n\t * @generated from protobuf rpc: ListDynamicFields(sui.rpc.v2.ListDynamicFieldsRequest) returns (sui.rpc.v2.ListDynamicFieldsResponse);\n\t */\n\tlistDynamicFields(\n\t\tinput: ListDynamicFieldsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListDynamicFieldsRequest, ListDynamicFieldsResponse>;\n\t/**\n\t * @generated from protobuf rpc: ListOwnedObjects(sui.rpc.v2.ListOwnedObjectsRequest) returns (sui.rpc.v2.ListOwnedObjectsResponse);\n\t */\n\tlistOwnedObjects(\n\t\tinput: ListOwnedObjectsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListOwnedObjectsRequest, ListOwnedObjectsResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetCoinInfo(sui.rpc.v2.GetCoinInfoRequest) returns (sui.rpc.v2.GetCoinInfoResponse);\n\t */\n\tgetCoinInfo(\n\t\tinput: GetCoinInfoRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetCoinInfoRequest, GetCoinInfoResponse>;\n\t/**\n\t * @generated from protobuf rpc: GetBalance(sui.rpc.v2.GetBalanceRequest) returns (sui.rpc.v2.GetBalanceResponse);\n\t */\n\tgetBalance(\n\t\tinput: GetBalanceRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetBalanceRequest, GetBalanceResponse>;\n\t/**\n\t * @generated from protobuf rpc: ListBalances(sui.rpc.v2.ListBalancesRequest) returns (sui.rpc.v2.ListBalancesResponse);\n\t */\n\tlistBalances(\n\t\tinput: ListBalancesRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListBalancesRequest, ListBalancesResponse>;\n}\n/**\n * @generated from protobuf service sui.rpc.v2.StateService\n */\nexport class StateServiceClient implements IStateServiceClient, ServiceInfo {\n\ttypeName = StateService.typeName;\n\tmethods = StateService.methods;\n\toptions = StateService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * @generated from protobuf rpc: ListDynamicFields(sui.rpc.v2.ListDynamicFieldsRequest) returns (sui.rpc.v2.ListDynamicFieldsResponse);\n\t */\n\tlistDynamicFields(\n\t\tinput: ListDynamicFieldsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListDynamicFieldsRequest, ListDynamicFieldsResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<ListDynamicFieldsRequest, ListDynamicFieldsResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: ListOwnedObjects(sui.rpc.v2.ListOwnedObjectsRequest) returns (sui.rpc.v2.ListOwnedObjectsResponse);\n\t */\n\tlistOwnedObjects(\n\t\tinput: ListOwnedObjectsRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListOwnedObjectsRequest, ListOwnedObjectsResponse> {\n\t\tconst method = this.methods[1],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<ListOwnedObjectsRequest, ListOwnedObjectsResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetCoinInfo(sui.rpc.v2.GetCoinInfoRequest) returns (sui.rpc.v2.GetCoinInfoResponse);\n\t */\n\tgetCoinInfo(\n\t\tinput: GetCoinInfoRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetCoinInfoRequest, GetCoinInfoResponse> {\n\t\tconst method = this.methods[2],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetCoinInfoRequest, GetCoinInfoResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: GetBalance(sui.rpc.v2.GetBalanceRequest) returns (sui.rpc.v2.GetBalanceResponse);\n\t */\n\tgetBalance(\n\t\tinput: GetBalanceRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetBalanceRequest, GetBalanceResponse> {\n\t\tconst method = this.methods[3],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetBalanceRequest, GetBalanceResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: ListBalances(sui.rpc.v2.ListBalancesRequest) returns (sui.rpc.v2.ListBalancesResponse);\n\t */\n\tlistBalances(\n\t\tinput: ListBalancesRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ListBalancesRequest, ListBalancesResponse> {\n\t\tconst method = this.methods[4],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<ListBalancesRequest, ListBalancesResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/subscription_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Checkpoint } from './checkpoint.js';\nimport { FieldMask } from '../../../google/protobuf/field_mask.js';\n/**\n * Request message for SubscriptionService.SubscribeCheckpoints\n *\n * @generated from protobuf message sui.rpc.v2.SubscribeCheckpointsRequest\n */\nexport interface SubscribeCheckpointsRequest {\n\t/**\n\t * Optional. Mask for specifying which parts of the\n\t * SubscribeCheckpointsResponse should be returned.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.FieldMask read_mask = 1;\n\t */\n\treadMask?: FieldMask;\n}\n/**\n * Response message for SubscriptionService.SubscribeCheckpoints\n *\n * @generated from protobuf message sui.rpc.v2.SubscribeCheckpointsResponse\n */\nexport interface SubscribeCheckpointsResponse {\n\t/**\n\t * Required. The checkpoint sequence number and value of the current cursor\n\t * into the checkpoint stream\n\t *\n\t * @generated from protobuf field: optional uint64 cursor = 1;\n\t */\n\tcursor?: bigint;\n\t/**\n\t * The requested data for this checkpoint\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.Checkpoint checkpoint = 2;\n\t */\n\tcheckpoint?: Checkpoint;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscribeCheckpointsRequest$Type extends MessageType<SubscribeCheckpointsRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SubscribeCheckpointsRequest', [\n\t\t\t{ no: 1, name: 'read_mask', kind: 'message', T: () => FieldMask },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SubscribeCheckpointsRequest\n */\nexport const SubscribeCheckpointsRequest = new SubscribeCheckpointsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SubscribeCheckpointsResponse$Type extends MessageType<SubscribeCheckpointsResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.SubscribeCheckpointsResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'cursor',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'checkpoint', kind: 'message', T: () => Checkpoint },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.SubscribeCheckpointsResponse\n */\nexport const SubscribeCheckpointsResponse = new SubscribeCheckpointsResponse$Type();\n/**\n * @generated ServiceType for protobuf service sui.rpc.v2.SubscriptionService\n */\nexport const SubscriptionService = new ServiceType('sui.rpc.v2.SubscriptionService', [\n\t{\n\t\tname: 'SubscribeCheckpoints',\n\t\tserverStreaming: true,\n\t\toptions: {},\n\t\tI: SubscribeCheckpointsRequest,\n\t\tO: SubscribeCheckpointsResponse,\n\t},\n]);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/subscription_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { SubscriptionService } from './subscription_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { SubscribeCheckpointsResponse } from './subscription_service.js';\nimport type { SubscribeCheckpointsRequest } from './subscription_service.js';\nimport type { ServerStreamingCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * @generated from protobuf service sui.rpc.v2.SubscriptionService\n */\nexport interface ISubscriptionServiceClient {\n\t/**\n\t * Subscribe to the stream of checkpoints.\n\t *\n\t * This API provides a subscription to the checkpoint stream for the Sui\n\t * blockchain. When a subscription is initialized the stream will begin with\n\t * the latest executed checkpoint as seen by the server. Responses are\n\t * guaranteed to return checkpoints in-order and without gaps. This enables\n\t * clients to know exactly the last checkpoint they have processed and in the\n\t * event the subscription terminates (either by the client/server or by the\n\t * connection breaking), clients will be able to reinitialize a subscription\n\t * and then leverage other APIs in order to request data for the checkpoints\n\t * they missed.\n\t *\n\t * @generated from protobuf rpc: SubscribeCheckpoints(sui.rpc.v2.SubscribeCheckpointsRequest) returns (stream sui.rpc.v2.SubscribeCheckpointsResponse);\n\t */\n\tsubscribeCheckpoints(\n\t\tinput: SubscribeCheckpointsRequest,\n\t\toptions?: RpcOptions,\n\t): ServerStreamingCall<SubscribeCheckpointsRequest, SubscribeCheckpointsResponse>;\n}\n/**\n * @generated from protobuf service sui.rpc.v2.SubscriptionService\n */\nexport class SubscriptionServiceClient implements ISubscriptionServiceClient, ServiceInfo {\n\ttypeName = SubscriptionService.typeName;\n\tmethods = SubscriptionService.methods;\n\toptions = SubscriptionService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * Subscribe to the stream of checkpoints.\n\t *\n\t * This API provides a subscription to the checkpoint stream for the Sui\n\t * blockchain. When a subscription is initialized the stream will begin with\n\t * the latest executed checkpoint as seen by the server. Responses are\n\t * guaranteed to return checkpoints in-order and without gaps. This enables\n\t * clients to know exactly the last checkpoint they have processed and in the\n\t * event the subscription terminates (either by the client/server or by the\n\t * connection breaking), clients will be able to reinitialize a subscription\n\t * and then leverage other APIs in order to request data for the checkpoints\n\t * they missed.\n\t *\n\t * @generated from protobuf rpc: SubscribeCheckpoints(sui.rpc.v2.SubscribeCheckpointsRequest) returns (stream sui.rpc.v2.SubscribeCheckpointsResponse);\n\t */\n\tsubscribeCheckpoints(\n\t\tinput: SubscribeCheckpointsRequest,\n\t\toptions?: RpcOptions,\n\t): ServerStreamingCall<SubscribeCheckpointsRequest, SubscribeCheckpointsResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<SubscribeCheckpointsRequest, SubscribeCheckpointsResponse>(\n\t\t\t'serverStreaming',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/name_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\nimport { Timestamp } from '../../../google/protobuf/timestamp.js';\n/**\n * @generated from protobuf message sui.rpc.v2.LookupNameRequest\n */\nexport interface LookupNameRequest {\n\t/**\n\t * Required. The SuiNS name to lookup.\n\t *\n\t * Supports both `@name` as well as `name.sui` formats.\n\t *\n\t * @generated from protobuf field: optional string name = 1;\n\t */\n\tname?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.LookupNameResponse\n */\nexport interface LookupNameResponse {\n\t/**\n\t * The record for the requested name\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.NameRecord record = 1;\n\t */\n\trecord?: NameRecord;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ReverseLookupNameRequest\n */\nexport interface ReverseLookupNameRequest {\n\t/**\n\t * Required. The address to perform a reverse lookup for.\n\t *\n\t * @generated from protobuf field: optional string address = 1;\n\t */\n\taddress?: string;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.ReverseLookupNameResponse\n */\nexport interface ReverseLookupNameResponse {\n\t/**\n\t * The record for the SuiNS name linked to the requested address\n\t *\n\t * @generated from protobuf field: optional sui.rpc.v2.NameRecord record = 1;\n\t */\n\trecord?: NameRecord;\n}\n/**\n * @generated from protobuf message sui.rpc.v2.NameRecord\n */\nexport interface NameRecord {\n\t/**\n\t * Id of this record.\n\t *\n\t * Note that records are stored on chain as dynamic fields of the type\n\t * `Field<Domain,NameRecord>`.\n\t *\n\t * @generated from protobuf field: optional string id = 1;\n\t */\n\tid?: string;\n\t/**\n\t * The SuiNS name of this record\n\t *\n\t * @generated from protobuf field: optional string name = 2;\n\t */\n\tname?: string;\n\t/**\n\t * The ID of the `RegistrationNFT` assigned to this record.\n\t *\n\t * The owner of the corresponding `RegistrationNFT` has the rights to\n\t * be able to change and adjust the `target_address` of this domain.\n\t *\n\t * It is possible that the ID changes if the record expires and is\n\t * purchased by someone else.\n\t *\n\t * @generated from protobuf field: optional string registration_nft_id = 3;\n\t */\n\tregistrationNftId?: string;\n\t/**\n\t * Timestamp when the record expires.\n\t *\n\t * This is either the expiration of the record itself or the expiration of\n\t * this record's parent if this is a leaf record.\n\t *\n\t * @generated from protobuf field: optional google.protobuf.Timestamp expiration_timestamp = 4;\n\t */\n\texpirationTimestamp?: Timestamp;\n\t/**\n\t * The target address that this name points to\n\t *\n\t * @generated from protobuf field: optional string target_address = 5;\n\t */\n\ttargetAddress?: string;\n\t/**\n\t * Additional data which may be stored in a record\n\t *\n\t * @generated from protobuf field: map<string, string> data = 6;\n\t */\n\tdata: {\n\t\t[key: string]: string;\n\t};\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass LookupNameRequest$Type extends MessageType<LookupNameRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.LookupNameRequest', [\n\t\t\t{ no: 1, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.LookupNameRequest\n */\nexport const LookupNameRequest = new LookupNameRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass LookupNameResponse$Type extends MessageType<LookupNameResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.LookupNameResponse', [\n\t\t\t{ no: 1, name: 'record', kind: 'message', T: () => NameRecord },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.LookupNameResponse\n */\nexport const LookupNameResponse = new LookupNameResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ReverseLookupNameRequest$Type extends MessageType<ReverseLookupNameRequest> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ReverseLookupNameRequest', [\n\t\t\t{ no: 1, name: 'address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ReverseLookupNameRequest\n */\nexport const ReverseLookupNameRequest = new ReverseLookupNameRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ReverseLookupNameResponse$Type extends MessageType<ReverseLookupNameResponse> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.ReverseLookupNameResponse', [\n\t\t\t{ no: 1, name: 'record', kind: 'message', T: () => NameRecord },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.ReverseLookupNameResponse\n */\nexport const ReverseLookupNameResponse = new ReverseLookupNameResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass NameRecord$Type extends MessageType<NameRecord> {\n\tconstructor() {\n\t\tsuper('sui.rpc.v2.NameRecord', [\n\t\t\t{ no: 1, name: 'id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 2, name: 'name', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 3, name: 'registration_nft_id', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{ no: 4, name: 'expiration_timestamp', kind: 'message', T: () => Timestamp },\n\t\t\t{ no: 5, name: 'target_address', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },\n\t\t\t{\n\t\t\t\tno: 6,\n\t\t\t\tname: 'data',\n\t\t\t\tkind: 'map',\n\t\t\t\tK: 9 /*ScalarType.STRING*/,\n\t\t\t\tV: { kind: 'scalar', T: 9 /*ScalarType.STRING*/ },\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.rpc.v2.NameRecord\n */\nexport const NameRecord = new NameRecord$Type();\n/**\n * @generated ServiceType for protobuf service sui.rpc.v2.NameService\n */\nexport const NameService = new ServiceType('sui.rpc.v2.NameService', [\n\t{ name: 'LookupName', options: {}, I: LookupNameRequest, O: LookupNameResponse },\n\t{\n\t\tname: 'ReverseLookupName',\n\t\toptions: {},\n\t\tI: ReverseLookupNameRequest,\n\t\tO: ReverseLookupNameResponse,\n\t},\n]);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/rpc/v2/name_service.proto\" (package \"sui.rpc.v2\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { NameService } from './name_service.js';\nimport type { ReverseLookupNameResponse } from './name_service.js';\nimport type { ReverseLookupNameRequest } from './name_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { LookupNameResponse } from './name_service.js';\nimport type { LookupNameRequest } from './name_service.js';\nimport type { UnaryCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * @generated from protobuf service sui.rpc.v2.NameService\n */\nexport interface INameServiceClient {\n\t/**\n\t * @generated from protobuf rpc: LookupName(sui.rpc.v2.LookupNameRequest) returns (sui.rpc.v2.LookupNameResponse);\n\t */\n\tlookupName(\n\t\tinput: LookupNameRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<LookupNameRequest, LookupNameResponse>;\n\t/**\n\t * @generated from protobuf rpc: ReverseLookupName(sui.rpc.v2.ReverseLookupNameRequest) returns (sui.rpc.v2.ReverseLookupNameResponse);\n\t */\n\treverseLookupName(\n\t\tinput: ReverseLookupNameRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ReverseLookupNameRequest, ReverseLookupNameResponse>;\n}\n/**\n * @generated from protobuf service sui.rpc.v2.NameService\n */\nexport class NameServiceClient implements INameServiceClient, ServiceInfo {\n\ttypeName = NameService.typeName;\n\tmethods = NameService.methods;\n\toptions = NameService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * @generated from protobuf rpc: LookupName(sui.rpc.v2.LookupNameRequest) returns (sui.rpc.v2.LookupNameResponse);\n\t */\n\tlookupName(\n\t\tinput: LookupNameRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<LookupNameRequest, LookupNameResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<LookupNameRequest, LookupNameResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * @generated from protobuf rpc: ReverseLookupName(sui.rpc.v2.ReverseLookupNameRequest) returns (sui.rpc.v2.ReverseLookupNameResponse);\n\t */\n\treverseLookupName(\n\t\tinput: ReverseLookupNameRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<ReverseLookupNameRequest, ReverseLookupNameResponse> {\n\t\tconst method = this.methods[1],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<ReverseLookupNameRequest, ReverseLookupNameResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/forking/v1alpha/forking_service.proto\" (package \"sui.forking.v1alpha\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport { ServiceType } from '@protobuf-ts/runtime-rpc';\nimport { MessageType } from '@protobuf-ts/runtime';\n/**\n * @generated from protobuf message sui.forking.v1alpha.AdvanceClockRequest\n */\nexport interface AdvanceClockRequest {\n\t/**\n\t * Duration in milliseconds to advance the clock. Defaults to 1 if unset.\n\t *\n\t * @generated from protobuf field: optional uint64 duration_ms = 1;\n\t */\n\tdurationMs?: bigint;\n}\n/**\n * @generated from protobuf message sui.forking.v1alpha.AdvanceClockResponse\n */\nexport interface AdvanceClockResponse {\n\t/**\n\t * Clock timestamp after advancing (milliseconds since Unix epoch).\n\t *\n\t * @generated from protobuf field: uint64 timestamp_ms = 1;\n\t */\n\ttimestampMs: bigint;\n\t/**\n\t * Digest of the ConsensusCommitPrologue transaction that advanced the clock.\n\t *\n\t * @generated from protobuf field: string tx_digest = 2;\n\t */\n\ttxDigest: string;\n}\n/**\n * @generated from protobuf message sui.forking.v1alpha.AdvanceCheckpointRequest\n */\nexport interface AdvanceCheckpointRequest {}\n/**\n * @generated from protobuf message sui.forking.v1alpha.AdvanceCheckpointResponse\n */\nexport interface AdvanceCheckpointResponse {\n\t/**\n\t * Sequence number of the newly created checkpoint.\n\t *\n\t * @generated from protobuf field: uint64 checkpoint_sequence_number = 1;\n\t */\n\tcheckpointSequenceNumber: bigint;\n\t/**\n\t * Timestamp embedded in the checkpoint (milliseconds since Unix epoch).\n\t *\n\t * @generated from protobuf field: uint64 timestamp_ms = 2;\n\t */\n\ttimestampMs: bigint;\n}\n/**\n * @generated from protobuf message sui.forking.v1alpha.GetStatusRequest\n */\nexport interface GetStatusRequest {}\n/**\n * @generated from protobuf message sui.forking.v1alpha.GetStatusResponse\n */\nexport interface GetStatusResponse {\n\t/**\n\t * Current epoch of the forked network.\n\t *\n\t * @generated from protobuf field: uint64 epoch = 1;\n\t */\n\tepoch: bigint;\n\t/**\n\t * Latest checkpoint sequence number.\n\t *\n\t * @generated from protobuf field: uint64 checkpoint_sequence_number = 2;\n\t */\n\tcheckpointSequenceNumber: bigint;\n\t/**\n\t * Current clock timestamp (milliseconds since Unix epoch).\n\t *\n\t * @generated from protobuf field: uint64 timestamp_ms = 3;\n\t */\n\ttimestampMs: bigint;\n\t/**\n\t * The upstream checkpoint at which the fork was created.\n\t *\n\t * @generated from protobuf field: uint64 forked_at_checkpoint = 4;\n\t */\n\tforkedAtCheckpoint: bigint;\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass AdvanceClockRequest$Type extends MessageType<AdvanceClockRequest> {\n\tconstructor() {\n\t\tsuper('sui.forking.v1alpha.AdvanceClockRequest', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'duration_ms',\n\t\t\t\tkind: 'scalar',\n\t\t\t\topt: true,\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.forking.v1alpha.AdvanceClockRequest\n */\nexport const AdvanceClockRequest = new AdvanceClockRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AdvanceClockResponse$Type extends MessageType<AdvanceClockResponse> {\n\tconstructor() {\n\t\tsuper('sui.forking.v1alpha.AdvanceClockResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'timestamp_ms',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{ no: 2, name: 'tx_digest', kind: 'scalar', T: 9 /*ScalarType.STRING*/ },\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.forking.v1alpha.AdvanceClockResponse\n */\nexport const AdvanceClockResponse = new AdvanceClockResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AdvanceCheckpointRequest$Type extends MessageType<AdvanceCheckpointRequest> {\n\tconstructor() {\n\t\tsuper('sui.forking.v1alpha.AdvanceCheckpointRequest', []);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.forking.v1alpha.AdvanceCheckpointRequest\n */\nexport const AdvanceCheckpointRequest = new AdvanceCheckpointRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AdvanceCheckpointResponse$Type extends MessageType<AdvanceCheckpointResponse> {\n\tconstructor() {\n\t\tsuper('sui.forking.v1alpha.AdvanceCheckpointResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'checkpoint_sequence_number',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'timestamp_ms',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.forking.v1alpha.AdvanceCheckpointResponse\n */\nexport const AdvanceCheckpointResponse = new AdvanceCheckpointResponse$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetStatusRequest$Type extends MessageType<GetStatusRequest> {\n\tconstructor() {\n\t\tsuper('sui.forking.v1alpha.GetStatusRequest', []);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.forking.v1alpha.GetStatusRequest\n */\nexport const GetStatusRequest = new GetStatusRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetStatusResponse$Type extends MessageType<GetStatusResponse> {\n\tconstructor() {\n\t\tsuper('sui.forking.v1alpha.GetStatusResponse', [\n\t\t\t{\n\t\t\t\tno: 1,\n\t\t\t\tname: 'epoch',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 2,\n\t\t\t\tname: 'checkpoint_sequence_number',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 3,\n\t\t\t\tname: 'timestamp_ms',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t\t{\n\t\t\t\tno: 4,\n\t\t\t\tname: 'forked_at_checkpoint',\n\t\t\t\tkind: 'scalar',\n\t\t\t\tT: 4 /*ScalarType.UINT64*/,\n\t\t\t\tL: 0 /*LongType.BIGINT*/,\n\t\t\t},\n\t\t]);\n\t}\n}\n/**\n * @generated MessageType for protobuf message sui.forking.v1alpha.GetStatusResponse\n */\nexport const GetStatusResponse = new GetStatusResponse$Type();\n/**\n * @generated ServiceType for protobuf service sui.forking.v1alpha.ForkingService\n */\nexport const ForkingService = new ServiceType('sui.forking.v1alpha.ForkingService', [\n\t{ name: 'AdvanceClock', options: {}, I: AdvanceClockRequest, O: AdvanceClockResponse },\n\t{\n\t\tname: 'AdvanceCheckpoint',\n\t\toptions: {},\n\t\tI: AdvanceCheckpointRequest,\n\t\tO: AdvanceCheckpointResponse,\n\t},\n\t{ name: 'GetStatus', options: {}, I: GetStatusRequest, O: GetStatusResponse },\n]);\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck\n// @generated from protobuf file \"sui/forking/v1alpha/forking_service.proto\" (package \"sui.forking.v1alpha\", syntax proto3)\n// tslint:disable\n// @ts-nocheck\n//\n// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n//\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport type { ServiceInfo } from '@protobuf-ts/runtime-rpc';\nimport { ForkingService } from './forking_service.js';\nimport type { GetStatusResponse } from './forking_service.js';\nimport type { GetStatusRequest } from './forking_service.js';\nimport type { AdvanceCheckpointResponse } from './forking_service.js';\nimport type { AdvanceCheckpointRequest } from './forking_service.js';\nimport { stackIntercept } from '@protobuf-ts/runtime-rpc';\nimport type { AdvanceClockResponse } from './forking_service.js';\nimport type { AdvanceClockRequest } from './forking_service.js';\nimport type { UnaryCall } from '@protobuf-ts/runtime-rpc';\nimport type { RpcOptions } from '@protobuf-ts/runtime-rpc';\n/**\n * Administrative service for controlling a forked Sui network.\n *\n * @generated from protobuf service sui.forking.v1alpha.ForkingService\n */\nexport interface IForkingServiceClient {\n\t/**\n\t * Advance the forked network's clock by a given duration.\n\t *\n\t * @generated from protobuf rpc: AdvanceClock(sui.forking.v1alpha.AdvanceClockRequest) returns (sui.forking.v1alpha.AdvanceClockResponse);\n\t */\n\tadvanceClock(\n\t\tinput: AdvanceClockRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<AdvanceClockRequest, AdvanceClockResponse>;\n\t/**\n\t * Seal pending transactions into a new checkpoint.\n\t *\n\t * @generated from protobuf rpc: AdvanceCheckpoint(sui.forking.v1alpha.AdvanceCheckpointRequest) returns (sui.forking.v1alpha.AdvanceCheckpointResponse);\n\t */\n\tadvanceCheckpoint(\n\t\tinput: AdvanceCheckpointRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<AdvanceCheckpointRequest, AdvanceCheckpointResponse>;\n\t/**\n\t * Return the current state of the forked network.\n\t *\n\t * @generated from protobuf rpc: GetStatus(sui.forking.v1alpha.GetStatusRequest) returns (sui.forking.v1alpha.GetStatusResponse);\n\t */\n\tgetStatus(\n\t\tinput: GetStatusRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetStatusRequest, GetStatusResponse>;\n}\n/**\n * Administrative service for controlling a forked Sui network.\n *\n * @generated from protobuf service sui.forking.v1alpha.ForkingService\n */\nexport class ForkingServiceClient implements IForkingServiceClient, ServiceInfo {\n\ttypeName = ForkingService.typeName;\n\tmethods = ForkingService.methods;\n\toptions = ForkingService.options;\n\tconstructor(private readonly _transport: RpcTransport) {}\n\t/**\n\t * Advance the forked network's clock by a given duration.\n\t *\n\t * @generated from protobuf rpc: AdvanceClock(sui.forking.v1alpha.AdvanceClockRequest) returns (sui.forking.v1alpha.AdvanceClockResponse);\n\t */\n\tadvanceClock(\n\t\tinput: AdvanceClockRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<AdvanceClockRequest, AdvanceClockResponse> {\n\t\tconst method = this.methods[0],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<AdvanceClockRequest, AdvanceClockResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * Seal pending transactions into a new checkpoint.\n\t *\n\t * @generated from protobuf rpc: AdvanceCheckpoint(sui.forking.v1alpha.AdvanceCheckpointRequest) returns (sui.forking.v1alpha.AdvanceCheckpointResponse);\n\t */\n\tadvanceCheckpoint(\n\t\tinput: AdvanceCheckpointRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<AdvanceCheckpointRequest, AdvanceCheckpointResponse> {\n\t\tconst method = this.methods[1],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<AdvanceCheckpointRequest, AdvanceCheckpointResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n\t/**\n\t * Return the current state of the forked network.\n\t *\n\t * @generated from protobuf rpc: GetStatus(sui.forking.v1alpha.GetStatusRequest) returns (sui.forking.v1alpha.GetStatusResponse);\n\t */\n\tgetStatus(\n\t\tinput: GetStatusRequest,\n\t\toptions?: RpcOptions,\n\t): UnaryCall<GetStatusRequest, GetStatusResponse> {\n\t\tconst method = this.methods[2],\n\t\t\topt = this._transport.mergeOptions(options);\n\t\treturn stackIntercept<GetStatusRequest, GetStatusResponse>(\n\t\t\t'unary',\n\t\t\tthis._transport,\n\t\t\tmethod,\n\t\t\topt,\n\t\t\tinput,\n\t\t);\n\t}\n}\n","// Copyright 2016 gRPC authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * See [grpc status_code_enum.h](https://github.com/grpc/grpc/blob/a19d8dcfb50caa81cddc25bc1a6afdd7a2f497b7/include/grpcpp/impl/codegen/status_code_enum.h#L24)\n *\n * Copyright 2020 Google LLC\n */\nexport var GrpcStatusCode;\n(function (GrpcStatusCode) {\n /**\n * Not an error; returned on success.\n */\n GrpcStatusCode[GrpcStatusCode[\"OK\"] = 0] = \"OK\";\n /**\n * The operation was cancelled (typically by the caller).\n */\n GrpcStatusCode[GrpcStatusCode[\"CANCELLED\"] = 1] = \"CANCELLED\";\n /**\n * Unknown error. An example of where this error may be returned is if a\n * Status value received from another address space belongs to an error-space\n * that is not known in this address space. Also errors raised by APIs that\n * do not return enough error information may be converted to this error.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNKNOWN\"] = 2] = \"UNKNOWN\";\n /**\n * Client specified an invalid argument. Note that this differs from\n * FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are\n * problematic regardless of the state of the system (e.g., a malformed file\n * name).\n */\n GrpcStatusCode[GrpcStatusCode[\"INVALID_ARGUMENT\"] = 3] = \"INVALID_ARGUMENT\";\n /**\n * Deadline expired before operation could complete. For operations that\n * change the state of the system, this error may be returned even if the\n * operation has completed successfully. For example, a successful response\n * from a server could have been delayed long enough for the deadline to\n * expire.\n */\n GrpcStatusCode[GrpcStatusCode[\"DEADLINE_EXCEEDED\"] = 4] = \"DEADLINE_EXCEEDED\";\n /**\n * Some requested entity (e.g., file or directory) was not found.\n */\n GrpcStatusCode[GrpcStatusCode[\"NOT_FOUND\"] = 5] = \"NOT_FOUND\";\n /**\n * Some entity that we attempted to create (e.g., file or directory) already\n * exists.\n */\n GrpcStatusCode[GrpcStatusCode[\"ALREADY_EXISTS\"] = 6] = \"ALREADY_EXISTS\";\n /**\n * The caller does not have permission to execute the specified operation.\n * PERMISSION_DENIED must not be used for rejections caused by exhausting\n * some resource (use RESOURCE_EXHAUSTED instead for those errors).\n * PERMISSION_DENIED must not be used if the caller can not be identified\n * (use UNAUTHENTICATED instead for those errors).\n */\n GrpcStatusCode[GrpcStatusCode[\"PERMISSION_DENIED\"] = 7] = \"PERMISSION_DENIED\";\n /**\n * The request does not have valid authentication credentials for the\n * operation.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNAUTHENTICATED\"] = 16] = \"UNAUTHENTICATED\";\n /**\n * Some resource has been exhausted, perhaps a per-user quota, or perhaps the\n * entire file system is out of space.\n */\n GrpcStatusCode[GrpcStatusCode[\"RESOURCE_EXHAUSTED\"] = 8] = \"RESOURCE_EXHAUSTED\";\n /**\n * Operation was rejected because the system is not in a state required for\n * the operations execution. For example, directory to be deleted may be\n * non-empty, an rmdir operation is applied to a non-directory, etc.\n *\n * A litmus test that may help a service implementor in deciding\n * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE:\n * (a) Use UNAVAILABLE if the client can retry just the failing call.\n * (b) Use ABORTED if the client should retry at a higher-level\n * (e.g., restarting a read-modify-write sequence).\n * (c) Use FAILED_PRECONDITION if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, FAILED_PRECONDITION\n * should be returned since the client should not retry unless\n * they have first fixed up the directory by deleting files from it.\n * (d) Use FAILED_PRECONDITION if the client performs conditional\n * REST Get/Update/Delete on a resource and the resource on the\n * server does not match the condition. E.g., conflicting\n * read-modify-write on the same resource.\n */\n GrpcStatusCode[GrpcStatusCode[\"FAILED_PRECONDITION\"] = 9] = \"FAILED_PRECONDITION\";\n /**\n * The operation was aborted, typically due to a concurrency issue like\n * sequencer check failures, transaction aborts, etc.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n GrpcStatusCode[GrpcStatusCode[\"ABORTED\"] = 10] = \"ABORTED\";\n /**\n * Operation was attempted past the valid range. E.g., seeking or reading\n * past end of file.\n *\n * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed\n * if the system state changes. For example, a 32-bit file system will\n * generate INVALID_ARGUMENT if asked to read at an offset that is not in the\n * range [0,2^32-1], but it will generate OUT_OF_RANGE if asked to read from\n * an offset past the current file size.\n *\n * There is a fair bit of overlap between FAILED_PRECONDITION and\n * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific error)\n * when it applies so that callers who are iterating through a space can\n * easily look for an OUT_OF_RANGE error to detect when they are done.\n */\n GrpcStatusCode[GrpcStatusCode[\"OUT_OF_RANGE\"] = 11] = \"OUT_OF_RANGE\";\n /**\n * Operation is not implemented or not supported/enabled in this service.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNIMPLEMENTED\"] = 12] = \"UNIMPLEMENTED\";\n /**\n * Internal errors. Means some invariants expected by underlying System has\n * been broken. If you see one of these errors, Something is very broken.\n */\n GrpcStatusCode[GrpcStatusCode[\"INTERNAL\"] = 13] = \"INTERNAL\";\n /**\n * The service is currently unavailable. This is a most likely a transient\n * condition and may be corrected by retrying with a backoff.\n *\n * See litmus test above for deciding between FAILED_PRECONDITION, ABORTED,\n * and UNAVAILABLE.\n */\n GrpcStatusCode[GrpcStatusCode[\"UNAVAILABLE\"] = 14] = \"UNAVAILABLE\";\n /**\n * Unrecoverable data loss or corruption.\n */\n GrpcStatusCode[GrpcStatusCode[\"DATA_LOSS\"] = 15] = \"DATA_LOSS\";\n})(GrpcStatusCode || (GrpcStatusCode = {}));\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { base64decode, base64encode } from \"@protobuf-ts/runtime\";\nimport { RpcError } from \"@protobuf-ts/runtime-rpc\";\nimport { GrpcStatusCode } from \"./goog-grpc-status-code\";\n/**\n * Create fetch API headers for a grpc-web request.\n */\nexport function createGrpcWebRequestHeader(headers, format, timeout, meta, userAgent) {\n // add meta as headers\n if (meta) {\n for (let [k, v] of Object.entries(meta)) {\n if (typeof v == \"string\")\n headers.append(k, v);\n else\n for (let i of v)\n headers.append(k, i);\n }\n }\n // set standard headers (possibly overwriting meta)\n headers.set('Content-Type', format === \"text\" ? \"application/grpc-web-text\" : \"application/grpc-web+proto\");\n if (format == \"text\") {\n // The client library should indicate to the server via the \"Accept\" header that\n // the response stream needs to be text encoded e.g. when XHR is used or due to\n // security policies with XHR\n headers.set(\"Accept\", \"application/grpc-web-text\");\n }\n headers.set('X-Grpc-Web', \"1\");\n if (userAgent)\n headers.set(\"X-User-Agent\", userAgent);\n if (typeof timeout === \"number\") {\n if (timeout <= 0) {\n // we raise an error ourselves because header \"grpc-timeout\" must be a positive integer\n throw new RpcError(`timeout ${timeout} ms exceeded`, GrpcStatusCode[GrpcStatusCode.DEADLINE_EXCEEDED]);\n }\n headers.set('grpc-timeout', `${timeout}m`);\n }\n else if (timeout) {\n const deadline = timeout.getTime();\n const now = Date.now();\n if (deadline <= now) {\n // we raise an error ourselves because header \"grpc-timeout\" must be a positive integer\n throw new RpcError(`deadline ${timeout} exceeded`, GrpcStatusCode[GrpcStatusCode.DEADLINE_EXCEEDED]);\n }\n headers.set('grpc-timeout', `${deadline - now}m`);\n }\n return headers;\n}\nexport function createGrpcWebRequestBody(message, format) {\n let body = new Uint8Array(5 + message.length); // we need 5 bytes for frame type + message length\n body[0] = GrpcWebFrame.DATA; // first byte is frame type\n // 4 bytes message length\n for (let msgLen = message.length, i = 4; i > 0; i--) {\n body[i] = (msgLen % 256);\n msgLen >>>= 8;\n }\n body.set(message, 5); // reset is message\n return format === \"binary\" ? body : base64encode(body);\n}\nexport function readGrpcWebResponseHeader(headersOrFetchResponse, httpStatus, httpStatusText) {\n if (arguments.length === 1) {\n let fetchResponse = headersOrFetchResponse;\n // Cloudflare Workers throw when the type property of a fetch response\n // is accessed, so wrap access with try/catch. See:\n // * https://developers.cloudflare.com/workers/runtime-apis/response/#properties\n // * https://github.com/cloudflare/miniflare/blob/72f046e/packages/core/src/standards/http.ts#L646\n let responseType;\n try {\n responseType = fetchResponse.type;\n }\n catch (_a) { }\n switch (responseType) {\n case \"error\":\n case \"opaque\":\n case \"opaqueredirect\":\n // see https://developer.mozilla.org/en-US/docs/Web/API/Response/type\n throw new RpcError(`fetch response type ${fetchResponse.type}`, GrpcStatusCode[GrpcStatusCode.UNKNOWN]);\n }\n return readGrpcWebResponseHeader(fetchHeadersToHttp(fetchResponse.headers), fetchResponse.status, fetchResponse.statusText);\n }\n let headers = headersOrFetchResponse, httpOk = httpStatus >= 200 && httpStatus < 300, responseMeta = parseMetadata(headers), [statusCode, statusDetail] = parseStatus(headers);\n if ((statusCode === undefined || statusCode === GrpcStatusCode.OK) && !httpOk) {\n statusCode = httpStatusToGrpc(httpStatus);\n statusDetail = httpStatusText;\n }\n return [statusCode, statusDetail, responseMeta];\n}\n/**\n * Parses a grpc status (code and optional text) and meta data from response\n * trailers.\n *\n * Response trailers are expected as a byte array, but are actually just an\n * ASCII string with HTTP headers. Just pass the data of a grpc-web trailer\n * frame.\n */\nexport function readGrpcWebResponseTrailer(data) {\n let headers = parseTrailer(data), [code, detail] = parseStatus(headers), meta = parseMetadata(headers);\n return [code !== null && code !== void 0 ? code : GrpcStatusCode.OK, detail, meta];\n}\n/**\n * A grpc-frame type. Can be used to determine type of frame emitted by\n * `readGrpcWebResponseBody()`.\n */\nexport var GrpcWebFrame;\n(function (GrpcWebFrame) {\n GrpcWebFrame[GrpcWebFrame[\"DATA\"] = 0] = \"DATA\";\n GrpcWebFrame[GrpcWebFrame[\"TRAILER\"] = 128] = \"TRAILER\";\n})(GrpcWebFrame || (GrpcWebFrame = {}));\n/**\n * Parses a grpc-web response (unary or server streaming) from a fetch API\n * stream.\n *\n * Emits grpc-web frames.\n *\n * The returned promise resolves when the response is complete.\n */\nexport function readGrpcWebResponseBody(stream, contentType, onFrame) {\n return __awaiter(this, void 0, void 0, function* () {\n let streamReader, base64queue = \"\", byteQueue = new Uint8Array(0), format = parseFormat(contentType);\n // allows to read streams from the 'node-fetch' polyfill which uses\n // node.js ReadableStream instead of the what-wg streams api ReadableStream\n if (isReadableStream(stream)) {\n let whatWgReadableStream = stream.getReader();\n streamReader = {\n next: () => whatWgReadableStream.read()\n };\n }\n else {\n streamReader = stream[Symbol.asyncIterator]();\n }\n while (true) {\n let result = yield streamReader.next();\n if (result.value !== undefined) {\n if (format === \"text\") {\n // the statements below just decode base64 and append to `bytesUnread`\n // add incoming base64 to queue\n for (let i = 0; i < result.value.length; i++)\n base64queue += String.fromCharCode(result.value[i]);\n // if the base64 queue is not a multiple of 4,\n // we have to wait for more data\n let safeLen = base64queue.length - base64queue.length % 4;\n if (safeLen === 0)\n continue;\n // decode safe chunk of base64 and add to byte queue\n byteQueue = concatBytes(byteQueue, base64decode(base64queue.substring(0, safeLen)));\n base64queue = base64queue.substring(safeLen);\n }\n else {\n byteQueue = concatBytes(byteQueue, result.value);\n }\n // read all fully available data frames\n while (byteQueue.length >= 5 && byteQueue[0] === GrpcWebFrame.DATA) {\n let msgLen = 0;\n for (let i = 1; i < 5; i++)\n msgLen = (msgLen << 8) + byteQueue[i];\n if (byteQueue.length - 5 >= msgLen) {\n // we have the entire message\n onFrame(GrpcWebFrame.DATA, byteQueue.subarray(5, 5 + msgLen));\n byteQueue = byteQueue.subarray(5 + msgLen);\n }\n else\n break; // wait for more data\n }\n }\n // exit, but emit trailer if exists\n if (result.done) {\n if (byteQueue.length === 0)\n break;\n if (byteQueue[0] !== GrpcWebFrame.TRAILER || byteQueue.length < 5)\n throw new RpcError(\"premature EOF\", GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n onFrame(GrpcWebFrame.TRAILER, byteQueue.subarray(5));\n break;\n }\n }\n });\n}\n// internal\nconst isReadableStream = (s) => {\n return typeof s.getReader == \"function\";\n};\n// internal\nfunction concatBytes(a, b) {\n let n = new Uint8Array(a.length + b.length);\n n.set(a);\n n.set(b, a.length);\n return n;\n}\n// determines format from response \"content-type\" value.\n// throws if value is unknown or missing.\nfunction parseFormat(contentType) {\n // > the sender *should* always specify the message format, e.g. +proto, +json\n //\n // > the receiver should assume the default is \"+proto\" when the message format is\n // > missing in Content-Type (as \"application/grpc-web\")\n //\n // see https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-WEB.md\n switch (contentType) {\n case \"application/grpc-web-text\":\n case \"application/grpc-web-text+proto\":\n return \"text\";\n case \"application/grpc-web\":\n case \"application/grpc-web+proto\":\n return \"binary\";\n case undefined:\n case null:\n throw new RpcError(\"missing response content type\", GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n default:\n throw new RpcError(\"unexpected response content type: \" + contentType, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n }\n}\n// returns error code on parse failure\nfunction parseStatus(headers) {\n let code, message;\n let m = headers['grpc-message'];\n if (m !== undefined) {\n if (Array.isArray(m))\n return [GrpcStatusCode.INTERNAL, \"invalid grpc-web message\"];\n message = m;\n }\n let s = headers['grpc-status'];\n if (s !== undefined) {\n if (Array.isArray(s))\n return [GrpcStatusCode.INTERNAL, \"invalid grpc-web status\"];\n code = parseInt(s, 10);\n if (GrpcStatusCode[code] === undefined)\n return [GrpcStatusCode.INTERNAL, \"invalid grpc-web status\"];\n }\n return [code, message];\n}\n// skips grpc-web headers\nfunction parseMetadata(headers) {\n let meta = {};\n for (let [k, v] of Object.entries(headers))\n switch (k) {\n case 'grpc-message':\n case 'grpc-status':\n case 'content-type':\n break;\n default:\n meta[k] = v;\n }\n return meta;\n}\n// parse trailer data (ASCII) to our headers rep\nfunction parseTrailer(trailerData) {\n let headers = {};\n for (let chunk of String.fromCharCode.apply(String, trailerData).trim().split(\"\\r\\n\")) {\n if (chunk == \"\")\n continue;\n let [key, ...val] = chunk.split(\":\");\n const value = val.join(\":\").trim();\n key = key.trim();\n let e = headers[key];\n if (typeof e == \"string\")\n headers[key] = [e, value];\n else if (Array.isArray(e))\n e.push(value);\n else\n headers[key] = value;\n }\n return headers;\n}\n// fetch API to our headers rep\nfunction fetchHeadersToHttp(fetchHeaders) {\n let headers = {};\n fetchHeaders.forEach((value, key) => {\n let e = headers[key];\n if (typeof e == \"string\")\n headers[key] = [e, value];\n else if (Array.isArray(e))\n e.push(value);\n else\n headers[key] = value;\n });\n return headers;\n}\n// internal\nfunction httpStatusToGrpc(httpStatus) {\n switch (httpStatus) {\n case 200:\n return GrpcStatusCode.OK;\n case 400:\n return GrpcStatusCode.INVALID_ARGUMENT;\n case 401:\n return GrpcStatusCode.UNAUTHENTICATED;\n case 403:\n return GrpcStatusCode.PERMISSION_DENIED;\n case 404:\n return GrpcStatusCode.NOT_FOUND;\n case 409:\n return GrpcStatusCode.ABORTED;\n case 412:\n return GrpcStatusCode.FAILED_PRECONDITION;\n case 429:\n return GrpcStatusCode.RESOURCE_EXHAUSTED;\n case 499:\n return GrpcStatusCode.CANCELLED;\n case 500:\n return GrpcStatusCode.UNKNOWN;\n case 501:\n return GrpcStatusCode.UNIMPLEMENTED;\n case 503:\n return GrpcStatusCode.UNAVAILABLE;\n case 504:\n return GrpcStatusCode.DEADLINE_EXCEEDED;\n default:\n return GrpcStatusCode.UNKNOWN;\n }\n}\n","import { Deferred, RpcError, RpcOutputStreamController, ServerStreamingCall, UnaryCall, mergeRpcOptions } from \"@protobuf-ts/runtime-rpc\";\nimport { GrpcWebFrame, createGrpcWebRequestBody, createGrpcWebRequestHeader, readGrpcWebResponseBody, readGrpcWebResponseHeader, readGrpcWebResponseTrailer } from \"./grpc-web-format\";\nimport { GrpcStatusCode } from \"./goog-grpc-status-code\";\n/**\n * Implements the grpc-web protocol, supporting text format or binary\n * format on the wire. Uses the fetch API to do the HTTP requests.\n *\n * Does not support client streaming or duplex calls because grpc-web\n * does not support them.\n */\nexport class GrpcWebFetchTransport {\n constructor(defaultOptions) {\n this.defaultOptions = defaultOptions;\n }\n mergeOptions(options) {\n return mergeRpcOptions(this.defaultOptions, options);\n }\n /**\n * Create an URI for a gRPC web call.\n *\n * Takes the `baseUrl` option and appends:\n * - slash \"/\"\n * - package name\n * - dot \".\"\n * - service name\n * - slash \"/\"\n * - method name\n *\n * If the service was declared without a package, the package name and dot\n * are omitted.\n *\n * All names are used exactly like declared in .proto.\n */\n makeUrl(method, options) {\n let base = options.baseUrl;\n if (base.endsWith('/'))\n base = base.substring(0, base.length - 1);\n return `${base}/${method.service.typeName}/${method.name}`;\n }\n clientStreaming(method /*, options: RpcOptions*/) {\n const e = new RpcError('Client streaming is not supported by grpc-web', GrpcStatusCode[GrpcStatusCode.UNIMPLEMENTED]);\n e.methodName = method.name;\n e.serviceName = method.service.typeName;\n throw e;\n }\n duplex(method /*, options: RpcOptions*/) {\n const e = new RpcError('Duplex streaming is not supported by grpc-web', GrpcStatusCode[GrpcStatusCode.UNIMPLEMENTED]);\n e.methodName = method.name;\n e.serviceName = method.service.typeName;\n throw e;\n }\n serverStreaming(method, input, options) {\n var _a, _b, _c, _d, _e;\n let opt = options, format = (_a = opt.format) !== null && _a !== void 0 ? _a : 'text', fetch = (_b = opt.fetch) !== null && _b !== void 0 ? _b : globalThis.fetch, fetchInit = (_c = opt.fetchInit) !== null && _c !== void 0 ? _c : {}, url = this.makeUrl(method, opt), inputBytes = method.I.toBinary(input, opt.binaryOptions), defHeader = new Deferred(), responseStream = new RpcOutputStreamController(), responseEmptyBody = true, maybeStatus, defStatus = new Deferred(), maybeTrailer, defTrailer = new Deferred();\n fetch(url, Object.assign(Object.assign({}, fetchInit), { method: 'POST', headers: createGrpcWebRequestHeader(new globalThis.Headers(), format, opt.timeout, opt.meta), body: createGrpcWebRequestBody(inputBytes, format), signal: (_d = options.abort) !== null && _d !== void 0 ? _d : null // node-fetch@3.0.0-beta.9 rejects `undefined`\n }))\n .then(fetchResponse => {\n let [code, detail, meta] = readGrpcWebResponseHeader(fetchResponse);\n defHeader.resolve(meta);\n if (code != null && code !== GrpcStatusCode.OK)\n throw new RpcError(detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code], GrpcStatusCode[code], meta);\n if (code != null)\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n return fetchResponse;\n })\n .then(fetchResponse => {\n if (!fetchResponse.body)\n throw new RpcError('missing response body', GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n return readGrpcWebResponseBody(fetchResponse.body, fetchResponse.headers.get('content-type'), (type, data) => {\n switch (type) {\n case GrpcWebFrame.DATA:\n responseStream.notifyMessage(method.O.fromBinary(data, opt.binaryOptions));\n responseEmptyBody = false;\n break;\n case GrpcWebFrame.TRAILER:\n let code, detail;\n [code, detail, maybeTrailer] = readGrpcWebResponseTrailer(data);\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n break;\n }\n });\n })\n .then(() => {\n if (!maybeTrailer && !responseEmptyBody)\n throw new RpcError(`missing trailers`, GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n // istanbul ignore if - this should be impossible and only here to satisfy TypeScript\n if (!maybeStatus)\n throw new RpcError(`missing status`, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n if (maybeStatus.code !== 'OK')\n throw new RpcError(maybeStatus.detail, maybeStatus.code, maybeTrailer);\n responseStream.notifyComplete();\n defStatus.resolve(maybeStatus);\n defTrailer.resolve(maybeTrailer || {});\n })\n .catch(reason => {\n let error;\n if (reason instanceof RpcError)\n error = reason;\n else if (reason instanceof Error && reason.name === 'AbortError')\n // aborted\n error = new RpcError(reason.message, GrpcStatusCode[GrpcStatusCode.CANCELLED]);\n else\n // RpcErrors are thrown by us, everything else is an internal error\n error = new RpcError(reason instanceof Error ? reason.message : \"\" + reason, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n error.methodName = method.name;\n error.serviceName = method.service.typeName;\n defHeader.rejectPending(error);\n responseStream.notifyError(error);\n defStatus.rejectPending(error);\n defTrailer.rejectPending(error);\n });\n return new ServerStreamingCall(method, (_e = opt.meta) !== null && _e !== void 0 ? _e : {}, input, defHeader.promise, responseStream, defStatus.promise, defTrailer.promise);\n }\n unary(method, input, options) {\n var _a, _b, _c, _d, _e;\n let opt = options, format = (_a = opt.format) !== null && _a !== void 0 ? _a : 'text', fetch = (_b = opt.fetch) !== null && _b !== void 0 ? _b : globalThis.fetch, fetchInit = (_c = opt.fetchInit) !== null && _c !== void 0 ? _c : {}, url = this.makeUrl(method, opt), inputBytes = method.I.toBinary(input, opt.binaryOptions), defHeader = new Deferred(), maybeMessage, defMessage = new Deferred(), maybeStatus, defStatus = new Deferred(), maybeTrailer, defTrailer = new Deferred();\n fetch(url, Object.assign(Object.assign({}, fetchInit), { method: 'POST', headers: createGrpcWebRequestHeader(new globalThis.Headers(), format, opt.timeout, opt.meta), body: createGrpcWebRequestBody(inputBytes, format), signal: (_d = options.abort) !== null && _d !== void 0 ? _d : null // node-fetch@3.0.0-beta.9 rejects `undefined`\n }))\n .then(fetchResponse => {\n let [code, detail, meta] = readGrpcWebResponseHeader(fetchResponse);\n defHeader.resolve(meta);\n if (code != null && code !== GrpcStatusCode.OK)\n throw new RpcError(detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code], GrpcStatusCode[code], meta);\n if (code != null)\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n return fetchResponse;\n })\n .then(fetchResponse => {\n if (!fetchResponse.body)\n throw new RpcError('missing response body', GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n return readGrpcWebResponseBody(fetchResponse.body, fetchResponse.headers.get('content-type'), (type, data) => {\n switch (type) {\n case GrpcWebFrame.DATA:\n if (maybeMessage)\n throw new RpcError(`unary call received 2nd message`, GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n maybeMessage = method.O.fromBinary(data, opt.binaryOptions);\n break;\n case GrpcWebFrame.TRAILER:\n let code, detail;\n [code, detail, maybeTrailer] = readGrpcWebResponseTrailer(data);\n maybeStatus = {\n code: GrpcStatusCode[code],\n detail: detail !== null && detail !== void 0 ? detail : GrpcStatusCode[code]\n };\n break;\n }\n });\n })\n .then(() => {\n if (!maybeTrailer && maybeMessage)\n throw new RpcError(`missing trailers`, GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n // istanbul ignore if - this should be impossible and only here to satisfy TypeScript\n if (!maybeStatus)\n throw new RpcError(`missing status`, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n if (!maybeMessage && maybeStatus.code === 'OK')\n throw new RpcError('expected error status', GrpcStatusCode[GrpcStatusCode.DATA_LOSS]);\n if (!maybeMessage)\n throw new RpcError(maybeStatus.detail, maybeStatus.code, maybeTrailer);\n defMessage.resolve(maybeMessage);\n if (maybeStatus.code !== 'OK')\n throw new RpcError(maybeStatus.detail, maybeStatus.code, maybeTrailer);\n defStatus.resolve(maybeStatus);\n defTrailer.resolve(maybeTrailer || {});\n })\n .catch(reason => {\n let error;\n if (reason instanceof RpcError)\n error = reason;\n else if (reason instanceof Error && reason.name === 'AbortError')\n // aborted\n error = new RpcError(reason.message, GrpcStatusCode[GrpcStatusCode.CANCELLED]);\n else\n // RpcErrors are thrown by us, everything else is an internal error\n error = new RpcError(reason instanceof Error ? reason.message : \"\" + reason, GrpcStatusCode[GrpcStatusCode.INTERNAL]);\n error.methodName = method.name;\n error.serviceName = method.service.typeName;\n defHeader.rejectPending(error);\n defMessage.rejectPending(error);\n defStatus.rejectPending(error);\n defTrailer.rejectPending(error);\n });\n return new UnaryCall(method, (_e = opt.meta) !== null && _e !== void 0 ? _e : {}, input, defHeader.promise, defMessage.promise, defStatus.promise, defTrailer.promise);\n }\n}\n","// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { GrpcWebOptions } from '@protobuf-ts/grpcweb-transport';\nimport { GrpcWebFetchTransport } from '@protobuf-ts/grpcweb-transport';\nimport { TransactionExecutionServiceClient } from './proto/sui/rpc/v2/transaction_execution_service.client.js';\nimport { LedgerServiceClient } from './proto/sui/rpc/v2/ledger_service.client.js';\nimport { MovePackageServiceClient } from './proto/sui/rpc/v2/move_package_service.client.js';\nimport { SignatureVerificationServiceClient } from './proto/sui/rpc/v2/signature_verification_service.client.js';\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport { StateServiceClient } from './proto/sui/rpc/v2/state_service.client.js';\nimport { SubscriptionServiceClient } from './proto/sui/rpc/v2/subscription_service.client.js';\nimport { GrpcCoreClient } from './core.js';\nimport type { SuiClientTypes } from '../client/index.js';\nimport { BaseClient } from '../client/index.js';\nimport { DynamicField_DynamicFieldKind } from './proto/sui/rpc/v2/state_service.js';\nimport { normalizeStructTag } from '../utils/sui-types.js';\nimport { fromBase64, toBase64 } from '@mysten/utils';\nimport { NameServiceClient } from './proto/sui/rpc/v2/name_service.client.js';\nimport { ForkingServiceClient } from './proto/sui/forking/v1alpha/forking_service.client.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\n\ninterface SuiGrpcTransportOptions extends GrpcWebOptions {\n\ttransport?: never;\n}\n\nexport type SuiGrpcClientOptions = {\n\tnetwork: SuiClientTypes.Network;\n\tmvr?: SuiClientTypes.MvrOptions;\n} & (\n\t| {\n\t\t\ttransport: RpcTransport;\n\t }\n\t| SuiGrpcTransportOptions\n);\n\nconst SUI_CLIENT_BRAND = Symbol.for('@mysten/SuiGrpcClient') as never;\n\nexport function isSuiGrpcClient(client: unknown): client is SuiGrpcClient {\n\treturn (\n\t\ttypeof client === 'object' && client !== null && (client as any)[SUI_CLIENT_BRAND] === true\n\t);\n}\n\nexport interface DynamicFieldInclude {\n\tvalue?: boolean;\n}\n\nexport type DynamicFieldEntryWithValue<Include extends DynamicFieldInclude = {}> =\n\tSuiClientTypes.DynamicFieldEntry & {\n\t\tvalue: Include extends { value: true } ? SuiClientTypes.DynamicFieldValue : undefined;\n\t};\n\nexport interface ListDynamicFieldsWithValueResponse<Include extends DynamicFieldInclude = {}> {\n\thasNextPage: boolean;\n\tcursor: string | null;\n\tdynamicFields: DynamicFieldEntryWithValue<Include>[];\n}\n\nexport class SuiGrpcClient extends BaseClient implements SuiClientTypes.TransportMethods {\n\tcore: GrpcCoreClient;\n\tget mvr(): SuiClientTypes.MvrMethods {\n\t\treturn this.core.mvr;\n\t}\n\ttransactionExecutionService: TransactionExecutionServiceClient;\n\tledgerService: LedgerServiceClient;\n\tstateService: StateServiceClient;\n\tsubscriptionService: SubscriptionServiceClient;\n\tmovePackageService: MovePackageServiceClient;\n\tsignatureVerificationService: SignatureVerificationServiceClient;\n\tnameService: NameServiceClient;\n\tforkingService: ForkingServiceClient;\n\n\tget [SUI_CLIENT_BRAND]() {\n\t\treturn true;\n\t}\n\n\tconstructor(options: SuiGrpcClientOptions) {\n\t\tsuper({ network: options.network });\n\t\tconst transport =\n\t\t\toptions.transport ??\n\t\t\tnew GrpcWebFetchTransport({ baseUrl: options.baseUrl, fetchInit: options.fetchInit });\n\t\tthis.transactionExecutionService = new TransactionExecutionServiceClient(transport);\n\t\tthis.ledgerService = new LedgerServiceClient(transport);\n\t\tthis.stateService = new StateServiceClient(transport);\n\t\tthis.subscriptionService = new SubscriptionServiceClient(transport);\n\t\tthis.movePackageService = new MovePackageServiceClient(transport);\n\t\tthis.signatureVerificationService = new SignatureVerificationServiceClient(transport);\n\t\tthis.nameService = new NameServiceClient(transport);\n\t\tthis.forkingService = new ForkingServiceClient(transport);\n\n\t\tthis.core = new GrpcCoreClient({\n\t\t\tclient: this,\n\t\t\tbase: this,\n\t\t\tnetwork: options.network,\n\t\t\tmvr: options.mvr,\n\t\t});\n\t}\n\n\tgetObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\treturn this.core.getObjects(input);\n\t}\n\n\tgetObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\treturn this.core.getObject(input);\n\t}\n\n\tlistCoins(input: SuiClientTypes.ListCoinsOptions): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\treturn this.core.listCoins(input);\n\t}\n\n\tlistOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\treturn this.core.listOwnedObjects(input);\n\t}\n\n\tgetBalance(input: SuiClientTypes.GetBalanceOptions): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\treturn this.core.getBalance(input);\n\t}\n\n\tlistBalances(\n\t\tinput: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\treturn this.core.listBalances(input);\n\t}\n\n\tgetCoinMetadata(\n\t\tinput: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\treturn this.core.getCoinMetadata(input);\n\t}\n\n\tgetTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.getTransaction(input);\n\t}\n\n\texecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.executeTransaction(input);\n\t}\n\n\tsignAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.SignAndExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.signAndExecuteTransaction(input);\n\t}\n\n\twaitForTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.WaitForTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.waitForTransaction(input);\n\t}\n\n\tsimulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\tinput: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\treturn this.core.simulateTransaction(input);\n\t}\n\n\tgetReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\treturn this.core.getReferenceGasPrice();\n\t}\n\n\tasync listDynamicFields<Include extends DynamicFieldInclude = {}>(\n\t\tinput: SuiClientTypes.ListDynamicFieldsOptions & { include?: Include & DynamicFieldInclude },\n\t): Promise<ListDynamicFieldsWithValueResponse<Include>> {\n\t\tconst includeValue = input.include?.value ?? false;\n\t\tconst paths = ['field_id', 'name', 'value_type', 'kind', 'child_id'];\n\t\tif (includeValue) {\n\t\t\tpaths.push('value');\n\t\t}\n\n\t\tconst response = await this.stateService.listDynamicFields({\n\t\t\tparent: input.parentId,\n\t\t\tpageToken: input.cursor ? fromBase64(input.cursor) : undefined,\n\t\t\tpageSize: input.limit,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tdynamicFields: response.response.dynamicFields.map(\n\t\t\t\t(field): DynamicFieldEntryWithValue<Include> => {\n\t\t\t\t\tconst isDynamicObject = field.kind === DynamicField_DynamicFieldKind.OBJECT;\n\t\t\t\t\tconst fieldType = isDynamicObject\n\t\t\t\t\t\t? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${field.name?.name!}>,0x2::object::ID>`\n\t\t\t\t\t\t: `0x2::dynamic_field::Field<${field.name?.name!},${field.valueType!}>`;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\t\t\tfieldId: field.fieldId!,\n\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\ttype: field.name?.name!,\n\t\t\t\t\t\t\tbcs: field.name?.value!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalueType: field.valueType!,\n\t\t\t\t\t\ttype: normalizeStructTag(fieldType),\n\t\t\t\t\t\tchildId: field.childId,\n\t\t\t\t\t\tvalue: (includeValue\n\t\t\t\t\t\t\t? { type: field.valueType!, bcs: field.value?.value ?? new Uint8Array() }\n\t\t\t\t\t\t\t: undefined) as DynamicFieldEntryWithValue<Include>['value'],\n\t\t\t\t\t} as DynamicFieldEntryWithValue<Include>;\n\t\t\t\t},\n\t\t\t),\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\n\tgetDynamicField(\n\t\tinput: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\treturn this.core.getDynamicField(input);\n\t}\n\n\tgetMoveFunction(\n\t\tinput: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\treturn this.core.getMoveFunction(input);\n\t}\n\n\tresolveTransactionPlugin(): TransactionPlugin {\n\t\treturn this.core.resolveTransactionPlugin();\n\t}\n\n\tverifyZkLoginSignature(\n\t\tinput: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\treturn this.core.verifyZkLoginSignature(input);\n\t}\n\n\tdefaultNameServiceName(\n\t\tinput: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\treturn this.core.defaultNameServiceName(input);\n\t}\n}\n","import { BaseCoinInfo } from '../../move/ext/index.js'\nimport fetch from 'node-fetch'\nimport { accountTypeString, SPLITTER } from '../../move/index.js'\nimport { getPriceByType } from '../../utils/index.js'\nimport { SuiChainId } from '@sentio/chain'\n// import { validateAndNormalizeAddress } from '../utils.js'\nimport { getClient, SuiNetwork } from '../network.js'\nimport type { SuiClientTypes } from '@mysten/sui/client'\n\ntype CoinMetadata = SuiClientTypes.CoinMetadata\n\nconst WHITELISTED_COINS = new Map<string, BaseCoinInfo>()\n\nlet initiated = false\nexport async function initCoinList() {\n if (initiated) {\n return\n }\n let list = DEFAULT_LIST.coinlist\n try {\n const resp = await fetch('https://raw.githubusercontent.com/solflare-wallet/sui-coinlist/master/sui-coinlist.json')\n list = ((await resp.json()) as any).coinlist\n } catch (e) {\n console.warn(\"Can't not fetch newest coin list, use default list\")\n }\n\n setCoinList(list)\n initiated = true\n}\n\nexport interface SuiCoinInfo {\n network: string\n address: string\n symbol: string\n name: string\n decimals: number\n}\n\nfunction setCoinList(list: SuiCoinInfo[]) {\n for (const info of list) {\n if (info.address.startsWith('0x2::coin::Coin')) {\n continue\n }\n if (info.network !== 'mainnet') {\n continue\n }\n let bridge = 'native'\n if (info.name.includes('Celer')) {\n bridge = 'Celer'\n }\n if (info.name.includes('LayerZero')) {\n bridge = 'LayerZero'\n }\n if (info.name.includes('Wormhole')) {\n bridge = 'Wormhole'\n }\n WHITELISTED_COINS.set(info.address, {\n type: info.address,\n symbol: info.symbol,\n decimals: info.decimals,\n bridge\n })\n }\n}\n\nexport function whitelistCoins() {\n return WHITELISTED_COINS\n}\n\nexport function whiteListed(coin: string): boolean {\n const [addr, module, type] = coin.split(SPLITTER)\n const normalized = [accountTypeString(addr), module, type].join(SPLITTER)\n return WHITELISTED_COINS.has(normalized)\n}\n\nexport function getCoinInfo(type: string): BaseCoinInfo {\n const r = WHITELISTED_COINS.get(type)\n if (!r) {\n const parts = type.split('::')\n // TDDO retrive from network\n return {\n type,\n symbol: parts[2],\n decimals: 8,\n bridge: 'native'\n }\n }\n return r\n}\n\nconst COIN_METADATA_CACHE = new Map<string, Promise<CoinMetadata | null>>()\n\nexport async function getCoinInfoWithFallback(type: string, network?: SuiNetwork): Promise<BaseCoinInfo> {\n const r = WHITELISTED_COINS.get(type)\n if (!r) {\n network = network || SuiChainId.SUI_MAINNET\n const key = network + '_' + type\n let promise = COIN_METADATA_CACHE.get(key)\n if (!promise) {\n const client = getClient(network)\n promise = client.getCoinMetadata({ coinType: type }).then((r) => r.coinMetadata)\n COIN_METADATA_CACHE.set(key, promise)\n }\n const meta = await promise\n if (meta === null) {\n throw Error('Coin not existed ' + key)\n }\n\n const parts = type.split(SPLITTER)\n return {\n type,\n symbol: meta.symbol,\n decimals: meta.decimals,\n bridge: 'native'\n }\n }\n return r\n}\n\nexport async function getPrice(coinType: string, timestamp: number): Promise<number> {\n if (!whiteListed(coinType)) {\n return 0.0\n }\n const date = new Date(timestamp / 1000)\n try {\n return (await getPriceByType(SuiChainId.SUI_MAINNET, coinType, date)) || 0\n } catch (error) {\n console.log(JSON.stringify(error))\n throw error\n }\n}\n\nexport async function calculateValueInUsd(n: bigint, coinInfo: BaseCoinInfo, timestamp: number) {\n const price = await getPrice(coinInfo.type, timestamp)\n const amount = n.scaleDown(coinInfo.decimals)\n return amount.multipliedBy(price)\n}\n\nconst DEFAULT_LIST = {\n name: 'Sui Coin List',\n timestamp: '2022-12-01T13:34:30.145Z',\n logoURI: 'https://s2.coinmarketcap.com/static/img/coins/128x128/20947.png',\n coinlist: [\n {\n network: 'mainnet',\n address: '0x2::coin::Coin<0x2::sui::SUI>',\n symbol: 'SUI',\n name: 'Sui Coin',\n decimals: 9,\n logoURI: 'https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg',\n tags: [],\n extensions: {\n coingeckoId: 'sui'\n }\n },\n {\n network: 'testnet',\n address: '0x2::coin::Coin<0x2::sui::SUI>',\n symbol: 'SUI',\n name: 'Sui Coin',\n decimals: 9,\n logoURI: 'https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg',\n tags: [],\n extensions: {\n coingeckoId: 'sui'\n }\n },\n {\n network: 'devnet',\n address: '0x2::coin::Coin<0x2::sui::SUI>',\n symbol: 'SUI',\n name: 'Sui Coin',\n decimals: 9,\n logoURI: 'https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg',\n tags: [],\n extensions: {\n coingeckoId: 'sui'\n }\n },\n {\n network: 'mainnet',\n address: '0x2::sui::SUI',\n symbol: 'SUI',\n name: 'Sui Coin',\n decimals: 9,\n logoURI: 'https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg',\n tags: [],\n extensions: {\n coingeckoId: 'sui'\n }\n },\n {\n network: 'testnet',\n address: '0x2::sui::SUI',\n symbol: 'SUI',\n name: 'Sui Coin',\n decimals: 9,\n logoURI: 'https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg',\n tags: [],\n extensions: {\n coingeckoId: 'sui'\n }\n },\n {\n network: 'devnet',\n address: '0x2::sui::SUI',\n symbol: 'SUI',\n name: 'Sui Coin',\n decimals: 9,\n logoURI: 'https://cryptototem.com/wp-content/uploads/2022/08/SUI-logo.jpg',\n tags: [],\n extensions: {\n coingeckoId: 'sui'\n }\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST',\n symbol: 'TEST',\n name: 'Test Token',\n logoURI: 'https://suiswap.app/images/token/suiswap-test.svg',\n tags: [],\n decimals: 8,\n extensions: {}\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT',\n symbol: 'USDT',\n name: 'Tether',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png',\n tags: [],\n decimals: 8,\n extensions: {\n coingeckoId: 'tether'\n }\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC',\n symbol: 'USDC',\n name: 'USD Coin',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'usd-coin'\n }\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL',\n symbol: 'SOL',\n name: 'Solana',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png',\n decimals: 8,\n extensions: {\n coingeckoId: 'solana'\n }\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC',\n symbol: 'BTC',\n name: 'Bitcoin',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'bitcoin'\n }\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI',\n symbol: 'DAI',\n name: 'DAI',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'dai'\n }\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB',\n symbol: 'BNB',\n name: 'BNB',\n logoURI: 'https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'binancecoin'\n }\n },\n {\n network: 'testnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH',\n symbol: 'ETH',\n name: 'Ethereum',\n logoURI: 'https://assets.coingecko.com/coins/images/279/large/ethereum.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'ethereum'\n }\n },\n {\n network: 'testnet',\n address: '0x31b14985adb91360ed90a5786cb0956c83e7f275a8ae6123f38adab9d2b792b1::usdc::USDC',\n symbol: 'USDC',\n name: 'USD Coin',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'usd-coin'\n }\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestTEST',\n symbol: 'TEST',\n name: 'Test Token',\n logoURI: 'https://suiswap.app/images/token/suiswap-test.svg',\n tags: [],\n decimals: 8,\n extensions: {}\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDT',\n symbol: 'USDT',\n name: 'Tether',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png',\n tags: [],\n decimals: 8,\n extensions: {\n coingeckoId: 'tether'\n }\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestUSDC',\n symbol: 'USDC',\n name: 'USD Coin',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'usd-coin'\n }\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestSOL',\n symbol: 'SOL',\n name: 'Solana',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png',\n decimals: 8,\n extensions: {\n coingeckoId: 'solana'\n }\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBTC',\n symbol: 'BTC',\n name: 'Bitcoin',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E/logo.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'bitcoin'\n }\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestDAI',\n symbol: 'DAI',\n name: 'DAI',\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/FYpdBuyAHSbdaAyD1sKkxyLWbAP8uUW9h6uvdhK74ij1/logo.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'dai'\n }\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestBNB',\n symbol: 'BNB',\n name: 'BNB',\n logoURI: 'https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'binancecoin'\n }\n },\n {\n network: 'devnet',\n address: '0xe158e6df182971bb6c85eb9de9fbfb460b68163d19afc45873c8672b5cc521b2::TOKEN::TestETH',\n symbol: 'ETH',\n name: 'Ethereum',\n logoURI: 'https://assets.coingecko.com/coins/images/279/large/ethereum.png',\n decimals: 8,\n tags: [],\n extensions: {\n coingeckoId: 'ethereum'\n }\n },\n {\n network: 'mainnet',\n address: '0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5::coin::COIN',\n symbol: 'wETH',\n name: 'Wrapped Ethereum (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/279/large/ethereum.png',\n tags: [],\n extensions: {\n coingeckoId: 'ethereum'\n }\n },\n {\n network: 'mainnet',\n address: '0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c::coin::COIN',\n symbol: 'wUSDT',\n name: 'Tether (Wormhole)',\n decimals: 6,\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4/logo.png',\n tags: [],\n extensions: {\n coingeckoId: 'tether'\n }\n },\n {\n network: 'mainnet',\n address: '0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN',\n symbol: 'wUSDC',\n name: 'USD Coin (Wormhole)',\n decimals: 6,\n logoURI:\n 'https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png',\n tags: [],\n extensions: {\n coingeckoId: 'usd-coin'\n }\n },\n {\n network: 'mainnet',\n address: '0xa198f3be41cda8c07b3bf3fee02263526e535d682499806979a111e88a5a8d0f::coin::COIN',\n symbol: 'wCELO',\n name: 'Celo (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/11090/large/InjXBNx9_400x400.jpg',\n tags: [],\n extensions: {\n coingeckoId: 'celo'\n }\n },\n {\n network: 'mainnet',\n address: '0xdbe380b13a6d0f5cdedd58de8f04625263f113b3f9db32b3e1983f49e2841676::coin::COIN',\n symbol: 'wMATIC',\n name: 'Wrapped Matic (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/4713/large/matic-token-icon.png',\n tags: [],\n extensions: {\n coingeckoId: 'matic-network'\n }\n },\n {\n network: 'mainnet',\n address: '0xb848cce11ef3a8f62eccea6eb5b35a12c4c2b1ee1af7755d02d7bd6218e8226f::coin::COIN',\n symbol: 'wBNB',\n name: 'Wrapped BNB (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png',\n tags: [],\n extensions: {\n coingeckoId: 'binancecoin'\n }\n },\n {\n network: 'mainnet',\n address: '0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881::coin::COIN',\n symbol: 'wBTC',\n name: 'Wrapped Bitcoin (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/1/large/bitcoin.png',\n tags: [],\n extensions: {\n coingeckoId: 'bitcoin'\n }\n },\n {\n network: 'mainnet',\n address: '0x1e8b532cca6569cab9f9b9ebc73f8c13885012ade714729aa3b450e0339ac766::coin::COIN',\n symbol: 'wAVAX',\n name: 'Wrapped AVAX (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/12559/large/Avalanche_Circle_RedWhite_Trans.png',\n tags: [],\n extensions: {\n coingeckoId: 'avalanche-2'\n }\n },\n {\n network: 'mainnet',\n address: '0x6081300950a4f1e2081580e919c210436a1bed49080502834950d31ee55a2396::coin::COIN',\n symbol: 'wFTM',\n name: 'Wrapped Fantom (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/4001/large/Fantom_round.png',\n tags: [],\n extensions: {\n coingeckoId: 'fantom'\n }\n },\n {\n network: 'mainnet',\n address: '0x66f87084e49c38f76502d17f87d17f943f183bb94117561eb573e075fdc5ff75::coin::COIN',\n symbol: 'wGLMR',\n name: 'Wrapped GLMR (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/22459/large/glmr.png',\n tags: [],\n extensions: {\n coingeckoId: 'moonbeam'\n }\n },\n {\n network: 'mainnet',\n address: '0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8::coin::COIN',\n symbol: 'wSOL',\n name: 'Wrapped Solana (Wormhole)',\n decimals: 8,\n logoURI: 'https://assets.coingecko.com/coins/images/4128/large/solana.png',\n tags: [],\n extensions: {\n coingeckoId: 'solana'\n }\n },\n {\n network: 'mainnet',\n address: '0xb231fcda8bbddb31f2ef02e6161444aec64a514e2c89279584ac9806ce9cf037::coin::COIN',\n symbol: 'wUSDCsol',\n name: 'USD Coin Solana (Wormhole)',\n decimals: 6,\n logoURI: 'https://assets.coingecko.com/coins/images/6319/large/USD_Coin_icon.png',\n tags: [],\n extensions: {\n coingeckoId: 'usd-coin'\n }\n }\n ]\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;;;ACE1B,IAAM,oBACL;AACD,IAAM,sBAAsB;AAC5B,IAAM,yBAAyB;AAE/B,SAAgB,iBAAiB,MAAuB;AACvD,MAAI,KAAK,SAAS,uBACjB,QAAO;AAGR,MAAI,KAAK,SAAS,GAAA,EACjB,QAAO,kBAAkB,KAAK,IAAA;AAG/B,SAAO,oBAAoB,KAAK,IAAA;;AATjB;;;ACDhB,IAAM,eAAe;AAErB,IAAM,gBAAgB;AAEtB,IAAM,eAAe;AAErB,IAAM,iBAAiB;AAEvB,IAAa,sBAAA,wBAAuB,SAA0B;AAC7D,QAAM,QAAQ,KAAK,MAAM,cAAA;AAEzB,MAAI,MAAM,SAAS,KAAK,MAAM,SAAS,EAAG,QAAO;AAEjD,QAAM,CAAC,KAAK,KAAK,OAAA,IAAW;AAG5B,MAAI,YAAY,UAAa,CAAC,cAAc,KAAK,OAAA,EAAU,QAAO;AAElE,MAAI,CAAC,iBAAiB,GAAA,EAAM,QAAO;AAGnC,SAAO,aAAa,KAAK,GAAA,KAAQ,IAAI,SAAS;GAblC;AAmBb,IAAa,mBAAA,wBAAoB,SAA0B;AAE1D,QAAM,YAAY,KAAK,MAAM,UAAA;AAC7B,aAAW,KAAK,UACf,KAAI,EAAE,SAAS,cAAA,KAAmB,CAAC,oBAAoB,CAAA,EAAI,QAAO;AAEnE,SAAO,iBAAiB,IAAA;GANZ;;;AC7Bb,SAAgB,WAAW,KAAgC;AAC1D,MAAI,SAAS,OAAO,GAAA;AACpB,QAAM,MAAgB,CAAA;AACtB,MAAI,MAAM;AAEV,MAAI,WAAW,GACd,QAAO,CAAC,CAAA;AAGT,SAAO,SAAS,GAAG;AAClB,QAAI,GAAA,IAAO,OAAO,SAAS,IAAA;AAC3B,eAAW;AACX,QAAI,SAAS,GACZ,KAAI,GAAA,KAAQ;AAEb,WAAO;;AAGR,SAAO;;AAlBQ;AAuBhB,SAAgB,WAAW,KAGzB;AACD,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,MAAM;AAEV,SAAO,MAAM;AACZ,QAAI,OAAO,IAAI,OACd,OAAM,IAAI,MAAM,oCAAA;AAGjB,UAAM,OAAO,IAAI,GAAA;AACjB,WAAO;AACP,aAAS,OAAO,OAAO,GAAA,KAAS;AAChC,SAAK,OAAO,SAAU,EACrB;AAED,aAAS;;AAIV,MAAI,QAAQ,OAAO,OAAO,gBAAA,EACzB,OAAM,IAAI,MAAM,mDAAA;AAGjB,SAAO;IACN,OAAO,OAAO,KAAA;IACd,QAAQ;;;AA7BM;;;ACOhB,IAAa,YAAb,MAAuB;SAAA;;;;;;EAOtB,YAAY,MAAkB;wBALC;AAM9B,SAAK,WAAW,IAAI,SAAS,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAA;;;;;;;;EAQjE,MAAM,OAAe;AACpB,SAAK,gBAAgB;AACrB,WAAO;;;;;;EAMR,QAAgB;AACf,UAAM,QAAQ,KAAK,SAAS,SAAS,KAAK,YAAA;AAC1C,SAAK,MAAM,CAAA;AACX,WAAO;;;;;;EAMR,SAAiB;AAChB,UAAM,QAAQ,KAAK,SAAS,UAAU,KAAK,cAAc,IAAA;AACzD,SAAK,MAAM,CAAA;AACX,WAAO;;;;;;EAMR,SAAiB;AAChB,UAAM,QAAQ,KAAK,SAAS,UAAU,KAAK,cAAc,IAAA;AACzD,SAAK,MAAM,CAAA;AACX,WAAO;;;;;;EAMR,SAAiB;AAChB,UAAM,SAAS,KAAK,OAAA;AAGpB,UAAM,SAFS,KAAK,OAAA,EAEE,SAAS,EAAA,IAAM,OAAO,SAAS,EAAA,EAAI,SAAS,GAAG,GAAA;AAErE,WAAO,OAAO,OAAO,MAAA,EAAQ,SAAS,EAAA;;;;;EAKvC,UAAkB;AACjB,UAAM,SAAS,OAAO,KAAK,OAAA,CAAQ;AAEnC,UAAM,SADS,OAAO,KAAK,OAAA,CAAQ,EACb,SAAS,EAAA,IAAM,OAAO,SAAS,EAAA,EAAI,SAAS,IAAI,GAAA;AAEtE,WAAO,OAAO,OAAO,MAAA,EAAQ,SAAS,EAAA;;;;;;EAMvC,UAAkB;AACjB,UAAM,SAAS,OAAO,KAAK,QAAA,CAAS;AAEpC,UAAM,SADS,OAAO,KAAK,QAAA,CAAS,EACd,SAAS,EAAA,IAAM,OAAO,SAAS,EAAA,EAAI,SAAS,IAAI,GAAA;AAEtE,WAAO,OAAO,OAAO,MAAA,EAAQ,SAAS,EAAA;;;;;;EAMvC,UAAU,KAAyB;AAClC,UAAM,QAAQ,KAAK,eAAe,KAAK,SAAS;AAChD,UAAM,QAAQ,IAAI,WAAW,KAAK,SAAS,QAAQ,OAAO,GAAA;AAE1D,SAAK,MAAM,GAAA;AAEX,WAAO;;;;;;;EAOR,WAAmB;AAClB,UAAM,QAAQ,KAAK,eAAe,KAAK,SAAS;AAEhD,UAAM,EAAE,OAAO,OAAA,IAAW,WADX,IAAI,WAAW,KAAK,SAAS,QAAQ,KAAA,CAAM;AAG1D,SAAK,MAAM,MAAA;AAEX,WAAO;;;;;;;;EAQR,QAAQ,IAAkE;AACzE,UAAM,SAAS,KAAK,SAAA;AACpB,UAAM,SAAS,CAAA;AACf,aAAS,IAAI,GAAG,IAAI,QAAQ,IAC3B,QAAO,KAAK,GAAG,MAAM,GAAG,MAAA,CAAO;AAEhC,WAAO;;;;;ACpJT,IAAa,WAAA,wBAAY,WAAuB,OAAO,OAAO,MAAA,GAAjD;AACb,IAAa,aAAA,wBAAc,QAAgB,OAAO,OAAO,GAAA,GAA5C;;;ACHb,SAAgB,WAAWA,eAA+C;AACzE,SAAO,WAAW,KAAK,KAAKA,aAAA,GAAa,CAAG,SAAS,KAAK,WAAW,CAAA,CAAE;;AADxD;AAIhB,IAAM,aAAa;AACnB,SAAgB,SAAS,OAA2B;AAEnD,MAAI,MAAM,SAAS,WAClB,QAAO,KAAK,OAAO,aAAa,GAAG,KAAA,CAAM;AAG1C,MAAI,SAAS;AACb,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,YAAY;AAClD,UAAMC,SAAQ,MAAM,MAAM,GAAG,IAAI,UAAA;AACjC,cAAU,OAAO,aAAa,GAAGA,MAAA;;AAGlC,SAAO,KAAK,MAAA;;AAZG;;;ACLhB,SAAgB,QAAQ,QAAyC;AAChE,QAAM,aAAa,OAAO,WAAW,IAAA,IAAQ,OAAO,MAAM,CAAA,IAAK;AAC/D,QAAM,SAAS,WAAW,SAAS,MAAM,IAAI,aAAa,IAAI,UAAA;AAC9D,QAAM,SAAS,OAAO,MAAM,iBAAA,GAAoB,IAAA,CAAK,SAAS,SAAS,MAAM,EAAA,CAAG,KAAK,CAAA;AAErF,MAAI,OAAO,WAAW,OAAO,SAAS,EACrC,OAAM,IAAI,MAAM,sBAAsB,MAAA,EAAA;AAGvC,SAAO,WAAW,KAAK,MAAA;;AATR;AAYhB,SAAgB,MAAM,OAA2B;AAChD,SAAO,MAAM,OAAA,CAAQ,KAAK,SAAS,MAAM,KAAK,SAAS,EAAA,EAAI,SAAS,GAAG,GAAA,GAAM,EAAA;;AAD9D;;;ACZhB,SAAgB,MAASC,QAAqB,MAAqB;AAClE,SAAO,MAAM,KAAK,EAAE,QAAQ,KAAK,KAAKA,OAAM,SAAS,IAAA,EAAK,GAAE,CAAG,GAAG,MAAM;AACvE,WAAOA,OAAM,MAAM,IAAI,OAAO,IAAI,KAAK,IAAA;;;AAFzB;;;ACmBhB,IAAa,aAAb,MAAqC;SAAA;;;EACpC,YAAY,aAA2C,SAAuC;AAC7F,QAAI,OAAO,gBAAgB,WAC1B,OAAM,IAAI,UACT,uHAC2D,WAAA,GAAY;AAGzE,SAAK,eAAe;AACpB,SAAK,gBAAgB,qBAAqB,OAAA;AAC1C,SAAK,mBAAmB,wBAAwB,OAAA;AAChD,SAAK,cAAc,mBAAmB,OAAA;AACtC,SAAK,YAAY,iBAAiB,OAAA;AAClC,SAAK,SAAS;AACd,SAAK,OAAO,aAAa,OAAA;;;;;EAc1B,KAAK,KAAoB;AACxB,QAAI,QAAQ,QAAQ,QAAQ,OAC3B,OAAM,IAAI,UACT,oEAAoE,OAAO,GAAA,CAAI,GAAC;AAIlF,UAAM,QAAQ,gBAAgB,IAAA;AAC9B,UAAM,WAAW,KAAK;AACtB,QAAI;AAGJ,QAAI,UAAU;AACb,iBAAW,KAAK,YAAY,GAAA;AAC5B,YAAM,gBAAgB,SAAS,IAAI,QAAA;AACnC,UAAI,eAAe;AAClB,cAAM,YAAY,MAAM,cAAc,MAAM,YAAY,CAAA;AACxD,eAAO,IAAI,QAAA,CAAS,YAAY;AAC/B,oBAAU,KAAA,MAAW;AACpB,oBAAQ,aAAA;;;;;AAQZ,UAAM,KAAK,KAAK,GAAA;AAChB,UAAM,UAAU,IAAI,QAAA,CAAY,SAAS,WAAW;AACnD,YAAM,UAAU,KAAK;QAAE;QAAS;OAAQ;;AAIzC,QAAI,SACH,UAAS,IAAI,UAAW,OAAA;AAGzB,WAAO;;;;;;;;;;;;;;;;;;;;;;EAuBR,SAAS,MAAmD;AAC3D,QAAI,CAAC,YAAY,IAAA,EAChB,OAAM,IAAI,UACT,2EAA2E,IAAA,GAAK;AAIlF,UAAM,eAAe,CAAA;AACrB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,IAChC,cAAa,KAAK,KAAK,KAAK,KAAK,CAAA,CAAA,EAAI,MAAA,CAAO,UAAU,KAAA,CAAM;AAE7D,WAAO,QAAQ,IAAI,YAAA;;;;;;EAOpB,MAAM,KAAc;AACnB,UAAM,WAAW,KAAK;AACtB,QAAI,UAAU;AACb,YAAM,WAAW,KAAK,YAAY,GAAA;AAClC,eAAS,OAAO,QAAA;;AAEjB,WAAO;;;;;;;EAQR,WAAiB;AAChB,UAAM,WAAW,KAAK;AACtB,QAAI,SACH,UAAS,MAAA;AAEV,WAAO;;;;;;;;EASR,MAAM,KAAQ,OAAqC;AAClD,UAAM,WAAW,KAAK;AACtB,QAAI,UAAU;AACb,YAAM,WAAW,KAAK,YAAY,GAAA;AAGlC,UAAI,SAAS,IAAI,QAAA,MAAc,QAAW;AAGzC,YAAI;AACJ,YAAI,iBAAiB,OAAO;AAC3B,oBAAU,QAAQ,OAAO,KAAA;AAGzB,kBAAQ,MAAA,MAAY;UAAA,CAAA;cAEpB,WAAU,QAAQ,QAAQ,KAAA;AAE3B,iBAAS,IAAI,UAAU,OAAA;;;AAGzB,WAAO;;;AAqCT,IAAM,wBAEL,OAAO,YAAY,YAAY,OAAO,QAAQ,aAAa,aACxD,SAAU,IAAI;AACd,MAAI,CAAC,gBACJ,mBAAkB,QAAQ,QAAA;AAE3B,kBAAgB,KAAA,MAAW;AAE1B,YAAQ,SAAS,EAAA;;IAInB,OAAO,iBAAiB,aACtB,SAAU,IAAI;AAEd,eAAa,EAAA;IAEb,SAAU,IAAI;AACd,aAAW,EAAA;;AAIhB,IAAI;AAeJ,SAAS,gBAAsB,QAA4C;AAG1E,QAAM,gBAAgB,OAAO;AAC7B,MACC,kBAAkB,QAClB,CAAC,cAAc,iBACf,cAAc,KAAK,SAAS,OAAO,cAEnC,QAAO;AAIR,QAAM,WAAW;IAAE,eAAe;IAAO,MAAM,CAAA;IAAI,WAAW,CAAA;;AAG9D,SAAO,SAAS;AAGhB,SAAO,iBAAA,MAAuB;AAC7B,kBAAc,QAAQ,QAAA;;AAGvB,SAAO;;AAvBC;AA0BT,SAAS,cAAoB,QAA+B,OAAoB;AAE/E,QAAM,gBAAgB;AAGtB,MAAI,MAAM,KAAK,WAAW,GAAG;AAC5B,qBAAiB,KAAA;AACjB;;AAKD,MAAI;AACJ,MAAI;AACH,mBAAe,OAAO,aAAa,MAAM,IAAA;WACjC,GAAG;AACX,WAAO,eACN,QACA,OACA,oBAAI,UACH,sJAE2B,OAAO,CAAA,CAAE,GAAC,CACrC;;AAKH,MAAI,CAAC,gBAAgB,OAAO,aAAa,SAAS,WACjD,QAAO,eACN,QACA,OACA,oBAAI,UACH,yJAE0B,OAAO,YAAA,CAAa,GAAC,CAC/C;AAKH,UAAQ,QAAQ,YAAA,EACd,KAAA,CAAM,WAAW;AAEjB,QAAI,CAAC,YAAY,MAAA,EAChB,OAAM,IAAI,UACT,qKAEsC,OAAO,MAAA,CAAO,GAAC;AAGvD,QAAI,OAAO,WAAW,MAAM,KAAK,OAChC,OAAM,IAAI,UACT;;;EAIe,OAAO,MAAM,IAAA,CAAK;;;EAChB,OAAO,MAAA,CAAO,EAAA;AAKjC,qBAAiB,KAAA;AAGjB,aAAS,IAAI,GAAG,IAAI,MAAM,UAAU,QAAQ,KAAK;AAChD,YAAM,QAAQ,OAAO,CAAA;AACrB,UAAI,iBAAiB,MACpB,OAAM,UAAU,CAAA,EAAG,OAAO,KAAA;UAE1B,OAAM,UAAU,CAAA,EAAG,QAAQ,KAAA;;KAI7B,MAAA,CAAO,UAAmB;AAC1B,mBAAe,QAAQ,OAAO,KAAA;;;AA5ExB;AAkFT,SAAS,eAAqB,QAA+B,OAAoB,OAAc;AAE9F,mBAAiB,KAAA;AACjB,WAAS,IAAI,GAAG,IAAI,MAAM,KAAK,QAAQ,KAAK;AAC3C,WAAO,MAAM,MAAM,KAAK,CAAA,CAAA;AACxB,UAAM,UAAU,CAAA,EAAG,OAAO,KAAA;;;AALnB;AAUT,SAAS,iBAAiB,OAAwB;AACjD,MAAI,MAAM,UACT,UAAS,IAAI,GAAG,IAAI,MAAM,UAAU,QAAQ,IAC3C,OAAM,UAAU,CAAA,EAAA;;AAHV;AAST,SAAS,qBAA8B,SAA+C;AAErF,MAAI,EADgB,CAAC,WAAW,QAAQ,UAAU,OAEjD,QAAO;AAER,QAAM,eAAe,WAAW,QAAQ;AACxC,MAAI,iBAAiB,OACpB,QAAO;AAER,MAAI,OAAO,iBAAiB,YAAY,eAAe,EACtD,OAAM,IAAI,UAAU,2CAA2C,YAAA,EAAA;AAEhE,SAAO;;AAZC;AAgBT,SAAS,wBACR,SAC2B;AAC3B,QAAM,kBAAkB,WAAW,QAAQ;AAC3C,MAAI,oBAAoB,OACvB,QAAO;AAER,MAAI,OAAO,oBAAoB,WAC9B,OAAM,IAAI,UAAU,uCAAuC,eAAA,EAAA;AAE5D,SAAO;;AAVC;AAcT,SAAS,mBAA4B,SAAsD;AAC1F,QAAM,aAAa,WAAW,QAAQ;AACtC,MAAI,eAAe,OAClB,QAAA,CAAQ,QAAW;AAEpB,MAAI,OAAO,eAAe,WACzB,OAAM,IAAI,UAAU,kCAAkC,UAAA,EAAA;AAEvD,SAAO;;AARC;AAYT,SAAS,iBACR,SAC4C;AAE5C,MAAI,EADgB,CAAC,WAAW,QAAQ,UAAU,OAEjD,QAAO;AAER,QAAM,WAAW,WAAW,QAAQ;AACpC,MAAI,aAAa,OAChB,QAAO,oBAAI,IAAA;AAEZ,MAAI,aAAa,MAAM;AAEtB,UAAM,mBADiB;MAAC;MAAO;MAAO;MAAU;MACR,OAAA,CACtC,WAAW,YAAY,OAAO,SAAS,MAAA,MAAY,UAAA;AAErD,QAAI,iBAAiB,WAAW,EAC/B,OAAM,IAAI,UAAU,sCAAsC,iBAAiB,KAAK,IAAA,CAAK;;AAGvF,SAAO;;AApBC;AAuBT,SAAS,aAAsB,SAAsD;AACpF,MAAI,WAAW,QAAQ,KACtB,QAAO,QAAQ;AAGhB,SAAO;;AALC;AAQT,SAAS,YAAY,GAAqC;AACzD,SACC,OAAO,MAAM,YACb,MAAM,QACN,YAAY,KACZ,OAAO,EAAE,WAAW,aACnB,EAAE,WAAW,KAAM,EAAE,SAAS,KAAK,OAAO,UAAU,eAAe,KAAK,GAAG,EAAE,SAAS,CAAA;;AANhF;;;ACvbT,SAAgB,UAAU,MAAkB,UAA4B;AACvE,UAAQ,UAAR;IACC,KAAK;AACJ,aAAO,SAAS,IAAA;IACjB,KAAK;AACJ,aAAO,SAAS,IAAA;IACjB,KAAK;AACJ,aAAO,MAAM,IAAA;IACd;AACC,YAAM,IAAI,MAAM,yDAAA;;;AATH;AAiChB,SAAgB,uBACf,KACA,oBAAsC,CAAC,KAAK,GAAA,GAC3C;AACD,QAAM,CAAC,MAAM,KAAA,IAAS;AACtB,QAAM,MAAM,CAAA;AACZ,MAAI,OAAO;AACX,MAAI,sBAAsB;AAE1B,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACpC,UAAM,OAAO,IAAI,CAAA;AACjB,QAAI,SAAS,KACZ;AAED,QAAI,SAAS,MACZ;AAED,QAAI,wBAAwB,KAAK,SAAS,KAAK;AAC9C,UAAI,KAAK,KAAK,KAAA,CAAM;AACpB,aAAO;AACP;;AAED,YAAQ;;AAGT,MAAI,KAAK,KAAK,KAAA,CAAM;AAEpB,SAAO;;AA3BQ;;;ACZhB,IAAa,YAAb,MAAuB;SAAA;;;EAOtB,YAAY,EACX,cAAc,MACd,UAAU,UACV,eAAe,KAAA,IACM,CAAA,GAAI;wBATK;AAU9B,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,eAAe;AACpB,SAAK,WAAW,IAAI,SAAS,IAAI,YAAY,WAAA,CAAY;;EAGlD,iBAAiB,OAAe;AACvC,UAAM,eAAe,KAAK,eAAe;AACzC,QAAI,eAAe,KAAK,MAAM;AAC7B,YAAM,WAAW,KAAK,IACrB,KAAK,SACL,KAAK,IAAI,KAAK,OAAO,cAAc,KAAK,OAAO,KAAK,YAAA,CAAa;AAElE,UAAI,eAAe,SAClB,OAAM,IAAI,MACT,yFAAyF,KAAK,IAAA,eAAmB,KAAK,OAAA,oBAA2B,YAAA,EAAA;AAInJ,WAAK,OAAO;AACZ,YAAM,aAAa,IAAI,YAAY,KAAK,IAAA;AACxC,UAAI,WAAW,UAAA,EAAY,IAAI,IAAI,WAAW,KAAK,SAAS,MAAA,CAAO;AACnE,WAAK,WAAW,IAAI,SAAS,UAAA;;;;;;;;;EAU/B,MAAM,OAAqB;AAC1B,SAAK,gBAAgB;AACrB,WAAO;;;;;;;EAOR,OAAO,OAA8B;AACpC,SAAK,iBAAiB,CAAA;AACtB,SAAK,SAAS,SAAS,KAAK,cAAc,OAAO,KAAA,CAAM;AACvD,WAAO,KAAK,MAAM,CAAA;;;;;;;EAQnB,WAAW,OAAyB;AACnC,SAAK,iBAAiB,MAAM,MAAA;AAE5B,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IACjC,MAAK,SAAS,SAAS,KAAK,eAAe,GAAG,MAAM,CAAA,CAAA;AAGrD,WAAO,KAAK,MAAM,MAAM,MAAA;;;;;;;EAOzB,QAAQ,OAA8B;AACrC,SAAK,iBAAiB,CAAA;AACtB,SAAK,SAAS,UAAU,KAAK,cAAc,OAAO,KAAA,GAAQ,IAAA;AAC1D,WAAO,KAAK,MAAM,CAAA;;;;;;;EAOnB,QAAQ,OAA8B;AACrC,SAAK,iBAAiB,CAAA;AACtB,SAAK,SAAS,UAAU,KAAK,cAAc,OAAO,KAAA,GAAQ,IAAA;AAC1D,WAAO,KAAK,MAAM,CAAA;;;;;;;EAOnB,QAAQ,OAA8B;AACrC,mBAAe,OAAO,KAAA,GAAQ,CAAA,EAAG,QAAA,CAAS,OAAO,KAAK,OAAO,EAAA,CAAG;AAEhE,WAAO;;;;;;;;EAQR,SAAS,OAA8B;AACtC,mBAAe,OAAO,KAAA,GAAQ,EAAA,EAAI,QAAA,CAAS,OAAO,KAAK,OAAO,EAAA,CAAG;AAEjE,WAAO;;;;;;;;EAQR,SAAS,OAA8B;AACtC,mBAAe,OAAO,KAAA,GAAQ,EAAA,EAAI,QAAA,CAAS,OAAO,KAAK,OAAO,EAAA,CAAG;AAEjE,WAAO;;;;;;;;EAQR,UAAU,OAAqB;AAC9B,eAAW,KAAA,EAAO,QAAA,CAAS,OAAO,KAAK,OAAO,EAAA,CAAG;AACjD,WAAO;;;;;;;;;;EAUR,SAASC,SAAe,IAAwE;AAC/F,SAAK,UAAUA,QAAO,MAAA;AACtB,UAAM,KAAKA,OAAA,EAAQ,QAAA,CAAS,IAAI,MAAM,GAAG,MAAM,IAAI,GAAGA,QAAO,MAAA,CAAO;AACpE,WAAO;;;;;;EAQR,EAAE,OAAO,QAAA,IAAgD;AACxD,aAAS,IAAI,GAAG,IAAI,KAAK,cAAc,IACtC,OAAM,KAAK,SAAS,SAAS,CAAA;AAE9B,WAAO,KAAK,QAAA;;;;;;EAOb,UAAmC;AAClC,WAAO,IAAI,WAAW,KAAK,SAAS,OAAO,MAAM,GAAG,KAAK,YAAA,CAAa;;;;;;EAOvE,SAAS,UAA4B;AACpC,WAAO,UAAU,KAAK,QAAA,GAAW,QAAA;;;AAInC,SAAS,eAAeC,SAAgB,MAAc;AACrD,QAAM,SAAS,IAAI,WAAW,IAAA;AAC9B,MAAI,IAAI;AACR,SAAOA,UAAS,GAAG;AAClB,WAAO,CAAA,IAAK,OAAOA,UAAS,OAAO,GAAA,CAAI;AACvC,IAAAA,UAASA,UAAS,OAAO,GAAA;AACzB,SAAK;;AAEN,SAAO;;AARC;;;ACrMT,IAAa,UAAb,MAAaC,SAA0D;SAAA;;;EAOtE;EACA;EAEA,YACC,SAQC;AACD,SAAK,OAAO,QAAQ;AACpB,SAAK,OAAO,QAAQ;AACpB,SAAK,iBAAiB,QAAQ,mBAAA,MAAyB;AACvD,SAAA,SAAc,QAAQ;AACtB,SAAA,aACC,QAAQ,cAAA,CACN,OAAO,cAAY;AACpB,YAAM,SAAS,IAAI,UAAU;QAC5B,aAAa,KAAK,eAAe,KAAA,KAAU;QAC3C,GAAGC;OACH;AACD,WAAA,OAAY,OAAO,MAAA;AACnB,aAAO,OAAO,QAAA;;AAGhB,SAAK,WAAW,QAAQ,aAAA,MAAmB;IAAA;;EAG5C,MAAM,OAAc,QAAmB;AACtC,SAAK,SAAS,KAAA;AACd,SAAA,OAAY,OAAO,MAAA;;EAGpB,UAAU,OAAc,SAA4B;AACnD,SAAK,SAAS,KAAA;AACd,WAAO,IAAI,cAAc,MAAM,KAAA,WAAgB,OAAO,OAAA,CAAQ;;EAG/D,MAAM,OAAsB;AAC3B,UAAM,SAAS,IAAI,UAAU,KAAA;AAC7B,WAAO,KAAK,KAAK,MAAA;;EAGlB,QAAQ,KAAa;AACpB,WAAO,KAAK,MAAM,QAAQ,GAAA,CAAI;;EAG/B,WAAW,KAAa;AACvB,WAAO,KAAK,MAAM,WAAW,GAAA,CAAI;;EAGlC,WAAW,KAAa;AACvB,WAAO,KAAK,MAAM,WAAW,GAAA,CAAI;;EAGlC,UAAiE,EAChE,MACA,OACA,QACA,SAAA,GAIwC;AACxC,WAAO,IAAID,SAA6B;MACvC,MAAO,QAAQ,KAAK;MACpB,MAAA,wBAAO,WAAY,SAAS,OAAO,KAAK,KAAK,MAAA,CAAO,IAAK,KAAK,KAAK,MAAA,GAAnE;MACA,OAAA,wBAAQ,OAAO,WAAW,KAAA,OAAY,QAAQ,MAAM,KAAA,IAAU,OAAiB,MAAA,GAA/E;MACA,gBAAA,wBAAiB,UAAU,KAAK,eAAe,QAAQ,MAAM,KAAA,IAAU,KAAA,GAAvE;MACA,WAAA,wBAAY,OAAO,YAClB,KAAA,WAAgB,QAAQ,MAAM,KAAA,IAAU,OAAiB,OAAA,GAD1D;MAEA,UAAA,wBAAW,UAAU;AACpB,mBAAW,KAAA;AACX,aAAK,SAAS,QAAQ,MAAM,KAAA,IAAU,KAAA;SAFvC;KAIA;;;AAIH,IAAM,uBAAuB,OAAO,IAAI,wBAAA;AACxC,SAAgB,gBAAgB,KAA6C;AAC5E,SAAO,CAAC,CAAC,OAAO,OAAO,QAAQ,YAAa,IAAY,oBAAA,MAA0B;;AADnE;AAIhB,IAAa,gBAAb,MAAyC;SAAA;;;EACxC;EACA;EAIA,KAAK,oBAAA,IAAwB;AAC5B,WAAO;;EAGR,YAAY,QAA2B,OAAgC;AACtE,SAAA,UAAe;AACf,SAAA,SAAc;;EAGf,UAAU;AACT,WAAO,KAAA;;EAGR,QAAQ;AACP,WAAO,MAAM,KAAA,MAAKE;;EAGnB,WAAW;AACV,WAAO,SAAS,KAAA,MAAKA;;EAGtB,WAAW;AACV,WAAO,SAAS,KAAA,MAAKA;;EAGtB,QAAQ;AACP,WAAO,KAAA,QAAa,MAAM,KAAA,MAAKA;;;AAIjC,SAAgB,iBAAmE,EAClF,MACA,GAAG,QAAA,GAMgC;AACnC,SAAO,IAAI,QAAwB;IAClC,GAAG;IACH,gBAAA,6BAAsB,MAAtB;GACA;;AAZc;AAehB,SAAgB,YAAgD,EAC/D,YACA,aACA,GAAG,QAAA,GAOsC;AACzC,SAAO,iBAAuC;IAC7C,GAAG;IACH,MAAA,wBAAO,WAAW,OAAO,UAAA,EAAA,GAAzB;IACA,OAAA,wBAAQ,OAAO,WAAW,OAAO,WAAA,EAAa,KAAA,GAA9C;IACA,UAAA,wBAAW,UAAU;AACpB,UAAI,QAAQ,KAAK,QAAQ,QAAQ,SAChC,OAAM,IAAI,UACT,WAAW,QAAQ,IAAA,WAAe,KAAA,+BAAoC,QAAQ,QAAA,EAAA;AAGhF,cAAQ,WAAW,KAAA;OANpB;GAQA;;AAvBc;AA0BhB,SAAgB,eAAmD,EAClE,YACA,aACA,GAAG,QAAA,GAOkD;AACrD,SAAO,iBAAyD;IAC/D,GAAG;IACH,MAAA,wBAAO,WAAW,OAAO,UAAA,EAAA,GAAzB;IACA,OAAA,wBAAQ,OAAO,WAAW,OAAO,WAAA,EAAa,OAAO,KAAA,CAAM,GAA3D;IACA,UAAA,wBAAW,QAAQ;AAClB,YAAM,QAAQ,OAAO,GAAA;AACrB,UAAI,QAAQ,KAAK,QAAQ,QAAQ,SAChC,OAAM,IAAI,UACT,WAAW,QAAQ,IAAA,WAAe,KAAA,+BAAoC,QAAQ,QAAA,EAAA;AAGhF,cAAQ,WAAW,KAAA;OAPpB;GASA;;AAxBc;AA2BhB,SAAgB,mBAAqE,EACpF,WACA,GAAG,QAAA,GAK0B;AAC7B,QAAM,OAAO,IAAI,QAAkB;IAClC,GAAG;IACH;IACA,OAAA,wBAAQ,OAAO,WAAW;AACzB,iBAAW,QAAQ,KAAK,UAAU,KAAA,EAAO,QAAA,EACxC,QAAO,OAAO,IAAA;OAFhB;GAKA;AAED,SAAO;;AAlBQ;AAqBhB,SAAgB,kBAAsD,EACrE,SACA,WACA,GAAG,QAAA,GAMsC;AACzC,SAAO,IAAI,QAA8B;IACxC,GAAG;IACH,MAAA,wBAAO,WAAW;AACjB,YAAM,SAAS,OAAO,SAAA;AAGtB,aAAO,UAFO,OAAO,UAAU,MAAA,CAAO;OAFvC;IAMA,OAAA,wBAAQ,KAAK,WAAW;AACvB,YAAM,QAAQ,QAAQ,GAAA;AACtB,aAAO,UAAU,MAAM,MAAA;AACvB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IACjC,QAAO,OAAO,MAAM,CAAA,CAAA;OAJtB;IAOA,WAAA,wBAAY,UAAU;AACrB,YAAM,QAAQ,QAAQ,KAAA;AACtB,YAAM,OAAO,WAAW,MAAM,MAAA;AAC9B,YAAM,SAAS,IAAI,WAAW,KAAK,SAAS,MAAM,MAAA;AAClD,aAAO,IAAI,MAAM,CAAA;AACjB,aAAO,IAAI,OAAO,KAAK,MAAA;AAEvB,aAAO;OAPR;IASA,UAAA,wBAAW,UAAU;AACpB,UAAI,OAAO,UAAU,SACpB,OAAM,IAAI,UAAU,WAAW,QAAQ,IAAA,WAAe,KAAA,mBAAM;AAE7D,cAAQ,WAAW,KAAA;OAJpB;GAMA;;AAxCc;AA2ChB,SAAgB,YAAsB,IAA6B;AAClE,MAAI,WAAqC;AACzC,WAAS,UAAU;AAClB,QAAI,CAAC,SACJ,YAAW,GAAA;AAEZ,WAAO;;AAJC;AAOT,SAAO,IAAI,QAAkB;IAC5B,MAAM;IACN,MAAA,wBAAO,SAAS,QAAA,EAAU,KAAK,IAAA,GAA/B;IACA,gBAAA,wBAAiB,UAAU,QAAA,EAAU,eAAe,KAAA,GAApD;IACA,OAAA,wBAAQ,OAAO,WAAW,QAAA,EAAU,MAAM,OAAO,MAAA,GAAjD;IACA,WAAA,wBAAY,OAAO,YAAY,QAAA,EAAU,UAAU,OAAO,OAAA,EAAS,QAAA,GAAnE;GACA;;AAfc;AAqChB,IAAa,YAAb,cAGU,QAQR;SAAA;;;EACD,YAAY,EAAE,MAAM,QAAQ,GAAG,QAAA,GAAsC;AACpE,UAAM,iBAAiB,OAAO,QAAQ,MAAA;AAEtC,UAAM;MACL;MACA,gBAAA,wBAAiB,WAAW;AAC3B,YAAI,QAAQ;AACZ,mBAAW,CAAC,OAAO,IAAA,KAAS,gBAAgB;AAC3C,gBAAM,OAAO,KAAK,eAAe,OAAO,KAAA,CAAA;AACxC,cAAI,QAAQ,KACX,QAAO;AAGR,mBAAS;;AAGV,eAAO;SAXR;MAaA,MAAA,wBAAO,WAAW;AACjB,cAAM,SAAkC,CAAA;AACxC,mBAAW,CAAC,OAAO,IAAA,KAAS,eAC3B,QAAO,KAAA,IAAS,KAAK,KAAK,MAAA;AAG3B,eAAO;SANR;MAQA,OAAA,wBAAQ,OAAO,WAAW;AACzB,mBAAW,CAAC,OAAO,IAAA,KAAS,eAC3B,MAAK,MAAM,MAAM,KAAA,GAAQ,MAAA;SAF3B;MAKA,GAAG;MACH,UAAA,wBAAW,UAAU;AACpB,iBAAS,WAAW,KAAA;AACpB,YAAI,OAAO,UAAU,YAAY,SAAS,KACzC,OAAM,IAAI,UAAU,0BAA0B,OAAO,KAAA,EAAA;SAHvD;KAMA;;;AAuBH,IAAa,UAAb,cAGU,QAQR;SAAA;;;EACD,YAAY,EAAE,QAAQ,GAAG,QAAA,GAAoC;AAC5D,UAAM,iBAAiB,OAAO,QAAQ,MAAA;AACtC,UAAM;MACL,MAAA,wBAAO,WAAW;AACjB,cAAM,QAAQ,OAAO,SAAA;AAErB,cAAM,YAAY,eAAe,KAAA;AACjC,YAAI,CAAC,UACJ,OAAM,IAAI,UAAU,iBAAiB,KAAA,aAAkB,QAAQ,IAAA,EAAA;AAGhE,cAAM,CAAC,MAAM,IAAA,IAAQ;AAErB,eAAO;WACL,IAAA,GAAO,MAAM,KAAK,MAAA,KAAW;UAC9B,OAAO;;SAZT;MAeA,OAAA,wBAAQ,OAAO,WAAW;AACzB,cAAM,CAAC,MAAM,GAAA,IAAO,OAAO,QAAQ,KAAA,EAAO,OAAA,CAAQ,CAACC,MAAAA,MAClD,OAAO,OAAO,QAAQA,MAAAA,CAAK,EAC1B,CAAA;AAEF,iBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;AAC/C,gBAAM,CAAC,YAAY,UAAA,IAAc,eAAe,CAAA;AAChD,cAAI,eAAe,MAAM;AACxB,mBAAO,UAAU,CAAA;AACjB,wBAAY,MAAM,KAAK,MAAA;AACvB;;;SAVH;MAcA,GAAG;MACH,UAAA,wBAAW,UAAU;AACpB,iBAAS,WAAW,KAAA;AACpB,YAAI,OAAO,UAAU,YAAY,SAAS,KACzC,OAAM,IAAI,UAAU,0BAA0B,OAAO,KAAA,EAAA;AAGtD,cAAM,OAAO,OAAO,KAAK,KAAA,EAAO,OAAA,CAC9B,MAAM,MAAM,CAAA,MAAO,UAAa,OAAO,OAAO,QAAQ,CAAA,CAAE;AAG1D,YAAI,KAAK,WAAW,EACnB,OAAM,IAAI,UACT,2CAA2C,KAAK,MAAA,aAAmB,QAAQ,IAAA,GAAK;AAIlF,cAAM,CAAC,OAAA,IAAW;AAElB,YAAI,CAAC,OAAO,OAAO,QAAQ,OAAA,EAC1B,OAAM,IAAI,UAAU,wBAAwB,OAAA,EAAA;SAnB9C;KAsBA;;;AAuBH,IAAa,WAAb,cAIU,QAQR;SAAA;;;EACD,YAAY,EAAE,QAAQ,MAAM,GAAG,QAAA,GAAqC;AACnE,UAAM;MACL,MAAM,QAAS,IAAI,OAAO,IAAA,CAAK,MAAM,EAAE,IAAA,EAAM,KAAK,IAAA,CAAK;MACvD,gBAAA,wBAAiB,WAAW;AAC3B,YAAI,QAAQ;AACZ,iBAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACvC,gBAAM,OAAO,OAAO,CAAA,EAAG,eAAe,OAAO,CAAA,CAAA;AAC7C,cAAI,QAAQ,KACX,QAAO;AAGR,mBAAS;;AAGV,eAAO;SAXR;MAaA,MAAA,wBAAO,WAAW;AACjB,cAAM,SAAoB,CAAA;AAC1B,mBAAW,SAAS,OACnB,QAAO,KAAK,MAAM,KAAK,MAAA,CAAO;AAE/B,eAAO;SALR;MAOA,OAAA,wBAAQ,OAAO,WAAW;AACzB,iBAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,IAClC,QAAO,CAAA,EAAG,MAAM,MAAM,CAAA,GAAI,MAAA;SAF5B;MAKA,GAAG;MACH,UAAA,wBAAW,UAAU;AACpB,iBAAS,WAAW,KAAA;AACpB,YAAI,CAAC,MAAM,QAAQ,KAAA,EAClB,OAAM,IAAI,UAAU,yBAAyB,OAAO,KAAA,EAAA;AAErD,YAAI,MAAM,WAAW,OAAO,OAC3B,OAAM,IAAI,UAAU,4BAA4B,OAAO,MAAA,WAAiB,MAAM,MAAA,EAAA;SANhF;KASA;;;;;ACzeH,SAAS,WACR,MACA,MACA,SAKoF;AACpF,SAAO,IAAI,QAAkF;IAC5F,MAAA,wBAAO,WAAW;AACjB,YAAM,SAA4B,IAAI,MAAM,IAAA;AAC5C,eAAS,IAAI,GAAG,IAAI,MAAM,IACzB,QAAO,CAAA,IAAK,KAAK,KAAK,MAAA;AAEvB,aAAO;OALR;IAOA,OAAA,wBAAQ,OAAO,WAAW;AACzB,iBAAW,QAAQ,MAClB,MAAK,MAAM,MAAM,MAAA;OAFnB;IAKA,GAAG;IACH,MAAO,SAAS,QAAQ,GAAG,KAAK,IAAA,IAAQ,IAAA;IACxC,UAAA,wBAAW,UAAU;AACpB,eAAS,WAAW,KAAA;AACpB,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,EAAE,YAAY,OACxD,OAAM,IAAI,UAAU,yBAAyB,OAAO,KAAA,EAAA;AAErD,UAAI,MAAM,WAAW,KACpB,OAAM,IAAI,UAAU,4BAA4B,IAAA,WAAe,MAAM,MAAA,EAAA;OANvE;GASA;;AAjCO;AA0CT,SAAS,OACR,MAC+F;AAC/F,SAAO,IACL,KAAK,UAAU,KAAK,IAAA,KAAS;IAC7B,MAAM;IACN,MAAM;GACN,EACA,UAAU;IACV,OAAA,wBAAQ,UAA+C;AACtD,UAAI,SAAS,KACZ,QAAO,EAAE,MAAM,KAAA;AAGhB,aAAO,EAAE,MAAM,MAAA;OALhB;IAOA,QAAA,wBAAS,UAAU;AAClB,UAAI,MAAM,UAAU,OACnB,QAAO,MAAM;AAGd,aAAO;OALR;GAOA;;AAvBM;AAsCT,SAAS,OACR,MACA,SAKoF;AACpF,SAAO,IAAI,QAAkF;IAC5F,MAAA,wBAAO,WAAW;AACjB,YAAM,SAAS,OAAO,SAAA;AACtB,YAAM,SAA4B,IAAI,MAAM,MAAA;AAC5C,eAAS,IAAI,GAAG,IAAI,QAAQ,IAC3B,QAAO,CAAA,IAAK,KAAK,KAAK,MAAA;AAEvB,aAAO;OANR;IAQA,OAAA,wBAAQ,OAAO,WAAW;AACzB,aAAO,UAAU,MAAM,MAAA;AACvB,iBAAW,QAAQ,MAClB,MAAK,MAAM,MAAM,MAAA;OAHnB;IAMA,GAAG;IACH,MAAO,SAAS,QAAQ,UAAU,KAAK,IAAA;IACvC,UAAA,wBAAW,UAAU;AACpB,eAAS,WAAW,KAAA;AACpB,UAAI,CAAC,SAAS,OAAO,UAAU,YAAY,EAAE,YAAY,OACxD,OAAM,IAAI,UAAU,yBAAyB,OAAO,KAAA,EAAA;OAHtD;GAMA;;AA/BO;AAuCT,SAAgB,gBAAgB,GAAe,GAAuB;AACrE,WAAS,IAAI,GAAG,IAAI,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAA,GAAS,IACjD,KAAI,EAAE,CAAA,MAAO,EAAE,CAAA,EACd,QAAO,EAAE,CAAA,IAAK,EAAE,CAAA;AAIlB,SAAO,EAAE,SAAS,EAAE;;AAPL;AAsBhB,SAAS,IACR,SACA,WAKC;AACD,SAAO,IAAI,QAAQ;IAClB,MAAM,OAAO,QAAQ,IAAA,KAAS,UAAU,IAAA;IACxC,MAAA,wBAAO,WAAW;AACjB,YAAM,SAAS,OAAO,SAAA;AACtB,YAAM,SAAS,oBAAI,IAAA;AACnB,eAAS,IAAI,GAAG,IAAI,QAAQ,IAC3B,QAAO,IAAI,QAAQ,KAAK,MAAA,GAAS,UAAU,KAAK,MAAA,CAAO;AAExD,aAAO;OANR;IAQA,OAAA,wBAAQ,OAAO,WAAW;AACzB,YAAM,UAAU,CAAC,GAAG,MAAM,QAAA,CAAS,EAAE,IAAA,CACnC,CAAC,KAAK,GAAA,MAAS,CAAC,QAAQ,UAAU,GAAA,EAAK,QAAA,GAAW,GAAA,CAAI;AAExD,cAAQ,KAAA,CAAM,CAAC,CAAA,GAAI,CAAC,CAAA,MAAO,gBAAgB,GAAG,CAAA,CAAE;AAEhD,aAAO,UAAU,QAAQ,MAAA;AACzB,iBAAW,CAAC,UAAU,GAAA,KAAQ,SAAS;AACtC,eAAO,WAAW,QAAA;AAClB,kBAAU,MAAM,KAAK,MAAA;;OATvB;GAYA;;AA9BO;AAiCT,IAAa,MAAM;EAMlB,GAAG,SAAkC;AACpC,WAAO,YAAY;MAClB,YAAY;MACZ,aAAa;MACb,MAAM;MACN,UAAU,KAAK,IAAI;MACnB,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EAQF,IAAI,SAAkC;AACrC,WAAO,YAAY;MAClB,YAAY;MACZ,aAAa;MACb,MAAM;MACN,UAAU,KAAK,KAAK;MACpB,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EAQF,IAAI,SAAkC;AACrC,WAAO,YAAY;MAClB,YAAY;MACZ,aAAa;MACb,MAAM;MACN,UAAU,KAAK,KAAK;MACpB,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EAQF,IAAI,SAA4D;AAC/D,WAAO,eAAe;MACrB,YAAY;MACZ,aAAa;MACb,MAAM;MACN,UAAU,MAAM,MAAM;MACtB,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EAQF,KAAK,SAA4D;AAChE,WAAO,eAAe;MACrB,YAAY;MACZ,aAAa;MACb,MAAM;MACN,UAAU,MAAM,OAAO;MACvB,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EAQF,KAAK,SAA4D;AAChE,WAAO,eAAe;MACrB,YAAY;MACZ,aAAa;MACb,MAAM;MACN,UAAU,MAAM,OAAO;MACvB,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EAQF,KAAK,SAAmC;AACvC,WAAO,iBAAiB;MACvB,MAAM;MACN,MAAA,wBAAO,WAAW,OAAO,MAAA,MAAY,GAArC;MACA,OAAA,wBAAQ,OAAO,WAAW,OAAO,OAAO,QAAQ,IAAI,CAAA,GAApD;MACA,GAAG;MACH,MAAO,SAAS,QAAQ;MACxB,UAAA,wBAAW,UAAU;AACpB,iBAAS,WAAW,KAAA;AACpB,YAAI,OAAO,UAAU,UACpB,OAAM,IAAI,UAAU,2BAA2B,OAAO,KAAA,EAAA;SAHxD;KAMA;;EAQF,QAAQ,SAAkC;AACzC,WAAO,mBAAmB;MACzB,MAAA,wBAAO,WAAW,OAAO,SAAA,GAAzB;MACA,WAAA,wBAAY,UAAU;AACrB,eAAO,WAAW,KAAK,WAAW,KAAA,CAAM;SADzC;MAGA,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EASF,MAAwB,MAAS,SAAwD;AACxF,WAAO,iBAA8D;MACpE;MACA,MAAA,wBAAO,WAAW,OAAO,UAAU,IAAA,GAAnC;MACA,OAAA,wBAAQ,OAAO,WAAW;AACzB,eAAO,WAAW,IAAI,WAAW,KAAA,CAAM;SADxC;MAGA,GAAG;MACH,MAAO,SAAS,QAAQ,SAAS,IAAA;MACjC,UAAA,wBAAW,UAAU;AACpB,iBAAS,WAAW,KAAA;AACpB,YAAI,CAAC,SAAS,OAAO,UAAU,YAAY,EAAE,YAAY,OACxD,OAAM,IAAI,UAAU,yBAAyB,OAAO,KAAA,EAAA;AAErD,YAAI,MAAM,WAAW,KACpB,OAAM,IAAI,UAAU,4BAA4B,IAAA,WAAe,MAAM,MAAA,EAAA;SANvE;KASA;;EASF,WAAW,SAAwD;AAClE,WAAO,IAAI,QAAoD;MAC9D,MAAA,wBAAO,WAAW;AACjB,cAAM,SAAS,OAAO,SAAA;AAEtB,eAAO,OAAO,UAAU,MAAA;SAHzB;MAKA,OAAA,wBAAQ,OAAO,WAAW;AACzB,cAAMC,SAAQ,IAAI,WAAW,KAAA;AAC7B,eAAO,UAAUA,OAAM,MAAA;AACvB,eAAO,WAAWA,MAAA;SAHnB;MAKA,GAAG;MACH,MAAO,SAAS,QAAQ;MACxB,gBAAA,wBAAiB,UAAU;AAC1B,cAAM,SAAS,YAAY,QAAS,MAAM,SAAoB;AAC9D,eAAO,UAAU,OAAO,OAAO,WAAW,MAAA,EAAQ,SAAS;SAF5D;MAIA,UAAA,wBAAW,UAAU;AACpB,iBAAS,WAAW,KAAA;AACpB,YAAI,CAAC,SAAS,OAAO,UAAU,YAAY,EAAE,YAAY,OACxD,OAAM,IAAI,UAAU,yBAAyB,OAAO,KAAA,EAAA;SAHtD;KAMA;;EAQF,OAAO,SAAkC;AACxC,WAAO,kBAAkB;MACxB,SAAA,wBAAU,UAAU,IAAI,YAAA,EAAc,OAAO,KAAA,GAA7C;MACA,WAAA,wBAAY,UAAU,IAAI,YAAA,EAAc,OAAO,KAAA,GAA/C;MACA,GAAG;MACH,MAAO,SAAS,QAAQ;KACxB;;EASF;EASA;EASA;EAUA,MAKC,QACA,SASC;AACD,WAAO,IAAI,SAAkB;MAC5B;MACA,GAAG;KACH;;EAeF,OACC,MACA,QACA,SAWC;AACD,WAAO,IAAI,UAAa;MACvB;MACA;MACA,GAAG;KACH;;EAmBF,KACC,MACA,QACA,SAYC;AACD,WAAO,IAAI,QAAiB;MAC3B;MACA;MACA,GAAG;KACH;;EAWF;EAMA,KAA6B,IAAgB;AAC5C,WAAO,YAAY,EAAA;;;;;AC5hBrB,IAAa,qBAAqB;AAClC,SAAgB,kBAAkB,OAAgC;AACjE,SAAO,MAAM,KAAA,KAAU,iBAAiB,KAAA,MAAW;;AADpC;AAQhB,IAAM,wBAAwB;AAE9B,SAAgB,sBAAsB,MAAuB;AAC5D,SAAO,sBAAsB,KAAK,IAAA;;AADnB;AAIhB,IAAM,sBAAsB;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD,IAAM,oBAAoB;AAE1B,SAAS,eAAe,MAAuB;AAC9C,MAAI,oBAAoB,SAAS,IAAA,EAAO,QAAO;AAE/C,QAAM,cAAc,KAAK,MAAM,iBAAA;AAC/B,MAAI,YAAa,QAAO,eAAe,YAAY,CAAA,CAAA;AAEnD,MAAI,KAAK,SAAS,IAAA,EAAO,QAAO,iBAAiB,IAAA;AAEjD,SAAO;;AARC;AAWT,SAAS,uBAAuB,KAAyB;AACxD,MAAI,CAAC,kBAAkB,IAAI,OAAA,KAAY,CAAC,oBAAoB,IAAI,OAAA,EAC/D,QAAO;AAGR,MAAI,CAAC,sBAAsB,IAAI,MAAA,KAAW,CAAC,sBAAsB,IAAI,IAAA,EACpE,QAAO;AAGR,SAAO,IAAI,WAAW,MAAA,CAAO,UAAU;AACtC,QAAI,OAAO,UAAU,SACpB,QAAO,eAAe,KAAA;AAEvB,WAAO,uBAAuB,KAAA;;;AAbvB;AAiBT,SAAgB,iBAAiB,MAAuB;AACvD,MAAI;AAEH,WAAO,uBADK,eAAe,IAAA,CAAK;UAEzB;AACP,WAAO;;;AALO;AAgBhB,SAAS,aAAa,MAAkC;AACvD,MAAI,KAAK,WAAW,SAAA,GAAY;AAC/B,QAAI,CAAC,KAAK,SAAS,GAAA,EAClB,OAAM,IAAI,MAAM,qBAAqB,IAAA,EAAA;AAEtC,UAAM,QAAQ,KAAK,MAAM,GAAG,EAAA;AAC5B,QAAI,CAAC,MACJ,OAAM,IAAI,MAAM,qBAAqB,IAAA,EAAA;AAEtC,UAAM,SAAS,aAAa,KAAA;AAC5B,QAAI,OAAO,WAAW,SACrB,QAAO,UAAU,MAAA;AAElB,WAAO,UAAU,mBAAmB,MAAA,CAAO;;AAG5C,MAAI,CAAC,KAAK,SAAS,IAAA,EAAO,QAAO;AAEjC,SAAO,eAAe,IAAA;;AAlBd;AAqBT,SAAgB,eAAe,MAAyB;AACvD,QAAM,QAAQ,KAAK,MAAM,IAAA;AAEzB,MAAI,MAAM,SAAS,EAClB,OAAM,IAAI,MAAM,uBAAuB,IAAA,EAAA;AAGxC,QAAM,CAAC,SAAS,MAAA,IAAU;AAE1B,MAAI,CAAC,WAAW,CAAC,OAChB,OAAM,IAAI,MAAM,uBAAuB,IAAA,EAAA;AAGxC,QAAM,eAAe,oBAAoB,OAAA;AAEzC,QAAM,OAAO,KAAK,MAAM,QAAQ,SAAS,OAAO,SAAS,CAAA;AACzD,QAAM,OAAO,KAAK,SAAS,GAAA,IAAO,KAAK,MAAM,GAAG,KAAK,QAAQ,GAAA,CAAI,IAAI;AAErE,MAAI,CAAC,QAAS,KAAK,SAAS,GAAA,KAAQ,CAAC,KAAK,SAAS,GAAA,EAClD,OAAM,IAAI,MAAM,uBAAuB,IAAA,EAAA;AAGxC,QAAM,aAAa,KAAK,SAAS,GAAA,IAC9B,uBAAuB,KAAK,MAAM,KAAK,QAAQ,GAAA,IAAO,GAAG,KAAK,YAAY,GAAA,CAAI,CAAC,EAAE,IAAA,CAChF,cAAc,aAAa,UAAU,KAAA,CAAM,CAAC,IAE7C,CAAA;AAEH,SAAO;IACN,SAAS,eAAe,UAAU,oBAAoB,OAAA;IACtD;IACA;IACA;;;AAhCc;AAoChB,SAAgB,mBAAmB,MAAkC;AACpE,MAAI,OAAO,SAAS,YAAY,KAAK,WAAW,SAAA,EAC/C,OAAM,IAAI,MACT,iFAAA;AAIF,QAAM,EAAE,SAAS,QAAQ,MAAM,WAAA,IAC9B,OAAO,SAAS,WAAW,eAAe,IAAA,IAAQ;AAWnD,SAAO,GAAG,OAAA,KAAY,MAAA,KAAW,IAAA,GARhC,YAAY,SAAS,IAClB,IAAI,WACH,IAAA,CAAK,cACL,OAAO,cAAc,WAAW,YAAY,mBAAmB,SAAA,CAAU,EAEzE,KAAK,GAAA,CAAI,MACV,EAAA;;AAjBW;AAiChB,SAAgB,oBAAoB,OAAe,aAAsB,OAAe;AACvF,MAAI,UAAU,MAAM,YAAA;AACpB,MAAI,CAAC,cAAc,QAAQ,WAAW,IAAA,EACrC,WAAU,QAAQ,MAAM,CAAA;AAEzB,SAAO,KAAK,QAAQ,SAAS,qBAAqB,GAAG,GAAA,CAAI;;AAL1C;AAQhB,SAAgB,qBAAqB,OAAe,aAAsB,OAAe;AACxF,SAAO,oBAAoB,OAAO,UAAA;;AADnB;AAIhB,SAAS,MAAM,OAAwB;AACtC,SAAO,yBAAyB,KAAK,KAAA,KAAU,MAAM,SAAS,MAAM;;AAD5D;AAIT,SAAS,iBAAiB,OAAuB;AAChD,SAAO,WAAW,KAAK,KAAA,KAAU,MAAM,SAAS,KAAK,IAAI,MAAM,SAAS;;AADhE;;;ACpMT,IAAM,eAAe;AACrB,IAAM,eAAe;AAErB,IAAa,oBAAb,MAAaC,mBAAkB;SAAA;;;EAC9B,OAAO,aAAa,KAAa,mBAAmB,OAAgB;AACnE,QAAI,QAAQ,UACX,QAAO,EAAE,SAAS,KAAA;aACR,QAAQ,OAClB,QAAO,EAAE,MAAM,KAAA;aACL,QAAQ,KAClB,QAAO,EAAE,IAAI,KAAA;aACH,QAAQ,MAClB,QAAO,EAAE,KAAK,KAAA;aACJ,QAAQ,MAClB,QAAO,EAAE,KAAK,KAAA;aACJ,QAAQ,MAClB,QAAO,EAAE,KAAK,KAAA;aACJ,QAAQ,OAClB,QAAO,EAAE,MAAM,KAAA;aACL,QAAQ,OAClB,QAAO,EAAE,MAAM,KAAA;aACL,QAAQ,SAClB,QAAO,EAAE,QAAQ,KAAA;AAGlB,UAAM,cAAc,IAAI,MAAM,YAAA;AAC9B,QAAI,YACH,QAAO,EACN,QAAQA,mBAAkB,aAAa,YAAY,CAAA,GAAI,gBAAA,EAAiB;AAI1E,UAAM,cAAc,IAAI,MAAM,YAAA;AAC9B,QAAI,YAEH,QAAO,EACN,QAAQ;MACP,SAHc,mBAAmB,oBAAoB,YAAY,CAAA,CAAA,IAAM,YAAY,CAAA;MAInF,QAAQ,YAAY,CAAA;MACpB,MAAM,YAAY,CAAA;MAClB,YACC,YAAY,CAAA,MAAO,SAChB,CAAA,IACAA,mBAAkB,oBAAoB,YAAY,CAAA,GAAI,gBAAA;MAC1D;AAIH,UAAM,IAAI,MAAM,2DAA2D,GAAA,EAAA;;EAG5E,OAAO,oBAAoB,KAAa,mBAAmB,OAAkB;AAC5E,WAAO,uBAAuB,GAAA,EAAK,IAAA,CAAK,QACvCA,mBAAkB,aAAa,KAAK,gBAAA,CAAiB;;EAIvD,OAAO,YAAY,KAAsB;AACxC,QAAI,UAAU,IACb,QAAO;AAER,QAAI,QAAQ,IACX,QAAO;AAER,QAAI,SAAS,IACZ,QAAO;AAER,QAAI,SAAS,IACZ,QAAO;AAER,QAAI,SAAS,IACZ,QAAO;AAER,QAAI,UAAU,IACb,QAAO;AAER,QAAI,UAAU,IACb,QAAO;AAER,QAAI,aAAa,IAChB,QAAO;AAER,QAAI,YAAY,IACf,QAAO;AAER,QAAI,YAAY,IACf,QAAO,UAAUA,mBAAkB,YAAY,IAAI,MAAA,CAAO;AAE3D,QAAI,YAAY,KAAK;AACpB,YAAM,SAAS,IAAI;AACnB,YAAM,aAAa,OAAO,WAAW,IAAIA,mBAAkB,WAAA,EAAa,KAAK,IAAA;AAC7E,aAAO,GAAG,OAAO,OAAA,KAAY,OAAO,MAAA,KAAW,OAAO,IAAA,GACrD,aAAa,IAAI,UAAA,MAAgB,EAAA;;AAGnC,UAAM,IAAI,MAAM,iBAAA;;;;;AC7FlB,SAAS,WAAW,SAAkC;AACrD,SAAO,IACL,IAAI;IACJ,MAAM;IACN,GAAI;GACJ,EACA,UAAU;IACV,OAAA,wBAAQ,QAAyB,KAAjC;IACA,QAAA,wBAAS,QAAQ,OAAO,GAAA,GAAxB;GACA;;AATM;AAYT,SAAS,WAAwC,MAAS;AACzD,SAAO,IAAI,KAAK,UAAU;IACzB,MAAM;IACN,MAAM;GACN;;AAJO;AAOT,IAAa,UAAU,IAAI,MAAM,kBAAA,EAAoB,UAAU;EAC9D,UAAA,wBAAW,QAAQ;AAClB,UAAM,UAAU,OAAO,QAAQ,WAAW,MAAM,MAAM,GAAA;AACtD,QAAI,CAAC,WAAW,CAAC,kBAAkB,oBAAoB,OAAA,CAAQ,EAC9D,OAAM,IAAI,MAAM,uBAAuB,OAAA,EAAA;KAHzC;EAMA,OAAA,wBAAQ,QACP,OAAO,QAAQ,WAAW,QAAQ,oBAAoB,GAAA,CAAI,IAAI,KAD/D;EAEA,QAAA,wBAAS,QAAQ,oBAAoB,MAAM,GAAA,CAAI,GAA/C;CACA;AAED,IAAa,eAAe,IAAI,WAAA,EAAa,UAAU;EACtD,MAAM;EACN,OAAA,wBAAQ,UAAkB,WAAW,KAAA,GAArC;EACA,QAAA,wBAAS,UAAU,SAAS,IAAI,WAAW,KAAA,CAAM,GAAjD;EACA,UAAA,wBAAW,UAAU;AACpB,QAAI,WAAW,KAAA,EAAO,WAAW,GAChC,OAAM,IAAI,MAAM,+BAAA;KAFlB;CAKA;AAED,IAAa,eAAe,IAAI,OAAO,gBAAgB;EACtD,UAAU;EACV,SAAS,IAAI,IAAA;EACb,QAAQ;CACR;AAED,IAAa,kBAAkB,IAAI,OAAO,mBAAmB;EAC5D,UAAU;EACV,sBAAsB,IAAI,IAAA;EAC1B,SAAS,IAAI,KAAA;CACb;AAED,IAAa,YAAY,IAAI,KAAK,aAAa;EAC9C,kBAAkB;EAClB,cAAc;EACd,WAAW;CACX;AAGD,IAAa,QAAQ,IAAI,KAAK,SAAS;EACtC,cAAc;EACd,aAAa;EACb,QAAQ,IAAI,OAAO,UAAU,EAC5B,sBAAsB,IAAI,IAAA,EAAK,CAC/B;EACD,WAAW;EACX,uBAAuB,IAAI,OAAO,yBAAyB;IAC1D,cAAc,IAAI,IAAA;IAClB,OAAO;GACP;CACD;AAGD,IAAa,cAAc,IAAI,KAAK,eAAe,EAClD,cAAc,IAAI,IAAA,EAAK,CACvB;AAGD,IAAa,iBAAiB,IAAI,KAAK,kBAAkB,EACxD,SAAS,IAAI,KAAA,MAAW,OAAA,EAAQ,CAChC;AAGD,IAAa,eAAe,IAAI,KAAK,gBAAgB;EACpD,QAAQ;EACR,SAAS;CACT;AAGD,IAAa,kBAAkB,IAAI,OAAO,mBAAmB;EAC5D,aAAa;EACb,SAAS;EACT,cAAc;CACd;AAED,IAAa,UAAU,IAAI,KAAK,WAAW;EAC1C,MAAM,IAAI,OAAO,QAAQ,EACxB,OAAO,IAAI,WAAA,EAAa,UAAU;IACjC,OAAA,wBAAQ,QAA8B,OAAO,QAAQ,WAAW,WAAW,GAAA,IAAO,KAAlF;IACA,QAAA,wBAAS,QAAQ,SAAS,IAAI,WAAW,GAAA,CAAI,GAA7C;GACA,EAAC,CACF;EACD,QAAQ;EACS;CACjB;AAED,IAAM,eAAkD,IAAI,KAAK,WAAW;EAC3E,MAAM;EACN,IAAI;EACJ,KAAK;EACL,MAAM;EACN,SAAS;EACT,QAAQ;EACR,QAAQ,IAAI,KAAA,MAAW,YAAA;EACvB,QAAQ,IAAI,KAAA,MAAW,SAAA;EACvB,KAAK;EACL,KAAK;EACL,MAAM;CACN;AAED,IAAa,UAAU,aAAa,UAAU;EAC7C,OAAA,wBAAQ,YACP,OAAO,YAAY,WAAW,kBAAkB,aAAa,SAAS,IAAA,IAAQ,SAD/E;EAEA,QAAA,wBAAS,YAAyB,kBAAkB,YAAY,OAAA,GAAhE;CACA;AAED,IAAa,WAAW,IAAI,KAAK,YAAY;EAC5C,SAAS;EACT,OAAO,IAAI,IAAA;EACX,QAAQ,IAAI,IAAA;EACZ,cAAc,IAAI,MAAM,CAAC,IAAI,IAAA,GAAO,IAAI,IAAA,CAAK,CAAC;CAC9C;AAED,IAAa,uBAAuB,IAAI,OAAO,wBAAwB;EACtE,SAAS;EACT,QAAQ,IAAI,OAAA;EACZ,UAAU,IAAI,OAAA;EACd,eAAe,IAAI,OAAO,OAAA;EAC1B,WAAW,IAAI,OAAO,QAAA;CACtB;AAED,IAAa,UAAU,IAAI,KAAK,WAAW;EAM1C,UAAU;EAIV,iBAAiB,IAAI,OAAO,mBAAmB;IAC9C,SAAS,IAAI,OAAO,QAAA;IACpB,SAAS;GACT;EAID,YAAY,IAAI,OAAO,cAAc;IACpC,MAAM;IACN,SAAS,IAAI,OAAO,QAAA;GACpB;EAID,YAAY,IAAI,OAAO,cAAc;IACpC,aAAa;IACb,SAAS,IAAI,OAAO,QAAA;GACpB;EAID,SAAS,IAAI,OAAO,WAAW;IAC9B,SAAS,IAAI,OACZ,IAAI,WAAA,EAAa,UAAU;MAC1B,OAAA,wBAAQ,QAA8B,OAAO,QAAQ,WAAW,WAAW,GAAA,IAAO,KAAlF;MACA,QAAA,wBAAS,QAAQ,SAAS,IAAI,WAAW,GAAA,CAAI,GAA7C;KACA,CAAC;IAEH,cAAc,IAAI,OAAO,OAAA;GACzB;EAMD,aAAa,IAAI,OAAO,eAAe;IACtC,MAAM,WAAW,OAAA,EAAS,UAAU;MACnC,OAAA,wBAAQ,QACP,QAAQ,OACL,EACA,MAAM,KAAA,IAEN,EACA,MAAM,IAAA,GANV;MAQA,QAAA,wBAAS,QAAQ,IAAI,QAAQ,MAA7B;KACA;IACD,UAAU,IAAI,OAAO,QAAA;GACrB;EACD,SAAS,IAAI,OAAO,WAAW;IAC9B,SAAS,IAAI,OACZ,IAAI,WAAA,EAAa,UAAU;MAC1B,OAAA,wBAAQ,QAA8B,OAAO,QAAQ,WAAW,WAAW,GAAA,IAAO,KAAlF;MACA,QAAA,wBAAS,QAAQ,SAAS,IAAI,WAAW,GAAA,CAAI,GAA7C;KACA,CAAC;IAEH,cAAc,IAAI,OAAO,OAAA;IACzB,SAAS;IACT,QAAQ;GACR;CACD;AAED,IAAa,0BAA0B,IAAI,OAAO,2BAA2B;EAC5E,QAAQ,IAAI,OAAO,OAAA;EACnB,UAAU,IAAI,OAAO,OAAA;CACrB;AAED,IAAa,kBAAkB,IAAI,KAAK,mBAAmB;EACjC;EACzB,aAAa;EACb,SAAS;EACT,yBAAyB;CACzB;AAGD,IAAa,cAAc,IAAI,OAAO,eAAe;EACpD,UAAU,IAAI,OAAO,IAAI,IAAA,CAAK;EAC9B,UAAU,IAAI,OAAO,IAAI,IAAA,CAAK;EAC9B,cAAc,IAAI,OAAO,IAAI,IAAA,CAAK;EAClC,cAAc,IAAI,OAAO,IAAI,IAAA,CAAK;EAClC,OAAO;EACP,OAAO,IAAI,IAAA;CACX;AAED,IAAa,wBAAwB,IAAI,KAAK,yBAAyB;EACtE,MAAM;EACN,OAAO,WAAA;EACM;CACb;AAED,IAAa,YAAY,IAAI,OAAO,aAAa;EAChD,SAAS;EACT,QAAQ,IAAI,OAAA;EACZ,MAAM,IAAI,OAAA;EACV,YAAY,IAAI,OAAO,YAAA;CACvB;AAED,IAAa,UAAU,IAAI,OAAO,WAAW;EAC5C,SAAS,IAAI,OAAO,YAAA;EACpB,OAAO;EACP,OAAO,IAAI,IAAA;EACX,QAAQ,IAAI,IAAA;CACZ;AAED,IAAa,oBAAoB,IAAI,OAAO,qBAAqB;EAChE,MAAM;EACN,QAAQ;EACR,SAAS;EACT,YAAY;CACZ;AAED,IAAa,kBAAkB,IAAI,KAAK,mBAAmB,EAC1D,IAAI,kBAAA,CACJ;AAED,IAAa,cAAc,IAAI,KAAK,eAAe;EAClD,iBAAiB;EACjB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;CACjB;AAED,IAAa,gBAAgB,IAAI,KAAK,iBAAiB,EACtD,IAAI,KAAA,CACJ;AAED,IAAa,QAAQ,IAAI,KAAK,SAAS,EACtC,KAAK,KAAA,CACL;AAED,IAAa,SAAS,IAAI,OAAO,UAAU;EAC1C,OAAO;EACP,SAAS;EACT,OAAO;CACP;AAED,SAAgB,cAAsC,GAAM;AAC3D,SAAO,IAAI,OAAO,iBAAiB,EAAE,IAAA,KAAS;IAC7C,QAAQ;IACR,OAAO;GACP;;AAJc;AAOhB,IAAa,sBAAsB,IAAI,KAAK,uBAAuB;EAClE,SAAS,IAAI,MAAM,EAAA;EACnB,WAAW,IAAI,MAAM,EAAA;EACrB,WAAW,IAAI,MAAM,EAAA;EACrB,SAAS,IAAI,WAAA;EACb,SAAS,IAAI,WAAA;CACb;AAED,IAAa,YAAY,IAAI,KAAK,aAAa;EAC9C,SAAS,IAAI,MAAM,EAAA;EACnB,WAAW,IAAI,MAAM,EAAA;EACrB,WAAW,IAAI,MAAM,EAAA;EACrB,SAAS,IAAI,WAAA;EACb,SAAS,IAAI,MAAM,EAAA;CACnB;AAED,IAAa,gBAAgB,IAAI,OAAO,iBAAiB;EACxD,QAAQ;EACR,QAAQ,IAAI,GAAA;CACZ;AAED,IAAa,oBAAoB,IAAI,OAAO,qBAAqB;EAChE,QAAQ,IAAI,OAAO,aAAA;EACnB,WAAW,IAAI,IAAA;CACf;AAED,IAAa,WAAW,IAAI,OAAO,YAAY;EAC9C,MAAM,IAAI,OAAO,mBAAA;EACjB,QAAQ,IAAI,IAAA;EACZ,aAAa;CACb;AAED,IAAa,eAAe,IAAI,WAAA,EAAa,UAAU;EACtD,OAAA,wBAAQ,QAA8B,OAAO,QAAQ,WAAW,WAAW,GAAA,IAAO,KAAlF;EACA,QAAA,wBAAS,QAAQ,SAAS,IAAI,WAAW,GAAA,CAAI,GAA7C;CACA;AAED,IAAa,0BAA0B,IAAI,OAAO,2BAA2B;EAC5E,eAAe,cAAc,eAAA;EAC7B,cAAc,IAAI,OAAO,YAAA;CACzB;AAED,IAAa,mBAAmB,IAAI,OAAO,yBAAyB,EACnE,MAAM,mBAAA,CACN;AAED,IAAa,uBAAuB,IAAI,OAAO,wBAAwB;EACtE,mBAAmB,IAAI,WAAA;EACvB,gBAAgB,IAAI,OAAA;EACpB,eAAe,IAAI,WAAA;CACnB;AAGD,IAAa,iBAAiB,IAAI,KAAK,kBAAkB;EACxD,OAAO;EACP,SAAS;EACT,WAAW;EACX,MAAM;EACN,2BAA2B;CAC3B;AAGD,IAAa,aAAa,IAAI,OAAO,cAAc;EAClD,YAAY,IAAI,OAAA;EAChB,cAAc,IAAI,OAAA;EAClB,SAAS;CACT;AAGD,IAAa,cAAc,IAAI,OAAO,eAAe;EACpD,YAAY;EACZ,iBAAiB,IAAI,IAAA;CACrB;AAGD,IAAa,cAAc,IAAI,OAAO,eAAe;EACpD,IAAI;EACJ,SAAS,IAAI,IAAA;EACb,WAAW,IAAI,IAAI,IAAI,OAAA,GAAU,IAAI,WAAA,CAAY;EACjD,iBAAiB,IAAI,OAAO,UAAA;EAC5B,cAAc,IAAI,IAAI,SAAS,WAAA;CAC/B;AAGD,IAAa,aAAa,IAAI,OAAO,cAAc;EAClD,MAAM;EACN,mBAAmB,IAAI,KAAA;EACvB,SAAS,IAAI,IAAA;EACb,UAAU,IAAI,WAAA;CACd;AAGD,IAAa,OAAO,IAAI,KAAK,QAAQ;EACpC,MAAM;EACN,SAAS;CACT;AAGD,IAAa,cAAc,IAAI,OAAO,eAAe;EACpD,MAAM;EACN,OAAO;EACP,qBAAqB;EACrB,eAAe,IAAI,IAAA;CACnB;;;ACjZD,IAAM,sBAAsB,IAAI,KAAK,uBAAuB;EAC3D,sBAAsB,IAAI,OAAO,wBAAwB,EAAE,WAAW,QAAA,CAAS;EAC/E,aAAa,IAAI,OAAO,eAAe,EAAE,UAAU,QAAA,CAAS;EAC5D,qBAAqB;EACrB,oBAAoB,IAAI,OAAO,sBAAsB,EAAE,QAAQ,IAAI,WAAA,EAAY,CAAE;EACjF,sBAAsB,IAAI,OAAO,wBAAwB,EAAE,QAAQ,IAAI,GAAA,EAAI,CAAE;EAC7E,uBAAuB,IAAI,OAAO,yBAAyB;IAC1D,WAAW;IACX,UAAU;GACV;CACD;AAGD,IAAM,WAAW,IAAI,OAAO,YAAY;EACvC,SAAS;EACT,MAAM,IAAI,OAAA;CACV;AAED,IAAM,eAAe,IAAI,OAAO,gBAAgB;EAC/C,QAAQ;EACR,UAAU,IAAI,IAAA;EACd,aAAa,IAAI,IAAA;EACjB,cAAc,IAAI,OAAO,IAAI,OAAA,CAAQ;CACrC;AAGD,IAAM,uBAAuB,IAAI,KAAK,wBAAwB;EAC7D,cAAc;EACd,iBAAiB;EACjB,uBAAuB;EACvB,uCAAuC;EACvC,kBAAkB,IAAI,OAAO,oBAAoB,EAAE,KAAK,IAAI,IAAA,EAAK,CAAE;EACnE,2BAA2B,IAAI,OAAO,6BAA6B;IAClE,WAAW,IAAI,IAAA;IACf,cAAc,IAAI,IAAA;GAClB;EACD,oBAAoB,IAAI,OAAO,sBAAsB,EAAE,WAAW,IAAI,IAAA,EAAK,CAAE;EAC7E,qBAAqB;EACrB,mBAAmB;EACnB,sBAAsB;EACtB,uBAAuB;EACvB,iCAAiC;EACjC,sBAAsB;EACtB,uBAAuB;EACvB,qCAAqC;EACrC,sBAAsB;EACtB,yBAAyB;EACzB,gCAAgC;EAChC,0BAA0B;CAC1B;AAGD,IAAM,oBAAoB,IAAI,KAAK,qBAAqB;EACvD,cAAc;EACd,wBAAwB;CACxB;AAGD,IAAM,yBAAyB,IAAI,KAAK,0BAA0B;EACjE,iBAAiB;EACjB,kBAAkB;EAClB,oBAAoB;EACpB,wBAAwB;EACxB,kBAAkB,IAAI,OAAO,oBAAoB;IAChD,YAAY,IAAI,IAAA;IAChB,eAAe,IAAI,IAAA;GACnB;EACD,mBAAmB,IAAI,OAAO,qBAAqB;IAClD,YAAY,IAAI,IAAA;IAChB,eAAe,IAAI,IAAA;GACnB;EACD,yBAAyB,IAAI,OAAO,2BAA2B,EAAE,QAAQ,QAAA,CAAS;EAClF,yBAAyB;EACzB,qBAAqB;EACrB,4BAA4B;EAC5B,0BAA0B;EAC1B,2BAA2B,IAAI,OAAO,YAAA;EACtC,WAAW,IAAI,MAAM,CAAC,cAAc,IAAI,IAAA,CAAK,CAAC;EAC9C,sCAAsC;EACtC,sBAAsB;EACtB,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,yBAAyB;EACzB,sBAAsB,IAAI,OAAO,wBAAwB;IACxD,QAAQ,IAAI,IAAA;IACZ,MAAM;GACN;EACD,mBAAmB,IAAI,OAAO,qBAAqB;IAClD,aAAa,IAAI,IAAA;IACjB,MAAM;GACN;EACD,wBAAwB,IAAI,OAAO,0BAA0B;IAC5D,WAAW,IAAI,IAAA;IACf,cAAc,IAAI,IAAA;GAClB;EACD,iCAAiC,IAAI,OAAO,mCAAmC,EAC9E,KAAK,IAAI,IAAA,EAAK,CACd;EACD,uBAAuB;EACvB,iBAAiB,IAAI,OAAO,mBAAmB;IAAE,aAAa,IAAI,IAAA;IAAO,SAAS,IAAI,IAAA;GAAO;EAC7F,iCAAiC;EACjC,mCAAmC;EACnC,qBAAqB,IAAI,OAAO,uBAAuB,EAAE,cAAc,oBAAA,CAAqB;EAC5F,wBAAwB,IAAI,OAAO,0BAA0B;IAC5D,aAAa,IAAI,IAAA;IACjB,SAAS,IAAI,IAAA;GACb;EACD,mBAAmB;EACnB,6BAA6B;EAC7B,iCAAiC;EACjC,oBAAoB;EACpB,+CAA+C,IAAI,OAClD,iDACA,EACC,mBAAmB,IAAI,OAAO,OAAA,EAAQ,CACtC;EAEF,sBAAsB,IAAI,OAAO,wBAAwB;IACxD,SAAS;IACT,UAAU,IAAI,OAAA;GACd;EACD,qBAAqB,IAAI,OAAO,uBAAuB,EAAE,UAAU,IAAI,OAAA,EAAQ,CAAE;EACjF,8CAA8C;EAC9C,sBAAsB,IAAI,OAAO,wBAAwB;IACxD,WAAW,IAAI,IAAA;IACf,eAAe,IAAI,IAAA;GACnB;EACD,oBAAoB,IAAI,OAAO,sBAAsB;IACpD,WAAW,IAAI,IAAA;IACf,eAAe,IAAI,IAAA;GACnB;EACD,gBAAgB;EAChB,gCAAgC;EAChC,sCAAsC,IAAI,OAAO,wCAAwC,EACxF,IAAI,QAAA,CACJ;CACD;AAGD,IAAa,kBAAkB,IAAI,KAAK,mBAAmB;EAC1D,SAAS;EACT,SAAS,IAAI,OAAO,WAAW;IAC9B,OAAO;IACP,SAAS,IAAI,OAAO,IAAI,IAAA,CAAK;GAC7B;CACD;AAGD,IAAM,iBAAiB,IAAI,OAAO,kBAAkB;EACnD,iBAAiB,IAAI,IAAA;EACrB,aAAa,IAAI,IAAA;EACjB,eAAe,IAAI,IAAA;EACnB,yBAAyB,IAAI,IAAA;CAC7B;AAGD,IAAM,uBAAuB,IAAI,OAAO,wBAAwB;EAC/D,QAAQ;EACR,eAAe,IAAI,IAAA;EACnB,SAAS;EACT,oBAAoB,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,IAAA,CAAK,CAAC,CAAC;EAC9D,eAAe,IAAI,OAAO,YAAA;EAC1B,mBAAmB;EACnB,SAAS,IAAI,OAAO,IAAI,MAAM,CAAC,cAAc,KAAA,CAAM,CAAC;EACpD,SAAS,IAAI,OAAO,IAAI,MAAM,CAAC,cAAc,KAAA,CAAM,CAAC;EACpD,WAAW,IAAI,OAAO,IAAI,MAAM,CAAC,cAAc,KAAA,CAAM,CAAC;EACtD,SAAS,IAAI,OAAO,YAAA;EACpB,sBAAsB,IAAI,OAAO,YAAA;EACjC,SAAS,IAAI,OAAO,YAAA;EACpB,WAAW,IAAI,MAAM,CAAC,cAAc,KAAA,CAAM;EAC1C,cAAc,IAAI,OAAO,YAAA;EACzB,cAAc,IAAI,OAAO,YAAA;CACzB;AAGD,IAAM,gBAAgB,IAAI,MAAM,CAAC,IAAI,IAAA,GAAO,YAAA,CAAa;AAGzD,IAAM,WAAW,IAAI,KAAK,YAAY;EACrC,UAAU;EACV,OAAO,IAAI,MAAM,CAAC,eAAe,KAAA,CAAM;CACvC;AAGD,IAAM,qBAAqB,IAAI,OAAO,sBAAsB;EAC3D,SAAS;EAET,IAAI;CACJ;AAGD,IAAM,uBAAuB,IAAI,KAAK,wBAAwB;EAC7D,OAAO;EACP,OAAO;CACP;AAGD,IAAM,mBAAmB,IAAI,KAAK,oBAAoB;EACrD,SAAS,IAAI,IAAA;EACb,cAAc,IAAI,MAAM,CAAC,IAAI,IAAA,GAAO,IAAI,IAAA,CAAK,CAAC;EAE9C,aAAa,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,IAAA,GAAO,YAAA,CAAa,CAAC;CAC5D;AAGD,IAAM,qBAAqB,IAAI,OAAO,sBAAsB;EAC3D,SAAS;EACT,WAAW;EACX,OAAO;CACP;AAGD,IAAM,YAAY,IAAI,KAAK,aAAa;EACvC,UAAU;EACV,aAAa,IAAI,MAAM,CAAC,cAAc,KAAA,CAAM;EAC5C,cAAc;EACM;CACpB;AAGD,IAAM,cAAc,IAAI,KAAK,eAAe;EAC3C,MAAM;EACN,SAAS;EACT,SAAS;CACT;AAGD,IAAM,sBAAsB,IAAI,OAAO,uBAAuB;EAC7D,YAAY;EACZ,aAAa;EACb,aAAa;CACb;AAGD,IAAM,yBAAyB,IAAI,KAAK,0BAA0B;EACjE,cAAc;EACd,4BAA4B,IAAI,IAAA;EAChC,0BAA0B,IAAI,IAAA;EAC9B,WAAW,IAAI,IAAA;EACf,gBAAgB;CAChB;AAGD,IAAM,uBAAuB,IAAI,OAAO,wBAAwB;EAC/D,QAAQ;EACR,eAAe,IAAI,IAAA;EACnB,SAAS;EACT,mBAAmB;EACnB,gBAAgB,IAAI,OAAO,IAAI,IAAA,CAAK;EACpC,cAAc,IAAI,OAAO,YAAA;EACzB,cAAc,IAAI,OAAO,YAAA;EACzB,gBAAgB,IAAI,IAAA;EACpB,gBAAgB,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,mBAAA,CAAoB,CAAC;EACpE,2BAA2B,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,sBAAA,CAAuB,CAAC;EAClF,eAAe,IAAI,OAAO,YAAA;CAC1B;AAGD,IAAa,qBAAqB,IAAI,KAAK,sBAAsB;EAChE,IAAI;EACJ,IAAI;CACJ;;;ACxND,SAAgB,0BACf,MACoC;AACpC,UAAQ,MAAR;IACC,KAAK;AACJ,aAAO,IAAI,GAAA;IACZ,KAAK;AACJ,aAAO,IAAI,IAAA;IACZ,KAAK;AACJ,aAAO,IAAI,IAAA;IACZ,KAAK;AACJ,aAAO,IAAI,IAAA;IACZ,KAAK;AACJ,aAAO,IAAI,KAAA;IACZ,KAAK;AACJ,aAAO,IAAI,KAAA;IACZ,KAAK;AACJ,aAAO,IAAI,KAAA;IACZ,KAAK;AACJ,aAAO,IAAI,OAAA;IACZ,KAAK;IACL,KAAK;AACJ,aAAO;;AAGT,QAAM,UAAW,KAAgB,MAAM,yBAAA;AACvC,MAAI,SAAS;AACZ,UAAM,CAAC,MAAM,KAAA,IAAS,QAAQ,MAAM,CAAA;AACpC,QAAI,SAAS,SACZ,QAAO,IAAI,OAAO,0BAA0B,KAAA,CAAsB;QAElE,QAAO,IAAI,OAAO,0BAA0B,KAAA,CAAsB;;AAIpE,QAAM,IAAI,MAAM,2BAA2B,IAAA,EAAA;;AAnC5B;;;ACKhB,IAAM,SAAS;EACd,GAAG;EACH,IAAI,IAAI,GAAA;EACR,KAAK,IAAI,IAAA;EACT,KAAK,IAAI,IAAA;EACT,KAAK,IAAI,IAAA;EACT,MAAM,IAAI,KAAA;EACV,MAAM,IAAI,KAAA;EACV,SAAS,IAAI,QAAA;EACb,MAAM,IAAI,KAAA;EACV,QAAQ,IAAI,OAAA;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;ACpGD,IAAa,cAAb,MAAaC,aAAY;SAAA;;;EACxB;EACA;EAEA,YAAY,EAAE,QAAQ,MAAA,IAA8B,CAAA,GAAI;AACvD,SAAA,UAAe,UAAU,CAAA;AACzB,SAAA,SAAc,SAAS,oBAAI,IAAA;;EAG5B,KAAQ,KAA4B,MAA4C;AAC/E,UAAM,WAAW,CAAC,KAAA,SAAc,GAAG,GAAA,EAAK,KAAK,GAAA;AAE7C,QAAI,KAAA,OAAY,IAAI,QAAA,EACnB,QAAO,KAAA,OAAY,IAAI,QAAA;AAGxB,UAAM,SAAS,KAAA;AAEf,SAAA,OAAY,IAAI,UAAU,MAAA;AAE1B,QAAI,OAAO,WAAW,YAAY,WAAW,QAAQ,UAAU,OAC9D,QAAO,QAAQ,QAAQ,MAAA,EACrB,KAAA,CAAM,MAAM;AACZ,WAAA,OAAY,IAAI,UAAU,CAAA;AAC1B,aAAO;OAEP,MAAA,CAAO,QAAQ;AACf,WAAA,OAAY,OAAO,QAAA;AACnB,YAAM;;AAIT,WAAO;;EAGR,SAAY,KAA4B,MAAkB;AACzD,UAAM,WAAW,CAAC,KAAA,SAAc,GAAG,GAAA,EAAK,KAAK,GAAA;AAE7C,QAAI,KAAA,OAAY,IAAI,QAAA,EACnB,QAAO,KAAA,OAAY,IAAI,QAAA;AAGxB,UAAM,SAAS,KAAA;AAEf,SAAA,OAAY,IAAI,UAAU,MAAA;AAE1B,WAAO;;EAGR,MAAM,QAAmB;AACxB,UAAM,YAAY,CAAC,GAAG,KAAA,SAAc,GAAI,UAAU,CAAA,CAAE,EAAG,KAAK,GAAA;AAC5D,QAAI,CAAC,WAAW;AACf,WAAA,OAAY,MAAA;AACZ;;AAGD,eAAW,OAAO,KAAA,OAAY,KAAA,EAC7B,KAAI,IAAI,WAAW,SAAA,EAClB,MAAA,OAAY,OAAO,GAAA;;EAKtB,MAAM,QAA2B;AAChC,WAAO,IAAIA,aAAY;MACtB,QAAQ,CAAC,GAAG,KAAA,SAAc,GAAI,MAAM,QAAQ,MAAA,IAAU,SAAS,CAAC,MAAA,CAAO;MACvE,OAAO,KAAA;KACP;;;;;ACnEH,IAAsB,aAAtB,MAAiC;SAAA;;;EAKhC,YAAY,EACX,SACA,MACA,QAAQ,MAAM,SAAS,IAAI,YAAA,EAAa,GACL;AACnC,SAAK,UAAU;AACf,SAAK,OAAO,QAAQ;AACpB,SAAK,QAAQ;;EAKd,WACI,eACF;AACD,UAAM,aAAsC,OAAO,YAClD,cAAc,IAAA,CAAK,iBAAiB;AACnC,aAAO,CAAC,aAAa,MAAM,aAAa,SAAS,IAAA,CAAK;MACrD;AAGH,UAAM,cAAc,oBAAI,IAAA;AAExB,WAAO,IAAI,MAAM,MAAM,EACtB,IAAI,QAAQ,MAAM,UAAU;AAC3B,UAAI,OAAO,SAAS,YAAY,QAAQ,WACvC,QAAO,WAAW,IAAA;AAEnB,YAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,QAAA;AACxC,UAAI,OAAO,UAAU,YAAY;AAChC,YAAI,SAAS,UACZ,QAAO,MAAM,KAAK,QAAA;AAEnB,YAAI,CAAC,YAAY,IAAI,IAAA,EACpB,aAAY,IAAI,MAAM,MAAM,KAAK,MAAA,CAAO;AAEzC,eAAO,YAAY,IAAI,IAAA;;AAExB,aAAO;OAER;;;;;AC1CI,IAAM,SAAqC,2BAAW,KAAK;EAChE;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAI;EAAI;EAClD;EAAI;EAAI;EAAG;EAAG;EAAG;EAAI;EAAI;EAAG;EAAG;EAAI;EAAG;EAAG;EAAI;EAAG;EAAG;EACnD;EAAI;EAAG;EAAI;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;EAAG;EAAG;EAAG;EAAG;EACnD;EAAG;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;EAAG;EAAG;EAAI;EAAG;EAAG;EAAI;EACnD;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAG;EAAI;EAAI;EAAG;EAAG;EAAG;EAClD;EAAG;EAAI;EAAG;EAAI;EAAG;EAAI;EAAG;EAAG;EAAG;EAAI;EAAG;EAAG;EAAI;EAAI;EAAG;EACnD;EAAI;EAAG;EAAG;EAAI;EAAI;EAAI;EAAG;EAAI;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAClD;EAAI;EAAI;EAAG;EAAI;EAAI;EAAG;EAAG;EAAG;EAAG;EAAG;EAAI;EAAG;EAAG;EAAG;EAAG;EAClD;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;EAAG;EAAG;EAAI;EAAG;EAAI;EAAG;EAAG;EAAG;EAAI;EACnD;EAAI;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAI;EAAI;EAAG;EAAI;EAAG;EAAI;EAAI;EACnD;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAI;EAAI;EAClD;EAAI;EAAI;EAAG;EAAG;EAAG;EAAI;EAAI;EAAG;EAAG;EAAI;EAAG;EAAG;EAAI;EAAG;EAAG;;EAEnD;EAAI;EAAG;EAAI;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;EAAG;EAAG;EAAG;EAAG;EACnD;EAAG;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAI;EAAG;EAAG;EAAG;EAAI;EAAG;EAAG;EAAI;EACnD;EAAG;EAAG;EAAG;EAAG;EAAG;EAAG;EAAI;EAAI;EAAI;EAAG;EAAI;EAAI;EAAG;EAAG;EAAG;EAClD;EAAG;EAAI;EAAG;EAAI;EAAG;EAAI;EAAG;EAAG;EAAG;EAAI;EAAG;EAAG;EAAI;EAAI;EAAG;CACpD;;;ACFD,IAAM,SAAyB,4BAAY,KAAK;EAC9C;EAAY;EAAY;EAAY;EAAY;EAAY;EAAY;EAAY;EACpF;EAAY;EAAY;EAAY;EAAY;EAAY;EAAY;EAAY;CACrF;AAED,IAAM,OAAuB,oBAAI,YAAY,EAAE;AAG/C,SAAS,IAAI,GAAW,GAAW,GAAW,GAAW,KAAkB,GAAS;AAElF,QAAM,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC;AACjC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AACzC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AACzC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AACzC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AAEzC,MAAI,KAAS,MAAM,IAAI,IAAI,EAAE;AAC7B,OAAS,MAAM,IAAI,IAAI,IAAI,EAAE;AAC7B,OAAK,KAAK;AAEV,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,GAAE;AACxC,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAQ,QAAQ,IAAI,EAAE,GAAG,IAAQ,QAAQ,IAAI,EAAE,EAAC;AAEhE,GAAC,EAAE,GAAG,IAAI,GAAG,GAAE,IAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAE1C,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,GAAE;AACxC,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAQ,OAAO,IAAI,IAAI,EAAE,GAAG,IAAQ,OAAO,IAAI,IAAI,EAAE,EAAC;AACtE,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AACxC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AACxC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AACxC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AAC1C;AAvBS;AAyBT,SAAS,IAAI,GAAW,GAAW,GAAW,GAAW,KAAkB,GAAS;AAElF,QAAM,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC;AACjC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AACzC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AACzC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AACzC,MAAI,KAAK,KAAK,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC;AAEzC,MAAI,KAAS,MAAM,IAAI,IAAI,EAAE;AAC7B,OAAS,MAAM,IAAI,IAAI,IAAI,EAAE;AAC7B,OAAK,KAAK;AAEV,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,GAAE;AACxC,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAQ,OAAO,IAAI,IAAI,EAAE,GAAG,IAAQ,OAAO,IAAI,IAAI,EAAE,EAAC;AAEtE,GAAC,EAAE,GAAG,IAAI,GAAG,GAAE,IAAS,IAAI,IAAI,IAAI,IAAI,EAAE;AAE1C,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,GAAE;AACxC,GAAC,EAAE,IAAI,GAAE,IAAK,EAAE,IAAQ,OAAO,IAAI,IAAI,EAAE,GAAG,IAAQ,OAAO,IAAI,IAAI,EAAE,EAAC;AACtE,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AACxC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AACxC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AACxC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAM,KAAK,IAAI,IAAI,CAAC,IAAI;AAC1C;AAvBS;AAyBT,SAAS,gBACP,WACA,OAA+B,CAAA,GAC/B,QACA,SACA,SAAe;AAEf,UAAQ,MAAM;AACd,MAAI,YAAY,KAAK,YAAY;AAAQ,UAAM,IAAI,MAAM,8BAA8B;AACvF,QAAM,EAAE,KAAK,MAAM,gBAAe,IAAK;AACvC,MAAI,QAAQ,WAAc,IAAI,SAAS,KAAK,IAAI,SAAS;AACvD,UAAM,IAAI,MAAM,oDAAoD,MAAM;AAC5E,MAAI,SAAS;AAAW,WAAO,MAAM,SAAS,MAAM;AACpD,MAAI,oBAAoB;AAAW,WAAO,iBAAiB,SAAS,iBAAiB;AACvF;AAdS;AAiBH,IAAgB,UAAhB,MAAuB;EAtG7B,OAsG6B;;;EAKjB;EACA;EACA,WAAW;EACX,YAAY;EACZ,SAAiB;EACjB,MAAc;EACf;EACA;EAET,YAAY,UAAkB,WAAiB;AAC7C,YAAQ,QAAQ;AAChB,YAAQ,SAAS;AACjB,SAAK,WAAW;AAChB,SAAK,YAAY;AACjB,SAAK,SAAS,IAAI,WAAW,QAAQ;AACrC,SAAK,WAAW,IAAI,KAAK,MAAM;EACjC;EACA,OAAO,MAAgB;AACrB,YAAQ,IAAI;AACZ,WAAO,IAAI;AAKX,UAAM,EAAE,UAAU,QAAQ,SAAQ,IAAK;AACvC,UAAM,MAAM,KAAK;AACjB,UAAM,SAAS,KAAK;AACpB,UAAM,MAAM,KAAK;AACjB,aAAS,MAAM,GAAG,MAAM,OAAO;AAE7B,UAAI,KAAK,QAAQ,UAAU;AACzB,mBAAW,QAAQ;AACnB,aAAK,SAAS,UAAU,GAAG,KAAK;AAChC,mBAAW,QAAQ;AACnB,aAAK,MAAM;MACb;AACA,YAAM,OAAO,KAAK,IAAI,WAAW,KAAK,KAAK,MAAM,GAAG;AACpD,YAAM,aAAa,SAAS;AAE5B,UAAI,SAAS,YAAY,EAAE,aAAa,MAAM,MAAM,OAAO,KAAK;AAC9D,cAAM,SAAS,IAAI,YAAY,KAAK,YAAY,KAAK,OAAO,MAAM,OAAO,CAAC,CAAC;AAC3E,mBAAW,MAAM;AACjB,iBAAS,QAAQ,GAAG,MAAM,WAAW,KAAK,SAAS,SAAS,QAAQ,OAAO,UAAU;AACnF,eAAK,UAAU;AACf,eAAK,SAAS,QAAQ,OAAO,KAAK;QACpC;AACA,mBAAW,MAAM;AACjB;MACF;AACA,aAAO,IAAI,KAAK,SAAS,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG;AACnD,WAAK,OAAO;AACZ,WAAK,UAAU;AACf,aAAO;IACT;AACA,WAAO;EACT;EACA,WAAW,KAAe;AACxB,YAAQ,IAAI;AACZ,YAAQ,KAAK,IAAI;AACjB,UAAM,EAAE,KAAK,SAAQ,IAAK;AAC1B,SAAK,WAAW;AAEhB,UAAM,KAAK,OAAO,SAAS,GAAG,CAAC;AAC/B,eAAW,QAAQ;AACnB,SAAK,SAAS,UAAU,GAAG,IAAI;AAC/B,eAAW,QAAQ;AACnB,UAAM,QAAQ,IAAI,GAAG;AACrB,SAAK,IAAG,EAAG,QAAQ,CAAC,GAAG,MAAO,MAAM,CAAC,IAAI,UAAU,CAAC,CAAE;EACxD;EACA,SAAM;AACJ,UAAM,EAAE,QAAQ,UAAS,IAAK;AAC9B,SAAK,WAAW,MAAM;AACtB,UAAM,MAAM,OAAO,MAAM,GAAG,SAAS;AACrC,SAAK,QAAO;AACZ,WAAO;EACT;EACA,WAAW,IAAM;AACf,UAAM,EAAE,QAAQ,QAAQ,UAAU,WAAW,WAAW,IAAG,IAAK;AAChE,WAAO,IAAK,KAAK,YAAoB,EAAE,OAAO,UAAS,CAAE;AACzD,OAAG,IAAI,GAAG,KAAK,IAAG,CAAE;AACpB,OAAG,OAAO,IAAI,MAAM;AACpB,OAAG,YAAY;AACf,OAAG,WAAW;AACd,OAAG,SAAS;AACZ,OAAG,MAAM;AAET,OAAG,YAAY;AACf,WAAO;EACT;EACA,QAAK;AACH,WAAO,KAAK,WAAU;EACxB;;AAII,IAAO,WAAP,cAAwB,QAAiB;EA1M/C,OA0M+C;;;;EAErC,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,CAAC,IAAI;EAClB,MAAM,OAAO,EAAE,IAAI;EACnB,MAAM,OAAO,EAAE,IAAI;EACnB,MAAM,OAAO,EAAE,IAAI;EACnB,MAAM,OAAO,EAAE,IAAI;EACnB,MAAM,OAAO,EAAE,IAAI;EACnB,MAAM,OAAO,EAAE,IAAI;EAE3B,YAAY,OAAmB,CAAA,GAAE;AAC/B,UAAM,OAAO,KAAK,UAAU,SAAY,KAAK,KAAK;AAClD,UAAM,KAAK,IAAI;AACf,oBAAgB,MAAM,MAAM,IAAI,IAAI,EAAE;AACtC,QAAI,EAAE,KAAK,iBAAiB,KAAI,IAAK;AACrC,QAAI,YAAY;AAChB,QAAI,QAAQ,QAAW;AACrB,aAAO,KAAK,QAAW,KAAK;AAC5B,kBAAY,IAAI;IAClB;AACA,SAAK,OAAO,KAAK,YAAa,aAAa,IAAM,KAAQ,KAAO,KAAQ;AACxE,QAAI,SAAS,QAAW;AACtB,aAAO,MAAM,QAAW,MAAM;AAC9B,YAAM,MAAM,IAAI,IAAI;AACpB,WAAK,OAAO,UAAU,IAAI,CAAC,CAAC;AAC5B,WAAK,OAAO,UAAU,IAAI,CAAC,CAAC;AAC5B,WAAK,OAAO,UAAU,IAAI,CAAC,CAAC;AAC5B,WAAK,OAAO,UAAU,IAAI,CAAC,CAAC;IAC9B;AACA,QAAI,oBAAoB,QAAW;AACjC,aAAO,iBAAiB,QAAW,iBAAiB;AACpD,YAAM,OAAO,IAAI,eAAe;AAChC,WAAK,OAAO,UAAU,KAAK,CAAC,CAAC;AAC7B,WAAK,OAAO,UAAU,KAAK,CAAC,CAAC;AAC7B,WAAK,OAAO,UAAU,KAAK,CAAC,CAAC;AAC7B,WAAK,OAAO,UAAU,KAAK,CAAC,CAAC;IAC/B;AACA,QAAI,QAAQ,QAAW;AAErB,YAAM,MAAM,IAAI,WAAW,KAAK,QAAQ;AACxC,UAAI,IAAI,GAAG;AACX,WAAK,OAAO,GAAG;IACjB;EACF;;EAEU,MAAG;AAIX,QAAI,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAG,IAAK;AACzF,WAAO,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;EACxF;;EAEU,IACR,KAAa,KAAa,KAAa,KACvC,KAAa,KAAa,KAAa,KACvC,KAAa,KAAa,KAAa,KACvC,KAAa,KAAa,KAAa,KAAW;AAElD,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;AACjB,SAAK,MAAM,MAAM;EACnB;EACU,SAAS,KAAkB,QAAgB,QAAe;AAClE,SAAK,IAAG,EAAG,QAAQ,CAAC,GAAG,MAAO,KAAK,CAAC,IAAI,CAAE;AAC1C,SAAK,IAAI,QAAQ,EAAE;AACnB,QAAI,EAAE,GAAG,EAAC,IAAS,QAAQ,OAAO,KAAK,MAAM,CAAC;AAC9C,SAAK,EAAE,IAAI,OAAO,CAAC,IAAI;AACvB,SAAK,EAAE,IAAI,OAAO,CAAC,IAAI;AAEvB,QAAI,QAAQ;AACV,WAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,WAAK,EAAE,IAAI,CAAC,KAAK,EAAE;IACrB;AACA,QAAI,IAAI;AACR,UAAM,IAAI;AACV,aAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AACzC,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AACzC,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AACzC,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AACzC,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAC1C,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAC1C,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAC1C,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAE1C,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAC1C,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAC1C,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAC1C,UAAI,GAAG,GAAG,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AAC1C,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AACzC,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AACzC,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;AACzC,UAAI,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,CAAC;IAC3C;AACA,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE;AAC7B,SAAK,OAAO,KAAK,EAAE,IAAI,KAAK,EAAE;AAC9B,SAAK,OAAO,KAAK,EAAE,IAAI,KAAK,EAAE;AAC9B,SAAK,OAAO,KAAK,EAAE,IAAI,KAAK,EAAE;AAC9B,SAAK,OAAO,KAAK,EAAE,IAAI,KAAK,EAAE;AAC9B,SAAK,OAAO,KAAK,EAAE,IAAI,KAAK,EAAE;AAC9B,SAAK,OAAO,KAAK,EAAE,IAAI,KAAK,EAAE;AAC9B,UAAM,IAAI;EACZ;EACA,UAAO;AACL,SAAK,YAAY;AACjB,UAAM,KAAK,QAAQ;AACnB,SAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;EACzD;;AAQK,IAAM,UAAuD,6BAClE,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC;;;ACrV9B,SAAgB,qBACf,UACA,SACA,KACC;AACD,QAAM,UAAUC,OAAI,QAAQ,UAAU,QAAA,EAAU,QAAA;AAChD,QAAM,MAAMA,OAAI,QAAQ,UAAU,OAAA,EAAS,QAAA;AAC3C,QAAM,YAAYA,OAAI,IAAA,EAAM,UAAU,IAAI,MAAA,EAAQ,QAAA;AAElD,QAAM,OAAO,QAAQ,OAAO,EAC3B,OAAO,GAAA,CACP;AAED,OAAK,OAAO,IAAI,WAAW,CAAC,GAAA,CAAK,CAAC;AAClC,OAAK,OAAO,OAAA;AACZ,OAAK,OAAO,SAAA;AACZ,OAAK,OAAO,GAAA;AACZ,OAAK,OAAO,GAAA;AAEZ,SAAO,KAAK,MAAM,KAAK,OAAA,EAAS,MAAM,GAAG,EAAA,CAAG,CAAC;;AAnB9B;;;ACJhB,IAAa,kBAAkB;;;ACY/B,IAAMC,kBAAiB;AACvB,IAAM,iBAAiB,EACtB,cAAc,eAAe,eAAA,GAAA;AAa9B,IAAa,YAAb,MAA4D;SAAA;;;EAC3D;EACA;EACA;EACA;EAKA,YAAY,EAAE,OAAO,KAAK,WAAW,IAAI,UAAA,GAA+B;AACvE,SAAA,SAAc;AACd,SAAA,OAAY;AACZ,SAAA,YAAiB;AACjB,SAAA,aAAkB;MACjB,UAAU,WAAW;MACrB,OAAO,WAAW;;AAGnB,sBAAkB,KAAA,UAAKC;;EAGxB,IAAA,wBAA4B;AAC3B,WAAO,KAAA,OAAY,SAAS,CAAC,yBAAyB,KAAA,QAAa,EAAA,GAAG,MAAQ;AAC7E,YAAM,SAAS,IAAI,WAA2B,OAAO,aAAa;AACjE,YAAI,CAAC,KAAA,KACJ,OAAM,IAAI,MACT,4DAA4D,SAAS,KAAK,IAAA,CAAK,GAAC;AAGlF,cAAM,WAAW,MAAM,KAAA,iBAAsB,QAAA;AAE7C,eAAO,SAAS,IAAA,CACd,QAAQ,SAAS,GAAA,KAAQ,oBAAI,MAAM,8BAA8B,GAAA,EAAA,CAAM;;AAG1E,YAAM,YAAY,KAAA,YAAiB;AAEnC,UAAI,UACH,YAAW,CAAC,KAAK,EAAA,KAAO,OAAO,QAAQ,SAAA,EACtC,QAAO,MAAM,KAAK,EAAA;AAIpB,aAAO;;;EAIT,IAAA,qBAAyB;AACxB,WAAO,KAAA,OAAY,SAAS,CAAC,sBAAsB,KAAA,QAAa,EAAA,GAAG,MAAQ;AAC1E,YAAM,SAAS,IAAI,WAA2B,OAAO,UAAU;AAC9D,YAAI,CAAC,KAAA,KACJ,OAAM,IAAI,MACT,4DAA4D,MAAM,KAAK,IAAA,CAAK,GAAC;AAG/E,cAAM,WAAW,MAAM,KAAA,cAAmB,KAAA;AAE1C,eAAO,MAAM,IAAA,CAAK,SAAS,SAAS,IAAA,KAAS,oBAAI,MAAM,2BAA2B,IAAA,EAAA,CAAO;;AAG1F,YAAM,YAAY,KAAA,YAAiB;AAEnC,UAAI,UACH,YAAW,CAAC,MAAM,EAAA,KAAO,OAAO,QAAQ,SAAA,EACvC,QAAO,MAAM,MAAM,EAAA;AAIrB,aAAO;;;EAIT,MAAA,iBAAuB,UAA6B;AACnD,QAAI,SAAS,WAAW,EAAG,QAAO,CAAA;AAElC,UAAM,UAAU,MAAM,UAAU,KAAA,SAAKC;AACrC,UAAM,UAAkC,CAAA;AAExC,UAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,UAAU;AAC5B,YAAM,OAAO,MAAM,KAAA,OAClB,uBACA,EACC,OAAO,MAAA,CACP;AAGF,UAAI,CAAC,MAAM,WAAY;AAEvB,iBAAW,OAAO,OAAO,KAAK,MAAM,UAAA,GAAa;AAChD,cAAM,UAAU,KAAK,WAAW,GAAA,GAAM;AAEtC,YAAI,CAAC,QAAS;AAEd,gBAAQ,GAAA,IAAO;;MAEf;AAGH,WAAO;;EAGR,MAAA,cAAoB,OAA0B;AAC7C,QAAI,MAAM,WAAW,EAAG,QAAO,CAAA;AAE/B,UAAM,UAAU,MAAM,OAAO,KAAA,SAAKA;AAClC,UAAM,UAAkC,CAAA;AAExC,UAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,UAAU;AAC5B,YAAM,OAAO,MAAM,KAAA,OAClB,8BACA,EACC,OAAO,MAAA,CACP;AAGF,UAAI,CAAC,MAAM,WAAY;AAEvB,iBAAW,QAAQ,OAAO,KAAK,MAAM,UAAA,GAAa;AACjD,cAAM,WAAW,KAAK,WAAW,IAAA,GAAO;AACxC,YAAI,CAAC,SAAU;AAEf,gBAAQ,IAAA,IAAQ;;MAEhB;AAGH,WAAO;;EAGR,MAAA,OAAgB,KAAa,MAA2C;AACvE,QAAI,CAAC,KAAA,KACJ,OAAM,IAAI,MAAM,+CAAA;AAGjB,UAAM,WAAW,MAAM,MAAM,GAAG,KAAA,IAAKC,GAAO,GAAA,IAAO;MAClD,QAAQ;MACR,SAAS;QACR,gBAAgB;QAChB,GAAG;;MAEJ,MAAM,KAAK,UAAU,IAAA;KACrB;AAED,QAAI,CAAC,SAAS,IAAI;AACjB,YAAM,YAAY,MAAM,SAAS,KAAA,EAAO,MAAA,OAAa,CAAA,EAAE;AACvD,YAAM,IAAI,MAAM,4BAA4B,WAAW,OAAA,EAAA;;AAGxD,WAAO,SAAS,KAAA;;EAGjB,MAAM,eAAe,EACpB,SAAS,KAAA,GACqF;AAC9F,QAAI,CAAC,WAAW,IAAA,EACf,QAAO,EACN,SAAS,KAAA;AAIX,WAAO,EACN,SAFgB,MAAM,KAAA,sBAA2B,KAAK,IAAA,EAAK;;EAM7D,MAAM,YAAY,EACjB,KAAA,GACwF;AACxF,QAAI,CAAC,WAAW,IAAA,EACf,QAAO,EACN,KAAA;AAIF,UAAM,WAAW,CAAC,GAAG,gBAAgB,IAAA,CAAK;AAC1C,UAAM,gBAAgB,MAAM,KAAA,mBAAwB,SAAS,QAAA;AAE7D,UAAM,UAAkC,CAAA;AAExC,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACzC,YAAM,eAAe,cAAc,CAAA;AACnC,UAAI,wBAAwB,MAC3B,OAAM;AAEP,cAAQ,SAAS,CAAA,CAAA,IAAM;;AAGxB,WAAO,EACN,MAAM,gBAAgB,MAAM,OAAA,EAAQ;;EAItC,MAAM,QAAQ,EACb,QAAQ,CAAA,GACR,WAAW,CAAA,EAAE,GACmE;AAChF,UAAM,WAAW,oBAAI,IAAA;AAErB,eAAW,QAAQ,SAAS,CAAA,EAC3B,iBAAgB,MAAM,QAAA;AAGvB,UAAM,aAAa,CAAC,GAAG,QAAA;AACvB,UAAM,CAAC,eAAe,gBAAA,IAAoB,MAAM,QAAQ,IAAI,CAC3D,WAAW,SAAS,IAAI,KAAA,mBAAwB,SAAS,UAAA,IAAc,CAAA,GACvE,SAAS,SAAS,IAAI,KAAA,sBAA2B,SAAS,QAAA,IAAY,CAAA,CAAE,CACxE;AAED,UAAM,UAAkC,EACvC,GAAG,KAAA,YAAiB,MAAA;AAGrB,eAAW,CAAC,GAAG,IAAA,KAAS,WAAW,QAAA,GAAW;AAC7C,YAAM,eAAe,cAAc,CAAA;AACnC,UAAI,wBAAwB,MAC3B,OAAM;AAEP,cAAQ,IAAA,IAAQ;;AAGjB,UAAM,gBAKF,CAAA;AAEJ,eAAW,QAAQ,SAAS,CAAA,EAG3B,eAAc,IAAA,IAAQ,EACrB,MAHoB,gBAAgB,MAAM,OAAA,EAAQ;AAOpD,UAAM,mBAKF,CAAA;AAEJ,eAAW,CAAC,GAAG,GAAA,MAAS,YAAY,CAAA,GAAI,QAAA,GAAW;AAClD,YAAM,cAAc,KAAA,YAAiB,WAAW,GAAA,KAAQ,iBAAiB,CAAA;AAEzE,UAAI,uBAAuB,MAC1B,OAAM;AAGP,uBAAiB,GAAA,IAAO,EACvB,SAAS,YAAA;;AAIX,WAAO;MACN,OAAO;MACP,UAAU;;;;AAKb,SAAS,kBAAkB,WAGxB;AACF,MAAI,WAAW,SACd,YAAW,CAAC,KAAK,EAAA,KAAO,OAAO,QAAQ,UAAU,QAAA,GAAW;AAC3D,QAAI,CAAC,oBAAoB,GAAA,EACxB,OAAM,IAAI,MAAM,yBAAyB,GAAA,EAAA;AAE1C,QAAI,CAAC,kBAAkB,oBAAoB,EAAA,CAAG,EAC7C,OAAM,IAAI,MAAM,uBAAuB,EAAA,EAAA;;AAK1C,MAAI,WAAW,MACd,YAAW,CAAC,MAAM,GAAA,KAAQ,OAAO,QAAQ,UAAU,KAAA,GAAQ;AAE1D,QAAI,eAAe,IAAA,EAAM,WAAW,SAAS,EAC5C,OAAM,IAAI,MACT,iHAAA;AAMF,QAAI,CAAC,kBAFe,eAAe,GAAA,EAEA,OAAA,EAClC,OAAM,IAAI,MAAM,iBAAiB,GAAA,EAAA;;;AA3B5B;AAoCT,SAAgB,gBAAgB,MAA0B,QAAQ,oBAAI,IAAA,GAAe;AACpF,MAAI,OAAO,SAAS,YAAY,CAAC,WAAW,IAAA,EAAO,QAAO;AAE1D,MAAI,OAAO,SAAS,YAAY,KAAK,WAAW,SAAA,KAAc,KAAK,SAAS,GAAA,EAC3E,QAAO,gBAAgB,KAAK,MAAM,GAAG,EAAA,GAAK,KAAA;AAG3C,QAAM,MAAM,YAAY,IAAA,IAAQ,OAAO,eAAe,IAAA;AAEtD,MAAI,WAAW,IAAI,OAAA,EAAU,OAAM,IAAI,GAAG,IAAI,OAAA,KAAY,IAAI,MAAA,KAAW,IAAI,IAAA,EAAA;AAE7E,aAAW,SAAS,IAAI,WACvB,iBAAgB,OAAO,KAAA;AAGxB,SAAO;;AAfQ;AAsBhB,SAAS,gBAAgB,KAAyB,WAA2C;AAC5F,MAAI,OAAO,QAAQ,YAAY,CAAC,IAAI,SAAS,IAAA,EAC5C,QAAO;AAGR,MAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,SAAA,KAAc,IAAI,SAAS,GAAA,EACxE,QAAO,UAAU,gBAAgB,IAAI,MAAM,GAAG,EAAA,GAAK,SAAA,CAAU;AAG9D,QAAM,OAAO,YAAY,GAAA,IAAO,MAAM,eAAe,GAAA;AAGrD,QAAM,WAAW,UADD,GAAG,KAAK,OAAA,KAAY,KAAK,MAAA,KAAW,KAAK,IAAA,EAAA;AAGzD,SAAO,mBAAmB;IACzB,GAAG;IACH,SAAS,WAAW,SAAS,MAAM,IAAA,EAAM,CAAA,IAAK,KAAK;IACnD,YAAY,KAAK,WAAW,IAAA,CAAK,UAAU,gBAAgB,OAAO,SAAA,CAAU;GAC5E;;AAlBO;AAqBT,SAAgB,WAAW,YAAoB;AAC9C,SACC,WAAW,SAASH,eAAA,KAAmB,WAAW,SAAS,GAAA,KAAQ,WAAW,SAAS,MAAA;;AAFzE;AAMhB,SAAS,YAAY,MAA6C;AACjE,SACC,OAAO,SAAS,YAChB,aAAa,QACb,YAAY,QACZ,UAAU,QACV,gBAAgB;;AANT;AAmBT,SAAgB,uBAAuB,SAGrC;AACD,QAAM,WAAwB,oBAAI,IAAA;AAClC,QAAM,QAAqB,oBAAI,IAAA;AAE/B,aAAW,WAAW,QAAQ,SAC7B,SAAQ,QAAQ,OAAhB;IACC,KAAK;AACJ,UAAI,QAAQ,YAAY,KACvB,sBAAqB,CAAC,QAAQ,YAAY,IAAA,CAAK,EAAE,QAAA,CAAS,SAAS;AAClE,cAAM,IAAI,IAAA;;AAGZ;IACD,KAAK;AACJ,YAAM,WAAW,QAAQ;AAEzB,YAAM,MAAM,SAAS,QAAQ,MAAM,IAAA,EAAM,CAAA;AACzC,UAAI,WAAW,GAAA,GAAM;AACpB,YAAI,CAAC,oBAAoB,GAAA,EAAM,OAAM,IAAI,MAAM,yBAAyB,GAAA,EAAA;AACxE,iBAAS,IAAI,GAAA;;AAGd,2BAAqB,SAAS,iBAAiB,CAAA,CAAE,EAAE,QAAA,CAAS,SAAS;AACpE,cAAM,IAAI,IAAA;;AAGX;IACD;AACC;;AAIH,SAAO;IACN,UAAU,CAAC,GAAG,QAAA;IACd,OAAO,CAAC,GAAG,KAAA;;;AArCG;AA6ChB,SAAgB,aACf,SACA,UACC;AACD,aAAW,WAAW,QAAQ,UAAU;AAEvC,QAAI,QAAQ,aAAa,MAAM;AAC9B,UAAI,CAAC,WAAW,QAAQ,YAAY,IAAA,EAAO;AAC3C,UAAI,CAAC,SAAS,MAAM,QAAQ,YAAY,IAAA,EACvC,OAAM,IAAI,MAAM,iCAAiC,QAAQ,YAAY,IAAA,EAAA;AACtE,cAAQ,YAAY,OAAO,SAAS,MAAM,QAAQ,YAAY,IAAA,EAAM;;AAGrE,UAAM,KAAK,QAAQ;AACnB,QAAI,CAAC,GAAI;AAET,UAAM,YAAY,GAAG,QAAQ,MAAM,IAAA;AACnC,UAAM,OAAO,UAAU,CAAA;AAEvB,QAAI,WAAW,IAAA,KAAS,CAAC,SAAS,SAAS,IAAA,EAC1C,OAAM,IAAI,MAAM,iCAAiC,IAAA,EAAA;AAGlD,QAAI,WAAW,IAAA,GAAO;AACrB,gBAAU,CAAA,IAAK,SAAS,SAAS,IAAA,EAAM;AACvC,SAAG,UAAU,UAAU,KAAK,IAAA;;AAG7B,UAAM,QAAQ,GAAG;AACjB,QAAI,CAAC,MAAO;AAEZ,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,UAAI,CAAC,WAAW,MAAM,CAAA,CAAA,EAAK;AAE3B,UAAI,CAAC,SAAS,MAAM,MAAM,CAAA,CAAA,EAAK,OAAM,IAAI,MAAM,iCAAiC,MAAM,CAAA,CAAA,EAAA;AACtF,YAAM,CAAA,IAAK,SAAS,MAAM,MAAM,CAAA,CAAA,EAAI;;AAGrC,OAAG,gBAAgB;;;AAtCL;AA8ChB,SAAS,qBAAqB,OAAiB;AAC9C,QAAM,QAAQ,oBAAI,IAAA;AAClB,aAAW,QAAQ,MAClB,KAAI,WAAW,IAAA,GAAO;AACrB,QAAI,CAAC,iBAAiB,IAAA,EAAO,OAAM,IAAI,MAAM,4BAA4B,IAAA,EAAA;AACzE,UAAM,IAAI,IAAA;;AAGZ,SAAO;;AARC;;;ACrdT,IAAM,mBAA2C;EAChD,SAAS;EACT,SAAS;;AAGV,IAAsB,aAAtB,cAAyC,WAAsD;SAAA;;;EAI9F,YAAY,SAA4B;AACvC,UAAM,OAAA;gBAJA;AAMN,SAAK,MAAM,IAAI,UAAU;MACxB,OAAO,KAAK,MAAM,MAAM,UAAA;MACxB,KAAK,QAAQ,KAAK,OAAO,iBAAiB,KAAK,OAAA;MAC/C,UAAU,QAAQ,KAAK;MACvB,WAAW,QAAQ,KAAK;KACxB;;EAOF,MAAM,UACL,SACqD;AACrD,UAAM,EAAE,SAAA,IAAa;AACrB,UAAM,EACL,SAAS,CAAC,MAAA,EAAA,IACP,MAAM,KAAK,WAAW;MACzB,WAAW,CAAC,QAAA;MACZ,QAAQ,QAAQ;MAChB,SAAS,QAAQ;KACjB;AACD,QAAI,kBAAkB,MACrB,OAAM;AAEP,WAAO,EAAE,QAAQ,OAAA;;EAqElB,MAAM,gBACL,SACkD;AAClD,UAAM,qBAAqB,kBAAkB,cAE3C,MAAM,KAAK,KAAK,IAAI,YAAY,EAC/B,MAAM,QAAQ,KAAK,KAAA,CACnB,GACA,IAAA;AAEH,UAAM,UAAU,qBAAqB,QAAQ,UAAU,oBAAoB,QAAQ,KAAK,GAAA;AACxF,UAAM,EACL,SAAS,CAAC,WAAA,EAAA,IACP,MAAM,KAAK,WAAW;MACzB,WAAW,CAAC,OAAA;MACZ,QAAQ,QAAQ;MAChB,SAAS;QACR,qBAAqB;QACrB,SAAS;;KAEV;AAED,QAAI,uBAAuB,MAC1B,OAAM;AAGP,UAAM,YAAY,eAAe,YAAY,IAAA;AAC7C,UAAM,UAAU,MAAM,YAAY;AAElC,UAAM,gBAAgB,UAAU,WAAW,CAAA;AAC3C,UAAM,kBACL,OAAO,kBAAkB,YACzB,cAAc,WAAW,0BACzB,cAAc,SAAS;AAExB,UAAM,WAAW,QAAQ,MAAM,qBAAqB,QAAQ,KAAK,IAAI,MAAA;AAErE,UAAM,YACL,OAAO,UAAU,WAAW,CAAA,MAAO,WAChC,UAAU,WAAW,CAAA,IACrB,mBAAmB,UAAU,WAAW,CAAA,CAAA;AAE5C,WAAO,EACN,cAAc;MACb,OAAO,kBAAkB,kBAAkB;MAC3C,SAAS,YAAY;MACrB,QAAQ,YAAY;MACpB,SAAS,YAAY;MACrB,MAAM,YAAY;MAClB,qBAAqB,YAAY;MACjC,MAAM;QACL,MACC,OAAO,kBAAkB,WAAW,gBAAgB,mBAAmB,aAAA;QACxE,KAAK,QAAQ,KAAK;;MAEnB,OAAO;QACN,MAAM;QACN,KAAK;;MAEN,SAAS,kBAAkBI,OAAI,QAAQ,MAAM,QAAA,IAAY;MACzD;;EAIH,MAAM,sBACL,SACiE;AAMjE,UAAM,cAAc,uCAJnB,MAAM,KAAK,KAAK,IAAI,YAAY,EAC/B,MAAM,QAAQ,KAAK,KAAA,CACnB,GACA,IAAA;AAGF,UAAM,EAAE,aAAA,IAAiB,MAAM,KAAK,gBAAgB;MACnD,UAAU,QAAQ;MAClB,MAAM;QACL,MAAM;QACN,KAAK,QAAQ,KAAK;;MAEnB,QAAQ,QAAQ;KAChB;AAED,UAAM,EAAE,QAAAC,QAAA,IAAW,MAAM,KAAK,UAAU;MACvC,UAAU,aAAa;MACvB,QAAQ,QAAQ;MAChB,SAAS,QAAQ;KACjB;AAED,WAAO,EAAE,QAAAA,QAAA;;EAGV,MAAM,mBACL,SACqD;AACrD,UAAM,EAAE,QAAQ,UAAU,KAAK,KAAM,cAAc,QAAA,IAAY;AAE/D,UAAM,SACL,YAAY,WAAW,QAAQ,UAC3B,QAAQ,OAAO,eAAe,QAAQ,OAAO,mBAAoB,SAClE,QAAQ;AAEZ,UAAM,cAAc,SACjB,YAAY,IAAI,CAAC,YAAY,QAAQ,OAAA,GAAU,MAAA,CAAO,IACtD,YAAY,QAAQ,OAAA;AAEvB,UAAM,eAAe,IAAI,QAAA,CAAS,GAAG,WAAW;AAC/C,kBAAY,iBAAiB,SAAA,MAAe,OAAO,YAAY,MAAA,CAAO;;AAGvE,iBAAa,MAAA,MAAY;IAAA,CAAA;AAQzB,UAAM,WAAW,gBAAgB;MAAC;MAAG;MAAK;MAAK;MAAM;;AACrD,UAAM,KAAK,KAAK,IAAA;AAChB,QAAI,gBAAgB;AACpB,UAAM,eACL,SAAS,SAAS,IACf,SAAS,SAAS,SAAS,CAAA,KAAM,SAAS,SAAS,SAAS,CAAA,KAAM,KAClE;AAEJ,WAAO,MAAM;AACZ,UAAI,gBAAgB,SAAS,QAAQ;AACpC,cAAM,YAAY,KAAK,SAAS,aAAA,IAAiB,KAAK,IAAA;AACtD;AACA,YAAI,YAAY,EACf,OAAM,QAAQ,KAAK,CAClB,IAAI,QAAA,CAAS,YAAY,WAAW,SAAS,SAAA,CAAU,GACvD,YAAA,CACA;YAGF,OAAM,QAAQ,KAAK,CAClB,IAAI,QAAA,CAAS,YAAY,WAAW,SAAS,YAAA,CAAa,GAC1D,YAAA,CACA;AAGF,kBAAY,eAAA;AACZ,UAAI;AACH,eAAO,MAAM,KAAK,eAAe;UAChC;UACA;UACA,QAAQ;SACR;cACM;MAAA;;;EAIV,MAAM,0BAAkF,EACvF,aACA,QACA,uBAAuB,CAAA,GACvB,GAAG,MAAA,GAGF;AACD,QAAI;AAEJ,QAAI,uBAAuB,WAC1B,oBAAmB;SACb;AACN,kBAAY,kBAAkB,OAAO,aAAA,CAAc;AACnD,yBAAmB,MAAM,YAAY,MAAM,EAAE,QAAQ,KAAA,CAAM;;AAG5D,UAAM,EAAE,UAAA,IAAc,MAAM,OAAO,gBAAgB,gBAAA;AAEnD,WAAO,KAAK,mBAAmB;MAC9B,aAAa;MACb,YAAY,CAAC,WAAW,GAAG,oBAAA;MAC3B,GAAG;KACH;;;;;AClQH,SAAgB,SAAuD,SAA2B;AACjG,SAAO,MACN,OAAO,KAAK,OAAA,EAAS,IAAA,CACnB,QACA,SACC,KACA,OAAO,EAAA,CACL,GAAA,GAAM,QAAQ,GAAA,EAAA,CACf,CAAC,CACF,CACF;;AAVa;AAchB,SAAS,SACR,KACA,QACC;AACD,SAAO,KACN,OAAO;IACN,GAAG,OAAO;IACV,OAAO,SAAS,QAAQ,GAAA,CAAI;GAC5B,GACD,UAAA,CAAW,WAAW;IAAE,GAAG;IAAO,OAAO;IAAK,CAAE;;AATzC;AAgBT,IAAa,aAAa,KACzB,OAAA,GACA,UAAA,CAAW,UAAU,oBAAoB,KAAA,CAAM,GAC/C,MAAM,iBAAA,CAAkB;AAEzB,IAAa,WAAW;AACxB,IAAa,WAAW,OAAA;AACxB,IAAa,UAAU,KACtB,MAAM,CAAC,OAAA,GAAU,KAAK,OAAA,GAAU,QAAA,CAAS,CAAC,CAAC,GAE3C,MAAA,CAAO,QAAQ;AACd,MAAI;AACH,WAAO,GAAA;AACP,WAAO,OAAO,GAAA,KAAQ,KAAK,OAAO,GAAA,KAAQ;UACnC;AACP,WAAO;;GAEN,aAAA,CAAc;AAGlB,IAAa,MAAM,KAClB,OAAA,GACA,QAAA,GACA,MAAA,CAAO,QAAQ,OAAO,KAAK,MAAM,KAAK,IAAI,aAAA,CAAc;AAKzD,IAAa,kBAAkB,OAAO;EACrC,UAAU;EACV,SAAS;EACT,QAAQ,OAAA;CACR;AAID,IAAa,iBAAiB,MAAM;EACnC,SAAS,WAAW,OAAO,EAAE,SAAS,QAAQ,IAAA,EAAK,CAAE,CAAC;EACtD,SACC,SACA,OAAO;IACN,OAAO,KAAK,OAAA,GAAU,QAAA,CAAS;IAC/B,MAAM,SAAS,MAAM;MAAC,QAAQ,MAAA;MAAS,QAAQ,QAAA;MAAW,QAAQ,YAAA;KAAc,CAAC;GACjF,CAAC;EAEH,SAAS,UAAU,OAAO,EAAE,QAAQ,KAAK,OAAA,GAAU,QAAA,CAAS,EAAC,CAAE,CAAC;EAChE,SACC,gBACA,OAAO,EAAE,cAAc,MAAM,CAAC,KAAK,OAAA,GAAU,QAAA,CAAS,GAAG,KAAK,OAAA,GAAU,QAAA,CAAS,CAAC,CAAC,EAAC,CAAE,CAAC;CAExF;AAKD,IAAa,gBAAgB,OAAO;EACnC,QAAQ,SAAS,OAAA;EACjB,OAAO,SAAS,OAAA;EAChB,OAAO,SAAS,UAAA;EAChB,SAAS,SAAS,MAAM,eAAA,CAAgB;CACxC;AAID,IAAa,kBAAkB,OAAO;EACrC,SAAS,OAAA;EACT,QAAQ,OAAA;EACR,MAAM,OAAA;EAEN,YAAY,MAAM,OAAA,CAAQ;CAC1B;AAGD,IAAa,0BAA2E,MAAM;EAC7F,OAAO,EAAE,OAAO,QAAQ,SAAA,EAAU,CAAE;EACpC,OAAO,EAAE,OAAO,QAAQ,MAAA,EAAO,CAAE;EACjC,OAAO,EAAE,OAAO,QAAQ,IAAA,EAAK,CAAE;EAC/B,OAAO,EAAE,OAAO,QAAQ,KAAA,EAAM,CAAE;EAChC,OAAO,EAAE,OAAO,QAAQ,KAAA,EAAM,CAAE;EAChC,OAAO,EAAE,OAAO,QAAQ,KAAA,EAAM,CAAE;EAChC,OAAO,EAAE,OAAO,QAAQ,MAAA,EAAO,CAAE;EACjC,OAAO,EAAE,OAAO,QAAQ,MAAA,EAAO,CAAE;EACjC,OAAO,EAAE,OAAO,QAAQ,SAAA,EAAU,CAAE;EACpC,OAAO;IAAE,OAAO,QAAQ,QAAA;IAAW,QAAQ,KAAA,MAAW,uBAAA;GAA0B;EAChF,OAAO;IACN,OAAO,QAAQ,UAAA;IACf,UAAU,OAAO;MAChB,UAAU,OAAA;MACV,gBAAgB,MAAM,KAAA,MAAW,uBAAA,CAAwB;KACzD;GACD;EACD,OAAO;IAAE,OAAO,QAAQ,eAAA;IAAkB,OAAO,KAAK,OAAA,GAAU,QAAA,CAAS;GAAG;CAC5E;AAED,IAAa,sBAAsB,OAAO;EACzC,WAAW,SAAS,MAAM;IAAC,QAAQ,SAAA;IAAY,QAAQ,WAAA;IAAc,QAAQ,SAAA;GAAW,CAAC;EACzF,MAAM;CACN;AAGD,IAAM,6BAA6B,OAAO;EACzC,SAAS;EACT,QAAQ,OAAA;EACR,UAAU,OAAA;EAEV,eAAe,MAAM,OAAA,CAAQ;EAC7B,WAAW,MAAM,cAAA;EACjB,gBAAgB,SAAS,SAAS,MAAM,mBAAA,CAAoB,CAAC;CAC7D;AAGD,IAAa,UAAU,OAAO;EAC7B,MAAM,OAAA;EACN,QAAQ,OAAO,OAAA,GAAU,MAAM,CAAC,gBAAgB,MAAM,cAAA,CAAe,CAAC,CAAC;EACvE,MAAM,OAAO,OAAA,GAAU,QAAA,CAAS;CAChC;AAGD,IAAa,gBAAgB,SAAS;EACrC,UAAU;EACV,iBAAiB,OAAO;IACvB,SAAS,MAAM,cAAA;IACf,SAAS;GACT;EACD,YAAY,OAAO;IAClB,MAAM;IACN,SAAS,MAAM,cAAA;GACf;EACD,YAAY,OAAO;IAClB,aAAa;IACb,SAAS,MAAM,cAAA;GACf;EACD,SAAS,OAAO;IACf,SAAS,MAAM,QAAA;IACf,cAAc,MAAM,QAAA;GACpB;EACD,aAAa,OAAO;IACnB,MAAM,SAAS,OAAA,CAAQ;IACvB,UAAU,MAAM,cAAA;GAChB;EACD,SAAS,OAAO;IACf,SAAS,MAAM,QAAA;IACf,cAAc,MAAM,QAAA;IACpB,SAAS;IACT,QAAQ;GACR;EACD;CACA;AA6CD,IAAa,kBAAkB,SAAS;EACvC,kBAAkB;EAClB,cAAc,OAAO;IACpB,UAAU;IAEV,sBAAsB;IACtB,SAAS,QAAA;GACT;EACD,WAAW;CACX;AAGD,IAAa,oBAAoB,SAAS,EACzC,cAAc,QAAA,CACd;AAID,IAAa,0BAA0B,SAAS,EAC/C,SAAS,OAAA,EAAQ,CACjB;AAID,IAAa,qBAAqB,SAAS;EAC1C,QAAQ,QAAQ,IAAA;EAChB,SAAS,QAAQ,IAAA;CACjB;AAID,IAAa,2BAA2B,OAAO;EAC9C,aAAa;EACb,SAAS;EACT,cAAc;CACd;AAID,IAAM,gBAAgB,SAAS;EAC9B,QAAQ;EACR,MAAM,OAAO,EACZ,OAAO,SAAA,CACP;EACD,gBAAgB,OAAO,EACtB,OAAO,QAAA,EAAS,CAChB;EACD,kBAAkB,OAAO;IACxB,UAAU;IACV,SAAS,SAAS,SAAS,OAAA,CAAQ;IACnC,QAAQ,SAAS,SAAS,OAAA,CAAQ,CAAC;IACnC,sBAAsB,SAAS,SAAS,OAAA,CAAQ;IAChD,SAAS,SAAS,SAAS,QAAA,CAAS,CAAC;GACrC;EACD,iBAAiB;CACjB;AAGD,IAAa,oBAAoB,SAAS;EACzC,QAAQ;EACR,MAAM,OAAO,EACZ,OAAO,SAAA,CACP;CACD;AAGD,IAAa,oBAAoB,OAAO;EACvC,UAAU,SAAS,OAAA;EACnB,UAAU,SAAS,OAAA;EACnB,cAAc,SAAS,OAAA;EACvB,cAAc,SAAS,OAAA;EACvB,OAAO,OAAA;EACP,OAAO;CACP;AAGD,IAAaC,yBAAwB,SAAS;EAC7C,MAAM,QAAQ,IAAA;EACd,OAAO;EACP,aAAa;CACb;AAID,IAAa,wBAAwB,OAAO;EAC3C,SAAS,QAAQ,CAAA;EACjB,QAAQ,QAAQ,UAAA;EAChB,YAAY,QAAQA,sBAAA;EACpB,SAAS;EACT,QAAQ,MAAM,aAAA;EACd,UAAU,MAAM,aAAA;CAChB;;;ACzUD,IAAa,YAAY,OAAO;EAC/B,QAAQ,OAAA;EACR,UAAU,OAAA;EACV,SAAS,MAAM;IAAC,KAAK,OAAA,GAAU,QAAA,CAAS;IAAG,OAAA;IAAU,OAAA;GAAS;CAC9D;AAED,IAAMC,aAAY,SAAS;EAC1B,YAAY;EACZ,QAAQ,OAAO;IACd,UAAU;IACV,sBAAsB;IACtB,SAAS,QAAA;GACT;EACD,WAAW;CACX;AAED,IAAaC,qBAAoB,SAAS;EACzC,QAAQD;EACR,MAAM,MAAM,KAAK,OAAA,GAAU,QAAA,CAAS,CAAC;CACrC;AAED,IAAM,mBAAmB,MAAM,CAC9B,OAAO;EACN,MAAM,QAAQ,OAAA;EACd,OAAO,KAAK,OAAA,GAAU,QAAA,CAAS;EAC/B,OAAO,QAAA;EACP,MAAM,SAAS,QAAQ,QAAA,CAAS;CAChC,GACD,OAAO;EACN,MAAM,QAAQ,OAAA;EACd,OAAO,KAAK,OAAA,GAAU,QAAA,CAAS;EAC/B,OAAO,QAAA;EACP,MAAM,QAAQ,MAAA;CACd,CAAC,CACF;AAED,IAAME,yBAAwB,MAAM,CACnC,OAAO,EAAE,OAAO,KAAK,OAAA,GAAU,QAAA,CAAS,EAAC,CAAE,GAC3C,OAAO,EAAE,MAAM,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE,CAAC,CACzC;AAED,IAAM,sBAAsB,KAC3B,MAAM;EAAC,OAAA;EAAU,OAAA;EAAU,OAAA;CAAS,GACpC,MAAA,CAAO,QAAQ;AACd,MAAI,CAAC;IAAC;IAAU;IAAU;IAAU,SAAS,OAAO,GAAA,EAAM,QAAO;AAEjE,MAAI;AACH,WAAO,GAAA;AACP,WAAO;UACA;AACP,WAAO;;EAEP;AAGH,IAAaC,WAAsC,MAAM;EACxD,OAAO,EAAE,MAAM,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EACxC,OAAO,EAAE,IAAI,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EACtC,OAAO,EAAE,KAAK,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EACvC,OAAO,EAAE,MAAM,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EACxC,OAAO,EAAE,SAAS,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EAC3C,OAAO,EAAE,QAAQ,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EAC1C,OAAO,EAAE,QAAQ,KAAA,MAAWA,QAAA,EAAQ,CAAE;EACtC,OAAO,EAAE,QAAQ,KAAA,MAAWC,UAAA,EAAU,CAAE;EACxC,OAAO,EAAE,KAAK,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EACvC,OAAO,EAAE,KAAK,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;EACvC,OAAO,EAAE,MAAM,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE;CACxC;AAGD,IAAaA,aAA0C,OAAO;EAC7D,SAAS,OAAA;EACT,QAAQ,OAAA;EACR,MAAM,OAAA;EACN,YAAY,MAAMD,QAAA;CAClB;AAED,IAAM,YAAY,OAAO;EACxB,QAAQ,SAAS,mBAAA;EACjB,OAAO,SAAS,mBAAA;EAChB,SAAS,SAAS,MAAM,SAAA,CAAU;EAClC,OAAO,SAAS,OAAA,CAAQ;CACxB;AAED,IAAM,2BAA2B;EAChC;EACA,OAAO,EAAE,MAAM,QAAQ,SAAA,EAAU,CAAE;EACnC,OAAO;IAAE,MAAM,QAAQ,QAAA;IAAW,OAAO,KAAK,OAAA,GAAU,QAAA,CAAS;GAAG;EACpE,OAAO;IACN,MAAM,QAAQ,cAAA;IACd,OAAO,KAAK,OAAA,GAAU,QAAA,CAAS;IAC/B,aAAa,KAAK,OAAA,GAAU,QAAA,CAAS;GACrC;;AAIF,IAAa,sBAAsB,MAAM,CAAC,GAAG,wBAAA,CAAyB;AAEtE,IAAM,sBAAsB,OAAO;EAClC,MAAM,QAAQ,UAAA;EACd,QAAQ,KACP,OAAA,GACA,MAAA,CAAO,WAAW,OAAO,MAAM,IAAA,EAAM,WAAW,CAAA,CAAE;EAEnD,eAAe,MAAM,OAAA,CAAQ;EAC7B,WAAW,MAAM,mBAAA;CACjB;AAED,IAAM,6BAA6B,OAAO;EACzC,MAAM,QAAQ,iBAAA;EACd,SAAS,MAAM,mBAAA;EACf,SAAS;CACT;AAED,IAAM,wBAAwB,OAAO;EACpC,MAAM,QAAQ,YAAA;EACd,MAAM;EACN,SAAS,MAAM,mBAAA;CACf;AAED,IAAM,wBAAwB,OAAO;EACpC,MAAM,QAAQ,YAAA;EACd,aAAa;EACb,SAAS,MAAM,mBAAA;CACf;AAED,IAAM,yBAAyB,OAAO;EACrC,MAAM,QAAQ,aAAA;EACd,MAAM,MAAM,CAAC,OAAO,EAAE,MAAMA,SAAA,CAAS,GAAG,OAAO,EAAE,MAAM,SAAS,QAAQ,IAAA,CAAK,EAAC,CAAE,CAAC,CAAC;EAClF,SAAS,MAAM,mBAAA;CACf;AA0BD,IAAM,kBAAkB,MAAM,CAAC,GAVN;EACxB;EACA;EACA;EACA;EAlB0B,OAAO;IACjC,MAAM,QAAQ,SAAA;IACd,SAAS,MAAM,MAAM,KAAK,OAAA,GAAU,QAAA,CAAS,CAAC,CAAC;IAC/C,cAAc,MAAM,OAAA,CAAQ;GAC5B;EAE0B,OAAO;IACjC,MAAM,QAAQ,SAAA;IACd,SAAS,MAAM,MAAM,KAAK,OAAA,GAAU,QAAA,CAAS,CAAC,CAAC;IAC/C,cAAc,MAAM,OAAA,CAAQ;IAC5B,WAAW,OAAA;IACX,QAAQ;GACR;EASA;CACA,CAEkD;AAEnD,IAAa,8BAA8B,OAAO;EACjD,SAAS,QAAQ,CAAA;EACjB,QAAQ,SAAS,OAAA,CAAQ;EACzB,YAAY,QAAQD,sBAAA;EACpB,WAAW;EACX,QAAQ,MAAM,gBAAA;EACd,cAAc,MAAM,eAAA;CACpB;AAID,SAAgB,2BACf,iBAC8B;AAC9B,QAAM,SAAiD,gBAAgB,OAAO,IAAA,CAC5E,OAAO,UAAU;AACjB,QAAI,MAAM,OACT,QAAO;MACN,MAAM;MACN;MACA,OAAO,EACN,QAAQ,MAAM,OAAO,mBAClB,EACA,YAAY,MAAM,OAAO,iBAAA,IAEzB,MAAM,OAAO,YACZ,EACA,WAAW;QACV,QAAQ,MAAM,OAAO,UAAU;QAC/B,SAAS,MAAM,OAAO,UAAU;QAChC,UAAU,MAAM,OAAO,UAAU;QACjC,IAED,EACA,QAAQ;QACP,SAAS,MAAM,OAAO,aAAa;QACnC,sBAAsB,MAAM,OAAO,aAAa;QAChD,UAAU,MAAM,OAAO,aAAa;QACpC,EACD;MAEL,MAAM;;AAGR,QAAI,MAAM,KACT,QAAO;MACN,MAAM;MACN;MACA,OAAO,EACN,MAAM,MAAM,KAAK,WAAW,MAAM,KAAK,KAAA,CAAM,EAAC;MAE/C,MAAM;;AAIR,QAAI,MAAM,eACT,QAAO;MACN,MAAM;MACN,MAAM;MACN;MACA,OAAO,MAAM,eAAe;;AAI9B,QAAI,MAAM,iBACT,QAAO;MACN,MAAM;MACN,MAAM;MACN;MACA,OAAO,MAAM,iBAAiB;;AAIhC,UAAM,IAAI,MAAM,eAAA;;AAIlB,SAAO;IACN,SAAS;IACT,QAAQ,gBAAgB,UAAU;IAClC,YACC,gBAAgB,YAAY,UAAU,UACnC,EAAE,OAAO,OAAO,gBAAgB,WAAW,KAAA,EAAM,IACjD,gBAAgB,aACf,EAAE,MAAM,KAAA,IACR;IACL,WAAW;MACV,OAAO,gBAAgB,QAAQ,SAAS;MACxC,QAAQ,gBAAgB,QAAQ,UAAU;MAC1C,OAAO,gBAAgB,QAAQ,SAAS;MACxC,SAAS,gBAAgB,QAAQ,WAAW;;IAE7C;IACA,cAAc,gBAAgB,SAAS,IAAA,CAAK,YAAiD;AAC5F,UAAI,QAAQ,YACX,QAAO;QACN,MAAM;QACN,MACC,QAAQ,YAAY,SAAS,OAC1B,EAAE,MAAM,KAAA,IACR,EAAE,MAAM,kBAAkB,aAAa,QAAQ,YAAY,IAAA,EAAK;QACpE,SAAS,QAAQ,YAAY,SAAS,IAAA,CAAK,QAC1C,2BAA2B,KAAK,MAAA,CAAO;;AAI1C,UAAI,QAAQ,WACX,QAAO;QACN,MAAM;QACN,aAAa,2BAA2B,QAAQ,WAAW,aAAa,MAAA;QACxE,SAAS,QAAQ,WAAW,QAAQ,IAAA,CAAK,QAAQ,2BAA2B,KAAK,MAAA,CAAO;;AAG1F,UAAI,QAAQ,SACX,QAAO;QACN,MAAM;QACN,QAAQ,GAAG,QAAQ,SAAS,OAAA,KAAY,QAAQ,SAAS,MAAA,KAAW,QAAQ,SAAS,QAAA;QACrF,eAAe,QAAQ,SAAS;QAChC,WAAW,QAAQ,SAAS,UAAU,IAAA,CAAK,QAC1C,2BAA2B,KAAK,MAAA,CAAO;;AAI1C,UAAI,QAAQ,QACX,QAAO;QACN,MAAM;QACN,SAAS,QAAQ,QAAQ,QAAQ,IAAA,CAAK,QAAQ,MAAM,KAAK,WAAW,GAAA,CAAI,CAAC;QACzE,cAAc,QAAQ,QAAQ;;AAGhC,UAAI,QAAQ,WACX,QAAO;QACN,MAAM;QACN,MAAM,2BAA2B,QAAQ,WAAW,MAAM,MAAA;QAC1D,SAAS,QAAQ,WAAW,QAAQ,IAAA,CAAK,QAAQ,2BAA2B,KAAK,MAAA,CAAO;;AAG1F,UAAI,QAAQ,gBACX,QAAO;QACN,MAAM;QACN,SAAS,QAAQ,gBAAgB,QAAQ,IAAA,CAAK,QAC7C,2BAA2B,KAAK,MAAA,CAAO;QAExC,SAAS,2BAA2B,QAAQ,gBAAgB,SAAS,MAAA;;AAIvE,UAAI,QAAQ,QACX,QAAO;QACN,MAAM;QACN,SAAS,QAAQ,QAAQ,QAAQ,IAAA,CAAK,QAAQ,MAAM,KAAK,WAAW,GAAA,CAAI,CAAC;QACzE,cAAc,QAAQ,QAAQ;QAC9B,WAAW,QAAQ,QAAQ;QAC3B,QAAQ,2BAA2B,QAAQ,QAAQ,QAAQ,MAAA;;AAI7D,YAAM,IAAI,MAAM,uBAAuB,OAAO,KAAK,OAAA,CAAQ,EAAA;;;;AAlJ9C;AAuJhB,SAAS,2BACR,KACA,QAC0C;AAC1C,MAAI,IAAI,UAAU,UACjB,QAAO,EAAE,MAAM,UAAA;AAEhB,MAAI,IAAI,UAAU,SACjB,QAAO;IAAE,MAAM;IAAU,OAAO,IAAI;;AAErC,MAAI,IAAI,UAAU,eACjB,QAAO;IAAE,MAAM;IAAgB,OAAO,IAAI,aAAa,CAAA;IAAI,aAAa,IAAI,aAAa,CAAA;;AAE1F,MAAI,IAAI,UAAU,QACjB,QAAO,OAAO,IAAI,KAAA;AAGnB,QAAM,IAAI,MAAM,oBAAoB,OAAO,KAAK,GAAA,CAAI,EAAA;;AAjB5C;AAoBT,SAAgB,sBAAsB,MAAoD;AACzF,SAAO,MAAM,uBAAuB;IACnC,SAAS;IACT,QAAQ,KAAK,UAAU;IACvB,YAAY,KAAK,aACd,WAAW,KAAK,aACf,EAAE,OAAO,KAAK,WAAW,MAAA,IACzB,EAAE,MAAM,KAAA,IACT;IACH,SAAS;MACR,OAAO,KAAK,UAAU,SAAS;MAC/B,QAAQ,KAAK,UAAU,QAAQ,SAAA,KAAc;MAC7C,OAAO,KAAK,UAAU,OAAO,SAAA,KAAc;MAC3C,SACC,KAAK,UAAU,SAAS,IAAA,CAAK,SAAS;QACrC,QAAQ,IAAI;QACZ,UAAU,IAAI;QACd,SAAS,IAAI,QAAQ,SAAA;QACrB,KAAM;;IAET,QAAQ,KAAK,OAAO,IAAA,CAAK,UAAU;AAClC,UAAI,MAAM,SAAS,SAAS;AAC3B,YAAI,GAAGD,oBAAmB,MAAM,KAAA,GAAQ;AACvC,gBAAM,QAAQ,MAAMA,oBAAmB,MAAM,KAAA;AAE7C,cAAI,MAAM,QAAQ;AACjB,gBAAI,MAAM,OAAO,WAChB,QAAO,EACN,QAAQ,EACP,kBAAkB;cACjB,UAAU,MAAM,OAAO,WAAW;cAClC,SAAS,OAAO,MAAM,OAAO,WAAW,OAAA;cACxC,QAAQ,MAAM,OAAO,WAAW;cAChC,EACD;AAGH,gBAAI,MAAM,OAAO,OAChB,QAAO,EACN,QAAQ,EACP,cAAc;cACb,SAAS,MAAM,OAAO,OAAO,WAAW;cACxC,sBAAsB,MAAM,OAAO,OAAO;cAC1C,UAAU,MAAM,OAAO,OAAO;cAC9B,EACD;AAGH,gBAAI,MAAM,OAAO,UAChB,QAAO,EACN,QAAQ,EACP,WAAW;cACV,QAAQ,MAAM,OAAO,UAAU;cAC/B,SAAS,OAAO,MAAM,OAAO,UAAU,OAAA;cACvC,UAAU,MAAM,OAAO,UAAU;cACjC,EACD;AAIH,kBAAM,IAAI,MAAM,sBAAA;;AAGjB,iBAAO,EACN,MAAM,EACL,OAAO,SAAS,IAAI,WAAW,MAAM,IAAA,CAAK,EAAC,EAC3C;;AAIH,YAAI,MAAM,SAAS,SAClB,QAAO,EACN,kBAAkB,EACjB,UAAU,MAAM,MAAA,EAChB;AAIH,eAAO,EACN,gBAAgB,EACf,OAAO,MAAM,MAAA,EACb;;AAIH,YAAM,IAAI,MAAM,eAAA;;IAEjB,UAAU,KAAK,aAAa,IAAA,CAAK,gBAAgB;AAChD,cAAQ,YAAY,MAApB;QACC,KAAK;AACJ,iBAAO,EACN,aAAa;YACZ,MACC,UAAU,YAAY,OACnB,kBAAkB,YAAY,YAAY,KAAK,IAAA,IAC/C;YACJ,UAAU,YAAY,QAAQ,IAAA,CAAK,QAAQ,2BAA2B,GAAA,CAAI;YAC1E;QAEH,KAAK;AACJ,iBAAO,EACN,YAAY;YACX,aAAa,2BAA2B,YAAY,WAAA;YACpD,SAAS,YAAY,QAAQ,IAAA,CAAK,QAAQ,2BAA2B,GAAA,CAAI;YACzE;QAGH,KAAK,YAAY;AAChB,gBAAM,CAAC,KAAK,KAAK,EAAA,IAAM,YAAY,OAAO,MAAM,IAAA;AAChD,iBAAO,EACN,UAAU;YACT,SAAS;YACT,QAAQ;YACR,UAAU;YACV,eAAe,YAAY;YAC3B,WAAW,YAAY,UAAU,IAAA,CAAK,QAAQ,2BAA2B,GAAA,CAAI;YAC7E;;QAGH,KAAK;AACJ,iBAAO,EACN,SAAS;YACR,SAAS,YAAY,QAAQ,IAAA,CAAK,QAAQ,SAAS,WAAW,KAAK,GAAA,CAAI,CAAC;YACxE,cAAc,YAAY;YAC1B;QAGH,KAAK;AACJ,iBAAO,EACN,YAAY;YACX,MAAM,2BAA2B,YAAY,IAAA;YAC7C,SAAS,YAAY,QAAQ,IAAA,CAAK,QAAQ,2BAA2B,GAAA,CAAI;YACzE;QAGH,KAAK;AACJ,iBAAO,EACN,iBAAiB;YAChB,SAAS,YAAY,QAAQ,IAAA,CAAK,QAAQ,2BAA2B,GAAA,CAAI;YACzE,SAAS,2BAA2B,YAAY,OAAA;YAChD;QAGH,KAAK;AACJ,iBAAO,EACN,SAAS;YACR,SAAS,YAAY,QAAQ,IAAA,CAAK,QAAQ,SAAS,WAAW,KAAK,GAAA,CAAI,CAAC;YACxE,cAAc,YAAY;YAC1B,SAAS,YAAY;YACrB,QAAQ,2BAA2B,YAAY,MAAA;YAC/C;;AAKJ,YAAM,IAAI,MAAM,uBAAuB,OAAO,KAAK,WAAA,CAAY,EAAA;;GAEhE;;AA7Jc;AAgKhB,SAAS,2BACR,KACoC;AACpC,UAAQ,IAAI,MAAZ;IACC,KAAK;AACJ,aAAO,EAAE,SAAS,KAAA;IAEnB,KAAK;AACJ,aAAO,EAAE,QAAQ,IAAI,MAAA;IACtB,KAAK;AACJ,aAAO,EAAE,cAAc,CAAC,IAAI,OAAO,IAAI,WAAA,EAAY;IAEpD,KAAK;AACJ,aAAO,EAAE,OAAO,IAAI,MAAA;;;AAbd;;;ACxgBT,SAAgB,cAAc,SAAiB,MAA8B;AAC5E,QAAM,eAAe,MAAM,KAAK,GAAG,OAAA,IAAQ,EAAK,IAAA,CAAK,MAAM,EAAE,WAAW,CAAA,CAAE;AAE1E,QAAM,cAAc,IAAI,WAAW,aAAa,SAAS,KAAK,MAAA;AAC9D,cAAY,IAAI,YAAA;AAChB,cAAY,IAAI,MAAM,aAAa,MAAA;AAEnC,SAAO,QAAQ,aAAa,EAAE,OAAO,GAAA,CAAI;;AAP1B;;;ACmChB,SAAgB,iBAAiB,KAAuB;AACvD,MAAI,OAAO,QAAQ,SAClB,QAAO,oBAAoB,GAAA;AAG5B,MAAI,IAAI,QAAQ;AACf,QAAI,IAAI,OAAO,iBACd,QAAO,oBAAoB,IAAI,OAAO,iBAAiB,QAAA;AAGxD,QAAI,IAAI,OAAO,UACd,QAAO,oBAAoB,IAAI,OAAO,UAAU,QAAA;AAGjD,WAAO,oBAAoB,IAAI,OAAO,aAAa,QAAA;;AAGpD,MAAI,IAAI,iBACP,QAAO,oBAAoB,IAAI,iBAAiB,QAAA;;AAlBlC;AA4BhB,SAAgB,sBACf,SACA,cACA,gBACC;AACD,QAAM,WAAA,wBAAY,QAA4B;AAC7C,YAAQ,IAAI,OAAZ;MACC,KAAK,SAAS;AACb,cAAM,gBAAgB,aAAa,IAAI,IAAI,KAAA;AAC3C,YAAI,kBAAkB,OACrB,OAAM,IAAI,MAAM,SAAS,IAAI,KAAA,6BAAM;AAEpC,eAAO;UAAE,GAAG;UAAK,OAAO;;;MAEzB,KAAK,UAAU;AACd,cAAM,kBAAkB,eAAe,IAAI,IAAI,MAAA;AAC/C,YAAI,oBAAoB,OACvB,QAAO;UAAE,GAAG;UAAK,QAAQ;;AAE1B,eAAO;;MAER,KAAK,gBAAgB;AACpB,cAAM,kBAAkB,eAAe,IAAI,IAAI,aAAa,CAAA,CAAA;AAC5D,YAAI,oBAAoB,OACvB,QAAO;UAAE,GAAG;UAAK,cAAc,CAAC,iBAAiB,IAAI,aAAa,CAAA,CAAA;;AAEnE,eAAO;;MAER;AACC,eAAO;;KAxBJ;AA4BN,UAAQ,QAAQ,OAAhB;IACC,KAAK;AACJ,cAAQ,SAAS,YAAY,QAAQ,SAAS,UAAU,IAAI,QAAA;AAC5D;IACD,KAAK;AACJ,cAAQ,gBAAgB,UAAU,QAAQ,gBAAgB,QAAQ,IAAI,QAAA;AACtE,cAAQ,gBAAgB,UAAU,SAAS,QAAQ,gBAAgB,OAAA;AACnE;IACD,KAAK;AACJ,cAAQ,WAAW,OAAO,SAAS,QAAQ,WAAW,IAAA;AACtD,cAAQ,WAAW,UAAU,QAAQ,WAAW,QAAQ,IAAI,QAAA;AAC5D;IACD,KAAK;AACJ,cAAQ,WAAW,cAAc,SAAS,QAAQ,WAAW,WAAA;AAC7D,cAAQ,WAAW,UAAU,QAAQ,WAAW,QAAQ,IAAI,QAAA;AAC5D;IACD,KAAK;AACJ,cAAQ,YAAY,WAAW,QAAQ,YAAY,SAAS,IAAI,QAAA;AAChE;IACD,KAAK;AACJ,cAAQ,QAAQ,SAAS,SAAS,QAAQ,QAAQ,MAAA;AAClD;IACD,KAAK,WAAW;AACf,YAAM,SAAS,QAAQ,QAAQ;AAC/B,cAAQ,QAAQ,SAAS,CAAA;AAEzB,iBAAW,CAAC,KAAK,KAAA,KAAU,OAAO,QAAQ,MAAA,EACzC,SAAQ,QAAQ,OAAO,GAAA,IAAO,MAAM,QAAQ,KAAA,IAAS,MAAM,IAAI,QAAA,IAAY,SAAS,KAAA;AAErF;;IAED,KAAK;AACJ;;;AAjEa;;;AClDhB,SAAS,kBAAkB,SAAiB;AAC3C,SAAO,oBAAoB,OAAA,EAAS,QAAQ,MAAM,EAAA;;AAD1C;AAIT,IAAa,yBAAb,MAAaI,wBAAkD;SAAA;;;EAC9D,OAAO,cAAc,OAAmB;AAGvC,UAAM,iBAFOC,OAAI,gBAAgB,MAAM,KAAA,EAEX;AAC5B,QAAI,CAAC,eACJ,OAAM,IAAI,MAAM,mCAAA;AAGjB,WAAOD,wBAAuB,QAAQ;MACrC,SAAS;MACT,QAAQ;MACR,YAAY;MACZ,SAAS;QACR,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO;;MAER,QAAQ,eAAe;MACvB,UAAU,eAAe;KACzB;;EAGF,OAAO,UAAU,OAAmB;AAEnC,UAAM,OADUC,OAAI,gBAAgB,MAAM,KAAA,GACpB;AACtB,UAAM,iBAAiB,KAAK,KAAK;AAEjC,QAAI,CAAC,QAAQ,CAAC,eACb,OAAM,IAAI,MAAM,mCAAA;AAGjB,WAAOD,wBAAuB,QAAQ;MACrC,SAAS;MACT,QAAQ,KAAK;MACb,YAAY,KAAK;MACjB,SAAS,KAAK;MACd,QAAQ,eAAe;MACvB,UAAU,eAAe;KACzB;;EAGF,OAAO,QACN,MAGC;AACD,QAAI,KAAK,YAAY,EACpB,QAAO,IAAIA,wBAAuB,MAAM,uBAAuB,IAAA,CAAK;QAEpE,QAAO,IAAIA,wBAAuB,MAAM,uBAAuB,sBAAsB,IAAA,CAAK,CAAC;;;;;;;;EAU7F,OAAO,mBAAmB,OAAmB;AAE5C,WAAO,SADM,cAAc,mBAAmB,KAAA,CAAM;;EAWrD,YAAY,OAAyB;mBAP3B;AAQT,SAAK,SAAS,OAAO,UAAU;AAC/B,SAAK,aAAa,OAAO,cAAc;AACvC,SAAK,SAAS,OAAO,UAAU,CAAA;AAC/B,SAAK,WAAW,OAAO,YAAY,CAAA;AACnC,SAAK,UAAU,OAAO,WAAW;MAChC,QAAQ;MACR,OAAO;MACP,OAAO;MACP,SAAS;;;EAIX,MAAM,EACL,eAAe,UACf,WACA,oBAAA,IASG,CAAA,GAAI;AAEP,UAAM,SAAS,KAAK;AACpB,UAAM,WAAW,KAAK;AAKtB,UAAM,OAAO,EACZ,yBAAyB;MACxB;MACA;MACA;AAGF,QAAI,oBACH,QAAOC,OAAI,gBAAgB,UAAU,MAAM,EAAE,SAAS,aAAA,CAAc,EAAE,QAAA;AAGvE,UAAM,aAAa,WAAW,cAAc,KAAK;AACjD,UAAM,SAAS,WAAW,UAAU,KAAK;AACzC,UAAM,UAAU;MAAE,GAAG,KAAK;MAAS,GAAG,WAAW;;AAEjD,QAAI,CAAC,OACJ,OAAM,IAAI,MAAM,4BAAA;AAGjB,QAAI,CAAC,QAAQ,OACZ,OAAM,IAAI,MAAM,oBAAA;AAGjB,QAAI,CAAC,QAAQ,QACZ,OAAM,IAAI,MAAM,qBAAA;AAGjB,QAAI,CAAC,QAAQ,MACZ,OAAM,IAAI,MAAM,mBAAA;AAGjB,UAAM,kBAAkB;MACvB,QAAQ,kBAAkB,MAAA;MAC1B,YAAY,aAAa,aAAa,EAAE,MAAM,KAAA;MAC9C,SAAS;QACR,SAAS,QAAQ;QACjB,OAAO,kBAAkB,KAAK,QAAQ,SAAS,MAAA;QAC/C,OAAO,OAAO,QAAQ,KAAA;QACtB,QAAQ,OAAO,QAAQ,MAAA;;MAExB,MAAM,EACL,yBAAyB;QACxB;QACA;QACA;;AAIH,WAAOA,OAAI,gBAAgB,UAC1B,EAAE,IAAI,gBAAA,GACN,EAAE,SAAS,aAAA,CAAc,EACxB,QAAA;;EAGH,SAAqD,MAAS,KAAc;AAC3E,UAAM,QAAQ,KAAK,OAAO;AAC1B,SAAK,OAAO,KAAK,GAAA;AACjB,WAAO;MAAE,OAAO;MAAO;MAAM,OAAO;;;EAGrC,aAAa,OAAe,IAA+C;AAC1E,SAAK,aAAA,CAAc,KAAK,YAAY;AACnC,UAAI,IAAI,UAAU,WAAW,IAAI,UAAU,MAC1C,IAAG,KAAK,OAAA;AAGT,aAAO;;;EAIT,oBACC,OACA,IACC;AACD,UAAM,UAAU,KAAK,SAAS,KAAA;AAE9B,YAAQ,QAAQ,OAAhB;MACC,KAAK;AACJ,gBAAQ,SAAS,YAAY,QAAQ,SAAS,UAAU,IAAA,CAAK,QAC5D,GAAG,KAAK,SAAS,KAAA,CAAM;AAExB;MACD,KAAK;AACJ,gBAAQ,gBAAgB,UAAU,QAAQ,gBAAgB,QAAQ,IAAA,CAAK,QACtE,GAAG,KAAK,SAAS,KAAA,CAAM;AAExB,gBAAQ,gBAAgB,UAAU,GAAG,QAAQ,gBAAgB,SAAS,SAAS,KAAA;AAC/E;MACD,KAAK;AACJ,gBAAQ,WAAW,OAAO,GAAG,QAAQ,WAAW,MAAM,SAAS,KAAA;AAC/D,gBAAQ,WAAW,UAAU,QAAQ,WAAW,QAAQ,IAAA,CAAK,QAC5D,GAAG,KAAK,SAAS,KAAA,CAAM;AAExB;MACD,KAAK;AACJ,gBAAQ,WAAW,cAAc,GAAG,QAAQ,WAAW,aAAa,SAAS,KAAA;AAC7E,gBAAQ,WAAW,UAAU,QAAQ,WAAW,QAAQ,IAAA,CAAK,QAC5D,GAAG,KAAK,SAAS,KAAA,CAAM;AAExB;MACD,KAAK;AACJ,gBAAQ,YAAY,WAAW,QAAQ,YAAY,SAAS,IAAA,CAAK,QAChE,GAAG,KAAK,SAAS,KAAA,CAAM;AAExB;MACD,KAAK;AACJ,gBAAQ,QAAQ,SAAS,GAAG,QAAQ,QAAQ,QAAQ,SAAS,KAAA;AAC7D;MACD,KAAK;AACJ,cAAM,SAAS,QAAQ,QAAQ;AAC/B,gBAAQ,QAAQ,SAAS,CAAA;AAEzB,mBAAW,CAAC,KAAK,KAAA,KAAU,OAAO,QAAQ,MAAA,EACzC,SAAQ,QAAQ,OAAO,GAAA,IAAO,MAAM,QAAQ,KAAA,IACzC,MAAM,IAAA,CAAK,QAAQ,GAAG,KAAK,SAAS,KAAA,CAAM,IAC1C,GAAG,OAAO,SAAS,KAAA;AAGvB;MACD,KAAK;AACJ;MACD;AACC,cAAM,IAAI,MAAM,gCAAiC,QAA+B,KAAA,EAAA;;;EAInF,aAAa,IAAyE;AACrF,eAAW,gBAAgB,KAAK,SAAS,KAAA,EACxC,MAAK,oBAAoB,cAAc,EAAA;;EAIzC,eACC,OACA,aACA,cAAgF,OAC/E;AACD,QAAI,CAAC,MAAM,QAAQ,WAAA,GAAc;AAChC,WAAK,SAAS,KAAA,IAAS;AACvB;;AAGD,UAAM,WAAW,YAAY,SAAS;AAEtC,SAAK,SAAS,OAAO,OAAO,GAAG,GAAG,gBAAgB,WAAA,CAAY;AAE9D,SAAK,aAAA,CAAc,KAAK,UAAU,iBAAiB;AAClD,UAAI,eAAe,QAAQ,YAAY,OACtC,QAAO;AAGR,UAAI,OAAO,gBAAgB,UAC1B;YACE,IAAI,UAAU,YAAY,IAAI,WAAW,SACzC,IAAI,UAAU,kBAAkB,IAAI,aAAa,CAAA,MAAO,MAEzD,KAAI,EAAE,kBAAkB,QAAQ,IAAI,aAAa,CAAA,MAAO,EACvD,QAAO,MAAM,gBAAgB,gBAAgB,WAAA,CAAY;YAEzD,OAAM,IAAI,MACT,0BAA0B,KAAA,8CAAmD,KAAA,KAAU,IAAI,aAAa,CAAA,CAAA,+EAAG;;AAO/G,cAAQ,IAAI,OAAZ;QACC,KAAK;AACJ,cAAI,IAAI,WAAW,SAAS,OAAO,gBAAgB,SAClD,KAAI,SAAS;AAEd,cAAI,IAAI,SAAS,MAChB,KAAI,UAAU;AAEf;QAED,KAAK;AACJ,cAAI,IAAI,aAAa,CAAA,MAAO,SAAS,OAAO,gBAAgB,SAC3D,QAAO;YACN,OAAO;YACP,cAAc,CAAC,aAAa,IAAI,aAAa,CAAA,CAAA;;AAG/C,cAAI,IAAI,aAAa,CAAA,IAAK,MACzB,KAAI,aAAa,CAAA,KAAM;AAExB;;AAEF,aAAO;;;EAIT,8BACC,OACA,kBACA,QACC;AACD,QAAI,OAAO,UAAU,YAAY,OAAO,UAAU,eACjD,OAAM,IAAI,MAAM,+CAAA;AAGjB,SAAK,kBAAkB,OAAO,gBAAA;AAE9B,SAAK,eACJ,QAAQ,iBAAiB,SAAS,QAClC,CAAA,GACA,YAAY,SACT,EAAE,cAAc,CAAC,OAAO,SAAS,OAAO,CAAA,EAAE,IAC1C,EACA,cAAc,CACZ,OAA8C,aAAa,CAAA,IAAK,OAChE,OAA8C,aAAa,CAAA,CAAA,EAC5D,CACD;;EAIL,kBAAkB,gBAAwB,kBAAmC;AAC5E,UAAM,eAAe,oBAAI,IAAA;AACzB,UAAM,iBAAiB,oBAAI,IAAA;AAE3B,aAAS,IAAI,GAAG,IAAI,iBAAiB,OAAO,QAAQ,KAAK;AACxD,YAAM,aAAa,iBAAiB,OAAO,CAAA;AAC3C,YAAM,KAAK,iBAAiB,UAAA;AAE5B,UAAI,gBAAgB;AACpB,UAAI,OAAO,QAAW;AACrB,wBAAgB,KAAK,OAAO,UAAA,CAAW,UAAU,iBAAiB,KAAA,MAAW,EAAA;AAE7E,YACC,kBAAkB,MAClB,KAAK,OAAO,aAAA,EAAe,QAAQ,gBACnC,WAAW,QAAQ,aAEnB,MAAK,OAAO,aAAA,EAAe,OAAQ,aAAc,UAChD,KAAK,OAAO,aAAA,EAAe,OAAQ,aAAc,WACjD,WAAW,OAAO,aAAa;;AAIlC,UAAI,kBAAkB,GACrB,cAAa,IAAI,GAAG,aAAA;WACd;AACN,cAAM,WAAW,KAAK,OAAO;AAC7B,aAAK,OAAO,KAAK,UAAA;AACjB,qBAAa,IAAI,GAAG,QAAA;;;AAItB,aAAS,IAAI,GAAG,IAAI,iBAAiB,SAAS,QAAQ,IACrD,gBAAe,IAAI,GAAG,iBAAiB,CAAA;AAGxC,UAAM,mBAA8B,CAAA;AACpC,aAAS,IAAI,GAAG,IAAI,iBAAiB,SAAS,QAAQ,KAAK;AAC1D,YAAM,UAAU,gBAAgB,iBAAiB,SAAS,CAAA,CAAA;AAE1D,4BAAsB,SAAS,cAAc,cAAA;AAE7C,uBAAiB,KAAK,OAAA;;AAGvB,SAAK,SAAS,OAAO,gBAAgB,GAAG,GAAG,gBAAA;AAE3C,UAAM,WAAW,iBAAiB;AAClC,QAAI,WAAW,EACd,MAAK,aAAA,CAAc,KAAK,UAAU,iBAAiB;AAClD,UACC,gBAAgB,kBAChB,eAAe,iBAAiB,iBAAiB,OAEjD,QAAO;AAGR,cAAQ,IAAI,OAAZ;QACC,KAAK;AACJ,cAAI,IAAI,UAAU,eACjB,KAAI,UAAU;AAEf;QAED,KAAK;AACJ,cAAI,IAAI,aAAa,CAAA,KAAM,eAC1B,KAAI,aAAa,CAAA,KAAM;AAExB;;AAEF,aAAO;;;EAKV,YAAY;AACX,UAAM,QAAQ,KAAK,MAAM,EAAE,qBAAqB,MAAA,CAAO;AACvD,WAAOD,wBAAuB,mBAAmB,KAAA;;EAGlD,WAA4B;AAC3B,WAAO,MAAM,uBAAuB,IAAA;;EAGrC,eAAe;AACd,WAAO,IAAIA,wBAAuB;MACjC,SAAS,KAAK;MACd,QAAQ,KAAK;MACb,YAAY,KAAK;MACjB,SAAS,EACR,GAAG,KAAK,QAAA;MAET,QAAQ,CAAC,GAAG,KAAK,MAAA;MACjB,UAAU,CAAC,GAAG,KAAK,QAAA;KACnB;;EAGF,kBAAkB,UAA2B;AAC5C,QAAI,CAAC,KAAK,OACT,MAAK,SAAS,SAAS,UAAU;AAGlC,QAAI,CAAC,KAAK,WACT,MAAK,aAAa,SAAS,cAAc;AAG1C,QAAI,CAAC,KAAK,QAAQ,OACjB,MAAK,QAAQ,SAAS,SAAS,QAAQ;AAGxC,QAAI,CAAC,KAAK,QAAQ,MACjB,MAAK,QAAQ,QAAQ,SAAS,QAAQ,SAAS;AAGhD,QAAI,CAAC,KAAK,QAAQ,QACjB,MAAK,QAAQ,UAAU,SAAS,QAAQ;AAGzC,QAAI,CAAC,KAAK,QAAQ,MACjB,MAAK,QAAQ,QAAQ,SAAS,QAAQ;AAGvC,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ,KAAK;AAC5C,YAAM,QAAQ,KAAK,OAAO,CAAA;AAC1B,YAAM,gBAAgB,SAAS,OAAO,CAAA;AAEtC,cAAQ,MAAM,OAAd;QACC,KAAK;AACJ,cAAI,cAAc,UAAU,OAC3B,OAAM,IAAI,MACT,2BAA2B,CAAA,2CAA4C,KAAK,UAC3E,aAAA,CACA,EAAA;AAGH,eAAK,OAAO,CAAA,IAAK;AACjB;QACD,KAAK;AACJ,cAAI,cAAc,UAAU,SAC3B,OAAM,IAAI,MACT,2BAA2B,CAAA,8CAA+C,KAAK,UAC9E,aAAA,CACA,EAAA;AAIH,cACC,cAAc,OAAO,UAAU,sBAC/B,cAAc,OAAO,UAAU,aAC9B;AACD,kBAAM,WAAW,MAAM;AACvB,kBAAME,aACL,cAAc,OAAO,oBAAoB,cAAc,OAAO;AAE/D,gBACC,oBAAoB,SAAS,QAAA,MAAc,oBAAoBA,WAAS,QAAA,KACvE,SAAS,WAAW,QAAQ,SAAS,YAAYA,WAAS,WAC1D,SAAS,UAAU,QAAQ,SAAS,WAAWA,WAAS,UAEzD,SAAS,WAAW,QACpB,SAAS,wBAAwB,KAEjC,OAAM,IAAI,MACT,kBAAkB,CAAA,qCAAsC,KAAK,UAAU,QAAA,CAAS,2BAA2B,KAAK,UAAUA,UAAAA,CAAS,EAAA;qBAG3H,cAAc,OAAO,UAAU,gBAAgB;AACzD,kBAAM,WAAW,MAAM;AACvB,kBAAMA,aAAW,cAAc,OAAO;AAEtC,gBACC,oBAAoB,SAAS,QAAA,MAAc,oBAAoBA,WAAS,QAAA,KACvE,SAAS,wBAAwB,QACjC,SAAS,yBAAyBA,WAAS,wBAC3C,SAAS,WAAW,QAAQ,SAAS,YAAYA,WAAS,WAE3D,SAAS,WAAW,QACpB,SAAS,UAAU,KAEnB,OAAM,IAAI,MACT,kBAAkB,CAAA,qCAAsC,KAAK,UAAU,QAAA,CAAS,2BAA2B,KAAK,UAAUA,UAAAA,CAAS,EAAA;gBAIrI,OAAM,IAAI,MACT,kBAAkB,CAAA,2CAA4C,KAAK,UAClE,cAAc,MAAA,CACd,EAAA;AAIH,eAAK,OAAO,CAAA,IAAK;AACjB;;;;;;;ACthBL,IAAM,eAAe,IAAI,KAAK,YAAY,SAAS,EAAE,MAAM,UAAA,CAAW;AACtE,IAAM,kBAAkB,oBAAI,IAAI;EAC/B,CAAC,OAAO,IAAA;EACR,CAAC,OAAO,IAAA;EACR,CAAC,OAAO,IAAA;EACR,CAAC,SAAS,IAAA;CACV;AAED,SAAgB,cAAc,GAAmB;AAChD,SAAO,GAAG,CAAA,GAAI,gBAAgB,IAAI,aAAa,OAAO,CAAA,CAAE,CAAC;;AAD1C;AAIhB,SAAgB,uBAAuB,SAc5B;AACV,QAAM,EAAE,SAAS,UAAU,WAAW,YAAA,IAAgB;AACtD,QAAM,QAAkB,CAAA;AAExB,MAAI,WAAW,KACd,OAAM,KAAK,gBAAgB,cAAc,UAAU,CAAA,CAAE,UAAC;MAEtD,OAAM,KAAK,WAAA;AAGZ,MAAI,aAAa,cAAc;AAC9B,UAAM,WAAW,YAAa,QAC3B,IAAI,YAAa,YAAA,MAAkB,YAAa,KAAA,KAChD,IAAI,YAAa,YAAA;AACpB,UAAM,KAAK,QAAA;QAEX,OAAM,KAAK,eAAe,SAAA,EAAA;AAG3B,MAAI,UAAU,WAAW,UAAU,QAAQ;AAG1C,UAAM,cAAc,CAAC,OADC;MADV,SAAS,QAAQ,WAAW,IAAA,IAAQ,SAAS,UAAU,KAAK,SAAS,OAAA;MACrD,SAAS;MAAQ,SAAS;MAAc,OAAO,OAAA,EACjC,KAAK,IAAA,CAAK,GAAC;AAErD,QAAI,aAAa,cAAc,KAC9B,aAAY,KAAK,SAAS,YAAY,UAAA,GAAW;aACvC,SAAS,eAAe,KAClC,aAAY,KAAK,gBAAgB,SAAS,WAAA,GAAY;AAGvD,UAAM,KAAK,YAAY,KAAK,GAAA,CAAI;;AAGjC,SAAO,MAAM,KAAK,IAAA;;AA/CH;AAuDhB,IAAM,0BAA0BC,OAAI,OAAO,2BAA2B,EACrE,QAAQ,gBAAA,CACR;AAED,IAAM,qCAAqCA,OAAI,KAAK,sCAAsC;EACzF,IAAI;EACJ,IAAI;CACJ;AAGD,IAAM,gCAAgCA,OAAI,KAAK,iCAAiC;EAC/E,SAAS;EACT,QAAQ;CACR;AAED,IAAM,wBAAwBA,OAAI,OAAO,yBAAyB,EACjE,QAAQ,8BAAA,CACR;AAED,IAAM,mCAAmCA,OAAI,KAAK,oCAAoC;EACrF,IAAI;EACJ,IAAI;CACJ;;;AC7FD,IAAa,iBAAb,cAAoC,MAAM;SAAA;;;AAAA;AAE1C,IAAa,kBAAb,cAAqC,eAAe;SAAA;;;EAGnD,YACC,SACA,SACC;AACD,UAAM,SAAS,EAAE,OAAO,SAAS,MAAA,CAAO;AACxC,SAAK,iBAAiB,SAAS;;;;;ACZjC,IAAa,eAAe,OAAO,GAAA;AAEnC,IAAa,sBACZ;AACD,IAAa,wBACZ;AAGD,IAAa,sBACZ;AAED,IAAa,eAAe,GAAG,qBAAA;AAC/B,IAAa,6BACZ;AACD,IAAa,uBACZ;AAGD,IAAa,0BACZ;;;ACnBM,SAAS,gBAAgB,OAAO;AACnC,MAAI,IAAI,OAAO;AACf,MAAI,KAAK,UAAU;AACf,QAAI,MAAM,QAAQ,KAAK;AACnB,aAAO;AACX,QAAI,UAAU;AACV,aAAO;AAAA,EACf;AACA,SAAO;AACX;AATgB;AAaT,SAAS,aAAa,OAAO;AAChC,SAAO,UAAU,QAAQ,OAAO,SAAS,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC7E;AAFgB;;;AChBhB,IAAI,WAAW,mEAAmE,MAAM,EAAE;AAE1F,IAAI,WAAW,CAAC;AAChB,SAAS,IAAI,GAAG,IAAI,SAAS,QAAQ;AACjC,WAAS,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI;AAE1C,SAAS,IAAI,WAAW,CAAC,CAAC,IAAI,SAAS,QAAQ,GAAG;AAClD,SAAS,IAAI,WAAW,CAAC,CAAC,IAAI,SAAS,QAAQ,GAAG;AAY3C,SAAS,aAAa,WAAW;AAEpC,MAAI,KAAK,UAAU,SAAS,IAAI;AAGhC,MAAI,UAAU,UAAU,SAAS,CAAC,KAAK;AACnC,UAAM;AAAA,WACD,UAAU,UAAU,SAAS,CAAC,KAAK;AACxC,UAAM;AACV,MAAI,QAAQ,IAAI,WAAW,EAAE,GAAG,UAAU,GAC1C,WAAW,GACX,GACA,IAAI;AAEJ,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACvC,QAAI,SAAS,UAAU,WAAW,CAAC,CAAC;AACpC,QAAI,MAAM,QAAW;AAEjB,cAAQ,UAAU,CAAC,GAAG;AAAA,QAClB,KAAK;AACD,qBAAW;AAAA;AAAA,QACf,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD;AAAA;AAAA,QACJ;AACI,gBAAM,MAAM,wBAAwB;AAAA,MAC5C;AAAA,IACJ;AACA,YAAQ,UAAU;AAAA,MACd,KAAK;AACD,YAAI;AACJ,mBAAW;AACX;AAAA,MACJ,KAAK;AACD,cAAM,SAAS,IAAI,KAAK,KAAK,IAAI,OAAO;AACxC,YAAI;AACJ,mBAAW;AACX;AAAA,MACJ,KAAK;AACD,cAAM,SAAS,KAAK,IAAI,OAAO,KAAK,IAAI,OAAO;AAC/C,YAAI;AACJ,mBAAW;AACX;AAAA,MACJ,KAAK;AACD,cAAM,SAAS,KAAK,IAAI,MAAM,IAAI;AAClC,mBAAW;AACX;AAAA,IACR;AAAA,EACJ;AACA,MAAI,YAAY;AACZ,UAAM,MAAM,wBAAwB;AACxC,SAAO,MAAM,SAAS,GAAG,OAAO;AACpC;AAtDgB;AA4DT,SAAS,aAAa,OAAO;AAChC,MAAI,SAAS,IAAI,WAAW,GAC5B,GACA,IAAI;AACJ,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,QAAI,MAAM,CAAC;AACX,YAAQ,UAAU;AAAA,MACd,KAAK;AACD,kBAAU,SAAS,KAAK,CAAC;AACzB,aAAK,IAAI,MAAM;AACf,mBAAW;AACX;AAAA,MACJ,KAAK;AACD,kBAAU,SAAS,IAAI,KAAK,CAAC;AAC7B,aAAK,IAAI,OAAO;AAChB,mBAAW;AACX;AAAA,MACJ,KAAK;AACD,kBAAU,SAAS,IAAI,KAAK,CAAC;AAC7B,kBAAU,SAAS,IAAI,EAAE;AACzB,mBAAW;AACX;AAAA,IACR;AAAA,EACJ;AAEA,MAAI,UAAU;AACV,cAAU,SAAS,CAAC;AACpB,cAAU;AACV,QAAI,YAAY;AACZ,gBAAU;AAAA,EAClB;AACA,SAAO;AACX;AAhCgB;;;ACzET,IAAI;AAAA,CACV,SAAUC,sBAAqB;AAK5B,EAAAA,qBAAoB,SAAS,OAAO,IAAI,qBAAqB;AAK7D,EAAAA,qBAAoB,SAAS,CAAC,UAAU,SAAS,SAAS,UAAU,SAAS;AACzE,QAAI,YAAYC,IAAG,OAAO,IAAI,QAAQD,qBAAoB,MAAM,IAAI,QAAQA,qBAAoB,MAAM,IAAI,CAAC;AAC3G,cAAU,KAAK,EAAE,IAAI,SAAS,UAAU,KAAK,CAAC;AAAA,EAClD;AAKA,EAAAA,qBAAoB,UAAU,CAAC,UAAU,SAAS,WAAW;AACzD,aAAS,EAAE,IAAI,UAAU,KAAK,KAAKA,qBAAoB,KAAK,OAAO;AAC/D,aAAO,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI;AAAA,EACzC;AAKA,EAAAA,qBAAoB,OAAO,CAAC,SAAS,YAAY;AAC7C,QAAIC,IAAG,OAAO,GAAG;AACb,UAAI,MAAM,QAAQD,qBAAoB,MAAM;AAC5C,aAAO,UAAU,IAAI,OAAO,QAAM,GAAG,MAAM,OAAO,IAAI;AAAA,IAC1D;AACA,WAAO,CAAC;AAAA,EACZ;AAIA,EAAAA,qBAAoB,OAAO,CAAC,SAAS,YAAYA,qBAAoB,KAAK,SAAS,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;AACvG,QAAMC,MAAK,wBAAC,YAAY,WAAW,MAAM,QAAQ,QAAQD,qBAAoB,MAAM,CAAC,GAAzE;AACf,GAAG,wBAAwB,sBAAsB,CAAC,EAAE;AAI7C,SAAS,mBAAmB,GAAG,GAAG;AACrC,SAAO,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAChD;AAFgB;AAWT,IAAI;AAAA,CACV,SAAUE,WAAU;AAIjB,EAAAA,UAASA,UAAS,QAAQ,IAAI,CAAC,IAAI;AAKnC,EAAAA,UAASA,UAAS,OAAO,IAAI,CAAC,IAAI;AAQlC,EAAAA,UAASA,UAAS,iBAAiB,IAAI,CAAC,IAAI;AAK5C,EAAAA,UAASA,UAAS,YAAY,IAAI,CAAC,IAAI;AAKvC,EAAAA,UAASA,UAAS,UAAU,IAAI,CAAC,IAAI;AAKrC,EAAAA,UAASA,UAAS,OAAO,IAAI,CAAC,IAAI;AACtC,GAAG,aAAa,WAAW,CAAC,EAAE;;;ACpDvB,SAAS,eAAe;AAC3B,MAAI,UAAU;AACd,MAAI,WAAW;AACf,WAAS,QAAQ,GAAG,QAAQ,IAAI,SAAS,GAAG;AACxC,QAAI,IAAI,KAAK,IAAI,KAAK,KAAK;AAC3B,gBAAY,IAAI,QAAS;AACzB,SAAK,IAAI,QAAS,GAAG;AACjB,WAAK,aAAa;AAClB,aAAO,CAAC,SAAS,QAAQ;AAAA,IAC7B;AAAA,EACJ;AACA,MAAI,aAAa,KAAK,IAAI,KAAK,KAAK;AAEpC,cAAY,aAAa,OAAS;AAElC,cAAY,aAAa,QAAS;AAClC,OAAK,aAAa,QAAS,GAAG;AAC1B,SAAK,aAAa;AAClB,WAAO,CAAC,SAAS,QAAQ;AAAA,EAC7B;AACA,WAAS,QAAQ,GAAG,SAAS,IAAI,SAAS,GAAG;AACzC,QAAI,IAAI,KAAK,IAAI,KAAK,KAAK;AAC3B,iBAAa,IAAI,QAAS;AAC1B,SAAK,IAAI,QAAS,GAAG;AACjB,WAAK,aAAa;AAClB,aAAO,CAAC,SAAS,QAAQ;AAAA,IAC7B;AAAA,EACJ;AACA,QAAM,IAAI,MAAM,gBAAgB;AACpC;AA7BgB;AAqCT,SAAS,cAAc,IAAI,IAAI,OAAO;AACzC,WAAS,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG;AAC/B,UAAM,QAAQ,OAAO;AACrB,UAAM,UAAU,EAAG,UAAU,KAAM,KAAK,MAAM;AAC9C,UAAM,QAAQ,UAAU,QAAQ,MAAO,SAAS;AAChD,UAAM,KAAK,IAAI;AACf,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AAAA,EACJ;AACA,QAAM,YAAc,OAAO,KAAM,MAAU,KAAK,MAAS;AACzD,QAAM,cAAc,EAAG,MAAM,KAAM;AACnC,QAAM,MAAM,cAAc,YAAY,MAAO,aAAa,GAAI;AAC9D,MAAI,CAAC,aAAa;AACd;AAAA,EACJ;AACA,WAAS,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG;AAC/B,UAAM,QAAQ,OAAO;AACrB,UAAM,UAAU,EAAG,UAAU,KAAM;AACnC,UAAM,QAAQ,UAAU,QAAQ,MAAO,SAAS;AAChD,UAAM,KAAK,IAAI;AACf,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AAAA,EACJ;AACA,QAAM,KAAM,OAAO,KAAM,CAAI;AACjC;AA1BgB;AA4BhB,IAAM,kBAAkB,KAAK,OAAO,KAAK;AAWlC,SAAS,gBAAgB,KAAK;AAEjC,MAAI,QAAQ,IAAI,CAAC,KAAK;AACtB,MAAI;AACA,UAAM,IAAI,MAAM,CAAC;AAIrB,QAAM,OAAO;AACb,MAAI,UAAU;AACd,MAAI,WAAW;AACf,WAAS,YAAY,OAAO,KAAK;AAE7B,UAAM,WAAW,OAAO,IAAI,MAAM,OAAO,GAAG,CAAC;AAC7C,gBAAY;AACZ,cAAU,UAAU,OAAO;AAE3B,QAAI,WAAW,gBAAgB;AAC3B,iBAAW,YAAa,UAAU,iBAAkB;AACpD,gBAAU,UAAU;AAAA,IACxB;AAAA,EACJ;AAVS;AAWT,cAAY,KAAK,GAAG;AACpB,cAAY,KAAK,GAAG;AACpB,cAAY,KAAK,EAAE;AACnB,cAAY,EAAE;AACd,SAAO,CAAC,OAAO,SAAS,QAAQ;AACpC;AA3BgB;AAiCT,SAAS,cAAc,SAAS,UAAU;AAG7C,MAAK,aAAa,KAAM,SAAU;AAC9B,WAAO,MAAM,iBAAiB,YAAY,YAAY;AAAA,EAC1D;AAUA,MAAI,MAAM,UAAU;AACpB,MAAI,OAAS,YAAY,KAAO,YAAY,OAAQ,IAAK;AACzD,MAAI,OAAQ,YAAY,KAAM;AAI9B,MAAI,SAAS,MAAO,MAAM,UAAY,OAAO;AAC7C,MAAI,SAAS,MAAO,OAAO;AAC3B,MAAI,SAAU,OAAO;AAErB,MAAI,OAAO;AACX,MAAI,UAAU,MAAM;AAChB,cAAU,KAAK,MAAM,SAAS,IAAI;AAClC,cAAU;AAAA,EACd;AACA,MAAI,UAAU,MAAM;AAChB,cAAU,KAAK,MAAM,SAAS,IAAI;AAClC,cAAU;AAAA,EACd;AAEA,WAAS,eAAe,UAAU,kBAAkB;AAChD,QAAI,UAAU,WAAW,OAAO,QAAQ,IAAI;AAC5C,QAAI,kBAAkB;AAClB,aAAO,UAAU,MAAM,QAAQ,MAAM,IAAI;AAAA,IAC7C;AACA,WAAO;AAAA,EACX;AANS;AAOT,SAAO;AAAA,IAAe;AAAA;AAAA,IAA8B;AAAA,EAAC,IACjD;AAAA,IAAe;AAAA;AAAA,IAA8B;AAAA,EAAM;AAAA;AAAA,EAGnD;AAAA,IAAe;AAAA;AAAA,IAA8B;AAAA,EAAC;AACtD;AA/CgB;AAuDT,SAAS,cAAc,OAAO,OAAO;AACxC,MAAI,SAAS,GAAG;AAEZ,WAAO,QAAQ,KAAM;AACjB,YAAM,KAAM,QAAQ,MAAQ,GAAI;AAChC,cAAQ,UAAU;AAAA,IACtB;AACA,UAAM,KAAK,KAAK;AAAA,EACpB,OACK;AACD,aAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AACxB,YAAM,KAAK,QAAQ,MAAM,GAAG;AAC5B,cAAQ,SAAS;AAAA,IACrB;AACA,UAAM,KAAK,CAAC;AAAA,EAChB;AACJ;AAhBgB;AAsBT,SAAS,eAAe;AAC3B,MAAI,IAAI,KAAK,IAAI,KAAK,KAAK;AAC3B,MAAI,SAAS,IAAI;AACjB,OAAK,IAAI,QAAS,GAAG;AACjB,SAAK,aAAa;AAClB,WAAO;AAAA,EACX;AACA,MAAI,KAAK,IAAI,KAAK,KAAK;AACvB,aAAW,IAAI,QAAS;AACxB,OAAK,IAAI,QAAS,GAAG;AACjB,SAAK,aAAa;AAClB,WAAO;AAAA,EACX;AACA,MAAI,KAAK,IAAI,KAAK,KAAK;AACvB,aAAW,IAAI,QAAS;AACxB,OAAK,IAAI,QAAS,GAAG;AACjB,SAAK,aAAa;AAClB,WAAO;AAAA,EACX;AACA,MAAI,KAAK,IAAI,KAAK,KAAK;AACvB,aAAW,IAAI,QAAS;AACxB,OAAK,IAAI,QAAS,GAAG;AACjB,SAAK,aAAa;AAClB,WAAO;AAAA,EACX;AAEA,MAAI,KAAK,IAAI,KAAK,KAAK;AACvB,aAAW,IAAI,OAAS;AACxB,WAAS,YAAY,IAAK,IAAI,SAAU,KAAM,YAAY,IAAI;AAC1D,QAAI,KAAK,IAAI,KAAK,KAAK;AAC3B,OAAK,IAAI,QAAS;AACd,UAAM,IAAI,MAAM,gBAAgB;AACpC,OAAK,aAAa;AAElB,SAAO,WAAW;AACtB;AAnCgB;;;ACpOhB,IAAI;AACG,SAAS,WAAW;AACvB,QAAM,KAAK,IAAI,SAAS,IAAI,YAAY,CAAC,CAAC;AAC1C,QAAM,KAAK,WAAW,WAAW,UAC1B,OAAO,GAAG,gBAAgB,cAC1B,OAAO,GAAG,iBAAiB,cAC3B,OAAO,GAAG,gBAAgB,cAC1B,OAAO,GAAG,iBAAiB;AAClC,OAAK,KAAK;AAAA,IACN,KAAK,OAAO,sBAAsB;AAAA,IAClC,KAAK,OAAO,qBAAqB;AAAA,IACjC,MAAM,OAAO,GAAG;AAAA,IAChB,MAAM,OAAO,sBAAsB;AAAA,IACnC,GAAG;AAAA,IACH,GAAG;AAAA,EACP,IAAI;AACR;AAfgB;AAgBhB,SAAS;AACT,SAAS,SAAS,IAAI;AAClB,MAAI,CAAC;AACD,UAAM,IAAI,MAAM,uGAAuG;AAC/H;AAHS;AAKT,IAAM,iBAAiB;AAEvB,IAAMC,kBAAiB;AACvB,IAAM,gBAAgB;AAEtB,IAAM,eAAN,MAAmB;AAAA,EA7BnB,OA6BmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAIf,YAAY,IAAI,IAAI;AAChB,SAAK,KAAK,KAAK;AACf,SAAK,KAAK,KAAK;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,WAAO,KAAK,MAAM,KAAK,KAAK,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AACP,QAAI,SAAS,KAAK,KAAKA,mBAAkB,KAAK,OAAO;AACrD,QAAI,CAAC,OAAO,cAAc,MAAM;AAC5B,YAAM,IAAI,MAAM,+BAA+B;AACnD,WAAO;AAAA,EACX;AACJ;AAKO,IAAM,UAAN,MAAM,iBAAgB,aAAa;AAAA,EAzD1C,OAyD0C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAItC,OAAO,KAAK,OAAO;AACf,QAAI;AAEA,cAAQ,OAAO,OAAO;AAAA,QAClB,KAAK;AACD,cAAI,SAAS;AACT,mBAAO,KAAK;AAChB,cAAI,SAAS;AACT,kBAAM,IAAI,MAAM,sBAAsB;AAC1C,kBAAQ,GAAG,EAAE,KAAK;AAAA,QACtB,KAAK;AACD,cAAI,UAAU;AACV,mBAAO,KAAK;AAChB,kBAAQ,GAAG,EAAE,KAAK;AAAA,QACtB,KAAK;AACD,cAAI,CAAC;AACD,mBAAO,KAAK;AAChB,cAAI,QAAQ,GAAG;AACX,kBAAM,IAAI,MAAM,wBAAwB;AAC5C,cAAI,QAAQ,GAAG;AACX,kBAAM,IAAI,MAAM,iBAAiB;AACrC,aAAG,EAAE,aAAa,GAAG,OAAO,IAAI;AAChC,iBAAO,IAAI,SAAQ,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;AAAA,MACzE;AAAA;AAEA,cAAQ,OAAO,OAAO;AAAA,QAClB,KAAK;AACD,cAAI,SAAS;AACT,mBAAO,KAAK;AAChB,kBAAQ,MAAM,KAAK;AACnB,cAAI,CAAC,eAAe,KAAK,KAAK;AAC1B,kBAAM,IAAI,MAAM,sBAAsB;AAC1C,cAAI,CAAC,OAAO,IAAI,EAAE,IAAI,gBAAgB,KAAK;AAC3C,cAAI;AACA,kBAAM,IAAI,MAAM,wBAAwB;AAC5C,iBAAO,IAAI,SAAQ,IAAI,EAAE;AAAA,QAC7B,KAAK;AACD,cAAI,SAAS;AACT,mBAAO,KAAK;AAChB,cAAI,CAAC,OAAO,cAAc,KAAK;AAC3B,kBAAM,IAAI,MAAM,sBAAsB;AAC1C,cAAI,QAAQ;AACR,kBAAM,IAAI,MAAM,wBAAwB;AAC5C,iBAAO,IAAI,SAAQ,OAAO,QAAQA,eAAc;AAAA,MACxD;AACJ,UAAM,IAAI,MAAM,mBAAmB,OAAO,KAAK;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AACP,WAAO,KAAK,KAAK,SAAS,EAAE,SAAS,IAAI,cAAc,KAAK,IAAI,KAAK,EAAE;AAAA,EAC3E;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AACP,aAAS,EAAE;AACX,OAAG,EAAE,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,OAAG,EAAE,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,WAAO,GAAG,EAAE,aAAa,GAAG,IAAI;AAAA,EACpC;AACJ;AAIA,QAAQ,OAAO,IAAI,QAAQ,GAAG,CAAC;AAKxB,IAAM,SAAN,MAAM,gBAAe,aAAa;AAAA,EApIzC,OAoIyC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAIrC,OAAO,KAAK,OAAO;AACf,QAAI;AAEA,cAAQ,OAAO,OAAO;AAAA,QAClB,KAAK;AACD,cAAI,SAAS;AACT,mBAAO,KAAK;AAChB,cAAI,SAAS;AACT,kBAAM,IAAI,MAAM,sBAAsB;AAC1C,kBAAQ,GAAG,EAAE,KAAK;AAAA,QACtB,KAAK;AACD,cAAI,UAAU;AACV,mBAAO,KAAK;AAChB,kBAAQ,GAAG,EAAE,KAAK;AAAA,QACtB,KAAK;AACD,cAAI,CAAC;AACD,mBAAO,KAAK;AAChB,cAAI,QAAQ,GAAG;AACX,kBAAM,IAAI,MAAM,uBAAuB;AAC3C,cAAI,QAAQ,GAAG;AACX,kBAAM,IAAI,MAAM,uBAAuB;AAC3C,aAAG,EAAE,YAAY,GAAG,OAAO,IAAI;AAC/B,iBAAO,IAAI,QAAO,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;AAAA,MACxE;AAAA;AAEA,cAAQ,OAAO,OAAO;AAAA,QAClB,KAAK;AACD,cAAI,SAAS;AACT,mBAAO,KAAK;AAChB,kBAAQ,MAAM,KAAK;AACnB,cAAI,CAAC,eAAe,KAAK,KAAK;AAC1B,kBAAM,IAAI,MAAM,sBAAsB;AAC1C,cAAI,CAAC,OAAO,IAAI,EAAE,IAAI,gBAAgB,KAAK;AAC3C,cAAI,OAAO;AACP,gBAAI,KAAK,iBAAkB,MAAM,iBAAiB,MAAM;AACpD,oBAAM,IAAI,MAAM,uBAAuB;AAAA,UAC/C,WACS,MAAM;AACX,kBAAM,IAAI,MAAM,uBAAuB;AAC3C,cAAI,MAAM,IAAI,QAAO,IAAI,EAAE;AAC3B,iBAAO,QAAQ,IAAI,OAAO,IAAI;AAAA,QAClC,KAAK;AACD,cAAI,SAAS;AACT,mBAAO,KAAK;AAChB,cAAI,CAAC,OAAO,cAAc,KAAK;AAC3B,kBAAM,IAAI,MAAM,sBAAsB;AAC1C,iBAAO,QAAQ,IACT,IAAI,QAAO,OAAO,QAAQA,eAAc,IACxC,IAAI,QAAO,CAAC,OAAO,CAAC,QAAQA,eAAc,EAAE,OAAO;AAAA,MACjE;AACJ,UAAM,IAAI,MAAM,mBAAmB,OAAO,KAAK;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAIA,aAAa;AACT,YAAQ,KAAK,KAAK,mBAAmB;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS;AACL,QAAI,KAAK,CAAC,KAAK,IAAI,KAAK,KAAK;AAC7B,QAAI;AACA,WAAK,CAAC,KAAK;AAAA;AAEX,YAAM;AACV,WAAO,IAAI,QAAO,IAAI,EAAE;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AACP,QAAI;AACA,aAAO,KAAK,SAAS,EAAE,SAAS;AACpC,QAAI,KAAK,WAAW,GAAG;AACnB,UAAI,IAAI,KAAK,OAAO;AACpB,aAAO,MAAM,cAAc,EAAE,IAAI,EAAE,EAAE;AAAA,IACzC;AACA,WAAO,cAAc,KAAK,IAAI,KAAK,EAAE;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AACP,aAAS,EAAE;AACX,OAAG,EAAE,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,OAAG,EAAE,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,WAAO,GAAG,EAAE,YAAY,GAAG,IAAI;AAAA,EACnC;AACJ;AAIA,OAAO,OAAO,IAAI,OAAO,GAAG,CAAC;;;ACpO7B,IAAM,eAAe;AAAA,EACjB,kBAAkB;AAAA,EAClB,eAAe,kCAAS,IAAI,aAAa,KAAK,GAA/B;AACnB;AAIO,SAAS,kBAAkB,SAAS;AACvC,SAAO,UAAU,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,YAAY,GAAG,OAAO,IAAI;AAC/E;AAFgB;AAGT,IAAM,eAAN,MAAmB;AAAA,EAb1B,OAa0B;AAAA;AAAA;AAAA,EACtB,YAAY,KAAK,aAAa;AAC1B,SAAK,WAAW;AAIhB,SAAK,SAAS;AACd,SAAK,MAAM;AACX,SAAK,MAAM,IAAI;AACf,SAAK,MAAM;AACX,SAAK,OAAO,IAAI,SAAS,IAAI,QAAQ,IAAI,YAAY,IAAI,UAAU;AACnE,SAAK,cAAc,gBAAgB,QAAQ,gBAAgB,SAAS,cAAc,IAAI,YAAY,SAAS;AAAA,MACvG,OAAO;AAAA,MACP,WAAW;AAAA,IACf,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM;AACF,QAAI,MAAM,KAAK,OAAO,GAAG,UAAU,QAAQ,GAAG,WAAW,MAAM;AAC/D,QAAI,WAAW,KAAK,WAAW,KAAK,WAAW;AAC3C,YAAM,IAAI,MAAM,2BAA2B,UAAU,gBAAgB,QAAQ;AACjF,WAAO,CAAC,SAAS,QAAQ;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,UAAU;AACX,QAAI,QAAQ,KAAK;AAEjB,YAAQ,UAAU;AAAA,MACd,KAAK,SAAS;AACV,eAAO,KAAK,IAAI,KAAK,KAAK,IAAI,KAAM;AAAA,QAEpC;AACA;AAAA,MACJ,KAAK,SAAS;AACV,aAAK,OAAO;AAAA,MAChB,KAAK,SAAS;AACV,aAAK,OAAO;AACZ;AAAA,MACJ,KAAK,SAAS;AACV,YAAI,MAAM,KAAK,OAAO;AACtB,aAAK,OAAO;AACZ;AAAA,MACJ,KAAK,SAAS;AAGV,YAAI;AACJ,gBAAQ,IAAI,KAAK,IAAI,EAAE,CAAC,OAAO,SAAS,UAAU;AAC9C,eAAK,KAAK,CAAC;AAAA,QACf;AACA;AAAA,MACJ;AACI,cAAM,IAAI,MAAM,yBAAyB,QAAQ;AAAA,IACzD;AACA,SAAK,aAAa;AAClB,WAAO,KAAK,IAAI,SAAS,OAAO,KAAK,GAAG;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAIA,eAAe;AACX,QAAI,KAAK,MAAM,KAAK;AAChB,YAAM,IAAI,WAAW,eAAe;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ;AACJ,WAAO,KAAK,OAAO,IAAI;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,QAAI,MAAM,KAAK,OAAO;AAEtB,WAAQ,QAAQ,IAAK,EAAE,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ;AACJ,WAAO,IAAI,OAAO,GAAG,KAAK,SAAS,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,WAAO,IAAI,QAAQ,GAAG,KAAK,SAAS,CAAC;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,QAAI,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS;AAE7B,QAAI,IAAI,EAAE,KAAK;AACf,UAAO,OAAO,KAAK,KAAK,MAAM,MAAM;AACpC,SAAM,OAAO,IAAI;AACjB,WAAO,IAAI,OAAO,IAAI,EAAE;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO;AACH,QAAI,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS;AAC7B,WAAO,OAAO,KAAK,OAAO;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAIA,UAAU;AACN,WAAO,KAAK,KAAK,WAAW,KAAK,OAAO,KAAK,GAAG,IAAI;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AACP,WAAO,KAAK,KAAK,UAAU,KAAK,OAAO,KAAK,GAAG,IAAI;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA,EAIA,UAAU;AACN,WAAO,IAAI,QAAQ,KAAK,SAAS,GAAG,KAAK,SAAS,CAAC;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW;AACP,WAAO,IAAI,OAAO,KAAK,SAAS,GAAG,KAAK,SAAS,CAAC;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ;AACJ,WAAO,KAAK,KAAK,YAAY,KAAK,OAAO,KAAK,GAAG,IAAI;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,WAAO,KAAK,KAAK,YAAY,KAAK,OAAO,KAAK,GAAG,IAAI;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ;AACJ,QAAI,MAAM,KAAK,OAAO;AACtB,QAAI,QAAQ,KAAK;AACjB,SAAK,OAAO;AACZ,SAAK,aAAa;AAClB,WAAO,KAAK,IAAI,SAAS,OAAO,QAAQ,GAAG;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,WAAO,KAAK,YAAY,OAAO,KAAK,MAAM,CAAC;AAAA,EAC/C;AACJ;;;AC9KO,SAAS,OAAO,WAAW,KAAK;AACnC,MAAI,CAAC,WAAW;AACZ,UAAM,IAAI,MAAM,GAAG;AAAA,EACvB;AACJ;AAJgB;AAQT,SAAS,YAAY,OAAO,KAAK;AACpC,QAAM,IAAI,MAAM,QAAQ,QAAQ,QAAQ,SAAS,MAAM,wBAAwB,KAAK;AACxF;AAFgB;AAGhB,IAAM,cAAc;AAApB,IAA4C,cAAc;AAA1D,IAAmF,aAAa;AAAhG,IAA4G,YAAY;AAAxH,IAAoI,YAAY;AACzI,SAAS,YAAY,KAAK;AAC7B,MAAI,OAAO,QAAQ;AACf,UAAM,IAAI,MAAM,qBAAqB,OAAO,GAAG;AACnD,MAAI,CAAC,OAAO,UAAU,GAAG,KAAK,MAAM,aAAa,MAAM;AACnD,UAAM,IAAI,MAAM,qBAAqB,GAAG;AAChD;AALgB;AAMT,SAAS,aAAa,KAAK;AAC9B,MAAI,OAAO,QAAQ;AACf,UAAM,IAAI,MAAM,sBAAsB,OAAO,GAAG;AACpD,MAAI,CAAC,OAAO,UAAU,GAAG,KAAK,MAAM,cAAc,MAAM;AACpD,UAAM,IAAI,MAAM,sBAAsB,GAAG;AACjD;AALgB;AAMT,SAAS,cAAc,KAAK;AAC/B,MAAI,OAAO,QAAQ;AACf,UAAM,IAAI,MAAM,uBAAuB,OAAO,GAAG;AACrD,MAAI,CAAC,OAAO,SAAS,GAAG;AACpB;AACJ,MAAI,MAAM,eAAe,MAAM;AAC3B,UAAM,IAAI,MAAM,uBAAuB,GAAG;AAClD;AAPgB;;;ACxBhB,IAAM,gBAAgB;AAAA,EAClB,oBAAoB;AAAA,EACpB,eAAe,6BAAM,IAAI,aAAa,GAAvB;AACnB;AAIO,SAAS,mBAAmB,SAAS;AACxC,SAAO,UAAU,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,aAAa,GAAG,OAAO,IAAI;AAChF;AAFgB;AAGT,IAAM,eAAN,MAAmB;AAAA,EAb1B,OAa0B;AAAA;AAAA;AAAA,EACtB,YAAY,aAAa;AAIrB,SAAK,QAAQ,CAAC;AACd,SAAK,cAAc,gBAAgB,QAAQ,gBAAgB,SAAS,cAAc,IAAI,YAAY;AAClG,SAAK,SAAS,CAAC;AACf,SAAK,MAAM,CAAC;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS;AACL,SAAK,OAAO,KAAK,IAAI,WAAW,KAAK,GAAG,CAAC;AACzC,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ;AACpC,aAAO,KAAK,OAAO,CAAC,EAAE;AAC1B,QAAI,QAAQ,IAAI,WAAW,GAAG;AAC9B,QAAI,SAAS;AACb,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ,KAAK;AACzC,YAAM,IAAI,KAAK,OAAO,CAAC,GAAG,MAAM;AAChC,gBAAU,KAAK,OAAO,CAAC,EAAE;AAAA,IAC7B;AACA,SAAK,SAAS,CAAC;AACf,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO;AACH,SAAK,MAAM,KAAK,EAAE,QAAQ,KAAK,QAAQ,KAAK,KAAK,IAAI,CAAC;AACtD,SAAK,SAAS,CAAC;AACf,SAAK,MAAM,CAAC;AACZ,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO;AAEH,QAAIC,SAAQ,KAAK,OAAO;AAExB,QAAI,OAAO,KAAK,MAAM,IAAI;AAC1B,QAAI,CAAC;AACD,YAAM,IAAI,MAAM,iCAAiC;AACrD,SAAK,SAAS,KAAK;AACnB,SAAK,MAAM,KAAK;AAEhB,SAAK,OAAOA,OAAM,UAAU;AAC5B,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,IAAI,SAAS,MAAM;AACf,WAAO,KAAK,QAAQ,WAAW,IAAI,UAAU,CAAC;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA,EAIA,IAAIA,QAAO;AACP,QAAI,KAAK,IAAI,QAAQ;AACjB,WAAK,OAAO,KAAK,IAAI,WAAW,KAAK,GAAG,CAAC;AACzC,WAAK,MAAM,CAAC;AAAA,IAChB;AACA,SAAK,OAAO,KAAKA,MAAK;AACtB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAO;AACV,iBAAa,KAAK;AAElB,WAAO,QAAQ,KAAM;AACjB,WAAK,IAAI,KAAM,QAAQ,MAAQ,GAAI;AACnC,cAAQ,UAAU;AAAA,IACtB;AACA,SAAK,IAAI,KAAK,KAAK;AACnB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,OAAO;AACT,gBAAY,KAAK;AACjB,kBAAc,OAAO,KAAK,GAAG;AAC7B,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,KAAK,OAAO;AACR,SAAK,IAAI,KAAK,QAAQ,IAAI,CAAC;AAC3B,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,OAAO;AACT,SAAK,OAAO,MAAM,UAAU;AAC5B,WAAO,KAAK,IAAI,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAO;AACV,QAAIA,SAAQ,KAAK,YAAY,OAAO,KAAK;AACzC,SAAK,OAAOA,OAAM,UAAU;AAC5B,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,OAAO;AACT,kBAAc,KAAK;AACnB,QAAIA,SAAQ,IAAI,WAAW,CAAC;AAC5B,QAAI,SAASA,OAAM,MAAM,EAAE,WAAW,GAAG,OAAO,IAAI;AACpD,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAO;AACV,QAAIA,SAAQ,IAAI,WAAW,CAAC;AAC5B,QAAI,SAASA,OAAM,MAAM,EAAE,WAAW,GAAG,OAAO,IAAI;AACpD,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ,OAAO;AACX,iBAAa,KAAK;AAClB,QAAIA,SAAQ,IAAI,WAAW,CAAC;AAC5B,QAAI,SAASA,OAAM,MAAM,EAAE,UAAU,GAAG,OAAO,IAAI;AACnD,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,OAAO;AACZ,gBAAY,KAAK;AACjB,QAAIA,SAAQ,IAAI,WAAW,CAAC;AAC5B,QAAI,SAASA,OAAM,MAAM,EAAE,SAAS,GAAG,OAAO,IAAI;AAClD,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAO;AACV,gBAAY,KAAK;AAEjB,aAAU,SAAS,IAAM,SAAS,QAAS;AAC3C,kBAAc,OAAO,KAAK,GAAG;AAC7B,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,OAAO;AACZ,QAAIA,SAAQ,IAAI,WAAW,CAAC;AAC5B,QAAI,OAAO,IAAI,SAASA,OAAM,MAAM;AACpC,QAAI,OAAO,OAAO,KAAK,KAAK;AAC5B,SAAK,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,SAAK,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ,OAAO;AACX,QAAIA,SAAQ,IAAI,WAAW,CAAC;AAC5B,QAAI,OAAO,IAAI,SAASA,OAAM,MAAM;AACpC,QAAI,OAAO,QAAQ,KAAK,KAAK;AAC7B,SAAK,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,SAAK,SAAS,GAAG,KAAK,IAAI,IAAI;AAC9B,WAAO,KAAK,IAAIA,MAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,OAAO;AACT,QAAI,OAAO,OAAO,KAAK,KAAK;AAC5B,kBAAc,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG;AACxC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAO;AACV,QAAI,OAAO,OAAO,KAAK,KAAK,GAE5B,OAAO,KAAK,MAAM,IAAI,KAAM,KAAK,MAAM,IAAK,MAAM,MAAO,KAAK,MAAM,IAAM,KAAK,OAAO,MAAO;AAC7F,kBAAc,IAAI,IAAI,KAAK,GAAG;AAC9B,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,OAAO;AACV,QAAI,OAAO,QAAQ,KAAK,KAAK;AAC7B,kBAAc,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG;AACxC,WAAO;AAAA,EACX;AACJ;;;AClOA,IAAMC,iBAAgB;AAAA,EAClB,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,cAAc;AAClB;AALA,IAKGC,gBAAe;AAAA,EACd,qBAAqB;AACzB;AAIO,SAAS,gBAAgB,SAAS;AACrC,SAAO,UAAU,OAAO,OAAO,OAAO,OAAO,CAAC,GAAGA,aAAY,GAAG,OAAO,IAAIA;AAC/E;AAFgB;AAMT,SAAS,iBAAiB,SAAS;AACtC,SAAO,UAAU,OAAO,OAAO,OAAO,OAAO,CAAC,GAAGD,cAAa,GAAG,OAAO,IAAIA;AAChF;AAFgB;AAMT,SAAS,iBAAiB,GAAG,GAAG;AACnC,MAAI,IAAI;AACR,MAAI,IAAI,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7C,IAAE,eAAe,CAAC,IAAK,KAAK,MAAM,QAAQ,MAAM,SAAS,SAAS,EAAE,kBAAkB,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAI,IAAK,KAAK,MAAM,QAAQ,MAAM,SAAS,SAAS,EAAE,kBAAkB,QAAQ,OAAO,SAAS,KAAK,CAAC,CAAE;AAC5N,SAAO;AACX;AALgB;;;ACjBT,IAAM,eAAe,OAAO,IAAI,0BAA0B;;;ACA1D,SAAS,eAAe,WAAW;AACtC,MAAI,UAAU;AACd,QAAM,KAAK,CAAC;AACZ,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACvC,QAAI,OAAO,UAAU,OAAO,CAAC;AAC7B,QAAI,QAAQ,KAAK;AACb,gBAAU;AAAA,IACd,WACS,KAAK,KAAK,IAAI,GAAG;AACtB,SAAG,KAAK,IAAI;AACZ,gBAAU;AAAA,IACd,WACS,SAAS;AACd,SAAG,KAAK,KAAK,YAAY,CAAC;AAC1B,gBAAU;AAAA,IACd,WACS,KAAK,GAAG;AACb,SAAG,KAAK,KAAK,YAAY,CAAC;AAAA,IAC9B,OACK;AACD,SAAG,KAAK,IAAI;AAAA,IAChB;AAAA,EACJ;AACA,SAAO,GAAG,KAAK,EAAE;AACrB;AAxBgB;;;ACAT,IAAI;AAAA,CACV,SAAUE,aAAY;AAGnB,EAAAA,YAAWA,YAAW,QAAQ,IAAI,CAAC,IAAI;AACvC,EAAAA,YAAWA,YAAW,OAAO,IAAI,CAAC,IAAI;AAGtC,EAAAA,YAAWA,YAAW,OAAO,IAAI,CAAC,IAAI;AACtC,EAAAA,YAAWA,YAAW,QAAQ,IAAI,CAAC,IAAI;AAGvC,EAAAA,YAAWA,YAAW,OAAO,IAAI,CAAC,IAAI;AACtC,EAAAA,YAAWA,YAAW,SAAS,IAAI,CAAC,IAAI;AACxC,EAAAA,YAAWA,YAAW,SAAS,IAAI,CAAC,IAAI;AACxC,EAAAA,YAAWA,YAAW,MAAM,IAAI,CAAC,IAAI;AACrC,EAAAA,YAAWA,YAAW,QAAQ,IAAI,CAAC,IAAI;AAQvC,EAAAA,YAAWA,YAAW,OAAO,IAAI,EAAE,IAAI;AACvC,EAAAA,YAAWA,YAAW,QAAQ,IAAI,EAAE,IAAI;AAExC,EAAAA,YAAWA,YAAW,UAAU,IAAI,EAAE,IAAI;AAC1C,EAAAA,YAAWA,YAAW,UAAU,IAAI,EAAE,IAAI;AAC1C,EAAAA,YAAWA,YAAW,QAAQ,IAAI,EAAE,IAAI;AACxC,EAAAA,YAAWA,YAAW,QAAQ,IAAI,EAAE,IAAI;AAC5C,GAAG,eAAe,aAAa,CAAC,EAAE;AAkB3B,IAAI;AAAA,CACV,SAAUC,WAAU;AAMjB,EAAAA,UAASA,UAAS,QAAQ,IAAI,CAAC,IAAI;AAMnC,EAAAA,UAASA,UAAS,QAAQ,IAAI,CAAC,IAAI;AAQnC,EAAAA,UAASA,UAAS,QAAQ,IAAI,CAAC,IAAI;AACvC,GAAG,aAAa,WAAW,CAAC,EAAE;AAgBvB,IAAI;AAAA,CACV,SAAUC,aAAY;AAInB,EAAAA,YAAWA,YAAW,IAAI,IAAI,CAAC,IAAI;AAKnC,EAAAA,YAAWA,YAAW,QAAQ,IAAI,CAAC,IAAI;AAKvC,EAAAA,YAAWA,YAAW,UAAU,IAAI,CAAC,IAAI;AAC7C,GAAG,eAAe,aAAa,CAAC,EAAE;AAI3B,SAAS,mBAAmB,OAAO;AACtC,MAAI,IAAI,IAAI,IAAI;AAChB,QAAM,aAAa,KAAK,MAAM,eAAe,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM,IAAI;AACnG,QAAM,YAAY,KAAK,MAAM,cAAc,QAAQ,OAAO,SAAS,KAAK,eAAe,MAAM,IAAI;AACjG,QAAM,UAAU,KAAK,MAAM,YAAY,QAAQ,OAAO,SAAS,KAAK,WAAW;AAC/E,QAAM,OAAO,KAAK,MAAM,SAAS,QAAQ,OAAO,SAAS,KAAM,MAAM,SAAS,QAAQ,MAAM,QAAQ,QAAQ,MAAM,QAAQ;AAC1H,SAAO;AACX;AAPgB;;;ACtFT,SAAS,aAAa,KAAK;AAC9B,MAAI,OAAO,OAAO,YAAY,QAAQ,QAAQ,CAAC,IAAI,eAAe,WAAW,GAAG;AAC5E,WAAO;AAAA,EACX;AACA,UAAQ,OAAO,IAAI,WAAW;AAAA,IAC1B,KAAK;AACD,UAAI,IAAI,IAAI,SAAS,MAAM;AACvB,eAAO;AACX,aAAO,OAAO,KAAK,GAAG,EAAE,UAAU;AAAA,IACtC,KAAK;AACD,aAAO,OAAO,KAAK,GAAG,EAAE,UAAU;AAAA,IACtC;AACI,aAAO;AAAA,EACf;AACJ;AAdgB;;;ACxBT,IAAM,sBAAN,MAA0B;AAAA,EAHjC,OAGiC;AAAA;AAAA;AAAA,EAC7B,YAAY,MAAM;AACd,QAAI;AACJ,SAAK,UAAU,KAAK,KAAK,YAAY,QAAQ,OAAO,SAAS,KAAK,CAAC;AAAA,EACvE;AAAA,EACA,UAAU;AACN,QAAI,KAAK;AACL;AACJ,UAAM,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,SAAS,CAAC;AACtC,aAAS,SAAS,KAAK,QAAQ;AAC3B,UAAI,MAAM,OAAO;AACb,YAAI,CAAC,OAAO,SAAS,MAAM,KAAK,GAAG;AAC/B,iBAAO,KAAK,MAAM,KAAK;AACvB,cAAI,KAAK,MAAM,KAAK;AACpB,gBAAM,KAAK,MAAM,KAAK;AAAA,QAC1B;AAAA,MACJ,OACK;AACD,cAAM,KAAK,MAAM,SAAS;AAC1B,gBAAQ,MAAM,MAAM;AAAA,UAChB,KAAK;AAAA,UACL,KAAK;AACD,gBAAI,CAAC,MAAM,OAAO,MAAM;AACpB,kBAAI,KAAK,MAAM,SAAS;AAC5B;AAAA,UACJ,KAAK;AACD,gBAAI,MAAM;AACN,kBAAI,KAAK,MAAM,SAAS;AAC5B;AAAA,UACJ,KAAK;AACD,gBAAI,KAAK,MAAM,SAAS;AACxB;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AACA,SAAK,OAAO,EAAE,KAAK,OAAO,QAAQ,OAAO,OAAO,MAAM,EAAE;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqBA,GAAG,SAAS,OAAO,wBAAwB,OAAO;AAC9C,QAAI,QAAQ;AACR,aAAO;AACX,QAAI,YAAY,QAAQ,YAAY,UAAa,OAAO,WAAW;AAC/D,aAAO;AACX,SAAK,QAAQ;AACb,QAAI,OAAO,OAAO,KAAK,OAAO,GAAG,OAAO,KAAK;AAE7C,QAAI,KAAK,SAAS,KAAK,IAAI,UAAU,KAAK,IAAI,KAAK,OAAK,CAAC,KAAK,SAAS,CAAC,CAAC;AACrE,aAAO;AACX,QAAI,CAAC,uBAAuB;AAExB,UAAI,KAAK,KAAK,OAAK,CAAC,KAAK,MAAM,SAAS,CAAC,CAAC;AACtC,eAAO;AAAA,IACf;AAGA,QAAI,QAAQ,GAAG;AACX,aAAO;AAAA,IACX;AAEA,eAAW,QAAQ,KAAK,QAAQ;AAC5B,YAAM,QAAQ,QAAQ,IAAI;AAC1B,UAAI,CAAC,aAAa,KAAK;AACnB,eAAO;AACX,UAAI,MAAM,cAAc;AACpB;AACJ,YAAM,QAAQ,KAAK,OAAO,KAAK,OAAK,EAAE,cAAc,MAAM,SAAS;AACnE,UAAI,CAAC;AACD,eAAO;AACX,UAAI,CAAC,KAAK,MAAM,MAAM,MAAM,SAAS,GAAG,OAAO,uBAAuB,KAAK;AACvE,eAAO;AAAA,IACf;AAEA,eAAW,SAAS,KAAK,QAAQ;AAC7B,UAAI,MAAM,UAAU;AAChB;AACJ,UAAI,CAAC,KAAK,MAAM,QAAQ,MAAM,SAAS,GAAG,OAAO,uBAAuB,KAAK;AACzE,eAAO;AAAA,IACf;AACA,WAAO;AAAA,EACX;AAAA,EACA,MAAM,KAAK,OAAO,uBAAuB,OAAO;AAC5C,QAAI,WAAW,MAAM;AACrB,YAAQ,MAAM,MAAM;AAAA,MAChB,KAAK;AACD,YAAI,QAAQ;AACR,iBAAO,MAAM;AACjB,YAAI;AACA,iBAAO,KAAK,QAAQ,KAAK,MAAM,GAAG,OAAO,MAAM,CAAC;AACpD,eAAO,KAAK,OAAO,KAAK,MAAM,GAAG,MAAM,CAAC;AAAA,MAC5C,KAAK;AACD,YAAI,QAAQ;AACR,iBAAO,MAAM;AACjB,YAAI;AACA,iBAAO,KAAK,QAAQ,KAAK,WAAW,OAAO,KAAK;AACpD,eAAO,KAAK,OAAO,KAAK,WAAW,KAAK;AAAA,MAC5C,KAAK;AACD,YAAI,QAAQ;AACR,iBAAO;AACX,YAAI;AACA,iBAAO,KAAK,SAAS,KAAK,MAAM,EAAE,GAAG,uBAAuB,KAAK;AACrE,eAAO,KAAK,QAAQ,KAAK,MAAM,EAAE,GAAG,uBAAuB,KAAK;AAAA,MACpE,KAAK;AACD,YAAI,OAAO,OAAO,YAAY,QAAQ;AAClC,iBAAO;AACX,YAAI,QAAQ;AACR,iBAAO;AACX,YAAI,CAAC,KAAK,QAAQ,KAAK,MAAM,GAAG,KAAK;AACjC,iBAAO;AACX,gBAAQ,MAAM,EAAE,MAAM;AAAA,UAClB,KAAK;AACD,mBAAO,KAAK,QAAQ,OAAO,OAAO,GAAG,GAAG,MAAM,EAAE,GAAG,OAAO,MAAM,EAAE,CAAC;AAAA,UACvE,KAAK;AACD,mBAAO,KAAK,QAAQ,OAAO,OAAO,GAAG,GAAG,WAAW,OAAO,KAAK;AAAA,UACnE,KAAK;AACD,mBAAO,KAAK,SAAS,OAAO,OAAO,GAAG,GAAG,MAAM,EAAE,EAAE,GAAG,uBAAuB,KAAK;AAAA,QAC1F;AACA;AAAA,IACR;AACA,WAAO;AAAA,EACX;AAAA,EACA,QAAQ,KAAK,MAAM,uBAAuB,OAAO;AAC7C,QAAI,uBAAuB;AACvB,aAAO,KAAK,aAAa,KAAK,KAAK;AAAA,IACvC;AACA,WAAO,KAAK,GAAG,KAAK,KAAK;AAAA,EAC7B;AAAA,EACA,SAAS,KAAK,MAAM,uBAAuB,OAAO;AAC9C,QAAI,CAAC,MAAM,QAAQ,GAAG;AAClB,aAAO;AACX,QAAI,QAAQ;AACR,aAAO;AACX,QAAI,uBAAuB;AACvB,eAAS,IAAI,GAAG,IAAI,IAAI,UAAU,IAAI,OAAO;AACzC,YAAI,CAAC,KAAK,aAAa,IAAI,CAAC,GAAG,QAAQ,CAAC;AACpC,iBAAO;AAAA,IACnB,OACK;AACD,eAAS,IAAI,GAAG,IAAI,IAAI,UAAU,IAAI,OAAO;AACzC,YAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC1B,iBAAO;AAAA,IACnB;AACA,WAAO;AAAA,EACX;AAAA,EACA,OAAO,KAAK,MAAM,UAAU;AACxB,QAAI,UAAU,OAAO;AACrB,YAAQ,MAAM;AAAA,MACV,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,gBAAQ,UAAU;AAAA,UACd,KAAK,SAAS;AACV,mBAAO,WAAW;AAAA,UACtB,KAAK,SAAS;AACV,mBAAO,WAAW,YAAY,CAAC,MAAM,GAAG;AAAA,UAC5C;AACI,mBAAO,WAAW;AAAA,QAC1B;AAAA,MACJ,KAAK,WAAW;AACZ,eAAO,WAAW;AAAA,MACtB,KAAK,WAAW;AACZ,eAAO,WAAW;AAAA,MACtB,KAAK,WAAW;AACZ,eAAO,eAAe;AAAA,MAC1B,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,eAAO,WAAW,YAAY,CAAC,MAAM,GAAG;AAAA,MAC5C;AAMI,eAAO,WAAW,YAAY,OAAO,UAAU,GAAG;AAAA,IAC1D;AAAA,EACJ;AAAA,EACA,QAAQ,KAAK,MAAM,OAAO,UAAU;AAChC,QAAI,CAAC,MAAM,QAAQ,GAAG;AAClB,aAAO;AACX,QAAI,QAAQ;AACR,aAAO;AACX,QAAI,MAAM,QAAQ,GAAG;AACjB,eAAS,IAAI,GAAG,IAAI,IAAI,UAAU,IAAI,OAAO;AACzC,YAAI,CAAC,KAAK,OAAO,IAAI,CAAC,GAAG,MAAM,QAAQ;AACnC,iBAAO;AAAA;AACnB,WAAO;AAAA,EACX;AAAA,EACA,QAAQC,MAAK,MAAM,OAAO;AACtB,QAAI,OAAO,OAAO,KAAKA,IAAG;AAC1B,YAAQ,MAAM;AAAA,MACV,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,eAAO,KAAK,QAAQ,KAAK,MAAM,GAAG,KAAK,EAAE,IAAI,OAAK,SAAS,CAAC,CAAC,GAAG,MAAM,KAAK;AAAA,MAC/E,KAAK,WAAW;AACZ,eAAO,KAAK,QAAQ,KAAK,MAAM,GAAG,KAAK,EAAE,IAAI,OAAK,KAAK,SAAS,OAAO,KAAK,UAAU,QAAQ,CAAC,GAAG,MAAM,KAAK;AAAA,MACjH;AACI,eAAO,KAAK,QAAQ,MAAM,MAAM,OAAO,SAAS,MAAM;AAAA,IAC9D;AAAA,EACJ;AACJ;;;ACzNO,SAAS,sBAAsB,MAAM,MAAM;AAC9C,UAAQ,MAAM;AAAA,IACV,KAAK,SAAS;AACV,aAAO,KAAK,SAAS;AAAA,IACzB,KAAK,SAAS;AACV,aAAO,KAAK,SAAS;AAAA,IACzB;AAGI,aAAO,KAAK,SAAS;AAAA,EAC7B;AACJ;AAXgB;;;ACGT,IAAM,uBAAN,MAA2B;AAAA,EAXlC,OAWkC;AAAA;AAAA;AAAA,EAC9B,YAAY,MAAM;AACd,SAAK,OAAO;AAAA,EAChB;AAAA,EACA,UAAU;AACN,QAAI;AACJ,QAAI,KAAK,SAAS,QAAW;AACzB,WAAK,OAAO,CAAC;AACb,YAAM,eAAe,KAAK,KAAK,KAAK,YAAY,QAAQ,OAAO,SAAS,KAAK,CAAC;AAC9E,iBAAW,SAAS,aAAa;AAC7B,aAAK,KAAK,MAAM,IAAI,IAAI;AACxB,aAAK,KAAK,MAAM,QAAQ,IAAI;AAC5B,aAAK,KAAK,MAAM,SAAS,IAAI;AAAA,MACjC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA,EAEA,OAAO,WAAW,WAAW,WAAW;AACpC,QAAI,CAAC,WAAW;AACZ,UAAI,OAAO,gBAAgB,SAAS;AACpC,UAAI,QAAQ,YAAY,QAAQ;AAC5B,eAAO,UAAU,SAAS;AAC9B,YAAM,IAAI,MAAM,qBAAqB,IAAI,QAAQ,KAAK,KAAK,QAAQ,IAAI,SAAS,EAAE;AAAA,IACtF;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,KAAK,OAAO,SAAS,SAAS;AAC1B,SAAK,QAAQ;AACb,UAAM,gBAAgB,CAAC;AACvB,eAAW,CAAC,SAAS,SAAS,KAAK,OAAO,QAAQ,KAAK,GAAG;AACtD,YAAM,QAAQ,KAAK,KAAK,OAAO;AAC/B,UAAI,CAAC,OAAO;AACR,YAAI,CAAC,QAAQ;AACT,gBAAM,IAAI,MAAM,qCAAqC,KAAK,KAAK,QAAQ,gCAAgC,OAAO,EAAE;AACpH;AAAA,MACJ;AACA,YAAM,YAAY,MAAM;AAExB,UAAI;AACJ,UAAI,MAAM,OAAO;AACb,YAAI,cAAc,SAAS,MAAM,SAAS,UAAU,MAAM,EAAE,EAAE,CAAC,MAAM,8BAA8B;AAC/F;AAAA,QACJ;AAEA,YAAI,cAAc,SAAS,MAAM,KAAK;AAClC,gBAAM,IAAI,MAAM,wCAAwC,MAAM,KAAK,QAAQ,KAAK,KAAK,QAAQ,uBAAuB;AACxH,sBAAc,KAAK,MAAM,KAAK;AAC9B,iBAAS,QAAQ,MAAM,KAAK,IAAI;AAAA,UAC5B,WAAW;AAAA,QACf;AAAA,MACJ,OACK;AACD,iBAAS;AAAA,MACb;AAEA,UAAI,MAAM,QAAQ,OAAO;AACrB,YAAI,cAAc,MAAM;AACpB;AAAA,QACJ;AAEA,aAAK,OAAO,aAAa,SAAS,GAAG,MAAM,MAAM,SAAS;AAE1D,cAAM,WAAW,OAAO,SAAS;AAEjC,mBAAW,CAAC,YAAY,YAAY,KAAK,OAAO,QAAQ,SAAS,GAAG;AAChE,eAAK,OAAO,iBAAiB,MAAM,MAAM,OAAO,cAAc,IAAI;AAElE,cAAI;AACJ,kBAAQ,MAAM,EAAE,MAAM;AAAA,YAClB,KAAK;AACD,oBAAM,MAAM,EAAE,EAAE,EAAE,iBAAiB,cAAc,OAAO;AACxD;AAAA,YACJ,KAAK;AACD,oBAAM,KAAK,KAAK,MAAM,EAAE,EAAE,GAAG,cAAc,MAAM,MAAM,QAAQ,mBAAmB;AAClF,kBAAI,QAAQ;AACR;AACJ;AAAA,YACJ,KAAK;AACD,oBAAM,KAAK,OAAO,cAAc,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,IAAI;AAChE;AAAA,UACR;AACA,eAAK,OAAO,QAAQ,QAAW,MAAM,OAAO,cAAc,YAAY;AAEtE,cAAI,MAAM;AACV,cAAI,MAAM,KAAK,WAAW;AACtB,kBAAM,OAAO,SAAS,OAAO,OAAO,UAAU,QAAQ;AAC1D,gBAAM,KAAK,OAAO,KAAK,MAAM,GAAG,SAAS,QAAQ,MAAM,IAAI,EAAE,SAAS;AACtE,mBAAS,GAAG,IAAI;AAAA,QACpB;AAAA,MACJ,WACS,MAAM,QAAQ;AACnB,YAAI,cAAc;AACd;AAEJ,aAAK,OAAO,MAAM,QAAQ,SAAS,GAAG,MAAM,MAAM,SAAS;AAE3D,cAAM,WAAW,OAAO,SAAS;AAEjC,mBAAW,YAAY,WAAW;AAC9B,eAAK,OAAO,aAAa,MAAM,MAAM,MAAM,IAAI;AAC/C,cAAI;AACJ,kBAAQ,MAAM,MAAM;AAAA,YAChB,KAAK;AACD,oBAAM,MAAM,EAAE,EAAE,iBAAiB,UAAU,OAAO;AAClD;AAAA,YACJ,KAAK;AACD,oBAAM,KAAK,KAAK,MAAM,EAAE,GAAG,UAAU,MAAM,MAAM,QAAQ,mBAAmB;AAC5E,kBAAI,QAAQ;AACR;AACJ;AAAA,YACJ,KAAK;AACD,oBAAM,KAAK,OAAO,UAAU,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;AACxD;AAAA,UACR;AACA,eAAK,OAAO,QAAQ,QAAW,MAAM,MAAM,SAAS;AACpD,mBAAS,KAAK,GAAG;AAAA,QACrB;AAAA,MACJ,OACK;AACD,gBAAQ,MAAM,MAAM;AAAA,UAChB,KAAK;AACD,gBAAI,cAAc,QAAQ,MAAM,EAAE,EAAE,YAAY,yBAAyB;AACrE,mBAAK,OAAO,MAAM,UAAU,QAAW,MAAM,OAAO,mBAAmB,IAAI;AAC3E;AAAA,YACJ;AACA,mBAAO,SAAS,IAAI,MAAM,EAAE,EAAE,iBAAiB,WAAW,SAAS,OAAO,SAAS,CAAC;AACpF;AAAA,UACJ,KAAK;AACD,gBAAI,cAAc;AACd;AACJ,gBAAI,MAAM,KAAK,KAAK,MAAM,EAAE,GAAG,WAAW,MAAM,MAAM,QAAQ,mBAAmB;AACjF,gBAAI,QAAQ;AACR;AACJ,mBAAO,SAAS,IAAI;AACpB;AAAA,UACJ,KAAK;AACD,gBAAI,cAAc;AACd;AACJ,mBAAO,SAAS,IAAI,KAAK,OAAO,WAAW,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;AACvE;AAAA,QACR;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KAAK,MAAM,MAAM,WAAW,qBAAqB;AAC7C,QAAI,KAAK,CAAC,KAAK;AACX,aAAO,SAAS,QAAQ,SAAS,cAAc,yBAAyB,KAAK,KAAK,QAAQ,IAAI,SAAS,UAAU,KAAK,CAAC,CAAC,qBAAqB;AACjJ,QAAI,SAAS;AAET,aAAO;AACX,YAAQ,OAAO,MAAM;AAAA,MACjB,KAAK;AACD,eAAO,OAAO,UAAU,IAAI,GAAG,yBAAyB,KAAK,KAAK,QAAQ,IAAI,SAAS,2CAA2C,IAAI,GAAG;AACzI,eAAO;AAAA,MACX,KAAK;AACD,YAAI,gBAAgB;AACpB,YAAI,KAAK,CAAC,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,EAAE,MAAM,MAAM,KAAK,CAAC;AAEvD,0BAAgB,KAAK,UAAU,KAAK,CAAC,EAAE,MAAM;AACjD,YAAI,aAAa,KAAK,CAAC,EAAE,aAAa;AACtC,YAAI,OAAO,eAAe,eAAe,qBAAqB;AAC1D,iBAAO;AAAA,QACX;AACA,eAAO,OAAO,cAAc,UAAU,yBAAyB,KAAK,KAAK,QAAQ,IAAI,SAAS,UAAU,KAAK,CAAC,CAAC,sBAAsB,IAAI,IAAI;AAC7I,eAAO;AAAA,IACf;AACA,WAAO,OAAO,yBAAyB,KAAK,KAAK,QAAQ,IAAI,SAAS,kCAAkC,OAAO,IAAI,IAAI;AAAA,EAC3H;AAAA,EACA,OAAO,MAAM,MAAM,UAAU,WAAW;AACpC,QAAI;AACJ,QAAI;AACA,cAAQ,MAAM;AAAA;AAAA;AAAA,QAGV,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACZ,cAAI,SAAS;AACT,mBAAO;AACX,cAAI,SAAS;AACT,mBAAO,OAAO;AAClB,cAAI,SAAS;AACT,mBAAO,OAAO;AAClB,cAAI,SAAS;AACT,mBAAO,OAAO;AAClB,cAAI,SAAS,IAAI;AACb,gBAAI;AACJ;AAAA,UACJ;AACA,cAAI,OAAO,QAAQ,YAAY,KAAK,KAAK,EAAE,WAAW,KAAK,QAAQ;AAC/D,gBAAI;AACJ;AAAA,UACJ;AACA,cAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,UAAU;AACpD;AAAA,UACJ;AACA,cAAI,QAAQ,OAAO,IAAI;AACvB,cAAI,OAAO,MAAM,KAAK,GAAG;AACrB,gBAAI;AACJ;AAAA,UACJ;AACA,cAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAEzB,gBAAI;AACJ;AAAA,UACJ;AACA,cAAI,QAAQ,WAAW;AACnB,0BAAc,KAAK;AACvB,iBAAO;AAAA;AAAA,QAEX,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACZ,cAAI,SAAS;AACT,mBAAO;AACX,cAAI;AACJ,cAAI,OAAO,QAAQ;AACf,oBAAQ;AAAA,mBACH,SAAS;AACd,gBAAI;AAAA,mBACC,OAAO,QAAQ,UAAU;AAC9B,gBAAI,KAAK,KAAK,EAAE,WAAW,KAAK;AAC5B,kBAAI;AAAA;AAEJ,sBAAQ,OAAO,IAAI;AAAA,UAC3B;AACA,cAAI,UAAU;AACV;AACJ,cAAI,QAAQ,WAAW;AACnB,yBAAa,KAAK;AAAA;AAElB,wBAAY,KAAK;AACrB,iBAAO;AAAA;AAAA,QAEX,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACZ,cAAI,SAAS;AACT,mBAAO,sBAAsB,OAAO,MAAM,QAAQ;AACtD,cAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ;AAC1C;AACJ,iBAAO,sBAAsB,OAAO,KAAK,IAAI,GAAG,QAAQ;AAAA,QAC5D,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACZ,cAAI,SAAS;AACT,mBAAO,sBAAsB,QAAQ,MAAM,QAAQ;AACvD,cAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ;AAC1C;AACJ,iBAAO,sBAAsB,QAAQ,KAAK,IAAI,GAAG,QAAQ;AAAA;AAAA,QAE7D,KAAK,WAAW;AACZ,cAAI,SAAS;AACT,mBAAO;AACX,cAAI,OAAO,SAAS;AAChB;AACJ,iBAAO;AAAA;AAAA,QAEX,KAAK,WAAW;AACZ,cAAI,SAAS;AACT,mBAAO;AACX,cAAI,OAAO,SAAS,UAAU;AAC1B,gBAAI;AACJ;AAAA,UACJ;AACA,cAAI;AACA,+BAAmB,IAAI;AAAA,UAC3B,SACOC,IAAG;AACN,YAAAA,KAAI;AACJ;AAAA,UACJ;AACA,iBAAO;AAAA;AAAA;AAAA,QAGX,KAAK,WAAW;AACZ,cAAI,SAAS,QAAQ,SAAS;AAC1B,mBAAO,IAAI,WAAW,CAAC;AAC3B,cAAI,OAAO,SAAS;AAChB;AACJ,iBAAO,aAAa,IAAI;AAAA,MAChC;AAAA,IACJ,SACO,OAAO;AACV,UAAI,MAAM;AAAA,IACd;AACA,SAAK,OAAO,OAAO,aAAa,IAAI,QAAQ,IAAI,KAAK,IAAI;AAAA,EAC7D;AACJ;;;AC9SO,IAAM,uBAAN,MAA2B;AAAA,EAVlC,OAUkC;AAAA;AAAA;AAAA,EAC9B,YAAY,MAAM;AACd,QAAI;AACJ,SAAK,UAAU,KAAK,KAAK,YAAY,QAAQ,OAAO,SAAS,KAAK,CAAC;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,SAAS,SAAS;AACpB,UAAM,OAAO,CAAC,GAAG,SAAS;AAC1B,eAAW,SAAS,KAAK,QAAQ;AAE7B,UAAI,CAAC,MAAM,OAAO;AACd,YAAIC,aAAY,KAAK,MAAM,OAAO,OAAO,MAAM,SAAS,GAAG,OAAO;AAClE,YAAIA,eAAc;AACd,eAAK,QAAQ,oBAAoB,MAAM,OAAO,MAAM,QAAQ,IAAIA;AACpE;AAAA,MACJ;AAEA,YAAM,QAAQ,OAAO,MAAM,KAAK;AAChC,UAAI,MAAM,cAAc,MAAM;AAC1B;AACJ,YAAM,MAAM,MAAM,QAAQ,YAAY,MAAM,QAAQ,SAC9C,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,OAAO,GAAG,EAAE,mBAAmB,KAAK,CAAC,IAAI;AAC/E,UAAI,YAAY,KAAK,MAAM,OAAO,MAAM,MAAM,SAAS,GAAG,GAAG;AAC7D,aAAO,cAAc,MAAS;AAC9B,WAAK,QAAQ,oBAAoB,MAAM,OAAO,MAAM,QAAQ,IAAI;AAAA,IACpE;AACA,WAAO;AAAA,EACX;AAAA,EACA,MAAM,OAAO,OAAO,SAAS;AACzB,QAAI,YAAY;AAChB,QAAI,MAAM,QAAQ,OAAO;AACrB,aAAO,OAAO,SAAS,YAAY,UAAU,IAAI;AACjD,YAAM,UAAU,CAAC;AACjB,cAAQ,MAAM,EAAE,MAAM;AAAA,QAClB,KAAK;AACD,qBAAW,CAAC,UAAU,UAAU,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxD,kBAAM,MAAM,KAAK,OAAO,MAAM,EAAE,GAAG,YAAY,MAAM,MAAM,OAAO,IAAI;AACtE,mBAAO,QAAQ,MAAS;AACxB,oBAAQ,SAAS,SAAS,CAAC,IAAI;AAAA,UACnC;AACA;AAAA,QACJ,KAAK;AACD,gBAAM,cAAc,MAAM,EAAE,EAAE;AAC9B,qBAAW,CAAC,UAAU,UAAU,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxD,kBAAM,MAAM,KAAK,QAAQ,aAAa,YAAY,MAAM,MAAM,OAAO;AACrE,mBAAO,QAAQ,MAAS;AACxB,oBAAQ,SAAS,SAAS,CAAC,IAAI;AAAA,UACnC;AACA;AAAA,QACJ,KAAK;AACD,gBAAM,WAAW,MAAM,EAAE,EAAE;AAC3B,qBAAW,CAAC,UAAU,UAAU,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxD,mBAAO,eAAe,UAAa,OAAO,cAAc,QAAQ;AAChE,kBAAM,MAAM,KAAK,KAAK,UAAU,YAAY,MAAM,MAAM,OAAO,MAAM,QAAQ,aAAa;AAC1F,mBAAO,QAAQ,MAAS;AACxB,oBAAQ,SAAS,SAAS,CAAC,IAAI;AAAA,UACnC;AACA;AAAA,MACR;AACA,UAAI,QAAQ,qBAAqB,OAAO,KAAK,OAAO,EAAE,SAAS;AAC3D,oBAAY;AAAA,IACpB,WACS,MAAM,QAAQ;AACnB,aAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,YAAM,UAAU,CAAC;AACjB,cAAQ,MAAM,MAAM;AAAA,QAChB,KAAK;AACD,mBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,kBAAM,MAAM,KAAK,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,MAAM,MAAM,KAAK,IAAI;AACtE,mBAAO,QAAQ,MAAS;AACxB,oBAAQ,KAAK,GAAG;AAAA,UACpB;AACA;AAAA,QACJ,KAAK;AACD,gBAAM,WAAW,MAAM,EAAE;AACzB,mBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,mBAAO,MAAM,CAAC,MAAM,UAAa,OAAO,MAAM,CAAC,KAAK,QAAQ;AAC5D,kBAAM,MAAM,KAAK,KAAK,UAAU,MAAM,CAAC,GAAG,MAAM,MAAM,MAAM,KAAK,MAAM,QAAQ,aAAa;AAC5F,mBAAO,QAAQ,MAAS;AACxB,oBAAQ,KAAK,GAAG;AAAA,UACpB;AACA;AAAA,QACJ,KAAK;AACD,gBAAM,cAAc,MAAM,EAAE;AAC5B,mBAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,kBAAM,MAAM,KAAK,QAAQ,aAAa,MAAM,CAAC,GAAG,MAAM,MAAM,OAAO;AACnE,mBAAO,QAAQ,MAAS;AACxB,oBAAQ,KAAK,GAAG;AAAA,UACpB;AACA;AAAA,MACR;AAEA,UAAI,QAAQ,qBAAqB,QAAQ,SAAS,KAAK,QAAQ;AAC3D,oBAAY;AAAA,IACpB,OACK;AACD,cAAQ,MAAM,MAAM;AAAA,QAChB,KAAK;AACD,sBAAY,KAAK,OAAO,MAAM,GAAG,OAAO,MAAM,MAAM,MAAM,KAAK,QAAQ,iBAAiB;AACxF;AAAA,QACJ,KAAK;AACD,sBAAY,KAAK,KAAK,MAAM,EAAE,GAAG,OAAO,MAAM,MAAM,MAAM,KAAK,QAAQ,mBAAmB,QAAQ,aAAa;AAC/G;AAAA,QACJ,KAAK;AACD,sBAAY,KAAK,QAAQ,MAAM,EAAE,GAAG,OAAO,MAAM,MAAM,OAAO;AAC9D;AAAA,MACR;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAIA,KAAK,MAAM,OAAO,WAAWC,WAAU,mBAAmB,eAAe;AACrE,QAAI,KAAK,CAAC,KAAK;AACX,aAAO,CAAC,qBAAqB,CAACA,YAAW,SAAY;AACzD,QAAI,UAAU,QAAW;AACrB,aAAOA,SAAQ;AACf,aAAO;AAAA,IACX;AACA,QAAI,UAAU,KAAK,CAAC,qBAAqB,CAACA;AAEtC,aAAO;AACX,WAAO,OAAO,SAAS,QAAQ;AAC/B,WAAO,OAAO,UAAU,KAAK,CAAC;AAC9B,QAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,eAAe,KAAK;AAE9C,aAAO;AACX,QAAI,KAAK,CAAC;AAEN,aAAO,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK;AAClC,WAAO,KAAK,CAAC,EAAE,KAAK;AAAA,EACxB;AAAA,EACA,QAAQ,MAAM,OAAO,WAAW,SAAS;AACrC,QAAI,UAAU;AACV,aAAO,QAAQ,oBAAoB,OAAO;AAC9C,WAAO,KAAK,kBAAkB,OAAO,OAAO;AAAA,EAChD;AAAA,EACA,OAAO,MAAM,OAAO,WAAWA,WAAU,mBAAmB;AACxD,QAAI,UAAU,QAAW;AACrB,aAAOA,SAAQ;AACf,aAAO;AAAA,IACX;AACA,UAAM,KAAK,qBAAqBA;AAEhC,YAAQ,MAAM;AAAA;AAAA,MAEV,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,YAAI,UAAU;AACV,iBAAO,KAAK,IAAI;AACpB,oBAAY,KAAK;AACjB,eAAO;AAAA,MACX,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,YAAI,UAAU;AACV,iBAAO,KAAK,IAAI;AACpB,qBAAa,KAAK;AAClB,eAAO;AAAA;AAAA;AAAA,MAGX,KAAK,WAAW;AACZ,sBAAc,KAAK;AAAA,MACvB,KAAK,WAAW;AACZ,YAAI,UAAU;AACV,iBAAO,KAAK,IAAI;AACpB,eAAO,OAAO,SAAS,QAAQ;AAC/B,YAAI,OAAO,MAAM,KAAK;AAClB,iBAAO;AACX,YAAI,UAAU,OAAO;AACjB,iBAAO;AACX,YAAI,UAAU,OAAO;AACjB,iBAAO;AACX,eAAO;AAAA;AAAA,MAEX,KAAK,WAAW;AACZ,YAAI,UAAU;AACV,iBAAO,KAAK,KAAK;AACrB,eAAO,OAAO,SAAS,QAAQ;AAC/B,eAAO;AAAA;AAAA,MAEX,KAAK,WAAW;AACZ,YAAI,UAAU;AACV,iBAAO,KAAK,QAAQ;AACxB,eAAO,OAAO,SAAS,SAAS;AAChC,eAAO;AAAA;AAAA,MAEX,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,eAAO,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY,OAAO,SAAS,QAAQ;AACvF,YAAI,QAAQ,QAAQ,KAAK,KAAK;AAC9B,YAAI,MAAM,OAAO,KAAK,CAAC;AACnB,iBAAO;AACX,eAAO,MAAM,SAAS;AAAA;AAAA,MAE1B,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,eAAO,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY,OAAO,SAAS,QAAQ;AACvF,YAAI,OAAO,OAAO,KAAK,KAAK;AAC5B,YAAI,KAAK,OAAO,KAAK,CAAC;AAClB,iBAAO;AACX,eAAO,KAAK,SAAS;AAAA;AAAA;AAAA,MAGzB,KAAK,WAAW;AACZ,eAAO,iBAAiB,UAAU;AAClC,YAAI,CAAC,MAAM;AACP,iBAAO,KAAK,KAAK;AACrB,eAAO,aAAa,KAAK;AAAA,IACjC;AAAA,EACJ;AACJ;;;AC3NO,SAAS,wBAAwB,MAAM,WAAW,SAAS,QAAQ;AACtE,UAAQ,MAAM;AAAA,IACV,KAAK,WAAW;AACZ,aAAO;AAAA,IACX,KAAK,WAAW;AAAA,IAChB,KAAK,WAAW;AACZ,aAAO,sBAAsB,QAAQ,MAAM,QAAQ;AAAA,IACvD,KAAK,WAAW;AAAA,IAChB,KAAK,WAAW;AAAA,IAChB,KAAK,WAAW;AACZ,aAAO,sBAAsB,OAAO,MAAM,QAAQ;AAAA,IACtD,KAAK,WAAW;AAAA,IAChB,KAAK,WAAW;AACZ,aAAO;AAAA,IACX,KAAK,WAAW;AACZ,aAAO,IAAI,WAAW,CAAC;AAAA,IAC3B,KAAK,WAAW;AACZ,aAAO;AAAA,IACX;AAMI,aAAO;AAAA,EACf;AACJ;AA1BgB;;;ACGT,IAAM,yBAAN,MAA6B;AAAA,EATpC,OASoC;AAAA;AAAA;AAAA,EAChC,YAAY,MAAM;AACd,SAAK,OAAO;AAAA,EAChB;AAAA,EACA,UAAU;AACN,QAAI;AACJ,QAAI,CAAC,KAAK,gBAAgB;AACtB,YAAM,eAAe,KAAK,KAAK,KAAK,YAAY,QAAQ,OAAO,SAAS,KAAK,CAAC;AAC9E,WAAK,iBAAiB,IAAI,IAAI,YAAY,IAAI,WAAS,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;AAAA,IAC7E;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,KAAK,QAAQ,SAAS,SAAS,QAAQ;AACnC,SAAK,QAAQ;AACb,UAAM,MAAM,WAAW,SAAY,OAAO,MAAM,OAAO,MAAM;AAC7D,WAAO,OAAO,MAAM,KAAK;AAErB,YAAM,CAAC,SAAS,QAAQ,IAAI,OAAO,IAAI,GAAG,QAAQ,KAAK,eAAe,IAAI,OAAO;AACjF,UAAI,CAAC,OAAO;AACR,YAAI,IAAI,QAAQ;AAChB,YAAI,KAAK;AACL,gBAAM,IAAI,MAAM,iBAAiB,OAAO,eAAe,QAAQ,SAAS,KAAK,KAAK,QAAQ,EAAE;AAChG,YAAI,IAAI,OAAO,KAAK,QAAQ;AAC5B,YAAI,MAAM;AACN,WAAC,MAAM,OAAO,oBAAoB,SAAS,GAAG,KAAK,KAAK,UAAU,SAAS,SAAS,UAAU,CAAC;AACnG;AAAA,MACJ;AAEA,UAAI,SAAS,SAAS,WAAW,MAAM,QAAQ,YAAY,MAAM;AAEjE,UAAI,MAAM,OAAO;AACb,iBAAS,OAAO,MAAM,KAAK;AAE3B,YAAI,OAAO,cAAc;AACrB,mBAAS,QAAQ,MAAM,KAAK,IAAI;AAAA,YAC5B,WAAW;AAAA,UACf;AAAA,MACR;AAEA,cAAQ,MAAM,MAAM;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AACD,cAAI,IAAI,MAAM,QAAQ,SAAS,WAAW,QAAQ,MAAM;AACxD,cAAI,IAAI,MAAM,QAAQ,WAAW,MAAM,IAAI;AAC3C,cAAI,UAAU;AACV,gBAAI,MAAM,OAAO,SAAS;AAC1B,gBAAI,YAAY,SAAS,mBAAmB,KAAK,WAAW,UAAU,KAAK,WAAW,OAAO;AACzF,kBAAI,IAAI,OAAO,OAAO,IAAI,OAAO;AACjC,qBAAO,OAAO,MAAM;AAChB,oBAAI,KAAK,KAAK,OAAO,QAAQ,GAAG,CAAC,CAAC;AAAA,YAC1C;AAEI,kBAAI,KAAK,KAAK,OAAO,QAAQ,GAAG,CAAC,CAAC;AAAA,UAC1C;AAEI,mBAAO,SAAS,IAAI,KAAK,OAAO,QAAQ,GAAG,CAAC;AAChD;AAAA,QACJ,KAAK;AACD,cAAI,UAAU;AACV,gBAAI,MAAM,OAAO,SAAS;AAC1B,gBAAI,MAAM,MAAM,EAAE,EAAE,mBAAmB,QAAQ,OAAO,OAAO,GAAG,OAAO;AACvE,gBAAI,KAAK,GAAG;AAAA,UAChB;AAEI,mBAAO,SAAS,IAAI,MAAM,EAAE,EAAE,mBAAmB,QAAQ,OAAO,OAAO,GAAG,SAAS,OAAO,SAAS,CAAC;AACxG;AAAA,QACJ,KAAK;AACD,cAAI,CAAC,QAAQ,MAAM,IAAI,KAAK,SAAS,OAAO,QAAQ,OAAO;AAE3D,iBAAO,SAAS,EAAE,MAAM,IAAI;AAC5B;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,OAAO,QAAQ,SAAS;AAC7B,QAAI,SAAS,OAAO,OAAO;AAC3B,QAAI,MAAM,OAAO,MAAM;AACvB,QAAI,MAAM;AACV,QAAI,MAAM;AACV,WAAO,OAAO,MAAM,KAAK;AACrB,UAAI,CAAC,SAAS,QAAQ,IAAI,OAAO,IAAI;AACrC,cAAQ,SAAS;AAAA,QACb,KAAK;AACD,cAAI,MAAM,KAAK,WAAW;AACtB,kBAAM,OAAO,KAAK,EAAE,SAAS;AAAA;AAG7B,kBAAM,KAAK,OAAO,QAAQ,MAAM,GAAG,SAAS,MAAM;AACtD;AAAA,QACJ,KAAK;AACD,kBAAQ,MAAM,EAAE,MAAM;AAAA,YAClB,KAAK;AACD,oBAAM,KAAK,OAAO,QAAQ,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AAC9C;AAAA,YACJ,KAAK;AACD,oBAAM,OAAO,MAAM;AACnB;AAAA,YACJ,KAAK;AACD,oBAAM,MAAM,EAAE,EAAE,EAAE,mBAAmB,QAAQ,OAAO,OAAO,GAAG,OAAO;AACrE;AAAA,UACR;AACA;AAAA,QACJ;AACI,gBAAM,IAAI,MAAM,iBAAiB,OAAO,eAAe,QAAQ,sBAAsB,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,EAAE;AAAA,MAC/H;AAAA,IACJ;AACA,QAAI,QAAQ,QAAW;AACnB,UAAI,SAAS,wBAAwB,MAAM,CAAC;AAC5C,YAAM,MAAM,KAAK,WAAW,OAAO,OAAO,SAAS,IAAI;AAAA,IAC3D;AACA,QAAI,QAAQ;AACR,cAAQ,MAAM,EAAE,MAAM;AAAA,QAClB,KAAK;AACD,gBAAM,wBAAwB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AAClD;AAAA,QACJ,KAAK;AACD,gBAAM;AACN;AAAA,QACJ,KAAK;AACD,gBAAM,MAAM,EAAE,EAAE,EAAE,OAAO;AACzB;AAAA,MACR;AACJ,WAAO,CAAC,KAAK,GAAG;AAAA,EACpB;AAAA,EACA,OAAO,QAAQ,MAAM,UAAU;AAC3B,YAAQ,MAAM;AAAA,MACV,KAAK,WAAW;AACZ,eAAO,OAAO,MAAM;AAAA,MACxB,KAAK,WAAW;AACZ,eAAO,OAAO,OAAO;AAAA,MACzB,KAAK,WAAW;AACZ,eAAO,OAAO,KAAK;AAAA,MACvB,KAAK,WAAW;AACZ,eAAO,OAAO,OAAO;AAAA,MACzB,KAAK,WAAW;AACZ,eAAO,OAAO,MAAM;AAAA,MACxB,KAAK,WAAW;AACZ,eAAO,sBAAsB,OAAO,MAAM,GAAG,QAAQ;AAAA,MACzD,KAAK,WAAW;AACZ,eAAO,sBAAsB,OAAO,OAAO,GAAG,QAAQ;AAAA,MAC1D,KAAK,WAAW;AACZ,eAAO,sBAAsB,OAAO,QAAQ,GAAG,QAAQ;AAAA,MAC3D,KAAK,WAAW;AACZ,eAAO,OAAO,QAAQ;AAAA,MAC1B,KAAK,WAAW;AACZ,eAAO,OAAO,MAAM;AAAA,MACxB,KAAK,WAAW;AACZ,eAAO,OAAO,OAAO;AAAA,MACzB,KAAK,WAAW;AACZ,eAAO,OAAO,SAAS;AAAA,MAC3B,KAAK,WAAW;AACZ,eAAO,sBAAsB,OAAO,SAAS,GAAG,QAAQ;AAAA,MAC5D,KAAK,WAAW;AACZ,eAAO,OAAO,OAAO;AAAA,MACzB,KAAK,WAAW;AACZ,eAAO,sBAAsB,OAAO,OAAO,GAAG,QAAQ;AAAA,IAC9D;AAAA,EACJ;AACJ;;;ACzKO,IAAM,yBAAN,MAA6B;AAAA,EATpC,OASoC;AAAA;AAAA;AAAA,EAChC,YAAY,MAAM;AACd,SAAK,OAAO;AAAA,EAChB;AAAA,EACA,UAAU;AACN,QAAI,CAAC,KAAK,QAAQ;AACd,YAAM,cAAc,KAAK,KAAK,SAAS,KAAK,KAAK,OAAO,OAAO,IAAI,CAAC;AACpE,WAAK,SAAS,YAAY,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;AAAA,IACxD;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,SAAS,QAAQ,SAAS;AAC5B,SAAK,QAAQ;AACb,eAAW,SAAS,KAAK,QAAQ;AAC7B,UAAI,OACJ,aACA,WAAW,MAAM,QAAQ,YAAY,MAAM;AAE3C,UAAI,MAAM,OAAO;AACb,cAAM,QAAQ,QAAQ,MAAM,KAAK;AACjC,YAAI,MAAM,cAAc;AACpB;AACJ,gBAAQ,MAAM,SAAS;AACvB,sBAAc;AAAA,MAClB,OACK;AACD,gBAAQ,QAAQ,SAAS;AACzB,sBAAc;AAAA,MAClB;AAEA,cAAQ,MAAM,MAAM;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AACD,cAAI,IAAI,MAAM,QAAQ,SAAS,WAAW,QAAQ,MAAM;AACxD,cAAI,UAAU;AACV,mBAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,gBAAI,YAAY,WAAW;AACvB,mBAAK,OAAO,QAAQ,GAAG,MAAM,IAAI,KAAK;AAAA;AAEtC,yBAAW,QAAQ;AACf,qBAAK,OAAO,QAAQ,GAAG,MAAM,IAAI,MAAM,IAAI;AAAA,UACvD,WACS,UAAU;AACf,mBAAO,MAAM,GAAG;AAAA;AAEhB,iBAAK,OAAO,QAAQ,GAAG,MAAM,IAAI,OAAO,eAAe,MAAM,GAAG;AACpE;AAAA,QACJ,KAAK;AACD,cAAI,UAAU;AACV,mBAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,uBAAW,QAAQ;AACf,mBAAK,QAAQ,QAAQ,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,IAAI;AAAA,UAC/D,OACK;AACD,iBAAK,QAAQ,QAAQ,SAAS,MAAM,EAAE,GAAG,MAAM,IAAI,KAAK;AAAA,UAC5D;AACA;AAAA,QACJ,KAAK;AACD,iBAAO,OAAO,SAAS,YAAY,UAAU,IAAI;AACjD,qBAAW,CAAC,KAAK,GAAG,KAAK,OAAO,QAAQ,KAAK;AACzC,iBAAK,SAAS,QAAQ,SAAS,OAAO,KAAK,GAAG;AAClD;AAAA,MACR;AAAA,IACJ;AACA,QAAI,IAAI,QAAQ;AAChB,QAAI,MAAM;AACN,OAAC,MAAM,OAAO,oBAAoB,UAAU,GAAG,KAAK,KAAK,UAAU,SAAS,MAAM;AAAA,EAC1F;AAAA,EACA,SAAS,QAAQ,SAAS,OAAO,KAAK,OAAO;AACzC,WAAO,IAAI,MAAM,IAAI,SAAS,eAAe;AAC7C,WAAO,KAAK;AAGZ,QAAI,WAAW;AACf,YAAQ,MAAM,GAAG;AAAA,MACb,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AAAA,MAChB,KAAK,WAAW;AACZ,mBAAW,OAAO,SAAS,GAAG;AAC9B;AAAA,MACJ,KAAK,WAAW;AACZ,eAAO,OAAO,UAAU,OAAO,OAAO;AACtC,mBAAW,OAAO;AAClB;AAAA,IACR;AAEA,SAAK,OAAO,QAAQ,MAAM,GAAG,GAAG,UAAU,IAAI;AAE9C,YAAQ,MAAM,EAAE,MAAM;AAAA,MAClB,KAAK;AACD,aAAK,OAAO,QAAQ,MAAM,EAAE,GAAG,GAAG,OAAO,IAAI;AAC7C;AAAA,MACJ,KAAK;AACD,aAAK,OAAO,QAAQ,WAAW,OAAO,GAAG,OAAO,IAAI;AACpD;AAAA,MACJ,KAAK;AACD,aAAK,QAAQ,QAAQ,SAAS,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK;AACnD;AAAA,IACR;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EACA,QAAQ,QAAQ,SAAS,SAAS,SAAS,OAAO;AAC9C,QAAI,UAAU;AACV;AACJ,YAAQ,oBAAoB,OAAO,OAAO,IAAI,SAAS,SAAS,eAAe,EAAE,KAAK,GAAG,OAAO;AAChG,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,QAAQ,MAAM,SAAS,OAAO,aAAa;AAC9C,QAAI,CAAC,UAAU,QAAQ,SAAS,IAAI,KAAK,WAAW,MAAM,KAAK;AAC/D,QAAI,CAAC,aAAa,aAAa;AAC3B,aAAO,IAAI,SAAS,QAAQ;AAC5B,aAAO,MAAM,EAAE,KAAK;AAAA,IACxB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,QAAQ,MAAM,SAAS,OAAO;AACjC,QAAI,CAAC,MAAM;AACP;AACJ,WAAO,SAAS,WAAW,SAAS,SAAS,WAAW,MAAM;AAE9D,WAAO,IAAI,SAAS,SAAS,eAAe;AAE5C,WAAO,KAAK;AAEZ,QAAI,CAAC,EAAE,MAAO,IAAI,KAAK,WAAW,IAAI;AACtC,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ;AAC9B,aAAO,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3B,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,WAAW,MAAM,OAAO;AACpB,QAAI,IAAI,SAAS;AACjB,QAAI;AACJ,QAAI,IAAI,UAAU;AAClB,QAAI,IAAI,UAAU;AAClB,YAAQ,MAAM;AAAA,MACV,KAAK,WAAW;AACZ,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,KAAK,CAAC,MAAM;AAChB,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,UAAU;AACd,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,KAAK,OAAO,KAAK,KAAK,EAAE,OAAO;AACnC,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,KAAK,QAAQ,KAAK,KAAK,EAAE,OAAO;AACpC,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,KAAK,QAAQ,KAAK,KAAK,EAAE,OAAO;AACpC,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,KAAK,CAAC,MAAM;AAChB,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,KAAK,OAAO,KAAK,KAAK,EAAE,OAAO;AACnC,YAAI,SAAS;AACb,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI;AACJ;AAAA,MACJ,KAAK,WAAW;AACZ,YAAI,KAAK,OAAO,KAAK,KAAK,EAAE,OAAO;AACnC,YAAI;AACJ;AAAA,IACR;AACA,WAAO,CAAC,GAAG,GAAG,KAAK,CAAC;AAAA,EACxB;AACJ;;;AC9NO,SAAS,iBAAiB,MAAM;AAWnC,QAAM,MAAM,KAAK,mBACX,OAAO,OAAO,KAAK,gBAAgB,IACnC,OAAO,eAAe,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC;AAC7D,WAAS,SAAS,KAAK,QAAQ;AAC3B,QAAI,OAAO,MAAM;AACjB,QAAI,MAAM;AACN;AACJ,QAAI,MAAM;AACN,UAAI,MAAM,KAAK,IAAI,EAAE,WAAW,OAAU;AAAA,aACrC,MAAM;AACX,UAAI,IAAI,IAAI,CAAC;AAAA;AAEb,cAAQ,MAAM,MAAM;AAAA,QAChB,KAAK;AACD,cAAI,IAAI,IAAI,wBAAwB,MAAM,GAAG,MAAM,CAAC;AACpD;AAAA,QACJ,KAAK;AAED,cAAI,IAAI,IAAI;AACZ;AAAA,QACJ,KAAK;AACD,cAAI,IAAI,IAAI,CAAC;AACb;AAAA,MACR;AAAA,EACR;AACA,SAAO;AACX;AArCgB;;;ACgBT,SAAS,uBAAuB,MAAM,QAAQ,QAAQ;AACzD,MAAI,YACJ,QAAQ,QAAQ;AAChB,WAAS,SAAS,KAAK,QAAQ;AAC3B,QAAI,OAAO,MAAM;AACjB,QAAI,MAAM,OAAO;AACb,YAAM,QAAQ,MAAM,MAAM,KAAK;AAC/B,WAAK,UAAU,QAAQ,UAAU,SAAS,SAAS,MAAM,cAAc,QAAW;AAC9E;AAAA,MACJ;AACA,mBAAa,MAAM,IAAI;AACvB,eAAS,OAAO,MAAM,KAAK;AAC3B,aAAO,YAAY,MAAM;AACzB,UAAI,cAAc,QAAW;AACzB,eAAO,OAAO,IAAI;AAClB;AAAA,MACJ;AAAA,IACJ,OACK;AACD,mBAAa,MAAM,IAAI;AACvB,eAAS;AACT,UAAI,cAAc,QAAW;AACzB;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,MAAM;AACN,aAAO,IAAI,EAAE,SAAS,WAAW;AAErC,YAAQ,MAAM,MAAM;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AACD,YAAI,MAAM;AACN,mBAAS,IAAI,GAAG,IAAI,WAAW,QAAQ;AACnC,mBAAO,IAAI,EAAE,CAAC,IAAI,WAAW,CAAC;AAAA;AAElC,iBAAO,IAAI,IAAI;AACnB;AAAA,MACJ,KAAK;AACD,YAAI,IAAI,MAAM,EAAE;AAChB,YAAI,MAAM;AACN,mBAAS,IAAI,GAAG,IAAI,WAAW,QAAQ;AACnC,mBAAO,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,WAAW,CAAC,CAAC;AAAA,iBACvC,OAAO,IAAI,MAAM;AACtB,iBAAO,IAAI,IAAI,EAAE,OAAO,UAAU;AAAA;AAElC,YAAE,aAAa,OAAO,IAAI,GAAG,UAAU;AAC3C;AAAA,MACJ,KAAK;AAED,gBAAQ,MAAM,EAAE,MAAM;AAAA,UAClB,KAAK;AAAA,UACL,KAAK;AACD,mBAAO,OAAO,OAAO,IAAI,GAAG,UAAU;AACtC;AAAA,UACJ,KAAK;AACD,gBAAIC,KAAI,MAAM,EAAE,EAAE;AAClB,qBAAS,KAAK,OAAO,KAAK,UAAU;AAChC,qBAAO,IAAI,EAAE,CAAC,IAAIA,GAAE,OAAO,WAAW,CAAC,CAAC;AAC5C;AAAA,QACR;AACA;AAAA,IACR;AAAA,EACJ;AACJ;AA/DgB;;;ACfT,SAAS,iBAAiB,MAAM,GAAG,GAAG;AACzC,MAAI,MAAM;AACN,WAAO;AACX,MAAI,CAAC,KAAK,CAAC;AACP,WAAO;AACX,WAAS,SAAS,KAAK,QAAQ;AAC3B,QAAI,YAAY,MAAM;AACtB,QAAI,QAAQ,MAAM,QAAQ,EAAE,MAAM,KAAK,EAAE,SAAS,IAAI,EAAE,SAAS;AACjE,QAAI,QAAQ,MAAM,QAAQ,EAAE,MAAM,KAAK,EAAE,SAAS,IAAI,EAAE,SAAS;AACjE,YAAQ,MAAM,MAAM;AAAA,MAChB,KAAK;AAAA,MACL,KAAK;AACD,YAAI,IAAI,MAAM,QAAQ,SAAS,WAAW,QAAQ,MAAM;AACxD,YAAI,EAAE,MAAM,SACN,oBAAoB,GAAG,OAAO,KAAK,IACnC,YAAY,GAAG,OAAO,KAAK;AAC7B,iBAAO;AACX;AAAA,MACJ,KAAK;AACD,YAAI,EAAE,MAAM,EAAE,QAAQ,YAChB,cAAc,MAAM,EAAE,EAAE,GAAG,aAAa,KAAK,GAAG,aAAa,KAAK,CAAC,IACnE,oBAAoB,MAAM,EAAE,QAAQ,SAAS,WAAW,QAAQ,MAAM,EAAE,GAAG,aAAa,KAAK,GAAG,aAAa,KAAK,CAAC;AACrH,iBAAO;AACX;AAAA,MACJ,KAAK;AACD,YAAI,IAAI,MAAM,EAAE;AAChB,YAAI,EAAE,MAAM,SACN,cAAc,GAAG,OAAO,KAAK,IAC7B,EAAE,OAAO,OAAO,KAAK;AACvB,iBAAO;AACX;AAAA,IACR;AAAA,EACJ;AACA,SAAO;AACX;AAlCgB;AAmChB,IAAM,eAAe,OAAO;AAC5B,SAAS,YAAY,MAAM,GAAG,GAAG;AAC7B,MAAI,MAAM;AACN,WAAO;AACX,MAAI,SAAS,WAAW;AACpB,WAAO;AACX,MAAI,KAAK;AACT,MAAI,KAAK;AACT,MAAI,GAAG,WAAW,GAAG;AACjB,WAAO;AACX,WAAS,IAAI,GAAG,IAAI,GAAG,QAAQ;AAC3B,QAAI,GAAG,CAAC,KAAK,GAAG,CAAC;AACb,aAAO;AACf,SAAO;AACX;AAbS;AAcT,SAAS,oBAAoB,MAAM,GAAG,GAAG;AACrC,MAAI,EAAE,WAAW,EAAE;AACf,WAAO;AACX,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC1B,QAAI,CAAC,YAAY,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,aAAO;AACf,SAAO;AACX;AAPS;AAQT,SAAS,cAAc,MAAM,GAAG,GAAG;AAC/B,MAAI,EAAE,WAAW,EAAE;AACf,WAAO;AACX,WAAS,IAAI,GAAG,IAAI,EAAE,QAAQ;AAC1B,QAAI,CAAC,KAAK,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvB,aAAO;AACf,SAAO;AACX;AAPS;;;ACnDT,IAAM,kBAAkB,OAAO,0BAA0B,OAAO,eAAe,CAAC,CAAC,CAAC;AAClF,IAAM,wBAAwB,gBAAgB,YAAY,IAAI,CAAC;AAKxD,IAAM,cAAN,MAAkB;AAAA,EApBzB,OAoByB;AAAA;AAAA;AAAA,EACrB,YAAY,MAAM,QAAQ,SAAS;AAC/B,SAAK,oBAAoB;AACzB,SAAK,WAAW;AAChB,SAAK,SAAS,OAAO,IAAI,kBAAkB;AAC3C,SAAK,UAAU,YAAY,QAAQ,YAAY,SAAS,UAAU,CAAC;AACnE,0BAAsB,QAAQ;AAC9B,SAAK,mBAAmB,OAAO,OAAO,MAAM,eAAe;AAC3D,SAAK,eAAe,IAAI,oBAAoB,IAAI;AAChD,SAAK,gBAAgB,IAAI,qBAAqB,IAAI;AAClD,SAAK,gBAAgB,IAAI,qBAAqB,IAAI;AAClD,SAAK,eAAe,IAAI,uBAAuB,IAAI;AACnD,SAAK,eAAe,IAAI,uBAAuB,IAAI;AAAA,EACvD;AAAA,EACA,OAAO,OAAO;AACV,QAAI,UAAU,iBAAiB,IAAI;AACnC,QAAI,UAAU,QAAW;AACrB,6BAAuB,MAAM,SAAS,KAAK;AAAA,IAC/C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SAAS;AACX,QAAIC,QAAO,KAAK,OAAO;AACvB,2BAAuB,MAAMA,OAAM,OAAO;AAC1C,WAAOA;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,GAAG,GAAG;AACT,WAAO,iBAAiB,MAAM,GAAG,CAAC;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,GAAG,KAAK,QAAQ,KAAK,mBAAmB;AACpC,WAAO,KAAK,aAAa,GAAG,KAAK,OAAO,KAAK;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,KAAK,QAAQ,KAAK,mBAAmB;AAC9C,WAAO,KAAK,aAAa,GAAG,KAAK,OAAO,IAAI;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAIA,aAAa,QAAQ,QAAQ;AACzB,2BAAuB,MAAM,QAAQ,MAAM;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAIA,WAAW,MAAM,SAAS;AACtB,QAAI,MAAM,kBAAkB,OAAO;AACnC,WAAO,KAAK,mBAAmB,IAAI,cAAc,IAAI,GAAG,KAAK,YAAY,GAAG;AAAA,EAChF;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,MAAM,SAAS;AACpB,WAAO,KAAK,iBAAiB,MAAM,gBAAgB,OAAO,CAAC;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,MAAM,SAAS;AAC1B,QAAI,QAAQ,KAAK,MAAM,IAAI;AAC3B,WAAO,KAAK,SAAS,OAAO,OAAO;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,SAAS,SAAS;AACrB,WAAO,KAAK,kBAAkB,SAAS,iBAAiB,OAAO,CAAC;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,SAAS,SAAS;AAC3B,QAAI;AACJ,QAAI,QAAQ,KAAK,OAAO,SAAS,OAAO;AACxC,WAAO,KAAK,UAAU,OAAO,OAAO,KAAK,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,kBAAkB,QAAQ,OAAO,SAAS,KAAK,CAAC;AAAA,EACvJ;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,SAAS,SAAS;AACvB,QAAI,MAAM,mBAAmB,OAAO;AACpC,WAAO,KAAK,oBAAoB,SAAS,IAAI,cAAc,GAAG,GAAG,EAAE,OAAO;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,iBAAiB,MAAM,SAAS,QAAQ;AACpC,QAAI,SAAS,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI,GAAG;AAClE,UAAI,UAAU,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;AAC1E,WAAK,cAAc,KAAK,MAAM,SAAS,OAAO;AAC9C,aAAO;AAAA,IACX;AACA,UAAM,IAAI,MAAM,2BAA2B,KAAK,QAAQ,cAAc,gBAAgB,IAAI,CAAC,GAAG;AAAA,EAClG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,kBAAkB,SAAS,SAAS;AAChC,WAAO,KAAK,cAAc,MAAM,SAAS,OAAO;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,oBAAoB,SAAS,QAAQ,SAAS;AAC1C,SAAK,aAAa,MAAM,SAAS,QAAQ,OAAO;AAChD,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,mBAAmB,QAAQ,QAAQ,SAAS,QAAQ;AAChD,QAAI,UAAU,WAAW,QAAQ,WAAW,SAAS,SAAS,KAAK,OAAO;AAC1E,SAAK,aAAa,KAAK,QAAQ,SAAS,SAAS,MAAM;AACvD,WAAO;AAAA,EACX;AACJ;;;ACTA,IAAY,YAAA,yBAAA,aAAL;AAMN,cAAA,YAAA,YAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,cAAN,cAA0B,YAAoB;SAAA;;;EAC7C,cAAc;AACb,UAAM,0BAA0B,CAC/B;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,GAAG;MACH,GAAG;QAAE,MAAM;QAAW,GAAA,6BAAS,OAAT;;KACtB,CACD;;;;;EAKF,kBAAkB,SAAiB,SAAsC;AACxE,QAAI,OAAmB,CAAA;AACvB,aAAS,CAAC,GAAG,CAAA,KAAM,OAAO,QAAQ,QAAQ,MAAA,EACzC,MAAK,CAAA,IAAK,MAAM,OAAO,CAAA;AAExB,WAAO;;;;;EAKR,iBAAiB,MAAiB,SAA0B,QAAyB;AACpF,QAAI,CAAC,aAAa,IAAA,EACjB,OAAM,IAAI,WAAW,MACpB,6BAA6B,KAAK,WAAW,gBAAgB,gBAAgB,IAAA,IAAQ,GAAA;AAEvF,QAAI,CAAC,OAAQ,UAAS,KAAK,OAAA;AAC3B,aAAS,CAAC,GAAG,CAAA,KAAM,WAAW,OAAO,QAAQ,IAAA,EAC5C,QAAO,OAAO,CAAA,IAAK,MAAM,SAAS,CAAA;AAEnC,WAAO;;;AAMT,IAAa,SAAS,IAAI,YAAA;AAE1B,IAAM,aAAN,cAAyB,YAAmB;SAAA;;;EAC3C,cAAc;AACb,UAAM,yBAAyB;MAC9B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,CAAC,6BAA6B,SAAA,GAAvC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAU,OAAO;QAAQ,GAAG;;MACjE;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAU,OAAO;QAAQ,GAAG;;MACjE;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,OAAO;QAAQ,GAAG;;MAC/D;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,OAAO;QAAQ,GAAA,6BAAS,QAAT;;MAC/D;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAW,OAAO;QAAQ,GAAA,6BAAS,WAAT;;KAC7D;;;;;EAKF,kBAAkB,SAAgB,SAAsC;AACvE,QAAI,QAAQ,KAAK,cAAc,OAAW,OAAM,IAAI,WAAW,MAAA;AAC/D,YAAQ,QAAQ,KAAK,WAArB;MACC,KAAK;AACJ,cAAM,IAAI,WAAW,MAAA;MACtB,KAAK;AACJ,eAAO,QAAQ,KAAK;MACrB,KAAK;AACJ,eAAO;MACR,KAAK;AACJ,YAAI,cAAc,QAAQ,KAAK;AAC/B,YAAI,OAAO,eAAe,YAAY,CAAC,OAAO,SAAS,WAAA,EACtD,OAAM,IAAI,WAAW,MAAA;AACtB,eAAO;MACR,KAAK;AACJ,eAAO,QAAQ,KAAK;MACrB,KAAK;AACJ,YAAI,iBAAiB,KAAK,OAAO,KAAA,CAAM,MAAM,EAAE,OAAO,CAAA;AACtD,YAAI,gBAAgB,SAAS,UAAW,OAAM,IAAI,WAAW,MAAA;AAC7D,eAAO,eAAe,EAAA,EAAI,OAAO,QAAQ,KAAK,SAAA;MAC/C,KAAK;AACJ,YAAI,mBAAmB,KAAK,OAAO,KAAA,CAAM,MAAM,EAAE,OAAO,CAAA;AACxD,YAAI,kBAAkB,SAAS,UAAW,OAAM,IAAI,WAAW,MAAA;AAC/D,eAAO,iBAAiB,EAAA,EAAI,OAAO,QAAQ,KAAK,WAAA;;;;;;EAMnD,iBAAiB,MAAiB,SAA0B,QAAuB;AAClF,QAAI,CAAC,OAAQ,UAAS,KAAK,OAAA;AAC3B,YAAQ,OAAO,MAAf;MACC,KAAK;AACJ,eAAO,OAAO;UAAE,WAAW;UAAe,aAAa;;AACvD;MACD,KAAK;AACJ,eAAO,OAAO;UAAE,WAAW;UAAe,aAAa;;AACvD;MACD,KAAK;AACJ,eAAO,OAAO;UAAE,WAAW;UAAa,WAAW;;AACnD;MACD,KAAK;AACJ,YAAI,SAAS,KACZ,QAAO,OAAO;UAAE,WAAW;UAAa,WAAW,UAAU;;iBACnD,WAAW,MAAM,QAAQ,IAAA,EACnC,QAAO,OAAO;UAAE,WAAW;UAAa,WAAW,UAAU,SAAS,IAAA;;YAEtE,QAAO,OAAO;UAAE,WAAW;UAAe,aAAa,OAAO,SAAS,IAAA;;AAExE;MACD;AACC,cAAM,IAAI,WAAW,MACpB,qBAAqB,KAAK,WAAW,gBAAgB,gBAAgB,IAAA,CAAK;;AAG7E,WAAO;;;AAMT,IAAa,QAAQ,IAAI,WAAA;AAEzB,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,6BAA6B,CAClC;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,QAAQ;MAA2B,GAAA,6BAAS,OAAT;KAAgB,CAC7F;;;;;EAKF,kBAAkB,SAAoB,SAAsC;AAC3E,WAAO,QAAQ,OAAO,IAAA,CAAK,MAAM,MAAM,OAAO,CAAA,CAAE;;;;;EAKjD,iBAAiB,MAAiB,SAA0B,QAA+B;AAC1F,QAAI,CAAC,WAAW,MAAM,QAAQ,IAAA,EAC7B,OAAM,IAAI,WAAW,MACpB,qBAAqB,KAAK,WAAW,gBAAgB,gBAAgB,IAAA,CAAK;AAE5E,QAAI,CAAC,OAAQ,UAAS,KAAK,OAAA;AAC3B,QAAI,SAAS,KAAK,IAAA,CAAK,MAAM,MAAM,SAAS,CAAA,CAAE;AAC9C,WAAO,OAAO,KAAK,GAAG,MAAA;AACtB,WAAO;;;AAMT,IAAa,YAAY,IAAI,eAAA;;;AC5J7B,IAAY,kCAAA,yBAAA,mCAAL;AAIN,oCAAA,kCAAA,uBAAA,IAAA,CAAA,IAAA;AAIA,oCAAA,kCAAA,QAAA,IAAA,CAAA,IAAA;AAIA,oCAAA,kCAAA,MAAA,IAAA,CAAA,IAAA;;;AAyGD,IAAY,yBAAA,yBAAA,0BAAL;AAIN,2BAAA,yBAAA,cAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,SAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,MAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,IAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,KAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,KAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,KAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,MAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,MAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,QAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,UAAA,IAAA,EAAA,IAAA;AAIA,2BAAA,yBAAA,gBAAA,IAAA,EAAA,IAAA;;;AAgDD,IAAY,gCAAA,yBAAA,iCAAL;AAIN,kCAAA,gCAAA,oBAAA,IAAA,CAAA,IAAA;AAIA,kCAAA,gCAAA,SAAA,IAAA,CAAA,IAAA;AAIA,kCAAA,gCAAA,QAAA,IAAA,CAAA,IAAA;AAIA,kCAAA,gCAAA,QAAA,IAAA,CAAA,IAAA;;;AAoBD,IAAY,0BAAA,yBAAA,2BAAL;AAIN,4BAAA,0BAAA,mBAAA,IAAA,CAAA,IAAA;AAIA,4BAAA,0BAAA,WAAA,IAAA,CAAA,IAAA;AAIA,4BAAA,0BAAA,SAAA,IAAA,CAAA,IAAA;;;AAmDD,IAAY,UAAA,yBAAA,WAAL;AAIN,YAAA,UAAA,iBAAA,IAAA,CAAA,IAAA;AAMA,YAAA,UAAA,MAAA,IAAA,CAAA,IAAA;AAMA,YAAA,UAAA,MAAA,IAAA,CAAA,IAAA;AAMA,YAAA,UAAA,OAAA,IAAA,CAAA,IAAA;AAMA,YAAA,UAAA,KAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,eAAN,cAA2B,YAAqB;SAAA;;;EAC/C,cAAc;AACb,UAAM,sBAAsB;MAC3B;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,QAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAASC,aAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,SAAT;;KAED;;;AAMH,IAAa,UAAU,IAAI,aAAA;AAE3B,IAAM,cAAN,cAA0B,YAAoB;SAAA;;;EAC7C,cAAc;AACb,UAAM,qBAAqB;MAC1B;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,oBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,oBAAT;;KAED;;;AAMH,IAAa,SAAS,IAAI,YAAA;AAE1B,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC;MACtC;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,CAAC,sBAAsB,OAAA,GAAhC;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,8CAA8C,+BAAA,GAAxD;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,iBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,mBAAT;;KAED;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B,CACjC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,CAAC,sBAAsB,OAAA,GAAhC;OAED;MAAE,IAAI;MAAG,MAAM;MAAc,MAAM;MAAU,KAAK;MAAM,GAAG;KAAuB,CAClF;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAEjC,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B;MACnC;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAW,GAAA,6BAAS,mBAAT;;KACxC;;;AAMH,IAAa,kBAAkB,IAAI,qBAAA;AAEnC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC;MACrC;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,iBAAT;;KAED;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC;MACrC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,qCAAqC,sBAAA,GAA/C;;MAED;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,mBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAkB,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC/D;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC;MACtC;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,4CAA4C,6BAAA,GAAtD;;MAED;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;KAED;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B,CACjC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAA,6BAAS,CAAC,sCAAsC,uBAAA,GAAhD;OAED;MAAE,IAAI;MAAG,MAAM;MAAQ,MAAM;MAAW,GAAA,6BAAS,mBAAT;KAA4B,CACpE;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAEjC,IAAM,kBAAN,cAA8B,YAAwB;SAAA;;;EACrD,cAAc;AACb,UAAM,yBAAyB;MAC9B;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC9D;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC3D;;;AAMH,IAAaA,cAAa,IAAI,gBAAA;AAE9B,IAAM,eAAN,cAA2B,YAAqB;SAAA;;;EAC/C,cAAc;AACb,UAAM,sBAAsB;MAC3B;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,UAAU,IAAI,aAAA;;;AC/vB3B,IAAY,kBAAA,yBAAA,mBAAL;AAIN,oBAAA,kBAAA,oBAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,SAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,QAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,QAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,WAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,mBAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,aAAN,cAAyB,YAAmB;SAAA;;;EAC3C,cAAc;AACb,UAAM,oBAAoB;MACzB;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,8BAA8B,eAAA,GAAxC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAaC,SAAQ,IAAI,WAAA;;;AC9CzB,IAAY,wBAAA,yBAAA,yBAAL;AAIN,0BAAA,wBAAA,uBAAA,IAAA,CAAA,IAAA;AAMA,0BAAA,wBAAA,KAAA,IAAA,CAAA,IAAA;AAOA,0BAAA,wBAAA,OAAA,IAAA,CAAA,IAAA;AAMA,0BAAA,wBAAA,QAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,gBAAN,cAA4B,YAAsB;SAAA;;;EACjD,cAAc;AACb,UAAM,uBAAuB;MAC5B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,oCAAoC,qBAAA,GAA9C;;MAED;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAU,KAAK;QAAM,GAAG;;MACtD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC1D;;;AAMH,IAAaC,YAAW,IAAI,cAAA;;;ACH5B,IAAY,kBAAA,yBAAA,mBAAL;AAIN,oBAAA,kBAAA,oBAAA,IAAA,CAAA,IAAA;AAMA,oBAAA,kBAAA,MAAA,IAAA,CAAA,IAAA;AAMA,oBAAA,kBAAA,oBAAA,IAAA,CAAA,IAAA;AAMA,oBAAA,kBAAA,QAAA,IAAA,CAAA,IAAA;AAMA,oBAAA,kBAAA,WAAA,IAAA,CAAA,IAAA;AAMA,oBAAA,kBAAA,kBAAA,IAAA,CAAA,IAAA;;;AAKD,IAAY,mBAAA,yBAAA,oBAAL;AAIN,qBAAA,mBAAA,oBAAA,IAAA,CAAA,IAAA;AAIA,qBAAA,mBAAA,WAAA,IAAA,CAAA,IAAA;AAIA,qBAAA,mBAAA,SAAA,IAAA,CAAA,IAAA;AAQA,qBAAA,mBAAA,qBAAA,IAAA,CAAA,IAAA;;;AAsBD,IAAY,yBAAA,yBAAA,0BAAL;AAIN,2BAAA,yBAAA,gBAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,QAAA,IAAA,CAAA,IAAA;AAIA,2BAAA,yBAAA,SAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,aAAN,cAAyB,YAAmB;SAAA;;;EAC3C,cAAc;AACb,UAAM,oBAAoB;MACzB;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,8BAA8B,eAAA,GAAxC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,+BAA+B,gBAAA,GAAzC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAoB,MAAM;QAAW,GAAA,6BAASC,kBAAT;;MACpD;QAAE,IAAI;QAAM,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,OAAT;;KAC9C;;;AAMH,IAAa,QAAQ,IAAI,WAAA;AAEzB,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B;MACnC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,qCAAqC,sBAAA,GAA/C;;KAED;;;AAMH,IAAaA,mBAAkB,IAAI,qBAAA;;;ACrHnC,IAAM,gBAAN,cAA4B,YAAsB;SAAA;;;EACjD,cAAc;AACb,UAAM,4BAA4B,CACjC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,GAAG;MACH,GAAG;OAEJ;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAU,GAAG;KAAwB,CACnE;;;;;EAKF,kBAAkB,SAAmB,SAAsC;AAC1E,QAAI,IAAI,OAAO,KAAK,QAAQ,OAAA,EAAS,SAAA;AACrC,QAAI,IAAI,YAAgB,IAAI,UAAe,OAAM,IAAI,MAAM,8BAAA;AAC3D,QAAI,OAAO,QAAQ,QAAQ,SAAA;AAC3B,QAAI,MAAM,KAAK,QAAQ,QAAQ,EAAG,QAAO,MAAM;AAC/C,QAAI,QAAQ,UAAU,GAAG;AACxB,UAAI,WAAW,KAAK,IAAI,QAAQ,KAAA,EAAO,SAAA;AACvC,iBAAW,IAAI,OAAO,IAAI,SAAS,MAAA,IAAU;AAC7C,UAAI,SAAS,UAAU,CAAA,MAAO,SAAU,YAAW,SAAS,UAAU,GAAG,CAAA;eAChE,SAAS,UAAU,CAAA,MAAO,MAAO,YAAW,SAAS,UAAU,GAAG,CAAA;AAC3E,cAAQ,MAAM;;AAEf,WAAO,OAAO;;;;;EAKf,iBAAiB,MAAiB,SAA0B,QAA6B;AACxF,QAAI,OAAO,SAAS,SACnB,OAAM,IAAI,MACT,wCAAwC,gBAAgB,IAAA,IAAQ,oBAAA;AAElE,QAAI,QAAQ,KAAK,MAAM,+BAAA;AACvB,QAAI,UAAU,KACb,OAAM,IAAI,MAAM,4DAAA;AACjB,QAAI,CAAC,OAAQ,UAAS,KAAK,OAAA;AAC3B,QAAI,CAAA,EAAG,MAAM,MAAM,KAAA,IAAS;AAC5B,QAAI,cAAc,OAAO,KAAK,OAAO,IAAA;AACrC,QAAI,YAAY,SAAA,IAAa,YAAgB,YAAY,SAAA,IAAa,UACrE,OAAM,IAAI,MAAM,gEAAA;AACjB,WAAO,UAAU,YAAY,SAAA;AAC7B,QAAI,OAAO,SAAS,UAAU;AAC7B,UAAI,WAAW,OAAO,QAAQ,IAAI,OAAO,IAAI,MAAM,MAAA;AACnD,aAAO,QAAQ,SAAS,QAAA;;AAEzB,WAAO;;;AAMT,IAAa,WAAW,IAAI,cAAA;;;ACvH5B,IAAM,aAAN,cAAyB,YAAmB;SAAA;;;EAC3C,cAAc;AACb,UAAM,oBAAoB,CACzB;MAAE,IAAI;MAAG,MAAM;MAAO,MAAM;MAAU,KAAK;MAAM,GAAG;OACpD;MAAE,IAAI;MAAG,MAAM;MAAO,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CAC7E;;;AAMH,IAAa,QAAQ,IAAI,WAAA;AAEzB,IAAM,WAAN,cAAuB,YAAiB;SAAA;;;EACvC,cAAc;AACb,UAAM,kBAAkB;MACvB;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpD;QAAE,IAAI;QAAG,MAAM;QAAK,MAAM;QAAU,KAAK;QAAM,GAAG;;MAClD;QAAE,IAAI;QAAG,MAAM;QAAK,MAAM;QAAU,KAAK;QAAM,GAAG;;MAClD;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;KACpD;;;AAMH,IAAa,MAAM,IAAI,SAAA;;;AC3DvB,IAAM,WAAN,cAAuB,YAAiB;SAAA;;;EACvC,cAAc;AACb,UAAM,kBAAkB,CACvB;MAAE,IAAI;MAAG,MAAM;MAAQ,MAAM;MAAU,KAAK;MAAM,GAAG;OACrD;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CAC/E;;;AAMH,IAAa,MAAM,IAAI,SAAA;;;AC6GvB,IAAM,cAAN,cAA0B,YAAoB;SAAA;;;EAC7C,cAAc;AACb,UAAM,qBAAqB;MAC1B;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAW,GAAA,6BAASC,QAAT;;MACzC;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAuB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpE;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAAS,KAAT;;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,SAAT;;MAC3C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAK,MAAM;QAAQ,MAAM;QAAW,GAAA,6BAAS,OAAT;;MAC1C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAK,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,SAAT;;KAC7C;;;AAMH,IAAaC,WAAS,IAAI,YAAA;AAE1B,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,wBAAwB,CAC7B;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASA,UAAT;KACA,CACD;;;AAMH,IAAa,YAAY,IAAI,eAAA;AAE7B,IAAM,eAAN,cAA2B,YAAqB;SAAA;;;EAC/C,cAAc;AACb,UAAM,sBAAsB,CAC3B;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,GAAA,6BAAS,OAAT;OAC1C;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,GAAA,6BAAS,OAAT;KAAgB,CAC1D;;;AAMH,IAAa,UAAU,IAAI,aAAA;;;AC/E3B,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,6BAA6B,CAClC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,GAAG;MACH,GAAG;OAEJ;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAU,GAAG;KAAwB,CACnE;;;;;EAKF,MAAiB;AAChB,UAAM,MAAM,KAAK,OAAA;AACjB,UAAM,KAAK,KAAK,IAAA;AAChB,QAAI,UAAU,OAAO,KAAK,KAAK,MAAM,KAAK,GAAA,CAAK,EAAE,SAAA;AACjD,QAAI,QAAS,KAAK,MAAQ;AAC1B,WAAO;;;;;EAKR,OAAO,SAA0B;AAChC,WAAO,IAAI,KACV,OAAO,KAAK,QAAQ,OAAA,EAAS,SAAA,IAAa,MAAO,KAAK,KAAK,QAAQ,QAAQ,GAAA,CAAQ;;;;;EAMrF,SAAS,MAAuB;AAC/B,UAAM,MAAM,KAAK,OAAA;AACjB,UAAM,KAAK,KAAK,QAAA;AAChB,QAAI,UAAU,OAAO,KAAK,KAAK,MAAM,KAAK,GAAA,CAAK,EAAE,SAAA;AACjD,QAAI,SAAU,KAAK,OAAS,KAAK,KAAK,KAAK,QAAS,IAAI,MAAO,MAAM;AACrE,WAAO;;;;;;EAMR,kBAAkB,SAAoB,SAAsC;AAC3E,QAAI,KAAK,OAAO,KAAK,QAAQ,OAAA,EAAS,SAAA,IAAa;AACnD,QAAI,KAAK,KAAK,MAAM,sBAAA,KAA2B,KAAK,KAAK,MAAM,sBAAA,EAC9D,OAAM,IAAI,MACT,0GAAA;AAEF,QAAI,QAAQ,QAAQ,EACnB,OAAM,IAAI,MAAM,yEAAA;AACjB,QAAI,IAAI;AACR,QAAI,QAAQ,QAAQ,GAAG;AACtB,UAAI,YAAY,QAAQ,QAAQ,KAAY,SAAA,EAAW,UAAU,CAAA;AACjE,UAAI,SAAS,UAAU,CAAA,MAAO,SAAU,KAAI,MAAM,SAAS,UAAU,GAAG,CAAA,IAAK;eACpE,SAAS,UAAU,CAAA,MAAO,MAAO,KAAI,MAAM,SAAS,UAAU,GAAG,CAAA,IAAK;UAC1E,KAAI,MAAM,WAAW;;AAE3B,WAAO,IAAI,KAAK,EAAA,EAAI,YAAA,EAAc,QAAQ,SAAS,CAAA;;;;;;EAMpD,iBAAiB,MAAiB,SAA0B,QAA+B;AAC1F,QAAI,OAAO,SAAS,SACnB,OAAM,IAAI,MAAM,yCAAyC,gBAAgB,IAAA,IAAQ,GAAA;AAClF,QAAI,UAAU,KAAK,MAClB,sHAAA;AAED,QAAI,CAAC,QAAS,OAAM,IAAI,MAAM,sDAAA;AAC9B,QAAI,KAAK,KAAK,MACb,QAAQ,CAAA,IACP,MACA,QAAQ,CAAA,IACR,MACA,QAAQ,CAAA,IACR,MACA,QAAQ,CAAA,IACR,MACA,QAAQ,CAAA,IACR,MACA,QAAQ,CAAA,KACP,QAAQ,CAAA,IAAK,QAAQ,CAAA,IAAK,IAAA;AAE7B,QAAI,OAAO,MAAM,EAAA,EAAK,OAAM,IAAI,MAAM,qDAAA;AACtC,QAAI,KAAK,KAAK,MAAM,sBAAA,KAA2B,KAAK,KAAK,MAAM,sBAAA,EAC9D,OAAM,IAAI,WAAW,MACpB,2GAAA;AAEF,QAAI,CAAC,OAAQ,UAAS,KAAK,OAAA;AAC3B,WAAO,UAAU,OAAO,KAAK,KAAK,GAAA,EAAM,SAAA;AACxC,WAAO,QAAQ;AACf,QAAI,QAAQ,CAAA,EACX,QAAO,QAAQ,SAAS,MAAM,QAAQ,CAAA,IAAK,IAAI,OAAO,IAAI,QAAQ,CAAA,EAAG,MAAA,CAAO,IAAI;AACjF,WAAO;;;AAMT,IAAa,YAAY,IAAI,eAAA;;;AC7N7B,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B;MACnC;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;KACvD;;;AAMH,IAAa,kBAAkB,IAAI,qBAAA;;;AC8FnC,IAAY,kDAAA,yBAAA,mDAAL;AAIN,oDAAA,kDAAA,qCAAA,IAAA,CAAA,IAAA;AAMA,oDAAA,kDAAA,MAAA,IAAA,CAAA,IAAA;AAOA,oDAAA,kDAAA,OAAA,IAAA,CAAA,IAAA;AAcA,oDAAA,kDAAA,cAAA,IAAA,CAAA,IAAA;;;AA6FD,IAAY,uBAAA,yBAAA,wBAAL;AAIN,yBAAA,uBAAA,cAAA,IAAA,CAAA,IAAA;AAMA,yBAAA,uBAAA,0BAAA,IAAA,CAAA,IAAA;AASA,yBAAA,uBAAA,cAAA,IAAA,CAAA,IAAA;AASA,yBAAA,uBAAA,SAAA,IAAA,CAAA,IAAA;AAMA,yBAAA,uBAAA,8BAAA,IAAA,CAAA,IAAA;AAMA,yBAAA,uBAAA,4BAAA,IAAA,CAAA,IAAA;AAOA,yBAAA,uBAAA,cAAA,IAAA,CAAA,IAAA;AAMA,yBAAA,uBAAA,yBAAA,IAAA,CAAA,IAAA;AAMA,yBAAA,uBAAA,8BAAA,IAAA,CAAA,IAAA;AAMA,yBAAA,uBAAA,8BAAA,IAAA,CAAA,IAAA;AAMA,yBAAA,uBAAA,8BAAA,IAAA,EAAA,IAAA;AAMA,yBAAA,uBAAA,iCAAA,IAAA,EAAA,IAAA;;;AAgrBD,IAAY,iCAAA,yBAAA,kCAAL;AAIN,mCAAA,iCAAA,cAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,cAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,4BAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,4BAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,yBAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,wBAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,qBAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,uBAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,mCAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,yBAAA,IAAA,CAAA,IAAA;AAMA,mCAAA,iCAAA,sBAAA,IAAA,EAAA,IAAA;AAMA,mCAAA,iCAAA,yBAAA,IAAA,EAAA,IAAA;AAMA,mCAAA,iCAAA,4BAAA,IAAA,EAAA,IAAA;AAMA,mCAAA,iCAAA,gCAAA,IAAA,EAAA,IAAA;;;AAwDD,IAAY,wDAAA,yBAAA,yDAAL;AAIN,0DAAA,wDAAA,yCAAA,IAAA,CAAA,IAAA;AAIA,0DAAA,wDAAA,kBAAA,IAAA,CAAA,IAAA;AAIA,0DAAA,wDAAA,kBAAA,IAAA,CAAA,IAAA;AAIA,0DAAA,wDAAA,aAAA,IAAA,CAAA,IAAA;AAIA,0DAAA,wDAAA,aAAA,IAAA,CAAA,IAAA;AAIA,0DAAA,wDAAA,SAAA,IAAA,CAAA,IAAA;AAIA,0DAAA,wDAAA,kBAAA,IAAA,CAAA,IAAA;AAIA,0DAAA,wDAAA,SAAA,IAAA,CAAA,IAAA;;;AAoBD,IAAM,mBAAN,cAA+B,YAAyB;SAAA;;;EACvD,cAAc;AACb,UAAM,0BAA0B;MAC/B;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAW,GAAA,6BAASC,kBAAT;;MACxC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,GAAA,6BAAS,YAAT;;MAC/C;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAW,GAAA,6BAASC,wBAAT;;KAC9C;;;AAMH,IAAa,cAAc,IAAI,iBAAA;AAE/B,IAAM,kBAAN,cAA8B,YAAwB;SAAA;;;EACrD,cAAc;AACb,UAAM,yBAAyB;MAC9B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,iBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAU,KAAK;QAAM,GAAG;;MACtD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,aAAa,IAAI,gBAAA;AAE9B,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC;MACzC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,8DACA,+CAAA,GAFD;;MAKD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACjD;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACjD;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAU,KAAK;QAAM,GAAG;;MACtD;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAU,KAAK;QAAM,GAAG;;KACtD;;;AAMH,IAAaA,yBAAwB,IAAI,2BAAA;AAEzC,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B;MACnC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,mCAAmC,oBAAA,GAA7C;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAASC,0BAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,OAAO;QAAQ,GAAA,6BAAS,aAAT;;MAC/D;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,OAAO;QAAQ,GAAA,6BAAS,oBAAT;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,yBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,0BAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,uBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,uBAAT;;KAED;;;AAMH,IAAaF,mBAAkB,IAAI,qBAAA;AAEnC,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC,CAC3C;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,QAAQ;MAA2B,GAAA,6BAAS,OAAT;OAC7E;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASG,UAAT;KACA,CACD;;;AAMH,IAAaD,2BAA0B,IAAI,6BAAA;AAE3C,IAAM,eAAN,cAA2B,YAAqB;SAAA;;;EAC/C,cAAc;AACb,UAAM,sBAAsB;MAC3B;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,OAAO;QAAW,GAAA,6BAAS,UAAT;;MAC/D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,iBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,OAAO;QAAW,GAAA,6BAAS,YAAT;;MACjE;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,OAAO;QAAW,GAAA,6BAAS,YAAT;;MACjE;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,OAAO;QAAW,GAAA,6BAAS,SAAT;;MAC7D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,gBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,OAAO;QAAW,GAAA,6BAAS,SAAT;;KAC7D;;;AAMH,IAAaC,WAAU,IAAI,aAAA;AAE3B,IAAM,gBAAN,cAA4B,YAAsB;SAAA;;;EACjD,cAAc;AACb,UAAM,uBAAuB;MAC5B;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAASC,WAAT;;KAED;;;AAMH,IAAa,WAAW,IAAI,cAAA;AAE5B,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B,CACnC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASA,WAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAW,GAAA,6BAASA,WAAT;KAAmB,CAC9D;;;AAMH,IAAa,kBAAkB,IAAI,qBAAA;AAEnC,IAAM,kBAAN,cAA8B,YAAwB;SAAA;;;EACrD,cAAc;AACb,UAAM,yBAAyB,CAC9B;MAAE,IAAI;MAAG,MAAM;MAAQ,MAAM;MAAW,GAAA,6BAASA,WAAT;OACxC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASA,WAAT;KACA,CACD;;;AAMH,IAAa,aAAa,IAAI,gBAAA;AAE9B,IAAM,kBAAN,cAA8B,YAAwB;SAAA;;;EACrD,cAAc;AACb,UAAM,yBAAyB,CAC9B;MAAE,IAAI;MAAG,MAAM;MAAQ,MAAM;MAAW,GAAA,6BAASA,WAAT;OACxC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASA,WAAT;KACA,CACD;;;AAMH,IAAa,aAAa,IAAI,gBAAA;AAE9B,IAAM,eAAN,cAA2B,YAAqB;SAAA;;;EAC/C,cAAc;AACb,UAAM,sBAAsB,CAC3B;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAG;OAEJ;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAG;KACH,CACD;;;AAMH,IAAa,UAAU,IAAI,aAAA;AAE3B,IAAM,sBAAN,cAAkC,YAA4B;SAAA;;;EAC7D,cAAc;AACb,UAAM,6BAA6B,CAClC;MAAE,IAAI;MAAG,MAAM;MAAgB,MAAM;MAAU,KAAK;MAAM,GAAG;OAC7D;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASA,WAAT;KACA,CACD;;;AAMH,IAAa,iBAAiB,IAAI,oBAAA;AAElC,IAAM,eAAN,cAA2B,YAAqB;SAAA;;;EAC/C,cAAc;AACb,UAAM,sBAAsB;MAC3B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAW,GAAA,6BAASA,WAAT;;KAC1C;;;AAMH,IAAa,UAAU,IAAI,aAAA;AAE3B,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC;MACzC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC7D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,wBAAwB,IAAI,2BAAA;AAEzC,IAAM,mBAAN,cAA+B,YAAyB;SAAA;;;EACvD,cAAc;AACb,UAAM,0BAA0B;MAC/B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAyB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACzD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;KAED;;;AAMH,IAAa,cAAc,IAAI,iBAAA;AAE/B,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B;MACjC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;;KAEJ;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAEjC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC,CACtC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASC,UAAT;KACA,CACD;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC;MAC3C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAoB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACpD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAA,6BAAS,uCAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;KAEJ;;;AAMH,IAAa,0BAA0B,IAAI,6BAAA;AAE3C,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC;MACrC;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,kCAAkC,CACvC;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAU,KAAK;MAAM,GAAG;OACvD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,mBAAT;KACA,CACD;;;AAMH,IAAa,sBAAsB,IAAI,yBAAA;AAEvC,IAAM,6CAAN,cAAyD,YAAmD;SAAA;;;EAC3G,cAAc;AACb,UAAM,oDAAoD,CACzD;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAU,KAAK;MAAM,GAAG;OACxD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,qBAAT;KACA,CACD;;;AAMH,IAAa,wCACZ,IAAI,2CAAA;AAEL,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC;MAC5C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,WAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;AAE5C,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,wBAAwB;MAC7B;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAW,GAAA,6BAAS,OAAT;;MACtC;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,YAAY,IAAI,eAAA;AAE7B,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC,CACzC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,2BAAT;KACA,CACD;;;AAMH,IAAa,wBAAwB,IAAI,2BAAA;AAEzC,IAAM,iCAAN,cAA6C,YAAuC;SAAA;;;EACnF,cAAc;AACb,UAAM,wCAAwC;MAC7C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,6CAA6C,8BAAA,GAAvD;;MAED;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,OAAO;QAAQ,GAAA,6BAAS,aAAT;;MAC/D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,0BAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,2BAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAmB,MAAM;QAAU,OAAO;QAAQ,GAAG;;MACpE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,4BAA4B,IAAI,+BAAA;AAE7C,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC,CAC5C;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;OAEJ;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;AAE5C,IAAM,iCAAN,cAA6C,YAAuC;SAAA;;;EACnF,cAAc;AACb,UAAM,wCAAwC,CAC7C;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAU,KAAK;MAAM,GAAG;OACxD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,0BAAT;KACA,CACD;;;AAMH,IAAa,4BAA4B,IAAI,+BAAA;AAE7C,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC;MAC5C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,oEACA,qDAAA,GAFD;;MAKD;QAAE,IAAI;QAAG,MAAM;QAAoB,MAAM;QAAW,GAAA,6BAAS,UAAT;;MACpD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,mCAAT;;KAED;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;AAE5C,IAAM,yCAAN,cAAqD,YAA+C;SAAA;;;EACnG,cAAc;AACb,UAAM,gDAAgD,CACrD;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAU,KAAK;MAAM,GAAG;OAC1D;MAAE,IAAI;MAAG,MAAM;MAAY,MAAM;MAAW,GAAA,6BAAS,UAAT;KAAmB,CAC/D;;;AAMH,IAAa,oCAAoC,IAAI,uCAAA;;;AClgErD,SAAS,mBAAmB,KAAqB;AAChD,UAAQ,IAAI,OAAZ;IACC,KAAK;AAEJ,aAAO;QACN,MAAM,gBAAgB;QACtB,MAAM,WAAW,IAAI,KAAK,KAAA;;IAG5B,KAAK;AACJ,UAAI,IAAI,OAAO,UAAU,mBACxB,QAAO;QACN,MAAM,gBAAgB;QACtB,UAAU,IAAI,OAAO,iBAAiB;QACtC,SAAS,OAAO,IAAI,OAAO,iBAAiB,OAAA;QAC5C,QAAQ,IAAI,OAAO,iBAAiB;;eAE3B,IAAI,OAAO,UAAU,eAC/B,QAAO;QACN,MAAM,gBAAgB;QACtB,UAAU,IAAI,OAAO,aAAa;QAClC,SAAS,OAAO,IAAI,OAAO,aAAa,oBAAA;QACxC,SAAS,IAAI,OAAO,aAAa;;eAExB,IAAI,OAAO,UAAU,YAC/B,QAAO;QACN,MAAM,gBAAgB;QACtB,UAAU,IAAI,OAAO,UAAU;QAC/B,SAAS,OAAO,IAAI,OAAO,UAAU,OAAA;QACrC,QAAQ,IAAI,OAAO,UAAU;;AAG/B,YAAM,IAAI,MAAM,wBAAwB,KAAK,UAAU,IAAI,MAAA,CAAO,EAAA;IAEnE,KAAK;AACJ,YAAM,aAAa,IAAI;AACvB,aAAO;QACN,UAAU,WAAW;QACrB,SAAS,WAAW,UACjB,OAAO,WAAW,OAAA,IAClB,WAAW,uBACV,OAAO,WAAW,oBAAA,IAClB;QACJ,QAAQ,WAAW,UAAU;QAC7B,SAAS,WAAW,WAAW;;IAGjC,KAAK;AACJ,YAAM,IAAI,MAAM,4EAAA;IAEjB,KAAK,mBAAmB;AACvB,YAAM,aAAa,IAAI;AACvB,aAAO;QACN,MAAM,gBAAgB;QACtB,iBAAiB;UAChB,QACC,WAAW,YAAY,UAAU,iBAC9B,OAAO,WAAW,YAAY,YAAA,IAC9B;UACJ,UAAU,WAAW,QAAQ,UAAU,YAAY,WAAW,QAAQ,UAAU;UAChF,QACC,WAAW,aAAa,UAAU,YAC/B,uBAAuB,UACvB,uBAAuB;;;;IAK9B;AACC,YAAM,IAAI,MAAM,yBAAyB,KAAK,UAAU,GAAA,CAAI,EAAA;;;AArEtD;AA4ET,SAAS,yBAAyB,KAAgD;AACjF,MAAI,aAAa,IAChB,QAAO,EAAE,MAAM,sBAAsB,IAAA;WAC3B,WAAW,IACrB,QAAO;IAAE,MAAM,sBAAsB;IAAO,OAAO,IAAI;;WAC7C,YAAY,IACtB,QAAO;IAAE,MAAM,sBAAsB;IAAQ,QAAQ,IAAI;;WAC/C,kBAAkB,IAC5B,QAAO;IACN,MAAM,sBAAsB;IAC5B,QAAQ,IAAI,aAAa,CAAA;IACzB,WAAW,IAAI,aAAa,CAAA;;AAG9B,QAAM,IAAI,MAAM,qBAAqB,KAAK,UAAU,GAAA,CAAI,EAAA;;AAdhD;AAoBT,SAAS,uBAAuB,KAA0B;AACzD,UAAQ,IAAI,OAAZ;IACC,KAAK;AACJ,aAAO,EACN,SAAS;QACR,WAAW;QACX,UAAU;UACT,SAAS,IAAI,SAAS;UACtB,QAAQ,IAAI,SAAS;UACrB,UAAU,IAAI,SAAS;UACvB,eAAe,IAAI,SAAS;UAC5B,WAAW,IAAI,SAAS,UAAU,IAAI,wBAAA;;QAEvC;IAGH,KAAK;AACJ,aAAO,EACN,SAAS;QACR,WAAW;QACX,iBAAiB;UAChB,SAAS,IAAI,gBAAgB,QAAQ,IAAI,wBAAA;UACzC,SAAS,yBAAyB,IAAI,gBAAgB,OAAA;;QAEvD;IAGH,KAAK;AACJ,aAAO,EACN,SAAS;QACR,WAAW;QACX,YAAY;UACX,MAAM,yBAAyB,IAAI,WAAW,IAAA;UAC9C,SAAS,IAAI,WAAW,QAAQ,IAAI,wBAAA;;QAErC;IAGH,KAAK;AACJ,aAAO,EACN,SAAS;QACR,WAAW;QACX,YAAY;UACX,MAAM,yBAAyB,IAAI,WAAW,WAAA;UAC9C,cAAc,IAAI,WAAW,QAAQ,IAAI,wBAAA;;QAE1C;IAGH,KAAK;AACJ,aAAO,EACN,SAAS;QACR,WAAW;QACX,SAAS;UAER,SAAS,IAAI,QAAQ,QAAQ,IAAA,CAAK,MAAM,WAAW,CAAA,CAAE;UACrD,cAAc,IAAI,QAAQ;;QAE3B;IAGH,KAAK;AACJ,aAAO,EACN,SAAS;QACR,WAAW;QACX,gBAAgB;UACf,aAAa,IAAI,YAAY,QAAQ;UACrC,UAAU,IAAI,YAAY,SAAS,IAAI,wBAAA;;QAExC;IAGH,KAAK;AACJ,aAAO,EACN,SAAS;QACR,WAAW;QACX,SAAS;UAER,SAAS,IAAI,QAAQ,QAAQ,IAAA,CAAK,MAAM,WAAW,CAAA,CAAE;UACrD,cAAc,IAAI,QAAQ;UAC1B,SAAS,IAAI,QAAQ;UACrB,QAAQ,yBAAyB,IAAI,QAAQ,MAAA;;QAE9C;IAGH;AACC,YAAM,IAAI,MAAM,yBAAyB,KAAK,UAAU,GAAA,CAAI,EAAA;;;AAvFtD;AA2FT,SAAgB,iCAAiC,MAAwC;AAKxF,QAAM,cAA+B;IACpC,SAAS;IACT,MAAM,EACL,MAAM;MACL,WAAW;MACX,yBAAyB;QACxB,QAVe,KAAK,OAAO,IAAI,kBAAA;QAW/B,UATiB,KAAK,SAAS,IAAI,sBAAA;;MAWpC;;AAIH,MAAI,KAAK,OACR,aAAY,SAAS,KAAK;AAG3B,QAAM,WAAW,KAAK,QAAQ,SAAS,KAAK;AAE5C,cAAY,aAAa;IACxB,SAAS,KAAK,QAAQ,UACnB,KAAK,QAAQ,QAAQ,IAAA,CAAK,SAAS;MACnC,UAAU,IAAI;MACd,SAAS,OAAO,IAAI,OAAA;MACpB,QAAQ,IAAI;MACZ,IACA,CAAA;IACH,OAAO,KAAK,QAAQ,QAAQ,OAAO,KAAK,QAAQ,KAAA,IAAS;IACzD,QAAQ,KAAK,QAAQ,SAAS,OAAO,KAAK,QAAQ,MAAA,IAAU;;AAG7D,MAAI,SACH,aAAY,WAAW,QAAQ;AAGhC,MAAI,KAAK,YACR;QAAI,UAAU,KAAK,WAClB,aAAY,aAAa,EACxB,MAAM,gDAAgD,KAAA;aAE7C,KAAK,WAAW,UAAU,QACpC,aAAY,aAAa;MACxB,MAAM,gDAAgD;MACtD,OAAO,OAAO,KAAK,WAAW,KAAA;;aAErB,KAAK,WAAW,UAAU,eAAe;AACnD,YAAM,cAAc,KAAK,WAAW;AACpC,kBAAY,aAAa;QACxB,MAAM,gDAAgD;QACtD,UAAU,YAAY,YAAY,OAAO,OAAO,YAAY,QAAA,IAAY;QACxE,OAAO,YAAY,YAAY,OAAO,OAAO,YAAY,QAAA,IAAY;QACrE,OAAO,YAAY;QACnB,OAAO,YAAY;;;;AAKtB,SAAO;;AA9DQ;AAiEhB,SAAgB,6BACf,iBACA,qBACA,SACO;AACP,QAAM,WAAW,iCAAiC,mBAAA;AAElD,MAAI,SAAS,oBACZ,iBAAgB,kBAAkB;IACjC,GAAG;IACH,SAAS;MACR,QAAQ;MACR,OAAO;MACP,SAAS;MACT,OAAO;;IAER,YAAY;GACZ;MAED,iBAAgB,kBAAkB,QAAA;;AAnBpB;AAsChB,SAAgB,6BAA6B,aAA0B;AACtE,QAAM,WAAW,YAAY,QAAA;AAE7B,MAAI,CAAC,SAAS,OACb,UAAS,SAAS;AAGnB,SAAO,iCAAiC,QAAA;;AAPzB;AAehB,SAAS,mBAAmB,OAAuB;AAClD,UAAQ,MAAM,MAAd;IACC,KAAK,gBAAgB;AACpB,aAAO;QACN,OAAO;QACP,MAAM,EAAE,OAAO,SAAS,MAAM,IAAA,EAAM;;IAGtC,KAAK,gBAAgB;AACpB,aAAO;QACN,OAAO;QACP,QAAQ;UACP,OAAO;UACP,kBAAkB;YACjB,UAAU,MAAM;YAChB,SAAS,MAAM,QAAS,SAAA;YACxB,QAAQ,MAAM;;;;IAKlB,KAAK,gBAAgB;AACpB,aAAO;QACN,OAAO;QACP,QAAQ;UACP,OAAO;UACP,cAAc;YACb,UAAU,MAAM;YAChB,sBAAsB,MAAM,QAAS,SAAA;YACrC,SAAS,MAAM,WAAW;;;;IAK9B,KAAK,gBAAgB;AACpB,aAAO;QACN,OAAO;QACP,QAAQ;UACP,OAAO;UACP,WAAW;YACV,UAAU,MAAM;YAChB,SAAS,MAAM,QAAS,SAAA;YACxB,QAAQ,MAAM;;;;IAKlB,KAAK,gBAAgB;AACpB,aAAO;QACN,OAAO;QACP,iBAAiB;UAChB,aAAa;YACZ,OAAO;YACP,cAAc,MAAM,iBAAiB,QAAQ,SAAA,KAAc;;UAE5D,SAAS;YACR,OAAO;YACP,SAAS,MAAM,iBAAiB,YAAY;;UAE7C,cACC,MAAM,iBAAiB,WAAW,uBAAuB,UACtD;YAAE,OAAO;YAAoB,SAAS;cACtC;YAAE,OAAO;YAAmB,QAAQ;;;;IAI3C;AACC,YAAM,IAAI,MAAM,uBAAuB,KAAK,UAAU,KAAA,CAAM,EAAA;;;AAnEtD;AAuET,SAAS,yBACR,KAK4D;AAC5D,UAAQ,IAAI,MAAZ;IACC,KAAK,sBAAsB;AAC1B,aAAO;QAAE,OAAO;QAAW,SAAS;;IACrC,KAAK,sBAAsB;AAC1B,aAAO;QAAE,OAAO;QAAS,OAAO,IAAI;;IACrC,KAAK,sBAAsB;AAC1B,UAAI,IAAI,aAAa,KACpB,QAAO;QAAE,OAAO;QAAgB,cAAc,CAAC,IAAI,QAAS,IAAI,SAAA;;AAEjE,aAAO;QAAE,OAAO;QAAU,QAAQ,IAAI;;IACvC;AACC,YAAM,IAAI,MAAM,0BAA0B,KAAK,UAAU,GAAA,CAAI,EAAA;;;AAlBvD;AAsBT,SAAS,uBAAuB,KAA0B;AACzD,QAAM,UAAU,IAAI;AACpB,MAAI,CAAC,QACJ,OAAM,IAAI,MAAM,oBAAA;AAGjB,UAAQ,QAAQ,WAAhB;IACC,KAAK;AACJ,aAAO;QACN,OAAO;QACP,UAAU;UACT,SAAS,QAAQ,SAAS;UAC1B,QAAQ,QAAQ,SAAS;UACzB,UAAU,QAAQ,SAAS;UAC3B,eAAe,QAAQ,SAAS,iBAAiB,CAAA;UACjD,WAAW,QAAQ,SAAS,UAAU,IAAI,wBAAA;;;IAI7C,KAAK;AACJ,aAAO;QACN,OAAO;QACP,iBAAiB;UAChB,SAAS,QAAQ,gBAAgB,QAAQ,IAAI,wBAAA;UAC7C,SAAS,yBAAyB,QAAQ,gBAAgB,OAAA;;;IAI7D,KAAK;AACJ,aAAO;QACN,OAAO;QACP,YAAY;UACX,MAAM,yBAAyB,QAAQ,WAAW,IAAA;UAClD,SAAS,QAAQ,WAAW,QAAQ,IAAI,wBAAA;;;IAI3C,KAAK;AACJ,aAAO;QACN,OAAO;QACP,YAAY;UACX,aAAa,yBAAyB,QAAQ,WAAW,IAAA;UACzD,SAAS,QAAQ,WAAW,aAAa,IAAI,wBAAA;;;IAIhD,KAAK;AACJ,aAAO;QACN,OAAO;QACP,SAAS;UACR,SAAS,QAAQ,QAAQ,QAAQ,IAAA,CAAK,MAAM,SAAS,CAAA,CAAE;UACvD,cAAc,QAAQ,QAAQ,gBAAgB,CAAA;;;IAIjD,KAAK;AACJ,aAAO;QACN,OAAO;QACP,aAAa;UACZ,MAAM,QAAQ,eAAe,eAAe;UAC5C,UAAU,QAAQ,eAAe,SAAS,IAAI,wBAAA;;;IAIjD,KAAK;AACJ,aAAO;QACN,OAAO;QACP,SAAS;UACR,SAAS,QAAQ,QAAQ,QAAQ,IAAA,CAAK,MAAM,SAAS,CAAA,CAAE;UACvD,cAAc,QAAQ,QAAQ,gBAAgB,CAAA;UAC9C,SAAS,QAAQ,QAAQ;UACzB,QAAQ,yBAAyB,QAAQ,QAAQ,MAAA;;;IAIpD;AACC,YAAM,IAAI,MAAM,yBAAyB,KAAK,UAAU,OAAA,CAAQ,EAAA;;;AA5E1D;AAgFT,SAAgB,iCAAiC,QAA0C;AAC1F,QAAM,iBAAiB,OAAO,MAAM;AACpC,MAAI,gBAAgB,cAAc,0BACjC,OAAM,IAAI,MAAM,8CAAA;AAGjB,QAAM,SAAS,eAAe,wBAAwB,OAAO,IAAI,kBAAA;AACjE,QAAM,WAAW,eAAe,wBAAwB,SAAS,IAAI,sBAAA;AAErE,MAAI,aAA4C;AAChD,MAAI,OAAO,WACV,SAAQ,OAAO,WAAW,MAA1B;IACC,KAAK,gDAAgD;AACpD,mBAAa;QAAE,OAAO;QAAQ,MAAM;;AACpC;IACD,KAAK,gDAAgD;AACpD,mBAAa;QAAE,OAAO;QAAS,OAAO,OAAO,WAAW,MAAO,SAAA;;AAC/D;IACD,KAAK,gDAAgD;AACpD,mBAAa;QACZ,OAAO;QACP,aAAa;UACZ,UAAU,OAAO,WAAW,UAAU,SAAA,KAAc;UACpD,UAAU,OAAO,WAAW,OAAO,SAAA,KAAc;UACjD,cAAc;UACd,cAAc;UACd,OAAO,OAAO,WAAW,SAAS;UAClC,OAAO,OAAO,WAAW,SAAS;;;AAGpC;;AAIH,SAAO;IACN,SAAS;IACT,QAAQ,OAAO,UAAU;IACzB;IACA,SAAS;MACR,QAAQ,OAAO,YAAY,QAAQ,SAAA,KAAc;MACjD,OAAO,OAAO,YAAY,SAAS;MACnC,SACC,OAAO,YAAY,SAAS,IAAA,CAAK,SAAS;QACzC,UAAU,IAAI;QACd,SAAS,IAAI,QAAS,SAAA;QACtB,QAAQ,IAAI;QACZ,KAAM;MACR,OAAO,OAAO,YAAY,OAAO,SAAA,KAAc;;IAEhD;IACA;;;AAlDc;;;ACzXhB,IAAY,oCAAA,yBAAA,qCAAL;AAIN,sCAAA,oCAAA,8BAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,kBAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,oBAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,qBAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,2BAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,gBAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,iBAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,2BAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,2BAAA,IAAA,CAAA,IAAA;AAMA,sCAAA,oCAAA,uBAAA,IAAA,CAAA,IAAA;AAOA,sCAAA,oCAAA,gCAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,6BAAA,IAAA,EAAA,IAAA;AAQA,sCAAA,oCAAA,8BAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,YAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,0CAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,wBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,oBAAA,IAAA,EAAA,IAAA;AAOA,sCAAA,oCAAA,gBAAA,IAAA,EAAA,IAAA;AAOA,sCAAA,oCAAA,qBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,4BAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,wBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,qBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,2BAAA,IAAA,EAAA,IAAA;AAOA,sCAAA,oCAAA,qCAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,yBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,mBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,oCAAA,IAAA,EAAA,IAAA;AAUA,sCAAA,oCAAA,sCAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,uBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,2BAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,oBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,gCAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,wCAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,sBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,uDAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,yBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,wBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,kDAAA,IAAA,EAAA,IAAA;AAQA,sCAAA,oCAAA,0BAAA,IAAA,EAAA,IAAA;AAQA,sCAAA,oCAAA,wBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,iBAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,iCAAA,IAAA,EAAA,IAAA;AAMA,sCAAA,oCAAA,2CAAA,IAAA,EAAA,IAAA;;;AA8LD,IAAY,gDAAA,yBAAA,iDAAL;AAIN,kDAAA,gDAAA,qCAAA,IAAA,CAAA,IAAA;AAMA,kDAAA,gDAAA,eAAA,IAAA,CAAA,IAAA;AAMA,kDAAA,gDAAA,mBAAA,IAAA,CAAA,IAAA;AAMA,kDAAA,gDAAA,gCAAA,IAAA,CAAA,IAAA;AAOA,kDAAA,gDAAA,4CAAA,IAAA,CAAA,IAAA;AAQA,kDAAA,gDAAA,qBAAA,IAAA,CAAA,IAAA;AAQA,kDAAA,gDAAA,+BAAA,IAAA,CAAA,IAAA;AAQA,kDAAA,gDAAA,sBAAA,IAAA,CAAA,IAAA;AAOA,kDAAA,gDAAA,wBAAA,IAAA,CAAA,IAAA;AASA,kDAAA,gDAAA,qBAAA,IAAA,CAAA,IAAA;AAMA,kDAAA,gDAAA,yBAAA,IAAA,EAAA,IAAA;AAMA,kDAAA,gDAAA,2BAAA,IAAA,EAAA,IAAA;AAOA,kDAAA,gDAAA,wCAAA,IAAA,EAAA,IAAA;AAOA,kDAAA,gDAAA,wBAAA,IAAA,EAAA,IAAA;AAMA,kDAAA,gDAAA,yBAAA,IAAA,EAAA,IAAA;AAOA,kDAAA,gDAAA,2CAAA,IAAA,EAAA,IAAA;AAMA,kDAAA,gDAAA,wBAAA,IAAA,EAAA,IAAA;AASA,kDAAA,gDAAA,4BAAA,IAAA,EAAA,IAAA;AAQA,kDAAA,gDAAA,oCAAA,IAAA,EAAA,IAAA;AAQA,kDAAA,gDAAA,4BAAA,IAAA,EAAA,IAAA;;;AAwCD,IAAY,8CAAA,yBAAA,+CAAL;AAIN,gDAAA,8CAAA,oCAAA,IAAA,CAAA,IAAA;AAMA,gDAAA,8CAAA,yBAAA,IAAA,CAAA,IAAA;AAMA,gDAAA,8CAAA,eAAA,IAAA,CAAA,IAAA;AAMA,gDAAA,8CAAA,sBAAA,IAAA,CAAA,IAAA;AAMA,gDAAA,8CAAA,uBAAA,IAAA,CAAA,IAAA;AAMA,gDAAA,8CAAA,wBAAA,IAAA,CAAA,IAAA;AAMA,gDAAA,8CAAA,2BAAA,IAAA,CAAA,IAAA;;;AAsBD,IAAY,0CAAA,yBAAA,2CAAL;AAIN,4CAAA,0CAAA,kCAAA,IAAA,CAAA,IAAA;AAMA,4CAAA,0CAAA,gBAAA,IAAA,CAAA,IAAA;AAMA,4CAAA,0CAAA,0BAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B,CACnC;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAU,KAAK;MAAM,GAAG;OACxD;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAW,GAAA,6BAAS,gBAAT;KAAyB,CAClE;;;AAMH,IAAaC,mBAAkB,IAAI,qBAAA;AAEnC,IAAM,sBAAN,cAAkC,YAA4B;SAAA;;;EAC7D,cAAc;AACb,UAAM,6BAA6B;MAClC;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,gDACA,iCAAA,GAFD;;MAKD;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAW,OAAO;QAAgB,GAAA,6BAAS,WAAT;;MAChE;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAW,OAAO;QAAgB,GAAA,6BAAS,WAAT;;MACrE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAASC,uBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAASC,oBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAASC,sBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,OAAO;QAAgB,GAAA,6BAAS,YAAT;;MACtE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,mBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,kBAAT;;KAED;;;AAMH,IAAa,iBAAiB,IAAI,oBAAA;AAElC,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,wBAAwB;MAC7B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAASC,eAAT;;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,aAAT;;KAChD;;;AAMH,IAAa,YAAY,IAAI,eAAA;AAE7B,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B;MAChC;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC9D;;;AAMH,IAAaA,gBAAe,IAAI,kBAAA;AAEhC,IAAM,mBAAN,cAA+B,YAAyB;SAAA;;;EACvD,cAAc;AACb,UAAM,0BAA0B;MAC/B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC9D;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC9D;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,OAAO;QAAS,GAAG;;MAC9D;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,OAAO;QAAS,GAAG;;KACzD;;;AAMH,IAAa,cAAc,IAAI,iBAAA;AAE/B,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,wBAAwB,CAC7B;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;OAEJ;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,YAAY,IAAI,eAAA;AAE7B,IAAM,kBAAN,cAA8B,YAAwB;SAAA;;;EACrD,cAAc;AACb,UAAM,yBAAyB,CAC9B;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAU,KAAK;MAAM,GAAG;OACtD;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAU,KAAK;MAAM,GAAG;KAA0B,CACpF;;;AAMH,IAAa,aAAa,IAAI,gBAAA;AAE9B,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC,CACrC;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAU,KAAK;MAAM,GAAG;OACxD;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACnF;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,wBAAN,cAAoC,YAA8B;SAAA;;;EACjE,cAAc;AACb,UAAM,+BAA+B,CACpC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAG;KACH,CACD;;;AAMH,IAAa,mBAAmB,IAAI,sBAAA;AAEpC,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,mCAAmC;MACxC;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,4DACA,6CAAA,GAFD;;MAKD;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,GAAA,6BAAS,YAAT;;KAC/C;;;AAMH,IAAaH,wBAAuB,IAAI,0BAAA;AAExC,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,kCAAkC;MACvC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,0DACA,2CAAA,GAFD;;MAKD;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC1D;;;AAMH,IAAaE,uBAAsB,IAAI,yBAAA;AAEvC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC,CACrC;MAAE,IAAI;MAAG,MAAM;MAAiB,MAAM;MAAU,KAAK;MAAM,GAAG;OAC9D;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAA,6BAAS,CACR,sDACA,uCAAA,GAFD;KAIA,CACD;;;AAMH,IAAaD,qBAAoB,IAAI,uBAAA;;;AC3kCrC,IAAM,sBAAN,cAAkC,YAA4B;SAAA;;;EAC7D,cAAc;AACb,UAAM,6BAA6B;MAClC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAaG,kBAAiB,IAAI,oBAAA;;;ACiHlC,IAAY,iCAAA,yBAAA,kCAAL;AAIN,mCAAA,iCAAA,SAAA,IAAA,CAAA,IAAA;AAIA,mCAAA,iCAAA,gBAAA,IAAA,CAAA,IAAA;AAIA,mCAAA,iCAAA,QAAA,IAAA,CAAA,IAAA;;;AAKD,IAAY,kCAAA,yBAAA,mCAAL;AAIN,oCAAA,kCAAA,SAAA,IAAA,CAAA,IAAA;AAIA,oCAAA,kCAAA,gBAAA,IAAA,CAAA,IAAA;AAIA,oCAAA,kCAAA,cAAA,IAAA,CAAA,IAAA;AAIA,oCAAA,kCAAA,eAAA,IAAA,CAAA,IAAA;AAIA,oCAAA,kCAAA,mBAAA,IAAA,CAAA,IAAA;;;AAKD,IAAY,4BAAA,yBAAA,6BAAL;AAIN,8BAAA,4BAAA,sBAAA,IAAA,CAAA,IAAA;AAIA,8BAAA,4BAAA,MAAA,IAAA,CAAA,IAAA;AAIA,8BAAA,4BAAA,SAAA,IAAA,CAAA,IAAA;AAIA,8BAAA,4BAAA,SAAA,IAAA,CAAA,IAAA;;;AAkED,IAAY,wCAAA,yBAAA,yCAAL;AAIN,0CAAA,wCAAA,+BAAA,IAAA,CAAA,IAAA;AAIA,0CAAA,wCAAA,OAAA,IAAA,CAAA,IAAA;AAIA,0CAAA,wCAAA,OAAA,IAAA,CAAA,IAAA;;;AAKD,IAAY,oCAAA,yBAAA,qCAAL;AAIN,sCAAA,oCAAA,2BAAA,IAAA,CAAA,IAAA;AAIA,sCAAA,oCAAA,SAAA,IAAA,CAAA,IAAA;AAIA,sCAAA,oCAAA,eAAA,IAAA,CAAA,IAAA;AAIA,sCAAA,oCAAA,cAAA,IAAA,CAAA,IAAA;;;AAyCD,IAAY,wDAAA,yBAAA,yDAAL;AAIN,0DAAA,wDAAA,yCAAA,IAAA,CAAA,IAAA;AAMA,0DAAA,wDAAA,gBAAA,IAAA,CAAA,IAAA;AAMA,0DAAA,wDAAA,+BAAA,IAAA,CAAA,IAAA;AAMA,0DAAA,wDAAA,6BAAA,IAAA,CAAA,IAAA;AAOA,0DAAA,wDAAA,UAAA,IAAA,CAAA,IAAA;AAQA,0DAAA,wDAAA,kBAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC;MACtC;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAW,GAAA,6BAASC,kBAAT;;MAC1C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAASC,iBAAT;;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAsB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnE;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAW,GAAA,6BAAS,eAAT;;MAC9C;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC9D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,0BAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,iBAAT;;KAED;;;AAMH,IAAaC,sBAAqB,IAAI,wBAAA;AAEtC,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B;MACjC;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS;UACR;UACA;UACA;WAHD;;MAMD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC7D;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,GAAA,6BAASC,QAAT;;MAC/C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS;UACR;UACA;UACA;WAHD;;MAMD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC9D;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAASA,QAAT;;MAChD;QAAE,IAAI;QAAI,MAAM;QAAqB,MAAM;QAAW,GAAA,6BAAS,kBAAT;;MACtD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,wCAAwC,yBAAA,GAAlD;;MAED;QAAE,IAAI;QAAI,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC7D;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAEjC,IAAM,wBAAN,cAAoC,YAA8B;SAAA;;;EACjE,cAAc;AACb,UAAM,+BAA+B,CACpC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;OAEJ;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CAChF;;;AAMH,IAAa,mBAAmB,IAAI,sBAAA;AAEpC,IAAM,wBAAN,cAAoC,YAA8B;SAAA;;;EACjE,cAAc;AACb,UAAM,+BAA+B;MACpC;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAoB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACjE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,oDACA,qCAAA,GAFD;;MAKD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,gDACA,iCAAA,GAFD;;MAKD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,kBAAT;;KAED;;;AAMH,IAAa,mBAAmB,IAAI,sBAAA;AAEpC,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC;MAC5C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,oEACA,qDAAA,GAFD;;MAKD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC5D;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;;;AC/oB5C,IAAY,kBAAA,yBAAA,mBAAL;AAIN,oBAAA,kBAAA,SAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,WAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,WAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,UAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,UAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,SAAA,IAAA,CAAA,IAAA;AAIA,oBAAA,kBAAA,SAAA,IAAA,CAAA,IAAA;;;;;ACudD,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B;MACjC;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,8BAA8B,eAAA,GAAxC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAW,OAAO;QAAa,GAAA,6BAAS,iBAAT;;MAC9D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,6BAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAAS,sBAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAA,6BAASC,uBAAT;;KAED;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAEjC,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B;MACnC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,8BAA8B,eAAA,GAAxC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC3D;;;AAMH,IAAa,kBAAkB,IAAI,qBAAA;AAEnC,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC,CAC3C;MAAE,IAAI;MAAG,MAAM;MAAO,MAAM;MAAU,KAAK;MAAM,GAAG;OACpD;MAAE,IAAI;MAAG,MAAM;MAAgB,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACtF;;;AAMH,IAAa,0BAA0B,IAAI,6BAAA;AAE3C,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC;MAC3C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,8BAA8B,eAAA,GAAxC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,yBAAT;;KAC3C;;;AAMH,IAAa,0BAA0B,IAAI,6BAAA;AAE3C,IAAM,sBAAN,cAAkC,YAA4B;SAAA;;;EAC7D,cAAc;AACb,UAAM,6BAA6B,CAClC;MAAE,IAAI;MAAG,MAAM;MAAc,MAAM;MAAW,GAAA,6BAAS,yBAAT;OAC9C;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAU,KAAK;MAAM,GAAG;KAA0B,CACjF;;;AAMH,IAAa,iBAAiB,IAAI,oBAAA;AAElC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC,CACrC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,gBAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAU,KAAK;MAAM,GAAG;KAA0B,CACpF;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,mCAAN,cAA+C,YAAyC;SAAA;;;EACvF,cAAc;AACb,UAAM,0CAA0C;MAC/C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,yBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC9D;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,mBAAT;;KAC7C;;;AAMH,IAAa,8BAA8B,IAAI,iCAAA;AAE/C,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC;MAC3C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,8BAA8B,eAAA,GAAxC;;MAED;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,sBAAT;;MAC3C;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAASA,uBAAT;;KAC3C;;;AAMH,IAAa,0BAA0B,IAAI,6BAAA;AAE3C,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,mCAAmC;MACxC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAW,GAAA,6BAAS,eAAT;;MAC1C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,iBAAT;;MAC7C;QAAE,IAAI;QAAG,MAAM;QAAqB,MAAM;QAAW,GAAA,6BAAS,yBAAT;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAW,GAAA,6BAAS,OAAT;;KAC1C;;;AAMH,IAAa,uBAAuB,IAAI,0BAAA;AAExC,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B;MACjC;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,cAAT;;MAChD;QAAE,IAAI;QAAG,MAAM;QAAsB,MAAM;QAAW,GAAA,6BAAS,cAAT;;MACtD;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC9D;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC7D;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAEjC,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B;MAChC;QAAE,IAAI;QAAG,MAAM;QAAK,MAAM;QAAW,GAAA,6BAAS,UAAT;;MACrC;QAAE,IAAI;QAAG,MAAM;QAAK,MAAM;QAAW,GAAA,6BAAS,UAAT;;MACrC;QAAE,IAAI;QAAG,MAAM;QAAK,MAAM;QAAW,GAAA,6BAAS,UAAT;;KACrC;;;AAMH,IAAa,eAAe,IAAI,kBAAA;AAEhC,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B,CAChC;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAU,KAAK;MAAM,GAAG;OACtD;MAAE,IAAI;MAAG,MAAM;MAAe,MAAM;MAAU,KAAK;MAAM,GAAG;KAA0B,CACtF;;;AAMH,IAAa,eAAe,IAAI,kBAAA;AAEhC,IAAM,gBAAN,cAA4B,YAAsB;SAAA;;;EACjD,cAAc;AACb,UAAM,uBAAuB;MAC5B;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnD;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnD;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;KACnD;;;AAMH,IAAa,WAAW,IAAI,cAAA;AAE5B,IAAM,gBAAN,cAA4B,YAAsB;SAAA;;;EACjD,cAAc;AACb,UAAM,uBAAuB;MAC5B;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpD;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpD;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpD;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpD;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpD;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAU,KAAK;QAAM,GAAG;;KACpD;;;AAMH,IAAa,WAAW,IAAI,cAAA;AAE5B,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,mCAAmC;MACxC;QAAE,IAAI;QAAG,MAAM;QAAsB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnE;QAAE,IAAI;QAAG,MAAM;QAAoB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACjE;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,iBAAT;;KAC7C;;;AAMH,IAAaA,wBAAuB,IAAI,0BAAA;AAExC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC,CACtC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;OAEJ;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,0BAAT;KACA,CACD;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC,CAC5C;MAAE,IAAI;MAAG,MAAM;MAAc,MAAM;MAAU,KAAK;MAAM,GAAG;OAC3D;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;AAE5C,IAAM,oCAAN,cAAgD,YAA0C;SAAA;;;EACzF,cAAc;AACb,UAAM,2CAA2C;MAChD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;KACvD;;;AAMH,IAAa,+BAA+B,IAAI,kCAAA;;;ACzzBhD,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B;MACjC;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;KACvD;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;;;ACmCjC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC;MACrC;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAW,QAAQ;QAA2B,GAAA,6BAAS,OAAT;;KAC7E;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,aAAN,cAAyB,YAAmB;SAAA;;;EAC3C,cAAc;AACb,UAAM,oBAAoB;MACzB;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAAS,KAAT;;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAW,GAAA,6BAAS,OAAT;;KACxC;;;AAMH,IAAa,QAAQ,IAAI,WAAA;;;AC9BzB,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,kCAAkC;MACvC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,GAAA,6BAAS,aAAT;;MAC/C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAASC,qBAAT;;MAC3C;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAW,GAAA,6BAAS,mBAAT;;MAC1C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAC7C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAC3C;;;AAMH,IAAa,sBAAsB,IAAI,yBAAA;;;ACuIvC,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,6BAA6B,CAClC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAG;KACH,CACD;;;;;EAKF,kBAAkB,SAAoB,SAAsC;AAC3E,UAAM,4BAA4B;AAClC,WAAO,QAAQ,MACb,IAAA,CAAK,MAAM;AACX,UAAI,0BAA0B,KAAK,CAAA,EAClC,OAAM,IAAI,MACT,sEACC,IACA,oBAAA;AAEH,aAAO,eAAe,CAAA;OAEtB,KAAK,GAAA;;;;;EAKR,iBAAiB,MAAiB,SAA0B,QAA+B;AAC1F,QAAI,OAAO,SAAS,SACnB,OAAM,IAAI,MACT,yCAAyC,gBAAgB,IAAA,IAAQ,oBAAA;AAEnE,QAAI,CAAC,OAAQ,UAAS,KAAK,OAAA;AAC3B,QAAI,SAAS,GAAI,QAAO;AACxB,QAAI,eAAA,wBAAgB,QAAgB;AACnC,UAAI,IAAI,SAAS,GAAA,EAChB,OAAM,IAAI,MAAM,yEAAA;AAEjB,aADS,IAAI,QAAQ,UAAA,CAAW,WAAW,MAAM,OAAO,YAAA,CAAa;OAHlE;AAMJ,WAAO,QAAQ,KAAK,MAAM,GAAA,EAAK,IAAI,YAAA;AACnC,WAAO;;;AAMT,IAAa,YAAY,IAAI,eAAA;;;AChTtB,SAAS,oBAAoB,QAAQ,SAAS;AACjD,MAAI,IAAI,IAAI;AACZ,MAAI,IAAI;AACR,IAAE,UAAU;AACZ,IAAE,aAAa,KAAK,EAAE,eAAe,QAAQ,OAAO,SAAS,KAAK,eAAe,EAAE,IAAI;AAEvF,IAAE,kBAAkB,CAAC,CAAC,EAAE;AAExB,IAAE,kBAAkB,CAAC,CAAC,EAAE;AACxB,IAAE,WAAW,KAAK,EAAE,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAC;AAC/D,IAAE,eAAe,KAAK,EAAE,iBAAiB,QAAQ,OAAO,SAAS,KAAK;AACtE,SAAO;AACX;AAZgB;;;ACHT,IAAM,cAAN,MAAkB;AAAA,EADzB,OACyB;AAAA;AAAA;AAAA,EACrB,YAAY,UAAU,SAAS,SAAS;AACpC,SAAK,WAAW;AAChB,SAAK,UAAU,QAAQ,IAAI,OAAK,oBAAoB,GAAG,IAAI,CAAC;AAC5D,SAAK,UAAU,YAAY,QAAQ,YAAY,SAAS,UAAU,CAAC;AAAA,EACvE;AACJ;;;ACJO,IAAM,WAAN,cAAuB,MAAM;AAAA,EAHpC,OAGoC;AAAA;AAAA;AAAA,EAChC,YAAY,SAAS,OAAO,WAAW,MAAM;AACzC,UAAM,OAAO;AACb,SAAK,OAAO;AAEZ,WAAO,eAAe,MAAM,WAAW,SAAS;AAChD,SAAK,OAAO;AACZ,SAAK,OAAO,SAAS,QAAQ,SAAS,SAAS,OAAO,CAAC;AAAA,EAC3D;AAAA,EACA,WAAW;AACP,UAAM,IAAI,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO;AAC1C,QAAI,KAAK,MAAM;AACX,QAAE,KAAK,EAAE;AACT,QAAE,KAAK,WAAW,KAAK,IAAI;AAAA,IAC/B;AACA,QAAI,KAAK,eAAe,KAAK,YAAY;AACrC,QAAE,KAAK,aAAa,KAAK,cAAc,MAAM,KAAK,UAAU;AAAA,IAChE;AACA,QAAI,IAAI,OAAO,QAAQ,KAAK,IAAI;AAChC,QAAI,EAAE,QAAQ;AACV,QAAE,KAAK,EAAE;AACT,QAAE,KAAK,OAAO;AACd,eAAS,CAAC,GAAG,CAAC,KAAK,GAAG;AAClB,UAAE,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE;AAAA,MACzB;AAAA,IACJ;AACA,WAAO,EAAE,KAAK,IAAI;AAAA,EACtB;AACJ;;;ACTO,SAAS,gBAAgB,UAAU,SAAS;AAC/C,MAAI,CAAC;AACD,WAAO;AACX,MAAI,IAAI,CAAC;AACT,OAAK,UAAU,CAAC;AAChB,OAAK,SAAS,CAAC;AACf,WAAS,OAAO,OAAO,KAAK,OAAO,GAAG;AAClC,QAAI,MAAM,QAAQ,GAAG;AACrB,YAAQ,KAAK;AAAA,MACT,KAAK;AACD,UAAE,cAAc,iBAAiB,SAAS,aAAa,EAAE,WAAW;AACpE;AAAA,MACJ,KAAK;AACD,UAAE,gBAAgB,mBAAmB,SAAS,eAAe,EAAE,aAAa;AAC5E;AAAA,MACJ,KAAK;AACD,UAAE,OAAO,CAAC;AACV,aAAK,SAAS,MAAM,EAAE,IAAI;AAC1B,aAAK,QAAQ,MAAM,EAAE,IAAI;AACzB;AAAA,MACJ,KAAK;AACD,UAAE,eAAe,SAAS,eAAe,SAAS,aAAa,OAAO,GAAG,IAAI,IAAI,OAAO;AACxF;AAAA,IACR;AAAA,EACJ;AACA,SAAO;AACX;AA1BgB;AA2BhB,SAAS,KAAK,GAAG,MAAM;AACnB,MAAI,CAAC;AACD;AACJ,MAAI,IAAI;AACR,WAAS,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,CAAC,GAAG;AAClC,QAAI,aAAa;AACb,QAAE,CAAC,IAAI,IAAI,KAAK,EAAE,QAAQ,CAAC;AAAA,aACtB,MAAM,QAAQ,CAAC;AACpB,QAAE,CAAC,IAAI,EAAE,OAAO;AAAA;AAEhB,QAAE,CAAC,IAAI;AAAA,EACf;AACJ;AAZS;;;ACjDF,IAAI;AAAA,CACV,SAAUC,gBAAe;AACtB,EAAAA,eAAcA,eAAc,SAAS,IAAI,CAAC,IAAI;AAC9C,EAAAA,eAAcA,eAAc,UAAU,IAAI,CAAC,IAAI;AAC/C,EAAAA,eAAcA,eAAc,UAAU,IAAI,CAAC,IAAI;AACnD,GAAG,kBAAkB,gBAAgB,CAAC,EAAE;AASjC,IAAM,WAAN,MAAe;AAAA,EAdtB,OAcsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalB,YAAY,mCAAmC,MAAM;AACjD,SAAK,SAAS,cAAc;AAC5B,SAAK,WAAW,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC7C,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACnB,CAAC;AACD,QAAI,kCAAkC;AAClC,WAAK,SAAS,MAAM,OAAK;AAAA,MAAE,CAAC;AAAA,IAChC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAIA,QAAQ,OAAO;AACX,QAAI,KAAK,UAAU,cAAc;AAC7B,YAAM,IAAI,MAAM,kBAAkB,cAAc,KAAK,KAAK,EAAE,YAAY,CAAC,EAAE;AAC/E,SAAK,SAAS,KAAK;AACnB,SAAK,SAAS,cAAc;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,QAAQ;AACX,QAAI,KAAK,UAAU,cAAc;AAC7B,YAAM,IAAI,MAAM,iBAAiB,cAAc,KAAK,KAAK,EAAE,YAAY,CAAC,EAAE;AAC9E,SAAK,QAAQ,MAAM;AACnB,SAAK,SAAS,cAAc;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAIA,eAAe,KAAK;AAChB,QAAI,KAAK,WAAW,cAAc;AAC9B,WAAK,QAAQ,GAAG;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAIA,cAAc,QAAQ;AAClB,QAAI,KAAK,WAAW,cAAc;AAC9B,WAAK,OAAO,MAAM;AAAA,EAC1B;AACJ;;;AC5EO,IAAM,4BAAN,MAAgC;AAAA,EALvC,OAKuC;AAAA;AAAA;AAAA,EACnC,cAAc;AACV,SAAK,OAAO;AAAA,MACR,KAAK,CAAC;AAAA,MACN,KAAK,CAAC;AAAA,MACN,KAAK,CAAC;AAAA,MACN,KAAK,CAAC;AAAA,IACV;AACA,SAAK,UAAU;AAIf,SAAK,WAAW,EAAE,GAAG,CAAC,EAAE;AAAA,EAC5B;AAAA;AAAA,EAEA,OAAO,UAAU;AACb,WAAO,KAAK,OAAO,UAAU,KAAK,KAAK,GAAG;AAAA,EAC9C;AAAA,EACA,UAAU,UAAU;AAChB,WAAO,KAAK,OAAO,UAAU,KAAK,KAAK,GAAG;AAAA,EAC9C;AAAA,EACA,QAAQ,UAAU;AACd,WAAO,KAAK,OAAO,UAAU,KAAK,KAAK,GAAG;AAAA,EAC9C;AAAA,EACA,WAAW,UAAU;AACjB,WAAO,KAAK,OAAO,UAAU,KAAK,KAAK,GAAG;AAAA,EAC9C;AAAA,EACA,OAAO,UAAU,MAAM;AACnB,SAAK,KAAK,QAAQ;AAClB,WAAO,MAAM;AACT,UAAI,IAAI,KAAK,QAAQ,QAAQ;AAC7B,UAAI,KAAK;AACL,aAAK,OAAO,GAAG,CAAC;AAAA,IACxB;AAAA,EACJ;AAAA;AAAA,EAEA,WAAW;AACP,aAAS,KAAK,OAAO,OAAO,KAAK,IAAI;AACjC,QAAE,OAAO,GAAG,EAAE,MAAM;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,WAAO,KAAK,YAAY;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW,SAAS,OAAO,UAAU;AACjC,YAAQ,UAAU,IAAI,MAAM,QAAQ,IAAI,MAAM,WAAW,IAAI,MAAM,GAAG,6BAA6B;AACnG,QAAI;AACA,WAAK,cAAc,OAAO;AAC9B,QAAI;AACA,WAAK,YAAY,KAAK;AAC1B,QAAI;AACA,WAAK,eAAe;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,SAAS;AACnB,WAAO,CAAC,KAAK,QAAQ,kBAAkB;AACvC,SAAK,OAAO,EAAE,OAAO,SAAS,MAAM,MAAM,CAAC;AAC3C,SAAK,KAAK,IAAI,QAAQ,OAAK,EAAE,OAAO,CAAC;AACrC,SAAK,KAAK,IAAI,QAAQ,OAAK,EAAE,SAAS,QAAW,KAAK,CAAC;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,OAAO;AACf,WAAO,CAAC,KAAK,QAAQ,kBAAkB;AACvC,SAAK,UAAU;AACf,SAAK,OAAO,KAAK;AACjB,SAAK,KAAK,IAAI,QAAQ,OAAK,EAAE,KAAK,CAAC;AACnC,SAAK,KAAK,IAAI,QAAQ,OAAK,EAAE,QAAW,OAAO,KAAK,CAAC;AACrD,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB;AACb,WAAO,CAAC,KAAK,QAAQ,kBAAkB;AACvC,SAAK,UAAU;AACf,SAAK,OAAO,EAAE,OAAO,MAAM,MAAM,KAAK,CAAC;AACvC,SAAK,KAAK,IAAI,QAAQ,OAAK,EAAE,CAAC;AAC9B,SAAK,KAAK,IAAI,QAAQ,OAAK,EAAE,QAAW,QAAW,IAAI,CAAC;AACxD,SAAK,SAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,CAAC,OAAO,aAAa,IAAI;AAKrB,QAAI,KAAK,YAAY;AACjB,WAAK,OAAO,EAAE,OAAO,MAAM,MAAM,KAAK,CAAC;AAAA,aAClC,KAAK,YAAY;AACtB,WAAK,OAAO,KAAK,OAAO;AAE5B,WAAO;AAAA,MACH,MAAM,6BAAM;AACR,YAAI,QAAQ,KAAK;AACjB,eAAO,OAAO,WAAW;AAGzB,eAAO,CAAC,MAAM,GAAG,0BAA0B;AAG3C,YAAI,QAAQ,MAAM,EAAE,MAAM;AAC1B,YAAI;AACA,iBAAQ,WAAW,QAAS,QAAQ,QAAQ,KAAK,IAAI,QAAQ,OAAO,KAAK;AAG7E,cAAM,IAAI,IAAI,SAAS;AACvB,eAAO,MAAM,EAAE;AAAA,MACnB,GAfM;AAAA,IAgBV;AAAA,EACJ;AAAA;AAAA;AAAA,EAGA,OAAO,QAAQ;AACX,QAAI,QAAQ,KAAK;AAEjB,QAAI,MAAM,GAAG;AAET,YAAM,IAAI,MAAM;AAChB,aAAO,EAAE,SAAS,cAAc,SAAS,0BAA0B;AAEnE,MAAC,WAAW,SAAU,EAAE,QAAQ,MAAM,IAAI,EAAE,OAAO,MAAM;AAEzD,aAAO,MAAM;AAAA,IACjB,OACK;AAGD,YAAM,EAAE,KAAK,MAAM;AAAA,IACvB;AAAA,EACJ;AACJ;;;ACrKA,IAAI,YAAwC,SAAU,SAAS,YAAY,GAAG,WAAW;AACrF,WAAS,MAAM,OAAO;AAAE,WAAO,iBAAiB,IAAI,QAAQ,IAAI,EAAE,SAAU,SAAS;AAAE,cAAQ,KAAK;AAAA,IAAG,CAAC;AAAA,EAAG;AAAlG;AACT,SAAO,KAAK,MAAM,IAAI,UAAU,SAAU,SAAS,QAAQ;AACvD,aAAS,UAAU,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,KAAK,KAAK,CAAC;AAAA,MAAG,SAAS,GAAG;AAAE,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAAjF;AACT,aAAS,SAAS,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,OAAO,EAAE,KAAK,CAAC;AAAA,MAAG,SAAS,GAAG;AAAE,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAApF;AACT,aAAS,KAAK,QAAQ;AAAE,aAAO,OAAO,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA,IAAG;AAApG;AACT,UAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA,EACxE,CAAC;AACL;AAKO,IAAM,YAAN,MAAgB;AAAA,EAbvB,OAauB;AAAA;AAAA;AAAA,EACnB,YAAY,QAAQ,gBAAgB,SAAS,SAAS,UAAU,QAAQ,UAAU;AAC9E,SAAK,SAAS;AACd,SAAK,iBAAiB;AACtB,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,WAAW;AAChB,SAAK,SAAS;AACd,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,aAAa,YAAY;AAC1B,WAAO,KAAK,gBAAgB,EAAE,KAAK,WAAS,cAAc,QAAQ,QAAQ,YAAY,KAAK,CAAC,IAAI,OAAO,YAAU,aAAa,QAAQ,QAAQ,WAAW,MAAM,CAAC,IAAI,QAAQ,OAAO,MAAM,CAAC;AAAA,EAC9L;AAAA,EACA,kBAAkB;AACd,WAAO,UAAU,MAAM,QAAQ,QAAQ,aAAa;AAChD,UAAI,CAAC,SAAS,UAAU,QAAQ,QAAQ,IAAI,MAAM,QAAQ,IAAI,CAAC,KAAK,SAAS,KAAK,UAAU,KAAK,QAAQ,KAAK,QAAQ,CAAC;AACvH,aAAO;AAAA,QACH,QAAQ,KAAK;AAAA,QACb,gBAAgB,KAAK;AAAA,QACrB,SAAS,KAAK;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;;;AC5CA,IAAIC,aAAwC,SAAU,SAAS,YAAY,GAAG,WAAW;AACrF,WAAS,MAAM,OAAO;AAAE,WAAO,iBAAiB,IAAI,QAAQ,IAAI,EAAE,SAAU,SAAS;AAAE,cAAQ,KAAK;AAAA,IAAG,CAAC;AAAA,EAAG;AAAlG;AACT,SAAO,KAAK,MAAM,IAAI,UAAU,SAAU,SAAS,QAAQ;AACvD,aAAS,UAAU,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,KAAK,KAAK,CAAC;AAAA,MAAG,SAAS,GAAG;AAAE,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAAjF;AACT,aAAS,SAAS,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,OAAO,EAAE,KAAK,CAAC;AAAA,MAAG,SAAS,GAAG;AAAE,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAApF;AACT,aAAS,KAAK,QAAQ;AAAE,aAAO,OAAO,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA,IAAG;AAApG;AACT,UAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA,EACxE,CAAC;AACL;AAKO,IAAM,sBAAN,MAA0B;AAAA,EAbjC,OAaiC;AAAA;AAAA;AAAA,EAC7B,YAAY,QAAQ,gBAAgB,SAAS,SAAS,UAAU,QAAQ,UAAU;AAC9E,SAAK,SAAS;AACd,SAAK,iBAAiB;AACtB,SAAK,UAAU;AACf,SAAK,UAAU;AACf,SAAK,YAAY;AACjB,SAAK,SAAS;AACd,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,aAAa,YAAY;AAC1B,WAAO,KAAK,gBAAgB,EAAE,KAAK,WAAS,cAAc,QAAQ,QAAQ,YAAY,KAAK,CAAC,IAAI,OAAO,YAAU,aAAa,QAAQ,QAAQ,WAAW,MAAM,CAAC,IAAI,QAAQ,OAAO,MAAM,CAAC;AAAA,EAC9L;AAAA,EACA,kBAAkB;AACd,WAAOA,WAAU,MAAM,QAAQ,QAAQ,aAAa;AAChD,UAAI,CAAC,SAAS,QAAQ,QAAQ,IAAI,MAAM,QAAQ,IAAI,CAAC,KAAK,SAAS,KAAK,QAAQ,KAAK,QAAQ,CAAC;AAC9F,aAAO;AAAA,QACH,QAAQ,KAAK;AAAA,QACb,gBAAgB,KAAK;AAAA,QACrB,SAAS,KAAK;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;;;ACvCO,SAAS,eAAe,MAAM,WAAW,QAAQ,SAAS,OAAO;AACpE,MAAI,IAAI,IAAI,IAAI;AAChB,MAAI,QAAQ,SAAS;AACjB,QAAI,OAAO,wBAAC,KAAK,KAAK,QAAQ,UAAU,MAAM,KAAK,KAAK,GAAG,GAAhD;AACX,eAAW,UAAU,KAAK,QAAQ,kBAAkB,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,OAAO,OAAK,EAAE,cAAc,EAAE,QAAQ,GAAG;AAC1H,YAAM,OAAO;AACb,aAAO,wBAAC,KAAK,KAAK,QAAQ,KAAK,eAAe,MAAM,KAAK,KAAK,GAAG,GAA1D;AAAA,IACX;AACA,WAAO,KAAK,QAAQ,OAAO,OAAO;AAAA,EACtC;AACA,MAAI,QAAQ,mBAAmB;AAC3B,QAAI,OAAO,wBAAC,KAAK,KAAK,QAAQ,UAAU,gBAAgB,KAAK,KAAK,GAAG,GAA1D;AACX,eAAW,UAAU,KAAK,QAAQ,kBAAkB,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,OAAO,OAAK,EAAE,wBAAwB,EAAE,QAAQ,GAAG;AACpI,YAAM,OAAO;AACb,aAAO,wBAAC,KAAK,KAAK,QAAQ,KAAK,yBAAyB,MAAM,KAAK,KAAK,GAAG,GAApE;AAAA,IACX;AACA,WAAO,KAAK,QAAQ,OAAO,OAAO;AAAA,EACtC;AACA,MAAI,QAAQ,mBAAmB;AAC3B,QAAI,OAAO,wBAAC,KAAK,QAAQ,UAAU,gBAAgB,KAAK,GAAG,GAAhD;AACX,eAAW,UAAU,KAAK,QAAQ,kBAAkB,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,OAAO,OAAK,EAAE,wBAAwB,EAAE,QAAQ,GAAG;AACpI,YAAM,OAAO;AACb,aAAO,wBAAC,KAAK,QAAQ,KAAK,yBAAyB,MAAM,KAAK,GAAG,GAA1D;AAAA,IACX;AACA,WAAO,KAAK,QAAQ,OAAO;AAAA,EAC/B;AACA,MAAI,QAAQ,UAAU;AAClB,QAAI,OAAO,wBAAC,KAAK,QAAQ,UAAU,OAAO,KAAK,GAAG,GAAvC;AACX,eAAW,UAAU,KAAK,QAAQ,kBAAkB,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,OAAO,OAAK,EAAE,eAAe,EAAE,QAAQ,GAAG;AAC3H,YAAM,OAAO;AACb,aAAO,wBAAC,KAAK,QAAQ,KAAK,gBAAgB,MAAM,KAAK,GAAG,GAAjD;AAAA,IACX;AACA,WAAO,KAAK,QAAQ,OAAO;AAAA,EAC/B;AACA,cAAY,IAAI;AACpB;AAnCgB;;;ACqFhB,IAAY,+CAAA,yBAAA,gDAAL;AAIN,iDAAA,+CAAA,SAAA,IAAA,CAAA,IAAA;AAIA,iDAAA,+CAAA,UAAA,IAAA,CAAA,IAAA;;;AA0DD,IAAM,iCAAN,cAA6C,YAAuC;SAAA;;;EACnF,cAAc;AACb,UAAM,wCAAwC;MAC7C;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,GAAA,6BAAS,aAAT;;MAC/C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAC7C;;;AAMH,IAAa,4BAA4B,IAAI,+BAAA;AAE7C,IAAM,kCAAN,cAA8C,YAAwC;SAAA;;;EACrF,cAAc;AACb,UAAM,yCAAyC,CAC9C;MAAE,IAAI;MAAG,MAAM;MAAe,MAAM;MAAW,GAAA,6BAAS,qBAAT;KAA8B,CAC7E;;;AAMH,IAAa,6BAA6B,IAAI,gCAAA;AAE9C,IAAM,kCAAN,cAA8C,YAAwC;SAAA;;;EACrF,cAAc;AACb,UAAM,yCAAyC;MAC9C;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,GAAA,6BAAS,aAAT;;MAC/C;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAC7C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,2DACA,4CAAA,GAFD;;MAKD;QAAE,IAAI;QAAG,MAAM;QAAoB,MAAM;QAAU,KAAK;QAAM,GAAG;;KACjE;;;AAMH,IAAa,6BAA6B,IAAI,gCAAA;AAE9C,IAAM,mCAAN,cAA+C,YAAyC;SAAA;;;EACvF,cAAc;AACb,UAAM,0CAA0C;MAC/C;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAW,GAAA,6BAAS,qBAAT;;MAC/C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,8BAA8B,IAAI,iCAAA;AAE/C,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B,CACjC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,eAAT;OAED;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,eAAT;KACA,CACD;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAEjC,IAAM,qBAAN,cAAiC,YAA2B;SAAA;;;EAC3D,cAAc;AACb,UAAM,4BAA4B;MACjC;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAASC,WAAT;;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACzC;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAW,GAAA,6BAAS,OAAT;;KACxC;;;AAMH,IAAa,gBAAgB,IAAI,mBAAA;AAIjC,IAAa,8BAA8B,IAAI,YAC9C,0CACA,CACC;EACC,MAAM;EACN,SAAS,CAAA;EACT,GAAG;EACH,GAAG;GAEJ;EACC,MAAM;EACN,SAAS,CAAA;EACT,GAAG;EACH,GAAG;CACH,CACD;;;ACrPF,IAAa,iBAAb,cAAoC,WAAW;SAAA;;;EAC9C;EACA,YAAY,EAAE,QAAQ,GAAG,QAAA,GAAkC;AAC1D,UAAM,OAAA;AACN,SAAA,UAAe;;EAGhB,MAAM,WACL,SACsD;AACtD,UAAM,UAAU,MAAM,QAAQ,WAAW,EAAA;AACzC,UAAM,UAAiE,CAAA;AAEvE,UAAM,QAAQ;MAAC;MAAS;MAAe;MAAU;MAAW;;AAC5D,QAAI,QAAQ,SAAS,QACpB,OAAM,KAAK,UAAA;AAEZ,QAAI,QAAQ,SAAS,oBACpB,OAAM,KAAK,sBAAA;AAEZ,QAAI,QAAQ,SAAS,UACpB,OAAM,KAAK,KAAA;AAEZ,QAAI,QAAQ,SAAS,KACpB,OAAM,KAAK,MAAA;AAEZ,QAAI,QAAQ,SAAS,QACpB,OAAM,KAAK,SAAA;AAGZ,eAAW,SAAS,SAAS;AAC5B,YAAM,WAAW,MAAM,KAAA,QAAa,cAAc,gBAAgB;QACjE,UAAU,MAAM,IAAA,CAAK,QAAQ,EAAE,UAAU,GAAA,EAAI;QAC7C,UAAU,EACT,MAAA;OAED;AAED,cAAQ,KACP,GAAG,SAAS,SAAS,QAAQ,IAAA,CAAKC,YAAmD;AACpF,YAAIA,QAAO,OAAO,cAAc,QAE/B,QAAO,IAAI,MAAMA,QAAO,OAAO,MAAM,OAAA;AAGtC,YAAIA,QAAO,OAAO,cAAc,SAC/B,QAAO,oBAAI,MAAM,wBAAA;AAGlB,cAAM,aAAaA,QAAO,OAAO,OAAO,UAAU,SAAS;AAC3D,cAAM,YAAYA,QAAO,OAAO,OAAO,KAAK,SAAS;AAGrD,cAAM,aAAaA,QAAO,OAAO,OAAO;AACxC,cAAM,OACL,cAAc,WAAW,SAAS,IAAA,IAC/B,mBAAmB,UAAA,IAClB,cAAc;AAEnB,cAAM,cAAc,QAAQ,SAAS,OAClCA,QAAO,OAAO,OAAO,OACnB,MAAM,OAAOA,QAAO,OAAO,OAAO,IAAA,IACnC,OACD;AAEH,cAAM,cAAc,gBACnB,QAAQ,SAAS,SACjBA,QAAO,OAAO,OAAO,OAAA;AAGtB,eAAO;UACN,UAAUA,QAAO,OAAO,OAAO;UAC/B,SAASA,QAAO,OAAO,OAAO,SAAS,SAAA;UACvC,QAAQA,QAAO,OAAO,OAAO;UAC7B,SAAS;UACT,OAAO,SAASA,QAAO,OAAO,OAAO,KAAA;UACrC;UACA,qBAAsBA,QAAO,OAAO,OAAO,uBAC1C;UACU;UACX,MAAM;UACN,SAAS;;QAET;;AAIJ,WAAO,EACN,SAAS,QAAA;;EAGX,MAAM,iBACL,SAC4D;AAC5D,UAAM,QAAQ;MAAC;MAAS;MAAe;MAAU;MAAW;;AAC5D,QAAI,QAAQ,SAAS,QACpB,OAAM,KAAK,UAAA;AAEZ,QAAI,QAAQ,SAAS,oBACpB,OAAM,KAAK,sBAAA;AAEZ,QAAI,QAAQ,SAAS,UACpB,OAAM,KAAK,KAAA;AAEZ,QAAI,QAAQ,SAAS,KACpB,OAAM,KAAK,MAAA;AAEZ,QAAI,QAAQ,SAAS,QACpB,OAAM,KAAK,SAAA;AAGZ,UAAM,WAAW,MAAM,KAAA,QAAa,aAAa,iBAAiB;MACjE,OAAO,QAAQ;MACf,YAAY,QAAQ,QAChB,MAAM,KAAK,IAAI,YAAY,EAAE,MAAM,QAAQ,KAAA,CAAM,GAAG,OACrD;MACH,WAAW,QAAQ,SAAS,WAAW,QAAQ,MAAA,IAAU;MACzD,UAAU,QAAQ;MAClB,UAAU,EACT,MAAA;KAED;AAyBD,WAAO;MACN,SAxBe,SAAS,SAAS,QAAQ,IAAA,CACxCA,aAA4C;QAC5C,UAAUA,QAAO;QACjB,SAASA,QAAO,SAAS,SAAA;QACzB,QAAQA,QAAO;QACf,SAASA,QAAO,UAAU;QAC1B,OAAO,SAASA,QAAO,KAAA;QACvB,MAAMA,QAAO;QACb,qBAAsBA,QAAO,uBAC5B;QACD,WAAWA,QAAO,KAAK;QACvB,MAAO,QAAQ,SAAS,OACrBA,QAAO,OACL,MAAM,OAAOA,QAAO,IAAA,IACrB,OACD;QACH,SAAS,gBACR,QAAQ,SAAS,SACjBA,QAAO,OAAA;QAER;MAKD,QAAQ,SAAS,SAAS,gBAAgB,SAAS,SAAS,SAAS,aAAA,IAAiB;MACtF,aAAa,SAAS,SAAS,kBAAkB;;;EAGnD,MAAM,UACL,SAC4C;AAC5C,UAAM,QAAQ;MAAC;MAAS;MAAe;MAAU;MAAW;MAAa;;AACzE,UAAM,WAAW,QAAQ,YAAY;AAErC,UAAM,WAAW,MAAM,KAAA,QAAa,aAAa,iBAAiB;MACjE,OAAO,QAAQ;MACf,YAAY,oBAAoB,MAAM,KAAK,IAAI,YAAY,EAAE,MAAM,SAAA,CAAU,GAAG,IAAA;MAChF,WAAW,QAAQ,SAAS,WAAW,QAAQ,MAAA,IAAU;MACzD,UAAU,EACT,MAAA;KAED;AAED,WAAO;MACN,SAAS,SAAS,SAAS,QAAQ,IAAA,CACjCA,aAAiC;QACjC,UAAUA,QAAO;QACjB,SAASA,QAAO,SAAS,SAAA;QACzB,QAAQA,QAAO;QACf,OAAO,SAASA,QAAO,KAAA;QACvB,MAAMA,QAAO;QACb,SAASA,QAAO,SAAS,SAAA;QACzB;MAEF,QAAQ,SAAS,SAAS,gBAAgB,SAAS,SAAS,SAAS,aAAA,IAAiB;MACtF,aAAa,SAAS,SAAS,kBAAkB;;;EAInD,MAAM,WACL,SAC6C;AAC7C,UAAM,WAAW,QAAQ,YAAY;AACrC,UAAM,SAAS,MAAM,KAAA,QAAa,aAAa,WAAW;MACzD,OAAO,QAAQ;MACf,WAAW,MAAM,KAAK,IAAI,YAAY,EAAE,MAAM,SAAA,CAAU,GAAG;KAC3D;AAED,WAAO,EACN,SAAS;MACR,SAAS,OAAO,SAAS,SAAS,SAAS,SAAA,KAAc;MACzD,UAAU,OAAO,SAAS,SAAS,YAAY;MAC/C,aAAa,OAAO,SAAS,SAAS,aAAa,SAAA,KAAc;MACjE,gBAAgB,OAAO,SAAS,SAAS,gBAAgB,SAAA,KAAc;MACvE;;EAIH,MAAM,gBACL,SACkD;AAClD,UAAM,YAAY,MAAM,KAAK,IAAI,YAAY,EAAE,MAAM,QAAQ,SAAA,CAAU,GAAG;AAE1E,QAAI;AACJ,QAAI;AACH,OAAC,EAAE,SAAA,IAAa,MAAM,KAAA,QAAa,aAAa,YAAY,EAC3D,SAAA,CACA;YACM;AACP,aAAO,EAAE,cAAc,KAAA;;AAGxB,QAAI,CAAC,SAAS,SACb,QAAO,EAAE,cAAc,KAAA;AAGxB,WAAO,EACN,cAAc;MACb,IAAI,SAAS,SAAS,MAAM;MAC5B,UAAU,SAAS,SAAS,YAAY;MACxC,MAAM,SAAS,SAAS,QAAQ;MAChC,QAAQ,SAAS,SAAS,UAAU;MACpC,aAAa,SAAS,SAAS,eAAe;MAC9C,SAAS,SAAS,SAAS,WAAW;MACtC;;EAIH,MAAM,aACL,SAC+C;AAC/C,UAAM,SAAS,MAAM,KAAA,QAAa,aAAa,aAAa;MAC3D,OAAO,QAAQ;MACf,WAAW,QAAQ,SAAS,WAAW,QAAQ,MAAA,IAAU;MACzD,UAAU,QAAQ;KAClB;AAED,WAAO;MACN,aAAa,CAAC,CAAC,OAAO,SAAS;MAC/B,QAAQ,OAAO,SAAS,gBAAgB,SAAS,OAAO,SAAS,aAAA,IAAiB;MAClF,UAAU,OAAO,SAAS,SAAS,IAAA,CAAK,aAAa;QACpD,SAAS,QAAQ,SAAS,SAAA,KAAc;QACxC,UAAU,QAAQ;QAClB,aAAa,QAAQ,aAAa,SAAA,KAAc;QAChD,gBAAgB,QAAQ,gBAAgB,SAAA,KAAc;QACtD;;;EAGH,MAAM,eACL,SACqD;AACrD,UAAM,QAAQ;MAAC;MAAU;MAAsB;MAAc;;AAC7D,QAAI,QAAQ,SAAS,YACpB,OAAM,KACL,sBACA,2BACA,0BACA,kBAAA;AAGF,QAAI,QAAQ,SAAS,IACpB,OAAM,KAAK,iBAAA;AAEZ,QAAI,QAAQ,SAAS,eACpB,OAAM,KAAK,iBAAA;AAEZ,QAAI,QAAQ,SAAS,QACpB,OAAM,KAAK,SAAA;AAEZ,QAAI,QAAQ,SAAS,OACpB,OAAM,KAAK,QAAA;AAEZ,QAAI,QAAQ,SAAS,aAAa;AACjC,YAAM,KAAK,qCAAA;AACX,YAAM,KAAK,mCAAA;;AAGZ,UAAM,EAAE,SAAA,IAAa,MAAM,KAAA,QAAa,cAAc,eAAe;MACpE,QAAQ,QAAQ;MAChB,UAAU,EACT,MAAA;KAED;AAED,QAAI,CAAC,SAAS,YACb,OAAM,IAAI,MAAM,eAAe,QAAQ,MAAA,YAAO;AAG/C,WAAO,iBAAiB,SAAS,aAAa,QAAQ,OAAA;;EAEvD,MAAM,mBACL,SACqD;AACrD,UAAM,QAAQ;MAAC;MAAU;MAAsB;MAAc;;AAC7D,QAAI,QAAQ,SAAS,YACpB,OAAM,KACL,sBACA,2BACA,0BACA,kBAAA;AAGF,QAAI,QAAQ,SAAS,IACpB,OAAM,KAAK,iBAAA;AAEZ,QAAI,QAAQ,SAAS,eACpB,OAAM,KAAK,iBAAA;AAEZ,QAAI,QAAQ,SAAS,QACpB,OAAM,KAAK,SAAA;AAEZ,QAAI,QAAQ,SAAS,OACpB,OAAM,KAAK,QAAA;AAEZ,QAAI,QAAQ,SAAS,aAAa;AACjC,YAAM,KAAK,qCAAA;AACX,YAAM,KAAK,mCAAA;;AAGZ,UAAM,EAAE,SAAA,IAAa,MAAM,KAAA,QAAa,4BAA4B,mBAAmB;MACtF,aAAa,EACZ,KAAK,EACJ,OAAO,QAAQ,YAAA,EACf;MAEF,YAAY,QAAQ,WAAW,IAAA,CAAK,eAAe;QAClD,KAAK,EACJ,OAAO,WAAW,SAAA,EAAU;QAE7B,WAAW,EACV,WAAW,OAAA;QAEZ;MACD,UAAU,EACT,MAAA;KAED;AAED,WAAO,iBAAiB,SAAS,aAAc,QAAQ,OAAA;;EAExD,MAAM,oBACL,SAC6D;AAC7D,UAAM,QAAQ;MACb;MACA;MACA;MACA;;AAED,QAAI,QAAQ,SAAS,YACpB,OAAM,KACL,kCACA,uCACA,sCACA,8BAAA;AAGF,QAAI,QAAQ,SAAS,IACpB,OAAM,KAAK,6BAAA;AAEZ,QAAI,QAAQ,SAAS,eACpB,OAAM,KAAK,6BAAA;AAEZ,QAAI,QAAQ,SAAS,QACpB,OAAM,KAAK,qBAAA;AAEZ,QAAI,QAAQ,SAAS,OACpB,OAAM,KAAK,oBAAA;AAEZ,QAAI,QAAQ,SAAS,aAAa;AAEjC,YAAM,KAAK,iDAAA;AACX,YAAM,KAAK,+CAAA;;AAEZ,QAAI,QAAQ,SAAS,eACpB,OAAM,KAAK,iBAAA;AAGZ,QAAI,EAAE,QAAQ,uBAAuB,YACpC,OAAM,QAAQ,YAAY,wBAAwB,EAAE,QAAQ,KAAA,CAAM;AAGnE,UAAM,EAAE,SAAA,IAAa,MAAM,KAAA,QAAa,4BAA4B,oBAAoB;MACvF,aACC,QAAQ,uBAAuB,aAC5B,EACA,KAAK,EACJ,OAAO,QAAQ,YAAA,EACf,IAED,6BAA6B,QAAQ,WAAA;MACzC,UAAU,EACT,MAAA;MAED,gBAAgB;MAChB,QACC,QAAQ,kBAAkB,QACvB,6CAA6C,WAC7C,6CAA6C;KACjD;AAED,UAAM,oBAAoB,iBAAiB,SAAS,aAAc,QAAQ,OAAA;AAG1E,UAAM,iBACL,QAAQ,SAAS,kBAAkB,SAAS,iBACzC,SAAS,eAAe,IAAA,CAAK,YAAY;MACzC,eAAe,OAAO,gBAAgB,CAAA,GAAI,IAAA,CAAK,QAAQ,EACtD,KAAK,GAAG,OAAO,SAAS,KAAA,EACxB;MACD,oBAAoB,OAAO,gBAAgB,CAAA,GAAI,IAAA,CAAK,QAAQ,EAC3D,KAAK,GAAG,OAAO,SAAS,KAAA,EACxB;MACD,IACA;AAEJ,QAAI,kBAAkB,UAAU,cAC/B,QAAO;MACN,OAAO;MACP,aAAa,kBAAkB;MAE9B;;QAGF,QAAO;MACN,OAAO;MACP,mBAAmB,kBAAkB;MAEpC;;;EAIJ,MAAM,uBAA6E;AAOlF,WAAO,EACN,oBAPgB,MAAM,KAAA,QAAa,cAAc,SAAS,EAC1D,UAAU,EACT,OAAO,CAAC,qBAAA,EAAsB,EAC9B,CACD,GAG4B,SAAS,OAAO,mBAAmB,SAAA,KAAc,GAAA;;EAI/E,MAAM,oBAAuE;AAK5E,UAAM,kBAJW,MAAM,KAAA,QAAa,cAAc,SAAS,EAC1D,UAAU,EAAE,OAAO,CAAC,iBAAA,EAAkB,EAAE,CACxC,GAE+B,SAAS,OAAO;AAChD,QAAI,CAAC,eACJ,OAAM,IAAI,MAAM,uCAAA;AAGjB,UAAM,eAAwC,EAAE,GAAG,eAAe,aAAA;AAClE,UAAM,aAA4C,CAAA;AAClD,QAAI,eAAe,WAClB,YAAW,CAAC,KAAK,KAAA,KAAU,OAAO,QAAQ,eAAe,UAAA,EACxD,YAAW,GAAA,IAAO,SAAS;AAI7B,WAAO,EACN,gBAAgB;MACf,iBAAiB,eAAe,iBAAiB,SAAA,KAAe;MAChE;MACA;MACA;;EAIH,MAAM,wBAA+E;AAqBpF,UAAM,SApBW,MAAM,KAAA,QAAa,cAAc,SAAS,EAC1D,UAAU,EACT,OAAO;MACN;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,EACD,CACD,GAEsB,SAAS;AAChC,UAAM,cAAc,OAAO;AAC3B,QAAI,CAAC,YACJ,OAAM,IAAI,MAAM,oCAAA;AAGjB,UAAM,UAAU,OAAO,OAAO,UAC3B,OAAO,MAAM,MAAM,OAAA,IAAW,MAAO,KAAK,OAAO,MAAM,MAAM,SAAS,KAAK,GAAA,IAC3E,YAAY,wBACX,OAAO,YAAY,qBAAA,IAClB;AAEL,WAAO,EACN,aAAa;MACZ,oBAAoB,YAAY,SAAS,SAAA,KAAe;MACxD,OAAO,YAAY,OAAO,SAAA,KAAe;MACzC,iBAAiB,YAAY,iBAAiB,SAAA,KAAe;MAC7D,mBAAmB,YAAY,mBAAmB,SAAA,KAAe;MACjE,uBAAuB,QAAQ,SAAA;MAC/B,UAAU,YAAY,YAAY;MAClC,wBAAwB,YAAY,wBAAwB,SAAA,KAAe;MAC3E,4BACC,YAAY,4BAA4B,SAAA,KAAe;MACxD,wBAAwB,YAAY,wBAAwB,SAAA,KAAe;MAC3E,iCACC,YAAY,iCAAiC,SAAA,KAAe;MAC7D,YAAY;QACX,iBAAiB,YAAY,YAAY,iBAAiB,SAAA,KAAe;QACzE,wBACC,YAAY,YAAY,wBAAwB,SAAA,KAAe;QAChE,mBACC,YAAY,YAAY,mBAAmB,SAAA,KAAe;QAC3D,0BACC,YAAY,YAAY,0BAA0B,SAAA,KAAe;QAClE,4BACC,YAAY,YAAY,4BAA4B,SAAA,KAAe;QACpE,8BACC,YAAY,YAAY,8BAA8B,SAAA,KAAe;;MAEvE,aAAa;QACZ,2BACC,YAAY,aAAa,2BAA2B,SAAA,KAAe;QACpE,sBACC,YAAY,aAAa,sBAAsB,SAAA,KAAe;;MAEhE,cAAc;QACb,SAAS,YAAY,cAAc,SAAS,SAAA,KAAe;QAC3D,qBACC,YAAY,cAAc,qBAAqB,SAAA,KAAe;QAC/D,2BACC,YAAY,cAAc,2BAA2B,SAAA,KAAe;QACrE,0BACC,YAAY,cAAc,0BAA0B,SAAA,KAAe;QACpE,0BACC,YAAY,cAAc,4BAA6B;;MAEzD;;EAIH,MAAM,kBACL,SACoD;AACpD,WAAO,KAAA,QAAa,kBAAkB,OAAA;;EAGvC,MAAM,uBACL,SACgD;AAChD,UAAM,eAAe,WAAW,QAAQ,KAAA;AAIxC,UAAM,eACL,QAAQ,gBAAgB,oBACrBC,OAAI,WAAA,EAAa,UAAU,YAAA,EAAc,QAAA,IACzC;AAEJ,UAAM,EAAE,SAAA,IAAa,MAAM,KAAA,QAAa,6BAA6B,gBAAgB;MACpF,SAAS;QACR,MAAM,QAAQ;QACd,OAAO;;MAER,WAAW;QACV,KAAK,EACJ,OAAO,WAAW,QAAQ,SAAA,EAAU;QAErC,WAAW,EACV,WAAW,OAAA;;MAGb,SAAS,QAAQ;MACjB,MAAM,CAAA;KACN;AAED,WAAO;MACN,SAAS,SAAS,WAAW;MAC7B,QAAQ,SAAS,SAAS,CAAC,SAAS,MAAA,IAAU,CAAA;;;EAIhD,MAAM,uBACL,SACyD;AAOzD,WAAO,EACN,MAAM,EACL,OANA,MAAM,KAAA,QAAa,YAAY,kBAAkB,EAChD,SAAS,QAAQ,QAAA,CACjB,GACA,SAAS,QAAQ,QAAQ,KAAA,EAI1B;;EAIH,MAAM,gBACL,SACkD;AAClD,UAAM,qBAAqB,MAAM,KAAK,IAAI,eAAe,EAAE,SAAS,QAAQ,UAAA,CAAW,GACrF;AACF,UAAM,EAAE,SAAA,IAAa,MAAM,KAAA,QAAa,mBAAmB,YAAY;MACtE,WAAW;MACX,YAAY,QAAQ;MACpB,MAAM,QAAQ;KACd;AAED,QAAI,aAA0D;AAE9D,YAAQ,SAAS,UAAU,YAA3B;MACC,KAAK,8BAA8B;AAClC,qBAAa;AACb;MACD,KAAK,8BAA8B;AAClC,qBAAa;AACb;MACD,KAAK,8BAA8B;AAClC,qBAAa;AACb;;AAGF,WAAO,EACN,UAAU;MACT,WAAW,oBAAoB,iBAAA;MAC/B,YAAY,QAAQ;MACpB,MAAM,SAAS,UAAU;MACzB;MACA,SAAS,SAAS,UAAU,WAAW;MACvC,gBACC,SAAS,UAAU,gBAAgB,IAAA,CAAK,EAAE,YAAA,OAAmB;QAC5D,WAAW;QACX,aACC,YAAY,IAAA,CAAK,eAAe;AAC/B,kBAAQ,YAAR;YACC,KAAK,QAAQ;AACZ,qBAAO;YACR,KAAK,QAAQ;AACZ,qBAAO;YACR,KAAK,QAAQ;AACZ,qBAAO;YACR,KAAK,QAAQ;AACZ,qBAAO;YACR;AACC,qBAAO;;cAEJ,CAAA;QACP,KAAM,CAAA;MACR,YACC,SAAS,UAAU,YAAY,IAAA,CAAK,UAAU,2BAA2B,KAAA,CAAM,KAAK,CAAA;MACrF,SAAS,SAAS,UAAU,SAAS,IAAA,CAAK,QAAQ,2BAA2B,GAAA,CAAI,KAAK,CAAA;MACtF;;EAIH,MAAM,mBACL,UACqD;AACrD,WAAO,KAAK,MAAM,KAAK,CAAC,iBAAA,GAAoB,YAAY;AACvD,YAAM,EAAE,SAAA,IAAa,MAAM,KAAA,QAAa,cAAc,eAAe,CAAA,CAAE;AACvE,UAAI,CAAC,SAAS,QACb,OAAM,IAAI,MAAM,4CAAA;AAEjB,aAAO,EACN,iBAAiB,SAAS,QAAA;;;EAK7B,2BAA2B;AAC1B,UAAM,SAAS,KAAA;AACf,WAAO,sCAAe,uBACrB,iBACA,SACA,MACC;AACD,YAAM,WAAW,gBAAgB,SAAA;AAGjC,UAAI,CAAC,SAAS,OACb,UAAS,SAAS;AAEnB,YAAM,kBAAkB,iCAAiC,QAAA;AAEzD,UAAI;AACJ,UAAI;AAgBH,oBAfe,MAAM,OAAO,4BAA4B,oBAAoB;UAC3E,aAAa;UACb,gBACC,CAAC,QAAQ,wBACR,SAAS,QAAQ,UAAU,QAAQ,SAAS,QAAQ,WAAW;UACjE,UAAU,EACT,OAAO;YACN;YACA;YACA;YACA;YACA;YACA;SAEF,GACiB;eACV,OAAO;AAEf,YAAI,iBAAiB,SAAS,MAAM,QACnC,OAAM,IAAI,gBAAgB,mBAAmB,MAAM,OAAA,GAAU,EAAE,OAAO,MAAA,CAAO;AAE9E,cAAM;;AAGP,UACC,CAAC,QAAQ,uBACT,SAAS,aAAa,SAAS,UAC/B,CAAC,SAAS,YAAY,QAAQ,OAAO,SACpC;AACD,cAAM,iBAAiB,SAAS,YAAY,QAAQ,OAAO,QACxD,wBAAwB,SAAS,YAAY,QAAQ,OAAO,KAAA,IAC5D;AAEH,cAAM,IAAI,gBAAgB,kCADL,gBAAgB,WAAW,oBAAA,IAC4B,EAC3E,eAAA,CACA;;AAGF,UAAI,CAAC,SAAS,aAAa,YAC1B,OAAM,IAAI,MAAM,8DAAA;AAGjB,mCAA6B,iBAAiB,SAAS,YAAY,aAAa,OAAA;AAEhF,aAAO,MAAM,KAAA;OA3DP;;;AAgET,SAAS,gBACR,SACA,SAC4C;AAC5C,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,YAAY,OAAW,QAAO;AAClC,SAAO;IACN,QACC,QAAQ,WAAW,SACf,MAAM,OAAO,QAAQ,MAAA,IACtB;IACJ,QACC,QAAQ,WAAW,SACf,MAAM,OAAO,QAAQ,MAAA,IACtB;;;AAdG;AAkBT,SAAS,SAAS,OAAoE;AACrF,MAAI,CAAC,MACJ,QAAO;AAER,MAAI,MAAM,SAAS,gBAAgB,UAClC,QAAO;IACN,OAAO;IACP,WAAW;;AAGb,MAAI,MAAM,SAAS,gBAAgB,QAClC,QAAO;IACN,cAAc,MAAM;IACpB,OAAO;;AAGT,MAAI,MAAM,SAAS,gBAAgB,OAClC,QAAO;IACN,OAAO;IACP,aAAa,MAAM;;AAIrB,MAAI,MAAM,SAAS,gBAAgB,OAClC,QAAO;IACN,OAAO;IACP,QAAQ,EACP,sBAAsB,MAAM,SAAS,SAAA,EAAU;;AAKlD,MAAI,MAAM,SAAS,gBAAgB,kBAClC,QAAO;IACN,OAAO;IACP,uBAAuB;MACtB,cAAc,MAAM,SAAS,SAAA;MAC7B,OAAO,MAAM;;;AAKhB,QAAM,IAAI,MACT,sBAAsB,KAAK,UAAU,OAAA,CAAQ,IAAI,MAAO,OAAO,MAAM,WAAW,EAAE,SAAA,IAAa,CAAA,CAAG,EAAA;;AA3C3F;AA+CT,SAAS,wBAAwB,OAA0D;AAC1F,QAAM,UAAU,MAAM,eAAe;AACrC,QAAM,UAAU,MAAM,WAAW,OAAO,OAAO,MAAM,OAAA,IAAW;AAChE,QAAM,UAAU,MAAM;AAEtB,UAAQ,SAAS,WAAjB;IACC,KAAK,SAAS;AACb,YAAM,QAAQ,QAAQ;AACtB,YAAM,cAAc,MAAM;AAC1B,aAAO;QACN,OAAO;QACP,SAAS,uBAAuB;UAC/B;UACA,UAAU,MAAM;UAChB,WAAW,OAAO,MAAM,aAAa,EAAA;UACrC,aAAa,cACV;YACA,YACC,YAAY,cAAc,OAAO,OAAO,YAAY,UAAA,IAAc;YACnE,cAAc,YAAY;YAC1B,OACC,YAAY,OAAO,cAAc,aAC9B,YAAY,MAAM,WAClB;cAEJ;SACH;QACD;QACA,WAAW,eAAe,KAAA;;;IAI5B,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,WAAW;UACV,MAAM,aAAa,MAAM,IAAA;UACzB,MAAM,OAAO,QAAQ,UAAU,QAAQ,EAAA;UACvC,SAAS,OAAO,QAAQ,UAAU,WAAW,EAAA;;;IAIhD,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,sBAAsB;UACrB,UAAU,QAAQ,qBAAqB,YAAY;UACnD,MAAM,aAAa,QAAQ,qBAAqB,IAAA;;;IAInD,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,mBAAmB;UAClB,cAAc,QAAQ,kBAAkB,gBAAgB;UACxD,MAAM,aAAa,QAAQ,kBAAkB,IAAA;;;IAIhD,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,qBAAqB;UACpB,MAAM,aAAa,QAAQ,oBAAoB,IAAA;UAC/C,WAAW,QAAQ,oBAAoB;UACvC,QAAQ,QAAQ,oBAAoB;;;IAIvC,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,YAAY;UACX,OAAO,QAAQ,WAAW;UAC1B,WAAW,QAAQ,WAAW;;;IAIjC,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,mBAAmB;UAClB,MAAM,aAAa,MAAM,IAAA;UACzB,UAAU,QAAQ,kBAAkB;UACpC,SAAS,QAAQ,kBAAkB;;;IAItC,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,kBAAkB;UACjB,MAAM,aAAa,MAAM,IAAA;UACzB,SAAS,QAAQ,iBAAiB;;;IAIrC,KAAK;AACJ,aAAO;QACN,OAAO;QACP;QACA;QACA,eAAe;UACd,MAAM,aAAa,MAAM,IAAA;UACzB,UAAU,QAAQ;;;IAIrB;AACC,aAAO;QACN,OAAO;QACP;QACA;QACA,SAAS;;;;AAhIJ;AAqIT,SAAS,eAAe,OAAgD;AACvE,SAAO;IACN,WAAW,OAAO,MAAM,aAAa,EAAA;IACrC,UAAU,EAAE,GAAG,MAAM,SAAA;IACrB,aAAa,MAAM,cAChB;MACA,WACC,MAAM,YAAY,aAAa,OAAO,OAAO,MAAM,YAAY,SAAA,IAAa;MAC7E,YACC,MAAM,YAAY,cAAc,OAAO,OAAO,MAAM,YAAY,UAAA,IAAc;MAC/E,cAAc,MAAM,YAAY;MAChC,cAAc,MAAM,YAAY;MAChC,OACC,MAAM,YAAY,OAAO,cAAc,aACpC,MAAM,YAAY,MAAM,WACxB,MAAM,YAAY,OAAO,cAAc,QACtC,SAAS,MAAM,YAAY,MAAM,GAAA,IACjC;QAEL;;;AAnBI;AAuBT,SAAS,aACR,MAMS;AACT,MAAI,QAAQ,KACX,QAAO;AAER,QAAM,OAAO,8CAA8C,IAAA;AAC3D,MAAI,CAAC,QAAQ,KAAK,SAAS,UAAA,EAC1B,QAAO;AAER,SAAO,KACL,MAAM,GAAA,EACN,IAAA,CAAK,SAAS,KAAK,OAAO,CAAA,IAAK,KAAK,MAAM,CAAA,EAAG,YAAA,CAAa,EAC1D,KAAK,EAAA;;AAlBC;AAqBT,SAAS,eACR,WACoD;AACpD,MAAI,aAAa,KAChB,QAAO;AAER,UAAQ,WAAR;IACC,KAAK,0BAA0B;AAC9B,aAAO;IACR,KAAK,0BAA0B;AAC9B,aAAO;IACR,KAAK,0BAA0B;IAC/B,KAAK,0BAA0B;AAC9B,aAAO;IACR;AAEC,aAAO;;;AAhBD;AAoBT,SAAS,oBACR,OAC+C;AAC/C,MAAI,SAAS,KACZ,QAAO;AAER,UAAQ,OAAR;IACC,KAAK,+BAA+B;AACnC,aAAO;IACR,KAAK,+BAA+B;AACnC,aAAO;IACR,KAAK,+BAA+B;AACnC,aAAO;IACR;AAEC,aAAO;;;AAfD;AAmBT,SAAS,qBACR,OAC4F;AAC5F,MAAI,SAAS,KACZ,QAAO;AAER,UAAQ,OAAR;IACC,KAAK,gCAAgC;AACpC,aAAO;IACR,KAAK,gCAAgC;AACpC,aAAO;IACR,KAAK,gCAAgC;AACpC,aAAO;IACR,KAAK,gCAAgC;AACpC,aAAO;IACR,KAAK,gCAAgC;AACpC,aAAO;IACR;AAEC,aAAO;;;AAnBD;AAuBT,SAAS,gCACR,MACyD;AACzD,MAAI,QAAQ,KACX,QAAO;AAER,UAAQ,MAAR;IACC,KAAK,sDAAsD;AAC1D,aAAO;IACR,KAAK,sDAAsD;AAC1D,aAAO;IACR,KAAK,sDAAsD;AAC1D,aAAO;IACR,KAAK,sDAAsD;AAC1D,aAAO;IACR,KAAK,sDAAsD;AAC1D,aAAO;IACR,KAAK,sDAAsD;AAC1D,aAAO;IACR;AAEC,aAAO;;;AArBD;AAyBT,SAAgB,wBAAwB,EACvC,QAAA,GAG4C;AAC5C,MAAI,CAAC,QACJ,QAAO;AAGR,QAAM,iBAAiB,QAAQ,eAAe,IAAA,CAAK,WAAyC;AAC3F,WAAO;MACN,UAAU,OAAO;MACjB,YAAY,oBAAoB,OAAO,UAAA;MACvC,cAAc,OAAO,cAAc,SAAA,KAAc;MACjD,aAAa,OAAO,eAAe;MACnC,YAAY,SAAS,OAAO,UAAA;MAC5B,aAAa,qBAAqB,OAAO,WAAA;MACzC,eAAe,OAAO,eAAe,SAAA,KAAc;MACnD,cAAc,OAAO,gBAAgB;MACrC,aAAa,SAAS,OAAO,WAAA;MAC7B,aAAa,eAAe,OAAO,WAAA;;;AAIrC,SAAO;IACN,KAAK,QAAQ,KAAK;IAElB,SAAS;IACT,QAAQ,QAAQ,QAAQ,UACrB;MACA,SAAS;MACT,OAAO;QAEP;MACA,SAAS;MACT,OAAO,wBAAwB,QAAQ,OAAQ,KAAA;;IAElD,SAAS;MACR,iBAAiB,QAAQ,SAAS,iBAAiB,SAAA;MACnD,aAAa,QAAQ,SAAS,aAAa,SAAA;MAC3C,eAAe,QAAQ,SAAS,eAAe,SAAA;MAC/C,yBAAyB,QAAQ,SAAS,yBAAyB,SAAA;;IAEpE,mBAAmB,QAAQ;IAC3B,WAAW;MACV,UAAU,QAAQ,WAAW;MAC7B,YAAY,oBAAoB,QAAQ,WAAW,UAAA;MACnD,cAAc,QAAQ,WAAW,cAAc,SAAA,KAAc;MAC7D,aAAa,QAAQ,WAAW,eAAe;MAC/C,YAAY,SAAS,QAAQ,WAAW,UAAA;MACxC,aAAa,qBAAqB,QAAQ,WAAW,WAAA;MACrD,eAAe,QAAQ,WAAW,eAAe,SAAA,KAAc;MAC/D,cAAc,QAAQ,WAAW,gBAAgB;MACjD,aAAa,SAAS,QAAQ,WAAW,WAAA;MACzC,aAAa,eAAe,QAAQ,WAAW,WAAA;;IAEhD,cAAc,QAAQ,gBAAgB;IACtC,cAAc,QAAQ;IACtB,gBAAgB,QAAQ,gBAAgB,SAAA,KAAc;IACtD;IACA,2BAA2B,QAAQ,0BAA0B,IAAA,CAC3DD,YAAoD;AACpD,aAAO;QACN,MAAM,gCAAgCA,QAAO,IAAA;QAE7C,UAAUA,QAAO;QACjB,SAASA,QAAO,SAAS,SAAA,KAAc;QACvC,QAAQA,QAAO,UAAU;;;IAI5B,qBAAqB,QAAQ,uBAAuB;;;AAvEtC;AA2EhB,SAAS,iBACR,aACA,SAC4C;AAC5C,QAAM,cAAsC,CAAA;AAC5C,MAAI,SAAS,YACZ,aAAY,SAAS,gBAAgB,QAAA,CAAS,WAAW;AACxD,QAAI,OAAO,YAAY,OAAO,WAC7B,aAAY,OAAO,QAAA,IAAY,OAAO;;AAKzC,MAAI;AACJ,MAAI,SAAS,aAAa;AACzB,UAAM,KAAK,YAAY;AAEvB,QAAI,CAAC,GACJ,OAAM,IAAI,MAAM,6DAAA;AAGjB,UAAM,WAAW,iCAAiC,EAAA;AAClD,sBAAkB;MACjB,SAAS,SAAS;MAClB,QAAQ,SAAS;MACjB,YAAY,SAAS;MACrB,UAAU,SAAS;MACnB,QAAQ,SAAS;MACjB,SAAS,SAAS;;;AAIpB,QAAM,WAAW,SAAS,MAAM,YAAY,aAAa,KAAK,QAAQ;AAEtE,QAAM,UAAU,SAAS,UACtB,wBAAwB,EACxB,SAAS,YAAY,QAAA,CACrB,IACA;AAEH,QAAM,SAAyC,YAAY,SAAS,QAAQ,UACzE;IAAE,SAAS;IAAM,OAAO;MACxB;IACA,SAAS;IACT,OAAO,YAAY,SAAS,QAAQ,QACjC,wBAAwB,YAAY,QAAQ,OAAO,KAAA,IACnD;MACA,OAAO;MACP,SAAS;MACT,SAAS;;;AAIf,QAAM,SAA8C;IACnD,QAAQ,YAAY;IACpB,OAAO,YAAY,SAAS,OAAO,SAAA,KAAc;IACjD;IACS;IACT,aAAc,SAAS,cACpB,cACA;IACH,aAAa;IACb,KAAK;IACL,YAAY,YAAY,YAAY,IAAA,CAAK,QAAQ,SAAS,IAAI,KAAK,KAAA,CAAO,KAAK,CAAA;IAC/E,gBAAiB,SAAS,iBACtB,YAAY,gBAAgB,IAAA,CAAK,YAAY;MAC9C,UAAU,OAAO;MACjB,SAAS,OAAO;MAChB,QAAQ,OAAO;MACf,KAAM,CAAA,IACN;IACH,QAAS,SAAS,SACd,YAAY,QAAQ,OAAO,IAAA,CAAK,WAAW;MAC5C,WAAW,oBAAoB,MAAM,SAAA;MACrC,QAAQ,MAAM;MACd,QAAQ,oBAAoB,MAAM,MAAA;MAClC,WAAW,MAAM;MACjB,KAAK,MAAM,UAAU,SAAS,IAAI,WAAA;MAClC,MAAM,MAAM,OAAQ,MAAM,OAAO,MAAM,IAAA,IAAoC;MAC3E,KAAM,CAAA,IACN;;AAGJ,SAAO,OAAO,UACX;IACA,OAAO;IACP,aAAa;MAEb;IACA,OAAO;IACP,mBAAmB;;;AA1Fd;AA8FT,SAAS,2BAA2B,MAAmD;AACtF,MAAI,YAA4C;AAEhD,MAAI,KAAK,cAAc,wBAAwB,UAC9C,aAAY;WACF,KAAK,cAAc,wBAAwB,QACrD,aAAY;AAGb,SAAO;IACN;IACA,MAAM,+BAA+B,KAAK,IAAA;;;AAXnC;AAeT,SAAS,+BAA+B,MAA2D;AAClG,UAAQ,KAAK,MAAb;IACC,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,UAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,UAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,OAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,KAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,MAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,MAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,MAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,OAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO,EAAE,OAAO,OAAA;IACjB,KAAK,uBAAuB;AAC3B,aAAO;QACN,OAAO;QACP,QAAQ,+BAA+B,KAAK,2BAA2B,CAAA,CAAA;;IAEzE,KAAK,uBAAuB;AAC3B,aAAO;QACN,OAAO;QACP,UAAU;UACT,UAAU,KAAK;UACf,gBAAgB,KAAK,2BAA2B,IAAA,CAAK,MACpD,+BAA+B,CAAA,CAAE;;;IAIrC,KAAK,uBAAuB;AAC3B,aAAO;QACN,OAAO;QACP,OAAO,KAAK;;IAEd;AACC,aAAO,EAAE,OAAO,UAAA;;;AAzCV;;;ACxvCT,IAAa,oCAAb,MAEA;SAAA;;;EAIC,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,4BAA4B;mBAC7B,4BAA4B;mBAC5B,4BAA4B;;;;;EAKtC,mBACC,OACA,SACmE;AACnE,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,oBACC,OACA,SACqE;AACrE,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;AC/CH,IAAM,sBAAN,cAAkC,YAA4B;SAAA;;;EAC7D,cAAc;AACb,UAAM,6BAA6B;MAClC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;UAAE,MAAM;UAAU,GAAG;;;MAEzB;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;UAAE,MAAM;UAAU,GAAG;;;KAEzB;;;AAMH,IAAa,iBAAiB,IAAI,oBAAA;;;ACujBlC,IAAM,mBAAN,cAA+B,YAAyB;SAAA;;;EACvD,cAAc;AACb,UAAM,0BAA0B;MAC/B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAW,GAAA,6BAAS,cAAT;;MAC9C;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,aAAT;;MAChD;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAW,GAAA,6BAAS,kBAAT;;MAC9C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,uBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAiB,MAAM;QAAW,GAAA,6BAAS,cAAT;;MACjD;QAAE,IAAI;QAAI,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAI,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,WAAT;;KACjD;;;AAMH,IAAa,cAAc,IAAI,iBAAA;AAE/B,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC,CACzC;MAAE,IAAI;MAAG,MAAM;MAAY,MAAM;MAAU,KAAK;MAAM,GAAG;OACzD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAG;KACH,CACD;;;AAMH,IAAa,wBAAwB,IAAI,2BAAA;AAEzC,IAAM,wBAAN,cAAoC,YAA8B;SAAA;;;EACjE,cAAc;AACb,UAAM,+BAA+B;MACpC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAChD;;;AAMH,IAAa,mBAAmB,IAAI,sBAAA;AAEpC,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,wBAAwB,CAC7B;MAAE,IAAI;MAAG,MAAM;MAAM,MAAM;MAAU,KAAK;MAAM,GAAG;OACnD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,YAAY,IAAI,eAAA;AAE7B,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B;MAChC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAChD;;;AAMH,IAAa,eAAe,IAAI,kBAAA;AAEhC,IAAM,mBAAN,cAA+B,YAAyB;SAAA;;;EACvD,cAAc;AACb,UAAM,0BAA0B,CAC/B;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;OAEJ;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,cAAc,IAAI,iBAAA;AAE/B,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B;MAChC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,WAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAA6B,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAC7D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAyB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAuB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAwB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACxD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;UAAE,MAAM;UAAU,GAAG;UAAyB,GAAG;;;MAErD;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAChD;;;AAMH,IAAa,eAAe,IAAI,kBAAA;AAEhC,IAAM,iBAAN,cAA6B,YAAuB;SAAA;;;EACnD,cAAc;AACb,UAAM,wBAAwB;MAC7B;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAuB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpE;QAAE,IAAI;QAAG,MAAM;QAAuB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpE;QAAE,IAAI;QAAI,MAAM;QAAsB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpE;QAAE,IAAI;QAAI,MAAM;QAAqB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnE;QAAE,IAAI;QAAI,MAAM;QAAmB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACjE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,UAAU;QACV,KAAK;QACL,GAAG;;MAEJ;QAAE,IAAI;QAAI,MAAM;QAAmB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACjE;QAAE,IAAI;QAAI,MAAM;QAAkB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAChE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,UAAU;QACV,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QAAE,IAAI;QAAI,MAAM;QAAyB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAI,MAAM;QAAoB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAClE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAI,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,aAAT;;MACjD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAI,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,WAAT;;KACjD;;;AAMH,IAAa,YAAY,IAAI,eAAA;AAE7B,IAAM,mBAAN,cAA+B,YAAyB;SAAA;;;EACvD,cAAc;AACb,UAAM,0BAA0B;MAC/B;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAkB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAClD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAI,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,WAAT;;KACjD;;;AAMH,IAAa,cAAc,IAAI,iBAAA;;;AC7lC/B,IAAM,aAAN,cAAyB,YAAmB;SAAA;;;EAC3C,cAAc;AACb,UAAM,oBAAoB;MACzB;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,oBAAT;;MAC7C;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAAS,aAAT;;MAChD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACzC;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACvC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAmB,MAAM;QAAW,GAAA,6BAAS,gBAAT;;KACnD;;;AAMH,IAAa,QAAQ,IAAI,WAAA;;;ACvBzB,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC;MACtC;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,6BAAT;;KAED;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,mCAAN,cAA+C,YAAyC;SAAA;;;EACvF,cAAc;AACb,UAAM,0CAA0C;MAC/C;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,eAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,uBAAT;;KAED;;;AAMH,IAAa,8BAA8B,IAAI,iCAAA;AAE/C,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC,CACzC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,wBAAwB,IAAI,2BAAA;;;ACWzC,IAAY,gDAAA,yBAAA,iDAAL;AAIN,kDAAA,gDAAA,oCAAA,IAAA,CAAA,IAAA;AAOA,kDAAA,gDAAA,sBAAA,IAAA,CAAA,IAAA;AAMA,kDAAA,gDAAA,sBAAA,IAAA,CAAA,IAAA;;;AAGD,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC;MACrC;QAAE,IAAI;QAAG,MAAM;QAAO,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACvC;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAkB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC/D;QAAE,IAAI;QAAG,MAAM;QAAmB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAChE;QAAE,IAAI;QAAG,MAAM;QAAkC,MAAM;QAAW,GAAA,6BAASE,iBAAT;;MAClE;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAC7C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,sBAAT;;MAED;QAAE,IAAI;QAAI,MAAM;QAAqB,MAAM;QAAW,GAAA,6BAAS,gBAAT;;MACtD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;KAEJ;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,sBAAN,cAAkC,YAA4B;SAAA;;;EAC7D,cAAc;AACb,UAAM,6BAA6B;MAClC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,0BAAT;;MAED;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,sBAAT;;KAED;;;AAMH,IAAa,iBAAiB,IAAI,oBAAA;AAElC,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,mCAAmC,CACxC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAA,6BAAS,CACR,4DACA,6CAAA,GAFD;OAKD;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CAChF;;;AAMH,IAAa,uBAAuB,IAAI,0BAAA;;;AC9NxC,IAAM,kBAAN,cAA8B,YAAwB;SAAA;;;EACrD,cAAc;AACb,UAAM,yBAAyB;MAC9B;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,mBAAT;;MAC3C;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,8BAAT;;MAC7C;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAAS,oBAAT;;MAC5C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,qBAAT;;MAED;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAC3C;;;AAMH,IAAa,aAAa,IAAI,gBAAA;;;AC+E9B,IAAM,WAAN,cAAuB,YAAiB;SAAA;;;EACvC,cAAc;AACb,UAAM,uBAAuB,CAC5B;MAAE,IAAI;MAAG,MAAM;MAAY,MAAM;MAAU,GAAG;OAC9C;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAU,GAAG;KAAyB,CACpE;;;;;;;EAOF,KAAuB,SAAY,MAA4B;AAC9D,WAAO;MACN,SAAS,KAAK,cAAc,KAAK,QAAA;MACjC,OAAO,KAAK,SAAS,OAAA;;;;;;EAMvB,OACC,KACA,MACA,SACI;AACJ,QAAI,CAAC,KAAK,SAAS,KAAK,IAAA,EACvB,OAAM,IAAI,MACT,qDACC,IAAI,UACJ,UACA,KAAK,WACL,GAAA;AAEH,WAAO,KAAK,WAAW,IAAI,OAAO,OAAA;;;;;EAKnC,SAAS,KAAU,MAA2C;AAC7D,QAAI,CAAC,IAAI,QAAQ,OAAQ,QAAO;AAGhC,YAFY,OAAO,QAAQ,WAAW,OAAO,KAAK,cACxC,KAAK,cAAc,IAAI,OAAA;;;;;;;;;;;EAYlC,kBAAkB,KAAU,SAAsC;AACjE,QAAI,IAAI,YAAY,GAAI,QAAO,CAAA;AAC/B,QAAI,WAAW,KAAK,cAAc,IAAI,OAAA;AACtC,QAAI,MAAM,iBAAiB,OAAA;AAC3B,QAAI,OAAO,IAAI,cAAc,KAAA,CAAM,MAAM,EAAE,aAAa,QAAA;AACxD,QAAI,CAAC,KACJ,OAAM,IAAI,WAAW,MACpB,yDACC,IAAI,UACJ,mCACA,WACA,yCAAA;AAEH,QAAI,QAAQ,KAAK,WAAW,IAAI,OAAO,EAAE,kBAAkB,MAAA,CAAO;AAClE,QAAI,OAAO,KAAK,kBAAkB,OAAO,GAAA;AACzC,QAAI,SAAS,WAAW,kBAAA,KAAuB,CAAC,aAAa,IAAA,EAAO,QAAO,EAAE,OAAO,KAAA;AACpF,SAAK,OAAA,IAAW,IAAI;AACpB,WAAO;;EAER,iBAAiB,MAAiB,SAA0B,QAAmB;AAC9E,QAAI,CAAC,aAAa,IAAA,EACjB,OAAM,IAAI,WAAW,MACpB,mDAAmD,gBAAgB,IAAA,IAAQ,GAAA;AAE7E,QAAI,OAAO,KAAK,OAAA,KAAY,YAAY,KAAK,OAAA,KAAY,GAAI,QAAO,KAAK,OAAA;AACzE,QAAI,WAAW,KAAK,cAAc,KAAK,OAAA,CAAA;AACvC,QAAI,OAAO,SAAS,cAAc,KAAA,CAAM,MAAM,EAAE,YAAY,QAAA;AAC5D,QAAI,CAAC,KACJ,OAAM,IAAI,WAAW,MACpB,uEACC,WACA,yCAAA;AAEH,QAAI;AACJ,QAAI,SAAS,WAAW,kBAAA,KAAuB,KAAK,eAAe,OAAA,EAClE,SAAQ,KAAK,SAAS,KAAK,OAAA,GAAU,OAAA;SACjC;AACJ,UAAIC,QAAO,OAAO,OAAO,CAAA,GAAI,IAAA;AAC7B,aAAOA,MAAK,OAAA;AACZ,cAAQ,KAAK,SAASA,OAAM,OAAA;;AAE7B,QAAI,WAAW,OAAW,UAAS,KAAK,OAAA;AACxC,WAAO,UAAU,KAAK,OAAA;AACtB,WAAO,QAAQ,KAAK,SAAS,KAAA;AAC7B,WAAO;;EAER,cAAc,MAAsB;AACnC,QAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,wBAAwB,IAAA;AAC1D,WAAO,yBAAyB;;EAEjC,cAAc,KAAqB;AAClC,QAAI,CAAC,IAAI,OAAQ,OAAM,IAAI,MAAM,uBAAuB,GAAA;AACxD,QAAI,QAAQ,IAAI,YAAY,GAAA;AAC5B,QAAI,OAAO,QAAQ,IAAI,IAAI,UAAU,QAAQ,CAAA,IAAK;AAClD,QAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,uBAAuB,GAAA;AACzD,WAAO;;;AAMT,IAAa,MAAM,IAAI,SAAA;;;AC1OvB,IAAM,cAAN,cAA0B,YAAoB;SAAA;;;EAC7C,cAAc;AACb,UAAM,qBAAqB;MAC1B;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,GAAG;;MAC1C;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,GAAG;;MAC7C;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,QAAQ;QAA2B,GAAA,6BAAS,KAAT;;KAC9E;;;AAMH,IAAa,SAAS,IAAI,YAAA;;;AC0P1B,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC,CAAA,CAAE;;;AAM9C,IAAa,wBAAwB,IAAI,2BAAA;AAEzC,IAAM,8BAAN,cAA0C,YAAoC;SAAA;;;EAC7E,cAAc;AACb,UAAM,qCAAqC;MAC1C;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAU,KAAK;QAAM,GAAG;;MACtD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAC7C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;KACvD;;;AAMH,IAAa,yBAAyB,IAAI,4BAAA;AAE1C,IAAM,wBAAN,cAAoC,YAA8B;SAAA;;;EACjE,cAAc;AACb,UAAM,+BAA+B;MACpC;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAC7C;;;AAMH,IAAa,mBAAmB,IAAI,sBAAA;AAEpC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC,CACrC;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,GAAA,6BAASC,UAAT;KAAiB,CAC3D;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,8BAAN,cAA0C,YAAoC;SAAA;;;EAC7E,cAAc;AACb,UAAM,qCAAqC,CAC1C;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,kBAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAW,GAAA,6BAAS,WAAT;KAAoB,CACjE;;;AAMH,IAAa,yBAAyB,IAAI,4BAAA;AAE1C,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC,CAC3C;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,iBAAT;KACA,CACD;;;AAMH,IAAa,0BAA0B,IAAI,6BAAA;AAE3C,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B,CACnC;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,OAAO;MAAU,GAAA,6BAASA,UAAT;OAC3D;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAW,OAAO;MAAU,GAAA,6BAAS,QAAT;KAAiB,CAC3E;;;AAMH,IAAa,kBAAkB,IAAI,qBAAA;AAEnC,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC,CACzC;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAU,KAAK;MAAM,GAAG;OACvD;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAW,GAAA,6BAAS,WAAT;KAAoB,CACjE;;;AAMH,IAAa,wBAAwB,IAAI,2BAAA;AAEzC,IAAM,8BAAN,cAA0C,YAAoC;SAAA;;;EAC7E,cAAc;AACb,UAAM,qCAAqC,CAC1C;MAAE,IAAI;MAAG,MAAM;MAAe,MAAM;MAAW,GAAA,6BAAS,qBAAT;KAA8B,CAC7E;;;AAMH,IAAa,yBAAyB,IAAI,4BAAA;AAE1C,IAAM,mCAAN,cAA+C,YAAyC;SAAA;;;EACvF,cAAc;AACb,UAAM,0CAA0C,CAC/C;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAG;OAEJ;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAW,GAAA,6BAAS,WAAT;KAAoB,CACjE;;;AAMH,IAAa,8BAA8B,IAAI,iCAAA;AAE/C,IAAM,oCAAN,cAAgD,YAA0C;SAAA;;;EACzF,cAAc;AACb,UAAM,2CAA2C,CAChD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,sBAAT;KACA,CACD;;;AAMH,IAAa,+BAA+B,IAAI,kCAAA;AAEhD,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,mCAAmC,CACxC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,OAAO;MACP,GAAA,6BAAS,qBAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAW,OAAO;MAAU,GAAA,6BAAS,QAAT;KAAiB,CAC3E;;;AAMH,IAAa,uBAAuB,IAAI,0BAAA;AAExC,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,mCAAmC;MACxC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,GAAG;QACH,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,OAAO;QAAgB,GAAG;;MACnE;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAC7C;;;AAMH,IAAa,uBAAuB,IAAI,0BAAA;AAExC,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC,CACzC;MAAE,IAAI;MAAG,MAAM;MAAc,MAAM;MAAW,GAAA,6BAAS,YAAT;KAAqB,CACnE;;;AAMH,IAAa,wBAAwB,IAAI,2BAAA;AAEzC,IAAM,uBAAN,cAAmC,YAA6B;SAAA;;;EAC/D,cAAc;AACb,UAAM,8BAA8B,CACnC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;OAEJ;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAW,GAAA,6BAAS,WAAT;KAAoB,CACjE;;;AAMH,IAAa,kBAAkB,IAAI,qBAAA;AAEnC,IAAM,wBAAN,cAAoC,YAA8B;SAAA;;;EACjE,cAAc;AACb,UAAM,+BAA+B,CACpC;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAW,GAAA,6BAAS,OAAT;KAAgB,CACzD;;;AAMH,IAAa,mBAAmB,IAAI,sBAAA;AAIpC,IAAa,gBAAgB,IAAI,YAAY,4BAA4B;EACxE;IAAE,MAAM;IAAkB,SAAS,CAAA;IAAI,GAAG;IAAuB,GAAG;;EACpE;IAAE,MAAM;IAAa,SAAS,CAAA;IAAI,GAAG;IAAkB,GAAG;;EAC1D;IAAE,MAAM;IAAmB,SAAS,CAAA;IAAI,GAAG;IAAwB,GAAG;;EACtE;IAAE,MAAM;IAAkB,SAAS,CAAA;IAAI,GAAG;IAAuB,GAAG;;EACpE;IACC,MAAM;IACN,SAAS,CAAA;IACT,GAAG;IACH,GAAG;;EAEJ;IAAE,MAAM;IAAiB,SAAS,CAAA;IAAI,GAAG;IAAsB,GAAG;;EAClE;IAAE,MAAM;IAAY,SAAS,CAAA;IAAI,GAAG;IAAiB,GAAG;;CACxD;;;ACthBD,IAAa,sBAAb,MAA8E;SAAA;;;EAI7E,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,cAAc;mBACf,cAAc;mBACd,cAAc;;;;;;;EAOxB,eACC,OACA,SAC2D;AAC3D,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,UACC,OACA,SACiD;AACjD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,gBACC,OACA,SAC6D;AAC7D,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,eACC,OACA,SAC2D;AAC3D,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,qBACC,OACA,SACuE;AACvE,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,cACC,OACA,SACyD;AACzD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,SACC,OACA,SAC+C;AAC/C,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;ACxCH,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC,CACrC;MAAE,IAAI;MAAG,MAAM;MAAc,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACpF;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC,CACtC;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAW,GAAA,6BAAS,SAAT;KAAkB,CAC7D;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC;MACtC;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;KACrD;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,kCAAkC,CACvC;MAAE,IAAI;MAAG,MAAM;MAAY,MAAM;MAAW,GAAA,6BAAS,oBAAT;KAA6B,CACzE;;;AAMH,IAAa,sBAAsB,IAAI,yBAAA;AAEvC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC;MACtC;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;KACrD;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,kCAAkC,CACvC;MAAE,IAAI;MAAG,MAAM;MAAY,MAAM;MAAW,GAAA,6BAAS,oBAAT;KAA6B,CACzE;;;AAMH,IAAa,sBAAsB,IAAI,yBAAA;AAEvC,IAAM,kCAAN,cAA8C,YAAwC;SAAA;;;EACrF,cAAc;AACb,UAAM,yCAAyC;MAC9C;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC3D;;;AAMH,IAAa,6BAA6B,IAAI,gCAAA;AAE9C,IAAM,mCAAN,cAA+C,YAAyC;SAAA;;;EACvF,cAAc;AACb,UAAM,0CAA0C,CAC/C;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,gBAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAmB,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACzF;;;AAMH,IAAa,8BAA8B,IAAI,iCAAA;AAE/C,IAAM,sBAAN,cAAkC,YAA4B;SAAA;;;EAC7D,cAAc;AACb,UAAM,6BAA6B,CAClC;MAAE,IAAI;MAAG,MAAM;MAAc,MAAM;MAAU,KAAK;MAAM,GAAG;OAC3D;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,iBAAiB,IAAI,oBAAA;AAIlC,IAAa,qBAAqB,IAAI,YAAY,iCAAiC;EAClF;IAAE,MAAM;IAAc,SAAS,CAAA;IAAI,GAAG;IAAmB,GAAG;;EAC5D;IAAE,MAAM;IAAe,SAAS,CAAA;IAAI,GAAG;IAAoB,GAAG;;EAC9D;IAAE,MAAM;IAAe,SAAS,CAAA;IAAI,GAAG;IAAoB,GAAG;;EAC9D;IACC,MAAM;IACN,SAAS,CAAA;IACT,GAAG;IACH,GAAG;;CAEJ;;;AC7PD,IAAa,2BAAb,MAAwF;SAAA;;;EAIvF,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,mBAAmB;mBACpB,mBAAmB;mBACnB,mBAAmB;;;;;EAK7B,WACC,OACA,SACmD;AACnD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,YACC,OACA,SACqD;AACrD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,YACC,OACA,SACqD;AACrD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,oBACC,OACA,SACqE;AACrE,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;AC3DH,IAAM,8BAAN,cAA0C,YAAoC;SAAA;;;EAC7E,cAAc;AACb,UAAM,qCAAqC;MAC1C;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAW,GAAA,6BAAS,KAAT;;MAC3C;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,eAAT;;MAC7C;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,QAAQ;QACR,GAAA,6BAAS,WAAT;;KAED;;;AAMH,IAAa,yBAAyB,IAAI,4BAAA;AAE1C,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC,CAC3C;MAAE,IAAI;MAAG,MAAM;MAAY,MAAM;MAAU,KAAK;MAAM,GAAG;OACzD;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CAChF;;;AAMH,IAAa,0BAA0B,IAAI,6BAAA;AAI3C,IAAa,+BAA+B,IAAI,YAC/C,2CACA,CAAC;EAAE,MAAM;EAAmB,SAAS,CAAA;EAAI,GAAG;EAAwB,GAAG;CAAyB,CAAC;;;AC1ElG,IAAa,qCAAb,MAEA;SAAA;;;EAIC,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,6BAA6B;mBAC9B,6BAA6B;mBAC7B,6BAA6B;;;;;;;EAOvC,gBACC,OACA,SAC6D;AAC7D,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;ACwEH,IAAY,gCAAA,yBAAA,iCAAL;AAON,kCAAA,gCAAA,4BAAA,IAAA,CAAA,IAAA;AAMA,kCAAA,gCAAA,SAAA,IAAA,CAAA,IAAA;AAMA,kCAAA,gCAAA,WAAA,IAAA,CAAA,IAAA;AAMA,kCAAA,gCAAA,SAAA,IAAA,CAAA,IAAA;;;AAgCD,IAAY,2BAAA,yBAAA,4BAAL;AAMN,6BAAA,2BAAA,sBAAA,IAAA,CAAA,IAAA;AAMA,6BAAA,2BAAA,OAAA,IAAA,CAAA,IAAA;AAMA,6BAAA,2BAAA,WAAA,IAAA,CAAA,IAAA;;;AAmDD,IAAY,2CAAA,yBAAA,4CAAL;AASN,6CAAA,2CAAA,8BAAA,IAAA,CAAA,IAAA;AAMA,6CAAA,2CAAA,WAAA,IAAA,CAAA,IAAA;AAMA,6CAAA,2CAAA,aAAA,IAAA,CAAA,IAAA;;;AAsPD,IAAY,gCAAA,yBAAA,iCAAL;AAIN,kCAAA,gCAAA,4BAAA,IAAA,CAAA,IAAA;AAIA,kCAAA,gCAAA,OAAA,IAAA,CAAA,IAAA;AAIA,kCAAA,gCAAA,QAAA,IAAA,CAAA,IAAA;;;AAsED,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC,CACtC;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACnF;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,kCAAkC;MACvC;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAAS,cAAT;;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAW,GAAA,6BAAS,cAAT;;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAsB,MAAM;QAAW,GAAA,6BAAS,uBAAT;;KACtD;;;AAMH,IAAa,sBAAsB,IAAI,yBAAA;AAEvC,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B;MAChC;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnD;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC5D;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAmB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAChE;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,4CAA4C,6BAAA,GAAtD;;KAED;;;AAMH,IAAa,eAAe,IAAI,kBAAA;AAEhC,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B;MAChC;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,uCAAuC,wBAAA,GAAjD;;KAED;;;AAMH,IAAa,eAAe,IAAI,kBAAA;AAEhC,IAAM,6BAAN,cAAyC,YAAmC;SAAA;;;EAC3E,cAAc;AACb,UAAM,oCAAoC;MACzC;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;;MAEJ;QAAE,IAAI;QAAG,MAAM;QAAmB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAChE;QAAE,IAAI;QAAG,MAAM;QAAsB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnE;QAAE,IAAI;QAAG,MAAM;QAAW,MAAM;QAAU,KAAK;QAAM,GAAG;;MACxD;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CACR,uDACA,wCAAA,GAFD;;KAKD;;;AAMH,IAAa,wBAAwB,IAAI,2BAAA;AAEzC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC,CACrC;MAAE,IAAI;MAAG,MAAM;MAAS,MAAM;MAAU,KAAK;MAAM,GAAG;OACtD;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACnF;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC,CACtC;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAW,GAAA,6BAAS,SAAT;KAAkB,CAC7D;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,kCAAkC;MACvC;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAU,KAAK;QAAM,GAAG;;MACtD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC3D;;;AAMH,IAAa,sBAAsB,IAAI,yBAAA;AAEvC,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,mCAAmC,CACxC;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,SAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAmB,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACzF;;;AAMH,IAAa,uBAAuB,IAAI,0BAAA;AAExC,IAAM,eAAN,cAA2B,YAAqB;SAAA;;;EAC/C,cAAc;AACb,UAAM,sBAAsB;MAC3B;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,UAAU,IAAI,aAAA;AAE3B,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC;MAC5C;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;KAC7C;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;AAE5C,IAAM,iCAAN,cAA6C,YAAuC;SAAA;;;EACnF,cAAc;AACb,UAAM,wCAAwC,CAC7C;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAAS,cAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAmB,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACzF;;;AAMH,IAAa,4BAA4B,IAAI,+BAAA;AAE7C,IAAM,oBAAN,cAAgC,YAA0B;SAAA;;;EACzD,cAAc;AACb,UAAM,2BAA2B;MAChC;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,GAAA,6BAAS,CAAC,4CAA4C,6BAAA,GAAtD;;MAED;QAAE,IAAI;QAAG,MAAM;QAAU,MAAM;QAAU,KAAK;QAAM,GAAG;;MACvD;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAASC,UAAT;;MAChD;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACxC;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAW,GAAA,6BAAS,KAAT;;MACzC;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAY,MAAM;QAAU,KAAK;QAAM,GAAG;;MACzD;QAAE,IAAI;QAAG,MAAM;QAAgB,MAAM;QAAW,GAAA,6BAASA,UAAT;;KAChD;;;AAMH,IAAa,eAAe,IAAI,kBAAA;AAEhC,IAAM,+BAAN,cAA2C,YAAqC;SAAA;;;EAC/E,cAAc;AACb,UAAM,sCAAsC;MAC3C;QAAE,IAAI;QAAG,MAAM;QAAS,MAAM;QAAU,KAAK;QAAM,GAAG;;MACtD;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC1D;QAAE,IAAI;QAAG,MAAM;QAAc,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC3D;QAAE,IAAI;QAAG,MAAM;QAAa,MAAM;QAAW,GAAA,6BAAS,WAAT;;MAC7C;QAAE,IAAI;QAAG,MAAM;QAAe,MAAM;QAAU,KAAK;QAAM,GAAG;;KAC5D;;;AAMH,IAAa,0BAA0B,IAAI,6BAAA;AAE3C,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC,CAC5C;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,QAAQ;MACR,GAAA,6BAASA,UAAT;OAED;MAAE,IAAI;MAAG,MAAM;MAAmB,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACzF;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;AAI5C,IAAa,eAAe,IAAI,YAAY,2BAA2B;EACtE;IACC,MAAM;IACN,SAAS,CAAA;IACT,GAAG;IACH,GAAG;;EAEJ;IACC,MAAM;IACN,SAAS,CAAA;IACT,GAAG;IACH,GAAG;;EAEJ;IAAE,MAAM;IAAe,SAAS,CAAA;IAAI,GAAG;IAAoB,GAAG;;EAC9D;IAAE,MAAM;IAAc,SAAS,CAAA;IAAI,GAAG;IAAmB,GAAG;;EAC5D;IAAE,MAAM;IAAgB,SAAS,CAAA;IAAI,GAAG;IAAqB,GAAG;;CAChE;;;ACt1BD,IAAa,qBAAb,MAA4E;SAAA;;;EAI3E,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,aAAa;mBACd,aAAa;mBACb,aAAa;;;;;EAKvB,kBACC,OACA,SACiE;AACjE,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,iBACC,OACA,SAC+D;AAC/D,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,YACC,OACA,SACqD;AACrD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,WACC,OACA,SACmD;AACnD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,aACC,OACA,SACuD;AACvD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;AC3GH,IAAM,mCAAN,cAA+C,YAAyC;SAAA;;;EACvF,cAAc;AACb,UAAM,0CAA0C,CAC/C;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAW,GAAA,6BAAS,WAAT;KAAoB,CACjE;;;AAMH,IAAa,8BAA8B,IAAI,iCAAA;AAE/C,IAAM,oCAAN,cAAgD,YAA0C;SAAA;;;EACzF,cAAc;AACb,UAAM,2CAA2C,CAChD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;OAEJ;MAAE,IAAI;MAAG,MAAM;MAAc,MAAM;MAAW,GAAA,6BAAS,YAAT;KAAqB,CACnE;;;AAMH,IAAa,+BAA+B,IAAI,kCAAA;AAIhD,IAAa,sBAAsB,IAAI,YAAY,kCAAkC,CACpF;EACC,MAAM;EACN,iBAAiB;EACjB,SAAS,CAAA;EACT,GAAG;EACH,GAAG;CACH,CACD;;;AC9CD,IAAa,4BAAb,MAA0F;SAAA;;;EAIzF,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,oBAAoB;mBACrB,oBAAoB;mBACpB,oBAAoB;;;;;;;;;;;;;;;;;EAiB9B,qBACC,OACA,SACiF;AACjF,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,mBACA,KAAK,YACL,QACA,KACA,KAAA;;;;;ACuCH,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,gCAAgC,CACrC;MAAE,IAAI;MAAG,MAAM;MAAQ,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CAC9E;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAErC,IAAM,0BAAN,cAAsC,YAAgC;SAAA;;;EACrE,cAAc;AACb,UAAM,iCAAiC,CACtC;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,GAAA,6BAAS,YAAT;KAAqB,CAC/D;;;AAMH,IAAa,qBAAqB,IAAI,wBAAA;AAEtC,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,uCAAuC,CAC5C;MAAE,IAAI;MAAG,MAAM;MAAW,MAAM;MAAU,KAAK;MAAM,GAAG;KAAyB,CACjF;;;AAMH,IAAa,2BAA2B,IAAI,8BAAA;AAE5C,IAAM,iCAAN,cAA6C,YAAuC;SAAA;;;EACnF,cAAc;AACb,UAAM,wCAAwC,CAC7C;MAAE,IAAI;MAAG,MAAM;MAAU,MAAM;MAAW,GAAA,6BAAS,YAAT;KAAqB,CAC/D;;;AAMH,IAAa,4BAA4B,IAAI,+BAAA;AAE7C,IAAM,kBAAN,cAA8B,YAAwB;SAAA;;;EACrD,cAAc;AACb,UAAM,yBAAyB;MAC9B;QAAE,IAAI;QAAG,MAAM;QAAM,MAAM;QAAU,KAAK;QAAM,GAAG;;MACnD;QAAE,IAAI;QAAG,MAAM;QAAQ,MAAM;QAAU,KAAK;QAAM,GAAG;;MACrD;QAAE,IAAI;QAAG,MAAM;QAAuB,MAAM;QAAU,KAAK;QAAM,GAAG;;MACpE;QAAE,IAAI;QAAG,MAAM;QAAwB,MAAM;QAAW,GAAA,6BAAS,WAAT;;MACxD;QAAE,IAAI;QAAG,MAAM;QAAkB,MAAM;QAAU,KAAK;QAAM,GAAG;;MAC/D;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;UAAE,MAAM;UAAU,GAAG;;;KAEzB;;;AAMH,IAAa,aAAa,IAAI,gBAAA;AAI9B,IAAa,cAAc,IAAI,YAAY,0BAA0B,CACpE;EAAE,MAAM;EAAc,SAAS,CAAA;EAAI,GAAG;EAAmB,GAAG;GAC5D;EACC,MAAM;EACN,SAAS,CAAA;EACT,GAAG;EACH,GAAG;CACH,CACD;;;AC1JD,IAAa,oBAAb,MAA0E;SAAA;;;EAIzE,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,YAAY;mBACb,YAAY;mBACZ,YAAY;;;;;EAKtB,WACC,OACA,SACmD;AACnD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;EAMF,kBACC,OACA,SACiE;AACjE,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;ACiBH,IAAM,2BAAN,cAAuC,YAAiC;SAAA;;;EACvE,cAAc;AACb,UAAM,2CAA2C,CAChD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,KAAK;MACL,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,sBAAsB,IAAI,yBAAA;AAEvC,IAAM,4BAAN,cAAwC,YAAkC;SAAA;;;EACzE,cAAc;AACb,UAAM,4CAA4C,CACjD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,GAAG;MACH,GAAG;OAEJ;MAAE,IAAI;MAAG,MAAM;MAAa,MAAM;MAAU,GAAG;KAAyB,CACxE;;;AAMH,IAAa,uBAAuB,IAAI,0BAAA;AAExC,IAAM,gCAAN,cAA4C,YAAsC;SAAA;;;EACjF,cAAc;AACb,UAAM,gDAAgD,CAAA,CAAE;;;AAM1D,IAAa,2BAA2B,IAAI,8BAAA;AAE5C,IAAM,iCAAN,cAA6C,YAAuC;SAAA;;;EACnF,cAAc;AACb,UAAM,iDAAiD,CACtD;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,GAAG;MACH,GAAG;OAEJ;MACC,IAAI;MACJ,MAAM;MACN,MAAM;MACN,GAAG;MACH,GAAG;KACH,CACD;;;AAMH,IAAa,4BAA4B,IAAI,+BAAA;AAE7C,IAAM,wBAAN,cAAoC,YAA8B;SAAA;;;EACjE,cAAc;AACb,UAAM,wCAAwC,CAAA,CAAE;;;AAMlD,IAAa,mBAAmB,IAAI,sBAAA;AAEpC,IAAM,yBAAN,cAAqC,YAA+B;SAAA;;;EACnE,cAAc;AACb,UAAM,yCAAyC;MAC9C;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;;MAEJ;QACC,IAAI;QACJ,MAAM;QACN,MAAM;QACN,GAAG;QACH,GAAG;;KAEJ;;;AAMH,IAAa,oBAAoB,IAAI,uBAAA;AAIrC,IAAa,iBAAiB,IAAI,YAAY,sCAAsC;EACnF;IAAE,MAAM;IAAgB,SAAS,CAAA;IAAI,GAAG;IAAqB,GAAG;;EAChE;IACC,MAAM;IACN,SAAS,CAAA;IACT,GAAG;IACH,GAAG;;EAEJ;IAAE,MAAM;IAAa,SAAS,CAAA;IAAI,GAAG;IAAkB,GAAG;;CAC1D;;;ACvKD,IAAa,uBAAb,MAAgF;SAAA;;;EAI/E,YAA6B,YAA0B;AAA1B,SAAA,aAAA;oBAHlB,eAAe;mBAChB,eAAe;mBACf,eAAe;;;;;;;EAOzB,aACC,OACA,SACuD;AACvD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;;;EAQF,kBACC,OACA,SACiE;AACjE,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;;;EAQF,UACC,OACA,SACiD;AACjD,UAAM,SAAS,KAAK,QAAQ,CAAA,GAC3B,MAAM,KAAK,WAAW,aAAa,OAAA;AACpC,WAAO,eACN,SACA,KAAK,YACL,QACA,KACA,KAAA;;;;;ACvGI,IAAI;AAAA,CACV,SAAUC,iBAAgB;AAIvB,EAAAA,gBAAeA,gBAAe,IAAI,IAAI,CAAC,IAAI;AAI3C,EAAAA,gBAAeA,gBAAe,WAAW,IAAI,CAAC,IAAI;AAOlD,EAAAA,gBAAeA,gBAAe,SAAS,IAAI,CAAC,IAAI;AAOhD,EAAAA,gBAAeA,gBAAe,kBAAkB,IAAI,CAAC,IAAI;AAQzD,EAAAA,gBAAeA,gBAAe,mBAAmB,IAAI,CAAC,IAAI;AAI1D,EAAAA,gBAAeA,gBAAe,WAAW,IAAI,CAAC,IAAI;AAKlD,EAAAA,gBAAeA,gBAAe,gBAAgB,IAAI,CAAC,IAAI;AAQvD,EAAAA,gBAAeA,gBAAe,mBAAmB,IAAI,CAAC,IAAI;AAK1D,EAAAA,gBAAeA,gBAAe,iBAAiB,IAAI,EAAE,IAAI;AAKzD,EAAAA,gBAAeA,gBAAe,oBAAoB,IAAI,CAAC,IAAI;AAqB3D,EAAAA,gBAAeA,gBAAe,qBAAqB,IAAI,CAAC,IAAI;AAQ5D,EAAAA,gBAAeA,gBAAe,SAAS,IAAI,EAAE,IAAI;AAgBjD,EAAAA,gBAAeA,gBAAe,cAAc,IAAI,EAAE,IAAI;AAItD,EAAAA,gBAAeA,gBAAe,eAAe,IAAI,EAAE,IAAI;AAKvD,EAAAA,gBAAeA,gBAAe,UAAU,IAAI,EAAE,IAAI;AAQlD,EAAAA,gBAAeA,gBAAe,aAAa,IAAI,EAAE,IAAI;AAIrD,EAAAA,gBAAeA,gBAAe,WAAW,IAAI,EAAE,IAAI;AACvD,GAAG,mBAAmB,iBAAiB,CAAC,EAAE;;;AC/I1C,IAAIC,aAAwC,SAAU,SAAS,YAAY,GAAG,WAAW;AACrF,WAAS,MAAM,OAAO;AAAE,WAAO,iBAAiB,IAAI,QAAQ,IAAI,EAAE,SAAU,SAAS;AAAE,cAAQ,KAAK;AAAA,IAAG,CAAC;AAAA,EAAG;AAAlG;AACT,SAAO,KAAK,MAAM,IAAI,UAAU,SAAU,SAAS,QAAQ;AACvD,aAAS,UAAU,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,KAAK,KAAK,CAAC;AAAA,MAAG,SAAS,GAAG;AAAE,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAAjF;AACT,aAAS,SAAS,OAAO;AAAE,UAAI;AAAE,aAAK,UAAU,OAAO,EAAE,KAAK,CAAC;AAAA,MAAG,SAAS,GAAG;AAAE,eAAO,CAAC;AAAA,MAAG;AAAA,IAAE;AAApF;AACT,aAAS,KAAK,QAAQ;AAAE,aAAO,OAAO,QAAQ,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,EAAE,KAAK,WAAW,QAAQ;AAAA,IAAG;AAApG;AACT,UAAM,YAAY,UAAU,MAAM,SAAS,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC;AAAA,EACxE,CAAC;AACL;AAOO,SAAS,2BAA2B,SAAS,QAAQ,SAAS,MAAM,WAAW;AAElF,MAAI,MAAM;AACN,aAAS,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,IAAI,GAAG;AACrC,UAAI,OAAO,KAAK;AACZ,gBAAQ,OAAO,GAAG,CAAC;AAAA;AAEnB,iBAAS,KAAK;AACV,kBAAQ,OAAO,GAAG,CAAC;AAAA,IAC/B;AAAA,EACJ;AAEA,UAAQ,IAAI,gBAAgB,WAAW,SAAS,8BAA8B,4BAA4B;AAC1G,MAAI,UAAU,QAAQ;AAIlB,YAAQ,IAAI,UAAU,2BAA2B;AAAA,EACrD;AACA,UAAQ,IAAI,cAAc,GAAG;AAC7B,MAAI;AACA,YAAQ,IAAI,gBAAgB,SAAS;AACzC,MAAI,OAAO,YAAY,UAAU;AAC7B,QAAI,WAAW,GAAG;AAEd,YAAM,IAAI,SAAS,WAAW,OAAO,gBAAgB,eAAe,eAAe,iBAAiB,CAAC;AAAA,IACzG;AACA,YAAQ,IAAI,gBAAgB,GAAG,OAAO,GAAG;AAAA,EAC7C,WACS,SAAS;AACd,UAAM,WAAW,QAAQ,QAAQ;AACjC,UAAM,MAAM,KAAK,IAAI;AACrB,QAAI,YAAY,KAAK;AAEjB,YAAM,IAAI,SAAS,YAAY,OAAO,aAAa,eAAe,eAAe,iBAAiB,CAAC;AAAA,IACvG;AACA,YAAQ,IAAI,gBAAgB,GAAG,WAAW,GAAG,GAAG;AAAA,EACpD;AACA,SAAO;AACX;AAvCgB;AAwCT,SAAS,yBAAyB,SAAS,QAAQ;AACtD,MAAI,OAAO,IAAI,WAAW,IAAI,QAAQ,MAAM;AAC5C,OAAK,CAAC,IAAI,aAAa;AAEvB,WAAS,SAAS,QAAQ,QAAQ,IAAI,GAAG,IAAI,GAAG,KAAK;AACjD,SAAK,CAAC,IAAK,SAAS;AACpB,gBAAY;AAAA,EAChB;AACA,OAAK,IAAI,SAAS,CAAC;AACnB,SAAO,WAAW,WAAW,OAAO,aAAa,IAAI;AACzD;AAVgB;AAWT,SAAS,0BAA0B,wBAAwB,YAAY,gBAAgB;AAC1F,MAAI,UAAU,WAAW,GAAG;AACxB,QAAI,gBAAgB;AAKpB,QAAI;AACJ,QAAI;AACA,qBAAe,cAAc;AAAA,IACjC,SACO,IAAI;AAAA,IAAE;AACb,YAAQ,cAAc;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAED,cAAM,IAAI,SAAS,uBAAuB,cAAc,IAAI,IAAI,eAAe,eAAe,OAAO,CAAC;AAAA,IAC9G;AACA,WAAO,0BAA0B,mBAAmB,cAAc,OAAO,GAAG,cAAc,QAAQ,cAAc,UAAU;AAAA,EAC9H;AACA,MAAI,UAAU,wBAAwB,SAAS,cAAc,OAAO,aAAa,KAAK,eAAe,cAAc,OAAO,GAAG,CAAC,YAAY,YAAY,IAAI,YAAY,OAAO;AAC7K,OAAK,eAAe,UAAa,eAAe,eAAe,OAAO,CAAC,QAAQ;AAC3E,iBAAa,iBAAiB,UAAU;AACxC,mBAAe;AAAA,EACnB;AACA,SAAO,CAAC,YAAY,cAAc,YAAY;AAClD;AA3BgB;AAoCT,SAAS,2BAA2B,MAAM;AAC7C,MAAI,UAAU,aAAa,IAAI,GAAG,CAAC,MAAM,MAAM,IAAI,YAAY,OAAO,GAAG,OAAO,cAAc,OAAO;AACrG,SAAO,CAAC,SAAS,QAAQ,SAAS,SAAS,OAAO,eAAe,IAAI,QAAQ,IAAI;AACrF;AAHgB;AAQT,IAAI;AAAA,CACV,SAAUC,eAAc;AACrB,EAAAA,cAAaA,cAAa,MAAM,IAAI,CAAC,IAAI;AACzC,EAAAA,cAAaA,cAAa,SAAS,IAAI,GAAG,IAAI;AAClD,GAAG,iBAAiB,eAAe,CAAC,EAAE;AAS/B,SAAS,wBAAwB,QAAQ,aAAa,SAAS;AAClE,SAAOD,WAAU,MAAM,QAAQ,QAAQ,aAAa;AAChD,QAAI,cAAc,cAAc,IAAI,YAAY,IAAI,WAAW,CAAC,GAAG,SAAS,YAAY,WAAW;AAGnG,QAAI,iBAAiB,MAAM,GAAG;AAC1B,UAAI,uBAAuB,OAAO,UAAU;AAC5C,qBAAe;AAAA,QACX,MAAM,6BAAM,qBAAqB,KAAK,GAAhC;AAAA,MACV;AAAA,IACJ,OACK;AACD,qBAAe,OAAO,OAAO,aAAa,EAAE;AAAA,IAChD;AACA,WAAO,MAAM;AACT,UAAI,SAAS,MAAM,aAAa,KAAK;AACrC,UAAI,OAAO,UAAU,QAAW;AAC5B,YAAI,WAAW,QAAQ;AAGnB,mBAAS,IAAI,GAAG,IAAI,OAAO,MAAM,QAAQ;AACrC,2BAAe,OAAO,aAAa,OAAO,MAAM,CAAC,CAAC;AAGtD,cAAI,UAAU,YAAY,SAAS,YAAY,SAAS;AACxD,cAAI,YAAY;AACZ;AAEJ,sBAAY,YAAY,WAAW,aAAa,YAAY,UAAU,GAAG,OAAO,CAAC,CAAC;AAClF,wBAAc,YAAY,UAAU,OAAO;AAAA,QAC/C,OACK;AACD,sBAAY,YAAY,WAAW,OAAO,KAAK;AAAA,QACnD;AAEA,eAAO,UAAU,UAAU,KAAK,UAAU,CAAC,MAAM,aAAa,MAAM;AAChE,cAAI,SAAS;AACb,mBAAS,IAAI,GAAG,IAAI,GAAG;AACnB,sBAAU,UAAU,KAAK,UAAU,CAAC;AACxC,cAAI,UAAU,SAAS,KAAK,QAAQ;AAEhC,oBAAQ,aAAa,MAAM,UAAU,SAAS,GAAG,IAAI,MAAM,CAAC;AAC5D,wBAAY,UAAU,SAAS,IAAI,MAAM;AAAA,UAC7C;AAEI;AAAA,QACR;AAAA,MACJ;AAEA,UAAI,OAAO,MAAM;AACb,YAAI,UAAU,WAAW;AACrB;AACJ,YAAI,UAAU,CAAC,MAAM,aAAa,WAAW,UAAU,SAAS;AAC5D,gBAAM,IAAI,SAAS,iBAAiB,eAAe,eAAe,SAAS,CAAC;AAChF,gBAAQ,aAAa,SAAS,UAAU,SAAS,CAAC,CAAC;AACnD;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,CAAC;AACL;AA3DgB;AA6DhB,IAAM,mBAAmB,wBAAC,MAAM;AAC5B,SAAO,OAAO,EAAE,aAAa;AACjC,GAFyB;AAIzB,SAAS,YAAY,GAAG,GAAG;AACvB,MAAI,IAAI,IAAI,WAAW,EAAE,SAAS,EAAE,MAAM;AAC1C,IAAE,IAAI,CAAC;AACP,IAAE,IAAI,GAAG,EAAE,MAAM;AACjB,SAAO;AACX;AALS;AAQT,SAAS,YAAY,aAAa;AAO9B,UAAQ,aAAa;AAAA,IACjB,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AAAA,IACL,KAAK;AACD,YAAM,IAAI,SAAS,iCAAiC,eAAe,eAAe,QAAQ,CAAC;AAAA,IAC/F;AACI,YAAM,IAAI,SAAS,uCAAuC,aAAa,eAAe,eAAe,QAAQ,CAAC;AAAA,EACtH;AACJ;AApBS;AAsBT,SAAS,YAAY,SAAS;AAC1B,MAAI,MAAM;AACV,MAAI,IAAI,QAAQ,cAAc;AAC9B,MAAI,MAAM,QAAW;AACjB,QAAI,MAAM,QAAQ,CAAC;AACf,aAAO,CAAC,eAAe,UAAU,0BAA0B;AAC/D,cAAU;AAAA,EACd;AACA,MAAI,IAAI,QAAQ,aAAa;AAC7B,MAAI,MAAM,QAAW;AACjB,QAAI,MAAM,QAAQ,CAAC;AACf,aAAO,CAAC,eAAe,UAAU,yBAAyB;AAC9D,WAAO,SAAS,GAAG,EAAE;AACrB,QAAI,eAAe,IAAI,MAAM;AACzB,aAAO,CAAC,eAAe,UAAU,yBAAyB;AAAA,EAClE;AACA,SAAO,CAAC,MAAM,OAAO;AACzB;AAjBS;AAmBT,SAAS,cAAc,SAAS;AAC5B,MAAI,OAAO,CAAC;AACZ,WAAS,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,OAAO;AACrC,YAAQ,GAAG;AAAA,MACP,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD;AAAA,MACJ;AACI,aAAK,CAAC,IAAI;AAAA,IAClB;AACJ,SAAO;AACX;AAZS;AAcT,SAAS,aAAa,aAAa;AAC/B,MAAI,UAAU,CAAC;AACf,WAASE,UAAS,OAAO,aAAa,MAAM,QAAQ,WAAW,EAAE,KAAK,EAAE,MAAM,MAAM,GAAG;AACnF,QAAIA,UAAS;AACT;AACJ,QAAI,CAAC,KAAK,GAAG,GAAG,IAAIA,OAAM,MAAM,GAAG;AACnC,UAAM,QAAQ,IAAI,KAAK,GAAG,EAAE,KAAK;AACjC,UAAM,IAAI,KAAK;AACf,QAAI,IAAI,QAAQ,GAAG;AACnB,QAAI,OAAO,KAAK;AACZ,cAAQ,GAAG,IAAI,CAAC,GAAG,KAAK;AAAA,aACnB,MAAM,QAAQ,CAAC;AACpB,QAAE,KAAK,KAAK;AAAA;AAEZ,cAAQ,GAAG,IAAI;AAAA,EACvB;AACA,SAAO;AACX;AAjBS;AAmBT,SAAS,mBAAmB,cAAc;AACtC,MAAI,UAAU,CAAC;AACf,eAAa,QAAQ,CAAC,OAAO,QAAQ;AACjC,QAAI,IAAI,QAAQ,GAAG;AACnB,QAAI,OAAO,KAAK;AACZ,cAAQ,GAAG,IAAI,CAAC,GAAG,KAAK;AAAA,aACnB,MAAM,QAAQ,CAAC;AACpB,QAAE,KAAK,KAAK;AAAA;AAEZ,cAAQ,GAAG,IAAI;AAAA,EACvB,CAAC;AACD,SAAO;AACX;AAZS;AAcT,SAAS,iBAAiB,YAAY;AAClC,UAAQ,YAAY;AAAA,IAChB,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B,KAAK;AACD,aAAO,eAAe;AAAA,IAC1B;AACI,aAAO,eAAe;AAAA,EAC9B;AACJ;AA/BS;;;AClRF,IAAM,wBAAN,MAA4B;AAAA,EAVnC,OAUmC;AAAA;AAAA;AAAA,EAC/B,YAAY,gBAAgB;AACxB,SAAK,iBAAiB;AAAA,EAC1B;AAAA,EACA,aAAa,SAAS;AAClB,WAAO,gBAAgB,KAAK,gBAAgB,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,QAAQ,QAAQ,SAAS;AACrB,QAAI,OAAO,QAAQ;AACnB,QAAI,KAAK,SAAS,GAAG;AACjB,aAAO,KAAK,UAAU,GAAG,KAAK,SAAS,CAAC;AAC5C,WAAO,GAAG,IAAI,IAAI,OAAO,QAAQ,QAAQ,IAAI,OAAO,IAAI;AAAA,EAC5D;AAAA,EACA,gBAAgB,QAAkC;AAC9C,UAAM,IAAI,IAAI,SAAS,iDAAiD,eAAe,eAAe,aAAa,CAAC;AACpH,MAAE,aAAa,OAAO;AACtB,MAAE,cAAc,OAAO,QAAQ;AAC/B,UAAM;AAAA,EACV;AAAA,EACA,OAAO,QAAkC;AACrC,UAAM,IAAI,IAAI,SAAS,iDAAiD,eAAe,eAAe,aAAa,CAAC;AACpH,MAAE,aAAa,OAAO;AACtB,MAAE,cAAc,OAAO,QAAQ;AAC/B,UAAM;AAAA,EACV;AAAA,EACA,gBAAgB,QAAQ,OAAO,SAAS;AACpC,QAAI,IAAI,IAAI,IAAI,IAAI;AACpB,QAAI,MAAM,SAAS,UAAU,KAAK,IAAI,YAAY,QAAQ,OAAO,SAAS,KAAK,QAAQC,UAAS,KAAK,IAAI,WAAW,QAAQ,OAAO,SAAS,KAAK,WAAW,OAAO,aAAa,KAAK,IAAI,eAAe,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,MAAM,KAAK,QAAQ,QAAQ,GAAG,GAAG,aAAa,OAAO,EAAE,SAAS,OAAO,IAAI,aAAa,GAAG,YAAY,IAAI,SAAS,GAAG,iBAAiB,IAAI,0BAA0B,GAAG,oBAAoB,MAAM,aAAa,YAAY,IAAI,SAAS,GAAG,cAAc,aAAa,IAAI,SAAS;AAC7f,IAAAA,OAAM,KAAK,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,SAAS,GAAG;AAAA,MAAE,QAAQ;AAAA,MAAQ,SAAS,2BAA2B,IAAI,WAAW,QAAQ,GAAG,QAAQ,IAAI,SAAS,IAAI,IAAI;AAAA,MAAG,MAAM,yBAAyB,YAAY,MAAM;AAAA,MAAG,SAAS,KAAK,QAAQ,WAAW,QAAQ,OAAO,SAAS,KAAK;AAAA;AAAA,IACxR,CAAC,CAAC,EACE,KAAK,mBAAiB;AACvB,UAAI,CAAC,MAAM,QAAQ,IAAI,IAAI,0BAA0B,aAAa;AAClE,gBAAU,QAAQ,IAAI;AACtB,UAAI,QAAQ,QAAQ,SAAS,eAAe;AACxC,cAAM,IAAI,SAAS,WAAW,QAAQ,WAAW,SAAS,SAAS,eAAe,IAAI,GAAG,eAAe,IAAI,GAAG,IAAI;AACvH,UAAI,QAAQ;AACR,sBAAc;AAAA,UACV,MAAM,eAAe,IAAI;AAAA,UACzB,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,eAAe,IAAI;AAAA,QAC/E;AACJ,aAAO;AAAA,IACX,CAAC,EACI,KAAK,mBAAiB;AACvB,UAAI,CAAC,cAAc;AACf,cAAM,IAAI,SAAS,yBAAyB,eAAe,eAAe,QAAQ,CAAC;AACvF,aAAO,wBAAwB,cAAc,MAAM,cAAc,QAAQ,IAAI,cAAc,GAAG,CAAC,MAAM,SAAS;AAC1G,gBAAQ,MAAM;AAAA,UACV,KAAK,aAAa;AACd,2BAAe,cAAc,OAAO,EAAE,WAAW,MAAM,IAAI,aAAa,CAAC;AACzE,gCAAoB;AACpB;AAAA,UACJ,KAAK,aAAa;AACd,gBAAI,MAAM;AACV,aAAC,MAAM,QAAQ,YAAY,IAAI,2BAA2B,IAAI;AAC9D,0BAAc;AAAA,cACV,MAAM,eAAe,IAAI;AAAA,cACzB,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,eAAe,IAAI;AAAA,YAC/E;AACA;AAAA,QACR;AAAA,MACJ,CAAC;AAAA,IACL,CAAC,EACI,KAAK,MAAM;AACZ,UAAI,CAAC,gBAAgB,CAAC;AAClB,cAAM,IAAI,SAAS,oBAAoB,eAAe,eAAe,SAAS,CAAC;AAEnF,UAAI,CAAC;AACD,cAAM,IAAI,SAAS,kBAAkB,eAAe,eAAe,QAAQ,CAAC;AAChF,UAAI,YAAY,SAAS;AACrB,cAAM,IAAI,SAAS,YAAY,QAAQ,YAAY,MAAM,YAAY;AACzE,qBAAe,eAAe;AAC9B,gBAAU,QAAQ,WAAW;AAC7B,iBAAW,QAAQ,gBAAgB,CAAC,CAAC;AAAA,IACzC,CAAC,EACI,MAAM,YAAU;AACjB,UAAI;AACJ,UAAI,kBAAkB;AAClB,gBAAQ;AAAA,eACH,kBAAkB,SAAS,OAAO,SAAS;AAEhD,gBAAQ,IAAI,SAAS,OAAO,SAAS,eAAe,eAAe,SAAS,CAAC;AAAA;AAG7E,gBAAQ,IAAI,SAAS,kBAAkB,QAAQ,OAAO,UAAU,KAAK,QAAQ,eAAe,eAAe,QAAQ,CAAC;AACxH,YAAM,aAAa,OAAO;AAC1B,YAAM,cAAc,OAAO,QAAQ;AACnC,gBAAU,cAAc,KAAK;AAC7B,qBAAe,YAAY,KAAK;AAChC,gBAAU,cAAc,KAAK;AAC7B,iBAAW,cAAc,KAAK;AAAA,IAClC,CAAC;AACD,WAAO,IAAI,oBAAoB,SAAS,KAAK,IAAI,UAAU,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,OAAO,UAAU,SAAS,gBAAgB,UAAU,SAAS,WAAW,OAAO;AAAA,EAC/K;AAAA,EACA,MAAM,QAAQ,OAAO,SAAS;AAC1B,QAAI,IAAI,IAAI,IAAI,IAAI;AACpB,QAAI,MAAM,SAAS,UAAU,KAAK,IAAI,YAAY,QAAQ,OAAO,SAAS,KAAK,QAAQA,UAAS,KAAK,IAAI,WAAW,QAAQ,OAAO,SAAS,KAAK,WAAW,OAAO,aAAa,KAAK,IAAI,eAAe,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,MAAM,KAAK,QAAQ,QAAQ,GAAG,GAAG,aAAa,OAAO,EAAE,SAAS,OAAO,IAAI,aAAa,GAAG,YAAY,IAAI,SAAS,GAAG,cAAc,aAAa,IAAI,SAAS,GAAG,aAAa,YAAY,IAAI,SAAS,GAAG,cAAc,aAAa,IAAI,SAAS;AAC5d,IAAAA,OAAM,KAAK,OAAO,OAAO,OAAO,OAAO,CAAC,GAAG,SAAS,GAAG;AAAA,MAAE,QAAQ;AAAA,MAAQ,SAAS,2BAA2B,IAAI,WAAW,QAAQ,GAAG,QAAQ,IAAI,SAAS,IAAI,IAAI;AAAA,MAAG,MAAM,yBAAyB,YAAY,MAAM;AAAA,MAAG,SAAS,KAAK,QAAQ,WAAW,QAAQ,OAAO,SAAS,KAAK;AAAA;AAAA,IACxR,CAAC,CAAC,EACE,KAAK,mBAAiB;AACvB,UAAI,CAAC,MAAM,QAAQ,IAAI,IAAI,0BAA0B,aAAa;AAClE,gBAAU,QAAQ,IAAI;AACtB,UAAI,QAAQ,QAAQ,SAAS,eAAe;AACxC,cAAM,IAAI,SAAS,WAAW,QAAQ,WAAW,SAAS,SAAS,eAAe,IAAI,GAAG,eAAe,IAAI,GAAG,IAAI;AACvH,UAAI,QAAQ;AACR,sBAAc;AAAA,UACV,MAAM,eAAe,IAAI;AAAA,UACzB,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,eAAe,IAAI;AAAA,QAC/E;AACJ,aAAO;AAAA,IACX,CAAC,EACI,KAAK,mBAAiB;AACvB,UAAI,CAAC,cAAc;AACf,cAAM,IAAI,SAAS,yBAAyB,eAAe,eAAe,QAAQ,CAAC;AACvF,aAAO,wBAAwB,cAAc,MAAM,cAAc,QAAQ,IAAI,cAAc,GAAG,CAAC,MAAM,SAAS;AAC1G,gBAAQ,MAAM;AAAA,UACV,KAAK,aAAa;AACd,gBAAI;AACA,oBAAM,IAAI,SAAS,mCAAmC,eAAe,eAAe,SAAS,CAAC;AAClG,2BAAe,OAAO,EAAE,WAAW,MAAM,IAAI,aAAa;AAC1D;AAAA,UACJ,KAAK,aAAa;AACd,gBAAI,MAAM;AACV,aAAC,MAAM,QAAQ,YAAY,IAAI,2BAA2B,IAAI;AAC9D,0BAAc;AAAA,cACV,MAAM,eAAe,IAAI;AAAA,cACzB,QAAQ,WAAW,QAAQ,WAAW,SAAS,SAAS,eAAe,IAAI;AAAA,YAC/E;AACA;AAAA,QACR;AAAA,MACJ,CAAC;AAAA,IACL,CAAC,EACI,KAAK,MAAM;AACZ,UAAI,CAAC,gBAAgB;AACjB,cAAM,IAAI,SAAS,oBAAoB,eAAe,eAAe,SAAS,CAAC;AAEnF,UAAI,CAAC;AACD,cAAM,IAAI,SAAS,kBAAkB,eAAe,eAAe,QAAQ,CAAC;AAChF,UAAI,CAAC,gBAAgB,YAAY,SAAS;AACtC,cAAM,IAAI,SAAS,yBAAyB,eAAe,eAAe,SAAS,CAAC;AACxF,UAAI,CAAC;AACD,cAAM,IAAI,SAAS,YAAY,QAAQ,YAAY,MAAM,YAAY;AACzE,iBAAW,QAAQ,YAAY;AAC/B,UAAI,YAAY,SAAS;AACrB,cAAM,IAAI,SAAS,YAAY,QAAQ,YAAY,MAAM,YAAY;AACzE,gBAAU,QAAQ,WAAW;AAC7B,iBAAW,QAAQ,gBAAgB,CAAC,CAAC;AAAA,IACzC,CAAC,EACI,MAAM,YAAU;AACjB,UAAI;AACJ,UAAI,kBAAkB;AAClB,gBAAQ;AAAA,eACH,kBAAkB,SAAS,OAAO,SAAS;AAEhD,gBAAQ,IAAI,SAAS,OAAO,SAAS,eAAe,eAAe,SAAS,CAAC;AAAA;AAG7E,gBAAQ,IAAI,SAAS,kBAAkB,QAAQ,OAAO,UAAU,KAAK,QAAQ,eAAe,eAAe,QAAQ,CAAC;AACxH,YAAM,aAAa,OAAO;AAC1B,YAAM,cAAc,OAAO,QAAQ;AACnC,gBAAU,cAAc,KAAK;AAC7B,iBAAW,cAAc,KAAK;AAC9B,gBAAU,cAAc,KAAK;AAC7B,iBAAW,cAAc,KAAK;AAAA,IAClC,CAAC;AACD,WAAO,IAAI,UAAU,SAAS,KAAK,IAAI,UAAU,QAAQ,OAAO,SAAS,KAAK,CAAC,GAAG,OAAO,UAAU,SAAS,WAAW,SAAS,UAAU,SAAS,WAAW,OAAO;AAAA,EACzK;AACJ;;;AC5JA,IAAM,mBAAmB,OAAO,IAAI,uBAAA;AAuBpC,IAAa,gBAAb,cAAmC,WAAsD;SAAA;;;EAExF,IAAI,MAAiC;AACpC,WAAO,KAAK,KAAK;;EAWlB,KAAK,gBAAA,IAAoB;AACxB,WAAO;;EAGR,YAAY,SAA+B;AAC1C,UAAM,EAAE,SAAS,QAAQ,QAAA,CAAS;AAClC,UAAM,YACL,QAAQ,aACR,IAAI,sBAAsB;MAAE,SAAS,QAAQ;MAAS,WAAW,QAAQ;KAAW;AACrF,SAAK,8BAA8B,IAAI,kCAAkC,SAAA;AACzE,SAAK,gBAAgB,IAAI,oBAAoB,SAAA;AAC7C,SAAK,eAAe,IAAI,mBAAmB,SAAA;AAC3C,SAAK,sBAAsB,IAAI,0BAA0B,SAAA;AACzD,SAAK,qBAAqB,IAAI,yBAAyB,SAAA;AACvD,SAAK,+BAA+B,IAAI,mCAAmC,SAAA;AAC3E,SAAK,cAAc,IAAI,kBAAkB,SAAA;AACzC,SAAK,iBAAiB,IAAI,qBAAqB,SAAA;AAE/C,SAAK,OAAO,IAAI,eAAe;MAC9B,QAAQ;MACR,MAAM;MACN,SAAS,QAAQ;MACjB,KAAK,QAAQ;KACb;;EAGF,WACC,OACsD;AACtD,WAAO,KAAK,KAAK,WAAW,KAAA;;EAG7B,UACC,OACqD;AACrD,WAAO,KAAK,KAAK,UAAU,KAAA;;EAG5B,UAAU,OAAmF;AAC5F,WAAO,KAAK,KAAK,UAAU,KAAA;;EAG5B,iBACC,OAC4D;AAC5D,WAAO,KAAK,KAAK,iBAAiB,KAAA;;EAGnC,WAAW,OAAqF;AAC/F,WAAO,KAAK,KAAK,WAAW,KAAA;;EAG7B,aACC,OAC+C;AAC/C,WAAO,KAAK,KAAK,aAAa,KAAA;;EAG/B,gBACC,OACkD;AAClD,WAAO,KAAK,KAAK,gBAAgB,KAAA;;EAGlC,eACC,OACqD;AACrD,WAAO,KAAK,KAAK,eAAe,KAAA;;EAGjC,mBACC,OACqD;AACrD,WAAO,KAAK,KAAK,mBAAmB,KAAA;;EAGrC,0BACC,OACqD;AACrD,WAAO,KAAK,KAAK,0BAA0B,KAAA;;EAG5C,mBACC,OACqD;AACrD,WAAO,KAAK,KAAK,mBAAmB,KAAA;;EAGrC,oBACC,OAC6D;AAC7D,WAAO,KAAK,KAAK,oBAAoB,KAAA;;EAGtC,uBAA6E;AAC5E,WAAO,KAAK,KAAK,qBAAA;;EAGlB,MAAM,kBACL,OACuD;AACvD,UAAM,eAAe,MAAM,SAAS,SAAS;AAC7C,UAAM,QAAQ;MAAC;MAAY;MAAQ;MAAc;MAAQ;;AACzD,QAAI,aACH,OAAM,KAAK,OAAA;AAGZ,UAAM,WAAW,MAAM,KAAK,aAAa,kBAAkB;MAC1D,QAAQ,MAAM;MACd,WAAW,MAAM,SAAS,WAAW,MAAM,MAAA,IAAU;MACrD,UAAU,MAAM;MAChB,UAAU,EACT,MAAA;KAED;AAED,WAAO;MACN,eAAe,SAAS,SAAS,cAAc,IAAA,CAC7C,UAA+C;AAC/C,cAAM,kBAAkB,MAAM,SAAS,8BAA8B;AACrE,cAAM,YAAY,kBACf,gEAAgE,MAAM,MAAM,IAAA,uBAC5E,6BAA6B,MAAM,MAAM,IAAA,IAAS,MAAM,SAAA;AAC3D,eAAO;UACN,OAAO,kBAAkB,kBAAkB;UAC3C,SAAS,MAAM;UACf,MAAM;YACL,MAAM,MAAM,MAAM;YAClB,KAAK,MAAM,MAAM;;UAElB,WAAW,MAAM;UACjB,MAAM,mBAAmB,SAAA;UACzB,SAAS,MAAM;UACf,OAAQ,eACL;YAAE,MAAM,MAAM;YAAY,KAAK,MAAM,OAAO,SAAS,IAAI,WAAA;cACzD;;;MAIN,QAAQ,SAAS,SAAS,gBAAgB,SAAS,SAAS,SAAS,aAAA,IAAiB;MACtF,aAAa,SAAS,SAAS,kBAAkB;;;EAInD,gBACC,OACkD;AAClD,WAAO,KAAK,KAAK,gBAAgB,KAAA;;EAGlC,gBACC,OACkD;AAClD,WAAO,KAAK,KAAK,gBAAgB,KAAA;;EAGlC,2BAA8C;AAC7C,WAAO,KAAK,KAAK,yBAAA;;EAGlB,uBACC,OACgD;AAChD,WAAO,KAAK,KAAK,uBAAuB,KAAA;;EAGzC,uBACC,OACyD;AACzD,WAAO,KAAK,KAAK,uBAAuB,KAAA;;;;;AvH7OnC,IAAM,aAAoB;AAAA,EAC/B,UAAU,WAAW;AAAA,EACrB,UAAU,WAAW;AACvB;AAEA,SAAS,oBAAoB,KAAqB;AAChD,MAAI,IAAI,SAAS,SAAS,EAAG,QAAO;AACpC,MAAI,IAAI,SAAS,SAAS,EAAG,QAAO;AACpC,MAAI,IAAI,SAAS,QAAQ,EAAG,QAAO;AACnC,MAAI,IAAI,SAAS,UAAU,KAAK,IAAI,SAAS,WAAW,KAAK,IAAI,SAAS,WAAW,EAAG,QAAO;AAC/F,SAAO;AACT;AANS;AAQT,SAAS,YAAY,SAA6B;AAChD,SAAO,UAAU,SAAS,YAAY,IAAI,OAAO,KAAK,eAAe,OAAO;AAC9E;AAFS;AAMF,SAAS,UAAU,SAAoC;AAC5D,QAAM,cAAc,YAAY,OAAO;AACvC,SAAO,IAAI,cAAc,EAAE,SAAS,oBAAoB,WAAW,GAAU,SAAS,YAAY,CAAC;AACrG;AAHgB;AAKT,SAAS,eAAe,SAA6B;AAC1D,UAAQ,SAAS;AAAA,IACf,KAAK,WAAW;AACd,aAAO;AAAA,EACX;AACA,SAAO;AACT;AANgB;AAOf,OAAO,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;;;AwHhCtD,SAAS,cAAAC,mBAAkB;AAO3B,IAAM,oBAAoB,oBAAI,IAA0B;AAExD,IAAI,YAAY;AAChB,eAAsB,eAAe;AACnC,MAAI,WAAW;AACb;AAAA,EACF;AACA,MAAI,OAAO,aAAa;AACxB,MAAI;AACF,UAAM,OAAO,MAAMC,OAAM,yFAAyF;AAClH,YAAS,MAAM,KAAK,KAAK,GAAW;AAAA,EACtC,SAAS,GAAG;AACV,YAAQ,KAAK,oDAAoD;AAAA,EACnE;AAEA,cAAY,IAAI;AAChB,cAAY;AACd;AAdsB;AAwBtB,SAAS,YAAY,MAAqB;AACxC,aAAW,QAAQ,MAAM;AACvB,QAAI,KAAK,QAAQ,WAAW,iBAAiB,GAAG;AAC9C;AAAA,IACF;AACA,QAAI,KAAK,YAAY,WAAW;AAC9B;AAAA,IACF;AACA,QAAI,SAAS;AACb,QAAI,KAAK,KAAK,SAAS,OAAO,GAAG;AAC/B,eAAS;AAAA,IACX;AACA,QAAI,KAAK,KAAK,SAAS,WAAW,GAAG;AACnC,eAAS;AAAA,IACX;AACA,QAAI,KAAK,KAAK,SAAS,UAAU,GAAG;AAClC,eAAS;AAAA,IACX;AACA,sBAAkB,IAAI,KAAK,SAAS;AAAA,MAClC,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAzBS;AA2BF,SAAS,iBAAiB;AAC/B,SAAO;AACT;AAFgB;AAIT,SAAS,YAAY,MAAuB;AACjD,QAAM,CAAC,MAAM,QAAQ,IAAI,IAAI,KAAK,MAAM,QAAQ;AAChD,QAAM,aAAa,CAAC,kBAAkB,IAAI,GAAG,QAAQ,IAAI,EAAE,KAAK,QAAQ;AACxE,SAAO,kBAAkB,IAAI,UAAU;AACzC;AAJgB;AAMT,SAAS,YAAY,MAA4B;AACtD,QAAM,IAAI,kBAAkB,IAAI,IAAI;AACpC,MAAI,CAAC,GAAG;AACN,UAAM,QAAQ,KAAK,MAAM,IAAI;AAE7B,WAAO;AAAA,MACL;AAAA,MACA,QAAQ,MAAM,CAAC;AAAA,MACf,UAAU;AAAA,MACV,QAAQ;AAAA,IACV;AAAA,EACF;AACA,SAAO;AACT;AAbgB;AAehB,IAAM,sBAAsB,oBAAI,IAA0C;AAE1E,eAAsB,wBAAwB,MAAc,SAA6C;AACvG,QAAM,IAAI,kBAAkB,IAAI,IAAI;AACpC,MAAI,CAAC,GAAG;AACN,cAAU,WAAWC,YAAW;AAChC,UAAM,MAAM,UAAU,MAAM;AAC5B,QAAI,UAAU,oBAAoB,IAAI,GAAG;AACzC,QAAI,CAAC,SAAS;AACZ,YAAM,SAAS,UAAU,OAAO;AAChC,gBAAU,OAAO,gBAAgB,EAAE,UAAU,KAAK,CAAC,EAAE,KAAK,CAACC,OAAMA,GAAE,YAAY;AAC/E,0BAAoB,IAAI,KAAK,OAAO;AAAA,IACtC;AACA,UAAM,OAAO,MAAM;AACnB,QAAI,SAAS,MAAM;AACjB,YAAM,MAAM,sBAAsB,GAAG;AAAA,IACvC;AAEA,UAAM,QAAQ,KAAK,MAAM,QAAQ;AACjC,WAAO;AAAA,MACL;AAAA,MACA,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,MACf,QAAQ;AAAA,IACV;AAAA,EACF;AACA,SAAO;AACT;AAzBsB;AA2BtB,eAAsB,SAAS,UAAkB,WAAoC;AACnF,MAAI,CAAC,YAAY,QAAQ,GAAG;AAC1B,WAAO;AAAA,EACT;AACA,QAAM,OAAO,IAAI,KAAK,YAAY,GAAI;AACtC,MAAI;AACF,WAAQ,MAAM,eAAeD,YAAW,aAAa,UAAU,IAAI,KAAM;AAAA,EAC3E,SAAS,OAAO;AACd,YAAQ,IAAI,KAAK,UAAU,KAAK,CAAC;AACjC,UAAM;AAAA,EACR;AACF;AAXsB;AAatB,eAAsB,oBAAoB,GAAW,UAAwB,WAAmB;AAC9F,QAAM,QAAQ,MAAM,SAAS,SAAS,MAAM,SAAS;AACrD,QAAM,SAAS,EAAE,UAAU,SAAS,QAAQ;AAC5C,SAAO,OAAO,aAAa,KAAK;AAClC;AAJsB;AAMtB,IAAM,eAAe;AAAA,EACnB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,IACR;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,UAAU;AAAA,MACV,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,MAAM,CAAC;AAAA,MACP,UAAU;AAAA,MACV,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,UAAU;AAAA,MACV,YAAY,CAAC;AAAA,IACf;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,MAAM,CAAC;AAAA,MACP,UAAU;AAAA,MACV,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SACE;AAAA,MACF,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SACE;AAAA,MACF,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SACE;AAAA,MACF,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC;AAAA,MACP,YAAY;AAAA,QACV,aAAa;AAAA,MACf;AAAA,IACF;AAAA,EACF;AACF;AACC,OAAO,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;","names":["base64String","chunk","array","vector","bigint","BcsType","options","#bytes","name","array","TypeTagSerializer","ClientCache","bcs","NAME_SEPARATOR","#overrides","#pageSize","#url","bcs","object","TransactionExpiration","ObjectArg","NormalizedCallArg","TransactionExpiration","TypeTag","StructTag","TransactionDataBuilder","bcs","resolved","bcs","UnknownFieldHandler","is","WireType","TWO_PWR_32_DBL","chunk","defaultsWrite","defaultsRead","ScalarType","LongType","RepeatType","map","e","jsonValue","optional","T","copy","TypeOrigin","Owner","Argument","FundsWithdrawal","Owner","Object","TransactionKind","TransactionExpiration","ProgrammableTransaction","Command","Argument","Object","ExecutionStatus","CommandArgumentError","TypeArgumentError","PackageUpgradeError","MoveLocation","GasCostSummary","ExecutionStatus","GasCostSummary","TransactionEffects","Owner","PasskeyAuthenticator","TransactionEffects","DeferredState","__awaiter","Argument","object","bcs","GasCostSummary","copy","Object","Object","GrpcStatusCode","__awaiter","GrpcWebFrame","chunk","fetch","SuiChainId","fetch","SuiChainId","r"]}
|