@layerzerolabs/protocol-stellar-v2 0.2.21 → 0.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +347 -271
- package/.turbo/turbo-lint.log +277 -208
- package/.turbo/turbo-test.log +1700 -1370
- package/Cargo.lock +22 -51
- package/Cargo.toml +6 -1
- package/contracts/common-macros/src/auth.rs +10 -9
- package/contracts/common-macros/src/contract_ttl.rs +1 -4
- package/contracts/common-macros/src/error.rs +1 -3
- package/contracts/common-macros/src/lib.rs +65 -61
- package/contracts/common-macros/src/storage.rs +212 -65
- package/contracts/common-macros/src/tests/auth.rs +75 -6
- package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
- package/contracts/common-macros/src/tests/error.rs +9 -21
- package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
- package/contracts/common-macros/src/tests/mod.rs +2 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
- package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
- package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
- package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
- package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
- package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
- package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
- package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
- package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
- package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
- package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
- package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
- package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
- package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
- package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
- package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
- package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
- package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
- package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
- package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
- package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
- package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
- package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
- package/contracts/common-macros/src/ttl_configurable.rs +1 -4
- package/contracts/common-macros/src/upgradeable.rs +21 -3
- package/contracts/endpoint-v2/Cargo.toml +0 -4
- package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
- package/contracts/endpoint-v2/src/errors.rs +26 -1
- package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
- package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
- package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
- package/contracts/endpoint-v2/src/lib.rs +0 -1
- package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
- package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
- package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
- package/contracts/endpoint-v2/src/storage.rs +9 -1
- package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
- package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
- package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
- package/contracts/layerzero-views/src/tests/mod.rs +1 -0
- package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
- package/contracts/layerzero-views/src/types.rs +2 -3
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
- package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
- package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
- package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
- package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
- package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
- package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
- package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
- package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
- package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
- package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
- package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
- package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
- package/contracts/message-libs/uln-302/src/errors.rs +21 -0
- package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
- package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
- package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
- package/contracts/message-libs/uln-302/src/storage.rs +5 -5
- package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
- package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
- package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
- package/contracts/oapps/counter/Cargo.toml +2 -0
- package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
- package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
- package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
- package/contracts/oapps/counter/src/tests/mod.rs +1 -0
- package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
- package/contracts/oapps/oapp/src/lib.rs +0 -3
- package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
- package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
- package/contracts/oapps/oft/src/lib.rs +3 -0
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
- package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
- package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
- package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
- package/contracts/oapps/oft/src/tests/mod.rs +2 -0
- package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
- package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
- package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
- package/contracts/oapps/oft-core/src/lib.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
- package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
- package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
- package/contracts/utils/src/auth.rs +2 -2
- package/contracts/utils/src/buffer_reader.rs +61 -10
- package/contracts/utils/src/buffer_writer.rs +35 -20
- package/contracts/utils/src/bytes_ext.rs +1 -2
- package/contracts/utils/src/errors.rs +5 -3
- package/contracts/utils/src/multisig.rs +59 -36
- package/contracts/utils/src/option_ext.rs +3 -3
- package/contracts/utils/src/ownable.rs +12 -6
- package/contracts/utils/src/tests/auth.rs +179 -0
- package/contracts/utils/src/tests/buffer_reader.rs +203 -1
- package/contracts/utils/src/tests/buffer_writer.rs +176 -5
- package/contracts/utils/src/tests/mod.rs +2 -0
- package/contracts/utils/src/tests/multisig.rs +170 -141
- package/contracts/utils/src/tests/option_ext.rs +1 -1
- package/contracts/utils/src/tests/ownable.rs +156 -161
- package/contracts/utils/src/tests/test_helper.rs +21 -1
- package/contracts/utils/src/tests/testing_utils.rs +84 -2
- package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
- package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
- package/contracts/utils/src/tests/upgradeable.rs +115 -6
- package/contracts/utils/src/ttl_configurable.rs +22 -12
- package/contracts/utils/src/ttl_extendable.rs +1 -3
- package/contracts/utils/src/upgradeable.rs +21 -24
- package/contracts/workers/dvn/src/auth.rs +1 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
- package/contracts/workers/dvn/src/storage.rs +1 -1
- package/contracts/workers/dvn/src/tests/auth.rs +136 -3
- package/contracts/workers/dvn/src/tests/mod.rs +0 -1
- package/contracts/workers/dvn/src/tests/setup.rs +4 -10
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
- package/contracts/workers/worker/src/worker.rs +1 -1
- package/docs/oft-guide.md +5 -5
- package/package.json +5 -7
- package/sdk/.turbo/turbo-test.log +662 -466
- package/sdk/LICENSE +23 -0
- package/sdk/dist/generated/bml.d.ts +101 -106
- package/sdk/dist/generated/bml.js +108 -26
- package/sdk/dist/generated/counter.d.ts +123 -484
- package/sdk/dist/generated/counter.js +103 -25
- package/sdk/dist/generated/dvn.d.ts +141 -699
- package/sdk/dist/generated/dvn.js +106 -28
- package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
- package/sdk/dist/generated/dvn_fee_lib.js +27 -24
- package/sdk/dist/generated/endpoint.d.ts +158 -836
- package/sdk/dist/generated/endpoint.js +107 -29
- package/sdk/dist/generated/executor.d.ts +139 -671
- package/sdk/dist/generated/executor.js +106 -28
- package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
- package/sdk/dist/generated/executor_fee_lib.js +106 -28
- package/sdk/dist/generated/executor_helper.d.ts +95 -92
- package/sdk/dist/generated/executor_helper.js +103 -25
- package/sdk/dist/generated/layerzero_view.d.ts +178 -335
- package/sdk/dist/generated/layerzero_view.js +172 -33
- package/sdk/dist/generated/oft.d.ts +137 -680
- package/sdk/dist/generated/oft.js +103 -25
- package/sdk/dist/generated/price_feed.d.ts +45 -444
- package/sdk/dist/generated/price_feed.js +27 -24
- package/sdk/dist/generated/sml.d.ts +119 -428
- package/sdk/dist/generated/sml.js +103 -25
- package/sdk/dist/generated/treasury.d.ts +109 -288
- package/sdk/dist/generated/treasury.js +103 -25
- package/sdk/dist/generated/uln302.d.ts +190 -527
- package/sdk/dist/generated/uln302.js +170 -31
- package/sdk/dist/generated/upgrader.d.ts +14 -34
- package/sdk/dist/generated/upgrader.js +24 -21
- package/sdk/package.json +3 -4
- package/sdk/test/counter-sml.test.ts +218 -142
- package/sdk/test/counter-uln.test.ts +189 -145
- package/sdk/test/oft-sml.test.ts +173 -156
- package/sdk/test/suites/constants.ts +7 -1
- package/sdk/test/suites/globalSetup.ts +140 -74
- package/sdk/turbo.json +1 -1
- package/tools/ts-bindings-gen/Cargo.toml +4 -4
- package/tools/ts-bindings-gen/src/main.rs +4 -0
- package/turbo.json +3 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
- package/contracts/endpoint-v2/src/constants.rs +0 -52
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
- package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
- package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
- package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
- package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
- package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
- package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
- package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
- /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
|
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
|
|
|
6
6
|
export * as rpc from '@stellar/stellar-sdk/rpc';
|
|
7
7
|
/**
|
|
8
8
|
* Embedded WASM bytecode (base64-encoded)
|
|
9
|
-
* Size:
|
|
9
|
+
* Size: 40680 bytes (39.73 KB)
|
|
10
10
|
*/
|
|
11
|
-
export declare const WASM_BASE64 = "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IAKtQiCGQgSEEICAgIAAGgviAwIBfwJ+I4CAgIAAQTBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBwABAgMEBQYACyABQQhqQYCAwIAAQQMQ1oCAgAAgASgCCA0IIAFBCGogASkDEBDXgICAAAwGCyABQSBqQYOAwIAAQRAQ1oCAgAAgASgCIA0HIAEgASkDKDcDCCABIAApAwg3AxggASAANQIEQiCGQgSENwMQIAFBIGogAUEIahDYgICAACABKQMoIQIgASkDICEDDAYLIAFBCGpBk4DAgABBDBDWgICAACABKAIIDQYgAUEIaiABKQMQENeAgIAADAQLIAFBCGpBn4DAgABBBRDWgICAACABKAIIDQUgAUEIaiABKQMQENeAgIAADAMLIAFBCGpBpIDAgABBDRDWgICAACABKAIIDQQgAUEIaiABKQMQENeAgIAADAILIAFBCGpBsYDAgABBDBDWgICAACABKAIIDQMgAUEIaiABKQMQIAA1AgRCIIZCBIQQ2YCAgAAMAQsgAUEIakG9gMCAAEENENaAgIAAIAEoAggNAiABQQhqIAEpAxAgADUCBEIghkIEhBDZgICAAAsgASkDECECIAEpAwghAwsgA1ANAQsACyABQTBqJICAgIAAIAILdAIBfwJ+I4CAgIAAQRBrIgIkgICAgABCACEDAkACQCABEKuAgIAAIgRCARCtgICAAEUNACACIARCARCBgICAABCugICAACACKAIAQQFGDQEgACACKQMINwMIQgEhAwsgACADNwMAIAJBEGokgICAgAAPCwALDwAgACABEKKAgIAAQgFRC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQlICAgAAhAQsgACADNwMAIAAgATcDCAsOACAAIAFCARCwgICAAAsbACAAEKuAgIAAIAEQsYCAgAAgAhCCgICAABoLQQEBfyOAgICAAEEQayIBJICAgIAAIAEgABCjgYCAAAJAIAEoAgBBAUcNAAALIAEpAwghACABQRBqJICAgIAAIAALdAIBfwJ+I4CAgIAAQRBrIgIkgICAgABCACEDAkACQCABEKuAgIAAIgRCAhCtgICAAEUNACACIARCAhCBgICAABCugICAACACKAIAQQFGDQEgACACKQMINwMIQgEhAwsgACADNwMAIAJBEGokgICAgAAPCwALDgAgACABQgIQsICAgAALnwUBAX8jgICAgABB8ABrIgokgICAgAAQtYCAgAAQtoCAgAAgBBC1gICAACAFIAYQqYCAgAACQAJAIAcgCIRCAFENACAKQcAAahC1gICAAEKO6PcfEIOAgIAAEISAgIAAELeAgIAAIAopA0AiBkICUQ0BAkAgBqdBAXFFDQAgCikDSCAEELWAgIAAIAcgCBCpgICAAAwBC0KDgICAsPoBELiAgIAAAAsgCkHAAGogARC5gICAACAKKQNIIQQgCikDQBC6gICAABC1gICAACEGEIWAgIAAIQUgCiAHQgBSIAhCAFUgCFAbOgAkIAogAzcDGCAKIAI3AxAgCiAENwMIIAogATYCICAKQQhqELuAgIAAIQggCiAJNwM4IAogCDcDMCAKIAU3AyhBACEBA0ACQCABQRhHDQBBACEBAkADQCABQRhGDQEgCkHAAGogAWogCkEoaiABaikDADcDACABQQhqIQEMAAsLIAZCjtKzlQ4gCkHAAGpBAxCngICAABCEgICAACEIQQAhAQJAA0AgAUEYRg0BIApBKGogAWpCAjcDACABQQhqIQEMAAsLIAhC/wGDQswAUg0CIAhB7IHAgABBAyAKQShqQQMQvICAgAAgCkHAAGogCikDKBC9gICAACAKKAJAQQFxDQIgCikDaCEIIAopA2AhByAKKQNYIQQgCikDUCEGIApBwABqIAopAzAQvoCAgAAgCigCQA0CIAopA0ghBSAKQcAAaiAKKQM4EK6AgIAAIAooAkBBAUYNAiAKKQNIIQkgACAHNwMQIAAgBjcDACAAIAk3AyggACAFNwMgIAAgCDcDGCAAIAQ3AwggCkHwAGokgICAgAAPCyAKQcAAaiABakICNwMAIAFBCGohAQwACwsQv4CAgAAAC4cBAgF/AX4jgICAgABBEGsiACSAgICAACAAQQRqEMGAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBDCgICAAAsCQAJAQQAgABDGgICAACIBQgIQrYCAgABFDQAgAUICEIGAgIAAIgFC/wGDQs0AUQ0BAAsQyICAgAAACyAAQRBqJICAgIAAIAELNgACQCAAQYSCwIAAQQwQ84CAgAAQg4CAgAAQhICAgAAiAEL/AYNCzQBRDQAQv4CAgAAACyAACzkAAkAgAUICUQ0AAkAgAUL/AYNCzQBRDQAgAEICNwMADwsgACABNwMIIABCATcDAA8LIABCADcDAAsLACAAEKSAgIAAGgvGAQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAhDBgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQwoCAgAALAkACQAJAQQEgARDGgICAACIDQgEQrYCAgABFDQAgAiADQgEQgYCAgAAQvoCAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwghAyAAQgE3AwAgACADNwMIIAIQxICAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEMeAgIAACyACQRBqJICAgIAACx4AAkAgAKdBAXFFDQAPC0KDgICAkPoBELiAgIAAAAtzAgF/AX4jgICAgABBMGsiASSAgICAACABIAApAwA3AyggASAAMQAcNwMgIAEgACkDEDcDGCABIAApAwg3AxAgASAANQIYQiCGQgSENwMIQeyAwIAAQQUgAUEIakEFEPWAgIAAIQIgAUEwaiSAgICAACACCzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCdgICAABoL7wECAn8DfiOAgICAAEEwayICJICAgIAAQQAhAwJAA0AgA0EQRg0BIAIgA2pCAjcDACADQQhqIQMMAAsLQgAhBEIBIQUCQCABQv8Bg0LMAFINACABQdSBwIAAQQIgAkECELyAgIAAIAJBEGogAikDABCigYCAACACKAIQQQFGDQAgAikDKCEBIAIpAyAhBiACQRBqIAIpAwgQooGAgAAgAigCEEEBRg0AIAIpAyAhBCAAIAIpAyg3AyggACAENwMgIAAgATcDGCAAIAY3AxBCACEFQgAhBAsgACAFNwMAIAAgBDcDCCACQTBqJICAgIAAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCIgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAsJABDKgICAAAALvQEEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAACACQQRqEMGAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBDCgICAAAsCQAJAIAAgARDDgICAACIDQgEQrYCAgAAiBEUNACADQgEQgYCAgAAiBUL/AYNCyABSDQEgAkEEahDEgICAACACKAIEQQFHDQAgACABIAIoAgggAigCDBDFgICAAAsQhoCAgAAhAyACQRBqJICAgIAAIAUgAyAEGw8LAAsMACAAQQEQrIGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQo4CAgAAaC4oBAgF/AX4jgICAgABBMGsiAiSAgICAACACQSBqQYCDwIAAQQ8Q1oCAgAACQAJAIAIoAiANACACIAIpAyg3AwggAiABrUIghkIEhDcDGCACIACtQiCGQgSENwMQIAJBIGogAkEIahDYgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLDAAgAEECEKyBgIAACycAIAAgARDDgICAAEIBIAKtQiCGQgSEIAOtQiCGQgSEEICAgIAAGgubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBvYLAgABBBBDWgICAACACKAIADQIgAiACKQMIIAGtQiCGQgSEENmAgIAADAELIAJBtYLAgABBCBDWgICAACACKAIADQEgAiACKQMIENeAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLJwBBASAAEMaAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaCwkAEL+AgIAAAAscAAJAIABBf2pB/wFxQQRJDQAQyoCAgAAACyAACwMAAAuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahDBgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQwoCAgAALQQAhAQJAQQAQzICAgAAiAkICEK2AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBwoXAgABBBhDWgICAACABKAIADQMgASABKQMIENeAgIAADAILIAFByIXAgABBCBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFB0IXAgABBChDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQzoCAgAAQh4CAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQwYCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEMKAgIAACyAAENCAgIAAIAApAwghASAAKQMAQYoIENGAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAENCAgIAAIAApAwghASAAKQMAQYoIENGAgIAAIAEQh4CAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahDBgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQwoCAgAALIAAQ1YCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELiAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABDTgICAAAJAIAApAwBQDQBCg4CAgLCBARC4gICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQwYCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEMKAgIAAC0IAIQICQAJAQQEQ1ICAgAAiA0IAEK2AgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFB1YTAgABBDBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFB0ITAgABBBRDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQ1ICAgAAiAkICEK2AgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQqYGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEKeAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC10CAX8BfiOAgICAAEEgayICJICAgIAAIAIgASkDEDcDGCACIAEpAwg3AxAgAiABKQMANwMIIAJBCGpBAxCngICAACEDIABCADcDACAAIAM3AwggAkEgaiSAgICAAAtIAQF/I4CAgIAAQRBrIgMkgICAgAAgAyACNwMIIAMgATcDACADQQIQp4CAgAAhAiAAQgA3AwAgACACNwMIIANBEGokgICAgAALnwECAX8BfiOAgICAAEEQayICJICAgIAAEIaAgIAAIQMgAiAAOgALIAMgAxCIgICAAEKAgICAcINCBIQgAkELakEBENuAgIAAIQMgAiABQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCDCADIAMQiICAgABCgICAgHCDQgSEIAJBDGpBBBDbgICAACEDIAJBEGokgICAgAAgAwseACAAIAEgAq1CIIZCBIQgA61CIIZCBIQQmoCAgAALMQACQCAAEIiAgIAAQv////8PVg0AEN2AgIAAAAsgAEIEEImAgIAAQiCIpxDJgICAAAsJABDKgICAAAALqQMCAX8CfiOAgICAAEEgayICJICAgIAAQgwhAwJAIAFBBSABEIiAgIAAQiCIpxDfgICAACIBEIiAgIAAQoCAgIAQVA0AIAEQioCAgAAhAwsgAkEPaiADEIuAgIAAIgFCBEKEgICAgAIQjICAgAAQ4ICAgAACQAJAIAItAA9BAUYNACACKQAYIQMgAikAECEEIAJBD2ogAUKEgICAgAJChICAgIAEEIyAgIAAEOCAgIAAIAItAA9BAUYNACAEIAOEQgBSDQEgAikAECIBQjiGIAFCgP4Dg0IohoQgAUKAgPwHg0IYhiABQoCAgPgPg0IIhoSEIAFCCIhCgICA+A+DIAFCGIhCgID8B4OEIAFCKIhCgP4DgyABQjiIhISEIgNCf1cNASAAIAIpABgiAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhDcDACAAIAM3AwggAkEgaiSAgICAAA8LEL+AgIAAAAtCg4CAgCAQuICAgAAACxwAIAAgAa1CIIZCBIQgAq1CIIZCBIQQjICAgAAL2QECA38BfiOAgICAAEEQayICJICAgIAAQQEhAwJAIAEQiICAgABCgICAgHCDQoCAgICAAlINACACQQhqQgA3AwAgAkIANwMAIABBAWohBEEAIQMCQANAIAEQiICAgABCgICAgBBUDQEgARCfgICAACEFIAFBARCNgYCAACEBAkAgA0EQRg0AIAIgA2ogBUIgiDwAACADQQFqIQMMAQsLQRAQqIGAgAAACyAEIAIpAwA3AAAgBEEIaiACQQhqKQMANwAAQQAhAwsgACADOgAAIAJBEGokgICAgAAL7wICAX8BfiOAgICAAEEwayICJICAgIAAEIaAgIAAIQMgAkGABjsBECADIAMQiICAgABCgICAgHCDQgSEIAJBEGpBAhDbgICAAEKEgICAEBCNgICAACEDIAJCgICAgIDgwIbAADcDCCACQgA3AwAgAiAAQjiGNwMYIAJCADcDEAJAAkAgACABhEIAUg0AIAJBgCI7AS4gAyADEIiAgIAAQoCAgIBwg0IEhCACQS5qQQIQ24CAgABChICAgBAQjYCAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEBDbgICAACEADAELIAJBgMIAOwEuIAMgAxCIgICAAEKAgICAcINCBIQgAkEuakECENuAgIAAQoSAgIAQEI2AgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRAQ24CAgAAhACAAIAAQiICAgABCgICAgHCDQgSEIAJBEGpBEBDbgICAACEACyACQTBqJICAgIAAIAALXgIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAEN6AgIAAAkAgASkDACACKQMAWiABKQMIIgAgAikDCCIDWSAAIANRGw0AQoOAgIAwELiAgIAAAAsgAkEQaiSAgICAAAuFAQIBfwF+I4CAgIAAQTBrIgIkgICAgAAgAiABNwMIIAIgADYCBCACQQE2AgAgAkEQaiACEKyAgIAAAkAgAikDECIBUA0AIAJBJGoQxICAgAAgAigCJEUNACACIAIoAiggAigCLBCqgICAAAsgAikDGCEDIAJBMGokgICAgAAgA0IAIAGnGwtpAQF/I4CAgIAAQSBrIgMkgICAgAAgAyABNwMIIAMgADYCBCADQQE2AgAgAyACEK+AgIAAIANBFGoQxICAgAACQCADKAIUQQFHDQAgAyADKAIYIAMoAhwQqoCAgAALIANBIGokgICAgAALagICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEECNgIAQQAhAQJAIAAQq4CAgAAiAkICEK2AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQtiAQF/I4CAgIAAQSBrIgIkgICAgAAgAkEGNgIAIAIgADYCBCACIAEQr4CAgAAgAkEUahDEgICAAAJAIAIoAhRBAUcNACACIAIoAhggAigCHBCqgICAAAsgAkEgaiSAgICAAAsIABDOgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENCAgIAAIAApAwAgACkDCBDpgICAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ04CAgAAgACkDACAAKQMIEOmAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahDBgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQwoCAgAALEM+AgIAAIQIQ0oCAgAAgABDsgICAACACIAAQ7YCAgAAgAUEQaiSAgICAAEICDwsACw4AQQAgAEICEPKAgIAAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQcmDwIAAQRUQ84CAgAAQ9ICAgAAhAyACIAA3AwggAiABNwMAIANB8IPAgABBAiACQQIQ9YCAgAAQjoCAgAAaIAJBEGokgICAgAAL3AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahDBgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQwoCAgAALEM+AgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahDTgICAACACKQMQIQEgAikDCEGICBDRgICAACABIAAQ74CAgABFDQMQ8ICAgAAMAQsQ8YCAgAAgAUIgiKdJDQNBASAAQgAQ8oCAgABBARDUgICAAEIAIAFChICAgHCDIgEgARCAgICAABpBgITAgABBFhDzgICAABD0gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBnITAgABBAyACQQhqQQMQ9YCAgAAQjoCAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQuICAgAAAC0KDgICA8IABELiAgIAAAAsNACAAIAEQnoCAgABQCxMAQQEQ1ICAgABCABCPgICAABoLMwECfhCggICAACEAAkAQoYCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQv4CAgAAACxUAIAAQ1ICAgAAgASACEIKAgIAAGgtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCpgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEKeAgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQnICAgAALpwECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQwYCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEMKAgIAACyAAENOAgIAAIAApAwghASAAKQMAQYgIENGAgIAAIAEQh4CAgAAaIAAQ1YCAgAACQCAAKAIADQAQyICAgAAACyAAKQMIIQIQ8ICAgAAgARDsgICAACACIAEQ7YCAgAAgAEEQaiSAgICAAEICC6ABAgF/An4jgICAgABBEGsiACSAgICAACAAEMGAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBDCgICAAAsQz4CAgAAhARDSgICAAEEAENSAgIAAQgIQj4CAgAAaQbSEwIAAQRMQ84CAgAAQ9ICAgAAhAiAAIAE3AwAgAkHIhMCAAEEBIABBARD1gICAABCOgICAABogAEEQaiSAgICAAEICCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEMKAgIAAQgIPCwAL3gQBBX8jgICAgABB0ABrIgIkgICAgAAgAkEoaiAAEPqAgIAAAkAgAigCKEECRg0AIAJBCGpBCGogAkEoakEIaiIDKAIANgIAIAIgAikCKDcDCCACQShqIAEQ+oCAgAAgAigCKEECRg0AIAJBGGpBCGogAygCADYCACACIAIpAig3AxggAkEoahDBgICAAAJAIAIoAihBAUcNACACKAIsIAIoAjAQwoCAgAALEM2AgIAAAkACQAJAEMuAgIAADQAQ8YCAgAAiA0GA+4ADIANBgPuAA0kbIQQgAiACQRhqNgIsIAIgAkEIajYCKEEAIQMDQCADQQhGDQMCQCACQShqIANqKAIAIgUoAgBBAXFFDQAgBSgCCCIGIARLDQMgBSgCBCAGSw0DCyADQQRqIQMMAAsLQoOAgIDQ/wAQuICAgAAAC0KDgICAwP8AELiAgIAAAAsCQAJAIAIoAghBAUcNACACKAIMIAIoAhAQ+4CAgAAMAQtBARDMgICAAEICEI+AgIAAGgsCQAJAIAIoAhhBAUcNACACKAIcIAIoAiAQ/ICAgAAMAQtBAhDMgICAAEICEI+AgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QfyEwIAAQQ8Q84CAgAAQ9ICAgAAhACACQShqEP2AgIAAIQEgAiACQTRqEP2AgIAANwNIIAIgATcDQCAAQaCFwIAAQQIgAkHAAGpBAhD1gICAABCOgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQqoGAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAsOAEEBIAAgARCtgYCAAAsOAEECIAAgARCtgYCAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQ/4CAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC8IBAgJ/AX4jgICAgABBwABrIgAkgICAgAAgAEEIahDBgICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQwoCAgAALIABBCGoQwYCAgAAgAEEUaiIBEMSAgIAAIABBMGogAEEIahD/gICAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQ/4CAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEKeAgIAAIQIgAEHAAGokgICAgAAgAgswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBCrgYCAAA8LIABCADcDACAAQgI3AwgLqgEBAX8jgICAgABBIGsiACSAgICAACAAQQxqEMGAgIAAAkAgACgCDEEBRw0AIAAoAhAgACgCFBDCgICAAAsQzYCAgAACQBDLgICAAEUNAEKDgICA4P8AELiAgIAAAAtBABDMgICAAEIBQgIQgoCAgAAaQbCFwIAAQRIQ84CAgAAQ9ICAgABBBEEAIABBGGpBABD1gICAABCOgICAABogAEEgaiSAgICAAEICCwkAEMuAgIAArQueAQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahDBgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQwoCAgAALIABBEGoQg4GAgAACQAJAIAAoAhANACAAKQMYIQEgAEEQahCDgYCAACAAKAIQQQFHDQELAAsgACAAKQMYNwMIIAAgATcDACAAQQIQp4CAgAAhASAAQSBqJICAgIAAIAELDAAgAEIBEKOBgIAACwgAELWAgIAAC1EBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgRRDQAACyABIABCIIinELmAgIAAIAEpAwAgASkDCBDpgICAACEAIAFBEGokgICAgAAgAAu6AgQBfwF+AX8BfiOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCBFINAAJAAkAgAUICUg0AQgAhAQwBCyACIAEQvoCAgAAgAigCAEEBRg0BIAIpAwghA0IBIQELEM2AgIAAIAIQwYCAgAACQCACKAIAQQFHDQAgAigCBCACKAIIEMKAgIAAC0EBIABCIIinIgQQxoCAgAAhBQJAAkAgAVANACAFIANCARCCgICAABogAhDEgICAACACKAIAQQFHDQEgBCACKAIEIAIoAggQx4CAgAAMAQsgBUIBEI+AgIAAGgtCjvKqvPDWqusAEPSAgIAAIQUgAiABIAMQ6YCAgAA3AwggAiAAQoSAgIBwgzcDACAFQciCwIAAQQIgAkECEPWAgIAAEI6AgIAAGiACQRBqJICAgIAAQgIPCwALhwECAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABC3gICAAAJAIAEpAwAiAEICUQ0AIAEpAwghAhDNgICAACABEMGAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBDCgICAAAsQtYCAgAAQhYCAgAAgACACEIiBgIAAIAFBEGokgICAgABCAg8LAAu2AQMBfwF+AX8jgICAgABBIGsiBCSAgICAAEGQgsCAAEEMEPOAgIAAIQUgBCACIAMQ6YCAgAA3AwggBCABNwMAQQAhBgNAAkAgBkEQRw0AQQAhBgJAA0AgBkEQRg0BIARBEGogBmogBCAGaikDADcDACAGQQhqIQYMAAsLIAAgBSAEQRBqQQIQp4CAgAAQqICAgAAgBEEgaiSAgICAAA8LIARBEGogBmpCAjcDACAGQQhqIQYMAAsLLwACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQwICAgAAPCwAL/gMHAX8DfgF/AX4BfwF+AX8jgICAgABBMGsiASSAgICAAAJAAkAgAEL/AYNCywBSDQAQzYCAgAAgAUEIahDBgICAAAJAIAEoAghBAUcNACABKAIMIAEoAhAQwoCAgAALIAAQkICAgABCIIghAkIAIQMCQANAIAMgAlENASAAIANCIIZCBIQQkYCAgAAhBEEAIQUCQANAIAVBGEYNASABQQhqIAVqQgI3AwAgBUEIaiEFDAALC0EBIQUCQCAEQv8Bg0LMAFINACAEQeiCwIAAQQMgAUEIakEDELyAgIAAIAEpAwgiBEL/AYNCBFINACABKQMQIgZC/wGDQgRSDQAgByAGQiCIpyABKQMYIgZC/wGDQsgAUiIFGyEHIAggBiAFGyEIIAkgBEIgiKcgBRshCQsgA0L/////D1ENAyAFDQMgASAHNgIUIAEgCTYCECABIAg3AwggAUEIahCLgYCAACAJIAcQw4CAgAAgCEIBEIKAgIAAGiABQSRqEMSAgIAAAkAgASgCJEEBRw0AIAkgByABKAIoIAEoAiwQxYCAgAALIANCAXwhAwwACwtBj4PAgABBExDzgICAABD0gICAACEDIAEgADcDCCADQbiDwIAAQQEgAUEIakEBEPWAgIAAEI6AgIAAGiABQTBqJICAgIAAQgIPCwALEL+AgIAAAAvWAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAKQMAIgIQiICAgABC/////x9YDQAgAkEAQQIQ34CAgAAiAhCIgICAAEKAgICAcINCgICAgCBSDQEgAUEAOwEOIAIQiICAgABCgICAgHCDQoCAgIAgUg0CIAIgAUEOakECEKaBgIAAIAEvAQ5BgAZHDQMgAUEQaiSAgICAAA8LQoOAgICA/QAQuICAgAAAC0KDgICAgIIBELiAgIAAAAsQp4GAgAAAC0KDgICAgPoBELiAgIAAAAuCAgEDfyOAgICAAEEgayIDJICAgIAAAkACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAkL/AYNCyABSDQAgAEIgiKchBCABQiCIpyEFIAMgAjcDCCADQRRqEMGAgIAAAkAgAygCFEEBRw0AIAMoAhggAygCHBDCgICAAAsCQCAEIAUQwICAgAAiABCIgICAAEKAgICAEFQNAAJAIAIQiICAgABCgICAgBBaDQAgACECDAELIAIQiICAgABC/////x9YDQIgA0EIahCLgYCAACAAIAJBAhCNgYCAABCSgICAACECCyADQSBqJICAgIAAIAIPCwALQoOAgICA+gEQuICAgAAACyUAIAAgAa1CIIZCBIQgABCIgICAAEKAgICAcINCBIQQjICAgAALgwIBAX8jgICAgABBEGsiAySAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0LNAFINAEGAyx5BgNIfEPuAgIAAQYDLHkGA0h8Q/ICAgABBABDUgICAAEICEK2AgIAADQEgABDsgICAAEEAIAMQxoCAgAAgAUICEIKAgIAAGiABEIWAgIAAQgEgAhCIgYCAACABQo7SrhUQg4CAgAAQhICAgAAiAUL/AYNCBFINAiADQQA2AgAgAxCrgICAACABQoSAgIBwg0ICEIKAgIAAGiADQRBqJICAgIAAQgIPCwALQoOAgICQgQEQuICAgAAACxC/gICAAAALpQQCA38BfiOAgICAAEHgAGsiBCSAgICAAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACACQv8Bg0LIAFINAEEBIAOnQf8BcSIFQQBHQQF0IAVBAUYbIgZBAkYNACAAQiCIpyEFIAFCIIghACAEQTBqEMGAgIAAAkAgBCgCMEEBRw0AIAQoAjQgBCgCOBDCgICAAAsgAKcQyYCAgAAQkIGAgAAQ2oCAgAAhACAEQTBqIAUQuYCAgAAgBCkDOCEBIAQpAzAQuoCAgAAQtYCAgAAhAxCFgICAACEHIAQgBjoAHCAEIAI3AxAgBCAANwMIIAQgATcDACAEIAU2AhggBCAEELuAgIAANwMoIAQgBzcDIEEAIQUCQAJAA0ACQCAFQRBHDQBBACEFAkADQCAFQRBGDQEgBEEwaiAFaiAEQSBqIAVqKQMANwMAIAVBCGohBQwACwsgBEEwaiADQo7UudruBiAEQTBqQQIQp4CAgAAQhICAgAAQvYCAgAAgBCgCMEEBcQ0CIAQpA1ghACAEKQNQIQEgBEEwaiAEKQNAIAQpA0gQkYGAgAAgBCgCMA0EIAQpAzghAiAEQTBqIAEgABCRgYCAACAEKAIwQQFHDQMMBAsgBEEwaiAFakICNwMAIAVBCGohBQwACwsQv4CAgAAACyAEIAQpAzg3AwggBCACNwMAQdSBwIAAQQIgBEECEPWAgIAAIQAgBEHgAGokgICAgAAgAA8LAAuMAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDBgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQwoCAgAALIABBADYCAAJAAkAgABCrgICAACIBQgIQrYCAgABFDQAgAUICEIGAgIAAIgFC/wGDQgRRDQEACxDIgICAAAALIABBEGokgICAgAAgAUIgiKcLWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQmICAgAAhAQsgAEIANwMAIAAgATcDCAuTAgICfwN+I4CAgIAAQTBrIgUkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkL/AYNCBFINACADQv8Bg0LIAFINACAFIAQQvYCAgAAgBSgCAEEBcQ0AIAFCIIinIQYgBSkDKCEBIAUpAyAhBCAFKQMYIQcgBSkDECEIIAUQwYCAgAACQCAFKAIAQQFHDQAgBSgCBCAFKAIIEMKAgIAACyAAEIeAgIAAGiAGEJOBgIAAQgF8IglCAFENASAGIAkQ5oCAgAAgBSAGIAJCIIinEMmAgIAAEJCBgIAAENqAgIAAIAMgACAIIAcgBCABIAAQtICAgAAgBUEwaiSAgICAAEICDwsACxC/gICAAAALqAECAX8CfiOAgICAAEEwayIBJICAgIAAIAFBEGoQwYCAgAACQCABKAIQQQFHDQAgASgCFCABKAIYEMKAgIAACyABQQY2AgAgASAANgIEIAFBEGogARCsgICAAAJAIAEpAxAiAlANACABQSRqEMSAgIAAIAEoAiRBAUcNACABIAEoAiggASgCLBCqgICAAAsgASkDGCEDIAFBMGokgICAgAAgA0IAIAKnGwuLAQECfyOAgICAAEEQayIBJICAgIAAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAQzYCAgAAgARDBgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQwoCAgAALIAFBAjYCACABEKuAgIAAIAKtQgIQgoCAgAAaIAFBEGokgICAgABCAg8LAAuVAwUBfwF+AX8BfgF/I4CAgIAAQdAAayIDJICAgIAAAkAgAEL/AYNCBFINACADQShqIAEQvoCAgAAgAygCKEEBRg0AIAMpAzAhASADQShqIAIQroCAgAAgAygCKEEBRg0AIABCIIghAiADKQMwIQQQzYCAgAAgA0EoahDBgICAAAJAIAMoAihBAUcNACADKAIsIAMoAjAQwoCAgAALIAKnIQUQhYCAgAAhAhC1gICAACEGIAMgBBCxgICAADcDICADIAE3AxggAyAAQoSAgIBwgzcDECADIAI3AwggAyACNwMAQQAhBwJAA0ACQCAHQShHDQBBACEHAkADQCAHQShGDQEgA0EoaiAHaiADIAdqKQMANwMAIAdBCGohBwwACwsgBkKO6q6YDiADQShqQQUQp4CAgAAQqICAgAACQBDlgICAAEUNACAFIAEQ44CAgABCAXwiAFANAyAFIAEgABDkgICAAAsgA0HQAGokgICAgABCAg8LIANBKGogB2pCAjcDACAHQQhqIQcMAAsLEL+AgIAAAAsACw8AEJCBgIAArUIghkIEhAsOABCYgYCAABCxgICAAAtzAgJ/AX4jgICAgABBIGsiACSAgICAACAAQRBqEMGAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBDCgICAAAsgAEEDNgIAIABBEGogABCygICAACAAKAIQIQEgACkDGCECIABBIGokgICAgAAgAkIAIAEbCw4AEJqBgIAAELGAgIAAC3MCAn8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQwYCAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYEMKAgIAACyAAQQQ2AgAgAEEQaiAAELKAgIAAIAAoAhAhASAAKQMYIQIgAEEgaiSAgICAACACQgAgARsLIwACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQnIGAgAAQsYCAgAALqAECAX8CfiOAgICAAEEwayIBJICAgIAAIAFBEGoQwYCAgAACQCABKAIQQQFHDQAgASgCFCABKAIYEMKAgIAACyABQQU2AgAgASAANgIEIAFBEGogARCsgICAAAJAIAEpAxAiAlANACABQSRqEMSAgIAAIAEoAiRBAUcNACABIAEoAiggASgCLBCqgICAAAsgASkDGCEDIAFBMGokgICAgAAgA0IAIAKnGwsjAAJAIABC/wGDQgRRDQAACyAAQiCIpxCTgYCAABCxgICAAAuuAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIABC/wGDQgRSDQAgAiABEL6AgIAAIAIoAgBBAUYNACACKQMIIQMgAhDBgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQwoCAgAALQgAhAQJAEOWAgIAARQ0AIABCIIinIAMQ44CAgABCAXwiAVANAgsgARCxgICAACEAIAJBEGokgICAgAAgAA8LAAsQv4CAgAAAC5sBAgJ/AX4jgICAgABBIGsiASSAgICAACABIAAQoIGAgAACQCABKAIAQQFGDQAgASgCGCECIAEpAwghAyABEMGAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBDCgICAAAsgASACELmAgIAAQgAhAAJAIAEoAgBBAUcNACABKQMIIAMQ74CAgACtIQALIAFBIGokgICAgAAgAA8LAAviAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGogcCAAEEDIAJBCGpBAxC8gICAACACQSBqIAIpAwgQroCAgAAgAigCIA0AIAIpAyghASACQSBqIAIpAxAQvoCAgAAgAigCIA0AIAIpAxgiBUL/AYNCBFINACACKQMoIQQgACABNwMQIAAgBDcDCCAAIAVCIIg+AhhCACEECyAAIAQ3AwAgAkEwaiSAgICAAAv4CAMCfwN+AX8jgICAgABB8ABrIgYkgICAgAACQAJAAkACQCAAQv8Bg0LNAFINACAGQRBqIAEQoIGAgAAgBigCEEEBRg0AIAYoAighByAGKQMgIQggBikDGCEBIAZBEGogAhC+gICAACAGKAIQQQFGDQAgA0L/AYNCyABSDQAgBEL/AYNCyABSDQAgBikDGCEJIAZBEGogBRCigYCAACAGKAIQQQFGDQAgBikDKCECIAYpAyAhBCAGQRBqEMGAgIAAAkAgBigCEEEBRw0AIAYoAhQgBigCGBDCgICAAAsQhYCAgAAhBRC1gICAACEKIAAQh4CAgAAaAkAgBCAChEIAUQ0AIAoQtoCAgAAgACAFIAQgAhClgICAAAsgBkEQaiAHELmAgIAAAkAgBigCEEEBRw0AIAYpAxggARDvgICAAEUNACAGQcgAaiAIEKOBgIAAIAYoAkhBAUYNASAGKQNQIQAgBiABNwMYIAYgADcDECAGIAetQiCGQgSENwMgQaiBwIAAQQMgBkEQakEDEPWAgIAAIQAgBiADNwNoIAYgCTcDYCAGIAU3A1ggBiAANwNQIAYgBTcDSEEAIQsDQAJAIAtBKEcNAEEAIQsCQANAIAtBKEYNASAGQRBqIAtqIAZByABqIAtqKQMANwMAIAtBCGohCwwACwsgCkKO7qa1jAUgBkEQakEFEKeAgIAAEKiAgIAAIAYgAjcDCCAGIAQ3AwAgByABEOOAgIAAIQAQ5YCAgABFDQQgAEIBfCIFUA0FIAggBVENBEKDgICAEBC4gICAAAALIAZBEGogC2pCAjcDACALQQhqIQsMAAsLQoOAgICg+gEQuICAgAAACwALAkAgCCAAWA0AIAcgASAIEOSAgIAACxCFgICAACEBEJiBgIAAIQggBxCcgYCAACEAIAhCAXwiCFANACAGQQM2AhAgBkEQaiAIELOAgIAAIABCAXwiCFANACAGQQU2AhAgBiAHNgIUIAZBEGogCBCvgICAACAGQcgAahDEgICAAAJAIAYoAkhBAUcNACAGQRBqIAYoAkwgBigCUBCqgICAAAsCQAJAAkAgAxDcgICAAEH/AXFBf2oOBAEAAgABCxC1gICAACEIQZyCwIAAQQwQ84CAgAAhAiAGIAM3A2ggBkIENwNgIAYgCTcDWCAGIAE3A1AgBiABNwNIQQAhCwNAAkAgC0EoRw0AQQAhCwJAA0AgC0EoRg0BIAZBEGogC2ogBkHIAGogC2opAwA3AwAgC0EIaiELDAALCyAIIAIgBkEQakEFEKeAgIAAEKiAgIAADAULIAZBEGogC2pCAjcDACALQQhqIQsMAAsLIAMgBhDigICAAAwCCyADIAYQ4oCAgAAgBxCTgYCAAEIBfCIDUA0AIAcgAxDmgICAAEIKQgAQ4YCAgAAhAyAGQRBqIAdBARCQgYCAABDagICAAEKMFBCLgICAABCSgICAACADIAEgBCACQgBCACABELSAgIAADAELEL+AgIAAAAsgBkHwAGokgICAgABCAgt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJaAgIAAIQMgARCXgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQk4CAgAAhAQsgAEIANwMAIAAgATcDCAuJAQECfyOAgICAAEEgayIDJICAgIAAIAMgABCggYCAAAJAIAMoAgBBAUYNACABQv8Bg0LIAFINACACQv8Bg0LNAFINACADEMGAgIAAAkAgAygCAEEBRw0AIAMoAgQgAygCCBDCgICAAAsQhYCAgAAgAhDvgICAACEEIANBIGokgICAgAAgBK0PCwALgAYDAX8DfgF/I4CAgIAAQeAAayIHJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACAHIAIQvoCAgAAgBygCAEEBRg0AIANC/wGDQgRSDQAgBEL/AYNCyABSDQAgBUL/AYNCyABSDQAgBykDCCEIIAcgBhCigYCAACAHKAIAQQFGDQAgBykDGCECIAcpAxAhBSAHEMGAgIAAAkAgBygCAEEBRw0AIAcoAgQgBygCCBDCgICAAAsgABCHgICAABoQhYCAgAAhBhC1gICAACEJQaiCwIAAQQ0Q84CAgAAhCiAHIAQ3A1ggByADQoSAgIBwgzcDUCAHIAg3A0ggByABNwNAIAcgBjcDOEEAIQsCQAJAA0ACQCALQShHDQBBACELAkADQCALQShGDQEgByALaiAHQThqIAtqKQMANwMAIAtBCGohCwwACwsgCSAKIAdBBRCngICAABCogICAAAJAIAVQIAJCAFMgAlAbDQAgCRC2gICAACAAIAYgBSACEKWAgIAACwJAAkAgBBDcgICAACILQf8BcUF+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AJMCEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50AJueAQ5jb250cmFjdHNwZWN2MAAAAAQAAAAAAAAAAAAAAAxDb3VudGVyRXJyb3IAAAAEAAAAAAAAABBPQXBwSW52YWxpZE5vbmNlAAAAAQAAAAAAAAAPSW52YWxpZE1zZ1ZhbHVlAAAAAAIAAAAAAAAAEUluc3VmZmljaWVudFZhbHVlAAAAAAAAAwAAAAAAAAAOSW52YWxpZE1zZ1R5cGUAAAAAAAQAAAACAAAAAAAAAAAAAAAOQ291bnRlclN0b3JhZ2UAAAAAAAcAAAAAAAAAAAAAAANFSUQAAAAAAQAAAAAAAAAQTWF4UmVjZWl2ZWROb25jZQAAAAIAAAAEAAAD7gAAACAAAAAAAAAAAAAAAAxPcmRlcmVkTm9uY2UAAAAAAAAAAAAAAAVDb3VudAAAAAAAAAAAAAAAAAAADUNvbXBvc2VkQ291bnQAAAAAAAABAAAAAAAAAAxJbmJvdW5kQ291bnQAAAABAAAABAAAAAEAAAAAAAAADU91dGJvdW5kQ291bnQAAAAAAAABAAAABAAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAACuUmV0cmlldmVzIHRoZSBPQXBwIHZlcnNpb24gaW5mb3JtYXRpb24uCgojIFJldHVybnMKQSB0dXBsZSBjb250YWluaW5nOgotIGBzZW5kZXJfdmVyc2lvbmA6IFRoZSB2ZXJzaW9uIG9mIHRoZSBPQXBwU2VuZGVyCi0gYHJlY2VpdmVyX3ZlcnNpb25gOiBUaGUgdmVyc2lvbiBvZiB0aGUgT0FwcFJlY2VpdmVyAAAAAAAMb2FwcF92ZXJzaW9uAAAAAAAAAAEAAAPtAAAAAgAAAAYAAAAGAAAAAAAAAGxSZXRyaWV2ZXMgdGhlIExheWVyWmVybyBlbmRwb2ludCBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGUgT0FwcC4KCiMgUmV0dXJucwpUaGUgTGF5ZXJaZXJvIGVuZHBvaW50IGFkZHJlc3MAAAAIZW5kcG9pbnQAAAAAAAAAAQAAABMAAAAAAAAAwVJldHJpZXZlcyB0aGUgcGVlciAoT0FwcCkgYXNzb2NpYXRlZCB3aXRoIGEgY29ycmVzcG9uZGluZyBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKCiMgUmV0dXJucwpUaGUgcGVlciBhZGRyZXNzIChPQXBwIGluc3RhbmNlKSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQAAAAAAAAEcGVlcgAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAPuAAAAIAAAAAAAAADlU2V0cyBvciByZW1vdmVzIHRoZSBwZWVyIGFkZHJlc3MgKE9BcHAgaW5zdGFuY2UpIGZvciBhIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYHBlZXJgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIHBlZXIgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LCBvciBOb25lIHRvIHJlbW92ZSB0aGUgcGVlcgAAAAAAAAhzZXRfcGVlcgAAAAIAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAARwZWVyAAAD6AAAA+4AAAAgAAAAAAAAAAAAAACOU2V0cyB0aGUgZGVsZWdhdGUgYWRkcmVzcyBmb3IgdGhlIE9BcHAgQ29yZS4KCiMgQXJndW1lbnRzCiogYGRlbGVnYXRlYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBkZWxlZ2F0ZSB0byBiZSBzZXQsIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSBkZWxlZ2F0ZQAAAAAADHNldF9kZWxlZ2F0ZQAAAAEAAAAAAAAACGRlbGVnYXRlAAAD6AAAABMAAAAAAAAAAAAAANlSZXRyaWV2ZXMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgbXNnX3R5cGVgIC0gVGhlIE9BcHAgbWVzc2FnZSB0eXBlCgojIFJldHVybnMKVGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHRoZSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlAAAAAAAAEGVuZm9yY2VkX29wdGlvbnMAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAQAAAA4AAAAAAAACm1NldHMgdGhlIGVuZm9yY2VkIG9wdGlvbnMgZm9yIHNwZWNpZmljIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUgY29tYmluYXRpb25zLgoKT25seSB0aGUgYGF1dGhvcml6ZXJgIG9mIHRoZSBPQXBwIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uClByb3ZpZGVzIGEgd2F5IGZvciB0aGUgT0FwcCB0byBlbmZvcmNlIHRoaW5ncyBsaWtlIHBheWluZyBmb3IgUHJlQ3JpbWUsIEFORC9PUiBtaW5pbXVtIGRzdCBselJlY2VpdmUgZ2FzIGFtb3VudHMgZXRjLgpUaGVzZSBlbmZvcmNlZCBvcHRpb25zIGNhbiB2YXJ5IGFzIHRoZSBwb3RlbnRpYWwgb3B0aW9ucy9leGVjdXRpb24gb24gdGhlIHJlbW90ZSBtYXkgZGlmZmVyIGFzIHBlciB0aGUgbXNnX3R5cGUuCmUuZy4gQW1vdW50IG9mIGx6UmVjZWl2ZSgpIGdhcyBuZWNlc3NhcnkgdG8gZGVsaXZlciBhIGx6Q29tcG9zZSgpIG1lc3NhZ2UgYWRkcyBvdmVyaGVhZCB5b3UgZG9uJ3Qgd2FudCB0byBwYXkKaWYgeW91IGFyZSBvbmx5IG1ha2luZyBhIHN0YW5kYXJkIExheWVyWmVybyBtZXNzYWdlIGllLiBselJlY2VpdmUoKSBXSVRIT1VUIHNlbmRDb21wb3NlKCkuCgojIEFyZ3VtZW50cwoqIGBvcHRpb25zYCAtIEEgdmVjdG9yIG9mIEVuZm9yY2VkT3B0aW9uUGFyYW0gc3RydWN0dXJlcyBzcGVjaWZ5aW5nIGVuZm9yY2VkIG9wdGlvbnMAAAAAFHNldF9lbmZvcmNlZF9vcHRpb25zAAAAAQAAAAAAAAAHb3B0aW9ucwAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAAAAAACekNvbWJpbmVzIG9wdGlvbnMgZm9yIGEgZ2l2ZW4gZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZS4KCklmIHRoZXJlIGlzIGFuIGVuZm9yY2VkIGx6UmVjZWl2ZSBvcHRpb246Ci0ge2dhc19saW1pdDogMjAwaywgdmFsdWU6IDEgWExNfSBBTkQgYSBjYWxsZXIgc3VwcGxpZXMgYSBselJlY2VpdmUgb3B0aW9uOiB7Z2FzX2xpbWl0OiAxMDBrLCB2YWx1ZTogMC41IFhMTX0KLSBUaGUgcmVzdWx0aW5nIG9wdGlvbnMgd2lsbCBiZSB7Z2FzX2xpbWl0OiAzMDBrLCB2YWx1ZTogMS41IFhMTX0gd2hlbiB0aGUgbWVzc2FnZSBpcyBleGVjdXRlZCBvbiB0aGUgcmVtb3RlIGx6X3JlY2VpdmUoKSBmdW5jdGlvbi4KVGhlIHByZXNlbmNlIG9mIGR1cGxpY2F0ZWQgb3B0aW9ucyBpcyBoYW5kbGVkIG9mZi1jaGFpbiBpbiB0aGUgdmVyaWZpZXIvZXhlY3V0b3IuCgojIEFyZ3VtZW50cwoqIGBlaWRgIC0gVGhlIGVuZHBvaW50IElECiogYG1zZ190eXBlYCAtIFRoZSBPQXBwIG1lc3NhZ2UgdHlwZQoqIGBleHRyYV9vcHRpb25zYCAtIEFkZGl0aW9uYWwgb3B0aW9ucyBwYXNzZWQgYnkgdGhlIGNhbGxlcgoKIyBSZXR1cm5zClRoZSBjb21iaW5hdGlvbiBvZiBjYWxsZXIgc3BlY2lmaWVkIG9wdGlvbnMgQU5EIGVuZm9yY2VkIG9wdGlvbnMAAAAAAA9jb21iaW5lX29wdGlvbnMAAAAAAwAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAANZXh0cmFfb3B0aW9ucwAAAAAAAA4AAAABAAAADgAAAAAAAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAADAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAACGVuZHBvaW50AAAAEwAAAAAAAAAIZGVsZWdhdGUAAAATAAAAAAAAAAAAAAAAAAAABXF1b3RlAAAAAAAABAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAAAEAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAAAAAAAAAAAAACWluY3JlbWVudAAAAAAAAAUAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAAAAAAAAAAAAEXNldF9vcmRlcmVkX25vbmNlAAAAAAAAAQAAAAAAAAANb3JkZXJlZF9ub25jZQAAAAAAAAEAAAAAAAAAAAAAAAAAAAASc2tpcF9pbmJvdW5kX25vbmNlAAAAAAADAAAAAAAAAAdzcmNfZWlkAAAAAAQAAAAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAAAAAABW5vbmNlAAAAAAAABgAAAAAAAAAAAAAAAAAAAANlaWQAAAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAFY291bnQAAAAAAAAAAAAAAQAAAAYAAAAAAAAAAAAAAA5jb21wb3NlZF9jb3VudAAAAAAAAAAAAAEAAAAGAAAAAAAAAAAAAAANaW5ib3VuZF9jb3VudAAAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAAAYAAAAAAAAAAAAAAA5vdXRib3VuZF9jb3VudAAAAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAABgAAAAAAAAAAAAAACm5leHRfbm9uY2UAAAAAAAIAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAEAAAAGAAAAAAAAALdDaGVja3MgaWYgYSBtZXNzYWdpbmcgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4uCgojIEFyZ3VtZW50cwoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBvZiB0aGUgbWVzc2FnZQoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHBhdGggY2FuIGJlIGluaXRpYWxpemVkLCBmYWxzZSBvdGhlcndpc2UAAAAAFWFsbG93X2luaXRpYWxpemVfcGF0aAAAAAAAAAEAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAABAAAAAAAAAyNFbnRyeSBwb2ludCBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIG9yIHBhY2tldHMgZnJvbSB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50LgoKVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgYGNsZWFyX3BheWxvYWRfYW5kX3RyYW5zZmVyYCB0byB2YWxpZGF0ZSB0aGUgbWVzc2FnZQphbmQgY2xlYXIgaXQgZnJvbSB0aGUgZW5kcG9pbnQsIHRoZW4gZGVsZWdhdGVzIHRvIGBfX2x6X3JlY2VpdmVgIGZvciBhcHBsaWNhdGlvbiBsb2dpYy4KCiMgQXJndW1lbnRzCiogYGV4ZWN1dG9yYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBleGVjdXRvciBmb3IgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzczoKLSBgc3JjX2VpZGA6IFRoZSBzb3VyY2UgY2hhaW4gZW5kcG9pbnQgSUQKLSBgc2VuZGVyYDogVGhlIHNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4KLSBgbm9uY2VgOiBUaGUgbm9uY2Ugb2YgdGhlIG1lc3NhZ2UKKiBgZ3VpZGAgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSByZWNlaXZlZCBMYXllclplcm8gbWVzc2FnZQoqIGBtZXNzYWdlYCAtIFRoZSBwYXlsb2FkIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlCiogYGV4dHJhX2RhdGFgIC0gQWRkaXRpb25hbCBhcmJpdHJhcnkgZGF0YSBwcm92aWRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBleGVjdXRvcgoqIGB2YWx1ZWAgLSBUaGUgbmF0aXZlIHRva2VuIHZhbHVlIHNlbnQgd2l0aCB0aGUgbWVzc2FnZQAAAAAKbHpfcmVjZWl2ZQAAAAAABgAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAexJbmRpY2F0ZXMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFwcHJvdmVkIGNvbXBvc2VNc2cgc2VuZGVyIHRvIHRoZSBFbmRwb2ludC4KCkFwcGxpY2F0aW9ucyBjYW4gb3B0aW9uYWxseSBjaG9vc2UgdG8gaW1wbGVtZW50IHNlcGFyYXRlIGNvbXBvc2VNc2cgc2VuZGVycyB0aGF0IGFyZSBOT1QgdGhlIGJyaWRnaW5nIGxheWVyLgpUaGUgZGVmYXVsdCBzZW5kZXIgSVMgdGhlIE9BcHBSZWNlaXZlciBpbXBsZW1lbnRlci4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBlbmRwb2ludCBhbmQgc2VuZGVyIGFkZHJlc3MKKiBgbWVzc2FnZWAgLSBUaGUgbHpSZWNlaXZlIHBheWxvYWQKKiBgc2VuZGVyYCAtIFRoZSBzZW5kZXIgYWRkcmVzcyB0byBjaGVjawoKIyBSZXR1cm5zClRydWUgaWYgdGhlIHNlbmRlciBpcyBhIHZhbGlkIGNvbXBvc2VNc2cgc2VuZGVyLCBmYWxzZSBvdGhlcndpc2UAAAAVaXNfY29tcG9zZV9tc2dfc2Vu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AAAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAkAAAAAAAAADEludmFsaWRJbmRleAAAAAoAAAAAAAAADEludmFsaWROb25jZQAAAAsAAAAAAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAAAAAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAAAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAAAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAAAAAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAABRPQXBwRXJyb3I6IDIwMDAtMjA5OQAAAAAAAAAJT0FwcEVycm9yAAAAAAAABAAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAAB9AAAAAAAAAABk5vUGVlcgAAAAAH0QAAAAAAAAAIT25seVBlZXIAAAfSAAAAAAAAABNacm9Ub2tlblVuYXZhaWxhYmxlAAAAB9MAAAACAAAAAAAAAAAAAAAPT0FwcENvcmVTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAEAAAAAAAAABFBlZXIAAAABAAAABAAAAAUAAAAAAAAAAAAAAAdQZWVyU2V0AAAAAAEAAAAIcGVlcl9zZXQAAAACAAAAAAAAAANlaWQAAAAABAAAAAAAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAIAAAAAAAAAAAAAABdPQXBwT3B0aW9uc1R5cGUzU3RvcmFnZQAAAAABAAAAAQAAAAAAAAAPRW5mb3JjZWRPcHRpb25zAAAAAAIAAAAEAAAABAAAAAUAAAAAAAAAAAAAABFFbmZvcmNlZE9wdGlvblNldAAAAAAAAAEAAAATZW5mb3JjZWRfb3B0aW9uX3NldAAAAAABAAAAAAAAABZlbmZvcmNlZF9vcHRpb25fcGFyYW1zAAAAAAPqAAAH0AAAABNFbmZvcmNlZE9wdGlvblBhcmFtAAAAAAAAAAACAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAAB2gEiYAJ+fgF+YAN+fn4BfmAAAX5gBH5+fn4BfmABfgF+YAV+fn5+fgBgAn9/AX5gA35+fgBgAn9/AGABfwF+YAJ+fgF/YAJ/fgBgA39+fgBgCn9/fn5+fn5+fn4AYAF+AGAFfn9/f38AYAAAYAF/AGABfwF/YAABf2ACfn8AYAN/f38AYAR+fn9/AX5gAX4Bf2ADfn9/AX5gAn9+AX5gAn5+AGAEf39/fwF+YAR+fn5+AGACfn8BfmAFfn5+fn4BfmAGfn5+fn5+AX5gB35+fn5+fn4BfmADfn9/AALfASUBbAExAAABbAFfAAEBdgFfAAIBZAFfAAEBeAE3AAIBYgE0AAIBbAE3AAMBYQEwAAQBYgE4AAQBYgE2AAABaQFhAAQBaQFiAAQBYgFmAAEBYgE5AAABeAExAAABbAEyAAABdgEzAAQBdgExAAABYgFlAAABaQFfAAQBaQEwAAQBdgFnAAABaQE4AAQBaQE3AAQBaQE2AAABYgFqAAABYgEyAAMBYgExAAMBbQE5AAEBbQFhAAMBeAEwAAABYgFiAAQBeAEzAAIBeAE4AAIBbAEwAAABbAE4AAABeAE1AAQDjAGKAQUABgcFCAkKCwsMBAgLDQIECw4IDgkPCwsQBhAGCAYREBIQEwkRERACAhEUChARCREVCwgMBhYXEAsYCwAUGQwTCwICAAIEDhoAEAYEGxMMAgIACAALCAgJAhEIAgICEQIEAAQcAAQRAR0BAxMMHgkEAQICAgICBAkEAAQLHwsLASAhEBEVCxUIFQUDAQARBiEEfwFBgIDAAAt/AEHAg8AAC38AQaKGwAALfwBBsIbAAAsH/wQnBm1lbW9yeQIACmF1dGhvcml6ZXIAZwVvd25lcgBoDXBlbmRpbmdfb3duZXIAahJ0cmFuc2Zlcl9vd25lcnNoaXAAaxpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgBuEGFjY2VwdF9vd25lcnNoaXAAdRJyZW5vdW5jZV9vd25lcnNoaXAAdhNleHRlbmRfaW5zdGFuY2VfdHRsAHcPc2V0X3R0bF9jb25maWdzAHkLdHRsX2NvbmZpZ3MAfhJmcmVlemVfdHRsX2NvbmZpZ3MAgQEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAIIBDG9hcHBfdmVyc2lvbgCDAQhlbmRwb2ludACFAQRwZWVyAIYBCHNldF9wZWVyAIcBDHNldF9kZWxlZ2F0ZQCIARBlbmZvcmNlZF9vcHRpb25zAIoBFHNldF9lbmZvcmNlZF9vcHRpb25zAIsBD2NvbWJpbmVfb3B0aW9ucwCNAQ1fX2NvbnN0cnVjdG9yAI8BBXF1b3RlAJABCWluY3JlbWVudACTARFzZXRfb3JkZXJlZF9ub25jZQCVARJza2lwX2luYm91bmRfbm9uY2UAlgEDZWlkAJcBBWNvdW50AJgBDmNvbXBvc2VkX2NvdW50AJoBDWluYm91bmRfY291bnQAnAEOb3V0Ym91bmRfY291bnQAngEKbmV4dF9ub25jZQCfARVhbGxvd19pbml0aWFsaXplX3BhdGgAoAEKbHpfcmVjZWl2ZQCiARVpc19jb21wb3NlX21zZ19zZW5kZXIApQEKbHpfY29tcG9zZQCmAQFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKyIEBigGxAQECfyOAgICAAEEwayIFJICAgIAAIAUgAyAEEKaAgIAANwMQIAUgAjcDCCAFIAE3AwBBACEGA0ACQCAGQRhHDQBBACEGAkADQCAGQRhGDQEgBUEYaiAGaiAFIAZqKQMANwMAIAZBCGohBgwACwsgAEKO7uqVvrbe8wAgBUEYakEDEKeAgIAAEKiAgIAAIAVBMGokgICAgAAPCyAFQRhqIAZqQgI3AwAgBkEIaiEGDAALC0MBAX8jgICAgABBEGsiAiSAgICAACACIAAgARCSgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghASACQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQlYCAgAALIQACQCAAIAEgAhCDgICAAEL/AYNCAlENABC+gICAAAALC7EBAQJ/I4CAgIAAQTBrIgUkgICAgAAgBSADIAQQpoCAgAA3AxAgBSACNwMIIAUgATcDAEEAIQYDQAJAIAZBGEcNAEEAIQYCQANAIAZBGEYNASAFQRhqIAZqIAUgBmopAwA3AwAgBkEIaiEGDAALCyAAQo7u6pW+tt7zACAFQRhqQQMQp4CAgAAQqICAgAAgBUEwaiSAgICAAA8LIAVBGGogBmpCAjcDACAGQQhqIQYMAAsLdAIBfwJ+I4CAgIAAQRBrIgIkgICAgABCACEDAkACQCABEKuAgIAAIgRCARCsgICAAEUNACACIARCARCAgICAABCtgICAACACKAIAQQFGDQEgACACKQMINwMIQgEhAwsgACADNwMAIAJBEGokgICAgAAPCwAL4gMCAX8CfiOAgICAAEEwayIBJICAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADgcAAQIDBAUGAAsgAUEIakGAgMCAAEEDENaAgIAAIAEoAggNCCABQQhqIAEpAxAQ14CAgAAMBgsgAUEgakGDgMCAAEEQENaAgIAAIAEoAiANByABIAEpAyg3AwggASAAKQMINwMYIAEgADUCBEIghkIEhDcDECABQSBqIAFBCGoQ2ICAgAAgASkDKCECIAEpAyAhAwwGCyABQQhqQZOAwIAAQQwQ1oCAgAAgASgCCA0GIAFBCGogASkDEBDXgICAAAwECyABQQhqQZ+AwIAAQQUQ1oCAgAAgASgCCA0FIAFBCGogASkDEBDXgICAAAwDCyABQQhqQaSAwIAAQQ0Q1oCAgAAgASgCCA0EIAFBCGogASkDEBDXgICAAAwCCyABQQhqQbGAwIAAQQwQ1oCAgAAgASgCCA0DIAFBCGogASkDECAANQIEQiCGQgSEENmAgIAADAELIAFBCGpBvYDAgABBDRDWgICAACABKAIIDQIgAUEIaiABKQMQIAA1AgRCIIZCBIQQ2YCAgAALIAEpAxAhAiABKQMIIQMLIANQDQELAAsgAUEwaiSAgICAACACCw8AIAAgARCigICAAEIBUQtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEJSAgIAAIQELIAAgAzcDACAAIAE3AwgLDgAgACABQgEQr4CAgAALGwAgABCrgICAACABELCAgIAAIAIQgYCAgAAaC0EBAX8jgICAgABBEGsiASSAgICAACABIAAQpIGAgAACQCABKAIAQQFHDQAACyABKQMIIQAgAUEQaiSAgICAACAAC3QCAX8CfiOAgICAAEEQayICJICAgIAAQgAhAwJAAkAgARCrgICAACIEQgIQrICAgABFDQAgAiAEQgIQgICAgAAQrYCAgAAgAigCAEEBRg0BIAAgAikDCDcDCEIBIQMLIAAgAzcDACACQRBqJICAgIAADwsACw4AIAAgAUICEK+AgIAAC58FAQF/I4CAgIAAQfAAayIKJICAgIAAELSAgIAAELWAgIAAIAQQtICAgAAgBSAGEKmAgIAAAkACQCAHIAiEQgBRDQAgCkHAAGoQtICAgABCjuj3HxCCgICAABCDgICAABC2gICAACAKKQNAIgZCAlENAQJAIAanQQFxRQ0AIAopA0ggBBC0gICAACAHIAgQqYCAgAAMAQtCg4CAgLD6ARC3gICAAAALIApBwABqIAEQuICAgAAgCikDSCEEIAopA0AQuYCAgAAQtICAgAAhBhCEgICAACEFIAogB0IAUiAIQgBVIAhQGzoAJCAKIAM3AxggCiACNwMQIAogBDcDCCAKIAE2AiAgCkEIahC6gICAACEIIAogCTcDOCAKIAg3AzAgCiAFNwMoQQAhAQNAAkAgAUEYRw0AQQAhAQJAA0AgAUEYRg0BIApBwABqIAFqIApBKGogAWopAwA3AwAgAUEIaiEBDAALCyAGQo7Ss5UOIApBwABqQQMQp4CAgAAQg4CAgAAhCEEAIQECQANAIAFBGEYNASAKQShqIAFqQgI3AwAgAUEIaiEBDAALCyAIQv8Bg0LMAFINAiAIQeyBwIAAQQMgCkEoakEDELuAgIAAIApBwABqIAopAygQvICAgAAgCigCQEEBcQ0CIAopA2ghCCAKKQNgIQcgCikDWCEEIAopA1AhBiAKQcAAaiAKKQMwEL2AgIAAIAooAkANAiAKKQNIIQUgCkHAAGogCikDOBCtgICAACAKKAJAQQFGDQIgCikDSCEJIAAgBzcDECAAIAY3AwAgACAJNwMoIAAgBTcDICAAIAg3AxggACAENwMIIApB8ABqJICAgIAADwsgCkHAAGogAWpCAjcDACABQQhqIQEMAAsLEL6AgIAAAAtJAgF/AX4QwICAgAACQAJAQQAgABDDgICAACIBQgIQrICAgABFDQAgAUICEICAgIAAIgFC/wGDQs0AUQ0BAAsQxYCAgAAACyABCzYAAkAgAEGEgsCAAEEMEPCAgIAAEIKAgIAAEIOAgIAAIgBC/wGDQs0AUQ0AEL6AgIAAAAsgAAs5AAJAIAFCAlENAAJAIAFC/wGDQs0AUQ0AIABCAjcDAA8LIAAgATcDCCAAQgE3AwAPCyAAQgA3AwALCwAgABCkgICAABoLiwECAX8BfiOAgICAAEEQayICJICAgIAAEMCAgIAAAkACQAJAQQEgARDDgICAACIDQgEQrICAgABFDQAgAiADQgEQgICAgAAQvYCAgAAgAigCAEEBRw0BAAsgAEIANwMADAELIAIpAwghAyAAQgE3AwAgACADNwMIIAEQxICAgAALIAJBEGokgICAgAALHgACQCAAp0EBcUUNAA8LQoOAgICQ+gEQt4CAgAAAC3MCAX8BfiOAgICAAEEwayIBJICAgIAAIAEgACkDADcDKCABIAAxABw3AyAgASAAKQMQNwMYIAEgACkDCDcDECABIAA1AhhCIIZCBIQ3AwhB7IDAgABBBSABQQhqQQUQ8oCAgAAhAiABQTBqJICAgIAAIAILMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJ2AgIAAGgvvAQICfwN+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFB1IHAgABBAiACQQIQu4CAgAAgAkEQaiACKQMAEKOBgIAAIAIoAhBBAUYNACACKQMoIQEgAikDICEGIAJBEGogAikDCBCjgYCAACACKAIQQQFGDQAgAikDICEEIAAgAikDKDcDKCAAIAQ3AyAgACABNwMYIAAgBjcDEEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBMGokgICAgAALQgEBfkIBIQICQCABQv8Bg0LIAFINACABEIiAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMACwkAEMeAgIAAAAtaAwF+AX8BfhDAgICAAAJAAkAgACABEMGAgIAAIgJCARCsgICAACIDRQ0AIAJCARCAgICAACIEQv8Bg0LIAFINASAAIAEQwoCAgAALIAQQhYCAgAAgAxsPCwALSAEBfyOAgICAAEEQayIAJICAgIAAIABBBGoQ/4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEPiAgIAACyAAQRBqJICAgIAAC4oBAgF/AX4jgICAgABBMGsiAiSAgICAACACQSBqQYCDwIAAQQ8Q1oCAgAACQAJAIAIoAiANACACIAIpAyg3AwggAiABrUIghkIEhDcDGCACIACtQiCGQgSENwMQIAJBIGogAkEIahDYgICAACACKAIgRQ0BCwALIAIpAyghAyACQTBqJICAgIAAIAMLawIBfwJ+I4CAgIAAQRBrIgIkgICAgAAgAkEEahDLgICAAAJAIAIoAgRBAUcNACACNQIMIQMgAjUCCCEEIAAgARDBgICAAEIBIARCIIZCBIQgA0IghkIEhBCGgICAABoLIAJBEGokgICAgAALmwECAX8BfiOAgICAAEEQayICJICAgIAAAkACQAJAAkAgAEEBcUUNACACQb2CwIAAQQQQ1oCAgAAgAigCAA0CIAIgAikDCCABrUIghkIEhBDZgICAAAwBCyACQbWCwIAAQQgQ1oCAgAAgAigCAA0BIAIgAikDCBDXgICAAAsgAikDCCEDIAIpAwBQDQELAAsgAkEQaiSAgICAACADC2sCAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQy4CAgAACQCABKAIEQQFHDQAgATUCDCECIAE1AgghA0EBIAAQw4CAgABCASADQiCGQgSEIAJCIIZCBIQQhoCAgAAaCyABQRBqJICAgIAACwkAEL6AgIAAAAscAAJAIABBf2pB/wFxQQRJDQAQx4CAgAAACyAACwMAAAtNAgF/AX4QwICAgABBACEAAkBBABDJgICAACIBQgIQrICAgABFDQBBASEAAkACQCABQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAAsgAAvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBiobAgABBBhDWgICAACABKAIADQMgASABKQMIENeAgIAADAILIAFBkIbAgABBCBDWgICAACABKAIADQIgASABKQMIENeAgIAADAELIAFBmIbAgABBChDWgICAACABKAIADQEgASABKQMIENeAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILaQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahDLgICAAAJAIAEoAgRBAUcNACABNQIMIQIgATUCCCEDIAAQq4CAgABCASADQiCGQgSEIAJCIIZCBIQQhoCAgAAaCyABQRBqJICAgIAACwwAIABBAhCtgYCAAAsPABDNgICAABCHgICAABoLRwIBfwF+I4CAgIAAQRBrIgAkgICAgAAQwICAgAAgABDPgICAACAAKQMIIQEgACkDAEGLCBDQgICAACAAQRBqJICAgIAAIAELbAIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDPgICAACAAKQMIIQEgACkDAEGLCBDQgICAAAJAIAEQzYCAgAAQ0YCAgAANAEKDgICA4IABELeAgIAAAAsgARCHgICAABogAEEQaiSAgICAACABCxAAEMCAgIAAIAAQ1YCAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBC3gICAAAALDQAgACABEJ6AgIAAUAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABDTgICAAAJAIAApAwBQDQBCg4CAgMCBARC3gICAAAALIABBEGokgICAgAALUwECfhDAgICAAEIAIQECQAJAQQEQ1ICAgAAiAkIAEKyAgIAARQ0AIAJCABCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQZ2FwIAAQQwQ1oCAgAAgASgCAA0CIAEgASkDCBDXgICAAAwBCyABQZiFwIAAQQUQ1oCAgAAgASgCAA0BIAEgASkDCBDXgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAENSAgIAAIgJCAhCsgICAAEUNACACQgIQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACEKqBgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAtEAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABNwMIIAJBCGpBARCngICAACEBIABCADcDACAAIAE3AwggAkEQaiSAgICAAAtdAgF/AX4jgICAgABBIGsiAiSAgICAACACIAEpAxA3AxggAiABKQMINwMQIAIgASkDADcDCCACQQhqQQMQp4CAgAAhAyAAQgA3AwAgACADNwMIIAJBIGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEKeAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC58BAgF/AX4jgICAgABBEGsiAiSAgICAABCFgICAACEDIAIgADoACyADIAMQiICAgABCgICAgHCDQgSEIAJBC2pBARDbgICAACEDIAIgAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AgwgAyADEIiAgIAAQoCAgIBwg0IEhCACQQxqQQQQ24CAgAAhAyACQRBqJICAgIAAIAMLHgAgACABIAKtQiCGQgSEIAOtQiCGQgSEEJqAgIAACzEAAkAgABCIgICAAEL/////D1YNABDdgICAAAALIABCBBCJgICAAEIgiKcQxoCAgAALCQAQx4CAgAAAC6kDAgF/An4jgICAgABBIGsiAiSAgICAAEIMIQMCQCABQQUgARCIgICAAEIgiKcQ34CAgAAiARCIgICAAEKAgICAEFQNACABEIqAgIAAIQMLIAJBD2ogAxCLgICAACIBQgRChICAgIACEIyAgIAAEOCAgIAAAkACQCACLQAPQQFGDQAgAikAGCEDIAIpABAhBCACQQ9qIAFChICAgIACQoSAgICABBCMgICAABDggICAACACLQAPQQFGDQAgBCADhEIAUg0BIAIpABAiAUI4hiABQoD+A4NCKIaEIAFCgID8B4NCGIYgAUKAgID4D4NCCIaEhCABQgiIQoCAgPgPgyABQhiIQoCA/AeDhCABQiiIQoD+A4MgAUI4iISEhCIDQn9XDQEgACACKQAYIgFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwAgACADNwMIIAJBIGokgICAgAAPCxC+gICAAAALQoOAgIAgELeAgIAAAAscACAAIAGtQiCGQgSEIAKtQiCGQgSEEIyAgIAAC9kBAgN/AX4jgICAgABBEGsiAiSAgICAAEEBIQMCQCABEIiAgIAAQoCAgIBwg0KAgICAgAJSDQAgAkEIakIANwMAIAJCADcDACAAQQFqIQRBACEDAkADQCABEIiAgIAAQoCAgIAQVA0BIAEQn4CAgAAhBSABQQEQjoGAgAAhAQJAIANBEEYNACACIANqIAVCIIg8AAAgA0EBaiEDDAELC0EQEKmBgIAAAAsgBCACKQMANwAAIARBCGogAkEIaikDADcAAEEAIQMLIAAgAzoAACACQRBqJICAgIAAC+8CAgF/AX4jgICAgABBMGsiAiSAgICAABCFgICAACEDIAJBgAY7ARAgAyADEIiAgIAAQoCAgIBwg0IEhCACQRBqQQIQ24CAgABChICAgBAQjYCAgAAhAyACQoCAgICA4MCGwAA3AwggAkIANwMAIAIgAEI4hjcDGCACQgA3AxACQAJAIAAgAYRCAFINACACQYAiOwEuIAMgAxCIgICAAEKAgICAcINCBIQgAkEuakECENuAgIAAQoSAgIAQEI2AgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRAQ24CAgAAhAAwBCyACQYDCADsBLiADIAMQiICAgABCgICAgHCDQgSEIAJBLmpBAhDbgICAAEKEgICAEBCNgICAACEAIAAgABCIgICAAEKAgICAcINCBIQgAkEQENuAgIAAIQAgACAAEIiAgIAAQoCAgIBwg0IEhCACQRBqQRAQ24CAgAAhAAsgAkEwaiSAgICAACAAC14CAX8BfiOAgICAAEEQayICJICAgIAAIAIgABDegICAAAJAIAEpAwAgAikDAFogASkDCCIAIAIpAwgiA1kgACADURsNAEKDgICAMBC3gICAAAALIAJBEGokgICAgAALaAIBfwF+I4CAgIAAQSBrIgIkgICAgAAgAiABNwMIIAIgADYCBCACQQE2AgAgAkEQaiACEKqAgIAAAkAgAikDECIBUA0AIAIQyoCAgAALIAIpAxghAyACQSBqJICAgIAAIANCACABpxsLRwEBfyOAgICAAEEQayIDJICAgIAAIAMgATcDCCADIAA2AgQgA0EBNgIAIAMgAhCugICAACADEMqAgIAAIANBEGokgICAgAALagICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEECNgIAQQAhAQJAIAAQq4CAgAAiAkICEKyAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQtAAQF/I4CAgIAAQRBrIgIkgICAgAAgAkEGNgIAIAIgADYCBCACIAEQroCAgAAgAhDKgICAACACQRBqJICAgIAACwgAEM2AgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQz4CAgAAgACkDACAAKQMIEOmAgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDTgICAACAAKQMAIAApAwgQ6YCAgAAhASAAQRBqJICAgIAAIAELPAEBfgJAIABC/wGDQs0AUQ0AAAsQwICAgAAQzoCAgAAhARDSgICAACAAEOyAgIAAIAEgABDtgICAAEICCw4AQQAgAEICEPSAgIAAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQcmDwIAAQRUQ8ICAgAAQ8YCAgAAhAyACIAA3AwggAiABNwMAIANB8IPAgABBAiACQQIQ8oCAgAAQjoCAgAAaIAJBEGokgICAgAAL/AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAQwICAgAAQzoCAgAAhAwJAAkAgAUL/////D1YNACACQQhqENOAgIAAIAIpAxAhASACKQMIQYkIENCAgIAAIAEgABDRgICAAEUNAxDvgICAAEG0hMCAAEEcEPCAgIAAEPGAgIAAIQAgAiADNwMQIAIgATcDCCAAQeyEwIAAQQIgAkEIakECEPKAgIAAEI6AgIAAGgwBCxDzgICAACABQiCIp0kNA0EBIABCABD0gICAAEEBENSAgIAAQgAgAUKEgICAcIMiASABEIaAgIAAGkGAhMCAAEEWEPCAgIAAEPGAgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEGchMCAAEEDIAJBCGpBAxDygICAABCOgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgPCAARC3gICAAAALQoOAgICAgQEQt4CAgAAACxMAQQEQ1ICAgABCABCPgICAABoLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQqoGAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCngICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJyAgIAACzMBAn4QoICAgAAhAAJAEKGAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEL6AgIAAAAsVACAAENSAgIAAIAEgAhCBgICAABoLiAECAX8CfiOAgICAAEEQayIAJICAgIAAEMCAgIAAIAAQ04CAgAAgACkDCCEBIAApAwBBiQgQ0ICAgAAgARCHgICAABogABDVgICAAAJAIAAoAgANABDFgICAAAALIAApAwghAhDvgICAACABEOyAgIAAIAIgARDtgICAACAAQRBqJICAgIAAQgILhAECAX8CfiOAgICAAEEQayIAJICAgIAAEMCAgIAAEM6AgIAAIQEQ0oCAgABBABDUgICAAEICEI+AgIAAGkH8hMCAAEETEPCAgIAAEPGAgIAAIQIgACABNwMIIAJBkIXAgABBASAAQQhqQQEQ8oCAgAAQjoCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxD4gICAAEICDwsACxsAIACtQiCGQgSEIAGtQiCGQgSEEKOAgIAAGgu8BAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ+oCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARD6gICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGBDMgICAABDAgICAAAJAAkACQBDIgICAAA0AEPOAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AELeAgIAAAAtCg4CAgMD/ABC3gICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEPuAgIAADAELQQEQyYCAgABCAhCPgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEPyAgIAADAELQQIQyYCAgABCAhCPgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHEhcCAAEEPEPCAgIAAEPGAgIAAIQAgAkEoahD9gICAACEBIAIgAkE0ahD9gICAADcDSCACIAE3A0AgAEHohcCAAEECIAJBwABqQQIQ8oCAgAAQjoCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEKuBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALDgBBASAAIAEQroGAgAALDgBBAiAAIAEQroGAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEICBgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgugAQICfwF+I4CAgIAAQcAAayIAJICAgIAAEMCAgIAAIABBCGoQ/4CAgAAgAEEUaiIBEMuAgIAAIABBMGogAEEIahCAgYCAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQgIGAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEKeAgIAAIQIgAEHAAGokgICAgAAgAgsMACAAQQEQrYGAgAALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQrIGAgAAPCyAAQgA3AwAgAEICNwMIC4gBAQF/I4CAgIAAQRBrIgAkgICAgAAQzICAgAAQwICAgAACQBDIgICAAEUNAEKDgICA4P8AELeAgIAAAAtBABDJgICAAEIBQgIQgYCAgAAaQfiFwIAAQRIQ8ICAgAAQ8YCAgABBBEEAIABBCGpBABDygICAABCOgICAABogAEEQaiSAgICAAEICCwkAEMiAgIAArQt8AgF/AX4jgICAgABBIGsiACSAgICAABDAgICAACAAQRBqEISBgIAAAkACQCAAKAIQDQAgACkDGCEBIABBEGoQhIGAgAAgACgCEEEBRw0BCwALIAAgACkDGDcDCCAAIAE3AwAgAEECEKeAgIAAIQEgAEEgaiSAgICAACABCwwAIABCARCkgYCAAAsIABC0gICAAAtRAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0IEUQ0AAAsgASAAQiCIpxC4gICAACABKQMAIAEpAwgQ6YCAgAAhACABQRBqJICAgIAAIAAL/wEEAX8BfgF/AX4jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQgRSDQACQAJAIAFCAlINAEIAIQEMAQsgAiABEL2AgIAAIAIoAgBBAUYNASACKQMIIQNCASEBCxDMgICAABDAgICAAEEBIABCIIinIgQQw4CAgAAhBQJAAkAgAVANACAFIANCARCBgICAABogBBDEgICAAAwBCyAFQgEQj4CAgAAaC0KO8qq88Naq6wAQ8YCAgAAhBSACIAEgAxDpgICAADcDCCACIABChICAgHCDNwMAIAVByILAgABBAiACQQIQ8oCAgAAQjoCAgAAaIAJBEGokgICAgABCAg8LAAtnAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQtoCAgAACQCABKQMAIgBCAlINAAALIAEpAwghAhDMgICAABDAgICAABC0gICAABCEgICAACAAIAIQiYGAgAAgAUEQaiSAgICAAEICC7YBAwF/AX4BfyOAgICAAEEgayIEJICAgIAAQZCCwIAAQQwQ8ICAgAAhBSAEIAIgAxDpgICAADcDCCAEIAE3AwBBACEGA0ACQCAGQRBHDQBBACEGAkADQCAGQRBGDQEgBEEQaiAGaiAEIAZqKQMANwMAIAZBCGohBgwACwsgACAFIARBEGpBAhCngICAABCogICAACAEQSBqJICAgIAADwsgBEEQaiAGakICNwMAIAZBCGohBgwACwsvAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxC/gICAAA8LAAu6AwcBfwN+AX8BfgF/AX4BfyOAgICAAEEgayIBJICAgIAAAkACQCAAQv8Bg0LLAFINABDMgICAABDAgICAACAAEJCAgIAAQiCIIQJCACEDAkADQCADIAJRDQEgACADQiCGQgSEEJGAgIAAIQRBACEFAkADQCAFQRhGDQEgAUEIaiAFakICNwMAIAVBCGohBQwACwtBASEFAkAgBEL/AYNCzABSDQAgBEHogsCAAEEDIAFBCGpBAxC7gICAACABKQMIIgRC/wGDQgRSDQAgASkDECIGQv8Bg0IEUg0AIAcgBkIgiKcgASkDGCIGQv8Bg0LIAFIiBRshByAIIAYgBRshCCAJIARCIIinIAUbIQkLIANC/////w9RDQMgBQ0DIAEgBzYCFCABIAk2AhAgASAINwMIIAFBCGoQjIGAgAAgCSAHEMGAgIAAIAhCARCBgICAABogCSAHEMKAgIAAIANCAXwhAwwACwtBj4PAgABBExDwgICAABDxgICAACEDIAEgADcDCCADQbiDwIAAQQEgAUEIakEBEPKAgIAAEI6AgIAAGiABQSBqJICAgIAAQgIPCwALEL6AgIAAAAvWAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAKQMAIgIQiICAgABC/////x9YDQAgAkEAQQIQ34CAgAAiAhCIgICAAEKAgICAcINCgICAgCBSDQEgAUEAOwEOIAIQiICAgABCgICAgHCDQoCAgIAgUg0CIAIgAUEOakECEKeBgIAAIAEvAQ5BgAZHDQMgAUEQaiSAgICAAA8LQoOAgICA/QAQt4CAgAAAC0KDgICAgIIBELeAgIAAAAsQqIGAgAAAC0KDgICAgPoBELeAgIAAAAvYAQEBfyOAgICAAEEQayIDJICAgIAAAkACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAkL/AYNCyABSDQAgAyACNwMIEMCAgIAAAkAgAEIgiKcgAUIgiKcQv4CAgAAiABCIgICAAEKAgICAEFQNAAJAIAIQiICAgABCgICAgBBaDQAgACECDAELIAIQiICAgABC/////x9YDQIgA0EIahCMgYCAACAAIAJBAhCOgYCAABCSgICAACECCyADQRBqJICAgIAAIAIPCwALQoOAgICA+gEQt4CAgAAACyUAIAAgAa1CIIZCBIQgABCIgICAAEKAgICAcINCBIQQjICAgAALgwIBAX8jgICAgABBEGsiAySAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0LNAFINAEGAyx5BgNIfEPuAgIAAQYDLHkGA0h8Q/ICAgABBABDUgICAAEICEKyAgIAADQEgABDsgICAAEEAIAMQw4CAgAAgAUICEIGAgIAAGiABEISAgIAAQgEgAhCJgYCAACABQo7SrhUQgoCAgAAQg4CAgAAiAUL/AYNCBFINAiADQQA2AgAgAxCrgICAACABQoSAgIBwg0ICEIGAgIAAGiADQRBqJICAgIAAQgIPCwALQoOAgICggQEQt4CAgAAACxC+gICAAAAL/QMCBH8BfiOAgICAAEHgAGsiBCSAgICAAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACACQv8Bg0LIAFINAEEAIQVBASADp0H/AXEiBkEAR0EBdCAGQQFGGyIGQQJGDQAQwICAgAAgAUIgiKcQxoCAgAAQkYGAgAAQ2oCAgAAhASAEQTBqIABCIIinIgcQuICAgAAgBCkDOCEAIAQpAzAQuYCAgAAQtICAgAAhAxCEgICAACEIIAQgBjoAHCAEIAI3AxAgBCABNwMIIAQgADcDACAEIAc2AhggBCAEELqAgIAANwMoIAQgCDcDIAJAAkADQAJAIAVBEEcNAEEAIQUCQANAIAVBEEYNASAEQTBqIAVqIARBIGogBWopAwA3AwAgBUEIaiEFDAALCyAEQTBqIANCjtS52u4GIARBMGpBAhCngICAABCDgICAABC8gICAACAEKAIwQQFxDQIgBCkDWCEAIAQpA1AhASAEQTBqIAQpA0AgBCkDSBCSgYCAACAEKAIwDQQgBCkDOCECIARBMGogASAAEJKBgIAAIAQoAjBBAUcNAwwECyAEQTBqIAVqQgI3AwAgBUEIaiEFDAALCxC+gICAAAALIAQgBCkDODcDCCAEIAI3AwBB1IHAgABBAiAEQQIQ8oCAgAAhACAEQeAAaiSAgICAACAADwsAC20CAX8BfiOAgICAAEEQayIAJICAgIAAEMCAgIAAIABBADYCAAJAAkAgABCrgICAACIBQgIQrICAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDFgICAAAALIABBEGokgICAgAAgAUIgiKcLWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQmICAgAAhAQsgAEIANwMAIAAgATcDCAv0AQMBfwN+AX8jgICAgABBMGsiBSSAgICAAAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQv8Bg0IEUg0AIANC/wGDQsgAUg0AIAUgBBC8gICAACAFKAIAQQFxDQAgBSkDKCEEIAUpAyAhBiAFKQMYIQcgBSkDECEIEMCAgIAAIAAQh4CAgAAaIAFCIIinIgkQlIGAgABCAXwiAUIAUQ0BIAkgARDmgICAACAFIAkgAkIgiKcQxoCAgAAQkYGAgAAQ2oCAgAAgAyAAIAggByAGIAQgABCzgICAACAFQTBqJICAgIAAQgIPCwALEL6AgIAAAAtnAgF/An4jgICAgABBIGsiASSAgICAABDAgICAACABQQY2AgAgASAANgIEIAFBEGogARCqgICAAAJAIAEpAxAiAlANACABEMqAgIAACyABKQMYIQMgAUEgaiSAgICAACADQgAgAqcbC2sBAn8jgICAgABBEGsiASSAgICAAAJAQQEgAKdB/wFxIgJBAEdBAXQgAkEBRhsiAkECRw0AAAsQzICAgAAQwICAgAAgAUECNgIAIAEQq4CAgAAgAq1CAhCBgICAABogAUEQaiSAgICAAEICC+sCAwJ/An4BfyOAgICAAEHQAGsiAySAgICAAAJAIABC/wGDQgRSDQAgA0EoaiABEL2AgIAAIAMoAihBAUYNACADKQMwIQEgA0EoaiACEK2AgIAAIAMoAihBAUYNACAAQiCIpyEEIAMpAzAhBRDMgICAABDAgICAABCEgICAACECELSAgIAAIQYgAyAFELCAgIAANwMgIAMgATcDGCADIABChICAgHCDNwMQIAMgAjcDCCADIAI3AwBBACEHAkADQAJAIAdBKEcNAEEAIQcCQANAIAdBKEYNASADQShqIAdqIAMgB2opAwA3AwAgB0EIaiEHDAALCyAGQo7qrpgOIANBKGpBBRCngICAABCogICAAAJAEOWAgIAARQ0AIAQgARDjgICAAEIBfCIAUA0DIAQgASAAEOSAgIAACyADQdAAaiSAgICAAEICDwsgA0EoaiAHakICNwMAIAdBCGohBwwACwsQvoCAgAAACwALDwAQkYGAgACtQiCGQgSECw4AEJmBgIAAELCAgIAAC1ECAn8BfiOAgICAAEEgayIAJICAgIAAEMCAgIAAIABBAzYCACAAQRBqIAAQsYCAgAAgACgCECEBIAApAxghAiAAQSBqJICAgIAAIAJCACABGwsOABCbgYCAABCwgICAAAtRAgJ/AX4jgICAgABBIGsiACSAgICAABDAgICAACAAQQQ2AgAgAEEQaiAAELGAgIAAIAAoAhAhASAAKQMYIQIgAEEgaiSAgICAACACQgAgARsLIwACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQnYGAgAAQsICAgAALZwIBfwJ+I4CAgIAAQSBrIgEkgICAgAAQwICAgAAgAUEFNgIAIAEgADYCBCABQRBqIAEQqoCAgAACQCABKQMQIgJQDQAgARDKgICAAAsgASkDGCEDIAFBIGokgICAgAAgA0IAIAKnGwsjAAJAIABC/wGDQgRRDQAACyAAQiCIpxCUgYCAABCwgICAAAuPAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAIABC/wGDQgRSDQAgAiABEL2AgIAAIAIoAgBBAUYNACACKQMIIQMQwICAgABCACEBAkAQ5YCAgABFDQAgAEIgiKcgAxDjgICAAEIBfCIBUA0CCyABELCAgIAAIQAgAkEQaiSAgICAACAADwsACxC+gICAAAALfgMBfwF+AX8jgICAgABBIGsiASSAgICAACABIAAQoYGAgAACQCABKAIAQQFGDQAgASkDCCECIAEoAhghAxDAgICAACABIAMQuICAgABCACEAAkAgASgCAEEBRw0AIAEpAwggAhDRgICAAK0hAAsgAUEgaiSAgICAACAADwsAC+IBAgJ/An4jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQaiBwIAAQQMgAkEIakEDELuAgIAAIAJBIGogAikDCBCtgICAACACKAIgDQAgAikDKCEBIAJBIGogAikDEBC9gICAACACKAIgDQAgAikDGCIFQv8Bg0IEUg0AIAIpAyghBCAAIAE3AxAgACAENwMIIAAgBUIgiD4CGEIAIQQLIAAgBDcDACACQTBqJICAgIAAC7MIAwJ/A34BfyOAgICAAEHwAGsiBiSAgICAAAJAAkACQAJAIABC/wGDQs0AUg0AIAZBEGogARChgYCAACAGKAIQQQFGDQAgBigCKCEHIAYpAyAhCCAGKQMYIQEgBkEQaiACEL2AgIAAIAYoAhBBAUYNACADQv8Bg0LIAFINACAEQv8Bg0LIAFINACAGKQMYIQkgBkEQaiAFEKOBgIAAIAYoAhBBAUYNACAGKQMoIQIgBikDICEEEMCAgIAAEISAgIAAIQUQtICAgAAhCiAAEIeAgIAAGgJAIAQgAoRCAFENACAKELWAgIAAIAAgBSAEIAIQpYCAgAALIAZBEGogBxC4gICAAAJAIAYoAhBBAUcNACAGKQMYIAEQ0YCAgABFDQAgBkHIAGogCBCkgYCAACAGKAJIQQFGDQEgBikDUCEAIAYgATcDGCAGIAA3AxAgBiAHrUIghkIEhDcDIEGogcCAAEEDIAZBEGpBAxDygICAACEAIAYgAzcDaCAGIAk3A2AgBiAFNwNYIAYgADcDUCAGIAU3A0hBACELA0ACQCALQShHDQBBACELAkADQCALQShGDQEgBkEQaiALaiAGQcgAaiALaikDADcDACALQQhqIQsMAAsLIApCju6mtYwFIAZBEGpBBRCngICAABCogICAACAGIAI3AwggBiAENwMAIAcgARDjgICAACEAEOWAgIAARQ0EIABCAXwiBVANBSAIIAVRDQRCg4CAgBAQt4CAgAAACyAGQRBqIAtqQgI3AwAgC0EIaiELDAALC0KDgICAoPoBELeAgIAAAAsACwJAIAggAFgNACAHIAEgCBDkgICAAAsQhICAgAAhARCZgYCAACEIIAcQnYGAgAAhACAIQgF8IghQDQAgBkEDNgIQIAZBEGogCBCygICAACAAQgF8IghQDQAgBkEFNgIQIAYgBzYCFCAGQRBqIAgQroCAgAAgBkEQahDKgICAAAJAAkACQCADENyAgIAAQf8BcUF/ag4EAQACAAELELSAgIAAIQhBnILAgABBDBDwgICAACECIAYgAzcDaCAGQgQ3A2AgBiAJNwNYIAYgATcDUCAGIAE3A0hBACELA0ACQCALQShHDQBBACELAkADQCALQShGDQEgBkEQaiALaiAGQcgAaiALaikDADcDACALQQhqIQsMAAsLIAggAiAGQRBqQQUQp4CAgAAQqICAgAAMBQsgBkEQaiALakICNwMAIAtBCGohCwwACwsgAyAGEOKAgIAADAILIAMgBhDigICAACAHEJSBgIAAQgF8IgNQDQAgByADEOaAgIAAQgpCABDhgICAACEDIAZBEGogB0EBEJGBgIAAENqAgIAAQowUEIuAgIAAEJKAgIAAIAMgASAEIAJCAEIAIAEQs4CAgAAMAQsQvoCAgAAACyAGQfAAaiSAgICAAEICC30CAX8BfgJAAkACQAJAIAGnQf8BcSICQcUARg0AIAJBC0cNAiAAIAFCP4c3AxggACABQgiHNwMQDAELIAEQloCAgAAhAyABEJeAgIAAIQEgACADNwMYIAAgATcDEAtCACEBDAELIABCg5CAgIABNwMIQgEhAQsgACABNwMACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCTgICAACEBCyAAQgA3AwAgACABNwMIC2oBAn8jgICAgABBIGsiAySAgICAACADIAAQoYGAgAACQCADKAIAQQFGDQAgAUL/AYNCyABSDQAgAkL/AYNCzQBSDQAQwICAgAAQhICAgAAgAhDRgICAACEEIANBIGokgICAgAAgBK0PCwAL4QUDAX8DfgF/I4CAgIAAQeAAayIHJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACAHIAIQvYCAgAAgBygCAEEBRg0AIANC/wGDQgRSDQAgBEL/AYNCyABSDQAgBUL/AYNCyABSDQAgBykDCCEIIAcgBhCjgYCAACAHKAIAQQFGDQAgBykDGCECIAcpAxAhBRDAgICAACAAEIeAgIAAGhCEgICAACEGELSAgIAAIQlBqILAgABBDRDwgICAACEKIAcgBDcDWCAHIANChICAgHCDNwNQIAcgCDcDSCAHIAE3A0AgByAGNwM4QQAhCwJAAkADQAJAIAtBKEcNAEEAIQsCQANAIAtBKEYNASAHIAtqIAdBOGogC2opAwA3AwAgC0EIaiELDAALCyAJIAogB0EFEKeAgIAAEKiAgIAAAkAgBVAgAkIAUyACUBsNACAJELWAgIAAIAAgBiAFIAIQpYCAgAALAkACQCAEENyAgIAAIgtB/wFxQX5qDgMBAAEAC0KDgICAwAAQt4CAgAAACyAHIAQQ3oCAgAAgBSAHKQMAVCACIAcpAwgiAFMgAiAAURsNBRCbgYCAAEIBfCIAUA0DIAdBBDYCACAHIAAQsoCAgAACQCALQf8BcUEERw0AIAdBADYCACAEQoSAgIAQQoSAgIDQABCMgICAACIEEIiAgIAAQoCAgIBwg0KAgICAwABSDQMgBCAHQQQQp4GAgAAgBygCACILQRh0IAtBgP4DcUEIdHIgC0EIdkGA/gNxIAtBGHZyciILEJSBgIAAQgF8IgRQDQQgCyAEEOaAgIAAEISAgIAAIQQgByALQQEQkYGAgAAQ2oCAgABCAEIAEOGAgIAAIAQgBSACQgBCACAEELOAgIAACyAHQeAAaiSAgICAAEICDwsgByALakICNwMAIAtBCGohCwwACwsQqIGAgAAACxC+gICAAAALAAtCg4CAgDAQt4CAgAAACx8AIABCBCABrUIghkIEhCACrUIghkIEhBCbgICAABoLCQAQvoCAgAAACwkAEMeAgIAAAAvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCZgICAACEDCyAAQgA3AwAgACADNwMIC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQbSFwIAAQQIgAkECELuAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBtIXAgABBAiADQQIQ8oCAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEMmAgIAAIgRCAhCsgICAAEUNACACQQRqIARCAhCAgICAABCrgYCAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALVgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgABDJgICAACEEIAMgASACEKyBgIAAAkAgAygCAEEBRw0AAAsgBCADKQMIQgIQgYCAgAAaIANBEGokgICAgAALC6wGAQBBgIDAAAuiBkVJRE1heFJlY2VpdmVkTm9uY2VPcmRlcmVkTm9uY2VDb3VudENvbXBvc2VkQ291bnRJbmJvdW5kQ291bnRPdXRib3VuZENvdW50bWVzc2FnZWRzdF9laWRwYXlfaW5fenJvcmVjZWl2ZXIAAFEAEAAHAAAASgAQAAcAAABgARAABwAAAFgAEAAKAAAAYgAQAAgAAABub25jZXNlbmRlcnNyY19laWQAAJQAEAAFAAAAmQAQAAYAAACfABAABwAAAG5hdGl2ZV9mZWV6cm9fZmVlAAAAwAAQAAoAAADKABAABwAAAGZlZWd1aWQA5AAQAAMAAADnABAABAAAAJQAEAAFAAAAbmF0aXZlX3Rva2Vuc2V0X2RlbGVnYXRlc2VuZF9jb21wb3NlY2xlYXJfY29tcG9zZUVuZHBvaW50UGVlcmVpZHBlZXJBARAAAwAAAEQBEAAEAAAAbXNnX3R5cGVvcHRpb25zAEEBEAADAAAAWAEQAAgAAABgARAABwAAAEVuZm9yY2VkT3B0aW9uc2VuZm9yY2VkX29wdGlvbl9zZXRlbmZvcmNlZF9vcHRpb25fcGFyYW1zogEQABYAAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXLeARAACQAAAOcBEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAN4BEAAJAAAA5wEQAAkAAAAWAhAAAwAAAG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWRjYW5jZWxsZWRfcGVuZGluZ19vd25lcm93bmVyUAIQABcAAABnAhAABQAAAG93bmVyc2hpcF9yZW5vdW5jZWQA5wEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAqQIQAAkAAADAARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAANMCEAAIAAAA2wIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnQAg6oBDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAADENvdW50ZXJFcnJvcgAAAAQAAAAAAAAAEE9BcHBJbnZhbGlkTm9uY2UAAAABAAAAAAAAAA9JbnZhbGlkTXNnVmFsdWUAAAAAAgAAAAAAAAARSW5zdWZmaWNpZW50VmFsdWUAAAAAAAADAAAAAAAAAA5JbnZhbGlkTXNnVHlwZQAAAAAABAAAAAIAAAAAAAAAAAAAAA5Db3VudGVyU3RvcmFnZQAAAAAABwAAAAAAAAAAAAAAA0VJRAAAAAABAAAAAAAAABBNYXhSZWNlaXZlZE5vbmNlAAAAAgAAAAQAAAPuAAAAIAAAAAAAAAAAAAAADE9yZGVyZWROb25jZQAAAAAAAAAAAAAABUNvdW50AAAAAAAAAAAAAAAAAAANQ29tcG9zZWRDb3VudAAAAAAAAAEAAAAAAAAADEluYm91bmRDb3VudAAAAAEAAAAEAAAAAQAAAAAAAAANT3V0Ym91bmRDb3VudAAAAAAAAAEAAAAEAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAK5SZXRyaWV2ZXMgdGhlIE9BcHAgdmVyc2lvbiBpbmZvcm1hdGlvbi4KCiMgUmV0dXJucwpBIHR1cGxlIGNvbnRhaW5pbmc6Ci0gYHNlbmRlcl92ZXJzaW9uYDogVGhlIHZlcnNpb24gb2YgdGhlIE9BcHBTZW5kZXIKLSBgcmVjZWl2ZXJfdmVyc2lvbmA6IFRoZSB2ZXJzaW9uIG9mIHRoZSBPQXBwUmVjZWl2ZXIAAAAAAAxvYXBwX3ZlcnNpb24AAAAAAAAAAQAAA+0AAAACAAAABgAAAAYAAAAAAAAAbFJldHJpZXZlcyB0aGUgTGF5ZXJaZXJvIGVuZHBvaW50IGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBPQXBwLgoKIyBSZXR1cm5zClRoZSBMYXllclplcm8gZW5kcG9pbnQgYWRkcmVzcwAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAADBUmV0cmlldmVzIHRoZSBwZWVyIChPQXBwKSBhc3NvY2lhdGVkIHdpdGggYSBjb3JyZXNwb25kaW5nIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoKIyBSZXR1cm5zClRoZSBwZWVyIGFkZHJlc3MgKE9BcHAgaW5zdGFuY2UpIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBlbmRwb2ludAAAAAAAAARwZWVyAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAD6AAAA+4AAAAgAAAAAAAAAOVTZXRzIG9yIHJlbW92ZXMgdGhlIHBlZXIgYWRkcmVzcyAoT0FwcCBpbnN0YW5jZSkgZm9yIGEgY29ycmVzcG9uZGluZyBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgcGVlcmAgLSBUaGUgYWRkcmVzcyBvZiB0aGUgcGVlciB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZW5kcG9pbnQsIG9yIE5vbmUgdG8gcmVtb3ZlIHRoZSBwZWVyAAAAAAAACHNldF9wZWVyAAAAAgAAAAAAAAADZWlkAAAAAAQAAAAAAAAABHBlZXIAAAPoAAAD7gAAACAAAAAAAAAAAAAAAI5TZXRzIHRoZSBkZWxlZ2F0ZSBhZGRyZXNzIGZvciB0aGUgT0FwcCBDb3JlLgoKIyBBcmd1bWVudHMKKiBgZGVsZWdhdGVgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGRlbGVnYXRlIHRvIGJlIHNldCwgb3IgTm9uZSB0byByZW1vdmUgdGhlIGRlbGVnYXRlAAAAAAAMc2V0X2RlbGVnYXRlAAAAAQAAAAAAAAAIZGVsZWdhdGUAAAPoAAAAEwAAAAAAAAAAAAAA2VJldHJpZXZlcyB0aGUgZW5mb3JjZWQgb3B0aW9ucyBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlLgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIFRoZSBlbmRwb2ludCBJRAoqIGBtc2dfdHlwZWAgLSBUaGUgT0FwcCBtZXNzYWdlIHR5cGUKCiMgUmV0dXJucwpUaGUgZW5mb3JjZWQgb3B0aW9ucyBmb3IgdGhlIGdpdmVuIGVuZHBvaW50IGFuZCBtZXNzYWdlIHR5cGUAAAAAAAAQZW5mb3JjZWRfb3B0aW9ucwAAAAIAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAhtc2dfdHlwZQAAAAQAAAABAAAADgAAAAAAAAKbU2V0cyB0aGUgZW5mb3JjZWQgb3B0aW9ucyBmb3Igc3BlY2lmaWMgZW5kcG9pbnQgYW5kIG1lc3NhZ2UgdHlwZSBjb21iaW5hdGlvbnMuCgpPbmx5IHRoZSBgYXV0aG9yaXplcmAgb2YgdGhlIE9BcHAgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbi4KUHJvdmlkZXMgYSB3YXkgZm9yIHRoZSBPQXBwIHRvIGVuZm9yY2UgdGhpbmdzIGxpa2UgcGF5aW5nIGZvciBQcmVDcmltZSwgQU5EL09SIG1pbmltdW0gZHN0IGx6UmVjZWl2ZSBnYXMgYW1vdW50cyBldGMuClRoZXNlIGVuZm9yY2VkIG9wdGlvbnMgY2FuIHZhcnkgYXMgdGhlIHBvdGVudGlhbCBvcHRpb25zL2V4ZWN1dGlvbiBvbiB0aGUgcmVtb3RlIG1heSBkaWZmZXIgYXMgcGVyIHRoZSBtc2dfdHlwZS4KZS5nLiBBbW91bnQgb2YgbHpSZWNlaXZlKCkgZ2FzIG5lY2Vzc2FyeSB0byBkZWxpdmVyIGEgbHpDb21wb3NlKCkgbWVzc2FnZSBhZGRzIG92ZXJoZWFkIHlvdSBkb24ndCB3YW50IHRvIHBheQppZiB5b3UgYXJlIG9ubHkgbWFraW5nIGEgc3RhbmRhcmQgTGF5ZXJaZXJvIG1lc3NhZ2UgaWUuIGx6UmVjZWl2ZSgpIFdJVEhPVVQgc2VuZENvbXBvc2UoKS4KCiMgQXJndW1lbnRzCiogYG9wdGlvbnNgIC0gQSB2ZWN0b3Igb2YgRW5mb3JjZWRPcHRpb25QYXJhbSBzdHJ1Y3R1cmVzIHNwZWNpZnlpbmcgZW5mb3JjZWQgb3B0aW9ucwAAAAAUc2V0X2VuZm9yY2VkX29wdGlvbnMAAAABAAAAAAAAAAdvcHRpb25zAAAAA+oAAAfQAAAAE0VuZm9yY2VkT3B0aW9uUGFyYW0AAAAAAAAAAAAAAAJ6Q29tYmluZXMgb3B0aW9ucyBmb3IgYSBnaXZlbiBlbmRwb2ludCBhbmQgbWVzc2FnZSB0eXBlLgoKSWYgdGhlcmUgaXMgYW4gZW5mb3JjZWQgbHpSZWNlaXZlIG9wdGlvbjoKLSB7Z2FzX2xpbWl0OiAyMDBrLCB2YWx1ZTogMSBYTE19IEFORCBhIGNhbGxlciBzdXBwbGllcyBhIGx6UmVjZWl2ZSBvcHRpb246IHtnYXNfbGltaXQ6IDEwMGssIHZhbHVlOiAwLjUgWExNfQotIFRoZSByZXN1bHRpbmcgb3B0aW9ucyB3aWxsIGJlIHtnYXNfbGltaXQ6IDMwMGssIHZhbHVlOiAxLjUgWExNfSB3aGVuIHRoZSBtZXNzYWdlIGlzIGV4ZWN1dGVkIG9uIHRoZSByZW1vdGUgbHpfcmVjZWl2ZSgpIGZ1bmN0aW9uLgpUaGUgcHJlc2VuY2Ugb2YgZHVwbGljYXRlZCBvcHRpb25zIGlzIGhhbmRsZWQgb2ZmLWNoYWluIGluIHRoZSB2ZXJpZmllci9leGVjdXRvci4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBUaGUgZW5kcG9pbnQgSUQKKiBgbXNnX3R5cGVgIC0gVGhlIE9BcHAgbWVzc2FnZSB0eXBlCiogYGV4dHJhX29wdGlvbnNgIC0gQWRkaXRpb25hbCBvcHRpb25zIHBhc3NlZCBieSB0aGUgY2FsbGVyCgojIFJldHVybnMKVGhlIGNvbWJpbmF0aW9uIG9mIGNhbGxlciBzcGVjaWZpZWQgb3B0aW9ucyBBTkQgZW5mb3JjZWQgb3B0aW9ucwAAAAAAD2NvbWJpbmVfb3B0aW9ucwAAAAADAAAAAAAAAANlaWQAAAAABAAAAAAAAAAIbXNnX3R5cGUAAAAEAAAAAAAAAA1leHRyYV9vcHRpb25zAAAAAAAADgAAAAEAAAAOAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAhkZWxlZ2F0ZQAAABMAAAAAAAAAAAAAAAAAAAAFcXVvdGUAAAAAAAAEAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAAAQAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAAAAAAAAAAAAJaW5jcmVtZW50AAAAAAAABQAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAAAAAAAAAAAAAAAAAARc2V0X29yZGVyZWRfbm9uY2UAAAAAAAABAAAAAAAAAA1vcmRlcmVkX25vbmNlAAAAAAAAAQAAAAAAAAAAAAAAAAAAABJza2lwX2luYm91bmRfbm9uY2UAAAAAAAMAAAAAAAAAB3NyY19laWQAAAAABAAAAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAAAAAAAAAAAAAAAAA2VpZAAAAAAAAAAAAQAAAAQAAAAAAAAAAAAAAAVjb3VudAAAAAAAAAAAAAABAAAABgAAAAAAAAAAAAAADmNvbXBvc2VkX2NvdW50AAAAAAAAAAAAAQAAAAYAAAAAAAAAAAAAAA1pbmJvdW5kX2NvdW50AAAAAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAABgAAAAAAAAAAAAAADm91dGJvdW5kX2NvdW50AAAAAAABAAAAAAAAAANlaWQAAAAABAAAAAEAAAAGAAAAAAAAAAAAAAAKbmV4dF9ub25jZQAAAAAAAgAAAAAAAAAHc3JjX2VpZAAAAAAEAAAAAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAAQAAAAYAAAAAAAAAt0NoZWNrcyBpZiBhIG1lc3NhZ2luZyBwYXRoIGNhbiBiZSBpbml0aWFsaXplZCBmb3IgdGhlIGdpdmVuIG9yaWdpbi4KCiMgQXJndW1lbnRzCiogYG9yaWdpbmAgLSBUaGUgb3JpZ2luIG9mIHRoZSBtZXNzYWdlCgojIFJldHVybnMKVHJ1ZSBpZiB0aGUgcGF0aCBjYW4gYmUgaW5pdGlhbGl6ZWQsIGZhbHNlIG90aGVyd2lzZQAAAAAVYWxsb3dfaW5pdGlhbGl6ZV9wYXRoAAAAAAAAAQAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAQAAAAEAAAAAAAADI0VudHJ5IHBvaW50IGZvciByZWNlaXZpbmcgbWVzc2FnZXMgb3IgcGFja2V0cyBmcm9tIHRoZSBMYXllclplcm8gZW5kcG9pbnQuCgpUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBjYWxscyBgY2xlYXJfcGF5bG9hZF9hbmRfdHJhbnNmZXJgIHRvIHZhbGlkYXRlIHRoZSBtZXNzYWdlCmFuZCBjbGVhciBpdCBmcm9tIHRoZSBlbmRwb2ludCwgdGhlbiBkZWxlZ2F0ZXMgdG8gYF9fbHpfcmVjZWl2ZWAgZm9yIGFwcGxpY2F0aW9uIGxvZ2ljLgoKIyBBcmd1bWVudHMKKiBgZXhlY3V0b3JgIC0gVGhlIGFkZHJlc3Mgb2YgdGhlIGV4ZWN1dG9yIGZvciB0aGUgcmVjZWl2ZWQgbWVzc2FnZQoqIGBvcmlnaW5gIC0gVGhlIG9yaWdpbiBpbmZvcm1hdGlvbiBjb250YWluaW5nIHRoZSBzb3VyY2UgZW5kcG9pbnQgYW5kIHNlbmRlciBhZGRyZXNzOgotIGBzcmNfZWlkYDogVGhlIHNvdXJjZSBjaGFpbiBlbmRwb2ludCBJRAotIGBzZW5kZXJgOiBUaGUgc2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbgotIGBub25jZWA6IFRoZSBub25jZSBvZiB0aGUgbWVzc2FnZQoqIGBndWlkYCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJlY2VpdmVkIExheWVyWmVybyBtZXNzYWdlCiogYG1lc3NhZ2VgIC0gVGhlIHBheWxvYWQgb2YgdGhlIHJlY2VpdmVkIG1lc3NhZ2UKKiBgZXh0cmFfZGF0YWAgLSBBZGRpdGlvbmFsIGFyYml0cmFyeSBkYXRhIHByb3ZpZGVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGV4ZWN1dG9yCiogYHZhbHVlYCAtIFRoZSBuYXRpdmUgdG9rZW4gdmFsdWUgc2VudCB3aXRoIHRoZSBtZXNzYWdlAAAAAApsel9yZWNlaXZlAAAAAAAGAAAAAAAAAAhleGVjdXRvcgAAABMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAACmV4dHJhX2RhdGEAAAAAAA4AAAAAAAAABXZhbHVlAAAAAAAACwAAAAAAAAAAAAAB7EluZGljYXRlcyB3aGV0aGVyIGFuIGFkZHJlc3MgaXMgYW4gYXBwcm92ZWQgY29tcG9zZU1zZyBzZW5kZXIgdG8gdGhlIEVuZHBvaW50LgoKQXBwbGljYXRpb25zIGNhbiBvcHRpb25hbGx5IGNob29zZSB0byBpbXBsZW1lbnQgc2VwYXJhdGUgY29tcG9zZU1zZyBzZW5kZXJzIHRoYXQgYXJlIE5PVCB0aGUgYnJpZGdpbmcgbGF5ZXIuClRoZSBkZWZhdWx0IHNlbmRlciBJUyB0aGUgT0FwcFJlY2VpdmVyIGltcGxlbWVudGVyLgoKIyBBcmd1bWVudHMKKiBgb3JpZ2luYCAtIFRoZSBvcmlnaW4gaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgc291cmNlIGVuZHBvaW50IGFuZCBzZW5kZXIgYWRkcmVzcwoqIGBtZXNzYWdlYCAtIFRoZSBselJlY2VpdmUgcGF5bG9hZAoqIGBzZW5kZXJgIC0gVGhlIHNlbmRlciBhZGRyZXNzIHRvIGNoZWNrCgojIFJldHVybnMKVHJ1ZSBpZiB0aGUgc2VuZGVyIGlzIGEgdmFsaWQgY29tcG9zZU1zZyBzZW5kZXIsIGZhbHNlIG90aGVyd2lzZQAAABVpc19jb21wb3NlX21zZ19zZW5kZXIAAAAAAAADAAAAAAAAAAZvcmlnaW4AAAAAB9AAAAAGT3JpZ2luAAAAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAAEAAAAAAAAAAAAAAApsel9jb21wb3NlAAAAAAAHAAAAAAAAAAhleGVjdXRvcgAAABMAAAAAAAAABGZyb20AAAATAAAAAAAAAARndWlkAAAD7gAAACAAAAAAAAAABWluZGV4AAAAAAAABAAAAAAAAAAHbWVzc2FnZQAAAAAOAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAABQAA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ACxTdXBwbGllZCBaUk8gdG9rZW4gZmVlIGlzIGxlc3MgdGhhbiByZXF1aXJlZAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAArVGltZW91dCBleHBpcnkgaXMgaW52YWxpZCAoYWxyZWFkeSBleHBpcmVkKQAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAgAAAAgRmVlIGFtb3VudCBpcyBpbnZhbGlkIChuZWdhdGl2ZSkAAAAQSW52YWxpZEZlZUFtb3VudAAAAAkAAAArQ29tcG9zZSBpbmRleCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCB2YWx1ZQAAAAAMSW52YWxpZEluZGV4AAAACgAAACxOb25jZSBpcyBpbnZhbGlkIGZvciB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbgAAAAxJbnZhbGlkTm9uY2UAAAALAAAAMFBheWxvYWQgaGFzaCBpcyBpbnZhbGlkIChlbXB0eSBoYXNoIG5vdCBhbGxvd2VkKQAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAABBUmVjZWl2ZSBsaWJyYXJ5IGlzIG5vdCB2YWxpZCBmb3IgdGhlIHJlY2VpdmVyIGFuZCBzb3VyY2UgZW5kcG9pbnQAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAADFPcGVyYXRpb24gcmVxdWlyZXMgYSBub24tZGVmYXVsdCAoY3VzdG9tKSBsaWJyYXJ5AAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAACdMaWJyYXJ5IG11c3Qgc3VwcG9ydCByZWNlaXZpbmcgbWVzc2FnZXMAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAALExpYnJhcnkgbXVzdCBiZSByZWdpc3RlcmVkIHdpdGggdGhlIGVuZHBvaW50AAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAACVMaWJyYXJ5IG11c3Qgc3VwcG9ydCBzZW5kaW5nIG1lc3NhZ2VzAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAA5TWVzc2FnaW5nIHBhdGggY2Fubm90IGJlIGluaXRpYWxpemVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAC9NZXNzYWdlIGNhbm5vdCBiZSB2ZXJpZmllZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAK1BheWxvYWQgaGFzaCBkb2VzIG5vdCBtYXRjaCB0aGUgc3RvcmVkIGhhc2gAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAACdOZXcgdmFsdWUgaXMgdGhlIHNhbWUgYXMgZXhpc3RpbmcgdmFsdWUAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAvQ2FsbGVyIGlzIG5vdCBhdXRob3JpemVkIChub3QgT0FwcCBvciBkZWxlZ2F0ZSkAAAAADFVuYXV0aG9yaXplZAAAABYAAAArRW5kcG9pbnQgSUQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeQAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAA5WlJPIGZlZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIHdoZW4gcGF5X2luX3pybyBpcyB0cnVlAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAcWlJPIHRva2VuIGFkZHJlc3MgaXMgbm90IHNldAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAADNVbml4IHRpbWVzdGFtcCBpbiBzZWNvbmRzIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAABmV4cGlyeQAAAAAABgAAAENUaGUgb2xkIGxpYnJhcnkgYWRkcmVzcyB0aGF0IHJlbWFpbnMgdmFsaWQgZHVyaW5nIHRoZSBncmFjZSBwZXJpb2QuAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAEAAAAFE9BcHBFcnJvcjogMjAwMC0yMDk5AAAAAAAAAAlPQXBwRXJyb3IAAAAAAAAEAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAH0AAAAAAAAAAGTm9QZWVyAAAAAAfRAAAAAAAAAAhPbmx5UGVlcgAAB9IAAAAAAAAAE1pyb1Rva2VuVW5hdmFpbGFibGUAAAAH0wAAAAIAAAAAAAAAAAAAAA9PQXBwQ29yZVN0b3JhZ2UAAAAAAgAAAAAAAAAAAAAACEVuZHBvaW50AAAAAQAAAAAAAAAEUGVlcgAAAAEAAAAEAAAABQAAAAAAAAAAAAAAB1BlZXJTZXQAAAAAAQAAAAhwZWVyX3NldAAAAAIAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAAAAAAEcGVlcgAAA+gAAAPuAAAAIAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAE0VuZm9yY2VkT3B0aW9uUGFyYW0AAAAAAwAAAAAAAAADZWlkAAAAAAQAAAAAAAAACG1zZ190eXBlAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAgAAAAAAAAAAAAAAF09BcHBPcHRpb25zVHlwZTNTdG9yYWdlAAAAAAEAAAABAAAAAAAAAA9FbmZvcmNlZE9wdGlvbnMAAAAAAgAAAAQAAAAEAAAABQAAAAAAAAAAAAAAEUVuZm9yY2VkT3B0aW9uU2V0AAAAAAAAAQAAABNlbmZvcmNlZF9vcHRpb25fc2V0AAAAAAEAAAAAAAAAFmVuZm9yY2VkX29wdGlvbl9wYXJhbXMAAAAAA+oAAAfQAAAAE0VuZm9yY2VkT3B0aW9uUGFyYW0AAAAAAAAAAAIAAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAwAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELAAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aVNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAA8RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBjYW5jZWxsZWQuAAAAAAAAABpPd25lcnNoaXBUcmFuc2ZlckNhbmNlbGxlZAAAAAAAAQAAABxvd25lcnNoaXBfdHJhbnNmZXJfY2FuY2VsbGVkAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAAXY2FuY2VsbGVkX3BlbmRpbmdfb3duZXIAAAAAEwAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABkAAAAAAG8OY29udHJhY3RtZXRhdjAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4xLjAjODZjNTBhMWVhNGY4N2I0MGFkZDMwNjRmZjlkZjk1Yzc1NTM1NjVjNQAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
|
|
12
12
|
/**
|
|
13
13
|
* Pre-computed WASM hash (SHA-256)
|
|
14
14
|
* Use this when the WASM is already uploaded on-chain
|
|
15
15
|
*/
|
|
16
|
-
export declare const WASM_HASH = "
|
|
16
|
+
export declare const WASM_HASH = "e031afc9dc07436fdb36aac32169ea184720496f3c7a9890aec65f777258336d";
|
|
17
17
|
/**
|
|
18
18
|
* Get the WASM bytecode as a Buffer
|
|
19
19
|
* Use this to upload the WASM to the network
|
|
@@ -56,78 +56,153 @@ export type CounterStorage = {
|
|
|
56
56
|
values: readonly [u32];
|
|
57
57
|
};
|
|
58
58
|
export declare const EndpointError: {
|
|
59
|
+
/**
|
|
60
|
+
* Library is already registered with the endpoint
|
|
61
|
+
*/
|
|
59
62
|
1: {
|
|
60
63
|
message: string;
|
|
61
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Compose message already exists for this GUID and index
|
|
67
|
+
*/
|
|
62
68
|
2: {
|
|
63
69
|
message: string;
|
|
64
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Compose message not found for the given GUID and index
|
|
73
|
+
*/
|
|
65
74
|
3: {
|
|
66
75
|
message: string;
|
|
67
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* Default receive library is not set for the source endpoint
|
|
79
|
+
*/
|
|
68
80
|
4: {
|
|
69
81
|
message: string;
|
|
70
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* Default send library is not set for the destination endpoint
|
|
85
|
+
*/
|
|
71
86
|
5: {
|
|
72
87
|
message: string;
|
|
73
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* Supplied native token fee is less than required
|
|
91
|
+
*/
|
|
74
92
|
6: {
|
|
75
93
|
message: string;
|
|
76
94
|
};
|
|
95
|
+
/**
|
|
96
|
+
* Supplied ZRO token fee is less than required
|
|
97
|
+
*/
|
|
77
98
|
7: {
|
|
78
99
|
message: string;
|
|
79
100
|
};
|
|
101
|
+
/**
|
|
102
|
+
* Timeout expiry is invalid (already expired)
|
|
103
|
+
*/
|
|
80
104
|
8: {
|
|
81
105
|
message: string;
|
|
82
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* Fee amount is invalid (negative)
|
|
109
|
+
*/
|
|
83
110
|
9: {
|
|
84
111
|
message: string;
|
|
85
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* Compose index exceeds maximum allowed value
|
|
115
|
+
*/
|
|
86
116
|
10: {
|
|
87
117
|
message: string;
|
|
88
118
|
};
|
|
119
|
+
/**
|
|
120
|
+
* Nonce is invalid for the requested operation
|
|
121
|
+
*/
|
|
89
122
|
11: {
|
|
90
123
|
message: string;
|
|
91
124
|
};
|
|
125
|
+
/**
|
|
126
|
+
* Payload hash is invalid (empty hash not allowed)
|
|
127
|
+
*/
|
|
92
128
|
12: {
|
|
93
129
|
message: string;
|
|
94
130
|
};
|
|
131
|
+
/**
|
|
132
|
+
* Receive library is not valid for the receiver and source endpoint
|
|
133
|
+
*/
|
|
95
134
|
13: {
|
|
96
135
|
message: string;
|
|
97
136
|
};
|
|
137
|
+
/**
|
|
138
|
+
* Operation requires a non-default (custom) library
|
|
139
|
+
*/
|
|
98
140
|
14: {
|
|
99
141
|
message: string;
|
|
100
142
|
};
|
|
143
|
+
/**
|
|
144
|
+
* Library must support receiving messages
|
|
145
|
+
*/
|
|
101
146
|
15: {
|
|
102
147
|
message: string;
|
|
103
148
|
};
|
|
149
|
+
/**
|
|
150
|
+
* Library must be registered with the endpoint
|
|
151
|
+
*/
|
|
104
152
|
16: {
|
|
105
153
|
message: string;
|
|
106
154
|
};
|
|
155
|
+
/**
|
|
156
|
+
* Library must support sending messages
|
|
157
|
+
*/
|
|
107
158
|
17: {
|
|
108
159
|
message: string;
|
|
109
160
|
};
|
|
161
|
+
/**
|
|
162
|
+
* Messaging path cannot be initialized for the given origin
|
|
163
|
+
*/
|
|
110
164
|
18: {
|
|
111
165
|
message: string;
|
|
112
166
|
};
|
|
167
|
+
/**
|
|
168
|
+
* Message cannot be verified for the given origin
|
|
169
|
+
*/
|
|
113
170
|
19: {
|
|
114
171
|
message: string;
|
|
115
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* Payload hash does not match the stored hash
|
|
175
|
+
*/
|
|
116
176
|
20: {
|
|
117
177
|
message: string;
|
|
118
178
|
};
|
|
179
|
+
/**
|
|
180
|
+
* New value is the same as existing value
|
|
181
|
+
*/
|
|
119
182
|
21: {
|
|
120
183
|
message: string;
|
|
121
184
|
};
|
|
185
|
+
/**
|
|
186
|
+
* Caller is not authorized (not OApp or delegate)
|
|
187
|
+
*/
|
|
122
188
|
22: {
|
|
123
189
|
message: string;
|
|
124
190
|
};
|
|
191
|
+
/**
|
|
192
|
+
* Endpoint ID is not supported by the library
|
|
193
|
+
*/
|
|
125
194
|
23: {
|
|
126
195
|
message: string;
|
|
127
196
|
};
|
|
197
|
+
/**
|
|
198
|
+
* ZRO fee must be greater than zero when pay_in_zro is true
|
|
199
|
+
*/
|
|
128
200
|
24: {
|
|
129
201
|
message: string;
|
|
130
202
|
};
|
|
203
|
+
/**
|
|
204
|
+
* ZRO token address is not set
|
|
205
|
+
*/
|
|
131
206
|
25: {
|
|
132
207
|
message: string;
|
|
133
208
|
};
|
|
@@ -242,11 +317,11 @@ export interface MessageLibVersion {
|
|
|
242
317
|
*/
|
|
243
318
|
export interface Timeout {
|
|
244
319
|
/**
|
|
245
|
-
* Unix timestamp when the timeout expires.
|
|
320
|
+
* Unix timestamp in seconds when the timeout expires.
|
|
246
321
|
*/
|
|
247
322
|
expiry: u64;
|
|
248
323
|
/**
|
|
249
|
-
* The
|
|
324
|
+
* The old library address that remains valid during the grace period.
|
|
250
325
|
*/
|
|
251
326
|
lib: string;
|
|
252
327
|
}
|
|
@@ -431,6 +506,9 @@ export declare const OwnableError: {
|
|
|
431
506
|
1035: {
|
|
432
507
|
message: string;
|
|
433
508
|
};
|
|
509
|
+
1036: {
|
|
510
|
+
message: string;
|
|
511
|
+
};
|
|
434
512
|
};
|
|
435
513
|
/**
|
|
436
514
|
* BytesExtError: 1040-1049
|
|
@@ -455,9 +533,9 @@ export declare const UpgradeableError: {
|
|
|
455
533
|
};
|
|
456
534
|
};
|
|
457
535
|
/**
|
|
458
|
-
*
|
|
536
|
+
* MultiSigError: 1060-1069
|
|
459
537
|
*/
|
|
460
|
-
export declare const
|
|
538
|
+
export declare const MultiSigError: {
|
|
461
539
|
1060: {
|
|
462
540
|
message: string;
|
|
463
541
|
};
|
|
@@ -482,8 +560,11 @@ export declare const MultisigError: {
|
|
|
482
560
|
1067: {
|
|
483
561
|
message: string;
|
|
484
562
|
};
|
|
563
|
+
1068: {
|
|
564
|
+
message: string;
|
|
565
|
+
};
|
|
485
566
|
};
|
|
486
|
-
export type
|
|
567
|
+
export type MultiSigStorage = {
|
|
487
568
|
tag: "Signers";
|
|
488
569
|
values: void;
|
|
489
570
|
} | {
|
|
@@ -531,56 +612,17 @@ export interface Client {
|
|
|
531
612
|
/**
|
|
532
613
|
* Construct and simulate a authorizer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
533
614
|
*/
|
|
534
|
-
authorizer: (
|
|
535
|
-
/**
|
|
536
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
537
|
-
*/
|
|
538
|
-
fee?: number;
|
|
539
|
-
/**
|
|
540
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
541
|
-
*/
|
|
542
|
-
timeoutInSeconds?: number;
|
|
543
|
-
/**
|
|
544
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
545
|
-
*/
|
|
546
|
-
simulate?: boolean;
|
|
547
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
615
|
+
authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
548
616
|
/**
|
|
549
617
|
* Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
550
618
|
* Returns the current owner address, or None if no owner is set.
|
|
551
619
|
*/
|
|
552
|
-
owner: (
|
|
553
|
-
/**
|
|
554
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
555
|
-
*/
|
|
556
|
-
fee?: number;
|
|
557
|
-
/**
|
|
558
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
559
|
-
*/
|
|
560
|
-
timeoutInSeconds?: number;
|
|
561
|
-
/**
|
|
562
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
563
|
-
*/
|
|
564
|
-
simulate?: boolean;
|
|
565
|
-
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
620
|
+
owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
|
|
566
621
|
/**
|
|
567
622
|
* Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
568
623
|
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
569
624
|
*/
|
|
570
|
-
pending_owner: (
|
|
571
|
-
/**
|
|
572
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
573
|
-
*/
|
|
574
|
-
fee?: number;
|
|
575
|
-
/**
|
|
576
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
577
|
-
*/
|
|
578
|
-
timeoutInSeconds?: number;
|
|
579
|
-
/**
|
|
580
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
581
|
-
*/
|
|
582
|
-
simulate?: boolean;
|
|
583
|
-
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
625
|
+
pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
|
|
584
626
|
/**
|
|
585
627
|
* Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
586
628
|
* Transfers ownership immediately to a new address.
|
|
@@ -594,20 +636,7 @@ export interface Client {
|
|
|
594
636
|
*/
|
|
595
637
|
transfer_ownership: ({ new_owner }: {
|
|
596
638
|
new_owner: string;
|
|
597
|
-
}, txnOptions?:
|
|
598
|
-
/**
|
|
599
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
600
|
-
*/
|
|
601
|
-
fee?: number;
|
|
602
|
-
/**
|
|
603
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
604
|
-
*/
|
|
605
|
-
timeoutInSeconds?: number;
|
|
606
|
-
/**
|
|
607
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
608
|
-
*/
|
|
609
|
-
simulate?: boolean;
|
|
610
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
639
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
611
640
|
/**
|
|
612
641
|
* Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
613
642
|
* Proposes an ownership transfer to a new address.
|
|
@@ -629,20 +658,7 @@ export interface Client {
|
|
|
629
658
|
propose_ownership_transfer: ({ new_owner, ttl }: {
|
|
630
659
|
new_owner: string;
|
|
631
660
|
ttl: u32;
|
|
632
|
-
}, txnOptions?:
|
|
633
|
-
/**
|
|
634
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
635
|
-
*/
|
|
636
|
-
fee?: number;
|
|
637
|
-
/**
|
|
638
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
639
|
-
*/
|
|
640
|
-
timeoutInSeconds?: number;
|
|
641
|
-
/**
|
|
642
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
643
|
-
*/
|
|
644
|
-
simulate?: boolean;
|
|
645
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
661
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
646
662
|
/**
|
|
647
663
|
* Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
648
664
|
* Accepts a pending 2-step ownership transfer.
|
|
@@ -652,20 +668,7 @@ export interface Client {
|
|
|
652
668
|
* # Panics
|
|
653
669
|
* - `NoPendingTransfer` if there is no pending transfer (or it expired)
|
|
654
670
|
*/
|
|
655
|
-
accept_ownership: (
|
|
656
|
-
/**
|
|
657
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
658
|
-
*/
|
|
659
|
-
fee?: number;
|
|
660
|
-
/**
|
|
661
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
662
|
-
*/
|
|
663
|
-
timeoutInSeconds?: number;
|
|
664
|
-
/**
|
|
665
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
666
|
-
*/
|
|
667
|
-
simulate?: boolean;
|
|
668
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
671
|
+
accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
669
672
|
/**
|
|
670
673
|
* Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
671
674
|
* Permanently renounces ownership.
|
|
@@ -674,20 +677,7 @@ export interface Client {
|
|
|
674
677
|
* - `OwnerNotSet` if no owner is currently set
|
|
675
678
|
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
676
679
|
*/
|
|
677
|
-
renounce_ownership: (
|
|
678
|
-
/**
|
|
679
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
680
|
-
*/
|
|
681
|
-
fee?: number;
|
|
682
|
-
/**
|
|
683
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
684
|
-
*/
|
|
685
|
-
timeoutInSeconds?: number;
|
|
686
|
-
/**
|
|
687
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
688
|
-
*/
|
|
689
|
-
simulate?: boolean;
|
|
690
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
680
|
+
renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
691
681
|
/**
|
|
692
682
|
* Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
693
683
|
* Extends the instance TTL.
|
|
@@ -700,20 +690,7 @@ export interface Client {
|
|
|
700
690
|
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
701
691
|
threshold: u32;
|
|
702
692
|
extend_to: u32;
|
|
703
|
-
}, txnOptions?:
|
|
704
|
-
/**
|
|
705
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
706
|
-
*/
|
|
707
|
-
fee?: number;
|
|
708
|
-
/**
|
|
709
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
710
|
-
*/
|
|
711
|
-
timeoutInSeconds?: number;
|
|
712
|
-
/**
|
|
713
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
714
|
-
*/
|
|
715
|
-
simulate?: boolean;
|
|
716
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
693
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
717
694
|
/**
|
|
718
695
|
* Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
719
696
|
* Sets TTL configs for instance and persistent storage.
|
|
@@ -732,38 +709,12 @@ export interface Client {
|
|
|
732
709
|
set_ttl_configs: ({ instance, persistent }: {
|
|
733
710
|
instance: Option<TtlConfig>;
|
|
734
711
|
persistent: Option<TtlConfig>;
|
|
735
|
-
}, txnOptions?:
|
|
736
|
-
/**
|
|
737
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
738
|
-
*/
|
|
739
|
-
fee?: number;
|
|
740
|
-
/**
|
|
741
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
742
|
-
*/
|
|
743
|
-
timeoutInSeconds?: number;
|
|
744
|
-
/**
|
|
745
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
746
|
-
*/
|
|
747
|
-
simulate?: boolean;
|
|
748
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
712
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
749
713
|
/**
|
|
750
714
|
* Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
751
715
|
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
752
716
|
*/
|
|
753
|
-
ttl_configs: (
|
|
754
|
-
/**
|
|
755
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
756
|
-
*/
|
|
757
|
-
fee?: number;
|
|
758
|
-
/**
|
|
759
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
760
|
-
*/
|
|
761
|
-
timeoutInSeconds?: number;
|
|
762
|
-
/**
|
|
763
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
764
|
-
*/
|
|
765
|
-
simulate?: boolean;
|
|
766
|
-
}) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
717
|
+
ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
767
718
|
/**
|
|
768
719
|
* Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
769
720
|
* Permanently freezes TTL configs, preventing any future modifications.
|
|
@@ -774,38 +725,12 @@ export interface Client {
|
|
|
774
725
|
* # Panics
|
|
775
726
|
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
776
727
|
*/
|
|
777
|
-
freeze_ttl_configs: (
|
|
778
|
-
/**
|
|
779
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
780
|
-
*/
|
|
781
|
-
fee?: number;
|
|
782
|
-
/**
|
|
783
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
784
|
-
*/
|
|
785
|
-
timeoutInSeconds?: number;
|
|
786
|
-
/**
|
|
787
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
788
|
-
*/
|
|
789
|
-
simulate?: boolean;
|
|
790
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
728
|
+
freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
791
729
|
/**
|
|
792
730
|
* Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
793
731
|
* Returns whether TTL configs are frozen.
|
|
794
732
|
*/
|
|
795
|
-
is_ttl_configs_frozen: (
|
|
796
|
-
/**
|
|
797
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
798
|
-
*/
|
|
799
|
-
fee?: number;
|
|
800
|
-
/**
|
|
801
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
802
|
-
*/
|
|
803
|
-
timeoutInSeconds?: number;
|
|
804
|
-
/**
|
|
805
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
806
|
-
*/
|
|
807
|
-
simulate?: boolean;
|
|
808
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
733
|
+
is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
809
734
|
/**
|
|
810
735
|
* Construct and simulate a oapp_version transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
811
736
|
* Retrieves the OApp version information.
|
|
@@ -815,20 +740,7 @@ export interface Client {
|
|
|
815
740
|
* - `sender_version`: The version of the OAppSender
|
|
816
741
|
* - `receiver_version`: The version of the OAppReceiver
|
|
817
742
|
*/
|
|
818
|
-
oapp_version: (
|
|
819
|
-
/**
|
|
820
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
821
|
-
*/
|
|
822
|
-
fee?: number;
|
|
823
|
-
/**
|
|
824
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
825
|
-
*/
|
|
826
|
-
timeoutInSeconds?: number;
|
|
827
|
-
/**
|
|
828
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
829
|
-
*/
|
|
830
|
-
simulate?: boolean;
|
|
831
|
-
}) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
743
|
+
oapp_version: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u64, u64]>>;
|
|
832
744
|
/**
|
|
833
745
|
* Construct and simulate a endpoint transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
834
746
|
* Retrieves the LayerZero endpoint address associated with the OApp.
|
|
@@ -836,20 +748,7 @@ export interface Client {
|
|
|
836
748
|
* # Returns
|
|
837
749
|
* The LayerZero endpoint address
|
|
838
750
|
*/
|
|
839
|
-
endpoint: (
|
|
840
|
-
/**
|
|
841
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
842
|
-
*/
|
|
843
|
-
fee?: number;
|
|
844
|
-
/**
|
|
845
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
846
|
-
*/
|
|
847
|
-
timeoutInSeconds?: number;
|
|
848
|
-
/**
|
|
849
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
850
|
-
*/
|
|
851
|
-
simulate?: boolean;
|
|
852
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
751
|
+
endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
|
|
853
752
|
/**
|
|
854
753
|
* Construct and simulate a peer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
855
754
|
* Retrieves the peer (OApp) associated with a corresponding endpoint.
|
|
@@ -862,20 +761,7 @@ export interface Client {
|
|
|
862
761
|
*/
|
|
863
762
|
peer: ({ eid }: {
|
|
864
763
|
eid: u32;
|
|
865
|
-
}, txnOptions?:
|
|
866
|
-
/**
|
|
867
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
868
|
-
*/
|
|
869
|
-
fee?: number;
|
|
870
|
-
/**
|
|
871
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
872
|
-
*/
|
|
873
|
-
timeoutInSeconds?: number;
|
|
874
|
-
/**
|
|
875
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
876
|
-
*/
|
|
877
|
-
simulate?: boolean;
|
|
878
|
-
}) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
764
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
879
765
|
/**
|
|
880
766
|
* Construct and simulate a set_peer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
881
767
|
* Sets or removes the peer address (OApp instance) for a corresponding endpoint.
|
|
@@ -887,20 +773,7 @@ export interface Client {
|
|
|
887
773
|
set_peer: ({ eid, peer }: {
|
|
888
774
|
eid: u32;
|
|
889
775
|
peer: Option<Buffer>;
|
|
890
|
-
}, txnOptions?:
|
|
891
|
-
/**
|
|
892
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
893
|
-
*/
|
|
894
|
-
fee?: number;
|
|
895
|
-
/**
|
|
896
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
897
|
-
*/
|
|
898
|
-
timeoutInSeconds?: number;
|
|
899
|
-
/**
|
|
900
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
901
|
-
*/
|
|
902
|
-
simulate?: boolean;
|
|
903
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
776
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
904
777
|
/**
|
|
905
778
|
* Construct and simulate a set_delegate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
906
779
|
* Sets the delegate address for the OApp Core.
|
|
@@ -910,20 +783,7 @@ export interface Client {
|
|
|
910
783
|
*/
|
|
911
784
|
set_delegate: ({ delegate }: {
|
|
912
785
|
delegate: Option<string>;
|
|
913
|
-
}, txnOptions?:
|
|
914
|
-
/**
|
|
915
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
916
|
-
*/
|
|
917
|
-
fee?: number;
|
|
918
|
-
/**
|
|
919
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
920
|
-
*/
|
|
921
|
-
timeoutInSeconds?: number;
|
|
922
|
-
/**
|
|
923
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
924
|
-
*/
|
|
925
|
-
simulate?: boolean;
|
|
926
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
786
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
927
787
|
/**
|
|
928
788
|
* Construct and simulate a enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
929
789
|
* Retrieves the enforced options for a given endpoint and message type.
|
|
@@ -938,20 +798,7 @@ export interface Client {
|
|
|
938
798
|
enforced_options: ({ eid, msg_type }: {
|
|
939
799
|
eid: u32;
|
|
940
800
|
msg_type: u32;
|
|
941
|
-
}, txnOptions?:
|
|
942
|
-
/**
|
|
943
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
944
|
-
*/
|
|
945
|
-
fee?: number;
|
|
946
|
-
/**
|
|
947
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
948
|
-
*/
|
|
949
|
-
timeoutInSeconds?: number;
|
|
950
|
-
/**
|
|
951
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
952
|
-
*/
|
|
953
|
-
simulate?: boolean;
|
|
954
|
-
}) => Promise<AssembledTransaction<Buffer>>;
|
|
801
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
|
|
955
802
|
/**
|
|
956
803
|
* Construct and simulate a set_enforced_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
957
804
|
* Sets the enforced options for specific endpoint and message type combinations.
|
|
@@ -967,20 +814,7 @@ export interface Client {
|
|
|
967
814
|
*/
|
|
968
815
|
set_enforced_options: ({ options }: {
|
|
969
816
|
options: Array<EnforcedOptionParam>;
|
|
970
|
-
}, txnOptions?:
|
|
971
|
-
/**
|
|
972
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
973
|
-
*/
|
|
974
|
-
fee?: number;
|
|
975
|
-
/**
|
|
976
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
977
|
-
*/
|
|
978
|
-
timeoutInSeconds?: number;
|
|
979
|
-
/**
|
|
980
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
981
|
-
*/
|
|
982
|
-
simulate?: boolean;
|
|
983
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
817
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
984
818
|
/**
|
|
985
819
|
* Construct and simulate a combine_options transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
986
820
|
* Combines options for a given endpoint and message type.
|
|
@@ -1002,20 +836,7 @@ export interface Client {
|
|
|
1002
836
|
eid: u32;
|
|
1003
837
|
msg_type: u32;
|
|
1004
838
|
extra_options: Buffer;
|
|
1005
|
-
}, txnOptions?:
|
|
1006
|
-
/**
|
|
1007
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1008
|
-
*/
|
|
1009
|
-
fee?: number;
|
|
1010
|
-
/**
|
|
1011
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1012
|
-
*/
|
|
1013
|
-
timeoutInSeconds?: number;
|
|
1014
|
-
/**
|
|
1015
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1016
|
-
*/
|
|
1017
|
-
simulate?: boolean;
|
|
1018
|
-
}) => Promise<AssembledTransaction<Buffer>>;
|
|
839
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
|
|
1019
840
|
/**
|
|
1020
841
|
* Construct and simulate a quote transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1021
842
|
*/
|
|
@@ -1024,20 +845,7 @@ export interface Client {
|
|
|
1024
845
|
msg_type: u32;
|
|
1025
846
|
options: Buffer;
|
|
1026
847
|
pay_in_zro: boolean;
|
|
1027
|
-
}, txnOptions?:
|
|
1028
|
-
/**
|
|
1029
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1030
|
-
*/
|
|
1031
|
-
fee?: number;
|
|
1032
|
-
/**
|
|
1033
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1034
|
-
*/
|
|
1035
|
-
timeoutInSeconds?: number;
|
|
1036
|
-
/**
|
|
1037
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1038
|
-
*/
|
|
1039
|
-
simulate?: boolean;
|
|
1040
|
-
}) => Promise<AssembledTransaction<MessagingFee>>;
|
|
848
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<MessagingFee>>;
|
|
1041
849
|
/**
|
|
1042
850
|
* Construct and simulate a increment transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1043
851
|
*/
|
|
@@ -1047,39 +855,13 @@ export interface Client {
|
|
|
1047
855
|
msg_type: u32;
|
|
1048
856
|
options: Buffer;
|
|
1049
857
|
fee: MessagingFee;
|
|
1050
|
-
}, txnOptions?:
|
|
1051
|
-
/**
|
|
1052
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1053
|
-
*/
|
|
1054
|
-
fee?: number;
|
|
1055
|
-
/**
|
|
1056
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1057
|
-
*/
|
|
1058
|
-
timeoutInSeconds?: number;
|
|
1059
|
-
/**
|
|
1060
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1061
|
-
*/
|
|
1062
|
-
simulate?: boolean;
|
|
1063
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
858
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1064
859
|
/**
|
|
1065
860
|
* Construct and simulate a set_ordered_nonce transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1066
861
|
*/
|
|
1067
862
|
set_ordered_nonce: ({ ordered_nonce }: {
|
|
1068
863
|
ordered_nonce: boolean;
|
|
1069
|
-
}, txnOptions?:
|
|
1070
|
-
/**
|
|
1071
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1072
|
-
*/
|
|
1073
|
-
fee?: number;
|
|
1074
|
-
/**
|
|
1075
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1076
|
-
*/
|
|
1077
|
-
timeoutInSeconds?: number;
|
|
1078
|
-
/**
|
|
1079
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1080
|
-
*/
|
|
1081
|
-
simulate?: boolean;
|
|
1082
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
864
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1083
865
|
/**
|
|
1084
866
|
* Construct and simulate a skip_inbound_nonce transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1085
867
|
*/
|
|
@@ -1087,129 +869,38 @@ export interface Client {
|
|
|
1087
869
|
src_eid: u32;
|
|
1088
870
|
sender: Buffer;
|
|
1089
871
|
nonce: u64;
|
|
1090
|
-
}, txnOptions?:
|
|
1091
|
-
/**
|
|
1092
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1093
|
-
*/
|
|
1094
|
-
fee?: number;
|
|
1095
|
-
/**
|
|
1096
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1097
|
-
*/
|
|
1098
|
-
timeoutInSeconds?: number;
|
|
1099
|
-
/**
|
|
1100
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1101
|
-
*/
|
|
1102
|
-
simulate?: boolean;
|
|
1103
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
872
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1104
873
|
/**
|
|
1105
874
|
* Construct and simulate a eid transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1106
875
|
*/
|
|
1107
|
-
eid: (
|
|
1108
|
-
/**
|
|
1109
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1110
|
-
*/
|
|
1111
|
-
fee?: number;
|
|
1112
|
-
/**
|
|
1113
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1114
|
-
*/
|
|
1115
|
-
timeoutInSeconds?: number;
|
|
1116
|
-
/**
|
|
1117
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1118
|
-
*/
|
|
1119
|
-
simulate?: boolean;
|
|
1120
|
-
}) => Promise<AssembledTransaction<u32>>;
|
|
876
|
+
eid: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
|
|
1121
877
|
/**
|
|
1122
878
|
* Construct and simulate a count transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1123
879
|
*/
|
|
1124
|
-
count: (
|
|
1125
|
-
/**
|
|
1126
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1127
|
-
*/
|
|
1128
|
-
fee?: number;
|
|
1129
|
-
/**
|
|
1130
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1131
|
-
*/
|
|
1132
|
-
timeoutInSeconds?: number;
|
|
1133
|
-
/**
|
|
1134
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1135
|
-
*/
|
|
1136
|
-
simulate?: boolean;
|
|
1137
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
880
|
+
count: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
1138
881
|
/**
|
|
1139
882
|
* Construct and simulate a composed_count transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1140
883
|
*/
|
|
1141
|
-
composed_count: (
|
|
1142
|
-
/**
|
|
1143
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1144
|
-
*/
|
|
1145
|
-
fee?: number;
|
|
1146
|
-
/**
|
|
1147
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1148
|
-
*/
|
|
1149
|
-
timeoutInSeconds?: number;
|
|
1150
|
-
/**
|
|
1151
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1152
|
-
*/
|
|
1153
|
-
simulate?: boolean;
|
|
1154
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
884
|
+
composed_count: (options?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
1155
885
|
/**
|
|
1156
886
|
* Construct and simulate a inbound_count transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1157
887
|
*/
|
|
1158
888
|
inbound_count: ({ eid }: {
|
|
1159
889
|
eid: u32;
|
|
1160
|
-
}, txnOptions?:
|
|
1161
|
-
/**
|
|
1162
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1163
|
-
*/
|
|
1164
|
-
fee?: number;
|
|
1165
|
-
/**
|
|
1166
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1167
|
-
*/
|
|
1168
|
-
timeoutInSeconds?: number;
|
|
1169
|
-
/**
|
|
1170
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1171
|
-
*/
|
|
1172
|
-
simulate?: boolean;
|
|
1173
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
890
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
1174
891
|
/**
|
|
1175
892
|
* Construct and simulate a outbound_count transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1176
893
|
*/
|
|
1177
894
|
outbound_count: ({ eid }: {
|
|
1178
895
|
eid: u32;
|
|
1179
|
-
}, txnOptions?:
|
|
1180
|
-
/**
|
|
1181
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1182
|
-
*/
|
|
1183
|
-
fee?: number;
|
|
1184
|
-
/**
|
|
1185
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1186
|
-
*/
|
|
1187
|
-
timeoutInSeconds?: number;
|
|
1188
|
-
/**
|
|
1189
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1190
|
-
*/
|
|
1191
|
-
simulate?: boolean;
|
|
1192
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
896
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
1193
897
|
/**
|
|
1194
898
|
* Construct and simulate a next_nonce transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1195
899
|
*/
|
|
1196
900
|
next_nonce: ({ src_eid, sender }: {
|
|
1197
901
|
src_eid: u32;
|
|
1198
902
|
sender: Buffer;
|
|
1199
|
-
}, txnOptions?:
|
|
1200
|
-
/**
|
|
1201
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1202
|
-
*/
|
|
1203
|
-
fee?: number;
|
|
1204
|
-
/**
|
|
1205
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1206
|
-
*/
|
|
1207
|
-
timeoutInSeconds?: number;
|
|
1208
|
-
/**
|
|
1209
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1210
|
-
*/
|
|
1211
|
-
simulate?: boolean;
|
|
1212
|
-
}) => Promise<AssembledTransaction<u64>>;
|
|
903
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<u64>>;
|
|
1213
904
|
/**
|
|
1214
905
|
* Construct and simulate a allow_initialize_path transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1215
906
|
* Checks if a messaging path can be initialized for the given origin.
|
|
@@ -1222,20 +913,7 @@ export interface Client {
|
|
|
1222
913
|
*/
|
|
1223
914
|
allow_initialize_path: ({ origin }: {
|
|
1224
915
|
origin: Origin;
|
|
1225
|
-
}, txnOptions?:
|
|
1226
|
-
/**
|
|
1227
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1228
|
-
*/
|
|
1229
|
-
fee?: number;
|
|
1230
|
-
/**
|
|
1231
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1232
|
-
*/
|
|
1233
|
-
timeoutInSeconds?: number;
|
|
1234
|
-
/**
|
|
1235
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1236
|
-
*/
|
|
1237
|
-
simulate?: boolean;
|
|
1238
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
916
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
1239
917
|
/**
|
|
1240
918
|
* Construct and simulate a lz_receive transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1241
919
|
* Entry point for receiving messages or packets from the LayerZero endpoint.
|
|
@@ -1261,20 +939,7 @@ export interface Client {
|
|
|
1261
939
|
message: Buffer;
|
|
1262
940
|
extra_data: Buffer;
|
|
1263
941
|
value: i128;
|
|
1264
|
-
}, txnOptions?:
|
|
1265
|
-
/**
|
|
1266
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1267
|
-
*/
|
|
1268
|
-
fee?: number;
|
|
1269
|
-
/**
|
|
1270
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1271
|
-
*/
|
|
1272
|
-
timeoutInSeconds?: number;
|
|
1273
|
-
/**
|
|
1274
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1275
|
-
*/
|
|
1276
|
-
simulate?: boolean;
|
|
1277
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
942
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1278
943
|
/**
|
|
1279
944
|
* Construct and simulate a is_compose_msg_sender transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1280
945
|
* Indicates whether an address is an approved composeMsg sender to the Endpoint.
|
|
@@ -1294,20 +959,7 @@ export interface Client {
|
|
|
1294
959
|
origin: Origin;
|
|
1295
960
|
message: Buffer;
|
|
1296
961
|
sender: string;
|
|
1297
|
-
}, txnOptions?:
|
|
1298
|
-
/**
|
|
1299
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1300
|
-
*/
|
|
1301
|
-
fee?: number;
|
|
1302
|
-
/**
|
|
1303
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1304
|
-
*/
|
|
1305
|
-
timeoutInSeconds?: number;
|
|
1306
|
-
/**
|
|
1307
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1308
|
-
*/
|
|
1309
|
-
simulate?: boolean;
|
|
1310
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
962
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
|
|
1311
963
|
/**
|
|
1312
964
|
* Construct and simulate a lz_compose transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1313
965
|
*/
|
|
@@ -1319,20 +971,7 @@ export interface Client {
|
|
|
1319
971
|
message: Buffer;
|
|
1320
972
|
extra_data: Buffer;
|
|
1321
973
|
value: i128;
|
|
1322
|
-
}, txnOptions?:
|
|
1323
|
-
/**
|
|
1324
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1325
|
-
*/
|
|
1326
|
-
fee?: number;
|
|
1327
|
-
/**
|
|
1328
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1329
|
-
*/
|
|
1330
|
-
timeoutInSeconds?: number;
|
|
1331
|
-
/**
|
|
1332
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1333
|
-
*/
|
|
1334
|
-
simulate?: boolean;
|
|
1335
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
974
|
+
}, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
|
|
1336
975
|
}
|
|
1337
976
|
export declare class Client extends ContractClient {
|
|
1338
977
|
readonly options: ContractClientOptions;
|