@layerzerolabs/protocol-stellar-v2 0.2.19 → 0.2.21
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 +795 -791
- package/.turbo/turbo-lint.log +325 -155
- package/.turbo/turbo-test.log +1398 -1277
- package/Cargo.lock +122 -111
- package/Cargo.toml +32 -16
- package/contracts/common-macros/Cargo.toml +7 -7
- package/contracts/common-macros/src/auth.rs +18 -37
- package/contracts/common-macros/src/contract_ttl.rs +18 -7
- package/contracts/common-macros/src/lib.rs +31 -14
- package/contracts/common-macros/src/lz_contract.rs +38 -7
- package/contracts/common-macros/src/storage.rs +251 -292
- package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -14
- package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
- package/contracts/common-macros/src/ttl_configurable.rs +2 -10
- package/contracts/common-macros/src/ttl_extendable.rs +2 -10
- package/contracts/common-macros/src/upgradeable.rs +61 -26
- package/contracts/common-macros/src/utils.rs +0 -9
- package/contracts/endpoint-v2/src/lib.rs +3 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
- package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
- package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
- package/contracts/layerzero-views/Cargo.toml +0 -1
- package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
- package/contracts/macro-integration-tests/Cargo.toml +5 -15
- package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
- package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
- package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
- package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
- package/contracts/message-libs/treasury/Cargo.toml +0 -2
- package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
- package/contracts/message-libs/uln-302/src/events.rs +4 -0
- package/contracts/message-libs/uln-302/src/send_uln.rs +22 -6
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +21 -67
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
- package/contracts/oapps/counter/Cargo.toml +5 -6
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
- package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
- package/contracts/oapps/oapp/src/errors.rs +1 -1
- package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
- package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
- package/contracts/oapps/oapp/src/lib.rs +1 -0
- package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
- package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
- package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
- package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
- package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
- package/contracts/oapps/oapp/src/tests/oapp_core.rs +223 -0
- package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +240 -0
- package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +381 -0
- package/contracts/oapps/oapp/src/tests/oapp_sender.rs +569 -0
- package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
- package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
- package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
- package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
- package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
- package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
- package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
- package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +153 -75
- package/contracts/oapps/oft/src/extensions/pausable.rs +61 -12
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +198 -134
- package/contracts/oapps/oft/src/oft.rs +45 -50
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +4 -26
- package/contracts/oapps/oft-core/Cargo.toml +1 -4
- package/contracts/oapps/oft-core/integration-tests/setup.rs +3 -3
- package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
- package/contracts/oapps/oft-core/src/errors.rs +3 -2
- package/contracts/oapps/oft-core/src/events.rs +6 -0
- package/contracts/oapps/oft-core/src/lib.rs +1 -1
- package/contracts/oapps/oft-core/src/oft_core.rs +341 -246
- package/contracts/oapps/oft-core/src/storage.rs +7 -3
- package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
- package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
- package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
- package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +61 -16
- package/contracts/upgrader/src/lib.rs +30 -57
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
- package/contracts/utils/Cargo.toml +0 -1
- package/contracts/utils/src/buffer_reader.rs +1 -0
- package/contracts/utils/src/errors.rs +4 -2
- package/contracts/utils/src/multisig.rs +17 -8
- package/contracts/utils/src/ownable.rs +6 -6
- package/contracts/utils/src/testing_utils.rs +124 -54
- package/contracts/utils/src/tests/multisig.rs +12 -12
- package/contracts/utils/src/tests/ownable.rs +6 -6
- package/contracts/utils/src/tests/testing_utils.rs +50 -167
- package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
- package/contracts/utils/src/tests/upgradeable.rs +372 -175
- package/contracts/utils/src/ttl_configurable.rs +13 -7
- package/contracts/utils/src/upgradeable.rs +48 -23
- package/contracts/workers/dvn/Cargo.toml +6 -6
- package/contracts/workers/dvn/src/auth.rs +12 -42
- package/contracts/workers/dvn/src/dvn.rs +15 -40
- package/contracts/workers/dvn/src/errors.rs +0 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
- package/contracts/workers/dvn/src/lib.rs +4 -3
- package/contracts/workers/dvn/src/tests/auth.rs +1 -1
- package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
- package/contracts/workers/dvn/src/tests/setup.rs +5 -9
- package/contracts/workers/dvn-fee-lib/Cargo.toml +2 -2
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +38 -22
- package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +17 -16
- package/contracts/workers/executor/Cargo.toml +4 -0
- package/contracts/workers/executor/src/executor.rs +15 -36
- package/contracts/workers/executor/src/lib.rs +2 -2
- package/contracts/workers/executor/src/tests/auth.rs +394 -0
- package/contracts/workers/executor/src/tests/executor.rs +410 -0
- package/contracts/workers/executor/src/tests/mod.rs +3 -0
- package/contracts/workers/executor/src/tests/setup.rs +250 -0
- package/contracts/workers/executor-fee-lib/Cargo.toml +7 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +62 -15
- package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
- package/contracts/workers/executor-fee-lib/src/lib.rs +11 -2
- package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
- package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
- package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
- package/contracts/workers/executor-helper/Cargo.toml +0 -1
- package/contracts/workers/executor-helper/src/lib.rs +3 -0
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
- package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
- package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
- package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
- package/contracts/workers/price-feed/Cargo.toml +7 -1
- package/contracts/workers/price-feed/src/events.rs +1 -1
- package/contracts/workers/price-feed/src/lib.rs +12 -4
- package/contracts/workers/price-feed/src/price_feed.rs +5 -21
- package/contracts/workers/price-feed/src/storage.rs +1 -1
- package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
- package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
- package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
- package/contracts/workers/price-feed/src/types.rs +1 -1
- package/contracts/workers/worker/src/errors.rs +1 -4
- package/contracts/workers/worker/src/lib.rs +0 -2
- package/contracts/workers/worker/src/storage.rs +32 -29
- package/contracts/workers/worker/src/tests/setup.rs +2 -8
- package/contracts/workers/worker/src/tests/worker.rs +96 -74
- package/contracts/workers/worker/src/worker.rs +75 -75
- package/docs/error-spec.md +55 -0
- package/docs/layerzero-v2-on-stellar.md +447 -0
- package/docs/oapp-guide.md +212 -0
- package/docs/oft-guide.md +314 -0
- package/package.json +3 -3
- package/sdk/.turbo/turbo-test.log +268 -263
- package/sdk/dist/generated/bml.d.ts +12 -4
- package/sdk/dist/generated/bml.js +9 -7
- package/sdk/dist/generated/counter.d.ts +306 -298
- package/sdk/dist/generated/counter.js +48 -46
- package/sdk/dist/generated/dvn.d.ts +450 -411
- package/sdk/dist/generated/dvn.js +66 -64
- package/sdk/dist/generated/dvn_fee_lib.d.ts +294 -338
- package/sdk/dist/generated/dvn_fee_lib.js +33 -64
- package/sdk/dist/generated/endpoint.d.ts +108 -100
- package/sdk/dist/generated/endpoint.js +21 -19
- package/sdk/dist/generated/executor.d.ts +414 -370
- package/sdk/dist/generated/executor.js +58 -55
- package/sdk/dist/generated/executor_fee_lib.d.ts +333 -377
- package/sdk/dist/generated/executor_fee_lib.js +34 -65
- package/sdk/dist/generated/executor_helper.d.ts +26 -190
- package/sdk/dist/generated/executor_helper.js +23 -28
- package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
- package/sdk/dist/generated/layerzero_view.js +294 -0
- package/sdk/dist/generated/oft.d.ts +408 -385
- package/sdk/dist/generated/oft.js +89 -92
- package/sdk/dist/generated/price_feed.d.ts +385 -429
- package/sdk/dist/generated/price_feed.js +50 -81
- package/sdk/dist/generated/sml.d.ts +108 -100
- package/sdk/dist/generated/sml.js +21 -19
- package/sdk/dist/generated/treasury.d.ts +108 -100
- package/sdk/dist/generated/treasury.js +21 -19
- package/sdk/dist/generated/uln302.d.ts +108 -100
- package/sdk/dist/generated/uln302.js +23 -21
- package/sdk/dist/generated/upgrader.d.ts +189 -18
- package/sdk/dist/generated/upgrader.js +84 -4
- package/sdk/dist/index.d.ts +1 -0
- package/sdk/dist/index.js +2 -0
- package/sdk/package.json +1 -1
- package/sdk/src/index.ts +3 -0
- package/sdk/test/oft-sml.test.ts +4 -4
- package/sdk/test/suites/localnet.ts +84 -20
- package/sdk/test/upgrader.test.ts +2 -3
- package/tools/ts-bindings-gen/src/main.rs +2 -1
- package/contracts/ERROR_SPEC.md +0 -44
- package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -175
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -212
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -153
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -294
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
|
@@ -4,44 +4,21 @@ import type { u32, u64, u128, i128, Option } from '@stellar/stellar-sdk/contract
|
|
|
4
4
|
export * from '@stellar/stellar-sdk';
|
|
5
5
|
export * as contract from '@stellar/stellar-sdk/contract';
|
|
6
6
|
export * as rpc from '@stellar/stellar-sdk/rpc';
|
|
7
|
-
export type MigrationData = void;
|
|
8
7
|
/**
|
|
9
8
|
* Embedded WASM bytecode (base64-encoded)
|
|
10
|
-
* Size:
|
|
9
|
+
* Size: 33995 bytes (33.20 KB)
|
|
11
10
|
*/
|
|
12
|
-
export declare const WASM_BASE64 = "AGFzbQEAAAABlgEaYAR+fn5+AX5gAn5+AX5gA35+fgF+YAF+AX5gAAF+YAN/f38AYAF/AX5gAn9/AGACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAABgAn5/AGABfgBgAn5/AX5gBH9/f38BfmAFf39/fn4AYAF/AX9gAn9/AX5gBX5/f39/AGABfgF/YAJ+fgBgBH9+fn8AYAV/fn5+fgACnQEaAWwBNwAAAWwBMQABAWwBXwACAWEBMAADAWIBOAADAWwBNgADAWkBNgABAWwBMgABAXgBMQABAXYBMwADAXYBMQABAXYBZwABAWIBagABAW0BOQACAW0BYQAAAXgBMAABAXgBMwAEAXgBOAAEAWwBMAABAWwBOAABAXgBNQADAWkBXwADAWkBMAADAWkBMwABAWkBNQADAWkBNAADA2ppBQYHCAkKAQsMBwYNBAQMDg0MDwYMBQkKEAkRBgcBDwwDDAMEBAEPABISEwcMDQwKBAMECQEUAwMDAxUBDwcBCQEDFgQMBAwDCAkBCQsFBgQHFAQEAQQEAxcBDQoEDQQNBQkFBxgYGRkZBQMBABEGIQR/AUGAgMAAC38AQZiDwAALfwBB0IbAAAt/AEHQhsAACweSBSIGbWVtb3J5AgAHdXBncmFkZQA6B21pZ3JhdGUAPAphdXRob3JpemVyAD4NX19jb25zdHJ1Y3RvcgA/E2VzdGltYXRlX2ZlZV9ieV9laWQAQRZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAEoJZ2V0X3ByaWNlAEsbZ2V0X3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAEwRc2V0X3ByaWNlX3VwZGF0ZXIAThtzZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAUSBzZXRfYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudABSFXNldF9laWRfdG9fbW9kZWxfdHlwZQBTCXNldF9wcmljZQBVFnNldF9wcmljZV9mb3JfYXJiaXRydW0AWBpzZXRfbmF0aXZlX3Rva2VuX3ByaWNlX3VzZABaEGlzX3ByaWNlX3VwZGF0ZXIAWxxhcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AF0SYXJiaXRydW1fcHJpY2VfZXh0AF8RZWlkX3RvX21vZGVsX3R5cGUAYQ9zZXRfdHRsX2NvbmZpZ3MAZAt0dGxfY29uZmlncwBpEmZyZWV6ZV90dGxfY29uZmlncwBsFWlzX3R0bF9jb25maWdzX2Zyb3plbgBtE2V4dGVuZF9pbnN0YW5jZV90dGwAbgVvd25lcgBvDXBlbmRpbmdfb3duZXIAcBJ0cmFuc2Zlcl9vd25lcnNoaXAAcRpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgBzEGFjY2VwdF9vd25lcnNoaXAAdhJyZW5vdW5jZV9vd25lcnNoaXAAeAFfAwEKX19kYXRhX2VuZAMCC19faGVhcF9iYXNlAwMKkX5pJQAgABCbgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEICAgIAAGguEAwIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADgcAAQIDBAUGAAsgAUGAgMCAAEEVEK+AgIAAIAEoAgANByABIAEpAwgQsICAgAAMBgsgAUGVgMCAAEEMEK+AgIAAIAEoAgANBiABIAEpAwggACkDCBCxgICAAAwFCyABQaGAwIAAQREQr4CAgAAgASgCAA0FIAEgASkDCCAANQIEQiCGQgSEELGAgIAADAQLIAFBsoDAgABBEBCvgICAACABKAIADQQgASABKQMIELCAgIAADAMLIAFBwoDAgABBDhCvgICAACABKAIADQMgASABKQMIELCAgIAADAILIAFB0IDAgABBGhCvgICAACABKAIADQIgASABKQMIELCAgIAADAELIAFB6oDAgABBDhCvgICAACABKAIADQEgASABKQMIIAA1AgRCIIZCBIQQsYCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAguNAQIBfwF+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgARCbgICAACIDQgIQnYCAgAANAEIAIQMMAQsgAiADQgIQgYCAgAAQnoCAgAAgAigCAEEBRg0BIAIpAxAhAyAAIAIpAxg3AxggACADNwMQQgEhAwsgACADNwMAIABCADcDCCACQSBqJICAgIAADwsACw8AIAAgARCSgICAAEIBUQt7AgF/AX4CQAJAAkAgAadB/wFxIgJBxABGDQAgAkEKRw0BQgAhAyAAQgA3AxggACABQgiINwMQDAILIAEQmICAgAAhAyABEJmAgIAAIQEgACADNwMYIAAgATcDEEIAIQMMAQsgAEKDkICAgAE3AwhCASEDCyAAIAM3AwALHQAgABCbgICAACABIAIQoICAgABCAhCCgICAABoLQwEBfyOAgICAAEEQayICJICAgIAAIAIgACABEMmAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEBIAJBEGokgICAgAAgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCigICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQo4CAgAALQQAhAQJAQQAQpICAgAAiAkICEJ2AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQsMACAAQQEQ/YCAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQk4CAgAAaC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUGahcCAAEEGEK+AgIAAIAEoAgANAyABIAEpAwgQsICAgAAMAgsgAUGghcCAAEEIEK+AgIAAIAEoAgANAiABIAEpAwgQsICAgAAMAQsgAUGohcCAAEEKEK+AgIAAIAEoAgANASABIAEpAwgQsICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPABCmgICAABCDgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCigICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQo4CAgAALIAAQqICAgAAgACkDCCEBIAApAwBBiggQqYCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqICAgAAgACkDCCEBIAApAwBBiggQqYCAgAAgARCDgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEKKAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCjgICAAAsgABCugICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQrICAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACkDAFANAEKDgICAsIEBEKyAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCigICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQo4CAgAALQgAhAgJAAkBBARCtgICAACIDQgAQnYCAgABFDQAgA0IAEIGAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQlICAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGthMCAAEEMEK+AgIAAIAEoAgANAiABIAEpAwgQsICAgAAMAQsgAUGohMCAAEEFEK+AgIAAIAEoAgANASABIAEpAwgQsICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCtgICAACICQgIQnYCAgABFDQAgAkICEIGAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhD6gICAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQ64CAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEOuAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC2kBAX8jgICAgABBIGsiAiSAgICAACACQRBqIAAQs4CAgAACQCACKAIQQQFHDQAACyACIAIpAxg3AwggAiABrUIghkIEhDcDAEG4gsCAAEECIAJBAhC0gICAACEAIAJBIGokgICAgAAgAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQlYCAgAAhAQsgAEIANwMAIAAgATcDCAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEI2AgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABC2gICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILrQEC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AAALIAAgBDcDECAAIAo3AwAgACADNwMYIAAgCTcDCCAFQYACaiSAgICAAAvPAQIBfwF+I4CAgIAAQSBrIgEkgICAgAAgARCigICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQo4CAgAALIAFBBjYCACABIAA2AgRBACEAAkAgARCbgICAACICQgEQnYCAgABFDQACQAJAAkAgAkIBEIGAgIAAIgJC/wGDQgRSDQAgAkKAgICAMFoNACACQiCIIQIgAUEUahC5gICAACABKAIUDQEMAgsACyABIAEoAhggASgCHBCagICAAAsgAqchAAsgAUEgaiSAgICAACAAC6ECAgF/AX4jgICAgABBwABrIgIkgICAgAAgAkEQahCigICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQo4CAgAALIAJBAjYCACACIAE2AgQCQAJAAkAgAhCbgICAACIDQgEQnYCAgABFDQAgAkEQaiADQgEQgYCAgAAQzYCAgAAgAigCEEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgACACKQMgNwMQIABBKGogAkEQakEoaikDADcDACAAQSBqIAJBEGpBIGopAwA3AwAgAEEYaiACQRBqQRhqKQMANwMAIABCADcDCCAAQgE3AwAgAkEQahC5gICAACACKAIQQQFHDQAgAiACKAIUIAIoAhgQmoCAgAALIAJBwABqJICAgIAAC/oDBAF/BX4BfwJ+I4CAgIAAQaABayIBJICAgIAAIAFBgAFqEKKAgIAAAkAgASgCgAFBAUcNACABKAKEASABKAKIARCjgICAAAsgAUEANgJwIAFBgAFqIAFB8ABqEJyAgIAAIAEpA5gBIQIgASkDkAEhAyABKQOAASEEQgohBUIBIQZBFCEHQgAhCEIAIQkCQAJAA0ACQCAHQQFLDQAgAUHAAGogCEIAIAVCABCCgYCAACABQdAAaiAJQgAgBkIAEIKBgIAAIAFB4ABqIAZCACAFQgAQgoGAgAAgCEIAUiAJQgBScSABKQNIQgBSciABKQNYQgBSciABKQNoIgUgASkDQCABKQNQfHwiCSAFVHJFDQIMAwsCQCAHQQFxRQ0AIAFBEGogCEIAIAVCABCCgYCAACABQSBqIAlCACAGQgAQgoGAgAAgAUEwaiAGQgAgBUIAEIKBgIAAIAhCAFIgCUIAUnEgASkDGEIAUnIgASkDKEIAUnIgASkDOCIGIAEpAxAgASkDIHx8IgggBlRyDQMgASkDMCEGCyABIAUgCSAFIAkQgoGAgAAgB0EBdiEHIAEpAwghCSABKQMAIQUMAAsLIAEpA2AhBSAAIAIgCSAEp0EBcSIHGzcDCCAAIAMgBSAHGzcDACABQaABaiSAgICAAA8LEMeAgIAAAAsJABD5gICAAAALigEDAX8BfgF/I4CAgIAAQTBrIgEkgICAgAAgAUEQahCigICAAAJAIAEoAhBBAUcNACABKAIUIAEoAhgQo4CAgAALIAFBBDYCACABQRBqIAEQnICAgAAgASkDICECIAAgASkDKEIAIAEoAhBBAXEiAxs3AwggACACQgAgAxs3AwAgAUEwaiSAgICAAAtGAAJAAkAgAUL//////////wBWIAJCAFIgAlAbDQAgAUIIhkIKhCECDAELIAIgARCXgICAACECCyAAQgA3AwAgACACNwMICz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQyICAgAAgACkDACAAKQMIEKCAgIAAIQEgAEEQaiSAgICAACABC3kBAX8jgICAgABBwABrIgEkgICAgAACQCAAQv8Bg0IEUg0AIAEgAEIgiKcQxYCAgAACQAJAIAEoAgBBAXENAEICIQAMAQsgAUEwaiABQRBqELaAgIAAIAEoAjBBAXENASABKQM4IQALIAFBwABqJICAgIAAIAAPCwALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDGgICAACAAKQMAIAApAwgQoICAgAAhASAAQRBqJICAgIAAIAELgQICAn8DfiOAgICAAEHAAGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHkhcCAAEEDIAJBCGpBAxDUgICAACACKQMIIgFC/wGDQgRSDQAgAkEgaiACKQMQEOOAgIAAIAIoAiANACACKQMoIQYgAkEgaiACKQMYEJ6AgIAAIAIoAiBBAUYNACACKQMwIQQgACACKQM4NwMYIAAgBDcDECAAIAFCIIinNgIoIAAgBjcDIEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBwABqJICAgIAAC/IBAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNABClgICAACACEKKAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBCjgICAAAsCQAJAIANBAXENACACQQE2AgAgAiAANwMIIAIQm4CAgABCARCHgICAABoMAQsgABC4gICAAAtB+IDAgABBERDPgICAABDQgICAACEBIAIgADcDCCACIAOtNwMAIAFBmIHAgABBAiACQQIQtICAgAAQiICAgAAaIAJBEGokgICAgABCAg8LAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARD6gICAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEOuAgIAAIQAgAUEQaiSAgICAACAAC6MBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQnoCAgAACQAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEKWAgIAAIAEQooCAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKOAgIAACyACIACEQgBRDQEgAUEANgIAIAEgAiAAEJ+AgIAAIAFBIGokgICAgABCAg8LAAtCg4CAgBAQrICAgAAAC4kBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQnoCAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhClgICAACABEKKAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCjgICAAAsgAUEFNgIAIAEgAiAAEJ+AgIAAIAFBIGokgICAgABCAg8LAAuXAwUBfwN+AX8BfgF/I4CAgIAAQSBrIgEkgICAgAACQCAAQv8Bg0LLAFINABClgICAACABEKKAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCjgICAAAsgABCJgICAAEIgiCECQgAhAwNAAkACQAJAIAMgAlENACAAIANCIIZCBIQQioCAgAAhBEEAIQUCQANAIAVBEEYNASABIAVqQgI3AwAgBUEIaiEFDAALC0EDIQUgBEL/AYNCzABSDQEgBEGIg8CAAEECIAFBAhDUgICAACABKQMAIgRC/wGDQgRSDQEgASkDCCIGQv8Bg0IEUg0CIARCIIinIQcgBkIgiKciBUEDIAVBA0kbIQUMAgsgAUEgaiSAgICAAEICDwsLAkAgA0L/////D1ENACAFQQNGDQAgAUEGNgIAIAEgBzYCBCABEJuAgIAAIAWtQiCGQgSEQgEQgoCAgAAaIAFBFGoQuYCAgAACQCABKAIUQQFHDQAgASABKAIYIAEoAhwQmoCAgAALIANCAXwhAwwBCwsQx4CAgAAACwALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEI6AgIAAGguoBAUBfwF+An8BfgR/I4CAgIAAQYABayICJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQdAAahCigICAAAJAIAIoAlBBAUcNACACKAJUIAIoAlgQo4CAgAALIAAQ1oCAgAAgARCJgICAAEIgiCEDQgAhACACQdAAakEQaiIEQQhqIQUCQANAIAAgA1ENASABIABCIIZCBIQQioCAgAAhBkEAIQcCQANAIAdBEEYNASACQcAAaiAHakICNwMAIAdBCGohBwwACwtBASEIAkACQCAGQv8Bg0LMAFENAAwBCyAGQcyCwIAAQQIgAkHAAGpBAhDUgICAACACKQNAIgZC/wGDQgRSDQAgAkHQAGogAikDSBDNgICAACACKAJQIghBAXENACAGQiCIpyEHIAJBIGpBGGogBEEYaikDADcDACACQSBqQRBqIARBEGopAwA3AwAgAiAEKQMANwMgIAIgBSkDADcDKAsgAEL/////D1ENAyACQRhqIgkgAkEgakEYaikDADcDACACQRBqIgogAkEgakEQaikDADcDACACIAIpAyg3AwggAiACKQMgNwMAIAhBAXENAyACQdAAakEYaiAJKQMANwMAIAQgCikDADcDACACIAIpAwg3A1ggAiACKQMANwNQIAIgBzYCcCAHIAJB0ABqENeAgIAAIABCAXwhAAwACwsgAkGAAWokgICAgABCAg8LAAsQx4CAgAAAC20BAX8jgICAgABBEGsiASSAgICAACAAEIOAgIAAGiABEKiAgIAAAkACQAJAIAEoAgBBAUcNACABKQMIIAAQ4oCAgAANAQsgABDcgICAAEUNAQsgAUEQaiSAgICAAA8LQoOAgIDAABCsgICAAAALggICAX8BfiOAgICAAEHAAGsiAiSAgICAACACQQI2AgAgAiAANgIEIAIQm4CAgAAgARC1gICAAEIBEIKAgIAAGiACQTBqELmAgIAAAkAgAigCMEEBRw0AIAIgAigCNCACKAI4EJqAgIAACyACQRBqIAFBEGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAIgASkDADcDACACIAFBCGopAwA3AwggAiAANgIgQaiBwIAAQQ0Qz4CAgAAQ0ICAgAAhAyACIAIQtYCAgAA3AzggAiAArUIghkIEhDcDMCADQcSBwIAAQQIgAkEwakECELSAgIAAEIiAgIAAGiACQcAAaiSAgICAAAvkAwMCfwF+AX8jgICAgABBkAFrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEAIQMCQANAIANBGEYNASACQcgAaiADakICNwMAIANBCGohAwwACwsgAUL/AYNCzABSDQAgAUHkgsCAAEEDIAJByABqQQMQ1ICAgAAgAikDSCIEQv8Bg0IEUg0AIAIgAikDUBDZgICAACACKAIAQQFGDQAgAigCECEDIAIpAwghASACQeAAaiACKQNYEM2AgIAAIAIoAmBBAXENACACQRhqIAJBiAFqKQMANwMAIAJBEGogAkGAAWopAwA3AwAgAiACKQNwNwMAIAIgAkHgAGpBGGopAwA3AwggAiAEQiCIpyIFNgIwIAIgAzYCKCACIAE3AyAgAkHgAGoQooCAgAACQCACKAJgQQFHDQAgAigCZCACKAJoEKOAgIAACyAAENaAgIAAIAUgAhDXgICAACACQQM2AmAgAkHgAGoQm4CAgAAgASADELKAgIAAQgIQgoCAgAAaQdSBwIAAQRoQz4CAgAAQ0ICAgAAhACABIAMQsoCAgAAhASACIAWtQiCGQgSENwNoIAIgATcDYCAAQYCCwIAAQQIgAkHgAGpBAhC0gICAABCIgICAABogAkGQAWokgICAgABCAg8LAAu4AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUG4gsCAAEECIAJBAhDUgICAACACKQMAIgFC/wGDQgRSDQAgAkEQaiACKQMIEOOAgIAAIAIoAhANACACKQMYIQQgACABQiCIpzYCECAAIAQ3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAuXAQIBfwF+I4CAgIAAQSBrIgIkgICAgAACQCAAQv8Bg0LNAFINACACIAEQnoCAgAAgAigCAEEBRg0AIAIpAxghASACKQMQIQMgAhCigICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQo4CAgAALIAAQ1oCAgAAgAkEENgIAIAIgAyABEJ+AgIAAIAJBIGokgICAgABCAg8LAAsbAAJAIABC/wGDQs0AUQ0AAAsgABDcgICAAK0LlAEBAn8jgICAgABBIGsiASSAgICAACABEKKAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCjgICAAAsgAUEBNgIAIAEgADcDCAJAIAEQm4CAgABCARCdgICAACICRQ0AIAFBFGoQuYCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEJqAgIAACyABQSBqJICAgIAAIAILPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABDegICAACAAKQMAIAApAwgQoICAgAAhASAAQRBqJICAgIAAIAELigEDAX8BfgF/I4CAgIAAQTBrIgEkgICAgAAgAUEQahCigICAAAJAIAEoAhBBAUcNACABKAIUIAEoAhgQo4CAgAALIAFBBTYCACABQRBqIAEQnICAgAAgASkDICECIAAgASkDKEIAIAEoAhBBAXEiAxs3AwggACACQi8gAxs3AwAgAUEwaiSAgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEOCAgIAAIAApAwAgACgCCBCygICAACEBIABBEGokgICAgAAgAQu6AQMBfwF+AX8jgICAgABBMGsiASSAgICAACABQRhqEKKAgIAAAkAgASgCGEEBRw0AIAEoAhwgASgCIBCjgICAAAsgAUEDNgIIAkACQAJAIAFBCGoQm4CAgAAiAkICEJ2AgIAADQBCACECQQAhAwwBCyABQRhqIAJCAhCBgICAABDZgICAACABKAIYQQFGDQEgASgCKCEDIAEpAyAhAgsgACADNgIIIAAgAjcDACABQTBqJICAgIAADwsACyQAAkAgAEL/AYNCBFENAAALIABCIIinEMSAgIAArUIghkIEhAsNACAAIAEQj4CAgABQC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQloCAgAAhAQsgACADNwMAIAAgATcDCAviBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ5YCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDlgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKKAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCjgICAAAsQpYCAgAACQAJAAkAQoYCAgAANABDmgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCsgICAAAALQoOAgIDA/wAQrICAgAAACwJAAkAgAigCCEEBRw0AQQEgAigCDCACKAIQEOeAgIAADAELQQEQpICAgABCAhCHgICAABoLAkACQCACKAIYQQFHDQBBAiACKAIcIAIoAiAQ54CAgAAMAQtBAhCkgICAAEICEIeAgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QdSEwIAAQQ8Qz4CAgAAQ0ICAgAAhACACQShqEOiAgIAAIQEgAiACQTRqEOiAgIAANwNIIAIgATcDQCAAQfiEwIAAQQIgAkHAAGpBAhC0gICAABCIgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQ+4CAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAszAQJ+EJCAgIAAIQACQBCRgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxDHgICAAAALVgIBfwF+I4CAgIAAQRBrIgMkgICAgAAgABCkgICAACEEIAMgASACEPyAgIAAAkAgAygCAEEBRw0AAAsgBCADKQMIQgIQgoCAgAAaIANBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEOqAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQooCAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQEKOAgIAACyAAQQhqEKKAgIAAIABBFGoiARC5gICAACAAQTBqIABBCGoQ6oCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEOqAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhDrgICAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ/ICAgAAPCyAAQgA3AwAgAEICNwMICxoAIACtQiCGQgSEIAGtQiCGQgSEEIuAgIAAC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCigICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQo4CAgAALEKWAgIAAAkAQoYCAgABFDQBCg4CAgOD/ABCsgICAAAALQQAQpICAgABCAUICEIKAgIAAGkGIhcCAAEESEM+AgIAAENCAgIAAQQRBACAAQRhqQQAQtICAgAAQiICAgAAaIABBIGokgICAgABCAgsJABChgICAAK0LMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQo4CAgABCAg8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKiAgIAAIAApAwAgACkDCBC3gICAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAIAApAwAgACkDCBC3gICAACEBIABBEGokgICAgAAgAQt9AgF/AX4jgICAgABBEGsiASSAgICAAAJAIABC/wGDQs0AUg0AIAFBBGoQooCAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKOAgIAACxCngICAACECEKqAgIAAIAAQwICAgAAgAiAAEPKAgIAAIAFBEGokgICAgABCAg8LAAthAgF/AX4jgICAgABBEGsiAiSAgICAAEGhg8CAAEEVEM+AgIAAENCAgIAAIQMgAiAANwMIIAIgATcDACADQciDwIAAQQIgAkECELSAgIAAEIiAgIAAGiACQRBqJICAgIAAC9wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AIAJBCGoQooCAgAACQCACKAIIQQFHDQAgAigCDCACKAIQEKOAgIAACxCngICAACEDAkACQCABQv////8PVg0AIAJBCGoQq4CAgAAgAikDECEBIAIpAwhBiAgQqYCAgAAgASAAEOKAgIAARQ0DEPSAgIAADAELEOaAgIAAIAFCIIinSQ0DQQEgAEIAEPWAgIAAQQEQrYCAgABCACABQoSAgIBwgyIBIAEQgICAgAAaQdiDwIAAQRYQz4CAgAAQ0ICAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQfSDwIAAQQMgAkEIakEDELSAgIAAEIiAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEKyAgIAAAAtCg4CAgPCAARCsgICAAAALEwBBARCtgICAAEIAEIeAgIAAGgsVACAAEK2AgIAAIAEgAhCCgICAABoLpwECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQooCAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKOAgIAACyAAEKuAgIAAIAApAwghASAAKQMAQYgIEKmAgIAAIAEQg4CAgAAaIAAQroCAgAACQCAAKAIADQAQ94CAgAAACyAAKQMIIQIQ9ICAgAAgARDAgICAACACIAEQ8oCAgAAgAEEQaiSAgICAAEICCwkAEMeAgIAAAAugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCigICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQo4CAgAALEKeAgIAAIQEQqoCAgABBABCtgICAAEICEIeAgIAAGkGMhMCAAEETEM+AgIAAENCAgIAAIQIgACABNwMAIAJBoITAgABBASAAQQEQtICAgAAQiICAgAAaIABBEGokgICAgABCAgsDAAAL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQjICAgAAhAwsgAEIANwMAIAAgAzcDCAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUHEhMCAAEECIAJBAhDUgICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQcSEwIAAQQIgA0ECELSAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC3cCAn8BfiOAgICAAEEQayICJICAgIAAQQAhAwJAAkAgARCkgICAACIEQgIQnYCAgABFDQAgAkEEaiAEQgIQgYCAgAAQ+4CAgABBASEDIAIoAgRBAUYNASAAIAIpAgg3AgQLIAAgAzYCACACQRBqJICAgIAADwsAC1cBAX4CQAJAIANBwABxDQAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAiADQT9xrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQEMAQsgASADQT9xrYYhAkIAIQELIAAgATcDACAAIAI3AwgL0QgEAX8BfgN/BH4jgICAgABBsAFrIgUkgICAgABCACEGAkACQAJAAkACQCAEeSADeULAAHwgBEIAUhunIgcgAnkgAXlCwAB8IAJCAFIbpyIITQ0AIAhBP0sNASAHQd8ASw0CIAcgCGtBIEkNAyAFQaABaiADIARB4AAgB2siCRD+gICAACAFNQKgAUIBfCEKQgAhC0IAIQYCQAJAAkACQANAIAVBkAFqIAEgAkHAACAIayIIEP6AgIAAIAUpA5ABIQwCQCAIIAlPDQAgBUHQAGogAyAEIAgQ/oCAgAACQAJAIAUpA1AiClBFDQAMAQsgDCAKgCEMCyAFQcAAaiADIAQgDEIAEIKBgIAAAkAgASAFKQNAIg1UIgggAiAFKQNIIgpUIAIgClEbDQAgAiAKfSAIrX0hAiABIA19IQEgBiALIAx8IgwgC1StfCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ/4CAgAAgBUHwAGogAyAEIAxCABCCgYCAACAFQeAAaiAFKQNwIAUpA3ggCBD/gICAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIEP6AgIAAIAVBIGogASACIAgQ/oCAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEIKBgIAAIAUgBEIAIAxCABCCgYCAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALSAEBfyOAgICAAEEgayIFJICAgIAAIAUgASACIAMgBBCAgYCAACAFKQMAIQQgACAFKQMINwMIIAAgBDcDACAFQSBqJICAgIAAC24BBn4gACADQv////8PgyIFIAFC/////w+DIgZ+IgcgA0IgiCIIIAZ+IgYgBSABQiCIIgl+fCIFQiCGfCIKNwMAIAAgCCAJfiAFIAZUrUIghiAFQiCIhHwgCiAHVK18IAQgAX4gAyACfnx8NwMICwvaBgEAQYCAwAAL0AZQcmljZVJhdGlvRGVub21pbmF0b3JQcmljZVVwZGF0ZXJEZWZhdWx0TW9kZWxQcmljZUFyYml0cnVtUHJpY2VFeHROYXRpdmVQcmljZVVTREFyYml0cnVtQ29tcHJlc3Npb25QZXJjZW50RWlkVG9Nb2RlbFR5cGVwcmljZV91cGRhdGVyX3NldGFjdGl2ZXVwZGF0ZXIAAIkAEAAGAAAAjwAQAAcAAABwcmljZV91cGRhdGVkZHN0X2VpZHByaWNlAAAAtQAQAAcAAAC8ABAABQAAAGFyYml0cnVtX3ByaWNlX2V4dF91cGRhdGVkYXJiaXRydW1fcHJpY2VfZXh07gAQABIAAAC1ABAABwAAAGdhc19wZXJfbDFfY2FsbGRhdGFfYnl0ZWdhc19wZXJfbDJfdHgAAAAQARAAGAAAACgBEAANAAAAZWlkAEgBEAADAAAAvAAQAAUAAABleHRlbmQAAEgBEAADAAAAXAEQAAYAAAC8ABAABQAAAG1vZGVsX3R5cGUAALUAEAAHAAAAfAEQAAoAAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXK2ARAACQAAAL8BEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAALYBEAAJAAAAvwEQAAkAAADuARAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAvwEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAOQIQAAkAAACYARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAGMCEAAIAAAAawIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmdnYXNfcGVyX2J5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dXMgKG93bmVyIG9ubHkpAAAAAAAAEXNldF9wcmljZV91cGRhdGVyAAAAAAAAAgAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAAAAACxTZXQgdGhlIHByaWNlIHJhdGlvIGRlbm9taW5hdG9yIChvd25lciBvbmx5KQAAABtzZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAAAQAAAAAAAAALZGVub21pbmF0b3IAAAAACgAAAAAAAAAAAAAANFNldCB0aGUgQXJiaXRydW0gY29tcHJlc3Npb24gcGVyY2VudGFnZSAob3duZXIgb25seSkAAAAgc2V0X2FyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQAAAABAAAAAAAAABNjb21wcmVzc2lvbl9wZXJjZW50AAAAAAoAAAAAAAAAAAAAADhTZXQgdGhlIGZlZSBtb2RlbCB0eXBlIGZvciBkZXN0aW5hdGlvbiBFSURzIChvd25lciBvbmx5KQAAABVzZXRfZWlkX3RvX21vZGVsX3R5cGUAAAAAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAFlNldEVpZFRvTW9kZWxUeXBlUGFyYW0AAAAAAAAAAAAAAAAAPVNldCBwcmljZXMgZm9yIG11bHRpcGxlIGRlc3RpbmF0aW9ucyAocHJpY2UgdXBkYXRlciBvciBvd25lcikAAAAAAAAJc2V0X3ByaWNlAAAAAAAAAgAAAAAAAAANcHJpY2VfdXBkYXRlcgAAAAAAABMAAAAAAAAABnByaWNlcwAAAAAD6gAAB9AAAAALVXBkYXRlUHJpY2UAAAAAAAAAAAAAAAByU2V0IHByaWNlIGZvciBBcmJpdHJ1bSB3aXRoIGV4dGVuc2lvbiAocHJpY2UgdXBkYXRlciBvciBvd25lcikKQ29ycmVzcG9uZHMgdG8gc2V0UHJpY2VGb3JBcmJpdHJ1bSBpbiBQcmljZUZlZWQuc29sAAAAAAAWc2V0X3ByaWNlX2Zvcl9hcmJpdHJ1bQAAAAAAAgAAAAAAAAANcHJpY2VfdXBkYXRlcgAAAAAAABMAAAAAAAAABnVwZGF0ZQAAAAAH0AAAAA5VcGRhdGVQcmljZUV4dAAAAAAAAAAAAAAAAACoU2V0IHRoZSBuYXRpdmUgdG9rZW4gcHJpY2UgaW4gVVNEIChwcmljZSB1cGRhdGVyIG9yIG93bmVyKS4KCktlcHQgYXMgYSBzdGFuZGFsb25lIGNvbnRyYWN0IGZ1bmN0aW9uIChub3QgcGFydCBvZiB0aGUgY2Fub25pY2FsIGB3b3JrZXI6OklMYXllclplcm9QcmljZUZlZWRgIGludGVyZmFjZSkuAAAAGnNldF9uYXRpdmVfdG9rZW5fcHJpY2VfdXNkAAAAAAACAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAWbmF0aXZlX3Rva2VuX3ByaWNlX3VzZAAAAAAACgAAAAAAAAAAAAAALkNoZWNrIGlmIGFuIGFkZHJlc3MgaXMgYW4gYWN0aXZlIHByaWNlIHVwZGF0ZXIAAAAAABBpc19wcmljZV91cGRhdGVyAAAAAQAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAQAAAAEAAAAAAAAAJEdldCB0aGUgQXJiaXRydW0gY29tcHJlc3Npb24gcGVyY2VudAAAABxhcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AAAAAAAAAAEAAAAKAAAAAAAAACBHZXQgdGhlIEFyYml0cnVtIHByaWNlIGV4dGVuc2lvbgAAABJhcmJpdHJ1bV9wcmljZV9leHQAAAAAAAAAAAABAAAH0AAAABBBcmJpdHJ1bVByaWNlRXh0AAAAAAAAAChHZXQgdGhlIG1vZGVsIHR5cGUgZm9yIGEgZGVzdGluYXRpb24gRUlEAAAAEWVpZF90b19tb2RlbF90eXBlAAAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAB9AAAAAJTW9kZWxUeXBlAAAAAAAAAQAAACFBcmJpdHJ1bS1zcGVjaWZpYyBwcmljZSBleHRlbnNpb24AAAAAAAAAAAAAEEFyYml0cnVtUHJpY2VFeHQAAAACAAAAQUdhcyBjb3N0IHBlciBieXRlIG9mIEwxIGNhbGxkYXRhIChmb3IgQXJiaXRydW0ncyBMMSBkYXRhIHBvc3RpbmcpAAAAAAAAGGdhc19wZXJfbDFfY2FsbGRhdGFfYnl0ZQAAAAQAAAAfR2FzIG92ZXJoZWFkIHBlciBMMiB0cmFuc2FjdGlvbgAAAAANZ2FzX3Blcl9sMl90eAAAAAAAAAYAAAABAAAAJVBhcmFtZXRlciBmb3IgdXBkYXRpbmcgYSBzaW5nbGUgcHJpY2UAAAAAAAAAAAAAC1VwZGF0ZVByaWNlAAAAAAIAAAAXRGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAA2VpZAAAAAAEAAAAJVByaWNlIGluZm9ybWF0aW9uIGZvciB0aGUgZGVzdGluYXRpb24AAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAQAAADRQYXJhbWV0ZXIgZm9yIHVwZGF0aW5nIEFyYml0cnVtIHByaWNlIHdpdGggZXh0ZW5zaW9uAAAAAAAAAA5VcGRhdGVQcmljZUV4dAAAAAAAAwAAADhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoc2hvdWxkIGJlIGFuIEFyYml0cnVtIGVuZHBvaW50KQAAAANlaWQAAAAABAAAACNBcmJpdHJ1bS1zcGVjaWZpYyBwcmljaW5nIGV4dGVuc2lvbgAAAAAGZXh0ZW5kAAAAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAlUHJpY2UgaW5mb3JtYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbgAAAAAAAAVwcmljZQAAAAAAB9AAAAAFUHJpY2UAAAAAAAADAAAAMEZlZSBtb2RlbCB0eXBlIGZvciBkaWZmZXJlbnQgY2hhaW4gYXJjaGl0ZWN0dXJlcwAAAAAAAAAJTW9kZWxUeXBlAAAAAAAAAwAAAAAAAAAHRGVmYXVsdAAAAAAAAAAAAAAAAAhBcmJTdGFjawAAAAEAAAAAAAAAB09wU3RhY2sAAAAAAgAAAAEAAAAvUGFyYW1ldGVyIGZvciBzZXR0aW5nIEVJRCB0byBtb2RlbCB0eXBlIG1hcHBpbmcAAAAAAAAAABZTZXRFaWRUb01vZGVsVHlwZVBhcmFtAAAAAAACAAAAF0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEAAAAAAdkc3RfZWlkAAAAAAQAAAAjRmVlIG1vZGVsIHR5cGUgZm9yIHRoaXMgZGVzdGluYXRpb24AAAAACm1vZGVsX3R5cGUAAAAAB9AAAAAJTW9kZWxUeXBlAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAABAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBoAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAABAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAAAABAAAABZXb3JrZXJFcnJvcjogMTIwMC0xMjk5AAAAAAAAAAAAC1dvcmtlckVycm9yAAAAABMAAAAAAAAAEkFkbWluQWxyZWFkeUV4aXN0cwAAAAAEsAAAAAAAAAANQWRtaW5Ob3RGb3VuZAAAAAAABLEAAAAAAAAAEkFscmVhZHlPbkFsbG93bGlzdAAAAAAEsgAAAAAAAAARQWxyZWFkeU9uRGVueWxpc3QAAAAAAASzAAAAAAAAABtBdHRlbXB0aW5nVG9SZW1vdmVPbmx5QWRtaW4AAAAEtAAAAAAAAAAURGVwb3NpdEFkZHJlc3NOb3RTZXQAAAS1AAAAAAAAABpNZXNzYWdlTGliQWxyZWFkeVN1cHBvcnRlZAAAAAAEtgAAAAAAAAAWTWVzc2FnZUxpYk5vdFN1cHBvcnRlZAAAAAAEtwAAAAAAAAAQTm9BZG1pbnNQcm92aWRlZAAABLgAAAAAAAAACk5vdEFsbG93ZWQAAAAABLkAAAAAAAAADk5vdE9uQWxsb3dsaXN0AAAAAAS6AAAAAAAAAA1Ob3RPbkRlbnlsaXN0AAAAAAAEuwAAAAAAAAAUUGF1c2VTdGF0dXNVbmNoYW5nZWQAAAS8AAAAAAAAAA9QcmljZUZlZWROb3RTZXQAAAAEvQAAAAAAAAAMUmVJbml0aWFsaXplAAAEvgAAAAAAAAAMVW5hdXRob3JpemVkAAAEvwAAAAAAAAAVVW5zdXBwb3J0ZWRNZXNzYWdlTGliAAAAAAAEwAAAAAAAAAASV29ya2VyRmVlTGliTm90U2V0AAAAAATBAAAAAAAAAA5Xb3JrZXJJc1BhdXNlZAAAAAAEwgAAAAUAAAAAAAAAAAAAAAhTZXRBZG1pbgAAAAEAAAAJc2V0X2FkbWluAAAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAWU2V0U3VwcG9ydGVkTWVzc2FnZUxpYgAAAAAAAQAAABlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAAAAAgAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAAAAAAAAAAACXN1cHBvcnRlZAAAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAxTZXRBbGxvd2xpc3QAAAABAAAADXNldF9hbGxvd2xpc3QAAAAAAAACAAAAAAAAAARvYXBwAAAAEwAAAAAAAAAAAAAAB2FsbG93ZWQAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAAC1NldERlbnlsaXN0AAAAAAEAAAAMc2V0X2RlbnlsaXN0AAAAAgAAAAAAAAAEb2FwcAAAABMAAAAAAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAZQYXVzZWQAAAAAAAEAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAZwYXVzZXIAAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAAhVbnBhdXNlZAAAAAEAAAAIdW5wYXVzZWQAAAABAAAAAAAAAAh1bnBhdXNlcgAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABdTZXREZWZhdWx0TXVsdGlwbGllckJwcwAAAAABAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAABAAAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEVNldERlcG9zaXRBZGRyZXNzAAAAAAAAAQAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAEAAAAAAAAAD2RlcG9zaXRfYWRkcmVzcwAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMU2V0UHJpY2VGZWVkAAAAAQAAAA5zZXRfcHJpY2VfZmVlZAAAAAAAAQAAAAAAAAAKcHJpY2VfZmVlZAAAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAAF1NldFN1cHBvcnRlZE9wdGlvblR5cGVzAAAAAAEAAAAac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAADG9wdGlvbl90eXBlcwAAAA4AAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA9TZXRXb3JrZXJGZWVMaWIAAAAAAQAAABJzZXRfd29ya2VyX2ZlZV9saWIAAAAAAAEAAAAAAAAAB2ZlZV9saWIAAAAAEwAAAAAAAAACAAAAAQAAAOFQYXJhbWV0ZXJzIGZvciBEVk4gZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB2ZXJpZmljYXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAAADER2bkZlZVBhcmFtcwAAAAoAAAAnTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQuAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkdhcyBlc3RpbWF0ZSBmb3IgdmVyaWZpY2F0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAANnYXMAAAAACgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAALRFZOIG9wdGlvbnMAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAAJ051bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzIChxdW9ydW0pLgAAAAAGcXVvcnVtAAAAAAAEAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAONQYXJhbWV0ZXJzIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGV4ZWN1dGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAACUZlZVBhcmFtcwAAAAAAAAsAAAAmU2l6ZSBvZiB0aGUgbWVzc2FnZSBjYWxsZGF0YSBpbiBieXRlcy4AAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADZCYXNlIGdhcyBmb3IgZWFjaCBsekNvbXBvc2UgY2FsbCBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAETPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCYXNlIGdhcyBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAE2x6X3JlY2VpdmVfYmFzZV9nYXMAAAAABgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAsTWF4aW11bSBuYXRpdmUgdG9rZW4gdmFsdWUgdGhhdCBjYW4gYmUgc2VudC4AAAAKbmF0aXZlX2NhcAAAAAAACgAAAEZFbmNvZGVkIGV4ZWN1dG9yIG9wdGlvbnMgKGx6UmVjZWl2ZSBnYXMsIGx6Q29tcG9zZSwgbmF0aXZlRHJvcCwgZXRjLikuAAAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAhEdhcyBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCkNvbnRhaW5zIHRoZSBleGNoYW5nZSByYXRlIGFuZCBnYXMgY29zdHMgbmVlZGVkIGZvciBjcm9zcy1jaGFpbiBmZWUgY2FsY3VsYXRpb25zLgAAAAAAAAAFUHJpY2UAAAAAAAADAAAAN0dhcyBjb3N0IHBlciBieXRlIG9mIGNhbGxkYXRhIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAADGdhc19wZXJfYnl0ZQAAAAQAAABCR2FzIHByaWNlIGluIHRoZSBzbWFsbGVzdCB1bml0ICh3ZWkgZm9yIEVWTSwgc3Ryb29wcyBmb3IgU3RlbGxhcikuAAAAAAARZ2FzX3ByaWNlX2luX3VuaXQAAAAAAAAGAAAAqVByaWNlIHJhdGlvID0gKHJlbW90ZSBuYXRpdmUgdG9rZW4gcHJpY2UgLyBsb2NhbCBuYXRpdmUgdG9rZW4gcHJpY2UpICogUFJJQ0VfUkFUSU9fREVOT01JTkFUT1IuClVzZWQgdG8gY29udmVydCBkZXN0aW5hdGlvbiBjaGFpbiBnYXMgY29zdHMgdG8gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAAAEAAACARmVlIGVzdGltYXRpb24gcmVzdWx0IHdpdGggZGV0YWlsZWQgYnJlYWtkb3duLgoKQ29udGFpbnMgdGhlIGNhbGN1bGF0ZWQgZmVlIGFuZCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAAAC0ZlZUVzdGltYXRlAAAAAAQAAAAwU291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHNjYWxlZCkuAAAAEG5hdGl2ZV9wcmljZV91c2QAAAAKAAAAJVByaWNlIHJhdGlvIHVzZWQgZm9yIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAADJEZW5vbWluYXRvciBmb3IgdGhlIHByaWNlIHJhdGlvICh0eXBpY2FsbHkgMTBeMjApLgAAAAAAF3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAoAAAAxVG90YWwgZ2FzIGZlZSBpbiBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHVuaXRzLgAAAAAAAA10b3RhbF9nYXNfZmVlAAAAAAAACwAAAAIAAAAAAAAAAAAAAA1Xb3JrZXJTdG9yYWdlAAAAAAAACwAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAAAAAAAAAAAORGVwb3NpdEFkZHJlc3MAAAAAAAAAAAAAAAAACVByaWNlRmVlZAAAAAAAAAAAAAAAAAAADFdvcmtlckZlZUxpYgAAAAAAAAAAAAAAFERlZmF1bHRNdWx0aXBsaWVyQnBzAAAAAQAAAAAAAAAUU3VwcG9ydGVkT3B0aW9uVHlwZXMAAAABAAAABAAAAAAAAAAAAAAAC01lc3NhZ2VMaWJzAAAAAAEAAAAAAAAACUFsbG93bGlzdAAAAAAAAAEAAAATAAAAAQAAAAAAAAAIRGVueWxpc3QAAAABAAAAEwAAAAAAAAAAAAAADUFsbG93bGlzdFNpemUAAAAAAAAAAAAAAAAAAAZBZG1pbnMAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yMy40LjAjNjczZDZjNGYyMzY4ZDI4MmQyNWRhMjliZGE1NWMyMWI4YmU2OWNhNgAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAXAAAAAA==";
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAABlgEaYAR+fn5+AX5gAn5+AX5gA35+fgF+YAF+AX5gAAF+YAN/f38AYAF/AX5gAn9/AGACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAX8Bf2AAAGACfn8AYAF+AGACfn8BfmAEf39/fwF+YAV+f39/fwBgAn9/AX5gAX4Bf2AFf39/fn4AYAJ+fgBgBH9+fn8AYAV/fn5+fgACowEbAWwBNwAAAWwBMQABAWwBXwACAWEBMAADAWwBMgABAXgBMQABAXYBMwADAXYBMQABAWkBNgABAWIBOAADAWwBNgADAWIBMAADAWkBXwADAWkBMAADAWkBMwABAWkBNQADAWkBNAADAXYBZwABAWIBagABAW0BOQACAW0BYQAAAXgBMAABAXgBMwAEAXgBOAAEAWwBMAABAWwBOAABAXgBNQADA3FwBQYHCAkKAQsMBw0LBg4EBAwPDgwQBgwRCRIGBwEFCQoJEwkBEBQDAwMDDA4BEAkHAQEDFQQMBAwDDRYHDBYIAAwKBAMEAQcHEAMMAwQHBAQEBAMXAQ4LCgQOBAEBCQYEBxQEBA4FCQUGBwUYGBkZGQUDAQARBiEEfwFBgIDAAAt/AEGshMAAC38AQc+GwAALfwBB0IbAAAsHpwUkBm1lbW9yeQIAEXNldF9wcmljZV91cGRhdGVyAD4bc2V0X3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAEIgc2V0X2FyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQAQxVzZXRfZWlkX3RvX21vZGVsX3R5cGUARAlzZXRfcHJpY2UARxZzZXRfcHJpY2VfZm9yX2FyYml0cnVtAEsac2V0X25hdGl2ZV90b2tlbl9wcmljZV91c2QATBBpc19wcmljZV91cGRhdGVyAE0cYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudABPEmFyYml0cnVtX3ByaWNlX2V4dABREWVpZF90b19tb2RlbF90eXBlAFMTZXN0aW1hdGVfZmVlX2J5X2VpZABaFm5hdGl2ZV90b2tlbl9wcmljZV91c2QAXQlnZXRfcHJpY2UAXhtnZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAXw1fX2NvbnN0cnVjdG9yAGAHdXBncmFkZQBkB21pZ3JhdGUAZgZmcmVlemUAZwlpc19mcm96ZW4AaQphdXRob3JpemVyAGoFb3duZXIAaw1wZW5kaW5nX293bmVyAGwSdHJhbnNmZXJfb3duZXJzaGlwAG0acHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAbxBhY2NlcHRfb3duZXJzaGlwAHMScmVub3VuY2Vfb3duZXJzaGlwAHUTZXh0ZW5kX2luc3RhbmNlX3R0bAB2D3NldF90dGxfY29uZmlncwB3C3R0bF9jb25maWdzAHoSZnJlZXplX3R0bF9jb25maWdzAH0VaXNfdHRsX2NvbmZpZ3NfZnJvemVuAH4BXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCrKBAXAlACAAEJyAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC4QDAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBwABAgMEBQYACyABQaCCwIAAQRUQuICAgAAgASgCAA0HIAEgASkDCBC5gICAAAwGCyABQbWCwIAAQQwQuICAgAAgASgCAA0GIAEgASkDCCAAKQMIELqAgIAADAULIAFBwYLAgABBERC4gICAACABKAIADQUgASABKQMIIAA1AgRCIIZCBIQQuoCAgAAMBAsgAUHSgsCAAEEQELiAgIAAIAEoAgANBCABIAEpAwgQuYCAgAAMAwsgAUHigsCAAEEOELiAgIAAIAEoAgANAyABIAEpAwgQuYCAgAAMAgsgAUHwgsCAAEEaELiAgIAAIAEoAgANAiABIAEpAwgQuYCAgAAMAQsgAUGKg8CAAEEOELiAgIAAIAEoAgANASABIAEpAwggADUCBEIghkIEhBC6gICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC40BAgF/AX4jgICAgABBIGsiAiSAgICAAAJAAkACQCABEJyAgIAAIgNCAhCegICAAA0AQgAhAwwBCyACIANCAhCBgICAABCfgICAACACKAIAQQFGDQEgAikDECEDIAAgAikDGDcDGCAAIAM3AxBCASEDCyAAIAM3AwAgAEIANwMIIAJBIGokgICAgAAPCwALDwAgACABEJiAgIAAQgFRC3sCAX8BfgJAAkACQCABp0H/AXEiAkHEAEYNACACQQpHDQFCACEDIABCADcDGCAAIAFCCIg3AxAMAgsgARCPgICAACEDIAEQkICAgAAhASAAIAM3AxggACABNwMQQgAhAwwBCyAAQoOQgICAATcDCEIBIQMLIAAgAzcDAAsdACAAEJyAgIAAIAEgAhChgICAAEICEIKAgIAAGgtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ3ICAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABC1gBAn8jgICAgABBEGsiACSAgICAACAAQQRqEKOAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCkgICAAAtBABClgICAACEBIABBEGokgICAgAAgAUH9AXELDAAgAEEBEISBgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEJmAgIAAGgtHAgF/AX5BAiEBAkAgABCDgYCAACICQgIQnoCAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCjgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQpICAgAALQQAhAQJAQQAQp4CAgAAiAkICEJ6AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBrobAgABBBhC4gICAACABKAIADQMgASABKQMIELmAgIAADAILIAFBtIbAgABBCBC4gICAACABKAIADQIgASABKQMIELmAgIAADAELIAFBvIbAgABBChC4gICAACABKAIADQEgASABKQMIELmAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQqYCAgAAQg4CAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQo4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKSAgIAACyAAEKuAgIAAIAApAwghASAAKQMAQYoIEKyAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAIAApAwghASAAKQMAQYoIEKyAgIAAIAEQg4CAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCjgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQpICAgAALIAAQsYCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EK+AgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABCugICAAAJAIAApAwBQDQBCg4CAgLCBARCvgICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQo4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKSAgIAAC0IAIQICQAJAQQEQsICAgAAiA0IAEJ6AgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEJqAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBwYXAgABBDBC4gICAACABKAIADQIgASABKQMIELmAgIAADAELIAFBvIXAgABBBRC4gICAACABKAIADQEgASABKQMIELmAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQsICAgAAiAkICEJ6AgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALaQEBfyOAgICAAEEgayICJICAgIAAIAJBEGogABCzgICAAAJAIAIoAhBBAUcNAAALIAIgAikDGDcDCCACIAGtQiCGQgSENwMAQcCBwIAAQQIgAkECELSAgIAAIQAgAkEgaiSAgICAACAACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCMgICAACEBCyAAQgA3AwAgACABNwMICy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQk4CAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELaAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgutAQIBfwN+I4CAgIAAQSBrIgIkgICAgAAgATUCGCEDIAJBCGogASkDEBCzgICAAEIBIQQCQCACKAIIDQAgAikDECEFIAJBCGogASkDACABKQMIENyAgIAAIAIoAggNACACIAIpAxA3AxggAiAFNwMQIAIgA0IghkIEhDcDCCAAQcCDwIAAQQMgAkEIakEDELSAgIAANwMIQgAhBAsgACAENwMAIAJBIGokgICAgAALDQAgAUICIACnQQFxGwtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhCAgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQ/ICAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEPyAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC7gBAgJ/AX4jgICAgABBIGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQcCBwIAAQQIgAkECELyAgIAAIAIpAwAiAUL/AYNCBFINACACQRBqIAIpAwgQvYCAgAAgAigCEA0AIAIpAxghBCAAIAFCIIinNgIQIAAgBDcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAACzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCUgICAABoLXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCNgICAACEBCyAAIAM3AwAgACABNwMIC/IBAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNABCogICAACACEKOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBCkgICAAAsCQAJAIANBAXENACACQQE2AgAgAiAANwMIIAIQnICAgABCARCEgICAABoMAQsgABC/gICAAAtBgIDAgABBERDAgICAABDBgICAACEBIAIgADcDCCACIAOtNwMAIAFBoIDAgABBAiACQQIQtICAgAAQhYCAgAAaIAJBEGokgICAgABCAg8LAAtrAQF/I4CAgIAAQSBrIgEkgICAgAAgASAANwMIIAFBATYCACABEJyAgIAAQgFCARCCgICAABogAUEUahDFgICAAAJAIAEoAhRBAUcNACABIAEoAhggASgCHBCbgICAAAsgAUEgaiSAgICAAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCAgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEPyAgIAAIQAgAUEQaiSAgICAACAAC6MBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQn4CAgAACQAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEKiAgIAAIAEQo4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKSAgIAACyACIACEQgBRDQEgAUEANgIAIAEgAiAAEKCAgIAAIAFBIGokgICAgABCAg8LAAtCg4CAgBAQr4CAgAAAC4kBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQn4CAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhCogICAACABEKOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCkgICAAAsgAUEFNgIAIAEgAiAAEKCAgIAAIAFBIGokgICAgABCAg8LAAuXAwUBfwN+AX8BfgF/I4CAgIAAQSBrIgEkgICAgAACQCAAQv8Bg0LLAFINABCogICAACABEKOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCkgICAAAsgABCGgICAAEIgiCECQgAhAwNAAkACQAJAIAMgAlENACAAIANCIIZCBIQQh4CAgAAhBEEAIQUCQANAIAVBEEYNASABIAVqQgI3AwAgBUEIaiEFDAALC0EDIQUgBEL/AYNCzABSDQEgBEGQgsCAAEECIAFBAhC8gICAACABKQMAIgRC/wGDQgRSDQEgASkDCCIGQv8Bg0IEUg0CIARCIIinIQcgBkIgiKciBUEDIAVBA0kbIQUMAgsgAUEgaiSAgICAAEICDwsLAkAgA0L/////D1ENACAFQQNGDQAgAUEGNgIAIAEgBzYCBCABEJyAgIAAIAWtQiCGQgSEQgEQgoCAgAAaIAFBFGoQxYCAgAACQCABKAIUQQFHDQAgASABKAIYIAEoAhwQm4CAgAALIANCAXwhAwwBCwsQxoCAgAAACwALDAAgAEECEISBgIAACwkAEP+AgIAAAAuoBAUBfwF+An8BfgR/I4CAgIAAQYABayICJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQdAAahCjgICAAAJAIAIoAlBBAUcNACACKAJUIAIoAlgQpICAgAALIAAQyICAgAAgARCGgICAAEIgiCEDQgAhACACQdAAakEQaiIEQQhqIQUCQANAIAAgA1ENASABIABCIIZCBIQQh4CAgAAhBkEAIQcCQANAIAdBEEYNASACQcAAaiAHakICNwMAIAdBCGohBwwACwtBASEIAkACQCAGQv8Bg0LMAFENAAwBCyAGQdSBwIAAQQIgAkHAAGpBAhC8gICAACACKQNAIgZC/wGDQgRSDQAgAkHQAGogAikDSBDJgICAACACKAJQIghBAXENACAGQiCIpyEHIAJBIGpBGGogBEEYaikDADcDACACQSBqQRBqIARBEGopAwA3AwAgAiAEKQMANwMgIAIgBSkDADcDKAsgAEL/////D1ENAyACQRhqIgkgAkEgakEYaikDADcDACACQRBqIgogAkEgakEQaikDADcDACACIAIpAyg3AwggAiACKQMgNwMAIAhBAXENAyACQdAAakEYaiAJKQMANwMAIAQgCikDADcDACACIAIpAwg3A1ggAiACKQMANwNQIAIgBzYCcCAHIAJB0ABqEMqAgIAAIABCAXwhAAwACwsgAkGAAWokgICAgABCAg8LAAsQxoCAgAAAC20BAX8jgICAgABBEGsiASSAgICAACAAEIOAgIAAGiABEKuAgIAAAkACQAJAIAEoAgBBAUcNACABKQMIIAAQ2YCAgAANAQsgABDOgICAAEUNAQsgAUEQaiSAgICAAA8LQoOAgIDAABCvgICAAAALgQICAn8DfiOAgICAAEHAAGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHAg8CAAEEDIAJBCGpBAxC8gICAACACKQMIIgFC/wGDQgRSDQAgAkEgaiACKQMQEL2AgIAAIAIoAiANACACKQMoIQYgAkEgaiACKQMYEJ+AgIAAIAIoAiBBAUYNACACKQMwIQQgACACKQM4NwMYIAAgBDcDECAAIAFCIIinNgIoIAAgBjcDIEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBwABqJICAgIAAC4ICAgF/AX4jgICAgABBwABrIgIkgICAgAAgAkECNgIAIAIgADYCBCACEJyAgIAAIAEQtYCAgABCARCCgICAABogAkEwahDFgICAAAJAIAIoAjBBAUcNACACIAIoAjQgAigCOBCbgICAAAsgAkEQaiABQRBqKQMANwMAIAJBGGogAUEYaikDADcDACACIAEpAwA3AwAgAiABQQhqKQMANwMIIAIgADYCIEGwgMCAAEENEMCAgIAAEMGAgIAAIQMgAiACELWAgIAANwM4IAIgAK1CIIZCBIQ3AzAgA0HMgMCAAEECIAJBMGpBAhC0gICAABCFgICAABogAkHAAGokgICAgAAL5AMDAn8BfgF/I4CAgIAAQZABayICJICAgIAAAkAgAEL/AYNCzQBSDQBBACEDAkADQCADQRhGDQEgAkHIAGogA2pCAjcDACADQQhqIQMMAAsLIAFC/wGDQswAUg0AIAFB7IHAgABBAyACQcgAakEDELyAgIAAIAIpA0giBEL/AYNCBFINACACIAIpA1AQu4CAgAAgAigCAEEBRg0AIAIoAhAhAyACKQMIIQEgAkHgAGogAikDWBDJgICAACACKAJgQQFxDQAgAkEYaiACQYgBaikDADcDACACQRBqIAJBgAFqKQMANwMAIAIgAikDcDcDACACIAJB4ABqQRhqKQMANwMIIAIgBEIgiKciBTYCMCACIAM2AiggAiABNwMgIAJB4ABqEKOAgIAAAkAgAigCYEEBRw0AIAIoAmQgAigCaBCkgICAAAsgABDIgICAACAFIAIQyoCAgAAgAkEDNgJgIAJB4ABqEJyAgIAAIAEgAxCygICAAEICEIKAgIAAGkHcgMCAAEEaEMCAgIAAEMGAgIAAIQAgASADELKAgIAAIQEgAiAFrUIghkIEhDcDaCACIAE3A2AgAEGIgcCAAEEC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IQIgBEGgAWogCCAHENyAgIAAIAQoAqABDQAgBCkDqAEhAwJAAkAgAEKAgICAgICAwAB8Qv//////////AFYNACAAIACFIAEgAEI/h4WEQgBSDQAgAEIIhkILhCEADAELIAEgABCIgICAACEACyAEIAA3A4gBIAQgAzcDgAEgBCACNwN4IAQgCTcDcEGMhMCAAEEEIARB8ABqQQQQtICAgAAhACAEQbABaiSAgICAACAADwsAC4oBAwF/AX4BfyOAgICAAEEwayIBJICAgIAAIAFBEGoQo4CAgAACQCABKAIQQQFHDQAgASgCFCABKAIYEKSAgIAACyABQQQ2AgAgAUEQaiABEJ2AgIAAIAEpAyAhAiAAIAEpAyhCACABKAIQQQFxIgMbNwMIIAAgAkIAIAMbNwMAIAFBMGokgICAgAALRgACQAJAIAFC//////////8AViACQgBSIAJQGw0AIAFCCIZCCoQhAgwBCyACIAEQjoCAgAAhAgsgAEIANwMAIAAgAjcDCAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENuAgIAAIAApAwAgACkDCBChgICAACEBIABBEGokgICAgAAgAQt5AQF/I4CAgIAAQcAAayIBJICAgIAAAkAgAEL/AYNCBFINACABIABCIIinENaAgIAAAkACQCABKAIAQQFxDQBCAiEADAELIAFBMGogAUEQahC2gICAACABKAIwQQFxDQEgASkDOCEACyABQcAAaiSAgICAACAADwsACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ14CAgAAgACkDACAAKQMIEKGAgIAAIQEgAEEQaiSAgICAACABC3EAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINAEGAyx5BgNIfEOGAgIAAQYDLHkGA0h8Q4oCAgABBABCwgICAAEICEJ6AgIAADQEgABDjgICAACABEL+AgIAAQgIPCwALQoOAgICQgQEQr4CAgAAACw4AQQEgACABEIWBgIAACw4AQQIgACABEIWBgIAACw4AQQAgAEICEPKAgIAAC6UBAQF/I4CAgIAAQRBrIgEkgICAgAACQAJAIABC/wGDQsgAUg0AIAAQiYCAgABCgICAgHCDQoCAgICABFINACABQQRqEKOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCkgICAAAsQqICAgAAQooCAgAANAUEBEOWAgIAAIAAQioCAgAAaIAFBEGokgICAgABCAg8LAAtCg4CAgMCDARCvgICAAAALDABBASAAEOiAgIAAC60BAQF/I4CAgIAAQRBrIgEkgICAgAACQAJAAkAgAEL/AYNCyABSDQAgAUEEahCjgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQpICAgAALEKiAgIAAQQEQpYCAgABB/QFxRQ0BIAAQi4CAgABC/wGDQgJSDQJBABDlgICAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQr4CAgAAAC0KDgICAoIMBEK+AgIAAAAtaAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahCjgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQpICAgAALEKiAgIAAQQBBARDogICAACAAQRBqJICAgIAAQgILGgAgABCDgYCAACABrUL/AYNCAhCCgICAABoLCQAQooCAgACtCwgAEKmAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAAgACkDACAAKQMIELeAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQroCAgAAgACkDACAAKQMIELeAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCjgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQpICAgAALEKqAgIAAIQIQrYCAgAAgABDjgICAACACIAAQ7oCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQbWEwIAAQRUQwICAgAAQwYCAgAAhAyACIAA3AwggAiABNwMAIANB3ITAgABBAiACQQIQtICAgAAQhYCAgAAaIAJBEGokgICAgAAL3AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCjgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQpICAgAALEKqAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahCugICAACACKQMQIQEgAikDCEGICBCsgICAACABIAAQ2YCAgABFDQMQ8ICAgAAMAQsQ8YCAgAAgAUIgiKdJDQNBASAAQgAQ8oCAgABBARCwgICAAEIAIAFChICAgHCDIgEgARCAgICAABpB7ITAgABBFhDAgICAABDBgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBiIXAgABBAyACQQhqQQMQtICAgAAQhYCAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQr4CAgAAAC0KDgICA8IABEK+AgIAAAAsTAEEBELCAgIAAQgAQhICAgAAaCzMBAn4QloCAgAAhAAJAEJeAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEMaAgIAAAAsVACAAELCAgIAAIAEgAhCCgICAABoLpwECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQo4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKSAgIAACyAAEK6AgIAAIAApAwghASAAKQMAQYgIEKyAgIAAIAEQg4CAgAAaIAAQsYCAgAACQCAAKAIADQAQ9ICAgAAACyAAKQMIIQIQ8ICAgAAgARDjgICAACACIAEQ7oCAgAAgAEEQaiSAgICAAEICCwkAEMaAgIAAAAugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCjgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQpICAgAALEKqAgIAAIQEQrYCAgABBABCwgICAAEICEISAgIAAGkGghcCAAEETEMCAgIAAEMGAgIAAIQIgACABNwMAIAJBtIXAgABBASAAQQEQtICAgAAQhYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxCkgICAAEICDwsAC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABD4gICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEPiAgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQo4CAgAACQCACKAIoQQFHDQAgAigCLCACKAIwEKSAgIAACxCogICAAAJAAkACQBCmgICAAA0AEPGAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEK+AgIAAAAtCg4CAgMD/ABCvgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEOGAgIAADAELQQEQp4CAgABCAhCEgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEOKAgIAADAELQQIQp4CAgABCAhCEgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHohcCAAEEPEMCAgIAAEMGAgIAAIQAgAkEoahD5gICAACEBIAIgAkE0ahD5gICAADcDSCACIAE3A0AgAEGMhsCAAEECIAJBwABqQQIQtICAgAAQhYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEIGBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEPuAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQo4CAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQEKSAgIAACyAAQQhqEKOAgIAAIABBFGoiARDFgICAACAAQTBqIABBCGoQ+4CAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEPuAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhD8gICAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQgoGAgAAPCyAAQgA3AwAgAEICNwMICxoAIACtQiCGQgSEIAGtQiCGQgSEEJGAgIAAC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCjgICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQpICAgAALEKiAgIAAAkAQ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AAAAbW9kZWxfdHlwZQAAPQAQAAcAAAAEARAACgAAAFByaWNlUmF0aW9EZW5vbWluYXRvclByaWNlVXBkYXRlckRlZmF1bHRNb2RlbFByaWNlQXJiaXRydW1QcmljZUV4dE5hdGl2ZVByaWNlVVNEQXJiaXRydW1Db21wcmVzc2lvblBlcmNlbnRFaWRUb01vZGVsVHlwZWdhc19wZXJfYnl0ZWdhc19wcmljZV9pbl91bml0cHJpY2VfcmF0aW+YARAADAAAAKQBEAARAAAAtQEQAAsAAABuYXRpdmVfcHJpY2VfdXNkcHJpY2VfcmF0aW9fZGVub21pbmF0b3J0b3RhbF9nYXNfZmVl2AEQABAAAAC1ARAACwAAAOgBEAAXAAAA/wEQAA0AAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXJKAhAACQAAAFMCEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAEoCEAAJAAAAUwIQAAkAAACCAhAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAUwIQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAzQIQAAkAAAAsAhAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAPcCEAAIAAAA/wIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAp3YOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAAOUHJpY2VGZWVkRXJyb3IAAAAAAAUAAAAAAAAAEkludmFsaWREZW5vbWluYXRvcgAAAAAAAQAAAAAAAAAHTm9QcmljZQAAAAACAAAAAAAAAAxOb3RBbk9wU3RhY2sAAAADAAAAAAAAABBPbmx5UHJpY2VVcGRhdGVyAAAABAAAAAAAAAAIT3ZlcmZsb3cAAAAFAAAABQAAAAAAAAAAAAAAD1ByaWNlVXBkYXRlclNldAAAAAABAAAAEXByaWNlX3VwZGF0ZXJfc2V0AAAAAAAAAgAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMUHJpY2VVcGRhdGVkAAAAAQAAAA1wcmljZV91cGRhdGVkAAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXQXJiaXRydW1QcmljZUV4dFVwZGF0ZWQAAAAAAQAAABphcmJpdHJ1bV9wcmljZV9leHRfdXBkYXRlZAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAASYXJiaXRydW1fcHJpY2VfZXh0AAAAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAAgAAAAEAAAAhQXJiaXRydW0tc3BlY2lmaWMgcHJpY2UgZXh0ZW5zaW9uAAAAAAAAAAAAABBBcmJpdHJ1bVByaWNlRXh0AAAAAgAAAEFHYXMgY29zdCBwZXIgYnl0ZSBvZiBMMSBjYWxsZGF0YSAoZm9yIEFyYml0cnVtJ3MgTDEgZGF0YSBwb3N0aW5nKQAAAAAAABhnYXNfcGVyX2wxX2NhbGxkYXRhX2J5dGUAAAAEAAAAH0dhcyBvdmVyaGVhZCBwZXIgTDIgdHJhbnNhY3Rpb24AAAAADWdhc19wZXJfbDJfdHgAAAAAAAAGAAAAAQAAACVQYXJhbWV0ZXIgZm9yIHVwZGF0aW5nIGEgc2luZ2xlIHByaWNlAAAAAAAAAAAAAAtVcGRhdGVQcmljZQAAAAACAAAAF0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEAAAAAANlaWQAAAAABAAAACVQcmljZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGRlc3RpbmF0aW9uAAAAAAAABXByaWNlAAAAAAAH0AAAAAVQcmljZQAAAAAAAAEAAAA0UGFyYW1ldGVyIGZvciB1cGRhdGluZyBBcmJpdHJ1bSBwcmljZSB3aXRoIGV4dGVuc2lvbgAAAAAAAAAOVXBkYXRlUHJpY2VFeHQAAAAAAAMAAAA4RGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKHNob3VsZCBiZSBhbiBBcmJpdHJ1bSBlbmRwb2ludCkAAAADZWlkAAAAAAQAAAAjQXJiaXRydW0tc3BlY2lmaWMgcHJpY2luZyBleHRlbnNpb24AAAAABmV4dGVuZAAAAAAH0AAAABBBcmJpdHJ1bVByaWNlRXh0AAAAJVByaWNlIGluZm9ybWF0aW9uIGZvciB0aGUgZGVzdGluYXRpb24AAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAwAAADBGZWUgbW9kZWwgdHlwZSBmb3IgZGlmZmVyZW50IGNoYWluIGFyY2hpdGVjdHVyZXMAAAAAAAAACU1vZGVsVHlwZQAAAAAAAAMAAAAAAAAAB0RlZmF1bHQAAAAAAAAAAAAAAAAIQXJiU3RhY2sAAAABAAAAAAAAAAdPcFN0YWNrAAAAAAIAAAABAAAAL1BhcmFtZXRlciBmb3Igc2V0dGluZyBFSUQgdG8gbW9kZWwgdHlwZSBtYXBwaW5nAAAAAAAAAAAWU2V0RWlkVG9Nb2RlbFR5cGVQYXJhbQAAAAAAAgAAABdEZXN0aW5hdGlvbiBlbmRwb2ludCBJRAAAAAAHZHN0X2VpZAAAAAAEAAAAI0ZlZSBtb2RlbCB0eXBlIGZvciB0aGlzIGRlc3RpbmF0aW9uAAAAAAptb2RlbF90eXBlAAAAAAfQAAAACU1vZGVsVHlwZQAAAAAAAAAAAAAlU2V0IHByaWNlIHVwZGF0ZXIgc3RhdHVzIChvd25lciBvbmx5KQAAAAAAABFzZXRfcHJpY2VfdXBkYXRlcgAAAAAAAAIAAAAAAAAAB3VwZGF0ZXIAAAAAEwAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAAsU2V0IHRoZSBwcmljZSByYXRpbyBkZW5vbWluYXRvciAob3duZXIgb25seSkAAAAbc2V0X3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAEAAAAAAAAAC2Rlbm9taW5hdG9yAAAAAAoAAAAAAAAAAAAAADRTZXQgdGhlIEFyYml0cnVtIGNvbXByZXNzaW9uIHBlcmNlbnRhZ2UgKG93bmVyIG9ubHkpAAAAIHNldF9hcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AAAAAQAAAAAAAAATY29tcHJlc3Npb25fcGVyY2VudAAAAAAKAAAAAAAAAAAAAAA4U2V0IHRoZSBmZWUgbW9kZWwgdHlwZSBmb3IgZGVzdGluYXRpb24gRUlEcyAob3duZXIgb25seSkAAAAVc2V0X2VpZF90b19tb2RlbF90eXBlAAAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABZTZXRFaWRUb01vZGVsVHlwZVBhcmFtAAAAAAAAAAAAAAAAAD1TZXQgcHJpY2VzIGZvciBtdWx0aXBsZSBkZXN0aW5hdGlvbnMgKHByaWNlIHVwZGF0ZXIgb3Igb3duZXIpAAAAAAAACXNldF9wcmljZQAAAAAAAAIAAAAAAAAADXByaWNlX3VwZGF0ZXIAAAAAAAATAAAAAAAAAAZwcmljZXMAAAAAA+oAAAfQAAAAC1VwZGF0ZVByaWNlAAAAAAAAAAAAAAAAclNldCBwcmljZSBmb3IgQXJiaXRydW0gd2l0aCBleHRlbnNpb24gKHByaWNlIHVwZGF0ZXIgb3Igb3duZXIpCkNvcnJlc3BvbmRzIHRvIHNldFByaWNlRm9yQXJiaXRydW0gaW4gUHJpY2VGZWVkLnNvbAAAAAAAFnNldF9wcmljZV9mb3JfYXJiaXRydW0AAAAAAAIAAAAAAAAADXByaWNlX3VwZGF0ZXIAAAAAAAATAAAAAAAAAAZ1cGRhdGUAAAAAB9AAAAAOVXBkYXRlUHJpY2VFeHQAAAAAAAAAAAAAAAAAtFNldCB0aGUgbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAocHJpY2UgdXBkYXRlciBvciBvd25lcikuCgpLZXB0IGFzIGEgc3RhbmRhbG9uZSBjb250cmFjdCBmdW5jdGlvbiAobm90IHBhcnQgb2YgdGhlIGNhbm9uaWNhbCBgZmVlX2xpYl9pbnRlcmZhY2VzOjpJTGF5ZXJaZXJvUHJpY2VGZWVkYCBpbnRlcmZhY2UpLgAAABpzZXRfbmF0aXZlX3Rva2VuX3ByaWNlX3VzZAAAAAAAAgAAAAAAAAANcHJpY2VfdXBkYXRlcgAAAAAAABMAAAAAAAAAFm5hdGl2ZV90b2tlbl9wcmljZV91c2QAAAAAAAoAAAAAAAAAAAAAAC5DaGVjayBpZiBhbiBhZGRyZXNzIGlzIGFuIGFjdGl2ZSBwcmljZSB1cGRhdGVyAAAAAAAQaXNfcHJpY2VfdXBkYXRlcgAAAAEAAAAAAAAAB3VwZGF0ZXIAAAAAEwAAAAEAAAABAAAAAAAAACRHZXQgdGhlIEFyYml0cnVtIGNvbXByZXNzaW9uIHBlcmNlbnQAAAAcYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudAAAAAAAAAABAAAACgAAAAAAAAAgR2V0IHRoZSBBcmJpdHJ1bSBwcmljZSBleHRlbnNpb24AAAASYXJiaXRydW1fcHJpY2VfZXh0AAAAAAAAAAAAAQAAB9AAAAAQQXJiaXRydW1QcmljZUV4dAAAAAAAAAAoR2V0IHRoZSBtb2RlbCB0eXBlIGZvciBhIGRlc3RpbmF0aW9uIEVJRAAAABFlaWRfdG9fbW9kZWxfdHlwZQAAAAAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAfQAAAACU1vZGVsVHlwZQAAAAAAAAAAAABkRXN0aW1hdGUgZmVlIHdpdGggZGV0YWlsZWQgYnJlYWtkb3duIGJ5IGVuZHBvaW50IElECkNvcnJlc3BvbmRzIHRvIGVzdGltYXRlRmVlQnlFaWQgaW4gUHJpY2VGZWVkLnNvbAAAABNlc3RpbWF0ZV9mZWVfYnlfZWlkAAAAAAQAAAAAAAAAB2ZlZV9saWIAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAADZ2FzAAAAAAoAAAABAAAH0AAAAAtGZWVFc3RpbWF0ZQAAAAAAAAAAIUdldCB0aGUgbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRAAAAAAAABZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAAAAAAAAAAAAAQAAAAoAAAAAAAAAJEdldCB0aGUgcHJpY2UgZm9yIGEgZGVzdGluYXRpb24gRUlELgAAAAlnZXRfcHJpY2UAAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAFUHJpY2UAAAAAAAAAAAAAIEdldCB0aGUgcHJpY2UgcmF0aW8gZGVub21pbmF0b3IuAAAAG2dldF9wcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAAAAAAAQAAAAoAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAAAAAAlVRoZSB0eXBlIG9mIGRhdGEgcmVxdWlyZWQgZm9yIG1pZ3JhdGlvbi4KVXBncmFkZXMgdGhlIGNvbnRyYWN0IHRvIG5ldyBXQVNNIGJ5dGVjb2RlLgpTZXRzIGEgbWlncmF0aW9uIGZsYWcgdGhhdCBtdXN0IGJlIGNsZWFyZWQgYnkgY2FsbGluZyBgbWlncmF0ZWAuAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAB2UnVucyBtaWdyYXRpb24gbG9naWMgYWZ0ZXIgYW4gdXBncmFkZS4KQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBmbGFnIGlzIHNldCBieSBhIHByZXZpb3VzIGB1cGdyYWRlYCBjYWxsLgAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAAAAAAAAAAA7UmV0dXJucyB3aGV0aGVyIHRoZSBjb250cmFjdCBpcyBmcm96ZW4gKHVwZ3JhZGVzIGRpc2FibGVkKS4AAAAACWlzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAIAAAAAAAAAAAAAABBQcmljZUZlZWRTdG9yYWdlAAAABwAAAAAAAAAAAAAAFVByaWNlUmF0aW9EZW5vbWluYXRvcgAAAAAAAAEAAAAAAAAADFByaWNlVXBkYXRlcgAAAAEAAAATAAAAAQAAAAAAAAARRGVmYXVsdE1vZGVsUHJpY2UAAAAAAAABAAAABAAAAAAAAAAAAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAAAAAAA5OYXRpdmVQcmljZVVTRAAAAAAAAAAAAAAAAAAaQXJiaXRydW1Db21wcmVzc2lvblBlcmNlbnQAAAAAAAEAAAAAAAAADkVpZFRvTW9kZWxUeXBlAAAAAAABAAAABAAAAAEAAADhUGFyYW1ldGVycyBmb3IgRFZOIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgdmVyaWZpY2F0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAAAAxEdm5GZWVQYXJhbXMAAAAKAAAAJ051bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkLgAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpHYXMgZXN0aW1hdGUgZm9yIHZlcmlmaWNhdGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAADZ2FzAAAAAAoAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAC0RWTiBvcHRpb25zAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAACdOdW1iZXIgb2YgcmVxdWlyZWQgc2lnbmF0dXJlcyAocXVvcnVtKS4AAAAABnF1b3J1bQAAAAAABAAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAADjUGFyYW1ldGVycyBmb3IgZXhlY3V0b3IgZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBleGVjdXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAlGZWVQYXJhbXMAAAAAAAALAAAAJlNpemUgb2YgdGhlIG1lc3NhZ2UgY2FsbGRhdGEgaW4gYnl0ZXMuAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAA2QmFzZSBnYXMgZm9yIGVhY2ggbHpDb21wb3NlIGNhbGwgb24gZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAABEz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQmFzZSBnYXMgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAABNsel9yZWNlaXZlX2Jhc2VfZ2FzAAAAAAYAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAALE1heGltdW0gbmF0aXZlIHRva2VuIHZhbHVlIHRoYXQgY2FuIGJlIHNlbnQuAAAACm5hdGl2ZV9jYXAAAAAAAAoAAABGRW5jb2RlZCBleGVjdXRvciBvcHRpb25zIChselJlY2VpdmUgZ2FzLCBsekNvbXBvc2UsIG5hdGl2ZURyb3AsIGV0Yy4pLgAAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAIRHYXMgcHJpY2UgaW5mb3JtYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgpDb250YWlucyB0aGUgZXhjaGFuZ2UgcmF0ZSBhbmQgZ2FzIGNvc3RzIG5lZWRlZCBmb3IgY3Jvc3MtY2hhaW4gZmVlIGNhbGN1bGF0aW9ucy4AAAAAAAAABVByaWNlAAAAAAAAAwAAADdHYXMgY29zdCBwZXIgYnl0ZSBvZiBjYWxsZGF0YSBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAxnYXNfcGVyX2J5dGUAAAAEAAAAQkdhcyBwcmljZSBpbiB0aGUgc21hbGxlc3QgdW5pdCAod2VpIGZvciBFVk0sIHN0cm9vcHMgZm9yIFN0ZWxsYXIpLgAAAAAAEWdhc19wcmljZV9pbl91bml0AAAAAAAABgAAAKlQcmljZSByYXRpbyA9IChyZW1vdGUgbmF0aXZlIHRva2VuIHByaWNlIC8gbG9jYWwgbmF0aXZlIHRva2VuIHByaWNlKSAqIFBSSUNFX1JBVElPX0RFTk9NSU5BVE9SLgpVc2VkIHRvIGNvbnZlcnQgZGVzdGluYXRpb24gY2hhaW4gZ2FzIGNvc3RzIHRvIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAABAAAAgEZlZSBlc3RpbWF0aW9uIHJlc3VsdCB3aXRoIGRldGFpbGVkIGJyZWFrZG93bi4KCkNvbnRhaW5zIHRoZSBjYWxjdWxhdGVkIGZlZSBhbmQgYWxsIGludGVybWVkaWF0ZSB2YWx1ZXMgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uAAAAAAAAAAtGZWVFc3RpbWF0ZQAAAAAEAAAAMFNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gcHJpY2UgaW4gVVNEIChzY2FsZWQpLgAAABBuYXRpdmVfcHJpY2VfdXNkAAAACgAAACVQcmljZSByYXRpbyB1c2VkIGZvciB0aGUgY2FsY3VsYXRpb24uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAAyRGVub21pbmF0b3IgZm9yIHRoZSBwcmljZSByYXRpbyAodHlwaWNhbGx5IDEwXjIwKS4AAAAAABdwcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAKAAAAMVRvdGFsIGdhcyBmZWUgaW4gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiB1bml0cy4AAAAAAAANdG90YWxfZ2FzX2ZlZQAAAAAAAAsAAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAMAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAAAAAAAA5VcGdyYWRlc0Zyb3plbgAAAAAEHAAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4wLjEjOTQxNDQ4MDc5ZWNjZjk1NjI3ZDJmZmVhMTNiYTI2OGUzMDVhOTA3NwAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
|
|
13
12
|
/**
|
|
14
13
|
* Pre-computed WASM hash (SHA-256)
|
|
15
14
|
* Use this when the WASM is already uploaded on-chain
|
|
16
15
|
*/
|
|
17
|
-
export declare const WASM_HASH = "
|
|
16
|
+
export declare const WASM_HASH = "dcf39d3b282fd9dc1b9b499e6d4a1833ad63ebcbaeac3611bb465f9e05abba24";
|
|
18
17
|
/**
|
|
19
18
|
* Get the WASM bytecode as a Buffer
|
|
20
19
|
* Use this to upload the WASM to the network
|
|
21
20
|
*/
|
|
22
21
|
export declare function getWasmBuffer(): Buffer;
|
|
23
|
-
export type PriceFeedStorage = {
|
|
24
|
-
tag: "PriceRatioDenominator";
|
|
25
|
-
values: void;
|
|
26
|
-
} | {
|
|
27
|
-
tag: "PriceUpdater";
|
|
28
|
-
values: readonly [string];
|
|
29
|
-
} | {
|
|
30
|
-
tag: "DefaultModelPrice";
|
|
31
|
-
values: readonly [u32];
|
|
32
|
-
} | {
|
|
33
|
-
tag: "ArbitrumPriceExt";
|
|
34
|
-
values: void;
|
|
35
|
-
} | {
|
|
36
|
-
tag: "NativePriceUSD";
|
|
37
|
-
values: void;
|
|
38
|
-
} | {
|
|
39
|
-
tag: "ArbitrumCompressionPercent";
|
|
40
|
-
values: void;
|
|
41
|
-
} | {
|
|
42
|
-
tag: "EidToModelType";
|
|
43
|
-
values: readonly [u32];
|
|
44
|
-
};
|
|
45
22
|
export declare const PriceFeedError: {
|
|
46
23
|
1: {
|
|
47
24
|
message: string;
|
|
@@ -123,209 +100,27 @@ export interface SetEidToModelTypeParam {
|
|
|
123
100
|
*/
|
|
124
101
|
model_type: ModelType;
|
|
125
102
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
*/
|
|
129
|
-
export declare const BufferReaderError: {
|
|
130
|
-
1000: {
|
|
131
|
-
message: string;
|
|
132
|
-
};
|
|
133
|
-
1001: {
|
|
134
|
-
message: string;
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
/**
|
|
138
|
-
* BufferWriterError: 1010-1019
|
|
139
|
-
*/
|
|
140
|
-
export declare const BufferWriterError: {
|
|
141
|
-
1010: {
|
|
142
|
-
message: string;
|
|
143
|
-
};
|
|
144
|
-
};
|
|
145
|
-
/**
|
|
146
|
-
* TtlConfigurableError: 1020-1029
|
|
147
|
-
*/
|
|
148
|
-
export declare const TtlConfigurableError: {
|
|
149
|
-
1020: {
|
|
150
|
-
message: string;
|
|
151
|
-
};
|
|
152
|
-
1021: {
|
|
153
|
-
message: string;
|
|
154
|
-
};
|
|
155
|
-
1022: {
|
|
156
|
-
message: string;
|
|
157
|
-
};
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* OwnableError: 1030-1039
|
|
161
|
-
*/
|
|
162
|
-
export declare const OwnableError: {
|
|
163
|
-
1030: {
|
|
164
|
-
message: string;
|
|
165
|
-
};
|
|
166
|
-
1031: {
|
|
167
|
-
message: string;
|
|
168
|
-
};
|
|
169
|
-
1032: {
|
|
170
|
-
message: string;
|
|
171
|
-
};
|
|
172
|
-
1033: {
|
|
173
|
-
message: string;
|
|
174
|
-
};
|
|
175
|
-
1034: {
|
|
176
|
-
message: string;
|
|
177
|
-
};
|
|
178
|
-
1035: {
|
|
179
|
-
message: string;
|
|
180
|
-
};
|
|
181
|
-
};
|
|
182
|
-
/**
|
|
183
|
-
* BytesExtError: 1040-1049
|
|
184
|
-
*/
|
|
185
|
-
export declare const BytesExtError: {
|
|
186
|
-
1040: {
|
|
187
|
-
message: string;
|
|
188
|
-
};
|
|
189
|
-
};
|
|
190
|
-
/**
|
|
191
|
-
* UpgradeableError: 1050-1059
|
|
192
|
-
*/
|
|
193
|
-
export declare const UpgradeableError: {
|
|
194
|
-
1050: {
|
|
195
|
-
message: string;
|
|
196
|
-
};
|
|
197
|
-
};
|
|
198
|
-
/**
|
|
199
|
-
* MultisigError: 1060-1069
|
|
200
|
-
*/
|
|
201
|
-
export declare const MultisigError: {
|
|
202
|
-
1060: {
|
|
203
|
-
message: string;
|
|
204
|
-
};
|
|
205
|
-
1061: {
|
|
206
|
-
message: string;
|
|
207
|
-
};
|
|
208
|
-
1062: {
|
|
209
|
-
message: string;
|
|
210
|
-
};
|
|
211
|
-
1063: {
|
|
212
|
-
message: string;
|
|
213
|
-
};
|
|
214
|
-
1064: {
|
|
215
|
-
message: string;
|
|
216
|
-
};
|
|
217
|
-
1065: {
|
|
218
|
-
message: string;
|
|
219
|
-
};
|
|
220
|
-
1066: {
|
|
221
|
-
message: string;
|
|
222
|
-
};
|
|
223
|
-
1067: {
|
|
224
|
-
message: string;
|
|
225
|
-
};
|
|
226
|
-
};
|
|
227
|
-
export type MultisigStorage = {
|
|
228
|
-
tag: "Signers";
|
|
103
|
+
export type PriceFeedStorage = {
|
|
104
|
+
tag: "PriceRatioDenominator";
|
|
229
105
|
values: void;
|
|
230
106
|
} | {
|
|
231
|
-
tag: "
|
|
232
|
-
values:
|
|
233
|
-
};
|
|
234
|
-
export type OwnableStorage = {
|
|
235
|
-
tag: "Owner";
|
|
236
|
-
values: void;
|
|
107
|
+
tag: "PriceUpdater";
|
|
108
|
+
values: readonly [string];
|
|
237
109
|
} | {
|
|
238
|
-
tag: "
|
|
239
|
-
values:
|
|
240
|
-
};
|
|
241
|
-
/**
|
|
242
|
-
* TTL configuration: threshold (when to extend) and extend_to (target TTL).
|
|
243
|
-
*/
|
|
244
|
-
export interface TtlConfig {
|
|
245
|
-
/**
|
|
246
|
-
* Target TTL after extension (in ledgers).
|
|
247
|
-
*/
|
|
248
|
-
extend_to: u32;
|
|
249
|
-
/**
|
|
250
|
-
* TTL threshold that triggers extension (in ledgers).
|
|
251
|
-
*/
|
|
252
|
-
threshold: u32;
|
|
253
|
-
}
|
|
254
|
-
export type TtlConfigStorage = {
|
|
255
|
-
tag: "Frozen";
|
|
256
|
-
values: void;
|
|
110
|
+
tag: "DefaultModelPrice";
|
|
111
|
+
values: readonly [u32];
|
|
257
112
|
} | {
|
|
258
|
-
tag: "
|
|
113
|
+
tag: "ArbitrumPriceExt";
|
|
259
114
|
values: void;
|
|
260
115
|
} | {
|
|
261
|
-
tag: "
|
|
116
|
+
tag: "NativePriceUSD";
|
|
262
117
|
values: void;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
tag: "Migrating";
|
|
118
|
+
} | {
|
|
119
|
+
tag: "ArbitrumCompressionPercent";
|
|
266
120
|
values: void;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
*/
|
|
271
|
-
export declare const WorkerError: {
|
|
272
|
-
1200: {
|
|
273
|
-
message: string;
|
|
274
|
-
};
|
|
275
|
-
1201: {
|
|
276
|
-
message: string;
|
|
277
|
-
};
|
|
278
|
-
1202: {
|
|
279
|
-
message: string;
|
|
280
|
-
};
|
|
281
|
-
1203: {
|
|
282
|
-
message: string;
|
|
283
|
-
};
|
|
284
|
-
1204: {
|
|
285
|
-
message: string;
|
|
286
|
-
};
|
|
287
|
-
1205: {
|
|
288
|
-
message: string;
|
|
289
|
-
};
|
|
290
|
-
1206: {
|
|
291
|
-
message: string;
|
|
292
|
-
};
|
|
293
|
-
1207: {
|
|
294
|
-
message: string;
|
|
295
|
-
};
|
|
296
|
-
1208: {
|
|
297
|
-
message: string;
|
|
298
|
-
};
|
|
299
|
-
1209: {
|
|
300
|
-
message: string;
|
|
301
|
-
};
|
|
302
|
-
1210: {
|
|
303
|
-
message: string;
|
|
304
|
-
};
|
|
305
|
-
1211: {
|
|
306
|
-
message: string;
|
|
307
|
-
};
|
|
308
|
-
1212: {
|
|
309
|
-
message: string;
|
|
310
|
-
};
|
|
311
|
-
1213: {
|
|
312
|
-
message: string;
|
|
313
|
-
};
|
|
314
|
-
1214: {
|
|
315
|
-
message: string;
|
|
316
|
-
};
|
|
317
|
-
1215: {
|
|
318
|
-
message: string;
|
|
319
|
-
};
|
|
320
|
-
1216: {
|
|
321
|
-
message: string;
|
|
322
|
-
};
|
|
323
|
-
1217: {
|
|
324
|
-
message: string;
|
|
325
|
-
};
|
|
326
|
-
1218: {
|
|
327
|
-
message: string;
|
|
328
|
-
};
|
|
121
|
+
} | {
|
|
122
|
+
tag: "EidToModelType";
|
|
123
|
+
values: readonly [u32];
|
|
329
124
|
};
|
|
330
125
|
/**
|
|
331
126
|
* Parameters for DVN fee calculation.
|
|
@@ -490,46 +285,165 @@ export interface FeeEstimate {
|
|
|
490
285
|
*/
|
|
491
286
|
total_gas_fee: i128;
|
|
492
287
|
}
|
|
493
|
-
|
|
494
|
-
|
|
288
|
+
/**
|
|
289
|
+
* BufferReaderError: 1000-1009
|
|
290
|
+
*/
|
|
291
|
+
export declare const BufferReaderError: {
|
|
292
|
+
1000: {
|
|
293
|
+
message: string;
|
|
294
|
+
};
|
|
295
|
+
1001: {
|
|
296
|
+
message: string;
|
|
297
|
+
};
|
|
298
|
+
};
|
|
299
|
+
/**
|
|
300
|
+
* BufferWriterError: 1010-1019
|
|
301
|
+
*/
|
|
302
|
+
export declare const BufferWriterError: {
|
|
303
|
+
1010: {
|
|
304
|
+
message: string;
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
/**
|
|
308
|
+
* TtlConfigurableError: 1020-1029
|
|
309
|
+
*/
|
|
310
|
+
export declare const TtlConfigurableError: {
|
|
311
|
+
1020: {
|
|
312
|
+
message: string;
|
|
313
|
+
};
|
|
314
|
+
1021: {
|
|
315
|
+
message: string;
|
|
316
|
+
};
|
|
317
|
+
1022: {
|
|
318
|
+
message: string;
|
|
319
|
+
};
|
|
320
|
+
};
|
|
321
|
+
/**
|
|
322
|
+
* OwnableError: 1030-1039
|
|
323
|
+
*/
|
|
324
|
+
export declare const OwnableError: {
|
|
325
|
+
1030: {
|
|
326
|
+
message: string;
|
|
327
|
+
};
|
|
328
|
+
1031: {
|
|
329
|
+
message: string;
|
|
330
|
+
};
|
|
331
|
+
1032: {
|
|
332
|
+
message: string;
|
|
333
|
+
};
|
|
334
|
+
1033: {
|
|
335
|
+
message: string;
|
|
336
|
+
};
|
|
337
|
+
1034: {
|
|
338
|
+
message: string;
|
|
339
|
+
};
|
|
340
|
+
1035: {
|
|
341
|
+
message: string;
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
/**
|
|
345
|
+
* BytesExtError: 1040-1049
|
|
346
|
+
*/
|
|
347
|
+
export declare const BytesExtError: {
|
|
348
|
+
1040: {
|
|
349
|
+
message: string;
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* UpgradeableError: 1050-1059
|
|
354
|
+
*/
|
|
355
|
+
export declare const UpgradeableError: {
|
|
356
|
+
1050: {
|
|
357
|
+
message: string;
|
|
358
|
+
};
|
|
359
|
+
1051: {
|
|
360
|
+
message: string;
|
|
361
|
+
};
|
|
362
|
+
1052: {
|
|
363
|
+
message: string;
|
|
364
|
+
};
|
|
365
|
+
};
|
|
366
|
+
/**
|
|
367
|
+
* MultisigError: 1060-1069
|
|
368
|
+
*/
|
|
369
|
+
export declare const MultisigError: {
|
|
370
|
+
1060: {
|
|
371
|
+
message: string;
|
|
372
|
+
};
|
|
373
|
+
1061: {
|
|
374
|
+
message: string;
|
|
375
|
+
};
|
|
376
|
+
1062: {
|
|
377
|
+
message: string;
|
|
378
|
+
};
|
|
379
|
+
1063: {
|
|
380
|
+
message: string;
|
|
381
|
+
};
|
|
382
|
+
1064: {
|
|
383
|
+
message: string;
|
|
384
|
+
};
|
|
385
|
+
1065: {
|
|
386
|
+
message: string;
|
|
387
|
+
};
|
|
388
|
+
1066: {
|
|
389
|
+
message: string;
|
|
390
|
+
};
|
|
391
|
+
1067: {
|
|
392
|
+
message: string;
|
|
393
|
+
};
|
|
394
|
+
};
|
|
395
|
+
export type MultisigStorage = {
|
|
396
|
+
tag: "Signers";
|
|
495
397
|
values: void;
|
|
496
398
|
} | {
|
|
497
|
-
tag: "
|
|
399
|
+
tag: "Threshold";
|
|
498
400
|
values: void;
|
|
499
|
-
}
|
|
500
|
-
|
|
401
|
+
};
|
|
402
|
+
export type OwnableStorage = {
|
|
403
|
+
tag: "Owner";
|
|
501
404
|
values: void;
|
|
502
405
|
} | {
|
|
503
|
-
tag: "
|
|
406
|
+
tag: "PendingOwner";
|
|
504
407
|
values: void;
|
|
505
|
-
}
|
|
506
|
-
|
|
408
|
+
};
|
|
409
|
+
/**
|
|
410
|
+
* TTL configuration: threshold (when to extend) and extend_to (target TTL).
|
|
411
|
+
*/
|
|
412
|
+
export interface TtlConfig {
|
|
413
|
+
/**
|
|
414
|
+
* Target TTL after extension (in ledgers).
|
|
415
|
+
*/
|
|
416
|
+
extend_to: u32;
|
|
417
|
+
/**
|
|
418
|
+
* TTL threshold that triggers extension (in ledgers).
|
|
419
|
+
*/
|
|
420
|
+
threshold: u32;
|
|
421
|
+
}
|
|
422
|
+
export type TtlConfigStorage = {
|
|
423
|
+
tag: "Frozen";
|
|
507
424
|
values: void;
|
|
508
425
|
} | {
|
|
509
|
-
tag: "
|
|
510
|
-
values: readonly [u32];
|
|
511
|
-
} | {
|
|
512
|
-
tag: "MessageLibs";
|
|
426
|
+
tag: "Instance";
|
|
513
427
|
values: void;
|
|
514
428
|
} | {
|
|
515
|
-
tag: "
|
|
516
|
-
values:
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
} | {
|
|
521
|
-
tag: "AllowlistSize";
|
|
429
|
+
tag: "Persistent";
|
|
430
|
+
values: void;
|
|
431
|
+
};
|
|
432
|
+
export type UpgradeableStorage = {
|
|
433
|
+
tag: "Frozen";
|
|
522
434
|
values: void;
|
|
523
435
|
} | {
|
|
524
|
-
tag: "
|
|
436
|
+
tag: "Migrating";
|
|
525
437
|
values: void;
|
|
526
438
|
};
|
|
527
439
|
export interface Client {
|
|
528
440
|
/**
|
|
529
|
-
* Construct and simulate a
|
|
441
|
+
* Construct and simulate a set_price_updater 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.
|
|
442
|
+
* Set price updater status (owner only)
|
|
530
443
|
*/
|
|
531
|
-
|
|
532
|
-
|
|
444
|
+
set_price_updater: ({ updater, active }: {
|
|
445
|
+
updater: string;
|
|
446
|
+
active: boolean;
|
|
533
447
|
}, txnOptions?: {
|
|
534
448
|
/**
|
|
535
449
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -545,10 +459,11 @@ export interface Client {
|
|
|
545
459
|
simulate?: boolean;
|
|
546
460
|
}) => Promise<AssembledTransaction<null>>;
|
|
547
461
|
/**
|
|
548
|
-
* Construct and simulate a
|
|
462
|
+
* Construct and simulate a set_price_ratio_denominator 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.
|
|
463
|
+
* Set the price ratio denominator (owner only)
|
|
549
464
|
*/
|
|
550
|
-
|
|
551
|
-
|
|
465
|
+
set_price_ratio_denominator: ({ denominator }: {
|
|
466
|
+
denominator: u128;
|
|
552
467
|
}, txnOptions?: {
|
|
553
468
|
/**
|
|
554
469
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -564,32 +479,11 @@ export interface Client {
|
|
|
564
479
|
simulate?: boolean;
|
|
565
480
|
}) => Promise<AssembledTransaction<null>>;
|
|
566
481
|
/**
|
|
567
|
-
* Construct and simulate a
|
|
568
|
-
|
|
569
|
-
authorizer: (txnOptions?: {
|
|
570
|
-
/**
|
|
571
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
572
|
-
*/
|
|
573
|
-
fee?: number;
|
|
574
|
-
/**
|
|
575
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
576
|
-
*/
|
|
577
|
-
timeoutInSeconds?: number;
|
|
578
|
-
/**
|
|
579
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
580
|
-
*/
|
|
581
|
-
simulate?: boolean;
|
|
582
|
-
}) => Promise<AssembledTransaction<string>>;
|
|
583
|
-
/**
|
|
584
|
-
* Construct and simulate a estimate_fee_by_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.
|
|
585
|
-
* Estimate fee with detailed breakdown by endpoint ID
|
|
586
|
-
* Corresponds to estimateFeeByEid in PriceFeed.sol
|
|
482
|
+
* Construct and simulate a set_arbitrum_compression_percent 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.
|
|
483
|
+
* Set the Arbitrum compression percentage (owner only)
|
|
587
484
|
*/
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
dst_eid: u32;
|
|
591
|
-
calldata_size: u32;
|
|
592
|
-
gas: u128;
|
|
485
|
+
set_arbitrum_compression_percent: ({ compression_percent }: {
|
|
486
|
+
compression_percent: u128;
|
|
593
487
|
}, txnOptions?: {
|
|
594
488
|
/**
|
|
595
489
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -603,31 +497,13 @@ export interface Client {
|
|
|
603
497
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
604
498
|
*/
|
|
605
499
|
simulate?: boolean;
|
|
606
|
-
}) => Promise<AssembledTransaction<
|
|
607
|
-
/**
|
|
608
|
-
* Construct and simulate a native_token_price_usd 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.
|
|
609
|
-
* Get the native token price in USD
|
|
610
|
-
*/
|
|
611
|
-
native_token_price_usd: (txnOptions?: {
|
|
612
|
-
/**
|
|
613
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
614
|
-
*/
|
|
615
|
-
fee?: number;
|
|
616
|
-
/**
|
|
617
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
618
|
-
*/
|
|
619
|
-
timeoutInSeconds?: number;
|
|
620
|
-
/**
|
|
621
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
622
|
-
*/
|
|
623
|
-
simulate?: boolean;
|
|
624
|
-
}) => Promise<AssembledTransaction<u128>>;
|
|
500
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
625
501
|
/**
|
|
626
|
-
* Construct and simulate a
|
|
627
|
-
*
|
|
502
|
+
* Construct and simulate a set_eid_to_model_type 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.
|
|
503
|
+
* Set the fee model type for destination EIDs (owner only)
|
|
628
504
|
*/
|
|
629
|
-
|
|
630
|
-
|
|
505
|
+
set_eid_to_model_type: ({ params }: {
|
|
506
|
+
params: Array<SetEidToModelTypeParam>;
|
|
631
507
|
}, txnOptions?: {
|
|
632
508
|
/**
|
|
633
509
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -641,32 +517,14 @@ export interface Client {
|
|
|
641
517
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
642
518
|
*/
|
|
643
519
|
simulate?: boolean;
|
|
644
|
-
}) => Promise<AssembledTransaction<
|
|
645
|
-
/**
|
|
646
|
-
* Construct and simulate a get_price_ratio_denominator 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.
|
|
647
|
-
* Get the price ratio denominator.
|
|
648
|
-
*/
|
|
649
|
-
get_price_ratio_denominator: (txnOptions?: {
|
|
650
|
-
/**
|
|
651
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
652
|
-
*/
|
|
653
|
-
fee?: number;
|
|
654
|
-
/**
|
|
655
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
656
|
-
*/
|
|
657
|
-
timeoutInSeconds?: number;
|
|
658
|
-
/**
|
|
659
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
660
|
-
*/
|
|
661
|
-
simulate?: boolean;
|
|
662
|
-
}) => Promise<AssembledTransaction<u128>>;
|
|
520
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
663
521
|
/**
|
|
664
|
-
* Construct and simulate a
|
|
665
|
-
* Set price updater
|
|
522
|
+
* Construct and simulate a set_price 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.
|
|
523
|
+
* Set prices for multiple destinations (price updater or owner)
|
|
666
524
|
*/
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
525
|
+
set_price: ({ price_updater, prices }: {
|
|
526
|
+
price_updater: string;
|
|
527
|
+
prices: Array<UpdatePrice>;
|
|
670
528
|
}, txnOptions?: {
|
|
671
529
|
/**
|
|
672
530
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -682,11 +540,13 @@ export interface Client {
|
|
|
682
540
|
simulate?: boolean;
|
|
683
541
|
}) => Promise<AssembledTransaction<null>>;
|
|
684
542
|
/**
|
|
685
|
-
* Construct and simulate a
|
|
686
|
-
* Set
|
|
543
|
+
* Construct and simulate a set_price_for_arbitrum 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.
|
|
544
|
+
* Set price for Arbitrum with extension (price updater or owner)
|
|
545
|
+
* Corresponds to setPriceForArbitrum in PriceFeed.sol
|
|
687
546
|
*/
|
|
688
|
-
|
|
689
|
-
|
|
547
|
+
set_price_for_arbitrum: ({ price_updater, update }: {
|
|
548
|
+
price_updater: string;
|
|
549
|
+
update: UpdatePriceExt;
|
|
690
550
|
}, txnOptions?: {
|
|
691
551
|
/**
|
|
692
552
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -702,11 +562,14 @@ export interface Client {
|
|
|
702
562
|
simulate?: boolean;
|
|
703
563
|
}) => Promise<AssembledTransaction<null>>;
|
|
704
564
|
/**
|
|
705
|
-
* Construct and simulate a
|
|
706
|
-
* Set the
|
|
565
|
+
* Construct and simulate a set_native_token_price_usd 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.
|
|
566
|
+
* Set the native token price in USD (price updater or owner).
|
|
567
|
+
*
|
|
568
|
+
* Kept as a standalone contract function (not part of the canonical `fee_lib_interfaces::ILayerZeroPriceFeed` interface).
|
|
707
569
|
*/
|
|
708
|
-
|
|
709
|
-
|
|
570
|
+
set_native_token_price_usd: ({ price_updater, native_token_price_usd }: {
|
|
571
|
+
price_updater: string;
|
|
572
|
+
native_token_price_usd: u128;
|
|
710
573
|
}, txnOptions?: {
|
|
711
574
|
/**
|
|
712
575
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -722,11 +585,11 @@ export interface Client {
|
|
|
722
585
|
simulate?: boolean;
|
|
723
586
|
}) => Promise<AssembledTransaction<null>>;
|
|
724
587
|
/**
|
|
725
|
-
* Construct and simulate a
|
|
726
|
-
*
|
|
588
|
+
* Construct and simulate a is_price_updater 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.
|
|
589
|
+
* Check if an address is an active price updater
|
|
727
590
|
*/
|
|
728
|
-
|
|
729
|
-
|
|
591
|
+
is_price_updater: ({ updater }: {
|
|
592
|
+
updater: string;
|
|
730
593
|
}, txnOptions?: {
|
|
731
594
|
/**
|
|
732
595
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -740,15 +603,12 @@ export interface Client {
|
|
|
740
603
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
741
604
|
*/
|
|
742
605
|
simulate?: boolean;
|
|
743
|
-
}) => Promise<AssembledTransaction<
|
|
606
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
744
607
|
/**
|
|
745
|
-
* Construct and simulate a
|
|
746
|
-
*
|
|
608
|
+
* Construct and simulate a arbitrum_compression_percent 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.
|
|
609
|
+
* Get the Arbitrum compression percent
|
|
747
610
|
*/
|
|
748
|
-
|
|
749
|
-
price_updater: string;
|
|
750
|
-
prices: Array<UpdatePrice>;
|
|
751
|
-
}, txnOptions?: {
|
|
611
|
+
arbitrum_compression_percent: (txnOptions?: {
|
|
752
612
|
/**
|
|
753
613
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
754
614
|
*/
|
|
@@ -761,16 +621,12 @@ export interface Client {
|
|
|
761
621
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
762
622
|
*/
|
|
763
623
|
simulate?: boolean;
|
|
764
|
-
}) => Promise<AssembledTransaction<
|
|
624
|
+
}) => Promise<AssembledTransaction<u128>>;
|
|
765
625
|
/**
|
|
766
|
-
* Construct and simulate a
|
|
767
|
-
*
|
|
768
|
-
* Corresponds to setPriceForArbitrum in PriceFeed.sol
|
|
626
|
+
* Construct and simulate a arbitrum_price_ext 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.
|
|
627
|
+
* Get the Arbitrum price extension
|
|
769
628
|
*/
|
|
770
|
-
|
|
771
|
-
price_updater: string;
|
|
772
|
-
update: UpdatePriceExt;
|
|
773
|
-
}, txnOptions?: {
|
|
629
|
+
arbitrum_price_ext: (txnOptions?: {
|
|
774
630
|
/**
|
|
775
631
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
776
632
|
*/
|
|
@@ -783,16 +639,13 @@ export interface Client {
|
|
|
783
639
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
784
640
|
*/
|
|
785
641
|
simulate?: boolean;
|
|
786
|
-
}) => Promise<AssembledTransaction<
|
|
642
|
+
}) => Promise<AssembledTransaction<ArbitrumPriceExt>>;
|
|
787
643
|
/**
|
|
788
|
-
* Construct and simulate a
|
|
789
|
-
*
|
|
790
|
-
*
|
|
791
|
-
* Kept as a standalone contract function (not part of the canonical `worker::ILayerZeroPriceFeed` interface).
|
|
644
|
+
* Construct and simulate a eid_to_model_type 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.
|
|
645
|
+
* Get the model type for a destination EID
|
|
792
646
|
*/
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
native_token_price_usd: u128;
|
|
647
|
+
eid_to_model_type: ({ dst_eid }: {
|
|
648
|
+
dst_eid: u32;
|
|
796
649
|
}, txnOptions?: {
|
|
797
650
|
/**
|
|
798
651
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -806,13 +659,17 @@ export interface Client {
|
|
|
806
659
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
807
660
|
*/
|
|
808
661
|
simulate?: boolean;
|
|
809
|
-
}) => Promise<AssembledTransaction<
|
|
662
|
+
}) => Promise<AssembledTransaction<ModelType>>;
|
|
810
663
|
/**
|
|
811
|
-
* Construct and simulate a
|
|
812
|
-
*
|
|
664
|
+
* Construct and simulate a estimate_fee_by_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.
|
|
665
|
+
* Estimate fee with detailed breakdown by endpoint ID
|
|
666
|
+
* Corresponds to estimateFeeByEid in PriceFeed.sol
|
|
813
667
|
*/
|
|
814
|
-
|
|
815
|
-
|
|
668
|
+
estimate_fee_by_eid: ({ fee_lib, dst_eid, calldata_size, gas }: {
|
|
669
|
+
fee_lib: string;
|
|
670
|
+
dst_eid: u32;
|
|
671
|
+
calldata_size: u32;
|
|
672
|
+
gas: u128;
|
|
816
673
|
}, txnOptions?: {
|
|
817
674
|
/**
|
|
818
675
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -826,12 +683,12 @@ export interface Client {
|
|
|
826
683
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
827
684
|
*/
|
|
828
685
|
simulate?: boolean;
|
|
829
|
-
}) => Promise<AssembledTransaction<
|
|
686
|
+
}) => Promise<AssembledTransaction<FeeEstimate>>;
|
|
830
687
|
/**
|
|
831
|
-
* Construct and simulate a
|
|
832
|
-
* Get the
|
|
688
|
+
* Construct and simulate a native_token_price_usd 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.
|
|
689
|
+
* Get the native token price in USD
|
|
833
690
|
*/
|
|
834
|
-
|
|
691
|
+
native_token_price_usd: (txnOptions?: {
|
|
835
692
|
/**
|
|
836
693
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
837
694
|
*/
|
|
@@ -846,10 +703,12 @@ export interface Client {
|
|
|
846
703
|
simulate?: boolean;
|
|
847
704
|
}) => Promise<AssembledTransaction<u128>>;
|
|
848
705
|
/**
|
|
849
|
-
* Construct and simulate a
|
|
850
|
-
* Get the
|
|
706
|
+
* Construct and simulate a get_price 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.
|
|
707
|
+
* Get the price for a destination EID.
|
|
851
708
|
*/
|
|
852
|
-
|
|
709
|
+
get_price: ({ dst_eid }: {
|
|
710
|
+
dst_eid: u32;
|
|
711
|
+
}, txnOptions?: {
|
|
853
712
|
/**
|
|
854
713
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
855
714
|
*/
|
|
@@ -862,14 +721,12 @@ export interface Client {
|
|
|
862
721
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
863
722
|
*/
|
|
864
723
|
simulate?: boolean;
|
|
865
|
-
}) => Promise<AssembledTransaction<
|
|
724
|
+
}) => Promise<AssembledTransaction<Option<Price>>>;
|
|
866
725
|
/**
|
|
867
|
-
* Construct and simulate a
|
|
868
|
-
* Get the
|
|
726
|
+
* Construct and simulate a get_price_ratio_denominator 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.
|
|
727
|
+
* Get the price ratio denominator.
|
|
869
728
|
*/
|
|
870
|
-
|
|
871
|
-
dst_eid: u32;
|
|
872
|
-
}, txnOptions?: {
|
|
729
|
+
get_price_ratio_denominator: (txnOptions?: {
|
|
873
730
|
/**
|
|
874
731
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
875
732
|
*/
|
|
@@ -882,25 +739,15 @@ export interface Client {
|
|
|
882
739
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
883
740
|
*/
|
|
884
741
|
simulate?: boolean;
|
|
885
|
-
}) => Promise<AssembledTransaction<
|
|
742
|
+
}) => Promise<AssembledTransaction<u128>>;
|
|
886
743
|
/**
|
|
887
|
-
* Construct and simulate a
|
|
888
|
-
*
|
|
889
|
-
*
|
|
890
|
-
*
|
|
891
|
-
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
892
|
-
*
|
|
893
|
-
* # Arguments
|
|
894
|
-
* - `instance` - TTL config for instance storage
|
|
895
|
-
* - `persistent` - TTL config for persistent storage
|
|
896
|
-
*
|
|
897
|
-
* # Panics
|
|
898
|
-
* - `TtlConfigFrozen` if configs are frozen
|
|
899
|
-
* - `InvalidTtlConfig` if validation fails
|
|
744
|
+
* Construct and simulate a upgrade 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.
|
|
745
|
+
* The type of data required for migration.
|
|
746
|
+
* Upgrades the contract to new WASM bytecode.
|
|
747
|
+
* Sets a migration flag that must be cleared by calling `migrate`.
|
|
900
748
|
*/
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
persistent: Option<TtlConfig>;
|
|
749
|
+
upgrade: ({ new_wasm_hash }: {
|
|
750
|
+
new_wasm_hash: Buffer;
|
|
904
751
|
}, txnOptions?: {
|
|
905
752
|
/**
|
|
906
753
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -916,10 +763,13 @@ export interface Client {
|
|
|
916
763
|
simulate?: boolean;
|
|
917
764
|
}) => Promise<AssembledTransaction<null>>;
|
|
918
765
|
/**
|
|
919
|
-
* Construct and simulate a
|
|
920
|
-
*
|
|
766
|
+
* Construct and simulate a migrate 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.
|
|
767
|
+
* Runs migration logic after an upgrade.
|
|
768
|
+
* Can only be called when the migration flag is set by a previous `upgrade` call.
|
|
921
769
|
*/
|
|
922
|
-
|
|
770
|
+
migrate: ({ migration_data }: {
|
|
771
|
+
migration_data: Buffer;
|
|
772
|
+
}, txnOptions?: {
|
|
923
773
|
/**
|
|
924
774
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
925
775
|
*/
|
|
@@ -932,18 +782,13 @@ export interface Client {
|
|
|
932
782
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
933
783
|
*/
|
|
934
784
|
simulate?: boolean;
|
|
935
|
-
}) => Promise<AssembledTransaction<
|
|
785
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
936
786
|
/**
|
|
937
|
-
* Construct and simulate a
|
|
938
|
-
* Permanently freezes
|
|
939
|
-
*
|
|
940
|
-
* This is irreversible and provides immutability guarantees to users.
|
|
941
|
-
* Emits `TtlConfigsFrozen` event.
|
|
942
|
-
*
|
|
943
|
-
* # Panics
|
|
944
|
-
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
787
|
+
* Construct and simulate a freeze 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.
|
|
788
|
+
* Permanently freezes the contract, preventing any future upgrades.
|
|
789
|
+
* This action is irreversible.
|
|
945
790
|
*/
|
|
946
|
-
|
|
791
|
+
freeze: (txnOptions?: {
|
|
947
792
|
/**
|
|
948
793
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
949
794
|
*/
|
|
@@ -958,10 +803,10 @@ export interface Client {
|
|
|
958
803
|
simulate?: boolean;
|
|
959
804
|
}) => Promise<AssembledTransaction<null>>;
|
|
960
805
|
/**
|
|
961
|
-
* Construct and simulate a
|
|
962
|
-
* Returns whether
|
|
806
|
+
* Construct and simulate a is_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.
|
|
807
|
+
* Returns whether the contract is frozen (upgrades disabled).
|
|
963
808
|
*/
|
|
964
|
-
|
|
809
|
+
is_frozen: (txnOptions?: {
|
|
965
810
|
/**
|
|
966
811
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
967
812
|
*/
|
|
@@ -976,18 +821,9 @@ export interface Client {
|
|
|
976
821
|
simulate?: boolean;
|
|
977
822
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
978
823
|
/**
|
|
979
|
-
* Construct and simulate a
|
|
980
|
-
* Extends the instance TTL.
|
|
981
|
-
*
|
|
982
|
-
* # Arguments
|
|
983
|
-
*
|
|
984
|
-
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
985
|
-
* * `extend_to` - The TTL to extend to.
|
|
824
|
+
* 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.
|
|
986
825
|
*/
|
|
987
|
-
|
|
988
|
-
threshold: u32;
|
|
989
|
-
extend_to: u32;
|
|
990
|
-
}, txnOptions?: {
|
|
826
|
+
authorizer: (txnOptions?: {
|
|
991
827
|
/**
|
|
992
828
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
993
829
|
*/
|
|
@@ -1000,7 +836,7 @@ export interface Client {
|
|
|
1000
836
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1001
837
|
*/
|
|
1002
838
|
simulate?: boolean;
|
|
1003
|
-
}) => Promise<AssembledTransaction<
|
|
839
|
+
}) => Promise<AssembledTransaction<string>>;
|
|
1004
840
|
/**
|
|
1005
841
|
* 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.
|
|
1006
842
|
* Returns the current owner address, or None if no owner is set.
|
|
@@ -1144,6 +980,124 @@ export interface Client {
|
|
|
1144
980
|
*/
|
|
1145
981
|
simulate?: boolean;
|
|
1146
982
|
}) => Promise<AssembledTransaction<null>>;
|
|
983
|
+
/**
|
|
984
|
+
* 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.
|
|
985
|
+
* Extends the instance TTL.
|
|
986
|
+
*
|
|
987
|
+
* # Arguments
|
|
988
|
+
*
|
|
989
|
+
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
990
|
+
* * `extend_to` - The TTL to extend to.
|
|
991
|
+
*/
|
|
992
|
+
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
993
|
+
threshold: u32;
|
|
994
|
+
extend_to: u32;
|
|
995
|
+
}, txnOptions?: {
|
|
996
|
+
/**
|
|
997
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
998
|
+
*/
|
|
999
|
+
fee?: number;
|
|
1000
|
+
/**
|
|
1001
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1002
|
+
*/
|
|
1003
|
+
timeoutInSeconds?: number;
|
|
1004
|
+
/**
|
|
1005
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1006
|
+
*/
|
|
1007
|
+
simulate?: boolean;
|
|
1008
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1009
|
+
/**
|
|
1010
|
+
* 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.
|
|
1011
|
+
* Sets TTL configs for instance and persistent storage.
|
|
1012
|
+
*
|
|
1013
|
+
* - `None` values remove the corresponding config (disables auto-extension for that type)
|
|
1014
|
+
* - Validates that `threshold <= extend_to <= MAX_TTL`
|
|
1015
|
+
*
|
|
1016
|
+
* # Arguments
|
|
1017
|
+
* - `instance` - TTL config for instance storage
|
|
1018
|
+
* - `persistent` - TTL config for persistent storage
|
|
1019
|
+
*
|
|
1020
|
+
* # Panics
|
|
1021
|
+
* - `TtlConfigFrozen` if configs are frozen
|
|
1022
|
+
* - `InvalidTtlConfig` if validation fails
|
|
1023
|
+
*/
|
|
1024
|
+
set_ttl_configs: ({ instance, persistent }: {
|
|
1025
|
+
instance: Option<TtlConfig>;
|
|
1026
|
+
persistent: Option<TtlConfig>;
|
|
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<null>>;
|
|
1041
|
+
/**
|
|
1042
|
+
* 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.
|
|
1043
|
+
* Returns the current TTL configs as (instance_config, persistent_config).
|
|
1044
|
+
*/
|
|
1045
|
+
ttl_configs: (txnOptions?: {
|
|
1046
|
+
/**
|
|
1047
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1048
|
+
*/
|
|
1049
|
+
fee?: number;
|
|
1050
|
+
/**
|
|
1051
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1052
|
+
*/
|
|
1053
|
+
timeoutInSeconds?: number;
|
|
1054
|
+
/**
|
|
1055
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1056
|
+
*/
|
|
1057
|
+
simulate?: boolean;
|
|
1058
|
+
}) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
|
|
1059
|
+
/**
|
|
1060
|
+
* 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.
|
|
1061
|
+
* Permanently freezes TTL configs, preventing any future modifications.
|
|
1062
|
+
*
|
|
1063
|
+
* This is irreversible and provides immutability guarantees to users.
|
|
1064
|
+
* Emits `TtlConfigsFrozen` event.
|
|
1065
|
+
*
|
|
1066
|
+
* # Panics
|
|
1067
|
+
* - `TtlConfigAlreadyFrozen` if already frozen
|
|
1068
|
+
*/
|
|
1069
|
+
freeze_ttl_configs: (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>>;
|
|
1083
|
+
/**
|
|
1084
|
+
* 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.
|
|
1085
|
+
* Returns whether TTL configs are frozen.
|
|
1086
|
+
*/
|
|
1087
|
+
is_ttl_configs_frozen: (txnOptions?: {
|
|
1088
|
+
/**
|
|
1089
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1090
|
+
*/
|
|
1091
|
+
fee?: number;
|
|
1092
|
+
/**
|
|
1093
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1094
|
+
*/
|
|
1095
|
+
timeoutInSeconds?: number;
|
|
1096
|
+
/**
|
|
1097
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1098
|
+
*/
|
|
1099
|
+
simulate?: boolean;
|
|
1100
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1147
1101
|
}
|
|
1148
1102
|
export declare class Client extends ContractClient {
|
|
1149
1103
|
readonly options: ContractClientOptions;
|
|
@@ -1164,13 +1118,6 @@ export declare class Client extends ContractClient {
|
|
|
1164
1118
|
}): Promise<AssembledTransaction<T>>;
|
|
1165
1119
|
constructor(options: ContractClientOptions);
|
|
1166
1120
|
readonly fromJSON: {
|
|
1167
|
-
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1168
|
-
migrate: (json: string) => AssembledTransaction<null>;
|
|
1169
|
-
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1170
|
-
estimate_fee_by_eid: (json: string) => AssembledTransaction<FeeEstimate>;
|
|
1171
|
-
native_token_price_usd: (json: string) => AssembledTransaction<bigint>;
|
|
1172
|
-
get_price: (json: string) => AssembledTransaction<Option<Price>>;
|
|
1173
|
-
get_price_ratio_denominator: (json: string) => AssembledTransaction<bigint>;
|
|
1174
1121
|
set_price_updater: (json: string) => AssembledTransaction<null>;
|
|
1175
1122
|
set_price_ratio_denominator: (json: string) => AssembledTransaction<null>;
|
|
1176
1123
|
set_arbitrum_compression_percent: (json: string) => AssembledTransaction<null>;
|
|
@@ -1182,16 +1129,25 @@ export declare class Client extends ContractClient {
|
|
|
1182
1129
|
arbitrum_compression_percent: (json: string) => AssembledTransaction<bigint>;
|
|
1183
1130
|
arbitrum_price_ext: (json: string) => AssembledTransaction<ArbitrumPriceExt>;
|
|
1184
1131
|
eid_to_model_type: (json: string) => AssembledTransaction<ModelType>;
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1132
|
+
estimate_fee_by_eid: (json: string) => AssembledTransaction<FeeEstimate>;
|
|
1133
|
+
native_token_price_usd: (json: string) => AssembledTransaction<bigint>;
|
|
1134
|
+
get_price: (json: string) => AssembledTransaction<Option<Price>>;
|
|
1135
|
+
get_price_ratio_denominator: (json: string) => AssembledTransaction<bigint>;
|
|
1136
|
+
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1137
|
+
migrate: (json: string) => AssembledTransaction<null>;
|
|
1138
|
+
freeze: (json: string) => AssembledTransaction<null>;
|
|
1139
|
+
is_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1140
|
+
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1190
1141
|
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1191
1142
|
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1192
1143
|
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1193
1144
|
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1194
1145
|
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1195
1146
|
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1147
|
+
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1148
|
+
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1149
|
+
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1150
|
+
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1151
|
+
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1196
1152
|
};
|
|
1197
1153
|
}
|