@layerzerolabs/protocol-stellar-v2 0.2.15 → 0.2.19
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 +365 -297
- package/.turbo/turbo-lint.log +142 -110
- package/.turbo/turbo-test.log +1273 -1222
- package/Cargo.lock +20 -5
- package/Cargo.toml +4 -1
- package/contracts/ERROR_SPEC.md +44 -0
- package/contracts/common-macros/src/auth.rs +113 -0
- package/contracts/common-macros/src/contract_ttl.rs +84 -0
- package/contracts/common-macros/src/lib.rs +181 -30
- package/contracts/common-macros/src/lz_contract.rs +83 -0
- package/contracts/common-macros/src/tests/{ownable.rs → auth.rs} +48 -15
- package/contracts/common-macros/src/tests/contract_ttl.rs +662 -0
- package/contracts/common-macros/src/tests/mod.rs +2 -2
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +24 -0
- package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__ownable__snapshot_only_owner_preserves_function_signature.snap → common_macros__tests__auth__snapshot_only_auth_preserves_function_signature.snap} +4 -4
- package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__contract_impl__snapshot_generated_contract_impl_code.snap → common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap} +3 -3
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +69 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +7 -21
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +2 -2
- package/contracts/common-macros/src/ttl_configurable.rs +19 -34
- package/contracts/common-macros/src/ttl_extendable.rs +36 -0
- package/contracts/common-macros/src/upgradeable.rs +5 -5
- package/contracts/common-macros/src/utils.rs +9 -0
- package/contracts/endpoint-v2/src/constants.rs +4 -4
- package/contracts/endpoint-v2/src/endpoint_v2.rs +38 -40
- package/contracts/endpoint-v2/src/errors.rs +4 -3
- package/contracts/endpoint-v2/src/events.rs +1 -1
- package/contracts/endpoint-v2/src/message_lib_manager.rs +18 -5
- package/contracts/endpoint-v2/src/messaging_channel.rs +11 -1
- package/contracts/endpoint-v2/src/messaging_composer.rs +11 -1
- package/contracts/endpoint-v2/src/storage.rs +1 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +3 -3
- package/contracts/endpoint-v2/src/tests/endpoint_v2/quote.rs +1 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +3 -3
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +3 -3
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +1 -1
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +3 -3
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +1 -1
- package/contracts/endpoint-v2/src/tests/messaging_channel/clear_payload.rs +4 -4
- package/contracts/endpoint-v2/src/tests/messaging_channel/inbound.rs +1 -1
- package/contracts/layerzero-views/src/layerzero_view.rs +3 -6
- package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +2 -2
- package/contracts/macro-integration-tests/tests/runtime/ownable/{only_owner_guard.rs → only_auth_guard.rs} +1 -1
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +1 -1
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +1 -1
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +0 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.rs → only_auth_missing_env.rs} +3 -3
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.stderr → only_auth_missing_env.stderr} +4 -4
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +2 -3
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/{only_owner_env_param_variants.rs → only_auth_env_param_variants.rs} +9 -9
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/minimal_contract.rs +6 -6
- package/contracts/message-libs/message-lib-common/src/errors.rs +7 -2
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +3 -3
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +1 -2
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +1 -2
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +9 -9
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +1 -1
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +1 -1
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/split_worker_options.rs +2 -2
- package/contracts/message-libs/simple-message-lib/src/simple_message_lib.rs +7 -9
- package/contracts/message-libs/treasury/src/errors.rs +2 -2
- package/contracts/message-libs/treasury/src/events.rs +1 -1
- package/contracts/message-libs/treasury/src/interfaces/zro_fee_lib.rs +2 -2
- package/contracts/message-libs/treasury/src/storage.rs +1 -1
- package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +1 -1
- package/contracts/message-libs/treasury/src/treasury.rs +14 -16
- package/contracts/message-libs/uln-302/src/receive_uln.rs +13 -2
- package/contracts/message-libs/uln-302/src/send_uln.rs +24 -4
- package/contracts/message-libs/uln-302/src/uln302.rs +6 -24
- package/contracts/oapps/counter/Cargo.toml +14 -1
- package/contracts/oapps/counter/integration_tests/mod.rs +4 -1
- package/contracts/oapps/counter/integration_tests/{setup.rs → setup_sml.rs} +48 -80
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +997 -0
- package/contracts/oapps/counter/integration_tests/signing.rs +62 -0
- package/contracts/oapps/counter/integration_tests/test_with_sml.rs +24 -55
- package/contracts/oapps/counter/integration_tests/test_with_uln.rs +314 -0
- package/contracts/oapps/counter/integration_tests/utils.rs +196 -53
- package/contracts/oapps/counter/src/counter.rs +67 -43
- package/contracts/oapps/counter/src/tests/mod.rs +0 -13
- package/contracts/oapps/counter/src/tests/test_counter.rs +5 -7
- package/contracts/oapps/oapp/src/errors.rs +5 -1
- package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +93 -78
- package/contracts/oapps/oapp/src/oapp_core.rs +36 -21
- package/contracts/oapps/oapp/src/oapp_options_type3.rs +48 -12
- package/contracts/oapps/oapp/src/oapp_receiver.rs +106 -41
- package/contracts/oapps/oapp/src/oapp_sender.rs +26 -34
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +9 -8
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +25 -17
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +7 -7
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +14 -15
- package/contracts/oapps/oapp-macros/src/generators.rs +128 -0
- package/contracts/oapps/oapp-macros/src/lib.rs +113 -56
- package/contracts/oapps/oft/Cargo.toml +10 -7
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
- package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
- package/contracts/oapps/oft/integration-tests/setup.rs +29 -110
- package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +13 -14
- package/contracts/oapps/oft/src/extensions/pausable.rs +4 -4
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +5 -5
- package/contracts/oapps/oft/src/lib.rs +11 -13
- package/contracts/oapps/oft/src/oft.rs +147 -225
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -13
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +31 -14
- package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
- package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +129 -30
- package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
- package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
- package/contracts/oapps/oft-core/src/errors.rs +13 -0
- package/contracts/oapps/oft-core/src/lib.rs +18 -0
- package/contracts/oapps/oft-core/src/oft_core.rs +439 -0
- package/contracts/oapps/{oft → oft-core}/src/storage.rs +2 -0
- package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
- package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +2 -2
- package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
- package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -5
- package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
- package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +78 -37
- package/contracts/oapps/oft-core/src/types.rs +58 -0
- package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
- package/contracts/upgrader/src/lib.rs +4 -4
- package/contracts/utils/src/auth.rs +44 -0
- package/contracts/utils/src/errors.rs +31 -5
- package/contracts/utils/src/lib.rs +3 -0
- package/contracts/utils/src/multisig.rs +211 -0
- package/contracts/utils/src/ownable.rs +137 -13
- package/contracts/utils/src/tests/buffer_reader.rs +6 -6
- package/contracts/utils/src/tests/buffer_writer.rs +6 -6
- package/contracts/utils/src/tests/bytes_ext.rs +2 -4
- package/contracts/utils/src/tests/mod.rs +1 -0
- package/contracts/utils/src/tests/multisig.rs +731 -0
- package/contracts/utils/src/tests/option_ext.rs +2 -5
- package/contracts/utils/src/tests/ownable.rs +456 -7
- package/contracts/utils/src/tests/ttl_configurable.rs +27 -16
- package/contracts/utils/src/tests/upgradeable.rs +4 -2
- package/contracts/utils/src/ttl_configurable.rs +23 -8
- package/contracts/utils/src/ttl_extendable.rs +27 -0
- package/contracts/utils/src/upgradeable.rs +2 -0
- package/contracts/workers/dvn/Cargo.toml +1 -1
- package/contracts/workers/dvn/src/auth.rs +7 -7
- package/contracts/workers/dvn/src/dvn.rs +10 -38
- package/contracts/workers/dvn/src/errors.rs +0 -7
- package/contracts/workers/dvn/src/events.rs +1 -14
- package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
- package/contracts/workers/dvn/src/interfaces/mod.rs +0 -2
- package/contracts/workers/dvn/src/storage.rs +3 -13
- package/contracts/workers/dvn/src/tests/auth.rs +4 -4
- package/contracts/workers/dvn/src/tests/dvn.rs +1 -2
- package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +7 -8
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +11 -8
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +11 -12
- package/contracts/workers/dvn/src/tests/setup.rs +5 -5
- package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -6
- package/contracts/workers/executor/src/auth.rs +80 -16
- package/contracts/workers/executor/src/executor.rs +5 -31
- package/contracts/workers/executor/src/storage.rs +2 -9
- package/contracts/workers/executor-fee-lib/Cargo.toml +1 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +3 -6
- package/contracts/workers/executor-helper/Cargo.toml +1 -1
- package/contracts/workers/executor-helper/src/executor_helper.rs +53 -73
- package/contracts/workers/price-feed/Cargo.toml +1 -1
- package/contracts/workers/price-feed/src/price_feed.rs +7 -10
- package/contracts/workers/worker/src/errors.rs +4 -0
- package/contracts/workers/worker/src/tests/worker.rs +7 -6
- package/contracts/workers/worker/src/worker.rs +20 -16
- package/package.json +7 -5
- package/sdk/.turbo/turbo-build.log +1 -0
- package/sdk/.turbo/turbo-test.log +1019 -0
- package/sdk/dist/generated/bml.d.ts +95 -8
- package/sdk/dist/generated/bml.js +95 -36
- package/sdk/dist/generated/counter.d.ts +289 -44
- package/sdk/dist/generated/counter.js +119 -49
- package/sdk/dist/generated/dvn.d.ts +312 -229
- package/sdk/dist/generated/dvn.js +144 -83
- package/sdk/dist/generated/dvn_fee_lib.d.ts +258 -63
- package/sdk/dist/generated/dvn_fee_lib.js +95 -26
- package/sdk/dist/generated/endpoint.d.ts +219 -24
- package/sdk/dist/generated/endpoint.js +108 -41
- package/sdk/dist/generated/executor.d.ts +239 -87
- package/sdk/dist/generated/executor.js +135 -63
- package/sdk/dist/generated/executor_fee_lib.d.ts +278 -74
- package/sdk/dist/generated/executor_fee_lib.js +135 -59
- package/sdk/dist/generated/executor_helper.d.ts +163 -21
- package/sdk/dist/generated/executor_helper.js +124 -52
- package/sdk/dist/generated/oft.d.ts +1842 -0
- package/sdk/dist/generated/oft.js +345 -0
- package/sdk/dist/generated/price_feed.d.ts +258 -63
- package/sdk/dist/generated/price_feed.js +95 -26
- package/sdk/dist/generated/sml.d.ts +235 -34
- package/sdk/dist/generated/sml.js +126 -53
- package/sdk/dist/generated/treasury.d.ts +1016 -0
- package/sdk/dist/generated/treasury.js +248 -0
- package/sdk/dist/generated/uln302.d.ts +235 -34
- package/sdk/dist/generated/uln302.js +126 -53
- package/sdk/dist/generated/upgrader.d.ts +17 -2
- package/sdk/dist/generated/upgrader.js +19 -1
- package/sdk/dist/index.d.ts +2 -1
- package/sdk/dist/index.js +2 -1
- package/sdk/package.json +6 -3
- package/sdk/src/index.ts +2 -1
- package/sdk/test/counter-sml.test.ts +376 -0
- package/sdk/test/counter-uln.test.ts +493 -0
- package/sdk/test/{oft.test.ts → oft-sml.test.ts} +196 -321
- package/sdk/test/suites/constants.ts +22 -2
- package/sdk/test/suites/globalSetup.ts +450 -0
- package/sdk/test/suites/localnet.ts +23 -6
- package/sdk/test/upgrader.test.ts +7 -16
- package/sdk/test/utils.ts +558 -85
- package/sdk/turbo.json +8 -0
- package/sdk/vitest.config.ts +21 -0
- package/tools/ts-bindings-gen/Cargo.toml +2 -0
- package/tools/ts-bindings-gen/src/main.rs +52 -4
- package/contracts/common-macros/src/contract_impl.rs +0 -52
- package/contracts/common-macros/src/ownable.rs +0 -41
- package/contracts/common-macros/src/tests/contract_impl.rs +0 -386
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ownable__snapshot_generated_ownable_code.snap +0 -12
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/extend_instance_ttl.rs +0 -50
- package/contracts/oapps/oapp-macros/src/oapp_core.rs +0 -41
- package/contracts/oapps/oapp-macros/src/oapp_full.rs +0 -21
- package/contracts/oapps/oapp-macros/src/oapp_options_type3.rs +0 -31
- package/contracts/oapps/oapp-macros/src/oapp_receiver.rs +0 -48
- package/contracts/oapps/oapp-macros/src/oapp_sender.rs +0 -21
- package/contracts/oapps/oapp-macros/src/util.rs +0 -107
- package/contracts/oapps/oft/src/constants.rs +0 -5
- package/contracts/oapps/oft/src/default_oft_impl.rs +0 -152
- package/contracts/oapps/oft/src/errors.rs +0 -8
- package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
- package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
- package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -903
- package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -749
- package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -432
- package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1078
- package/contracts/oapps/oft/src/types.rs +0 -38
- package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
- package/contracts/oapps/oft-std/src/lib.rs +0 -16
- package/contracts/oapps/oft-std/src/oft.rs +0 -156
- package/contracts/workers/dvn/src/interfaces/multisig.rs +0 -56
- package/contracts/workers/dvn/src/multisig.rs +0 -157
- package/sdk/dist/generated/oft_std.d.ts +0 -1544
- package/sdk/dist/generated/oft_std.js +0 -271
- package/sdk/test/index.test.ts +0 -375
- /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
- /package/sdk/test/suites/{testUpgradeable.ts → dummyContractClient.ts} +0 -0
|
@@ -5,6 +5,21 @@ 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
7
|
export type MigrationData = void;
|
|
8
|
+
/**
|
|
9
|
+
* Embedded WASM bytecode (base64-encoded)
|
|
10
|
+
* Size: 56028 bytes (54.71 KB)
|
|
11
|
+
*/
|
|
12
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAABsAEdYAR+fn5+AX5gAn5+AX5gAX4BfmAAAX5gA35+fgF+YAN/f38AYAJ/fwF+YAJ+fgF/YAN/fn4AYAAAYAABf2ABfwBgAn9/AGABfwF+YAJ+fwBgAX4AYAJ/fgBgBH9/f38BfmABfgF/YAF/AX9gBX5/f39/AGACf38Bf2ADf39+AGAFfn5+fn4BfmAFf35/f34AYAh+fn5+fn5+fgF+YAJ+fgBgA35/fwF+YAN/f38BfwL9ASoBbAE3AAABbAExAAEBYQEwAAIBdgEzAAIBdgFkAAEBdgEyAAEBdgE2AAEBeAExAAEBdgFfAAMBdgExAAEBYgE4AAIBYgEzAAEBYgFlAAEBYgEwAAIBYwEwAAQBdgE4AAIBdgE5AAIBbAEyAAEBbAFfAAQBeAE3AAMBZAFfAAQBZAEwAAQBbAE2AAIBaQEwAAIBbQFhAAABdgFnAAEBYgFtAAQBaQE4AAIBaQE3AAIBaQE2AAEBaQFfAAIBYgFqAAEBbQE5AAQBeAEwAAEBeAEzAAMBeAE4AAMBbAEwAAEBbAE4AAEBeAE1AAIBaQEzAAEBaQE1AAIBaQE0AAIDogGgAQUGBwcHBwgJCgsMDQcDAwMLDgkLDw0LBRAIDgMQEAsFAhEPEg4DBgMMDgwKDBITAwMSChIKDRIMEBQQEAwIEAgQBBAMAhUQEBADAgkCFgEBCwsBAQsBDwQBDwEPDwIDAwIDAgICAwMDAwIDFxgIFwEMBgECFwMZDwABAgsCAwMBEAoFDQMMAwMBAwEDAhoBCQgDAwkQExsFEBAFDAwQHBwEBQFwAQEBBQMBABEGIQR/AUGAgMAAC38AQeCDwAALfwBBgI3AAAt/AEGAjcAACwf6BjMGbWVtb3J5AgAMX19jaGVja19hdXRoAGsKc2V0X3BhdXNlZAB2GXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAeA1zZXRfYWxsb3dsaXN0AHkMc2V0X2RlbnlsaXN0AHwac2V0X2RlZmF1bHRfbXVsdGlwbGllcl9icHMAfRNzZXRfZGVwb3NpdF9hZGRyZXNzAH8ac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAgQESc2V0X3dvcmtlcl9mZWVfbGliAIIBDnNldF9wcmljZV9mZWVkAIQBCGlzX2FkbWluAIcBBmFkbWlucwCIAQZwYXVzZWQAiQEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAIoBDG1lc3NhZ2VfbGlicwCLAQ9pc19vbl9hbGxvd2xpc3QAjAEOaXNfb25fZGVueWxpc3QAjQEHaGFzX2FjbACOAQ5hbGxvd2xpc3Rfc2l6ZQCPARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJABD2RlcG9zaXRfYWRkcmVzcwCRAQpwcmljZV9mZWVkAJIBGmdldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAJMBDndvcmtlcl9mZWVfbGliAJQBCmFzc2lnbl9qb2IAlQEHZ2V0X2ZlZQCYAQ5zZXRfZHN0X2NvbmZpZwCcAQpkc3RfY29uZmlnAJ0BC25hdGl2ZV9kcm9wAJ4BCGVuZHBvaW50AJ8BDV9fY29uc3RydWN0b3IAoAEOd2l0aGRyYXdfdG9rZW4AogEJc2V0X2FkbWluAKMBB3VwZ3JhZGUApAEHbWlncmF0ZQCmAQphdXRob3JpemVyAKgBD3NldF90dGxfY29uZmlncwCpAQt0dGxfY29uZmlncwCuARJmcmVlemVfdHRsX2NvbmZpZ3MAsAEVaXNfdHRsX2NvbmZpZ3NfZnJvemVuALEBE2V4dGVuZF9pbnN0YW5jZV90dGwAsgEFb3duZXIAswENcGVuZGluZ19vd25lcgC1ARJ0cmFuc2Zlcl9vd25lcnNoaXAAtgEacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAuAEQYWNjZXB0X293bmVyc2hpcAC7ARJyZW5vdW5jZV9vd25lcnNoaXAAvAEBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCr6qAaABJwBBACAAEKuAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC5sBAgF/AX4jgICAgABBEGsiAiSAgICAAAJAAkACQAJAIABBAXFFDQAgAkGNg8CAAEEIEMGAgIAAIAIoAgANAiACIAIpAwgQwoCAgAAMAQsgAkGEg8CAAEEJEMGAgIAAIAIoAgANASACIAIpAwggAa1CIIZCBIQQw4CAgAALIAIpAwghAyACKQMAUA0BCwALIAJBEGokgICAgAAgAwsPACAAIAEQrYCAgABBAXMLogEBA38jgICAgABBEGsiAiSAgICAAAJAAkACQCAAQv8Bg0IOUg0AIAFC/wGDQg5RDQELIAAgARChgICAAFAhAwwBCyACIAFCCIg3AwggAiAAQgiINwMAAkADQCACEL+BgIAAIQMgAkEIahC/gYCAACEEIANBgIDEAEYNASADIARGDQALQQAhAwwBCyAEQYCAxABGIQMLIAJBEGokgICAgAAgAwsPACAAIAEQr4CAgABBAXMLDQAgACABEKGAgIAAUAs3AQF+QgAhAwJAAkAgAUICUQ0AIAGnQQFxDQEgACACNwMIQgEhAwsgACADNwMADwsQsYCAgAAACwkAEL2BgIAAAAuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCzgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtICAgAALQQAhAQJAQQAQtYCAgAAiAkICELaAgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQsMACAAQQEQxYGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQpYCAgAAaC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUHuhsCAAEEGEMGAgIAAIAEoAgANAyABIAEpAwgQwoCAgAAMAgsgAUH0hsCAAEEIEMGAgIAAIAEoAgANAiABIAEpAwgQwoCAgAAMAQsgAUH8hsCAAEEKEMGAgIAAIAEoAgANASABIAEpAwgQwoCAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQpICAgABCAVELFQEBfhC4gICAACIAEIKAgIAAGiAAC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAACyAAELqAgIAAIAApAwghASAAKQMAQYoIELuAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAELqAgIAAIAApAwghASAAKQMAQYoIELuAgIAAIAEQgoCAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALIAAQwICAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EL6AgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABC9gICAAAJAIAApAwBQDQBCg4CAgLCBARC+gICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAAC0IAIQICQAJAQQEQv4CAgAAiA0IAELaAgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEKaAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBgYbAgABBDBDBgICAACABKAIADQIgASABKQMIEMKAgIAADAELIAFB/IXAgABBBRDBgICAACABKAIADQEgASABKQMIEMKAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQv4CAgAAiAkICELaAgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQwYGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEJuBgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCbgYCAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAv2AgMBfwF+AX8jgICAgABBMGsiAiSAgICAABDFgICAACEDAkACQAJAAkACQAJAIAENACADEIOAgIAAQv////8fWA0BIAJBCGogAyAAEISAgIAAEMaAgIAAIAIoAggiBEECRg0CIARBAXFFDQMgAigCDCIEIAMQg4CAgABCIIinTw0FIAMgBK1CIIZCBIQQhYCAgAAhAwwFCyADIAAQhICAgABCAlENA0KDgICAgJYBEL6AgIAAAAtCg4CAgMCWARC+gICAAAALELGAgIAAAAtCg4CAgJCWARC+gICAAAALIAMgABCGgICAACEDCyACQQo2AiAgAkEgaiADEMeAgIAAIAJBFGoQyICAgAACQCACKAIUQQFHDQAgAkEgaiACKAIYIAIoAhwQyYCAgAALQo7mrrnqjOTVOBDKgICAACEDIAIgADcDKCACIAGtNwMgIANBnIfAgABBAiACQSBqQQIQy4CAgAAQh4CAgAAaIAJBMGokgICAgAALrAECAX8DfiOAgICAAEEwayIAJICAgIAAIABBEGoQs4CAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELSAgIAACyAAQQo2AhAgACAAQRBqENSAgIAAAkAgACkDACIBUA0AIABBJGoQyICAgAAgACgCJEEBRw0AIABBEGogACgCKCAAKAIsEMmAgIAACyAAKQMIIQIQiICAgAAhAyAAQTBqJICAgIAAIAIgAyABpxsLPQECfwJAAkAgAUICUg0AQQAhAgwBC0EBQQIgAUL/AYNCBFEbIQIgAUIgiKchAwsgACADNgIEIAAgAjYCAAsVACAAEN+AgIAAIAFCARCSgICAABoLDAAgAEECEMWBgIAACyUAIAAQ34CAgABCASABrUIghkIEhCACrUIghkIEhBCAgICAABoLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEJuBgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQoICAgAALJwAgABCCgICAABoCQCAAEM2AgIAADQBCg4CAgPCXARC+gICAAAALC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsQxYCAgAAgABCEgICAACEAIAFBEGokgICAgAAgAEICUgvRAgMBfwJ+AX8jgICAgABBMGsiAiSAgICAABDPgICAACIDIAAQhICAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDGgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEIOAgIAAQiCIp08NBCADIAWtQiCGQgSEEIWAgIAAIQMMBAsgBEICUQ0CQoOAgIDglgEQvoCAgAAACxCxgICAAAALQoOAgIDwlgEQvoCAgAAACyADIAAQhoCAgAAhAwsgAkEGNgIgIAJBIGogAxDHgICAACACQRRqEMiAgIAAAkAgAigCFEEBRw0AIAJBIGogAigCGCACKAIcEMmAgIAAC0Gsh8CAAEEZENCAgIAAEMqAgIAAIQMgAiABrTcDKCACIAA3AyAgA0Hch8CAAEECIAJBIGpBAhDLgICAABCHgICAABogAkEwaiSAgICAAAusAQIBfwN+I4CAgIAAQTBrIgAkgICAgAAgAEEQahCzgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQtICAgAALIABBBjYCECAAIABBEGoQ1ICAgAACQCAAKQMAIgFQDQAgAEEkahDIgICAACAAKAIkQQFHDQAgAEEQaiAAKAIoIAAoAiwQyYCAgAALIAApAwghAhCIgICAACEDIABBMGokgICAgAAgAiADIAGnGwtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARDBgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLdQIBfwF+I4CAgIAAQSBrIgAkgICAgAAgAEEQahCzgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQtICAgAALIABBAjYCECAAIABBEGoQ0oCAgAAgACkDCCEBIAApAwBBvQkQ04CAgAAgAEEgaiSAgICAACABC00BAn5CACECAkACQCABEN+AgIAAIgNCAhC2gICAAEUNACADQgIQgYCAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsACykAAkAgAKdBAXFFDQAPCyABQdB2aq1CIIZCg4CAgICWAXwQvoCAgAAAC00BAn5CACECAkACQCABEN+AgIAAIgNCARC2gICAAEUNACADQgEQgYCAgAAiAkL/AYNCywBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEJNgIQIABBCGogAEEQahDWgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC1oCAX4BfwJAAkACQCABEN+AgIAAIgJCAhC2gICAAA0AQQAhAQwBCyACQgIQgYCAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQs4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELSAgIAACyABQQg2AgAgASAANwMIAkAgARDYgICAACICRQ0AIAFBFGoQyICAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEMmAgIAACyABQSBqJICAgIAAIAILEgAgABDfgICAAEIBELaAgIAAC3UCAX8BfiOAgICAAEEgayIAJICAgIAAIABBEGoQs4CAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELSAgIAACyAAQQM2AhAgACAAQRBqENKAgIAAIAApAwghASAAKQMAQcEJENOAgIAAIABBIGokgICAgAAgAQt1AgF/AX4jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEBNgIQIAAgAEEQahDSgICAACAAKQMIIQEgACkDAEG1CRDTgICAACAAQSBqJICAgIAAIAELjAEBAn8jgICAgABBIGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEHNgIAIAEgADcDCAJAIAEQ2ICAgAAiAkUNACABQRRqEMiAgIAAIAEoAhRBAUcNACABIAEoAhggASgCHBDJgICAAAsgAUEgaiSAgICAACACC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEENgIQIABBCGogAEEQahDWgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC10BAX8jgICAgABBEGsiASSAgICAACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsQz4CAgAAgABCEgICAACEAIAFBEGokgICAgAAgAEICUguPAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgABCzgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtICAgAALQQAhASAAQQA2AgACQCAAEN+AgIAAIgJCAhC2gICAAEUNAEEBIQECQAJAIAJCAhCBgICAAKdB/wFxDgIBAgALAAtBACEBCyAAQRBqJICAgIAAIAELpgQCAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIADgsAAQIDBAUGBwgJCgALIAFBgIzAgABBBhDBgICAACABKAIADQsgASABKQMIEMKAgIAADAoLIAFBhozAgABBDhDBgICAACABKAIADQogASABKQMIEMKAgIAADAkLIAFBlIzAgABBCRDBgICAACABKAIADQkgASABKQMIEMKAgIAADAgLIAFBnYzAgABBDBDBgICAACABKAIADQggASABKQMIEMKAgIAADAcLIAFBqYzAgABBFBDBgICAACABKAIADQcgASABKQMIEMKAgIAADAYLIAFBvYzAgABBFBDBgICAACABKAIADQYgASABKQMIIAA1AgRCIIZCBIQQw4CAgAAMBQsgAUHRjMCAAEELEMGAgIAAIAEoAgANBSABIAEpAwgQwoCAgAAMBAsgAUHcjMCAAEEJEMGAgIAAIAEoAgANBCABIAEpAwggACkDCBDDgICAAAwDCyABQeWMwIAAQQgQwYCAgAAgASgCAA0DIAEgASkDCCAAKQMIEMOAgIAADAILIAFB7YzAgABBDRDBgICAACABKAIADQIgASABKQMIEMKAgIAADAELIAFB+ozAgABBBhDBgICAACABKAIADQEgASABKQMIEMKAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILfAECfyOAgICAAEEQayIBJICAgIAAIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAACwJAAkAgABDXgICAAEUNAEEAIQIMAQsCQBDVgICAAA0AQQEhAgwBCyAAENuAgIAAIQILIAFBEGokgICAgAAgAgtpAgF/AX4CQCABKAIIIgIgASgCDEkNACAAQgI3AwAPCyABKQMAIAKtQiCGQgSEEImAgIAAIQMCQCACQQFqIgJFDQAgACADNwMIIAEgAjYCCCAAIANC/wGDQs0AUq03AwAPCxCxgICAAAAL3AICAn8GfiOAgICAAEHQAGsiAiSAgICAAEEAIQMCQANAIANBKEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHIgcCAAEEFIAJBCGpBBRDjgICAACACQTBqIAIpAwgQ5ICAgAAgAigCMEEBRg0AIAIpA0ghASACKQNAIQYgAkEwaiACKQMQEOWAgIAAIAIoAjANACACKQM4IQcgAkEwaiACKQMYEOWAgIAAIAIoAjANACACKQMgIghC/wGDQgRSDQAgAikDOCEJIAJBMGogAikDKBDkgICAACACKAIwQQFGDQAgAikDQCEEIAAgAikDSDcDKCAAIAQ3AyAgACABNwMYIAAgBjcDECAAIAhCIIinNgJAIAAgBzcDOCAAIAk3AzBCACEFQgAhBAsgACAFNwMAIAAgBDcDCCACQdAAaiSAgICAAAsxAAJAIAIgBEYNAAALIAAgAa1CIIZCBIQgA61CIIZCBIQgAq1CIIZCBIQQmICAgAAaC3sCAX8BfgJAAkACQCABp0H/AXEiAkHEAEYNACACQQpHDQFCACEDIABCADcDGCAAIAFCCIg3AxAMAgsgARCogICAACEDIAEQqYCAgAAhASAAIAM3AxggACABNwMQQgAhAwwBCyAAQoOQgICAATcDCEIBIQMLIAAgAzcDAAtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEJeAgIAAIQELIAAgAzcDACAAIAE3AwgL/AECAX8FfiOAgICAAEEwayICJICAgIAAIAJBCGogASkDACABKQMIEOeAgIAAQgEhAwJAIAIoAggNACACKQMQIQQgAkEIaiABKQMoEOiAgIAAIAIoAggNACACKQMQIQUgAkEIaiABKQMgEOiAgIAAIAIoAggNACACKQMQIQYgATUCMCEHIAJBCGogASkDECABKQMYEOeAgIAAIAIoAggNACACIAIpAxA3AyggAiAGNwMYIAIgBTcDECACIAQ3AwggAiAHQiCGQgSENwMgIABByIHAgABBBSACQQhqQQUQy4CAgAA3AwhCACEDCyAAIAM3AwAgAkEwaiSAgICAAAtGAAJAAkAgAUL//////////wBWIAJCAFIgAlAbDQAgAUIIhkIKhCECDAELIAIgARCngICAACECCyAAQgA3AwAgACACNwMIC0IBAX8jgICAgABBEGsiAiSAgICAACACIAEQvoGAgAAgAikDCCEBIAAgAikDADcDACAAIAE3AwggAkEQaiSAgICAAAuBAQECfyOAgICAAEEgayIDJICAgIAAAkACQCABp0EBcQ0AIABCgYCAgDA3AwAMAQsgAyACEOqAgIAAAkACQCADKAIAQQFHDQAgAEEDNgIEQQEhBAwBCyAAIAMpAxg3AxggACADKQMQNwMQQQAhBAsgACAENgIACyADQSBqJICAgIAAC30CAX8BfgJAAkACQAJAIAGnQf8BcSICQcUARg0AIAJBC0cNAiAAIAFCP4c3AxggACABQgiHNwMQDAELIAEQm4CAgAAhAyABEJyAgIAAIQEgACADNwMYIAAgATcDEAtCACEBDAELIABCg5CAgIABNwMIQgEhAQsgACABNwMAC64NBQF/AX4BfwN+AX8jgICAgABBwABrIgMkgICAgAAgA0EQaiAAEOyAgIAAAkAgAygCEEEBRg0AIAMpAxghBEEAIQUCQANAIAVBEEYNASADQTBqIAVqQgI3AwAgBUEIaiEFDAALCyABQv8Bg0LMAFINACABQfSCwIAAQQIgA0EwakECEOOAgIAAIANBEGogAykDMBDsgICAACADKAIQDQAgAykDOCIBQv8Bg0LIAFINACADKQMYIQAgARCKgICAAEKAgICAcINCgICAgIAIUg0AIAJC/wGDQssAUg0AIANBEGoQs4CAgAACQCADKAIQQQFHDQAgAygCFCADKAIYELSAgIAAC0Hgg8CAAK1CIIZCBIRChICAgMABEIuAgIAAIAAQjICAgAAQjYCAgAAiBkL/AYNCzQBSDQACQAJAIAYQzYCAgAANAEKDgICAICEBDAELIAAgBCABEI6AgIAAGgJAAkACQAJAIAIQg4CAgABC/////y9WDQAgAhCDgICAAEKAgICAEFQNACACEI+AgIAAIgFC/wGDQssAUg0FIAEQg4CAgAAhACADQQA2AgggAyABNwMAIAMgAEIgiD4CDCADQRBqIAMQ7YCAgAAgAykDECIBQgJRDQUgAadBAXENBQJAIAMpAxgiAadB/wFxIgVBygBGDQAgBUEORw0GCwJAAkACQAJAAkAgARDugICAAEIgiKcOAwABAgoLIAMoAgggAygCDBDvgICAAEEBSw0JIANBMGogAxDtgICAACADKQMwIgFCAlENCSABp0EBcQ0JIANBEGogAykDOBDwgICAACADKAIQQQFGDQkgAykDKCEGIAMpAxghACADKQMgIgFBpILAgABBEBDQgICAABCtgICAAA0DIAFBtILAgABBEBDQgICAABCtgICAAA0DAkAgAUHEgsCAAEEKENCAgIAAEKyAgIAARQ0AIAFBzoLAgABBChDQgICAABCsgICAAA0FCyAGEIOAgIAAQv////8PVg0CIANBAzYCFAwGCyADKAIIIAMoAgwQ74CAgABBAUsNCCADQTBqIAMQ7YCAgAAgAykDMCIBQgJRDQggAadBAXENCCADQRBqIAMpAzgQ8YCAgAAgAygCEEUNAwwICyADKAIIIAMoAgwQ74CAgABBAUsNByADQTBqIAMQ7YCAgAAgAykDMCIBQgJRDQcgAadBAXENByADQRBqIAMpAzgQ8oCAgAAgAygCEA0HDAILIANBEGpCASAGEJCAgIAAEOmAgIAAIAMoAhBBAXENAyADKQMoIQEgAykDICEAIAIQg4CAgABCIIghBgJAIAAgAYRCAFINACAGQgFSDQIMAwsgBkICUg0BAkACQCACEIOAgIAAQoCAgIAgVA0AIAJChICAgBAQiYCAgAAiAkL/AYNCywBSDQggAhCDgICAACEGIANBADYCCCADIAI3AwAgAyAGQiCIPgIMIANBEGogAxDtgICAACADKQMQIgJCAlENCCACp0EBcQ0IAkAgAykDGCICp0H/AXEiBUHKAEYNACAFQQ5HDQkLAkACQAJAIAIQ7oCAgABCIIinDgMAAQILCyADKAIIIAMoAgwQ74CAgABBAUsNCiADQTBqIAMQ7YCAgAAgAykDMCICQgJRDQogAqdBAXENCiADQRBqIAMpAzgQ8ICAgAAgAygCEEEBRg0KIAMpAyAhBiADKQMYIQQgAykDKCECEPOAgIAAEPSAgIAAIQcgAhCDgICAAEL/////L1YNAyADQQM2AhQMBwsgAygCCCADKAIMEO+AgIAAQQFLDQkgA0EwaiADEO2AgIAAIAMpAzAiAUICUQ0JIAGnQQFxDQkgA0EQaiADKQM4EPGAgIAAIAMoAhANCQwECyADKAIIIAMoAgwQ74CAgABBAUsNCCADQTBqIAMQ7YCAgAAgAykDMCIBQgJRDQggAadBAXENCCADQRBqIAMpAzgQ8oCAgAAgAygCEA0IDAMLEPWAgIAAAAsgA0EQakIBIAJChICAgCAQiYCAgAAQ6YCAgAAgAygCEEEBcQ0DIAMpAyghAiADKQMgIQhBAyEFIAZB2ILAgABBCBDQgICAABCsgICAAA0EIAQgBxCugICAACEJIAggAIUgAiABhYRCAFINBCAJRQ0CDAQLIAIQg4CAgABCgICAgHCDQoCAgIAQUg0AIAAQ84CAgAAQroCAgABFDQELQoOAgIAwIQEMAwtCAiEBDAILIAMoAhQhBQsgBUF/aq1CIIZCg4CAgBB8IQELIANBwABqJICAgIAAIAEPCwALQgEBfkIBIQICQCABQv8Bg0LIAFINACABEIqAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMAC0oCAX4Bf0ICIQICQCABKAIIIgMgASgCDE8NACAAIAEpAwAgA61CIIZCBIQQiYCAgAA3AwggASADQQFqNgIIQgAhAgsgACACNwMACxIAIABBuIDAgABBAxDAgYCAAAsZAAJAIAEgAEkNACABIABrDwsQsYCAgAAAC9MBAgJ/A34jgICAgABBIGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQYSEwIAAQQMgAkEIakEDEOOAgIAAIAIpAwgiAUL/AYNCywBSDQAgAikDECIFQv8Bg0LNAFINAAJAIAIpAxgiBqdB/wFxIgNBygBGDQAgA0EORw0BCyAAIAE3AxggACAGNwMQIAAgBTcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAAC74BAgJ/AX4jgICAgABBIGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQayEwIAAQQIgAkECEOOAgIAAIAJBEGogAikDABDCgYCAACACKAIQDQAgAikDGCEBIAJBEGogAikDCBDsgICAACACKAIQDQAgACACKQMYNwMQIAAgATcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAAC+ABAgJ/An4jgICAgABBMGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQcyEwIAAQQMgAkEIakEDEOOAgIAAIAIpAwgiAUL/AYNCywBSDQAgAkEgaiACKQMQEMKBgIAAIAIoAiANACACKQMoIQUgAkEgaiACKQMYEOyAgIAAIAIoAiANACACKQMoIQQgACABNwMYIAAgBDcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEwaiSAgICAAAuHAQIBfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCzgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQtICAgAALAkACQEEBIAAQq4CAgAAiAUICELaAgIAARQ0AIAFCAhCBgICAACIBQv8Bg0LNAFENAQALEPWAgIAAAAsgAEEQaiSAgICAACABCzYAAkAgAEG8g8CAAEEMENCAgIAAEIiAgIAAEJSAgIAAIgBC/wGDQs0AUQ0AELGAgIAAAAsgAAsJABCxgICAAAALnQICAn8BfiOAgICAAEEQayIBJICAgIAAAkACQEEBIACnQf8BcSICQQBHQQF0IAJBAUYbIgJBAkYNACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsQt4CAgAAhABDegICAACACc0EBcUUNASABQQA2AgAgASACQgIQ94CAgAACQAJAIAJBAXENAEKO0qrc7qzP9QAQyoCAgAAhAyABIAA3AwAgA0HQiMCAAEEBIAFBARDLgICAABCHgICAABoMAQtCjtKq3O6sAxDKgICAACEDIAEgADcDACADQcCIwIAAQQEgAUEBEMuAgIAAEIeAgIAAGgsgAUEQaiSAgICAAEICDwsAC0KDgICAwJcBEL6AgIAAAAsaACAAEN+AgIAAIAGtQv8BgyACEJKAgIAAGguNAQECfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEEahCzgICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQtICAgAALELeAgIAAGiAAIANBAXEQzoCAgAAgAkEQaiSAgICAAEICDwsAC6MDAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQRBqELOAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC0gICAAAsQt4CAgAAaIAAQ24CAgAAhBAJAAkAgA0EBcQ0AIARFDQMgAkEHNgIQIAIgADcDGCACQRBqEN+AgIAAQgEQkYCAgAAaENWAgIAAIgRFDQUgBEF/aiEEDAELIAQNAyACQQc2AhAgAiAANwMYIAJBEGoQ+oCAgAAgAkEEahDIgICAAAJAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDJgICAAAsQ1YCAgABBAWoiBEUNBAsgBBD7gICAAEHsh8CAAEENENCAgIAAEMqAgIAAIQEgAiAANwMYIAIgA603AxAgAUGEiMCAAEECIAJBEGpBAhDLgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAoJcBEL6AgIAAAAtCg4CAgKCWARC+gICAAAALELGAgIAAAAsOACAAQQFCARD3gICAAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEJNgIAIAEgABDGgYCAACABQRBqJICAgIAAC+4CAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahCzgICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQtICAgAALELeAgIAAGiAAENeAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBCDYCECACIAA3AxggAkEQahDfgICAAEIBEJGAgIAAGgwBCyAEDQMgAkEINgIQIAIgADcDGCACQRBqEPqAgIAAIAJBBGoQyICAgAAgAigCBEEBRw0AIAJBEGogAigCCCACKAIMEMmAgIAAC0GUiMCAAEEMENCAgIAAEMqAgIAAIQEgAiAANwMYIAIgA603AxAgAUGoiMCAAEECIAJBEGpBAhDLgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAsJcBEL6AgIAAAAtCg4CAgLCWARC+gICAAAALegEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQRqELOAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC0gICAAAsgABDMgICAACABQiCIpxD+gICAACACQRBqJICAgIAAQgIPCwALcgIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEENgIAIAEgABDGgYCAAEHYiMCAAEEaENCAgIAAEMqAgIAAIQIgASAArUIghkIEhDcDACACQYCJwIAAQQEgAUEBEMuAgIAAEIeAgIAAGiABQRBqJICAgIAAC6wBAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACELOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC0gICAAAsgABDMgICAACABEICBgIAAQYiJwIAAQRMQ0ICAgAAQyoCAgAAhACACIAE3AwAgAEGsicCAAEEBIAJBARDLgICAABCHgICAABogAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQE2AgAgASAAEMeBgIAAIAFBEGokgICAgAALlwIBAX8jgICAgABBIGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkL/AYNCyABSDQAgA0EQahCzgICAAAJAIAMoAhBBAUcNACADKAIUIAMoAhgQtICAgAALIAAQzICAgAAgA0EFNgIQIAMgAUIgiD4CFCADQRBqEN+AgIAAIAJCARCSgICAABogA0EEahDIgICAAAJAIAMoAgRBAUcNACADQRBqIAMoAgggAygCDBDJgICAAAtB1InAgABBGhDQgICAABDKgICAACEAIAMgAjcDGCADIAFChICAgHCDNwMQIABBhIrAgABBAiADQRBqQQIQy4CAgAAQh4CAgAAaIANBIGokgICAgABCAg8LAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALIAAQzICAgAAgARCDgYCAAEGUisCAAEESENCAgIAAEMqAgIAAIQAgAiABNwMAIABBsIrAgABBASACQQEQy4CAgAAQh4CAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEDNgIAIAEgABDHgYCAACABQRBqJICAgIAAC38BAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0A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IQYCQANAIAZBGEYNASAEIAZqIARBKGogBmopAwA3AwAgBkEIaiEGDAALCyABQo7u6pW+tt7zACAEQQMQm4GAgAAQlICAgABC/wGDQgJSDQIgBEHAAGokgICAgABCAg8LIAQgBmpCAjcDACAGQQhqIQYMAAsLELGAgIAAAAsAC40BAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQQRqELOAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC0gICAAAsQt4CAgAAaIAAgA0EBcRDEgICAACACQRBqJICAgIAAQgIPCwALfwEBfyOAgICAAEEQayIBJICAgIAAIAEgABDsgICAAAJAIAEoAgBBAUYNACABKQMIIQAQt4CAgAAaIAEQs4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELSAgIAAC0EBEKWBgIAAIAAQloCAgAAaIAFBEGokgICAgABCAg8LAAsYABCngYCAACAArUL/AYNCAhCSgICAABoLpQEBAX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQgJSDQAQt4CAgAAaIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAACwJAAkAQp4GAgAAiAEICELaAgIAARQ0AIABCAhCBgICAAKdB/wFxDgIAAQILQoOAgICggwEQvoCAgAAAC0EAEKWBgIAAIAFBEGokgICAgABCAg8LAAtgAgF/AX4jgICAgABBEGsiACSAgICAACAAQYaHwIAAQQkQwYCAgAACQAJAIAAoAgANACAAIAApAwgQwoCAgAAgACgCAEEBRw0BCwALIAApAwghASAAQRBqJICAgIAAIAELCAAQuICAgAAL4wQBBX8jgICAgABB0ABrIgIkgICAgAAgAkEoaiAAEKqBgIAAAkAgAigCKEECRg0AIAJBCGpBCGogAkEoakEIaiIDKAIANgIAIAIgAikCKDcDCCACQShqIAEQqoGAgAAgAigCKEECRg0AIAJBGGpBCGogAygCADYCACACIAIpAig3AxggAkEoahCzgICAAAJAIAIoAihBAUcNACACKAIsIAIoAjAQtICAgAALELeAgIAAGgJAAkACQBCygICAAA0AEKuBgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEL6AgIAAAAtCg4CAgMD/ABC+gICAAAALAkACQCACKAIIQQFHDQBBASACKAIMIAIoAhAQrIGAgAAMAQtBARC1gICAAEICEJGAgIAAGgsCQAJAIAIoAhhBAUcNAEECIAIoAhwgAigCIBCsgYCAAAwBC0ECELWAgIAAQgIQkYCAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBqIbAgABBDxDQgICAABDKgICAACEAIAJBKGoQrYGAgAAhASACIAJBNGoQrYGAgAA3A0ggAiABNwNAIABBzIbAgABBAiACQcAAakECEMuAgIAAEIeAgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDDgYCAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAACzMBAn4QooCAgAAhAAJAEKOAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LELGAgIAAAAtWAgF/AX4jgICAgABBEGsiAySAgICAACAAELWAgIAAIQQgAyABIAIQxIGAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCSgICAABogA0EQaiSAgICAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQr4GAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC8IBAgJ/AX4jgICAgABBwABrIgAkgICAgAAgAEEIahCzgICAAAJAIAAoAghBAUcNACAAKAIMIAAoAhAQtICAgAALIABBCGoQs4CAgAAgAEEUaiIBEMiAgIAAIABBMGogAEEIahCvgYCAAAJAAkAgACgCMA0AIAApAzghAiAAQTBqIAEQr4GAgAAgACgCMEEBRw0BCwALIAAgACkDODcDKCAAIAI3AyAgAEEgakECEJuBgIAAIQIgAEHAAGokgICAgAAgAgswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBDEgYCAAA8LIABCADcDACAAQgI3AwgLqwEBAX8jgICAgABBIGsiACSAgICAACAAQQxqELOAgIAAAkAgACgCDEEBRw0AIAAoAhAgACgCFBC0gICAAAsQt4CAgAAaAkAQsoCAgABFDQBCg4CAgOD/ABC+gICAAAALQQAQtYCAgABCAUICEJKAgIAAGkHchsCAAEESENCAgIAAEMqAgIAAQQRBACAAQRhqQQAQy4CAgAAQh4CAgAAaIABBIGokgICAgABCAgsJABCygICAAK0LMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQtICAgABCAg8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELqAgIAAIAApAwAgACkDCBC0gYCAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQvYCAgAAgACkDACAAKQMIELSBgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALELmAgIAAIQIQvICAgAAgABChgYCAACACIAAQt4GAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQfWEwIAAQRUQ0ICAgAAQyoCAgAAhAyACIAA3AwggAiABNwMAIANBnIXAgABBAiACQQIQy4CAgAAQh4CAgAAaIAJBEGokgICAgAAL3AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCzgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQtICAgAALELmAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahC9gICAACACKQMQIQEgAikDCEGICBC7gICAACABIAAQr4CAgABFDQMQuYGAgAAMAQsQq4GAgAAgAUIgiKdJDQNBASAAQgAQuoGAgABBARC/gICAAEIAIAFChICAgHCDIgEgARCAgICAABpBrIXAgABBFhDQgICAABDKgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARByIXAgABBAyACQQhqQQMQy4CAgAAQh4CAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQvoCAgAAAC0KDgICA8IABEL6AgIAAAAsTAEEBEL+AgIAAQgAQkYCAgAAaCxUAIAAQv4CAgAAgASACEJKAgIAAGgunAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCzgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtICAgAALIAAQvYCAgAAgACkDCCEBIAApAwBBiAgQu4CAgAAgARCCgICAABogABDAgICAAAJAIAAoAgANABD1gICAAAALIAApAwghAhC5gYCAACABEKGBgIAAIAIgARC3gYCAACAAQRBqJICAgIAAQgILoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAACxC5gICAACEBELyAgIAAQQAQv4CAgABCAhCRgICAABpB4IXAgABBExDQgICAABDKgICAACECIAAgATcDACACQfSFwIAAQQEgAEEBEMuAgIAAEIeAgIAAGiAAQRBqJICAgIAAQgILAwAACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCegICAACEBCyAAQgA3AwAgACABNwMIC5YBAgF+An8gACkDACEBA0ACQCABUEUNAEGAgMQADwsCQAJAIAFCMIinQT9xIgJBAUcNAEHfACECDAELAkACQAJAIAJBf2pBC08NAEEuIQMMAQsCQCACQXRqQRpPDQBBNSEDDAELIAJBJU0NAUE7IQMLIAIgA2ohAgwBCyAAIAFCBoYiATcDAAwBCwsgACABQgaGNwMAIAILHAAgACABrUIghkIEhCACrUIghkIEhBCagICAAAvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCfgICAACEDCyAAQgA3AwAgACADNwMIC7MCAwF/AX4BfyOAgICAAEEgayICJICAgIAAAkACQCABQv8Bg0LLAFENACAAQgE3AwAMAQsgARCDgICAACEDIAJBADYCCCACIAE3AwAgAiADQiCIPgIMIAJBEGogAhDtgICAAAJAIAIpAxAiAUICUQ0AIAGnQQFxDQACQCACKQMYIgGnQf8BcSIEQcoARg0AIARBDkcNAQsCQCABQeSEwIAAQQEQwIGAgABC/////w9WDQAgAigCCCACKAIMEO+AgIAAQQFLDQAgAkEQaiACEO2AgIAAIAIpAxAiAUICUQ0AIAGnQQFxDQAgAkEQaiACKQMYEOyAgIAAIAIoAhANACACKQMYIQEgAEIANwMAIAAgATcDCAwCCyAAQgE3AwAMAQsgAEIBNwMACyACQSBqJICAgIAAC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQZiGwIAAQQIgAkECEOOAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBmIbAgABBAiADQQIQy4CAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABELWAgIAAIgRCAhC2gICAAEUNACACQQRqIARCAhCBgICAABDDgYCAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALHAAgABDfgICAACABrUIghkIEhEICEJKAgIAAGgsVACAAEN+AgIAAIAFCAhCSgICAABoLuQcBDH8jgICAgABBEGshAwJAAkAgAkEQTw0AIAAhBAwBCwJAIAAgAEEAIABrQQNxIgVqIgZPDQAgBUF/aiEHIAAhBCABIQgCQCAFRQ0AIAUhCSAAIQQgASEIA0AgBCAILQAAOgAAIAhBAWohCCAEQQFqIQQgCUF/aiIJDQALCyAHQQdJDQADQCAEIAgtAAA6AAAgBEEBaiAIQQFqLQAAOgAAIARBAmogCEECai0AADoAACAEQQNqIAhBA2otAAA6AAAgBEEEaiAIQQRqLQAAOgAAIARBBWogCEEFai0AADoAACAEQQZqIAhBBmotAAA6AAAgBEEHaiAIQQdqLQAAOgAAIAhBCGohCCAEQQhqIgQgBkcNAAsLIAYgAiAFayIJQXxxIgdqIQQCQAJAIAEgBWoiCEEDcSIBDQAgBiAETw0BIAghAQNAIAYgASgCADYCACABQQRqIQEgBkEEaiIGIARJDQAMAgsLQQAhAiADQQA2AgwgA0EMaiABciEFAkBBBCABayIKQQFxRQ0AIAUgCC0AADoAAEEBIQILAkAgCkECcUUNACAFIAJqIAggAmovAQA7AQALIAggAWshAiABQQN0IQsgAygCDCEFAkACQCAGQQRqIARJDQAgBiEMDAELQQAgC2tBGHEhDQNAIAYgBSALdiACQQRqIgIoAgAiBSANdHI2AgAgBkEIaiEKIAZBBGoiDCEGIAogBEkNAAsLQQAhBiADQQA6AAggA0EAOgAGAkACQCABQQFHDQAgA0EIaiENQQAhAUEAIQpBACEODAELIAJBBWotAAAhCiADIAJBBGotAAAiAToACCAKQQh0IQpBAiEOIANBBmohDQsCQCAIQQFxRQ0AIA0gAkEEaiAOai0AADoAACADLQAGQRB0IQYgAy0ACCEBCyAMIAogBnIgAUH/AXFyQQAgC2tBGHF0IAUgC3ZyNgIACyAJQQNxIQIgCCAHaiEBCwJAIAQgBCACaiIGTw0AIAJBf2ohCQJAIAJBB3EiCEUNAANAIAQgAS0AADoAACABQQFqIQEgBEEBaiEEIAhBf2oiCA0ACwsgCUEHSQ0AA0AgBCABLQAAOgAAIARBAWogAUEBai0AADoAACAEQQJqIAFBAmotAAA6AAAgBEEDaiABQQNqLQAAOgAAIARBBGogAUEEai0AADoAACAEQQVqIAFBBWotAAA6AAAgBEEGaiABQQZqLQAAOgAAIARBB2ogAUEHai0AADoAACABQQhqIQEgBEEIaiIEIAZHDQALCyAACw4AIAAgASACEMiBgIAACwuKDQEAQYCAwAALgA1Db250cmFjdENyZWF0ZUNvbnRyYWN0SG9zdEZuQ3JlYXRlQ29udHJhY3RXaXRoQ3Rvckhvc3RGbgAAEAAIAAAACAAQABQAAAAcABAAHAAAAGRzdF9jb25maWdfc2V0cGFyYW1zXgAQAAYAAABuYXRpdmVfZHJvcF9hcHBsaWVkbmF0aXZlX2Ryb3BfcGFyYW1zb3JpZ2luc3VjY2VzcwAA7gQQAAcAAAB/ABAAEgAAAAAEEAAEAAAAkQAQAAYAAACXABAABwAAAE4FEAAQAAAAeAUQABMAAACLBRAAEwAAAHIEEAAOAAAAngUQAAoAAABkc3RfY29uZmlnAADwABAACgAAAO4EEAAHAAAAcmVjZWl2ZXLIARAABgAAAAwBEAAIAAAAbHpfcmVjZWl2ZV9hbGVydGx6X2NvbXBvc2VfYWxlcnRsel9yZWNlaXZlbHpfY29tcG9zZXRyYW5zZmVycHVibGljX2tleXNpZ25hdHVyZQBgARAACgAAAGoBEAAJAAAARHN0Q29uZmlnRW5kcG9pbnRub25jZXNyY19laWQAAACVARAABQAAAGUFEAAGAAAAmgEQAAcAAABuYXRpdmVfdG9rZW5hbW91bnR0b8gBEAAGAAAAzgEQAAIAAAAAAAASAAAAAAAAAABXYXNtYXJnc2NvbnRyYWN0Zm5fbmFtZQDwARAABAAAAPQBEAAIAAAA/AEQAAcAAABleGVjdXRhYmxlc2FsdAAAHAIQAAoAAAAmAhAABAAAAGNvbnN0cnVjdG9yX2FyZ3M8AhAAEAAAABwCEAAKAAAAJgIQAAQAAADsARAABAAAAHRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcooCEAAJAAAAkwIQAAkAAABvd25lcnNoaXBfdHJhbnNmZXJyaW5ndHRsAAAAigIQAAkAAACTAhAACQAAAMICEAADAAAAb3duZXJzaGlwX3Jlbm91bmNlZACTAhAACQAAAE93bmVyUGVuZGluZ093bmVyZXh0ZW5kX3RvAAANAxAACQAAAGwCEAAJAAAAdHRsX2NvbmZpZ3Nfc2V0aW5zdGFuY2VwZXJzaXN0ZW50AAAANwMQAAgAAAA/AxAACgAAAHR0bF9jb25maWdzX2Zyb3plbkZyb3plbkluc3RhbmNlUGVyc2lzdGVudE1pZ3JhdGluZ2FjdGl2ZWFkbWluAACPAxAABgAAAJUDEAAFAAAAc2V0X3N1cHBvcnRlZF9tZXNzYWdlX2xpYm1lc3NhZ2VfbGlic3VwcG9ydGVkAAAAxQMQAAsAAADQAxAACQAAAHNldF9hbGxvd2xpc3RhbGxvd2Vkb2FwcPkDEAAHAAAAAAQQAAQAAABzZXRfZGVueWxpc3RkZW5pZWQAACAEEAAGAAAAAAQQAAQAAABwYXVzZXIAADgEEAAGAAAAdW5wYXVzZXJIBBAACAAAAHNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzbXVsdGlwbGllcl9icHNyBBAADgAAAHNldF9kZXBvc2l0X2FkZHJlc3NkZXBvc2l0X2FkZHJlc3MAAJsEEAAPAAAAc2V0X3ByaWNlX2ZlZWRwcmljZV9mZWVkwgQQAAoAAABzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlc2RzdF9laWRvcHRpb25fdHlwZXMAAADuBBAABwAAAPUEEAAMAAAAc2V0X3dvcmtlcl9mZWVfbGliZmVlX2xpYgAAACYFEAAHAAAAZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc2Zsb29yX21hcmdpbl91c2RvcHRpb25zc2VuZGVyY2FsbGRhdGFfc2l6ZWx6X2NvbXBvc2VfYmFzZV9nYXNsel9yZWNlaXZlX2Jhc2VfZ2FzbmF0aXZlX2NhcGsFEAANAAAAOAUQABYAAADuBBAABwAAAE4FEAAQAAAAeAUQABMAAACLBRAAEwAAAHIEEAAOAAAAngUQAAoAAABeBRAABwAAAMIEEAAKAAAAZQUQAAYAAABQYXVzZWREZXBvc2l0QWRkcmVzc1ByaWNlRmVlZFdvcmtlckZlZUxpYkRlZmF1bHRNdWx0aXBsaWVyQnBzU3VwcG9ydGVkT3B0aW9uVHlwZXNNZXNzYWdlTGlic0FsbG93bGlzdERlbnlsaXN0QWxsb3dsaXN0U2l6ZUFkbWlucwDP8AEOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAANRXhlY3V0b3JFcnJvcgAAAAAAAAMAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAABAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAACAAAAAAAAABNVbmF1dGhvcml6ZWRDb250ZXh0AAAAAAMAAAAFAAAAAAAAAAAAAAAMRHN0Q29uZmlnU2V0AAAAAQAAAA5kc3RfY29uZmlnX3NldAAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAEU5hdGl2ZURyb3BBcHBsaWVkAAAAAAAAAQAAABNuYXRpdmVfZHJvcF9hcHBsaWVkAAAAAAUAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAABG9hcHAAAAATAAAAAAAAAAAAAAASbmF0aXZlX2Ryb3BfcGFyYW1zAAAAAAPqAAAH0AAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAAAAAAAAAAAHc3VjY2VzcwAAAAPqAAAAAQAAAAAAAAACAAAAAQAAANtEZXN0aW5hdGlvbiBjaGFpbiBjb25maWd1cmF0aW9uIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBnYXMgY29zdHMgYW5kIGZlZSBwYXJhbWV0ZXJzIHNwZWNpZmljIHRvIGVhY2ggZGVzdGluYXRpb24gY2hhaW4uClRoZXNlIHBhcmFtZXRlcnMgYXJlIHVzZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBhY2N1cmF0ZSBleGVjdXRpb24gZmVlcy4AAAAAAAAAAAlEc3RDb25maWcAAAAAAAAFAAAAO01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkgdG8gZW5zdXJlIHByb2ZpdGFiaWxpdHkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADpCYXNlIGdhcyBjb3N0IHBlciBsekNvbXBvc2UgY2FsbCBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAAAP0Jhc2UgZ2FzIGNvc3QgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAAUUZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyBmb3IgdGhpcyBkZXN0aW5hdGlvbiAoMCA9IHVzZSBkZWZhdWx0IG11bHRpcGxpZXIpLgAAAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAEZNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgZGVzdGluYXRpb24uAAAAAAAKbmF0aXZlX2NhcAAAAAAACgAAAAEAAAB8UGFyYW1ldGVycyBmb3Igc2V0dGluZyBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uLgoKVXNlZCB3aGVuIGNvbmZpZ3VyaW5nIGV4ZWN1dG9yIHNldHRpbmdzIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAAAARU2V0RHN0Q29uZmlnUGFyYW0AAAAAAAACAAAAKENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAKZHN0X2NvbmZpZwAAAAAH0AAAAAlEc3RDb25maWcAAAAAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAAGhQYXJhbWV0ZXJzIGZvciBhIG5hdGl2ZSB0b2tlbiBkcm9wLgoKVXNlZCB0byBzcGVjaWZ5IG5hdGl2ZSB0b2tlbiB0cmFuc2ZlcnMgYXMgcGFydCBvZiBleGVjdXRvciBvcHRpb25zLgAAAAAAAAAQTmF0aXZlRHJvcFBhcmFtcwAAAAIAAAAkQW1vdW50IG9mIG5hdGl2ZSB0b2tlbnMgdG8gdHJhbnNmZXIuAAAABmFtb3VudAAAAAAACwAAAC9SZWNlaXZlciBhZGRyZXNzIGZvciB0aGUgbmF0aXZlIHRva2VuIHRyYW5zZmVyLgAAAAAIcmVjZWl2ZXIAAAATAAAAAAAAALhWZXJpZmllcyBhdXRob3JpemF0aW9uIGZvciB0aGUgZXhlY3V0b3IgY29udHJhY3QuCgpUaGUgcHVibGljIGtleSBtdXN0IGNvcnJlc3BvbmQgdG8gYSByZWdpc3RlcmVkIGFkbWluIGFuZCBtdXN0IGhhdmUgc2lnbmVkIHRoZSBzaWduYXR1cmVfcGF5bG9hZC4KVXNlcyBFZDI1NTE5IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uAAAADF9fY2hlY2tfYXV0aAAAAAMAAAAAAAAAEXNpZ25hdHVyZV9wYXlsb2FkAAAAAAAD7gAAACAAAAAAAAAACWF1dGhfZGF0YQAAAAAAB9AAAAARRXhlY3V0b3JTaWduYXR1cmUAAAAAAAAAAAAADWF1dGhfY29udGV4dHMAAAAAAAPqAAAH0AAAAAdDb250ZXh0AAAAAAEAAAPpAAAD7QAAAAAAAAADAAAAAQAAAIxTaWduYXR1cmUgZGF0YSBmb3IgQ3VzdG9tIEFjY291bnQgYXV0aG9yaXphdGlvbi4KQ29udGFpbnMgdGhlIGFkbWluJ3MgcHVibGljIGtleSBhbmQgdGhlaXIgRWQyNTUxOSBzaWduYXR1cmUgb3ZlciB0aGUgYXV0aG9yaXphdGlvbiBwYXlsb2FkLgAAAAAAAAARRXhlY3V0b3JTaWduYXR1cmUAAAAAAAACAAAATUFkbWluJ3MgRWQyNTUxOSBwdWJsaWMga2V5ICgzMiBieXRlcykgLSBtdXN0IGNvcnJlc3BvbmQgdG8gYSByZWdpc3RlcmVkIGFkbWluAAAAAAAACnB1YmxpY19rZXkAAAAAA+4AAAAgAAAAN0VkMjU1MTkgc2lnbmF0dXJlICg2NCBieXRlcykgb3ZlciB0aGUgc2lnbmF0dXJlX3BheWxvYWQAAAAACXNpZ25hdHVyZQAAAAAAA+4AAABAAAAAAAAAAORTZXRzIHRoZSBwYXVzZWQgc3RhdGUgb2YgdGhlIHdvcmtlci4KCldoZW4gcGF1c2VkLCB0aGUgd29ya2VyIHdpbGwgcmVqZWN0IG5ldyBqb2IgYXNzaWdubWVudHMgKGUuZy4sIGFzc2lnbl9qb2IsIGdldF9mZWUpLgpFeGlzdGluZyBqb2JzIGluIHByb2dyZXNzIGFyZSBub3QgYWZmZWN0ZWQuCgojIEFyZ3VtZW50cwoqIGBwYXVzZWRgIC0gYHRydWVgIHRvIHBhdXNlLCBgZmFsc2VgIHRvIHVucGF1c2UAAAAKc2V0X3BhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VkAAAAAAABAAAAAAAAAAAAAAE3U2V0cyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZCBieSB0aGlzIHdvcmtlci4KCk1lc3NhZ2UgbGlicmFyaWVzIChlLmcuLCBVTE4zMDIpIGNhbGwgd29ya2VycyB0byBhc3NpZ24gam9icy4gT25seSBzdXBwb3J0ZWQKbGlicmFyaWVzIGNhbiBpbnRlcmFjdCB3aXRoIHRoaXMgd29ya2VyLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gVGhlIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYHN1cHBvcnRlZGAgLSBgdHJ1ZWAgdG8gYWRkIHN1cHBvcnQsIGBmYWxzZWAgdG8gcmVtb3ZlIHN1cHBvcnQAAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAlzdXBwb3J0ZWQAAAAAAAABAAAAAAAAAAAAAAFYU2V0cyBhbGxvd2xpc3Qgc3RhdHVzIGZvciBhbiBPQXBwIGFkZHJlc3MuCgpXaGVuIHRoZSBhbGxvd2xpc3QgaXMgZW1wdHksIGFsbCBPQXBwcyBhcmUgYWxsb3dlZCAodW5sZXNzIG9uIGRlbnlsaXN0KS4KV2hlbiB0aGUgYWxsb3dsaXN0IGlzIG5vdCBlbXB0eSwgb25seSBhbGxvd2xpc3RlZCBPQXBwcyBhcmUgYWxsb3dlZC4KRGVueWxpc3QgYWx3YXlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgYWxsb3dlZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGFsbG93bGlzdCwgYGZhbHNlYCB0byByZW1vdmUAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAdhbGxvd2VkAAAAAAEAAAAAAAAAAAAAAQlTZXRzIGRlbnlsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKRGVueWxpc3RlZCBPQXBwcyBhcmUgYmxvY2tlZCBmcm9tIHVzaW5nIHRoaXMgd29ya2VyLCBldmVuIGlmIHRoZXkncmUgb24KdGhlIGFsbG93bGlzdCAoZGVueWxpc3QgdGFrZXMgcHJlY2VkZW5jZSkuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgZGVuaWVkYCAtIGB0cnVlYCB0byBhZGQgdG8gZGVueWxpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAADHNldF9kZW55bGlzdAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAAAAATtTZXRzIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4KClRoZSBtdWx0aXBsaWVyIGlzIGFwcGxpZWQgdG8gYmFzZSBmZWVzIGR1cmluZyBmZWUgY2FsY3VsYXRpb24uIFVzZWQgd2hlbgpubyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBtdWx0aXBsaWVyIGlzIGNvbmZpZ3VyZWQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgbXVsdGlwbGllcl9icHNgIC0gTXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgsIDEyMDAwID0gMS4yeCkAAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAAAAADxU2V0cyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIHdvcmtlciBmZWVzIGFyZSBjb2xsZWN0ZWQuCgpXaGVuIGpvYnMgYXJlIGFzc2lnbmVkLCBmZWVzIGFyZSBkaXJlY3RlZCB0byB0aGlzIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZGVwb3NpdF9hZGRyZXNzYCAtIEFkZHJlc3MgdG8gcmVjZWl2ZSBjb2xsZWN0ZWQgZmVlcwAAAAAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAOtTZXRzIHN1cHBvcnRlZCBleGVjdXRvciBvcHRpb24gdHlwZXMgZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQoqIGBvcHRpb25fdHlwZXNgIC0gRW5jb2RlZCBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzAAAAABpzZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAwAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAANlaWQAAAAABAAAAAAAAAAMb3B0aW9uX3R5cGVzAAAADgAAAAAAAAAAAAABElNldHMgdGhlIHdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLgoKVGhlIGZlZSBsaWJyYXJ5IGNhbGN1bGF0ZXMgZmVlcyBiYXNlZCBvbiBleGVjdXRvciBvcHRpb25zIGFuZCBwcmljZSBmZWVkIGRhdGEuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgd29ya2VyX2ZlZV9saWJgIC0gRmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElFeGVjdXRvckZlZUxpYmAAAAAAABJzZXRfd29ya2VyX2ZlZV9saWIAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAOd29ya2VyX2ZlZV9saWIAAAAAABMAAAAAAAAAAAAAARJTZXRzIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuCgpUaGUgcHJpY2UgZmVlZCBwcm92aWRlcyBnYXMgcHJpY2VzIGFuZCBleGNoYW5nZSByYXRlcyBmb3IgY3Jvc3MtY2hhaW4KZmVlIGNhbGN1bGF0aW9ucy4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBpbXBsZW1lbnRpbmcgYElMYXllclplcm9QcmljZUZlZWRgAAAAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAKcHJpY2VfZmVlZAAAAAAAEwAAAAAAAAAAAAAAVVJldHVybnMgd2hldGhlciBhbiBhZGRyZXNzIGlzIGFuIGFkbWluLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gY2hlY2sAAAAAAAAIaXNfYWRtaW4AAAABAAAAAAAAAAVhZG1pbgAAAAAAABMAAAABAAAAAQAAAAAAAAAcUmV0dXJucyBhbGwgYWRtaW4gYWRkcmVzc2VzLgAAAAZhZG1pbnMAAAAAAAAAAAABAAAD6gAAABMAAAAAAAAAJVJldHVybnMgd2hldGhlciB0aGUgd29ya2VyIGlzIHBhdXNlZC4AAAAAAAAGcGF1c2VkAAAAAAAAAAAAAQAAAAEAAAAAAAAAb1JldHVybnMgd2hldGhlciBhIG1lc3NhZ2UgbGlicmFyeSBpcyBzdXBwb3J0ZWQuCgojIEFyZ3VtZW50cwoqIGBtZXNzYWdlX2xpYmAgLSBNZXNzYWdlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwAAAAAYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAAAAAQAAAAAAAAALbWVzc2FnZV9saWIAAAAAEwAAAAEAAAABAAAAAAAAAHNSZXR1cm5zIGFsbCBzdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGFkZHJlc3Nlcy4KCiMgUmV0dXJucwpWZWN0b3Igb2Ygc3VwcG9ydGVkIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzZXMuAAAAAAxtZXNzYWdlX2xpYnMAAAAAAAAAAQAAA+oAAAATAAAAAAAAAFpSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBpcyBvbiB0aGUgYWxsb3dsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MAAAAAAA9pc19vbl9hbGxvd2xpc3QAAAAAAQAAAAAAAAAEb2FwcAAAABMAAAABAAAAAQAAAAAAAABZUmV0dXJucyB3aGV0aGVyIGFuIE9BcHAgaXMgb24gdGhlIGRlbnlsaXN0LgoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MAAAAAAAAOaXNfb25fZGVueWxpc3QAAAAAAAEAAAAAAAAABG9hcHAAAAATAAAAAQAAAAEAAAAAAAAA+1JldHVybnMgd2hldGhlciBhbiBPQXBwIGhhcyBhY2Nlc3MgY29udHJvbCBsaXN0IChBQ0wpIHBlcm1pc3Npb24uCgpBQ0wgZXZhbHVhdGlvbiBvcmRlcjoKMS4gSWYgb24gZGVueWxpc3Qg4oaSIGRlbmllZAoyLiBJZiBhbGxvd2xpc3QgaXMgZW1wdHkgT1Igb24gYWxsb3dsaXN0IOKGkiBhbGxvd2VkCjMuIE90aGVyd2lzZSDihpIgZGVuaWVkCgojIEFyZ3VtZW50cwoqIGBzZW5kZXJgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzIHRvIGNoZWNrAAAAAAdoYXNfYWNsAAAAAAEAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBudW1iZXIgb2YgYWRkcmVzc2VzIG9uIHRoZSBhbGxvd2xpc3QuAAAAAAAADmFsbG93bGlzdF9zaXplAAAAAAAAAAAAAQAAAAQAAAAAAAAAM1JldHVybnMgdGhlIGRlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzLgAAAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAAAAAAEAAAAEAAAAAAAAADVSZXR1cm5zIHRoZSBkZXBvc2l0IGFkZHJlc3Mgd2hlcmUgZmVlcyBhcmUgY29sbGVjdGVkLgAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAAAAAAAEAAAATAAAAAAAAAChSZXR1cm5zIHRoZSBwcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MuAAAACnByaWNlX2ZlZWQAAAAAAAAAAAABAAAAEwAAAAAAAAB8UmV0dXJucyBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKIyBBcmd1bWVudHMKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQAAABpnZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwAAAAAAAQAAAAAAAAADZWlkAAAAAAQAAAABAAAD6AAAAA4AAAAAAAAAMFJldHVybnMgdGhlIHdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzLgAAAA53b3JrZXJfZmVlX2xpYgAAAAAAAAAAAAEAAAATAAAAAAAAAERBc3NpZ25zIGEgam9iIHRvIHRoZSBleGVjdXRvciBhbmQgcmV0dXJucyBmZWUgcmVjaXBpZW50IGluZm9ybWF0aW9uLgAAAAphc3NpZ25fam9iAAAAAAAFAAAAAAAAAAhzZW5kX2xpYgAAABMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAAAAADdDYWxjdWxhdGVzIHRoZSBleGVjdXRpb24gZmVlIGZvciBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAdnZXRfZmVlAAAAAAUAAAAAAAAACHNlbmRfbGliAAAAEwAAAAAAAAAGc2VuZGVyAAAAAAATAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAAAAAAAAdvcHRpb25zAAAAAA4AAAABAAAACwAAAAAAAABAU2V0cyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmb3IgbXVsdGlwbGUgZW5kcG9pbnRzLgAAAA5zZXRfZHN0X2NvbmZpZwAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAEVNldERzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgYSBzcGVjaWZpYyBlbmRwb2ludC4AAAAAAApkc3RfY29uZmlnAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAJRHN0Q29uZmlnAAAAAAAAAAAAAJFOYXRpdmUgdG9rZW4gZHJvcHMuCgpUcmFuc2ZlcnMgbmF0aXZlIHRva2VucyB0byBlYWNoIHJlY2VpdmVyIHNwZWNpZmllZCBpbiB0aGUgcGFyYW1ldGVycyBhbmQKdHJhY2tzIHRoZSBzdWNjZXNzL2ZhaWx1cmUgc3RhdHVzIG9mIGVhY2ggdHJhbnNmZXIuAAAAAAAAC25hdGl2ZV9kcm9wAAAAAAUAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAABG9hcHAAAAATAAAAAAAAABJuYXRpdmVfZHJvcF9wYXJhbXMAAAAAA+oAAAfQAAAAEE5hdGl2ZURyb3BQYXJhbXMAAAAAAAAAAAAAACpSZXR1cm5zIHRoZSBlbmRwb2ludCBhZGRyZXNzIGZyb20gc3RvcmFnZS4AAAAAAAhlbmRwb2ludAAAAAAAAAABAAAAEwAAAAAAAAJJSW5pdGlhbGl6ZXMgdGhlIGV4ZWN1dG9yIGNvbnRyYWN0LgoKU2V0cyB1cCBvd25lcnNoaXAsIHdvcmtlciBjb25maWd1cmF0aW9uLCBhbmQgZW5kcG9pbnQgYWRkcmVzcy4KCiMgQXJndW1lbnRzCiogYGVuZHBvaW50YCAtIExheWVyWmVybyBFbmRwb2ludCBWMiBjb250cmFjdCBhZGRyZXNzCiogYG93bmVyYCAtIENvbnRyYWN0IG93bmVyIGFkZHJlc3MKKiBgYWRtaW5zYCAtIEluaXRpYWwgYWRtaW4gYWRkcmVzc2VzIChtdXN0IG5vdCBiZSBlbXB0eSkKKiBgbWVzc2FnZV9saWJzYCAtIFN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgYWRkcmVzc2VzIChlLmcuLCBVTE4zMDIpCiogYHByaWNlX2ZlZWRgIC0gUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBmZWUgY2FsY3VsYXRpb25zCiogYGRlZmF1bHRfbXVsdGlwbGllcl9icHNgIC0gRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgpCiogYHdvcmtlcl9mZWVfbGliYCAtIFdvcmtlciBmZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYGRlcG9zaXRfYWRkcmVzc2AgLSBBZGRyZXNzIHRvIHJlY2VpdmUgZmVlIHBheW1lbnRzAAAAAAAADV9fY29uc3RydWN0b3IAAAAAAAAIAAAAAAAAAAhlbmRwb2ludAAAABMAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAGYWRtaW5zAAAAAAPqAAAAEwAAAAAAAAAMbWVzc2FnZV9saWJzAAAD6gAAABMAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAADndvcmtlcl9mZWVfbGliAAAAAAATAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAAAAAAAsldpdGhkcmF3cyBhIHRva2VuIGZyb20gdGhlIGNvbnRyYWN0IHRvIGEgc3BlY2lmaWVkIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGB0b2tlbmAgLSBUaGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcwoqIGB0b2AgLSBUaGUgcmVjaXBpZW50IGFkZHJlc3MKKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgdG8gd2l0aGRyYXcAAAAAAA53aXRoZHJhd190b2tlbgAAAAAABAAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAAAnRvAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAAAAAOhTZXRzIGFkbWluIHN0YXR1cyBmb3IgYW4gYWRkcmVzcy4gUmVxdWlyZXMgb3duZXIgYXV0aG9yaXphdGlvbi4KClRoaXMgaXMgdGhlIG11bHRpc2lnL3F1b3J1bSBwYXRoIGZvciBhZG1pbiBtYW5hZ2VtZW50LgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIFdoZXRoZXIgdGhlIGFkZHJlc3Mgc2hvdWxkIGJlIGFuIGFkbWluAAAACXNldF9hZG1pbgAAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAB9AAAAANTWlncmF0aW9uRGF0YQAAAAAAAAAAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAACAAAAAAAAAAAAAAAPRXhlY3V0b3JTdG9yYWdlAAAAAAIAAAABAAAAAAAAAAlEc3RDb25maWcAAAAAAAABAAAABAAAAAAAAAAAAAAACEVuZHBvaW50AAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURl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dHJhX2RhdGEAAAAAAA4AAAAAAAAAAAAAAAZyZWFzb24AAAAAAA4AAAAAAAAAAgAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAEAAAAHVBhY2tldENvZGVjVjFFcnJvcjogMTEwMC0xMTA5AAAAAAAAAAAAABJQYWNrZXRDb2RlY1YxRXJyb3IAAAAAAAIAAAAAAAAAE0ludmFsaWRQYWNrZXRIZWFkZXIAAAAETAAAAAAAAAAUSW52YWxpZFBhY2tldFZlcnNpb24AAARNAAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4AAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAEAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGgAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAA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ZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAAAgAAAAAAAAAAAAAADVdvcmtlclN0b3JhZ2UAAAAAAAALAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAAAAAAAAAAAJUHJpY2VGZWVkAAAAAAAAAAAAAAAAAAAMV29ya2VyRmVlTGliAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAABAAAAAAAAABRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAEAAAAEAAAAAAAAAAAAAAALTWVzc2FnZUxpYnMAAAAAAQAAAAAAAAAJQWxsb3dsaXN0AAAAAAAAAQAAABMAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAANQWxsb3dsaXN0U2l6ZQAAAAAAAAAAAAAAAAAABkFkbWlucwAAAIsBDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZiaW52ZXIAAAAAAAUwLjAuMQAAAAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzIzLjQuMCM2NzNkNmM0ZjIzNjhkMjgyZDI1ZGEyOWJkYTU1YzIxYjhiZTY5Y2E2AAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABcAAAAA";
|
|
13
|
+
/**
|
|
14
|
+
* Pre-computed WASM hash (SHA-256)
|
|
15
|
+
* Use this when the WASM is already uploaded on-chain
|
|
16
|
+
*/
|
|
17
|
+
export declare const WASM_HASH = "8292af76dd7a2983d4ba9b224c35ec25fdf9e43803307e90ff50529a63afdf04";
|
|
18
|
+
/**
|
|
19
|
+
* Get the WASM bytecode as a Buffer
|
|
20
|
+
* Use this to upload the WASM to the network
|
|
21
|
+
*/
|
|
22
|
+
export declare function getWasmBuffer(): Buffer;
|
|
8
23
|
export declare const ExecutorError: {
|
|
9
24
|
1: {
|
|
10
25
|
message: string;
|
|
@@ -94,9 +109,6 @@ export type ExecutorStorage = {
|
|
|
94
109
|
} | {
|
|
95
110
|
tag: "Endpoint";
|
|
96
111
|
values: void;
|
|
97
|
-
} | {
|
|
98
|
-
tag: "WhitelistedFn";
|
|
99
|
-
values: readonly [string, string];
|
|
100
112
|
};
|
|
101
113
|
export declare const EndpointError: {
|
|
102
114
|
1: {
|
|
@@ -171,6 +183,9 @@ export declare const EndpointError: {
|
|
|
171
183
|
24: {
|
|
172
184
|
message: string;
|
|
173
185
|
};
|
|
186
|
+
25: {
|
|
187
|
+
message: string;
|
|
188
|
+
};
|
|
174
189
|
};
|
|
175
190
|
/**
|
|
176
191
|
* Parameters for sending a cross-chain message.
|
|
@@ -383,43 +398,52 @@ export interface FeesAndPacket {
|
|
|
383
398
|
*/
|
|
384
399
|
zro_fee_recipients: Array<FeeRecipient>;
|
|
385
400
|
}
|
|
401
|
+
/**
|
|
402
|
+
* PacketCodecV1Error: 1100-1109
|
|
403
|
+
*/
|
|
386
404
|
export declare const PacketCodecV1Error: {
|
|
387
|
-
|
|
405
|
+
1100: {
|
|
388
406
|
message: string;
|
|
389
407
|
};
|
|
390
|
-
|
|
408
|
+
1101: {
|
|
391
409
|
message: string;
|
|
392
410
|
};
|
|
393
411
|
};
|
|
412
|
+
/**
|
|
413
|
+
* WorkerOptionsError: 1110-1119
|
|
414
|
+
*/
|
|
394
415
|
export declare const WorkerOptionsError: {
|
|
395
|
-
|
|
416
|
+
1110: {
|
|
396
417
|
message: string;
|
|
397
418
|
};
|
|
398
|
-
|
|
419
|
+
1111: {
|
|
399
420
|
message: string;
|
|
400
421
|
};
|
|
401
|
-
|
|
422
|
+
1112: {
|
|
402
423
|
message: string;
|
|
403
424
|
};
|
|
404
|
-
|
|
425
|
+
1113: {
|
|
405
426
|
message: string;
|
|
406
427
|
};
|
|
407
|
-
|
|
428
|
+
1114: {
|
|
408
429
|
message: string;
|
|
409
430
|
};
|
|
410
|
-
|
|
431
|
+
1115: {
|
|
411
432
|
message: string;
|
|
412
433
|
};
|
|
413
|
-
|
|
434
|
+
1116: {
|
|
414
435
|
message: string;
|
|
415
436
|
};
|
|
416
|
-
|
|
437
|
+
1117: {
|
|
417
438
|
message: string;
|
|
418
439
|
};
|
|
419
|
-
|
|
440
|
+
1118: {
|
|
420
441
|
message: string;
|
|
421
442
|
};
|
|
422
443
|
};
|
|
444
|
+
/**
|
|
445
|
+
* BufferReaderError: 1000-1009
|
|
446
|
+
*/
|
|
423
447
|
export declare const BufferReaderError: {
|
|
424
448
|
1000: {
|
|
425
449
|
message: string;
|
|
@@ -428,43 +452,109 @@ export declare const BufferReaderError: {
|
|
|
428
452
|
message: string;
|
|
429
453
|
};
|
|
430
454
|
};
|
|
455
|
+
/**
|
|
456
|
+
* BufferWriterError: 1010-1019
|
|
457
|
+
*/
|
|
431
458
|
export declare const BufferWriterError: {
|
|
432
|
-
|
|
459
|
+
1010: {
|
|
433
460
|
message: string;
|
|
434
461
|
};
|
|
435
462
|
};
|
|
463
|
+
/**
|
|
464
|
+
* TtlConfigurableError: 1020-1029
|
|
465
|
+
*/
|
|
436
466
|
export declare const TtlConfigurableError: {
|
|
437
|
-
|
|
467
|
+
1020: {
|
|
438
468
|
message: string;
|
|
439
469
|
};
|
|
440
|
-
|
|
470
|
+
1021: {
|
|
441
471
|
message: string;
|
|
442
472
|
};
|
|
443
|
-
|
|
473
|
+
1022: {
|
|
444
474
|
message: string;
|
|
445
475
|
};
|
|
446
476
|
};
|
|
477
|
+
/**
|
|
478
|
+
* OwnableError: 1030-1039
|
|
479
|
+
*/
|
|
447
480
|
export declare const OwnableError: {
|
|
448
|
-
|
|
481
|
+
1030: {
|
|
482
|
+
message: string;
|
|
483
|
+
};
|
|
484
|
+
1031: {
|
|
485
|
+
message: string;
|
|
486
|
+
};
|
|
487
|
+
1032: {
|
|
449
488
|
message: string;
|
|
450
489
|
};
|
|
451
|
-
|
|
490
|
+
1033: {
|
|
491
|
+
message: string;
|
|
492
|
+
};
|
|
493
|
+
1034: {
|
|
494
|
+
message: string;
|
|
495
|
+
};
|
|
496
|
+
1035: {
|
|
452
497
|
message: string;
|
|
453
498
|
};
|
|
454
499
|
};
|
|
500
|
+
/**
|
|
501
|
+
* BytesExtError: 1040-1049
|
|
502
|
+
*/
|
|
455
503
|
export declare const BytesExtError: {
|
|
456
|
-
|
|
504
|
+
1040: {
|
|
457
505
|
message: string;
|
|
458
506
|
};
|
|
459
507
|
};
|
|
508
|
+
/**
|
|
509
|
+
* UpgradeableError: 1050-1059
|
|
510
|
+
*/
|
|
460
511
|
export declare const UpgradeableError: {
|
|
461
|
-
|
|
512
|
+
1050: {
|
|
462
513
|
message: string;
|
|
463
514
|
};
|
|
464
515
|
};
|
|
516
|
+
/**
|
|
517
|
+
* MultisigError: 1060-1069
|
|
518
|
+
*/
|
|
519
|
+
export declare const MultisigError: {
|
|
520
|
+
1060: {
|
|
521
|
+
message: string;
|
|
522
|
+
};
|
|
523
|
+
1061: {
|
|
524
|
+
message: string;
|
|
525
|
+
};
|
|
526
|
+
1062: {
|
|
527
|
+
message: string;
|
|
528
|
+
};
|
|
529
|
+
1063: {
|
|
530
|
+
message: string;
|
|
531
|
+
};
|
|
532
|
+
1064: {
|
|
533
|
+
message: string;
|
|
534
|
+
};
|
|
535
|
+
1065: {
|
|
536
|
+
message: string;
|
|
537
|
+
};
|
|
538
|
+
1066: {
|
|
539
|
+
message: string;
|
|
540
|
+
};
|
|
541
|
+
1067: {
|
|
542
|
+
message: string;
|
|
543
|
+
};
|
|
544
|
+
};
|
|
545
|
+
export type MultisigStorage = {
|
|
546
|
+
tag: "Signers";
|
|
547
|
+
values: void;
|
|
548
|
+
} | {
|
|
549
|
+
tag: "Threshold";
|
|
550
|
+
values: void;
|
|
551
|
+
};
|
|
465
552
|
export type OwnableStorage = {
|
|
466
553
|
tag: "Owner";
|
|
467
554
|
values: void;
|
|
555
|
+
} | {
|
|
556
|
+
tag: "PendingOwner";
|
|
557
|
+
values: void;
|
|
468
558
|
};
|
|
469
559
|
/**
|
|
470
560
|
* TTL configuration: threshold (when to extend) and extend_to (target TTL).
|
|
@@ -493,6 +583,9 @@ export type UpgradeableStorage = {
|
|
|
493
583
|
tag: "Migrating";
|
|
494
584
|
values: void;
|
|
495
585
|
};
|
|
586
|
+
/**
|
|
587
|
+
* WorkerError: 1200-1299
|
|
588
|
+
*/
|
|
496
589
|
export declare const WorkerError: {
|
|
497
590
|
1200: {
|
|
498
591
|
message: string;
|
|
@@ -1422,52 +1515,6 @@ export interface Client {
|
|
|
1422
1515
|
*/
|
|
1423
1516
|
simulate?: boolean;
|
|
1424
1517
|
}) => Promise<AssembledTransaction<string>>;
|
|
1425
|
-
/**
|
|
1426
|
-
* Construct and simulate a set_whitelisted_fn 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.
|
|
1427
|
-
* Sets whether a (contract, function) pair is whitelisted.
|
|
1428
|
-
* When `allowed` is false, the entry is removed from storage to save space.
|
|
1429
|
-
*
|
|
1430
|
-
* Only the contract owner can call this function.
|
|
1431
|
-
*/
|
|
1432
|
-
set_whitelisted_fn: ({ contract, fn_name, allowed }: {
|
|
1433
|
-
contract: string;
|
|
1434
|
-
fn_name: string;
|
|
1435
|
-
allowed: boolean;
|
|
1436
|
-
}, txnOptions?: {
|
|
1437
|
-
/**
|
|
1438
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1439
|
-
*/
|
|
1440
|
-
fee?: number;
|
|
1441
|
-
/**
|
|
1442
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1443
|
-
*/
|
|
1444
|
-
timeoutInSeconds?: number;
|
|
1445
|
-
/**
|
|
1446
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1447
|
-
*/
|
|
1448
|
-
simulate?: boolean;
|
|
1449
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1450
|
-
/**
|
|
1451
|
-
* Construct and simulate a is_whitelisted_fn 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.
|
|
1452
|
-
* Returns whether a (contract, function) pair is whitelisted.
|
|
1453
|
-
*/
|
|
1454
|
-
is_whitelisted_fn: ({ contract, fn_name }: {
|
|
1455
|
-
contract: string;
|
|
1456
|
-
fn_name: string;
|
|
1457
|
-
}, txnOptions?: {
|
|
1458
|
-
/**
|
|
1459
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1460
|
-
*/
|
|
1461
|
-
fee?: number;
|
|
1462
|
-
/**
|
|
1463
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1464
|
-
*/
|
|
1465
|
-
timeoutInSeconds?: number;
|
|
1466
|
-
/**
|
|
1467
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1468
|
-
*/
|
|
1469
|
-
simulate?: boolean;
|
|
1470
|
-
}) => Promise<AssembledTransaction<boolean>>;
|
|
1471
1518
|
/**
|
|
1472
1519
|
* Construct and simulate a withdraw_token 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.
|
|
1473
1520
|
* Withdraws a token from the contract to a specified address.
|
|
@@ -1562,18 +1609,9 @@ export interface Client {
|
|
|
1562
1609
|
simulate?: boolean;
|
|
1563
1610
|
}) => Promise<AssembledTransaction<null>>;
|
|
1564
1611
|
/**
|
|
1565
|
-
* Construct and simulate a
|
|
1566
|
-
* Extends the instance TTL.
|
|
1567
|
-
*
|
|
1568
|
-
* # Arguments
|
|
1569
|
-
*
|
|
1570
|
-
* * `threshold` - The threshold to extend the TTL.
|
|
1571
|
-
* * `extend_to` - The TTL to extend to.
|
|
1612
|
+
* 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.
|
|
1572
1613
|
*/
|
|
1573
|
-
|
|
1574
|
-
threshold: u32;
|
|
1575
|
-
extend_to: u32;
|
|
1576
|
-
}, txnOptions?: {
|
|
1614
|
+
authorizer: (txnOptions?: {
|
|
1577
1615
|
/**
|
|
1578
1616
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1579
1617
|
*/
|
|
@@ -1586,7 +1624,7 @@ export interface Client {
|
|
|
1586
1624
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1587
1625
|
*/
|
|
1588
1626
|
simulate?: boolean;
|
|
1589
|
-
}) => Promise<AssembledTransaction<
|
|
1627
|
+
}) => Promise<AssembledTransaction<string>>;
|
|
1590
1628
|
/**
|
|
1591
1629
|
* 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.
|
|
1592
1630
|
* Sets TTL configs for instance and persistent storage.
|
|
@@ -1679,6 +1717,32 @@ export interface Client {
|
|
|
1679
1717
|
*/
|
|
1680
1718
|
simulate?: boolean;
|
|
1681
1719
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1720
|
+
/**
|
|
1721
|
+
* 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.
|
|
1722
|
+
* Extends the instance TTL.
|
|
1723
|
+
*
|
|
1724
|
+
* # Arguments
|
|
1725
|
+
*
|
|
1726
|
+
* * `threshold` - The threshold to extend the TTL (if current TTL is below this, extend).
|
|
1727
|
+
* * `extend_to` - The TTL to extend to.
|
|
1728
|
+
*/
|
|
1729
|
+
extend_instance_ttl: ({ threshold, extend_to }: {
|
|
1730
|
+
threshold: u32;
|
|
1731
|
+
extend_to: u32;
|
|
1732
|
+
}, txnOptions?: {
|
|
1733
|
+
/**
|
|
1734
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1735
|
+
*/
|
|
1736
|
+
fee?: number;
|
|
1737
|
+
/**
|
|
1738
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1739
|
+
*/
|
|
1740
|
+
timeoutInSeconds?: number;
|
|
1741
|
+
/**
|
|
1742
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1743
|
+
*/
|
|
1744
|
+
simulate?: boolean;
|
|
1745
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1682
1746
|
/**
|
|
1683
1747
|
* 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.
|
|
1684
1748
|
* Returns the current owner address, or None if no owner is set.
|
|
@@ -1697,9 +1761,34 @@ export interface Client {
|
|
|
1697
1761
|
*/
|
|
1698
1762
|
simulate?: boolean;
|
|
1699
1763
|
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1764
|
+
/**
|
|
1765
|
+
* Construct and simulate a pending_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1766
|
+
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
1767
|
+
*/
|
|
1768
|
+
pending_owner: (txnOptions?: {
|
|
1769
|
+
/**
|
|
1770
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1771
|
+
*/
|
|
1772
|
+
fee?: number;
|
|
1773
|
+
/**
|
|
1774
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1775
|
+
*/
|
|
1776
|
+
timeoutInSeconds?: number;
|
|
1777
|
+
/**
|
|
1778
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1779
|
+
*/
|
|
1780
|
+
simulate?: boolean;
|
|
1781
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1700
1782
|
/**
|
|
1701
1783
|
* Construct and simulate a transfer_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1702
|
-
* Transfers ownership to a new address.
|
|
1784
|
+
* Transfers ownership immediately to a new address.
|
|
1785
|
+
*
|
|
1786
|
+
* Use with caution - if you transfer to a wrong address, ownership is lost forever.
|
|
1787
|
+
* Consider using `propose_ownership_transfer` instead.
|
|
1788
|
+
*
|
|
1789
|
+
* # Panics
|
|
1790
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1791
|
+
* - `TransferInProgress` if a 2-step transfer is in progress
|
|
1703
1792
|
*/
|
|
1704
1793
|
transfer_ownership: ({ new_owner }: {
|
|
1705
1794
|
new_owner: string;
|
|
@@ -1717,9 +1806,71 @@ export interface Client {
|
|
|
1717
1806
|
*/
|
|
1718
1807
|
simulate?: boolean;
|
|
1719
1808
|
}) => Promise<AssembledTransaction<null>>;
|
|
1809
|
+
/**
|
|
1810
|
+
* Construct and simulate a propose_ownership_transfer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1811
|
+
* Proposes an ownership transfer to a new address.
|
|
1812
|
+
*
|
|
1813
|
+
* The new owner must call `accept_ownership()` within `ttl` ledgers
|
|
1814
|
+
* to complete the transfer. The pending transfer will automatically expire after.
|
|
1815
|
+
*
|
|
1816
|
+
* # Arguments
|
|
1817
|
+
* - `new_owner` - The proposed new owner
|
|
1818
|
+
* - `ttl` - Number of ledgers the new owner has to accept.
|
|
1819
|
+
* Use `0` to cancel a pending transfer (new_owner must match pending).
|
|
1820
|
+
*
|
|
1821
|
+
* # Panics
|
|
1822
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1823
|
+
* - `NoPendingTransfer` when cancelling and no pending transfer exists
|
|
1824
|
+
* - `InvalidTtl` if ttl exceeds max TTL
|
|
1825
|
+
* - `InvalidPendingOwner` when cancelling with wrong new_owner address
|
|
1826
|
+
*/
|
|
1827
|
+
propose_ownership_transfer: ({ new_owner, ttl }: {
|
|
1828
|
+
new_owner: string;
|
|
1829
|
+
ttl: u32;
|
|
1830
|
+
}, txnOptions?: {
|
|
1831
|
+
/**
|
|
1832
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1833
|
+
*/
|
|
1834
|
+
fee?: number;
|
|
1835
|
+
/**
|
|
1836
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1837
|
+
*/
|
|
1838
|
+
timeoutInSeconds?: number;
|
|
1839
|
+
/**
|
|
1840
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1841
|
+
*/
|
|
1842
|
+
simulate?: boolean;
|
|
1843
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1844
|
+
/**
|
|
1845
|
+
* Construct and simulate a accept_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1846
|
+
* Accepts a pending 2-step ownership transfer.
|
|
1847
|
+
*
|
|
1848
|
+
* Must be called by the pending owner before the TTL expires.
|
|
1849
|
+
*
|
|
1850
|
+
* # Panics
|
|
1851
|
+
* - `NoPendingTransfer` if there is no pending transfer (or it expired)
|
|
1852
|
+
*/
|
|
1853
|
+
accept_ownership: (txnOptions?: {
|
|
1854
|
+
/**
|
|
1855
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1856
|
+
*/
|
|
1857
|
+
fee?: number;
|
|
1858
|
+
/**
|
|
1859
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1860
|
+
*/
|
|
1861
|
+
timeoutInSeconds?: number;
|
|
1862
|
+
/**
|
|
1863
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1864
|
+
*/
|
|
1865
|
+
simulate?: boolean;
|
|
1866
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1720
1867
|
/**
|
|
1721
1868
|
* Construct and simulate a renounce_ownership transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1722
|
-
* Permanently renounces ownership.
|
|
1869
|
+
* Permanently renounces ownership.
|
|
1870
|
+
*
|
|
1871
|
+
* # Panics
|
|
1872
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1873
|
+
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
1723
1874
|
*/
|
|
1724
1875
|
renounce_ownership: (txnOptions?: {
|
|
1725
1876
|
/**
|
|
@@ -1740,14 +1891,13 @@ export declare class Client extends ContractClient {
|
|
|
1740
1891
|
readonly options: ContractClientOptions;
|
|
1741
1892
|
static deploy<T = Client>(
|
|
1742
1893
|
/** Constructor/Initialization Args for the contract's `__constructor` method */
|
|
1743
|
-
{ endpoint, owner, admins, message_libs, price_feed, default_multiplier_bps,
|
|
1894
|
+
{ endpoint, owner, admins, message_libs, price_feed, default_multiplier_bps, worker_fee_lib, deposit_address }: {
|
|
1744
1895
|
endpoint: string;
|
|
1745
1896
|
owner: string;
|
|
1746
1897
|
admins: Array<string>;
|
|
1747
1898
|
message_libs: Array<string>;
|
|
1748
1899
|
price_feed: string;
|
|
1749
1900
|
default_multiplier_bps: u32;
|
|
1750
|
-
whitelist: Array<readonly [string, string]>;
|
|
1751
1901
|
worker_fee_lib: string;
|
|
1752
1902
|
deposit_address: string;
|
|
1753
1903
|
},
|
|
@@ -1791,19 +1941,21 @@ export declare class Client extends ContractClient {
|
|
|
1791
1941
|
dst_config: (json: string) => AssembledTransaction<Option<DstConfig>>;
|
|
1792
1942
|
native_drop: (json: string) => AssembledTransaction<null>;
|
|
1793
1943
|
endpoint: (json: string) => AssembledTransaction<string>;
|
|
1794
|
-
set_whitelisted_fn: (json: string) => AssembledTransaction<null>;
|
|
1795
|
-
is_whitelisted_fn: (json: string) => AssembledTransaction<boolean>;
|
|
1796
1944
|
withdraw_token: (json: string) => AssembledTransaction<null>;
|
|
1797
1945
|
set_admin: (json: string) => AssembledTransaction<null>;
|
|
1798
1946
|
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1799
1947
|
migrate: (json: string) => AssembledTransaction<null>;
|
|
1800
|
-
|
|
1948
|
+
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1801
1949
|
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1802
1950
|
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
1803
1951
|
freeze_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1804
1952
|
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1953
|
+
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1805
1954
|
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1955
|
+
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1806
1956
|
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1957
|
+
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1958
|
+
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1807
1959
|
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
1808
1960
|
};
|
|
1809
1961
|
}
|