@layerzerolabs/protocol-stellar-v2 0.2.18 → 0.2.20
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 +303 -253
- package/.turbo/turbo-lint.log +66 -65
- package/.turbo/turbo-test.log +1312 -1282
- package/Cargo.lock +21 -8
- package/Cargo.toml +2 -0
- package/contracts/ERROR_SPEC.md +9 -2
- package/contracts/common-macros/src/contract_ttl.rs +18 -7
- package/contracts/common-macros/src/lib.rs +4 -4
- package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +7 -12
- package/contracts/common-macros/src/upgradeable.rs +15 -21
- package/contracts/message-libs/uln-302/src/events.rs +4 -0
- package/contracts/message-libs/uln-302/src/send_uln.rs +23 -7
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +38 -64
- package/contracts/oapps/counter/Cargo.toml +1 -0
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
- package/contracts/oapps/oapp/src/oapp_receiver.rs +1 -1
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +113 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +111 -82
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +293 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +331 -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 +28 -127
- package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +23 -8
- package/contracts/oapps/oft/src/extensions/pausable.rs +19 -4
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +52 -28
- package/contracts/oapps/oft/src/lib.rs +10 -14
- package/contracts/oapps/oft/src/oft.rs +143 -193
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -11
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +12 -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 +126 -29
- 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/lib.rs +18 -0
- package/contracts/oapps/oft-core/src/oft_core.rs +479 -0
- package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -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 -4
- 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 +46 -27
- package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
- package/contracts/upgrader/src/lib.rs +30 -57
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
- package/contracts/utils/src/buffer_reader.rs +1 -0
- package/contracts/utils/src/errors.rs +8 -2
- package/contracts/utils/src/ownable.rs +125 -3
- package/contracts/utils/src/tests/option_ext.rs +1 -1
- package/contracts/utils/src/tests/ownable.rs +445 -7
- package/contracts/utils/src/tests/ttl_configurable.rs +2 -2
- package/contracts/utils/src/tests/upgradeable.rs +372 -175
- package/contracts/utils/src/ttl_configurable.rs +3 -3
- package/contracts/utils/src/upgradeable.rs +48 -23
- package/contracts/workers/dvn/Cargo.toml +1 -0
- package/contracts/workers/dvn/src/auth.rs +12 -42
- package/contracts/workers/dvn/src/dvn.rs +16 -31
- package/contracts/workers/dvn/src/errors.rs +0 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
- package/contracts/workers/dvn/src/lib.rs +4 -3
- package/contracts/workers/dvn/src/tests/auth.rs +1 -1
- package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
- package/contracts/workers/dvn/src/tests/setup.rs +5 -9
- package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -5
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +2 -3
- package/contracts/workers/executor/Cargo.toml +1 -0
- package/contracts/workers/executor/src/executor.rs +15 -26
- package/contracts/workers/executor-fee-lib/Cargo.toml +2 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +63 -5
- package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
- package/contracts/workers/executor-fee-lib/src/lib.rs +3 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
- package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
- package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
- package/contracts/workers/executor-helper/src/lib.rs +3 -0
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
- package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
- package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
- package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
- package/contracts/workers/price-feed/Cargo.toml +2 -1
- package/contracts/workers/price-feed/src/events.rs +1 -1
- package/contracts/workers/price-feed/src/lib.rs +3 -0
- package/contracts/workers/price-feed/src/price_feed.rs +6 -12
- package/contracts/workers/price-feed/src/storage.rs +1 -1
- package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
- package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
- package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
- package/contracts/workers/price-feed/src/types.rs +1 -1
- package/contracts/workers/worker/src/errors.rs +0 -3
- package/contracts/workers/worker/src/lib.rs +0 -2
- package/contracts/workers/worker/src/storage.rs +32 -29
- package/contracts/workers/worker/src/tests/setup.rs +1 -7
- package/contracts/workers/worker/src/tests/worker.rs +50 -42
- package/contracts/workers/worker/src/worker.rs +49 -58
- package/package.json +4 -5
- package/sdk/.turbo/turbo-test.log +229 -217
- package/sdk/dist/generated/bml.d.ts +39 -1
- package/sdk/dist/generated/bml.js +33 -8
- package/sdk/dist/generated/counter.d.ts +131 -3
- package/sdk/dist/generated/counter.js +41 -10
- package/sdk/dist/generated/dvn.d.ts +431 -362
- package/sdk/dist/generated/dvn.js +80 -55
- package/sdk/dist/generated/dvn_fee_lib.d.ts +327 -251
- package/sdk/dist/generated/dvn_fee_lib.js +55 -57
- package/sdk/dist/generated/endpoint.d.ts +131 -3
- package/sdk/dist/generated/endpoint.js +41 -10
- package/sdk/dist/generated/executor.d.ts +503 -339
- package/sdk/dist/generated/executor.js +80 -48
- package/sdk/dist/generated/executor_fee_lib.d.ts +395 -319
- package/sdk/dist/generated/executor_fee_lib.js +54 -56
- package/sdk/dist/generated/executor_helper.d.ts +53 -187
- package/sdk/dist/generated/executor_helper.js +47 -29
- package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
- package/sdk/dist/generated/layerzero_view.js +294 -0
- package/sdk/dist/generated/oft.d.ts +1851 -0
- package/sdk/dist/generated/oft.js +347 -0
- package/sdk/dist/generated/price_feed.d.ts +329 -253
- package/sdk/dist/generated/price_feed.js +55 -57
- package/sdk/dist/generated/sml.d.ts +131 -3
- package/sdk/dist/generated/sml.js +41 -10
- package/sdk/dist/generated/treasury.d.ts +131 -3
- package/sdk/dist/generated/treasury.js +41 -10
- package/sdk/dist/generated/uln302.d.ts +131 -3
- package/sdk/dist/generated/uln302.js +43 -12
- package/sdk/dist/generated/upgrader.d.ts +201 -15
- package/sdk/dist/generated/upgrader.js +99 -1
- package/sdk/dist/index.d.ts +2 -2
- package/sdk/dist/index.js +3 -3
- package/sdk/package.json +3 -2
- package/sdk/src/index.ts +3 -3
- package/sdk/test/oft-sml.test.ts +20 -20
- package/sdk/test/upgrader.test.ts +2 -3
- package/sdk/turbo.json +8 -0
- package/tools/ts-bindings-gen/Cargo.toml +2 -0
- package/tools/ts-bindings-gen/src/main.rs +53 -5
- package/turbo.json +0 -2
- 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/oft_impl.rs +0 -201
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
- package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -917
- package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -751
- package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -434
- package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1080
- 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 -174
- package/sdk/dist/generated/oft_std.d.ts +0 -1722
- package/sdk/dist/generated/oft_std.js +0 -316
- package/sdk/dist/wasm/blocked-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/blocked-message-lib.js +0 -2
- package/sdk/dist/wasm/counter.d.ts +0 -1
- package/sdk/dist/wasm/counter.js +0 -2
- package/sdk/dist/wasm/dvn-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/dvn-fee-lib.js +0 -2
- package/sdk/dist/wasm/dvn.d.ts +0 -1
- package/sdk/dist/wasm/dvn.js +0 -2
- package/sdk/dist/wasm/endpoint-v2.d.ts +0 -1
- package/sdk/dist/wasm/endpoint-v2.js +0 -2
- package/sdk/dist/wasm/executor-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/executor-fee-lib.js +0 -2
- package/sdk/dist/wasm/executor-helper.d.ts +0 -1
- package/sdk/dist/wasm/executor-helper.js +0 -2
- package/sdk/dist/wasm/executor.d.ts +0 -1
- package/sdk/dist/wasm/executor.js +0 -2
- package/sdk/dist/wasm/layerzero-views.d.ts +0 -1
- package/sdk/dist/wasm/layerzero-views.js +0 -2
- package/sdk/dist/wasm/oft-std.d.ts +0 -1
- package/sdk/dist/wasm/oft-std.js +0 -2
- package/sdk/dist/wasm/price-feed.d.ts +0 -1
- package/sdk/dist/wasm/price-feed.js +0 -2
- package/sdk/dist/wasm/simple-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/simple-message-lib.js +0 -2
- package/sdk/dist/wasm/treasury.d.ts +0 -1
- package/sdk/dist/wasm/treasury.js +0 -2
- package/sdk/dist/wasm/uln302.d.ts +0 -1
- package/sdk/dist/wasm/uln302.js +0 -2
- package/sdk/dist/wasm/upgrader.d.ts +0 -1
- package/sdk/dist/wasm/upgrader.js +0 -2
- package/sdk/dist/wasm.d.ts +0 -15
- package/sdk/dist/wasm.js +0 -15
- /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/errors.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/storage.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.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/contracts/oapps/{oft → oft-core}/src/types.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
|
@@ -4,7 +4,21 @@ import type { u32, u64, u128, i128, Option } from '@stellar/stellar-sdk/contract
|
|
|
4
4
|
export * from '@stellar/stellar-sdk';
|
|
5
5
|
export * as contract from '@stellar/stellar-sdk/contract';
|
|
6
6
|
export * as rpc from '@stellar/stellar-sdk/rpc';
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Embedded WASM bytecode (base64-encoded)
|
|
9
|
+
* Size: 57016 bytes (55.68 KB)
|
|
10
|
+
*/
|
|
11
|
+
export declare const WASM_BASE64 = "AGFzbQEAAAABsAEdYAR+fn5+AX5gAn5+AX5gAX4BfmAAAX5gA35+fgF+YAN/f38AYAJ/fwF+YAJ+fgF/YAN/fn4AYAAAYAABf2ABfwBgAn9/AGABfwF/YAF/AX5gAn5/AGABfgBgAn9+AGAEf39/fwF+YAF+AX9gBX5/f39/AGACf38Bf2ADf39+AGAFfn5+fn4BfmAFf35/f34AYAh+fn5+fn5+fgF+YAJ+fgBgA35/fwF+YAN/f38BfwL9ASoBbAE3AAABbAExAAEBYQEwAAIBdgFkAAEBdgEzAAIBdgEyAAEBdgE2AAEBeAExAAEBdgFfAAMBdgExAAEBYgE4AAIBYgEzAAEBYgFlAAEBYgEwAAIBYwEwAAQBdgE4AAIBdgE5AAIBbAEyAAEBbAFfAAQBeAE3AAMBZAFfAAQBZAEwAAQBbAE2AAIBaQEwAAIBaQEzAAEBaQE1AAIBaQE0AAIBbQFhAAABdgFnAAEBYgFtAAQBaQE4AAIBaQE3AAIBaQE2AAEBaQFfAAIBYgFqAAEBbQE5AAQBeAEwAAEBeAEzAAMBeAE4AAMBbAEwAAEBbAE4AAEBeAE1AAIDqQGnAQUGBwcHBwgJCgsMDQoOBwMDAwsPCQsQDgsFEQgPAxERCwUCEhATDwMGCwwMCgwTDQsLEwoTCg4TDwwRFBERDAgRCBEEEQwCFREREQMCCQIWAQEBCwsBAQsBEAQBEAEQEAMCAwIDAgMCAgMDAQIDAxcYCBcBDAYBAhcDGQwMEAADAREKDgMMAwMBAwMCGgEJCAMDAgsCAwwDCRENGwUREQUODAURDBwcBAUBcAEBAQUDAQARBiEEfwFBgIDAAAt/AEGohcAAC38AQYCNwAALfwBBgI3AAAsHkgc1Bm1lbW9yeQIADF9fY2hlY2tfYXV0aABtCnNldF9wYXVzZWQAeAlzZXRfYWRtaW4AehlzZXRfc3VwcG9ydGVkX21lc3NhZ2VfbGliAHsNc2V0X2FsbG93bGlzdAB8DHNldF9kZW55bGlzdAB/GnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAIABE3NldF9kZXBvc2l0X2FkZHJlc3MAggEac2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAhAESc2V0X3dvcmtlcl9mZWVfbGliAIUBDnNldF9wcmljZV9mZWVkAIcBBnBhdXNlZACKAQhpc19hZG1pbgCLAQZhZG1pbnMAjAEYaXNfc3VwcG9ydGVkX21lc3NhZ2VfbGliAI0BDG1lc3NhZ2VfbGlicwCOAQ9pc19vbl9hbGxvd2xpc3QAjwEOYWxsb3dsaXN0X3NpemUAkAEOaXNfb25fZGVueWxpc3QAkQEHaGFzX2FjbACSARZkZWZhdWx0X211bHRpcGxpZXJfYnBzAJMBD2RlcG9zaXRfYWRkcmVzcwCUARpnZXRfc3VwcG9ydGVkX29wdGlvbl90eXBlcwCWAQ53b3JrZXJfZmVlX2xpYgCXAQpwcmljZV9mZWVkAJgBCmFzc2lnbl9qb2IAmQEHZ2V0X2ZlZQCcAQ5zZXRfZHN0X2NvbmZpZwCgAQpkc3RfY29uZmlnAKEBC25hdGl2ZV9kcm9wAKIBCGVuZHBvaW50AKMBDV9fY29uc3RydWN0b3IApAEOd2l0aGRyYXdfdG9rZW4AqAEKYXV0aG9yaXplcgCpAQ9zZXRfdHRsX2NvbmZpZ3MAqgELdHRsX2NvbmZpZ3MArgESZnJlZXplX3R0bF9jb25maWdzALABFWlzX3R0bF9jb25maWdzX2Zyb3plbgCxARNleHRlbmRfaW5zdGFuY2VfdHRsALIBBW93bmVyALMBDXBlbmRpbmdfb3duZXIAtAESdHJhbnNmZXJfb3duZXJzaGlwALUBGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyALcBEGFjY2VwdF9vd25lcnNoaXAAugEScmVub3VuY2Vfb3duZXJzaGlwALsBB3VwZ3JhZGUAvAEHbWlncmF0ZQC+AQZmcmVlemUAvwEJaXNfZnJvemVuAMEBAV8DAQpfX2RhdGFfZW5kAwILX19oZWFwX2Jhc2UDAwrvrQGnAScAQQAgABCrgICAAEIBIAGtQiCGQgSEIAKtQiCGQgSEEICAgIAAGgubAQIBfwF+I4CAgIAAQRBrIgIkgICAgAACQAJAAkACQCAAQQFxRQ0AIAJBjYPAgABBCBDDgICAACACKAIADQIgAiACKQMIEMSAgIAADAELIAJBhIPAgABBCRDDgICAACACKAIADQEgAiACKQMIIAGtQiCGQgSEEMWAgIAACyACKQMIIQMgAikDAFANAQsACyACQRBqJICAgIAAIAMLDwAgACABEK2AgIAAQQFzCw0AIAAgARCkgICAAFALDwAgACABEK+AgIAAQQFzC6IBAQN/I4CAgIAAQRBrIgIkgICAgAACQAJAAkAgAEL/AYNCDlINACABQv8Bg0IOUQ0BCyAAIAEQpICAgABQIQMMAQsgAiABQgiINwMIIAIgAEIIiDcDAAJAA0AgAhDEgYCAACEDIAJBCGoQxIGAgAAhBCADQYCAxABGDQEgAyAERg0AC0EAIQMMAQsgBEGAgMQARiEDCyACQRBqJICAgIAAIAMLNwEBfkIAIQMCQAJAIAFCAlENACABp0EBcQ0BIAAgAjcDCEIBIQMLIAAgAzcDAA8LELGAgIAAAAsJABDCgYCAAAALWAECfyOAgICAAEEQayIAJICAgIAAIABBBGoQs4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELSAgIAAC0EAELWAgIAAIQEgAEEQaiSAgICAACABQf0BcQsMACAAQQEQy4GAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQqICAgAAaC0cCAX8BfkECIQECQCAAEMqBgIAAIgJCAhC4gICAAEUNAEEBIQECQAJAIAJCAhCBgICAAKdB/wFxDgIBAgALAAtBACEBCyABC4sBAgJ/AX4jgICAgABBEGsiACSAgICAACAAQQRqELOAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC0gICAAAtBACEBAkBBABC3gICAACICQgIQuICAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUG2iMCAAEEGEMOAgIAAIAEoAgANAyABIAEpAwgQxICAgAAMAgsgAUG8iMCAAEEIEMOAgIAAIAEoAgANAiABIAEpAwgQxICAgAAMAQsgAUHEiMCAAEEKEMOAgIAAIAEoAgANASABIAEpAwgQxICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQp4CAgABCAVELFQEBfhC6gICAACIAEIKAgIAAGiAAC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAACyAAELyAgIAAIAApAwghASAAKQMAQYoIEL2AgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAELyAgIAAIAApAwghASAAKQMAQYoIEL2AgIAAIAEQgoCAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALIAAQwoCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EMCAgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABC/gICAAAJAIAApAwBQDQBCg4CAgLCBARDAgICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAAC0IAIQICQAJAQQEQwYCAgAAiA0IAELiAgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEKmAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFByYfAgABBDBDDgICAACABKAIADQIgASABKQMIEMSAgIAADAELIAFBxIfAgABBBRDDgICAACABKAIADQEgASABKQMIEMSAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQwYCAgAAiAkICELiAgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQxoGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEJ+BgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC0gBAX8jgICAgABBEGsiAySAgICAACADIAI3AwggAyABNwMAIANBAhCfgYCAACECIABCADcDACAAIAI3AwggA0EQaiSAgICAAAvNAgMBfwJ+AX8jgICAgABBMGsiAiSAgICAABDHgICAACIDIAAQg4CAgAAhBAJAAkACQAJAAkAgAQ0AIAJBCGogBBDIgICAACACKAIIIgVBAkYNASAFQQFxRQ0CIAIoAgwiBSADEISAgIAAQiCIp08NBCADIAWtQiCGQgSEEIWAgIAAIQMMBAsgBEICUQ0CQoOAgICAlgEQwICAgAAACxCxgICAAAALQoOAgICQlgEQwICAgAAACyADIAAQhoCAgAAhAwsgAkEBNgIgIAJBIGogAxDJgICAACACQRRqEMqAgIAAAkAgAigCFEEBRw0AIAJBIGogAigCGCACKAIcEMuAgIAAC0KO5q656ozk1TgQzICAgAAhAyACIAA3AyggAiABrTcDICADQeSIwIAAQQIgAkEgakECEM2AgIAAEIeAgIAAGiACQTBqJICAgIAAC6kBAgF/A34jgICAgABBMGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEBNgIAIABBEGogABDVgICAAAJAIAApAxAiAVANACAAQSRqEMqAgIAAIAAoAiRBAUcNACAAIAAoAiggACgCLBDLgICAAAsQiICAgAAhAiAAKQMYIQMgAEEwaiSAgICAACADIAIgAacbCz0BAn8CQAJAIAFCAlINAEEAIQIMAQtBAUECIAFC/wGDQgRRGyECIAFCIIinIQMLIAAgAzYCBCAAIAI2AgALFQAgABDggICAACABQgEQkoCAgAAaCwwAIABBAhDLgYCAAAslACAAEOCAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARCfgYCAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEKOAgIAACycAIAAQgoCAgAAaAkAgABDPgICAAA0AQoOAgIDAlwEQwICAgAAACwtdAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALEMeAgIAAIAAQg4CAgAAhACABQRBqJICAgIAAIABCAlIL0QIDAX8CfgF/I4CAgIAAQTBrIgIkgICAgAAQ0YCAgAAiAyAAEIOAgIAAIQQCQAJAAkACQAJAIAENACACQQhqIAQQyICAgAAgAigCCCIFQQJGDQEgBUEBcUUNAiACKAIMIgUgAxCEgICAAEIgiKdPDQQgAyAFrUIghkIEhBCFgICAACEDDAQLIARCAlENAkKDgICA0JYBEMCAgIAAAAsQsYCAgAAAC0KDgICA4JYBEMCAgIAAAAsgAyAAEIaAgIAAIQMLIAJBAjYCICACQSBqIAMQyYCAgAAgAkEUahDKgICAAAJAIAIoAhRBAUcNACACQSBqIAIoAhggAigCHBDLgICAAAtB9IjAgABBGRDSgICAABDMgICAACEDIAIgAa03AyggAiAANwMgIANBpInAgABBAiACQSBqQQIQzYCAgAAQh4CAgAAaIAJBMGokgICAgAALqQECAX8DfiOAgICAAEEwayIAJICAgIAAIABBEGoQs4CAgAACQCAAKAIQQQFHDQAgACgCFCAAKAIYELSAgIAACyAAQQI2AgAgAEEQaiAAENWAgIAAAkAgACkDECIBUA0AIABBJGoQyoCAgAAgACgCJEEBRw0AIAAgACgCKCAAKAIsEMuAgIAACxCIgICAACECIAApAxghAyAAQTBqJICAgIAAIAMgAiABpxsLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQxoGAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEKNgIAIAAgARDUgICAACABQRBqJICAgIAAC00BAn5CACECAkACQCABEOCAgIAAIgNCAhC4gICAAEUNACADQgIQgYCAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC00BAn5CACECAkACQCABEOCAgIAAIgNCARC4gICAAEUNACADQgEQgYCAgAAiAkL/AYNCywBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC3cBA38jgICAgABBIGsiACSAgICAACAAQRBqELOAgIAAAkAgACgCEEEBRw0AIAAoAhQgACgCGBC0gICAAAsgAEEENgIQIABBCGogAEEQahDXgICAACAAKAIIIQEgACgCDCECIABBIGokgICAgAAgAkEAIAFBAXEbC1oCAX4BfwJAAkACQCABEOCAgIAAIgJCAhC4gICAAA0AQQAhAQwBCyACQgIQgYCAgAAiAkL/AYNCBFINASACQiCIpyEDQQEhAQsgACADNgIEIAAgATYCAA8LAAuMAQECfyOAgICAAEEgayIBJICAgIAAIAEQs4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIELSAgIAACyABQQU2AgAgASAANwMIAkAgARDZgICAACICRQ0AIAFBFGoQyoCAgAAgASgCFEEBRw0AIAEgASgCGCABKAIcEMuAgIAACyABQSBqJICAgIAAIAILEgAgABDggICAAEIBELiAgIAAC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEJNgIAIAAgARDUgICAACABQRBqJICAgIAAC1YBAX8jgICAgABBEGsiASSAgICAACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEHNgIAIAAgARDUgICAACABQRBqJICAgIAAC4wBAQJ/I4CAgIAAQSBrIgEkgICAgAAgARCzgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtICAgAALIAFBAzYCACABIAA3AwgCQCABENmAgIAAIgJFDQAgAUEUahDKgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQy4CAgAALIAFBIGokgICAgAAgAgt3AQN/I4CAgIAAQSBrIgAkgICAgAAgAEEQahCzgICAAAJAIAAoAhBBAUcNACAAKAIUIAAoAhgQtICAgAALIABBBjYCECAAQQhqIABBEGoQ14CAgAAgACgCCCEBIAAoAgwhAiAAQSBqJICAgIAAIAJBACABQQFxGwtdAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCzgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQtICAgAALENGAgIAAIAAQg4CAgAAhACABQRBqJICAgIAAIABCAlILjwECAn8BfiOAgICAAEEQayIAJICAgIAAIAAQs4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIELSAgIAAC0EAIQEgAEEANgIAAkAgABDggICAACICQgIQuICAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAEEQaiSAgICAACABC6YEAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCAA4LAAECAwQFBgcICQoACyABQYCMwIAAQQYQw4CAgAAgASgCAA0LIAEgASkDCBDEgICAAAwKCyABQYaMwIAAQQYQw4CAgAAgASgCAA0KIAEgASkDCBDEgICAAAwJCyABQYyMwIAAQQsQw4CAgAAgASgCAA0JIAEgASkDCBDEgICAAAwICyABQZeMwIAAQQkQw4CAgAAgASgCAA0IIAEgASkDCCAAKQMIEMWAgIAADAcLIAFBoIzAgABBDRDDgICAACABKAIADQcgASABKQMIEMSAgIAADAYLIAFBrYzAgABBCBDDgICAACABKAIADQYgASABKQMIIAApAwgQxYCAgAAMBQsgAUG1jMCAAEEUEMOAgIAAIAEoAgANBSABIAEpAwgQxICAgAAMBAsgAUHJjMCAAEEOEMOAgIAAIAEoAgANBCABIAEpAwgQxICAgAAMAwsgAUHXjMCAAEEUEMOAgIAAIAEoAgANAyABIAEpAwggADUCBEIghkIEhBDFgICAAAwCCyABQeuMwIAAQQwQw4CAgAAgASgCAA0CIAEgASkDCBDEgICAAAwBCyABQfeMwIAAQQkQw4CAgAAgASgCAA0BIAEgASkDCBDEgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC3wBAn8jgICAgABBEGsiASSAgICAACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsCQAJAIAAQ2ICAgABFDQBBACECDAELAkAQ1oCAgAANAEEBIQIMAQsgABDcgICAACECCyABQRBqJICAgIAAIAILKQACQCAAp0EBcUUNAA8LIAFB0HZqrUIghkKDgICAgJYBhBDAgICAAAALaQIBfwF+AkAgASgCCCICIAEoAgxJDQAgAEICNwMADwsgASkDACACrUIghkIEhBCJgICAACEDAkAgAkEBaiICRQ0AIAAgAzcDCCABIAI2AgggACADQv8Bg0LNAFKtNwMADwsQsYCAgAAAC9wCAgJ/Bn4jgICAgABB0ABrIgIkgICAgABBACEDAkADQCADQShGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCACEEQgEhBQJAIAFC/wGDQswAUg0AIAFByIHAgABBBSACQQhqQQUQ5YCAgAAgAkEwaiACKQMIEOaAgIAAIAIoAjBBAUYNACACKQNIIQEgAikDQCEGIAJBMGogAikDEBDngICAACACKAIwDQAgAikDOCEHIAJBMGogAikDGBDngICAACACKAIwDQAgAikDICIIQv8Bg0IEUg0AIAIpAzghCSACQTBqIAIpAygQ5oCAgAAgAigCMEEBRg0AIAIpA0AhBCAAIAIpA0g3AyggACAENwMgIAAgATcDGCAAIAY3AxAgACAIQiCIpzYCQCAAIAc3AzggACAJNwMwQgAhBUIAIQQLIAAgBTcDACAAIAQ3AwggAkHQAGokgICAgAALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJuAgIAAGgt7AgF/AX4CQAJAAkAgAadB/wFxIgJBxABGDQAgAkEKRw0BQgAhAyAAQgA3AxggACABQgiINwMQDAILIAEQmYCAgAAhAyABEJqAgIAAIQEgACADNwMYIAAgATcDEEIAIQMMAQsgAEKDkICAgAE3AwhCASEDCyAAIAM3AwALXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCXgICAACEBCyAAIAM3AwAgACABNwMIC/wBAgF/BX4jgICAgABBMGsiAiSAgICAACACQQhqIAEpAwAgASkDCBDpgICAAEIBIQMCQCACKAIIDQAgAikDECEEIAJBCGogASkDKBDqgICAACACKAIIDQAgAikDECEFIAJBCGogASkDIBDqgICAACACKAIIDQAgAikDECEGIAE1AjAhByACQQhqIAEpAxAgASkDGBDpgICAACACKAIIDQAgAiACKQMQNwMoIAIgBjcDGCACIAU3AxAgAiAENwMIIAIgB0IghkIEhDcDICAAQciBwIAAQQUgAkEIakEFEM2AgIAANwMIQgAhAwsgACADNwMAIAJBMGokgICAgAALRgACQAJAIAFC//////////8AViACQgBSIAJQGw0AIAFCCIZCCoQhAgwBCyACIAEQmICAgAAhAgsgAEIANwMAIAAgAjcDCAtCAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABEMOBgIAAIAIpAwghASAAIAIpAwA3AwAgACABNwMIIAJBEGokgICAgAALgQEBAn8jgICAgABBIGsiAySAgICAAAJAAkAgAadBAXENACAAQoGAgIAwNwMADAELIAMgAhDsgICAAAJAAkAgAygCAEEBRw0AIABBAzYCBEEBIQQMAQsgACADKQMYNwMYIAAgAykDEDcDEEEAIQQLIAAgBDYCAAsgA0EgaiSAgICAAAt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJ6AgIAAIQMgARCfgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAuuDQUBfwF+AX8DfgF/I4CAgIAAQcAAayIDJICAgIAAIANBEGogABDugICAAAJAIAMoAhBBAUYNACADKQMYIQRBACEFAkADQCAFQRBGDQEgA0EwaiAFakICNwMAIAVBCGohBQwACwsgAUL/AYNCzABSDQAgAUH0gsCAAEECIANBMGpBAhDlgICAACADQRBqIAMpAzAQ7oCAgAAgAygCEA0AIAMpAzgiAUL/AYNCyABSDQAgAykDGCEAIAEQioCAgABCgICAgHCDQoCAgICACFINACACQv8Bg0LLAFINACADQRBqELOAgIAAAkAgAygCEEEBRw0AIAMoAhQgAygCGBC0gICAAAtBqIXAgACtQiCGQgSEQoSAgIDAARCLgICAACAAEIyAgIAAEI2AgIAAIgZC/wGDQs0AUg0AAkACQCAGEM+AgIAADQBCg4CAgCAhAQwBCyAAIAQgARCOgICAABoCQAJAAkACQCACEISAgIAAQv////8vVg0AIAIQhICAgABCgICAgBBUDQAgAhCPgICAACIBQv8Bg0LLAFINBSABEISAgIAAIQAgA0EANgIIIAMgATcDACADIABCIIg+AgwgA0EQaiADEO+AgIAAIAMpAxAiAUICUQ0FIAGnQQFxDQUCQCADKQMYIgGnQf8BcSIFQcoARg0AIAVBDkcNBgsCQAJAAkACQAJAIAEQ8ICAgABCIIinDgMAAQIKCyADKAIIIAMoAgwQ8YCAgABBAUsNCSADQTBqIAMQ74CAgAAgAykDMCIBQgJRDQkgAadBAXENCSADQRBqIAMpAzgQ8oCAgAAgAygCEEEBRg0JIAMpAyghBiADKQMYIQAgAykDICIBQaSCwIAAQRAQ0oCAgAAQr4CAgAANAyABQbSCwIAAQRAQ0oCAgAAQr4CAgAANAwJAIAFBxILAgABBChDSgICAABCugICAAEUNACABQc6CwIAAQQoQ0oCAgAAQroCAgAANBQsgBhCEgICAAEL/////D1YNAiADQQM2AhQMBgsgAygCCCADKAIMEPGAgIAAQQFLDQggA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPOAgIAAIAMoAhBFDQMMCAsgAygCCCADKAIMEPGAgIAAQQFLDQcgA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0HIAGnQQFxDQcgA0EQaiADKQM4EPSAgIAAIAMoAhANBwwCCyADQRBqQgEgBhCQgICAABDrgICAACADKAIQQQFxDQMgAykDKCEBIAMpAyAhACACEISAgIAAQiCIIQYCQCAAIAGEQgBSDQAgBkIBUg0CDAMLIAZCAlINAQJAAkAgAhCEgICAAEKAgICAIFQNACACQoSAgIAQEImAgIAAIgJC/wGDQssAUg0IIAIQhICAgAAhBiADQQA2AgggAyACNwMAIAMgBkIgiD4CDCADQRBqIAMQ74CAgAAgAykDECICQgJRDQggAqdBAXENCAJAIAMpAxgiAqdB/wFxIgVBygBGDQAgBUEORw0JCwJAAkACQCACEPCAgIAAQiCIpw4DAAECCwsgAygCCCADKAIMEPGAgIAAQQFLDQogA0EwaiADEO+AgIAAIAMpAzAiAkICUQ0KIAKnQQFxDQogA0EQaiADKQM4EPKAgIAAIAMoAhBBAUYNCiADKQMgIQYgAykDGCEEIAMpAyghAhD1gICAABD2gICAACEHIAIQhICAgABC/////y9WDQMgA0EDNgIUDAcLIAMoAgggAygCDBDxgICAAEEBSw0JIANBMGogAxDvgICAACADKQMwIgFCAlENCSABp0EBcQ0JIANBEGogAykDOBDzgICAACADKAIQDQkMBAsgAygCCCADKAIMEPGAgIAAQQFLDQggA0EwaiADEO+AgIAAIAMpAzAiAUICUQ0IIAGnQQFxDQggA0EQaiADKQM4EPSAgIAAIAMoAhANCAwDCxD3gICAAAALIANBEGpCASACQoSAgIAgEImAgIAAEOuAgIAAIAMoAhBBAXENAyADKQMoIQIgAykDICEIQQMhBSAGQdiCwIAAQQgQ0oCAgAAQroCAgAANBCAEIAcQrICAgAAhCSAIIACFIAIgAYWEQgBSDQQgCUUNAgwECyACEISAgIAAQoCAgIBwg0KAgICAEFINACAAEPWAgIAAEKyAgIAARQ0BC0KDgICAMCEBDAMLQgIhAQwCCyADKAIUIQULIAVBf2qtQiCGQoOAgIAQfCEBCyADQcAAaiSAgICAACABDwsAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCKgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAtKAgF+AX9CAiECAkAgASgCCCIDIAEoAgxPDQAgACABKQMAIAOtQiCGQgSEEImAgIAANwMIIAEgA0EBajYCCEIAIQILIAAgAjcDAAsSACAAQbiAwIAAQQMQxYGAgAALGQACQCABIABJDQAgASAAaw8LELGAgIAAAAvTAQICfwN+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUHMhcCAAEEDIAJBCGpBAxDlgICAACACKQMIIgFC/wGDQssAUg0AIAIpAxAiBUL/AYNCzQBSDQACQCACKQMYIganQf8BcSIDQcoARg0AIANBDkcNAQsgACABNwMYIAAgBjcDECAAIAU3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAu+AQICfwF+I4CAgIAAQSBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUH0hcCAAEECIAJBAhDlgICAACACQRBqIAIpAwAQx4GAgAAgAigCEA0AIAIpAxghASACQRBqIAIpAwgQ7oCAgAAgAigCEA0AIAAgAikDGDcDECAAIAE3AwhCACEECyAAIAQ3AwAgAkEgaiSAgICAAAvgAQICfwJ+I4CAgIAAQTBrIgIkgICAgABBACEDAkADQCADQRhGDQEgAkEIaiADakICNwMAIANBCGohAwwACwtCASEEAkAgAUL/AYNCzABSDQAgAUGUhsCAAEEDIAJBCGpBAxDlgICAACACKQMIIgFC/wGDQssAUg0AIAJBIGogAikDEBDHgYCAACACKAIgDQAgAikDKCEFIAJBIGogAikDGBDugICAACACKAIgDQAgAikDKCEEIAAgATcDGCAAIAQ3AxAgACAFNwMIQgAhBAsgACAENwMAIAJBMGokgICAgAALhwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQs4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMELSAgIAACwJAAkBBASAAEKuAgIAAIgFCAhC4gICAAEUNACABQgIQgYCAgAAiAUL/AYNCzQBRDQEACxD3gICAAAALIABBEGokgICAgAAgAQs2AAJAIABBvIPAgABBDBDSgICAABCIgICAABCUgICAACIAQv8Bg0LNAFENABCxgICAAAALIAALCQAQsYCAgAAAC50CAgJ/AX4jgICAgABBEGsiASSAgICAAAJAAkBBASAAp0H/AXEiAkEAR0EBdCACQQFGGyICQQJGDQAgARCzgICAAAJAIAEoAgBBAUcNACABKAIEIAEoAggQtICAgAALELmAgIAAIQAQ34CAgAAgAnNBAXFFDQEgAUEANgIAIAEgAkICEPmAgIAAAkACQCACQQFxDQBCjtKq3O6sz/UAEMyAgIAAIQMgASAANwMAIANBmIrAgABBASABQQEQzYCAgAAQh4CAgAAaDAELQo7SqtzurAMQzICAgAAhAyABIAA3AwAgA0GIisCAAEEBIAFBARDNgICAABCHgICAABoLIAFBEGokgICAgABCAg8LAAtCg4CAgKCXARDAgICAAAALGgAgABDggICAACABrUL/AYMgAhCSgICAABoLjQEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AIAJBBGoQs4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELSAgIAACxC5gICAABogACADQQFxEMaAgIAAIAJBEGokgICAgABCAg8LAAuNAQECfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEEahCzgICAAAJAIAIoAgRBAUcNACACKAIIIAIoAgwQtICAgAALELmAgIAAGiAAIANBAXEQ0ICAgAAgAkEQaiSAgICAAEICDwsAC6MDAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNACACQRBqELOAgIAAAkAgAigCEEEBRw0AIAIoAhQgAigCGBC0gICAAAsQuYCAgAAaIAAQ3ICAgAAhBAJAAkAgA0EBcQ0AIARFDQMgAkEDNgIQIAIgADcDGCACQRBqEOCAgIAAQgEQkYCAgAAaENaAgIAAIgRFDQUgBEF/aiEEDAELIAQNAyACQQM2AhAgAiAANwMYIAJBEGoQ/YCAgAAgAkEEahDKgICAAAJAIAIoAgRBAUcNACACQRBqIAIoAgggAigCDBDLgICAAAsQ1oCAgABBAWoiBEUNBAsgBBD+gICAAEG0icCAAEENENKAgIAAEMyAgIAAIQEgAiAANwMYIAIgA603AxAgAUHMicCAAEECIAJBEGpBAhDNgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAgJcBEMCAgIAAAAtCg4CAgKCWARDAgICAAAALELGAgIAAAAsOACAAQQFCARD5gICAAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEENgIAIAEgABDOgYCAACABQRBqJICAgIAAC+4CAQN/I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBASABp0H/AXEiA0EAR0EBdCADQQFGGyIDQQJGDQAgAkEQahCzgICAAAJAIAIoAhBBAUcNACACKAIUIAIoAhgQtICAgAALELmAgIAAGiAAENiAgIAAIQQCQAJAIANBAXENACAERQ0DIAJBBTYCECACIAA3AxggAkEQahDggICAAEIBEJGAgIAAGgwBCyAEDQMgAkEFNgIQIAIgADcDGCACQRBqEP2AgIAAIAJBBGoQyoCAgAAgAigCBEEBRw0AIAJBEGogAigCCCACKAIMEMuAgIAAC0HcicCAAEEMENKAgIAAEMyAgIAAIQEgAiAANwMYIAIgA603AxAgAUHwicCAAEECIAJBEGpBAhDNgICAABCHgICAABogAkEgaiSAgICAAEICDwsAC0KDgICAkJcBEMCAgIAAAAtCg4CAgLCWARDAgICAAAALegEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQRqELOAgIAAAkAgAigCBEEBRw0AIAIoAgggAigCDBC0gICAAAsgABDOgICAACABQiCIpxCBgYCAACACQRBqJICAgIAAQgIPCwALcgIBfwF+I4CAgIAAQRBrIgEkgICAgAAgAUEGNgIAIAEgABDOgYCAAEGgisCAAEEaENKAgIAAEMyAgIAAIQIgASAArUIghkIEhDcDACACQciKwIAAQQEgAUEBEM2AgIAAEIeAgIAAGiABQRBqJICAgIAAC6wBAQF/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACELOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBC0gICAAAsgABDOgICAACABEIOBgIAAQdCKwIAAQRMQ0oCAgAAQzICAgAAhACACIAE3AwAgAEH0isCAAEEBIAJBARDNgICAABCHgICAABogAkEQaiSAgICAAEICDwsACzEBAX8jgICAgABBEGsiASSAgICAACABQQc2AgAgASAAEM2BgIAAIAFBEGokgICAgAALlwIBAX8jgICAgABBIGsiAySAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkL/AYNCyABSDQAgA0EQahCzgICAAAJAIAMoAhBBAUcNACADKAIUIAMoAhgQtICAgAALIAAQzoCAgAAgA0EINgIQIAMgAUIgiD4CFCADQRBqEOCAgIAAIAJCARCSgICAABogA0EEahDKgICAAAJAIAMoAgRBAUcNACADQRBqIAMoAgggAygCDBDLgICAAAtBnIvAgABBGhDSgICAABDMgICAACEAIAMgAjcDGCADIAFChICAgHCDNwMQIABBzIvAgABBAiADQRBqQQIQzYCAgAAQh4CAgAAaIANBIGokgICAgABCAg8LAAusAQEBfyOAgICAAEEQayICJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALIAAQzoCAgAAgARCGgYCAAEHci8CAAEESENKAgIAAEMyAgIAAIQAgAiABNwMAIABB+IvAgABBASACQQEQzYCAgAAQh4CAgAAaIAJBEGokgICAgABCAg8LAAsxAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEJNgIAIAEgABDNgYCAACABQRBqJICAgIAAC38BAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQs0AUg0AIAJBBGoQs4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMELSAgIAACyAAEM6AgIAAIAEQiIGAgAAgARCJgYCAACACQRBqJICAgIAAQgIPCwALMQEBfyOAgICAAEEQayIBJICAgIAAIAFBCjYCACABIAAQzYGAgAAgAUEQaiSAgICAAAtdAgF/AX4jgICAgABBEGsiASSAgICAAEH8isCAAEEOENKAgIAAEMyAgIAAIQIgASAANwMIIAJBlIvAgABBASABQQhqQQEQzYCAgAAQh4CAgAAaIAFBEGokgICAgAALCQAQ34CAgACtCxsAAkAgAEL/AYNCzQBRDQAACyAAEM+AgIAArQsIABDHgICAAAsbAAJAIABC/wGDQs0AUQ0AAAsgABDegICAAK0LCAAQ0YCAgAALGwACQCAAQv8Bg0LNAFENAAALIAAQ3ICAgACtCw8AENaAgIAArUIghkIEhAsbAAJAIABC/wGDQs0AUQ0AAAsgABDYgICAAK0LGwACQCAAQv8Bg0LNAFENAAALIAAQ4YCAgACtCw8AEN2AgIAArUIghkIEhAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENuAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbC8gBAgJ/AX4jgICAgABBIGsiASSAgICAAAJAIABC/wGDQgRSDQAgAEIgiKchAiABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsgAUEINgIAIAEgAjYCBEICIQACQCABEOCAgIAAIgNCARC4gICAAEUNACADQgEQgYCAgAAiAEL/AYNCyABSDQEgAUEUahDKgICAACABKAIUQQFHDQAgASABKAIYIAEoAhwQy4CAgAALIAFBIGokgICAgAAgAA8LAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENqAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENOAgIAAIAApAwAgACkDCBCVgYCAACEBIABBEGokgICAgAAgAQuzAgEBfyOAgICAAEHAAGsiBSSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0IEUg0AIANC/wGDQgRSDQAgBEL/AYNCyABSDQAgBRCzgICAAAJAIAUoAgBBAUcNACAFKAIEIAUoAggQtICAgAALIAAQgoCAgAAaIAAQ3oCAgABFDQEgBSABIAJCIIinIANCIIinIAQQmoGAgAAgBUEwahDbgICAACAFKQM4IQAgBSkDMEG0CRDigICAACAFQTBqIAUpAwAgBSkDCBCbgYCAACAFKAIwQQFHDQILAAtCg4CAgNCXARDAgICAAAALIAUpAzghASAFIAA3AyggBSABNwMgQdCDwIAAQQIgBUEgakECEM2AgIAAIQAgBUHAAGokgICAgAAgAAvGBQQBfwl+AX8BfiOAgICAAEHwAGsiBSSAgICAACAFELOAgIAAAkAgBSgCAEEBRw0AIAUoAgQgBSgCCBC0gICAAAsCQBDfgICAAA0AAkAgARDhgICAAEUNACAFIAIQnoGAgAACQAJAIAUoAgBBAXFFDQAgBSkDKCEGIAUpAyAhByAFNQJAIQggBSkDOCEJIAUpAzAhCiAFKQMYIQsgBSkDECEMIAUQ04CAgAAgBSkDCCENIAUpAwBBuwkQ4oCAgAAgBRDagICAACAFKQMIIQ4gBSkDAEG+CRDigICAABDdgICAACEPEJOAgIAAIRAgBUHgAGogDCALEOmAgIAAIAUoAmANASAFKQNoIQsgBUHgAGogCRDqgICAACAFKAJgDQEgBSkDaCEMIAVB4ABqIAoQ6oCAgAAgBSgCYA0BIAUpA2ghCSAFQeAAaiAHIAYQ6YCAgAAgBSgCYEEBRg0BIAUpA2ghCiAFIAE3A1AgBSANNwNIIAUgBDcDQCAFIAo3AzggBSAJNwMoIAUgDDcDICAFIAs3AxggBSACrUIghkIEhDcDECAFIA+tQiCGQgSENwMIIAUgA61CIIZCBIQ3AwAgBSAIQiCGQgSENwMwIAVB0ITAgABBCyAFQQsQzYCAgAA3A2ggBSAQNwNgQQAhAgJAA0ACQCACQRBHDQBBACECAkADQCACQRBGDQEgBSACaiAFQeAAaiACaikDADcDACACQQhqIQIMAAsLIAUgDkKO1Oq1kNeyASAFQQIQn4GAgAAQlICAgAAQ7ICAgAAgBSgCAEEBRg0CIAUpAxAhASAAIAUpAxg3AwggACABNwMAIAVB8ABqJICAgIAADwsgBSACakICNwMAIAJBCGohAgwACwsQsYCAgAAAC0KDgICAEBDAgICAAAsAC0KDgICA8JYBEMCAgIAAAAtCg4CAgPCXARDAgICAAAALWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQoICAgAAhAQsgAEIANwMAIAAgATcDCAuLAQEBfyOAgICAAEEQayIFJICAgIAAAkAgAEL/AYNCzQBSDQAgAUL/AYNCzQBSDQAgAkL/AYNCBFINACADQv8Bg0IEUg0AIARC/wGDQsgAUg0AIAUgASACQiCIpyADQiCIpyAEEJqBgIAAIAUpAwAgBSkDCBCdgYCAACEBIAVBEGokgICAgAAgAQ8LAAtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQm4GAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABC90BAgF/AX4jgICAgABB0ABrIgIkgICAgAAgAhCzgICAAAJAIAIoAgBBAUcNACACKAIEIAIoAggQtICAgAALAkACQAJAQQAgARCrgICAACIDQgEQuICAgABFDQAgAiADQgEQgYCAgAAQ5ICAgAAgAigCAEEBcUUNAQALIABCADcDCCAAQgA3AwAMAQsgAEEQaiACQRBqQcAAENCBgIAAGiAAQgA3AwggAEIBNwMAIAIQyoCAgAAgAigCAEEBRw0AIAEgAigCBCACKAIIEKqAgIAACyACQdAAaiSAgICAAAsaACAArUIghkIEhCABrUIghkIEhBCcgICAAAvzBAUBfwF+AX8BfgJ/I4CAgIAAQaACayICJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQdABahCzgICAAAJAIAIoAtABQQFHDQAgAigC1AEgAigC2AEQtICAgAALIAAQzoCAgAAgARCEgICAAEIgiCEDIAJB0AFqQRBqIQRCACEAAkADQCAAIANRDQEgASAAQiCGQgSEEImAgIAAIQVBACEGAkADQCAGQRBGDQEgAkGAAWogBmpCAjcDACAGQQhqIQYMAAsLAkACQCAFQv8Bg0LMAFINACAFQfyBwIAAQQIgAkGAAWpBAhDlgICAACACQdABaiACKQOAARDkgICAACACKALQAUEBcQ0AIAJBkAFqIARBwAAQ0IGAgAAaIAIpA4gBIgVC/wGDQgRRDQELIABC/////w9RDQQgAiACQcAAakHAABDQgYCAABoMBAsgAkHAAGogAkGQAWpBwAAQ0IGAgAAaIABC/////w9RDQMgAiACQcAAakHAABDQgYCAACIGQdABaiAGQcAAENCBgIAAGiAGIAVCIIinIgc2ApACQQAgBxCrgICAACEFIAZBkAFqIAZB0AFqEOiAgIAAIAYoApABQQFGDQIgBSAGKQOYAUIBEJKAgIAAGiAGQZABahDKgICAAAJAIAYoApABQQFHDQAgByAGKAKUASAGKAKYARCqgICAAAsgAEIBfCEADAALC0HQgMCAAEEOENKAgIAAEMyAgIAAIQAgAiABNwPQASAAQeSAwIAAQQEgAkHQAWpBARDNgICAABCHgICAABogAkGgAmokgICAgABCAg8LAAsQsYCAgAAAC3oBAX8jgICAgABB4ABrIgEkgICAgAACQCAAQv8Bg0IEUg0AIAEgAEIgiKcQnoGAgAACQAJAIAEoAgBBAXENAEICIQAMAQsgAUHQAGogAUEQahDogICAACABKAJQQQFxDQEgASkDWCEACyABQeAAaiSAgICAACAADwsAC8oGAgJ/B34jgICAgABBwABrIgUkgICAgAACQAJAAkAgAEL/AYNCzQBSDQBBACEGAkADQCAGQRhGDQEgBSAGakICNwMAIAZBCGohBgwACwsgAUL/AYNCzABSDQAgAUGkg8CAAEEDIAVBAxDlgICAACAFQShqIAUpAwAQ54CAgAAgBSgCKA0AIAUpAzAhByAFQShqIAUpAwgQ7oCAgAAgBSgCKA0AIAUpAxAiCEL/AYNCBFINACACQv8Bg0IEUg0AIANC/wGDQs0AUg0AIARC/wGDQssAUg0AIAUpAzAhCSAFELOAgIAAAkAgBSgCAEEBRw0AIAUoAgQg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IAIoAghBAUcNACACKAIMIAIoAhAQpYGAgAAMAQtBARC3gICAAEICEJGAgIAAGgsCQAJAIAIoAhhBAUcNACACKAIcIAIoAiAQpoGAgAAMAQtBAhC3gICAAEICEJGAgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QfCHwIAAQQ8Q0oCAgAAQzICAgAAhACACQShqEK2BgIAAIQEgAiACQTRqEK2BgIAANwNIIAIgATcDQCAAQZSIwIAAQQIgAkHAAGpBAhDNgICAABCHgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQyIGAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAszAQJ+EKWAgIAAIQACQBCmgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxCxgICAAAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEK+BgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQs4CAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQELSAgIAACyAAQQhqELOAgIAAIABBFGoiARDKgICAACAAQTBqIABBCGoQr4GAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEK+BgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhCfgYCAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQyYGAgAAPCyAAQgA3AwAgAEICNwMIC6sBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCzgICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQtICAgAALELmAgIAAGgJAELaAgIAARQ0AQoOAgIDg/wAQwICAgAAAC0EAELeAgIAAQgFCAhCSgICAABpBpIjAgABBEhDSgICAABDMgICAAEEEQQAgAEEYakEAEM2AgIAAEIeAgIAAGiAAQSBqJICAgIAAQgILCQAQtoCAgACtCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinELSAgIAAQgIPCwALPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC8gICAACAAKQMAIAApAwgQlYGAgAAhASAAQRBqJICAgIAAIAELPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC/gICAACAAKQMAIAApAwgQlYGAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqELOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBC0gICAAAsQu4CAgAAhAhC+gICAACAAEKeBgIAAIAIgABC2gYCAACABQRBqJICAgIAAQgIPCwALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABBvYbAgABBFRDSgICAABDMgICAACEDIAIgADcDCCACIAE3AwAgA0HkhsCAAEECIAJBAhDNgICAABCHgICAABogAkEQaiSAgICAAAvcAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqELOAgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBC0gICAAAsQu4CAgAAhAwJAAkAgAUL/////D1YNACACQQhqEL+AgIAAIAIpAxAhASACKQMIQYgIEL2AgIAAIAEgABCtgICAAEUNAxC4gYCAAAwBCxCsgYCAACABQiCIp0kNA0EBIABCABC5gYCAAEEBEMGAgIAAQgAgAUKEgICAcIMiASABEICAgIAAGkH0hsCAAEEWENKAgIAAEMyAgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEGQh8CAAEEDIAJBCGpBAxDNgICAABCHgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgOCAARDAgICAAAALQoOAgIDwgAEQwICAgAAACxMAQQEQwYCAgABCABCRgICAABoLFQAgABDBgICAACABIAIQkoCAgAAaC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAELOAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBC0gICAAAsgABC/gICAACAAKQMIIQEgACkDAEGICBC9gICAACABEIKAgIAAGiAAEMKAgIAAAkAgACgCAA0AEPeAgIAAAAsgACkDCCECELiBgIAAIAEQp4GAgAAgAiABELaBgIAAIABBEGokgICAgABCAgugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCzgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQtICAgAALELuAgIAAIQEQvoCAgABBABDBgICAAEICEJGAgIAAGkGoh8CAAEETENKAgIAAEMyAgIAAIQIgACABNwMAIAJBvIfAgABBASAAQQEQzYCAgAAQh4CAgAAaIABBEGokgICAgABCAguZAQEBfyOAgICAAEEQayIBJICAgIAAIAEgABDugICAAAJAAkAgASgCAEEBRg0AIAEpAwghACABELOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBC0gICAAAsQuYCAgAAaELKAgIAADQFBARC9gYCAACAAEJaAgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwEQwICAgAAACwwAQQEgABDAgYCAAAuuAQEBfyOAgICAAEEQayIBJICAgIAAAkACQAJAIABC/wGDQsgAUg0AIAFBBGoQs4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMELSAgIAACxC5gICAABpBARC1gICAAEH9AXFFDQEgABCNgICAAEL/AYNCAlINAkEAEL2BgIAAIAFBEGokgICAgABCAg8LAAtCg4CAgLCDARDAgICAAAALQoOAgICggwEQwICAgAAAC1sBAX8jgICAgABBEGsiACSAgICAACAAQQRqELOAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBC0gICAAAsQuYCAgAAaQQBBARDAgYCAACAAQRBqJICAgIAAQgILGgAgABDKgYCAACABrUL/AYNCAhCSgICAABoLCQAQsoCAgACtCwMAAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQoYCAgAAhAQsgAEIANwMAIAAgATcDCAuWAQIBfgJ/IAApAwAhAQNAAkAgAVBFDQBBgIDEAA8LAkACQCABQjCIp0E/cSICQQFHDQBB3wAhAgwBCwJAAkACQCACQX9qQQtPDQBBLiEDDAELAkAgAkF0akEaTw0AQTUhAwwBCyACQSVNDQFBOyEDCyACIANqIQIMAQsgACABQgaGIgE3AwAMAQsLIAAgAUIGhjcDACACCxwAIAAgAa1CIIZCBIQgAq1CIIZCBIQQnYCAgAAL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQooCAgAAhAwsgAEIANwMAIAAgAzcDCAuzAgMBfwF+AX8jgICAgABBIGsiAiSAgICAAAJAAkAgAUL/AYNCywBRDQAgAEIBNwMADAELIAEQhICAgAAhAyACQQA2AgggAiABNwMAIAIgA0IgiD4CDCACQRBqIAIQ74CAgAACQCACKQMQIgFCAlENACABp0EBcQ0AAkAgAikDGCIBp0H/AXEiBEHKAEYNACAEQQ5HDQELAkAgAUGshsCAAEEBEMWBgIAAQv////8PVg0AIAIoAgggAigCDBDxgICAAEEBSw0AIAJBEGogAhDvgICAACACKQMQIgFCAlENACABp0EBcQ0AIAJBEGogAikDGBDugICAACACKAIQDQAgAikDGCEBIABCADcDACAAIAE3AwgMAgsgAEIBNwMADAELIABCATcDAAsgAkEgaiSAgICAAAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUHgh8CAAEECIAJBAhDlgICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQeCHwIAAQQIgA0ECEM2AgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUHOiMCAAEEJEMOAgIAAIAEoAgANAiABIAEpAwgQxICAgAAMAQsgAUG2iMCAAEEGEMOAgIAAIAEoAgANASABIAEpAwgQxICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgt3AgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQAJAIAEQt4CAgAAiBEICELiAgIAARQ0AIAJBBGogBEICEIGAgIAAEMiBgIAAQQEhAyACKAIEQQFGDQEgACACKQIINwIECyAAIAM2AgAgAkEQaiSAgICAAA8LAAtWAgF/AX4jgICAgABBEGsiAySAgICAACAAELeAgIAAIQQgAyABIAIQyYGAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCSgICAABogA0EQaiSAgICAAAsVACAAEOCAgIAAIAFCAhCSgICAABoLHAAgABDggICAACABrUIghkIEhEICEJKAgIAAGgu5BwEMfyOAgICAAEEQayEDAkACQCACQRBPDQAgACEEDAELAkAgACAAQQAgAGtBA3EiBWoiBk8NACAFQX9qIQcgACEEIAEhCAJAIAVFDQAgBSEJIAAhBCABIQgDQCAEIAgtAAA6AAAgCEEBaiEIIARBAWohBCAJQX9qIgkNAAsLIAdBB0kNAANAIAQgCC0AADoAACAEQQFqIAhBAWotAAA6AAAgBEECaiAIQQJqLQAAOgAAIARBA2ogCEEDai0AADoAACAEQQRqIAhBBGotAAA6AAAgBEEFaiAIQQVqLQAAOgAAIARBBmogCEEGai0AADoAACAEQQdqIAhBB2otAAA6AAAgCEEIaiEIIARBCGoiBCAGRw0ACwsgBiACIAVrIglBfHEiB2ohBAJAAkAgASAFaiIIQQNxIgENACAGIARPDQEgCCEBA0AgBiABKAIANgIAIAFBBGohASAGQQRqIgYgBEkNAAwCCwtBACECIANBADYCDCADQQxqIAFyIQUCQEEEIAFrIgpBAXFFDQAgBSAILQAAOgAAQQEhAgsCQCAKQQJxRQ0AIAUgAmogCCACai8BADsBAAsgCCABayECIAFBA3QhCyADKAIMIQUCQAJAIAZBBGogBEkNACAGIQwMAQtBACALa0EYcSENA0AgBiAFIAt2IAJBBGoiAigCACIFIA10cjYCACAGQQhqIQogBkEEaiIMIQYgCiAESQ0ACwtBACEGIANBADoACCADQQA6AAYCQAJAIAFBAUcNACADQQhqIQ1BACEBQQAhCkEAIQ4MAQsgAkEFai0AACEKIAMgAkEEai0AACIBOgAIIApBCHQhCkECIQ4gA0EGaiENCwJAIAhBAXFFDQAgDSACQQRqIA5qLQAAOgAAIAMtAAZBEHQhBiADLQAIIQELIAwgCiAGciABQf8BcXJBACALa0EYcXQgBSALdnI2AgALIAlBA3EhAiAIIAdqIQELAkAgBCAEIAJqIgZPDQAgAkF/aiEJAkAgAkEHcSIIRQ0AA0AgBCABLQAAOgAAIAFBAWohASAEQQFqIQQgCEF/aiIIDQALCyAJQQdJDQADQCAEIAEtAAA6AAAgBEEBaiABQQFqLQAAOgAAIARBAmogAUECai0AADoAACAEQQNqIAFBA2otAAA6AAAgBEEEaiABQQRqLQAAOgAAIARBBWogAUEFai0AADoAACAEQQZqIAFBBmotAAA6AAAgBEEHaiABQQdqLQAAOgAAIAFBCGohASAEQQhqIgQgBkcNAAsLIAALDgAgACABIAIQz4GAgAALC4oNAQBBgIDAAAuADUNvbnRyYWN0Q3JlYXRlQ29udHJhY3RIb3N0Rm5DcmVhdGVDb250cmFjdFdpdGhDdG9ySG9zdEZuAAAQAAgAAAAIABAAFAAAABwAEAAcAAAAZHN0X2NvbmZpZ19zZXRwYXJhbXNeABAABgAAAG5hdGl2ZV9kcm9wX2FwcGxpZWRuYXRpdmVfZHJvcF9wYXJhbXNvcmlnaW5zdWNjZXNzAAC2BRAABwAAAH8AEAASAAAAyAQQAAQAAACRABAABgAAAJcAEAAHAAAA9gEQABAAAAAgAhAAEwAAADMCEAATAAAAOgUQAA4AAABGAhAACgAAAGRzdF9jb25maWcAAPAAEAAKAAAAtgUQAAcAAAByZWNlaXZlcsgBEAAGAAAADAEQAAgAAABsel9yZWNlaXZlX2FsZXJ0bHpfY29tcG9zZV9hbGVydGx6X3JlY2VpdmVsel9jb21wb3NldHJhbnNmZXJwdWJsaWNfa2V5c2lnbmF0dXJlAGABEAAKAAAAagEQAAkAAABEc3RDb25maWdFbmRwb2ludG5vbmNlc3JjX2VpZAAAAJUBEAAFAAAADQIQAAYAAACaARAABwAAAG5hdGl2ZV90b2tlbmFtb3VudHRvyAEQAAYAAADOARAAAgAAAGRlZmF1bHRfbXVsdGlwbGllcl9icHNmbG9vcl9tYXJnaW5fdXNkb3B0aW9uc3NlbmRlcmNhbGxkYXRhX3NpemVsel9jb21wb3NlX2Jhc2VfZ2FzbHpfcmVjZWl2ZV9iYXNlX2dhc25hdGl2ZV9jYXATAhAADQAAAOABEAAWAAAAtgUQAAcAAAD2ARAAEAAAACACEAATAAAAMwIQABMAAAA6BRAADgAAAEYCEAAKAAAABgIQAAcAAACKBRAACgAAAA0CEAAGAAAAAAAAEgAAAAAAAAAAV2FzbWFyZ3Njb250cmFjdGZuX25hbWUAuAIQAAQAAAC8AhAACAAAAMQCEAAHAAAAZXhlY3V0YWJsZXNhbHQAAOQCEAAKAAAA7gIQAAQAAABjb25zdHJ1Y3Rvcl9hcmdzBAMQABAAAADkAhAACgAAAO4CEAAEAAAAtAIQAAQAAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXJSAxAACQAAAFsDEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAFIDEAAJAAAAWwMQAAkAAACKAxAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAWwMQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAA1QMQAAkAAAA0AxAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAP8DEAAIAAAABwQQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmdhY3RpdmVhZG1pbgAAVwQQAAYAAABdBBAABQAAAHNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWJtZXNzYWdlX2xpYnN1cHBvcnRlZAAAAI0EEAALAAAAmAQQAAkAAABzZXRfYWxsb3dsaXN0YWxsb3dlZG9hcHDBBBAABwAAAMgEEAAEAAAAc2V0X2RlbnlsaXN0ZGVuaWVkAADoBBAABgAAAMgEEAAEAAAAcGF1c2VyAAAABRAABgAAAHVucGF1c2VyEAUQAAgAAABzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2Jwc211bHRpcGxpZXJfYnBzOgUQAA4AAABzZXRfZGVwb3NpdF9hZGRyZXNzZGVwb3NpdF9hZGRyZXNzAABjBRAADwAAAHNldF9wcmljZV9mZWVkcHJpY2VfZmVlZIoFEAAKAAAAc2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXNkc3RfZWlkb3B0aW9uX3R5cGVzAAAAtgUQAAcAAAC9BRAADAAAAHNldF93b3JrZXJfZmVlX2xpYmZlZV9saWIAAADuBRAABwAAAFBhdXNlZEFkbWluc01lc3NhZ2VMaWJzQWxsb3dsaXN0QWxsb3dsaXN0U2l6ZURlbnlsaXN0RGVmYXVsdE11bHRpcGxpZXJCcHNEZXBvc2l0QWRkcmVzc1N1cHBvcnRlZE9wdGlvblR5cGVzV29ya2VyRmVlTGliUHJpY2VGZWVkANv0AQ5jb250cmFjdHNwZWN2MAAAAAQAAAAAAAAAAAAAAA1FeGVjdXRvckVycm9yAAAAAAAAAwAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAEAAAAAAAAADFVuYXV0aG9yaXplZAAAAAIAAAAAAAAAE1VuYXV0aG9yaXplZENvbnRleHQAAAAAAwAAAAUAAAAAAAAAAAAAAAxEc3RDb25maWdTZXQAAAABAAAADmRzdF9jb25maWdfc2V0AAAAAAABAAAAAAAAAAZwYXJhbXMAAAAAA+oAAAfQAAAAEVNldERzdENvbmZpZ1BhcmFtAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAARTmF0aXZlRHJvcEFwcGxpZWQAAAAAAAABAAAAE25hdGl2ZV9kcm9wX2FwcGxpZWQAAAAABQAAAAAAAAAGb3JpZ2luAAAAAAfQAAAABk9yaWdpbgAAAAAAAAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAEb2FwcAAAABMAAAAAAAAAAAAAABJuYXRpdmVfZHJvcF9wYXJhbXMAAAAAA+oAAAfQAAAAEE5hdGl2ZURyb3BQYXJhbXMAAAAAAAAAAAAAAAdzdWNjZXNzAAAAA+oAAAABAAAAAAAAAAIAAAABAAAA20Rlc3RpbmF0aW9uIGNoYWluIGNvbmZpZ3VyYXRpb24gZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGdhcyBjb3N0cyBhbmQgZmVlIHBhcmFtZXRlcnMgc3BlY2lmaWMgdG8gZWFjaCBkZXN0aW5hdGlvbiBjaGFpbi4KVGhlc2UgcGFyYW1ldGVycyBhcmUgdXNlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGFjY3VyYXRlIGV4ZWN1dGlvbiBmZWVzLgAAAAAAAAAACURzdENvbmZpZwAAAAAAAAUAAAA7TWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKSB0byBlbnN1cmUgcHJvZml0YWJpbGl0eS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAAOkJhc2UgZ2FzIGNvc3QgcGVyIGx6Q29tcG9zZSBjYWxsIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAA/QmFzZSBnYXMgY29zdCBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAABNsel9yZWNlaXZlX2Jhc2VfZ2FzAAAAAAYAAABRRmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzIGZvciB0aGlzIGRlc3RpbmF0aW9uICgwID0gdXNlIGRlZmF1bHQgbXVsdGlwbGllcikuAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAARk1heGltdW0gbmF0aXZlIHRva2VuIHZhbHVlIHRoYXQgY2FuIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBkZXN0aW5hdGlvbi4AAAAAAApuYXRpdmVfY2FwAAAAAAAKAAAAAQAAAHxQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24uCgpVc2VkIHdoZW4gY29uZmlndXJpbmcgZXhlY3V0b3Igc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWMgZGVzdGluYXRpb24gY2hhaW4uAAAAAAAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAIAAAAoQ29uZmlndXJhdGlvbiBmb3IgdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAApkc3RfY29uZmlnAAAAAAfQAAAACURzdENvbmZpZwAAAAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAAaFBhcmFtZXRlcnMgZm9yIGEgbmF0aXZlIHRva2VuIGRyb3AuCgpVc2VkIHRvIHNwZWNpZnkgbmF0aXZlIHRva2VuIHRyYW5zZmVycyBhcyBwYXJ0IG9mIGV4ZWN1dG9yIG9wdGlvbnMuAAAAAAAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAgAAACRBbW91bnQgb2YgbmF0aXZlIHRva2VucyB0byB0cmFuc2Zlci4AAAAGYW1vdW50AAAAAAALAAAAL1JlY2VpdmVyIGFkZHJlc3MgZm9yIHRoZSBuYXRpdmUgdG9rZW4gdHJhbnNmZXIuAAAAAAhyZWNlaXZlcgAAABMAAAAAAAAAuFZlcmlmaWVzIGF1dGhvcml6YXRpb24gZm9yIHRoZSBleGVjdXRvciBjb250cmFjdC4KClRoZSBwdWJsaWMga2V5IG11c3QgY29ycmVzcG9uZCB0byBhIHJlZ2lzdGVyZWQgYWRtaW4gYW5kIG11c3QgaGF2ZSBzaWduZWQgdGhlIHNpZ25hdHVyZV9wYXlsb2FkLgpVc2VzIEVkMjU1MTkgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbi4AAAAMX19jaGVja19hdXRoAAAAAwAAAAAAAAARc2lnbmF0dXJlX3BheWxvYWQAAAAAAAPuAAAAIAAAAAAAAAAJYXV0aF9kYXRhAAAAAAAH0AAAABFFeGVjdXRvclNpZ25hdHVyZQAAAAAAAAAAAAANYXV0aF9jb250ZXh0cwAAAAAAA+oAAAfQAAAAB0NvbnRleHQAAAAAAQAAA+kAAAPtAAAAAAAAAAMAAAABAAAAjFNpZ25hdHVyZSBkYXRhIGZvciBDdXN0b20gQWNjb3VudCBhdXRob3JpemF0aW9uLgpDb250YWlucyB0aGUgYWRtaW4ncyBwdWJsaWMga2V5IGFuZCB0aGVpciBFZDI1NTE5IHNpZ25hdHVyZSBvdmVyIHRoZSBhdXRob3JpemF0aW9uIHBheWxvYWQuAAAAAAAAABFFeGVjdXRvclNpZ25hdHVyZQAAAAAAAAIAAABNQWRtaW4ncyBFZDI1NTE5IHB1YmxpYyBrZXkgKDMyIGJ5dGVzKSAtIG11c3QgY29ycmVzcG9uZCB0byBhIHJlZ2lzdGVyZWQgYWRtaW4AAAAAAAAKcHVibGljX2tleQAAAAAD7gAAACAAAAA3RWQyNTUxOSBzaWduYXR1cmUgKDY0IGJ5dGVzKSBvdmVyIHRoZSBzaWduYXR1cmVfcGF5bG9hZAAAAAAJc2lnbmF0dXJlAAAAAAAD7gAAAEAAAAAAAAAA5FNldHMgdGhlIHBhdXNlZCBzdGF0ZSBvZiB0aGUgd29ya2VyLgoKV2hlbiBwYXVzZWQsIHRoZSB3b3JrZXIgd2lsbCByZWplY3QgbmV3IGpvYiBhc3NpZ25tZW50cyAoZS5nLiwgYXNzaWduX2pvYiwgZ2V0X2ZlZSkuCkV4aXN0aW5nIGpvYnMgaW4gcHJvZ3Jlc3MgYXJlIG5vdCBhZmZlY3RlZC4KCiMgQXJndW1lbnRzCiogYHBhdXNlZGAgLSBgdHJ1ZWAgdG8gcGF1c2UsIGBmYWxzZWAgdG8gdW5wYXVzZQAAAApzZXRfcGF1c2VkAAAAAAABAAAAAAAAAAZwYXVzZWQAAAAAAAEAAAAAAAAAAAAAAP1TZXRzIGFkbWluIHN0YXR1cyBmb3IgYW4gYWRkcmVzcy4KCkFkbWlucyBjYW4gY29uZmlndXJlIHdvcmtlciBzZXR0aW5ncyBsaWtlIGZlZSBtdWx0aXBsaWVycywgZGVwb3NpdCBhZGRyZXNzZXMsCmFuZCBzdXBwb3J0ZWQgb3B0aW9uIHR5cGVzLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gVGhlIGFkZHJlc3MgdG8gc2V0IGFkbWluIHN0YXR1cyBmb3IKKiBgYWN0aXZlYCAtIGB0cnVlYCB0byBhZGQgYWRtaW4sIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAACXNldF9hZG1pbgAAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAE3U2V0cyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZCBieSB0aGlzIHdvcmtlci4KCk1lc3NhZ2UgbGlicmFyaWVzIChlLmcuLCBVTE4zMDIpIGNhbGwgd29ya2VycyB0byBhc3NpZ24gam9icy4gT25seSBzdXBwb3J0ZWQKbGlicmFyaWVzIGNhbiBpbnRlcmFjdCB3aXRoIHRoaXMgd29ya2VyLgoKIyBBcmd1bWVudHMKKiBgbWVzc2FnZV9saWJgIC0gVGhlIG1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzCiogYHN1cHBvcnRlZGAgLSBgdHJ1ZWAgdG8gYWRkIHN1cHBvcnQsIGBmYWxzZWAgdG8gcmVtb3ZlIHN1cHBvcnQAAAAAGXNldF9zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAAAAAACAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAAAAAAlzdXBwb3J0ZWQAAAAAAAABAAAAAAAAAAAAAAFYU2V0cyBhbGxvd2xpc3Qgc3RhdHVzIGZvciBhbiBPQXBwIGFkZHJlc3MuCgpXaGVuIHRoZSBhbGxvd2xpc3QgaXMgZW1wdHksIGFsbCBPQXBwcyBhcmUgYWxsb3dlZCAodW5sZXNzIG9uIGRlbnlsaXN0KS4KV2hlbiB0aGUgYWxsb3dsaXN0IGlzIG5vdCBlbXB0eSwgb25seSBhbGxvd2xpc3RlZCBPQXBwcyBhcmUgYWxsb3dlZC4KRGVueWxpc3QgYWx3YXlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgYWxsb3dlZGAgLSBgdHJ1ZWAgdG8gYWRkIHRvIGFsbG93bGlzdCwgYGZhbHNlYCB0byByZW1vdmUAAAANc2V0X2FsbG93bGlzdAAAAAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAdhbGxvd2VkAAAAAAEAAAAAAAAAAAAAAQlTZXRzIGRlbnlsaXN0IHN0YXR1cyBmb3IgYW4gT0FwcCBhZGRyZXNzLgoKRGVueWxpc3RlZCBPQXBwcyBhcmUgYmxvY2tlZCBmcm9tIHVzaW5nIHRoaXMgd29ya2VyLCBldmVuIGlmIHRoZXkncmUgb24KdGhlIGFsbG93bGlzdCAoZGVueWxpc3QgdGFrZXMgcHJlY2VkZW5jZSkuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIFRoZSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MKKiBgZGVuaWVkYCAtIGB0cnVlYCB0byBhZGQgdG8gZGVueWxpc3QsIGBmYWxzZWAgdG8gcmVtb3ZlAAAAAAAADHNldF9kZW55bGlzdAAAAAIAAAAAAAAABG9hcHAAAAATAAAAAAAAAAZkZW5pZWQAAAAAAAEAAAAAAAAAAAAAATtTZXRzIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4KClRoZSBtdWx0aXBsaWVyIGlzIGFwcGxpZWQgdG8gYmFzZSBmZWVzIGR1cmluZyBmZWUgY2FsY3VsYXRpb24uIFVzZWQgd2hlbgpubyBkZXN0aW5hdGlvbi1zcGVjaWZpYyBtdWx0aXBsaWVyIGlzIGNvbmZpZ3VyZWQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgbXVsdGlwbGllcl9icHNgIC0gTXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDEwMDAwID0gMXgsIDEyMDAwID0gMS4yeCkAAAAAGnNldF9kZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAACAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAAAAAADxU2V0cyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIHdvcmtlciBmZWVzIGFyZSBjb2xsZWN0ZWQuCgpXaGVuIGpvYnMgYXJlIGFzc2lnbmVkLCBmZWVzIGFyZSBkaXJlY3RlZCB0byB0aGlzIGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZGVwb3NpdF9hZGRyZXNzYCAtIEFkZHJlc3MgdG8gcmVjZWl2ZSBjb2xsZWN0ZWQgZmVlcwAAAAAAABNzZXRfZGVwb3NpdF9hZGRyZXNzAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAAQlTZXRzIHN1cHBvcnRlZCBleGVjdXRvciBvcHRpb24gdHlwZXMgZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBBZG1pbiBhZGRyZXNzIChtdXN0IHByb3ZpZGUgYXV0aG9yaXphdGlvbikKKiBgZWlkYCAtIERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKQoqIGBvcHRpb25fdHlwZXNgIC0gU3VwcG9ydGVkIG9wdGlvbiB0eXBlcy4gRWFjaCBieXRlIHJlcHJlc2VudHMgYW4gb3B0aW9uIHR5cGUuAAAAAAAAGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAADAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAAA2VpZAAAAAAEAAAAAAAAAAxvcHRpb25fdHlwZXMAAAAOAAAAAAAAAAAAAAESU2V0cyB0aGUgd29ya2VyIGZlZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3MuCgpUaGUgZmVlIGxpYnJhcnkgY2FsY3VsYXRlcyBmZWVzIGJhc2VkIG9uIGV4ZWN1dG9yIG9wdGlvbnMgYW5kIHByaWNlIGZlZWQgZGF0YS4KCiMgQXJndW1lbnRzCiogYGFkbWluYCAtIEFkbWluIGFkZHJlc3MgKG11c3QgcHJvdmlkZSBhdXRob3JpemF0aW9uKQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBGZWUgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzIGltcGxlbWVudGluZyBgSUV4ZWN1dG9yRmVlTGliYAAAAAAAEnNldF93b3JrZXJfZmVlX2xpYgAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAAAAABElNldHMgdGhlIHByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcy4KClRoZSBwcmljZSBmZWVkIHByb3ZpZGVzIGdhcyBwcmljZXMgYW5kIGV4Y2hhbmdlIHJhdGVzIGZvciBjcm9zcy1jaGFpbgpmZWUgY2FsY3VsYXRpb25zLgoKIyBBcmd1bWVudHMKKiBgYWRtaW5gIC0gQWRtaW4gYWRkcmVzcyAobXVzdCBwcm92aWRlIGF1dGhvcml6YXRpb24pCiogYHByaWNlX2ZlZWRgIC0gUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGltcGxlbWVudGluZyBgSUxheWVyWmVyb1ByaWNlRmVlZGAAAAAAAA5zZXRfcHJpY2VfZmVlZAAAAAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAAAAAAAAlUmV0dXJucyB3aGV0aGVyIHRoZSB3b3JrZXIgaXMgcGF1c2VkLgAAAAAAAAZwYXVzZWQAAAAAAAAAAAABAAAAAQAAAAAAAABVUmV0dXJucyB3aGV0aGVyIGFuIGFkZHJlc3MgaXMgYW4gYWRtaW4uCgojIEFyZ3VtZW50cwoqIGBhZG1pbmAgLSBUaGUgYWRkcmVzcyB0byBjaGVjawAAAAAAAAhpc19hZG1pbgAAAAEAAAAAAAAABWFkbWluAAAAAAAAEwAAAAEAAAABAAAAAAAAABxSZXR1cm5zIGFsbCBhZG1pbiBhZGRyZXNzZXMuAAAABmFkbWlucwAAAAAAAAAAAAEAAAPqAAAAEwAAAAAAAABvUmV0dXJucyB3aGV0aGVyIGEgbWVzc2FnZSBsaWJyYXJ5IGlzIHN1cHBvcnRlZC4KCiMgQXJndW1lbnRzCiogYG1lc3NhZ2VfbGliYCAtIE1lc3NhZ2UgbGlicmFyeSBjb250cmFjdCBhZGRyZXNzAAAAABhpc19zdXBwb3J0ZWRfbWVzc2FnZV9saWIAAAABAAAAAAAAAAttZXNzYWdlX2xpYgAAAAATAAAAAQAAAAEAAAAAAAAAc1JldHVybnMgYWxsIHN1cHBvcnRlZCBtZXNzYWdlIGxpYnJhcnkgYWRkcmVzc2VzLgoKIyBSZXR1cm5zClZlY3RvciBvZiBzdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGNvbnRyYWN0IGFkZHJlc3Nlcy4AAAAADG1lc3NhZ2VfbGlicwAAAAAAAAABAAAD6gAAABMAAAAAAAAAWlJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBhbGxvd2xpc3QuCgojIEFyZ3VtZW50cwoqIGBvYXBwYCAtIE9BcHAgY29udHJhY3QgYWRkcmVzcwAAAAAAD2lzX29uX2FsbG93bGlzdAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAADFSZXR1cm5zIHRoZSBudW1iZXIgb2YgYWRkcmVzc2VzIG9uIHRoZSBhbGxvd2xpc3QuAAAAAAAADmFsbG93bGlzdF9zaXplAAAAAAAAAAAAAQAAAAQAAAAAAAAAWVJldHVybnMgd2hldGhlciBhbiBPQXBwIGlzIG9uIHRoZSBkZW55bGlzdC4KCiMgQXJndW1lbnRzCiogYG9hcHBgIC0gT0FwcCBjb250cmFjdCBhZGRyZXNzAAAAAAAADmlzX29uX2RlbnlsaXN0AAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAAPlSZXR1cm5zIHdoZXRoZXIgYW4gT0FwcCBoYXMgYWNjZXNzIGNvbnRyb2wgbGlzdCAoQUNMKSBwZXJtaXNzaW9uLgoKQUNMIGV2YWx1YXRpb24gb3JkZXI6CjEuIElmIG9uIGRlbnlsaXN0IOKGkiBkZW5pZWQKMi4gSWYgYWxsb3dsaXN0IGlzIGVtcHR5IE9SIG9uIGFsbG93bGlzdCDihpIgYWxsb3dlZAozLiBPdGhlcndpc2Ug4oaSIGRlbmllZAoKIyBBcmd1bWVudHMKKiBgb2FwcGAgLSBPQXBwIGNvbnRyYWN0IGFkZHJlc3MgdG8gY2hlY2sAAAAAAAAHaGFzX2FjbAAAAAABAAAAAAAAAARvYXBwAAAAEwAAAAEAAAABAAAAAAAAADNSZXR1cm5zIHRoZSBkZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cy4AAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAAAAAABAAAABAAAAAAAAAA1UmV0dXJucyB0aGUgZGVwb3NpdCBhZGRyZXNzIHdoZXJlIGZlZXMgYXJlIGNvbGxlY3RlZC4AAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAfFJldHVybnMgc3VwcG9ydGVkIG9wdGlvbiB0eXBlcyBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCiMgQXJndW1lbnRzCiogYGVpZGAgLSBEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikAAAAaZ2V0X3N1cHBvcnRlZF9vcHRpb25fdHlwZXMAAAAAAAEAAAAAAAAAA2VpZAAAAAAEAAAAAQAAA+gAAAAOAAAAAAAAADBSZXR1cm5zIHRoZSB3b3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcy4AAAAOd29ya2VyX2ZlZV9saWIAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAKFJldHVybnMgdGhlIHByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcy4AAAAKcHJpY2VfZmVlZAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABEQXNzaWducyBhIGpvYiB0byB0aGUgZXhlY3V0b3IgYW5kIHJldHVybnMgZmVlIHJlY2lwaWVudCBpbmZvcm1hdGlvbi4AAAAKYXNzaWduX2pvYgAAAAAABQAAAAAAAAAIc2VuZF9saWIAAAATAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAAAAAAAAB29wdGlvbnMAAAAADgAAAAEAAAfQAAAADEZlZVJlY2lwaWVudAAAAAAAAAA3Q2FsY3VsYXRlcyB0aGUgZXhlY3V0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAHZ2V0X2ZlZQAAAAAFAAAAAAAAAAhzZW5kX2xpYgAAABMAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAAHb3B0aW9ucwAAAAAOAAAAAQAAAAsAAAAAAAAAQFNldHMgZGVzdGluYXRpb24tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIG11bHRpcGxlIGVuZHBvaW50cy4AAAAOc2V0X2RzdF9jb25maWcAAAAAAAIAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABFTZXREc3RDb25maWdQYXJhbQAAAAAAAAAAAAAAAAAAPlJldHVybnMgdGhlIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgZW5kcG9pbnQuAAAAAAAKZHN0X2NvbmZpZwAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAACURzdENvbmZpZwAAAAAAAAAAAACRTmF0aXZlIHRva2VuIGRyb3BzLgoKVHJhbnNmZXJzIG5hdGl2ZSB0b2tlbnMgdG8gZWFjaCByZWNlaXZlciBzcGVjaWZpZWQgaW4gdGhlIHBhcmFtZXRlcnMgYW5kCnRyYWNrcyB0aGUgc3VjY2Vzcy9mYWlsdXJlIHN0YXR1cyBvZiBlYWNoIHRyYW5zZmVyLgAAAAAAAAtuYXRpdmVfZHJvcAAAAAAFAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAARvYXBwAAAAEwAAAAAAAAASbmF0aXZlX2Ryb3BfcGFyYW1zAAAAAAPqAAAH0AAAABBOYXRpdmVEcm9wUGFyYW1zAAAAAAAAAAAAAAAqUmV0dXJucyB0aGUgZW5kcG9pbnQgYWRkcmVzcyBmcm9tIHN0b3JhZ2UuAAAAAAAIZW5kcG9pbnQAAAAAAAAAAQAAABMAAAAAAAACSUluaXRpYWxpemVzIHRoZSBleGVjdXRvciBjb250cmFjdC4KClNldHMgdXAgb3duZXJzaGlwLCB3b3JrZXIgY29uZmlndXJhdGlvbiwgYW5kIGVuZHBvaW50IGFkZHJlc3MuCgojIEFyZ3VtZW50cwoqIGBlbmRwb2ludGAgLSBMYXllclplcm8gRW5kcG9pbnQgVjIgY29udHJhY3QgYWRkcmVzcwoqIGBvd25lcmAgLSBDb250cmFjdCBvd25lciBhZGRyZXNzCiogYGFkbWluc2AgLSBJbml0aWFsIGFkbWluIGFkZHJlc3NlcyAobXVzdCBub3QgYmUgZW1wdHkpCiogYG1lc3NhZ2VfbGlic2AgLSBTdXBwb3J0ZWQgbWVzc2FnZSBsaWJyYXJ5IGFkZHJlc3NlcyAoZS5nLiwgVUxOMzAyKQoqIGBwcmljZV9mZWVkYCAtIFByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZmVlIGNhbGN1bGF0aW9ucwoqIGBkZWZhdWx0X211bHRpcGxpZXJfYnBzYCAtIERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgxMDAwMCA9IDF4KQoqIGB3b3JrZXJfZmVlX2xpYmAgLSBXb3JrZXIgZmVlIGxpYnJhcnkgY29udHJhY3QgYWRkcmVzcwoqIGBkZXBvc2l0X2FkZHJlc3NgIC0gQWRkcmVzcyB0byByZWNlaXZlIGZlZSBwYXltZW50cwAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAACAAAAAAAAAAIZW5kcG9pbnQAAAATAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAABmFkbWlucwAAAAAD6gAAABMAAAAAAAAADG1lc3NhZ2VfbGlicwAAA+oAAAATAAAAAAAAAApwcmljZV9mZWVkAAAAAAATAAAAAAAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAAAAAAA53b3JrZXJfZmVlX2xpYgAAAAAAEwAAAAAAAAAPZGVwb3NpdF9hZGRyZXNzAAAAABMAAAAAAAAAAAAAALJXaXRoZHJhd3MgYSB0b2tlbiBmcm9tIHRoZSBjb250cmFjdCB0byBhIHNwZWNpZmllZCBhZGRyZXNzLgoKIyBBcmd1bWVudHMKKiBgdG9rZW5gIC0gVGhlIHRva2VuIGNvbnRyYWN0IGFkZHJlc3MKKiBgdG9gIC0gVGhlIHJlY2lwaWVudCBhZGRyZXNzCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IHRvIHdpdGhkcmF3AAAAAAAOd2l0aGRyYXdfdG9rZW4AAAAAAAQAAAAAAAAABWFkbWluAAAAAAAAEwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAIAAAAAAAAAAAAAAA9FeGVjdXRvclN0b3JhZ2UAAAAAAgAAAAEAAAAAAAAACURzdENvbmZpZwAAAAAAAAEAAAAEAAAAAAAAAAAAAAAIRW5kcG9pbnQAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAAlVRoZSB0eXBlIG9mIGRhdGEgcmVxdWlyZWQgZm9yIG1pZ3JhdGlvbi4KVXBncmFkZXMgdGhlIGNvbnRyYWN0IHRvIG5ldyBXQVNNIGJ5dGVjb2RlLgpTZXRzIGEgbWlncmF0aW9uIGZsYWcgdGhhdCBtdXN0IGJlIGNsZWFyZWQgYnkgY2FsbGluZyBgbWlncmF0ZWAuAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAB2UnVucyBtaWdyYXRpb24gbG9naWMgYWZ0ZXIgYW4gdXBncmFkZS4KQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBmbGFnIGlzIHNldCBieSBhIHByZXZpb3VzIGB1cGdyYWRlYCBjYWxsLgAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAAAAAAAAAAA7UmV0dXJucyB3aGV0aGVyIHRoZSBjb250cmFjdCBpcyBmcm96ZW4gKHVwZ3JhZGVzIGRpc2FibGVkKS4AAAAACWlzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAQAAAAAAAAAAAAAAA1FbmRwb2ludEVycm9yAAAAAAAAGQAAAAAAAAARQWxyZWFkeVJlZ2lzdGVyZWQAAAAAAAABAAAAAAAAAA1Db21wb3NlRXhpc3RzAAAAAAAAAgAAAAAAAAAPQ29tcG9zZU5vdEZvdW5kAAAAAAMAAAAAAAAAHERlZmF1bHRSZWNlaXZlTGliVW5hdmFpbGFibGUAAAAEAAAAAAAAABlEZWZhdWx0U2VuZExpYlVuYXZhaWxhYmxlAAAAAAAABQAAAAAAAAAVSW5zdWZmaWNpZW50TmF0aXZlRmVlAAAAAAAABgAAAAAAAAASSW5zdWZmaWNpZW50WnJvRmVlAAAAAAAHAAAAAAAAABBJbnZhbGlkRmVlQW1vdW50AAAACAAAAAAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAkAAAAAAAAADEludmFsaWRJbmRleAAAAAoAAAAAAAAADEludmFsaWROb25jZQAAAAsAAAAAAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAAAAAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAAAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAAAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAAAAAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAAFAAAAAAAAAAAAAAAKUGFja2V0U2VudAAAAAAAAQAAAAtwYWNrZXRfc2VudAAAAAADAAAAAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAAAAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAAAAAADHNlbmRfbGlicmFyeQAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA5QYWNrZXRWZXJpZmllZAAAAAAAAQAAAA9wYWNrZXRfdmVy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AAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAIAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAAAQAAAOFQYXJhbWV0ZXJzIGZvciBEVk4gZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB2ZXJpZmljYXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAAADER2bkZlZVBhcmFtcwAAAAoAAAAnTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQuAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkdhcyBlc3RpbWF0ZSBmb3IgdmVyaWZpY2F0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAANnYXMAAAAACgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAALRFZOIG9wdGlvbnMAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAAJ051bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzIChxdW9ydW0pLgAAAAAGcXVvcnVtAAAAAAAEAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAONQYXJhbWV0ZXJzIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGV4ZWN1dGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAACUZlZVBhcmFtcwAAAAAAAAsAAAAmU2l6ZSBvZiB0aGUgbWVzc2FnZSBjYWxsZGF0YSBpbiBieXRlcy4AAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADZCYXNlIGdhcyBmb3IgZWFjaCBsekNvbXBvc2UgY2FsbCBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAETPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCYXNlIGdhcyBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAE2x6X3JlY2VpdmVfYmFzZV9nYXMAAAAABgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAsTWF4aW11bSBuYXRpdmUgdG9rZW4gdmFsdWUgdGhhdCBjYW4gYmUgc2VudC4AAAAKbmF0aXZlX2NhcAAAAAAACgAAAEZFbmNvZGVkIGV4ZWN1dG9yIG9wdGlvbnMgKGx6UmVjZWl2ZSBnYXMsIGx6Q29tcG9zZSwgbmF0aXZlRHJvcCwgZXRjLikuAAAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAhEdhcyBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCkNvbnRhaW5zIHRoZSBleGNoYW5nZSByYXRlIGFuZCBnYXMgY29zdHMgbmVlZGVkIGZvciBjcm9zcy1jaGFpbiBmZWUgY2FsY3VsYXRpb25zLgAAAAAAAAAFUHJpY2UAAAAAAAADAAAAN0dhcyBjb3N0IHBlciBieXRlIG9mIGNhbGxkYXRhIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAADGdhc19wZXJfYnl0ZQAAAAQAAABCR2FzIHByaWNlIGluIHRoZSBzbWFsbGVzdCB1bml0ICh3ZWkgZm9yIEVWTSwgc3Ryb29wcyBmb3IgU3RlbGxhcikuAAAAAAARZ2FzX3ByaWNlX2luX3VuaXQAAAAAAAAGAAAAqVByaWNlIHJhdGlvID0gKHJlbW90ZSBuYXRpdmUgdG9rZW4gcHJpY2UgLyBsb2NhbCBuYXRpdmUgdG9rZW4gcHJpY2UpICogUFJJQ0VfUkFUSU9fREVOT01JTkFUT1IuClVzZWQgdG8gY29udmVydCBkZXN0aW5hdGlvbiBjaGFpbiBnYXMgY29zdHMgdG8gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAAAEAAACARmVlIGVzdGltYXRpb24gcmVzdWx0IHdpdGggZGV0YWlsZWQgYnJlYWtkb3duLgoKQ29udGFpbnMgdGhlIGNhbGN1bGF0ZWQgZmVlIGFuZCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAAAC0ZlZUVzdGltYXRlAAAAAAQAAAAwU291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHNjYWxlZCkuAAAAEG5hdGl2ZV9wcmljZV91c2QAAAAKAAAAJVByaWNlIHJhdGlvIHVzZWQgZm9yIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAADJEZW5vbWluYXRvciBmb3IgdGhlIHByaWNlIHJhdGlvICh0eXBpY2FsbHkgMTBeMjApLgAAAAAAF3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAoAAAAxVG90YWwgZ2FzIGZlZSBpbiBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHVuaXRzLgAAAAAAAA10b3RhbF9nYXNfZmVlAAAAAAAACwAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQGAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQHAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAgAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQJAAAAAAAAAAtPd25lck5vdFNldAAAAAQKAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAsAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCsAAAAFAAAAMEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHNpZ25lciBpcyBhZGRlZCBvciByZW1vdmVkLgAAAAAAAAAJU2lnbmVyU2V0AAAAAAAAAQAAAApzaWduZXJfc2V0AAAAAAACAAAAAAAAAAZzaWduZXIAAAAAA+4AAAAUAAAAAQAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAANkV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2lnbmF0dXJlIHRocmVzaG9sZCBpcyBjaGFuZ2VkLgAAAAAAAAAAAAxUaHJlc2hvbGRTZXQAAAABAAAADXRocmVzaG9sZF9zZXQAAAAAAAABAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAPTXVsdGlzaWdTdG9yYWdlAAAAAAIAAAAAAAAAAAAAAAdTaWduZXJzAAAAAAAAAAAAAAAACVRocmVzaG9sZAAAAAAAAAUAAABXRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyB0cmFuc2ZlcnJlZCAoYm90aCBzaW5nbGUtc3RlcCBhbmQgdHdvLXN0ZXAgY29tcGxldGlvbikuAAAAAAAAAAAUT3duZXJzaGlwVHJhbnNmZXJyZWQAAAABAAAAFW93bmVyc2hpcF90cmFuc2ZlcnJlZAAAAAAAAAIAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAIAAAAFAAAAO0V2ZW50IGVtaXR0ZWQgd2hlbiBhIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIgaXMgcHJvcG9zZWQuAAAAAAAAAAAVT3duZXJzaGlwVHJhbnNmZXJyaW5nAAAAAAAAAQAAABZvd25lcnNoaXBfdHJhbnNmZXJyaW5nAAAAAAADAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIA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AAAAAAAGZGVuaWVkAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAABAAAABnBhdXNlZAAAAAAAAQAAAAAAAAAGcGF1c2VyAAAAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAIVW5wYXVzZWQAAAABAAAACHVucGF1c2VkAAAAAQAAAAAAAAAIdW5wYXVzZXIAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXU2V0RGVmYXVsdE11bHRpcGxpZXJCcHMAAAAAAQAAABpzZXRfZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAAAQAAAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABFTZXREZXBvc2l0QWRkcmVzcwAAAAAAAAEAAAATc2V0X2RlcG9zaXRfYWRkcmVzcwAAAAABAAAAAAAAAA9kZXBvc2l0X2FkZHJlc3MAAAAAEwAAAAAAAAACAAAABQAAAAAAAAAAAAAADFNldFByaWNlRmVlZAAAAAEAAAAOc2V0X3ByaWNlX2ZlZWQAAAAAAAEAAAAAAAAACnByaWNlX2ZlZWQAAAAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAABdTZXRTdXBwb3J0ZWRPcHRpb25UeXBlcwAAAAABAAAAGnNldF9zdXBwb3J0ZWRfb3B0aW9uX3R5cGVzAAAAAAACAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAAAAAAAAAAAAAxvcHRpb25fdHlwZXMAAAAOAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPU2V0V29ya2VyRmVlTGliAAAAAAEAAAASc2V0X3dvcmtlcl9mZWVfbGliAAAAAAABAAAAAAAAAAdmZWVfbGliAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA1Xb3JrZXJTdG9yYWdlAAAAAAAACwAAAAAAAAAAAAAABlBhdXNlZAAAAAAAAAAAAAAAAAAGQWRtaW5zAAAAAAAAAAAAAAAAAAtNZXNzYWdlTGlicwAAAAABAAAAAAAAAAlBbGxvd2xpc3QAAAAAAAABAAAAEwAAAAAAAAAAAAAADUFsbG93bGlzdFNpemUAAAAAAAABAAAAAAAAAAhEZW55bGlzdAAAAAEAAAATAAAAAAAAAAAAAAAURGVmYXVsdE11bHRpcGxpZXJCcHMAAAAAAAAAAAAAAA5EZXBvc2l0QWRkcmVzcwAAAAAAAQAAAAAAAAAUU3VwcG9ydGVkT3B0aW9uVHlwZXMAAAABAAAABAAAAAAAAAAAAAAADFdvcmtlckZlZUxpYgAAAAAAAAAAAAAACVByaWNlRmVlZAAAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yMy40LjAjNjczZDZjNGYyMzY4ZDI4MmQyNWRhMjliZGE1NWMyMWI4YmU2OWNhNgAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAXAAAAAA==";
|
|
12
|
+
/**
|
|
13
|
+
* Pre-computed WASM hash (SHA-256)
|
|
14
|
+
* Use this when the WASM is already uploaded on-chain
|
|
15
|
+
*/
|
|
16
|
+
export declare const WASM_HASH = "ec6441f915add093cc083aec8a44de354224ca57b5ffc5c9bbc39b6a79dabf4d";
|
|
17
|
+
/**
|
|
18
|
+
* Get the WASM bytecode as a Buffer
|
|
19
|
+
* Use this to upload the WASM to the network
|
|
20
|
+
*/
|
|
21
|
+
export declare function getWasmBuffer(): Buffer;
|
|
8
22
|
export declare const ExecutorError: {
|
|
9
23
|
1: {
|
|
10
24
|
message: string;
|
|
@@ -383,6 +397,169 @@ export interface FeesAndPacket {
|
|
|
383
397
|
*/
|
|
384
398
|
zro_fee_recipients: Array<FeeRecipient>;
|
|
385
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Parameters for DVN fee calculation.
|
|
402
|
+
*
|
|
403
|
+
* Contains all inputs needed by the fee library to calculate verification fees
|
|
404
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
405
|
+
* and destination-specific settings.
|
|
406
|
+
*/
|
|
407
|
+
export interface DvnFeeParams {
|
|
408
|
+
/**
|
|
409
|
+
* Number of block confirmations required.
|
|
410
|
+
*/
|
|
411
|
+
confirmations: u64;
|
|
412
|
+
/**
|
|
413
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
414
|
+
*/
|
|
415
|
+
default_multiplier_bps: u32;
|
|
416
|
+
/**
|
|
417
|
+
* Destination endpoint ID (chain identifier).
|
|
418
|
+
*/
|
|
419
|
+
dst_eid: u32;
|
|
420
|
+
/**
|
|
421
|
+
* Minimum fee margin in USD (scaled).
|
|
422
|
+
*/
|
|
423
|
+
floor_margin_usd: u128;
|
|
424
|
+
/**
|
|
425
|
+
* ============================================================================================
|
|
426
|
+
* Destination-Specific Configuration
|
|
427
|
+
* ============================================================================================
|
|
428
|
+
* Gas estimate for verification on destination chain.
|
|
429
|
+
*/
|
|
430
|
+
gas: u128;
|
|
431
|
+
/**
|
|
432
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
433
|
+
*/
|
|
434
|
+
multiplier_bps: u32;
|
|
435
|
+
/**
|
|
436
|
+
* DVN options
|
|
437
|
+
*/
|
|
438
|
+
options: Buffer;
|
|
439
|
+
/**
|
|
440
|
+
* ============================================================================================
|
|
441
|
+
* Common Configuration
|
|
442
|
+
* ============================================================================================
|
|
443
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
444
|
+
*/
|
|
445
|
+
price_feed: string;
|
|
446
|
+
/**
|
|
447
|
+
* Number of required signatures (quorum).
|
|
448
|
+
*/
|
|
449
|
+
quorum: u32;
|
|
450
|
+
/**
|
|
451
|
+
* ============================================================================================
|
|
452
|
+
* Message Parameters
|
|
453
|
+
* ============================================================================================
|
|
454
|
+
* The OApp sender address.
|
|
455
|
+
*/
|
|
456
|
+
sender: string;
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Parameters for executor fee calculation.
|
|
460
|
+
*
|
|
461
|
+
* Contains all inputs needed by the fee library to calculate execution fees
|
|
462
|
+
* for cross-chain messages. Includes message parameters, common configuration,
|
|
463
|
+
* and destination-specific settings.
|
|
464
|
+
*/
|
|
465
|
+
export interface FeeParams {
|
|
466
|
+
/**
|
|
467
|
+
* Size of the message calldata in bytes.
|
|
468
|
+
*/
|
|
469
|
+
calldata_size: u32;
|
|
470
|
+
/**
|
|
471
|
+
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
472
|
+
*/
|
|
473
|
+
default_multiplier_bps: u32;
|
|
474
|
+
/**
|
|
475
|
+
* Destination endpoint ID (chain identifier).
|
|
476
|
+
*/
|
|
477
|
+
dst_eid: u32;
|
|
478
|
+
/**
|
|
479
|
+
* Minimum fee margin in USD (scaled).
|
|
480
|
+
*/
|
|
481
|
+
floor_margin_usd: u128;
|
|
482
|
+
/**
|
|
483
|
+
* Base gas for each lzCompose call on destination chain.
|
|
484
|
+
*/
|
|
485
|
+
lz_compose_base_gas: u64;
|
|
486
|
+
/**
|
|
487
|
+
* ============================================================================================
|
|
488
|
+
* Destination-Specific Configuration
|
|
489
|
+
* ============================================================================================
|
|
490
|
+
* Base gas for lzReceive execution on destination chain.
|
|
491
|
+
*/
|
|
492
|
+
lz_receive_base_gas: u64;
|
|
493
|
+
/**
|
|
494
|
+
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
495
|
+
*/
|
|
496
|
+
multiplier_bps: u32;
|
|
497
|
+
/**
|
|
498
|
+
* Maximum native token value that can be sent.
|
|
499
|
+
*/
|
|
500
|
+
native_cap: u128;
|
|
501
|
+
/**
|
|
502
|
+
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
503
|
+
*/
|
|
504
|
+
options: Buffer;
|
|
505
|
+
/**
|
|
506
|
+
* ============================================================================================
|
|
507
|
+
* Common Configuration
|
|
508
|
+
* ============================================================================================
|
|
509
|
+
* Price feed contract address for gas price and exchange rate data.
|
|
510
|
+
*/
|
|
511
|
+
price_feed: string;
|
|
512
|
+
/**
|
|
513
|
+
* ============================================================================================
|
|
514
|
+
* Message Parameters
|
|
515
|
+
* ============================================================================================
|
|
516
|
+
* The OApp sender address.
|
|
517
|
+
*/
|
|
518
|
+
sender: string;
|
|
519
|
+
}
|
|
520
|
+
/**
|
|
521
|
+
* Gas price information for a destination endpoint.
|
|
522
|
+
*
|
|
523
|
+
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
524
|
+
*/
|
|
525
|
+
export interface Price {
|
|
526
|
+
/**
|
|
527
|
+
* Gas cost per byte of calldata on the destination chain.
|
|
528
|
+
*/
|
|
529
|
+
gas_per_byte: u32;
|
|
530
|
+
/**
|
|
531
|
+
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
532
|
+
*/
|
|
533
|
+
gas_price_in_unit: u64;
|
|
534
|
+
/**
|
|
535
|
+
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
536
|
+
* Used to convert destination chain gas costs to source chain native token.
|
|
537
|
+
*/
|
|
538
|
+
price_ratio: u128;
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Fee estimation result with detailed breakdown.
|
|
542
|
+
*
|
|
543
|
+
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
544
|
+
*/
|
|
545
|
+
export interface FeeEstimate {
|
|
546
|
+
/**
|
|
547
|
+
* Source chain native token price in USD (scaled).
|
|
548
|
+
*/
|
|
549
|
+
native_price_usd: u128;
|
|
550
|
+
/**
|
|
551
|
+
* Price ratio used for the calculation.
|
|
552
|
+
*/
|
|
553
|
+
price_ratio: u128;
|
|
554
|
+
/**
|
|
555
|
+
* Denominator for the price ratio (typically 10^20).
|
|
556
|
+
*/
|
|
557
|
+
price_ratio_denominator: u128;
|
|
558
|
+
/**
|
|
559
|
+
* Total gas fee in source chain native token units.
|
|
560
|
+
*/
|
|
561
|
+
total_gas_fee: i128;
|
|
562
|
+
}
|
|
386
563
|
/**
|
|
387
564
|
* PacketCodecV1Error: 1100-1109
|
|
388
565
|
*/
|
|
@@ -469,6 +646,18 @@ export declare const OwnableError: {
|
|
|
469
646
|
1031: {
|
|
470
647
|
message: string;
|
|
471
648
|
};
|
|
649
|
+
1032: {
|
|
650
|
+
message: string;
|
|
651
|
+
};
|
|
652
|
+
1033: {
|
|
653
|
+
message: string;
|
|
654
|
+
};
|
|
655
|
+
1034: {
|
|
656
|
+
message: string;
|
|
657
|
+
};
|
|
658
|
+
1035: {
|
|
659
|
+
message: string;
|
|
660
|
+
};
|
|
472
661
|
};
|
|
473
662
|
/**
|
|
474
663
|
* BytesExtError: 1040-1049
|
|
@@ -485,6 +674,12 @@ export declare const UpgradeableError: {
|
|
|
485
674
|
1050: {
|
|
486
675
|
message: string;
|
|
487
676
|
};
|
|
677
|
+
1051: {
|
|
678
|
+
message: string;
|
|
679
|
+
};
|
|
680
|
+
1052: {
|
|
681
|
+
message: string;
|
|
682
|
+
};
|
|
488
683
|
};
|
|
489
684
|
/**
|
|
490
685
|
* MultisigError: 1060-1069
|
|
@@ -525,6 +720,9 @@ export type MultisigStorage = {
|
|
|
525
720
|
export type OwnableStorage = {
|
|
526
721
|
tag: "Owner";
|
|
527
722
|
values: void;
|
|
723
|
+
} | {
|
|
724
|
+
tag: "PendingOwner";
|
|
725
|
+
values: void;
|
|
528
726
|
};
|
|
529
727
|
/**
|
|
530
728
|
* TTL configuration: threshold (when to extend) and extend_to (target TTL).
|
|
@@ -550,6 +748,9 @@ export type TtlConfigStorage = {
|
|
|
550
748
|
values: void;
|
|
551
749
|
};
|
|
552
750
|
export type UpgradeableStorage = {
|
|
751
|
+
tag: "Frozen";
|
|
752
|
+
values: void;
|
|
753
|
+
} | {
|
|
553
754
|
tag: "Migrating";
|
|
554
755
|
values: void;
|
|
555
756
|
};
|
|
@@ -605,214 +806,42 @@ export declare const WorkerError: {
|
|
|
605
806
|
1215: {
|
|
606
807
|
message: string;
|
|
607
808
|
};
|
|
608
|
-
1216: {
|
|
609
|
-
message: string;
|
|
610
|
-
};
|
|
611
|
-
1217: {
|
|
612
|
-
message: string;
|
|
613
|
-
};
|
|
614
|
-
1218: {
|
|
615
|
-
message: string;
|
|
616
|
-
};
|
|
617
809
|
};
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
/**
|
|
654
|
-
* DVN options
|
|
655
|
-
*/
|
|
656
|
-
options: Buffer;
|
|
657
|
-
/**
|
|
658
|
-
* ============================================================================================
|
|
659
|
-
* Common Configuration
|
|
660
|
-
* ============================================================================================
|
|
661
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
662
|
-
*/
|
|
663
|
-
price_feed: string;
|
|
664
|
-
/**
|
|
665
|
-
* Number of required signatures (quorum).
|
|
666
|
-
*/
|
|
667
|
-
quorum: u32;
|
|
668
|
-
/**
|
|
669
|
-
* ============================================================================================
|
|
670
|
-
* Message Parameters
|
|
671
|
-
* ============================================================================================
|
|
672
|
-
* The OApp sender address.
|
|
673
|
-
*/
|
|
674
|
-
sender: string;
|
|
675
|
-
}
|
|
676
|
-
/**
|
|
677
|
-
* Parameters for executor fee calculation.
|
|
678
|
-
*
|
|
679
|
-
* Contains all inputs needed by the fee library to calculate execution fees
|
|
680
|
-
* for cross-chain messages. Includes message parameters, common configuration,
|
|
681
|
-
* and destination-specific settings.
|
|
682
|
-
*/
|
|
683
|
-
export interface FeeParams {
|
|
684
|
-
/**
|
|
685
|
-
* Size of the message calldata in bytes.
|
|
686
|
-
*/
|
|
687
|
-
calldata_size: u32;
|
|
688
|
-
/**
|
|
689
|
-
* Default fee multiplier in basis points (used if no dst-specific multiplier).
|
|
690
|
-
*/
|
|
691
|
-
default_multiplier_bps: u32;
|
|
692
|
-
/**
|
|
693
|
-
* Destination endpoint ID (chain identifier).
|
|
694
|
-
*/
|
|
695
|
-
dst_eid: u32;
|
|
696
|
-
/**
|
|
697
|
-
* Minimum fee margin in USD (scaled).
|
|
698
|
-
*/
|
|
699
|
-
floor_margin_usd: u128;
|
|
700
|
-
/**
|
|
701
|
-
* Base gas for each lzCompose call on destination chain.
|
|
702
|
-
*/
|
|
703
|
-
lz_compose_base_gas: u64;
|
|
704
|
-
/**
|
|
705
|
-
* ============================================================================================
|
|
706
|
-
* Destination-Specific Configuration
|
|
707
|
-
* ============================================================================================
|
|
708
|
-
* Base gas for lzReceive execution on destination chain.
|
|
709
|
-
*/
|
|
710
|
-
lz_receive_base_gas: u64;
|
|
711
|
-
/**
|
|
712
|
-
* Destination-specific fee multiplier in basis points (0 = use default).
|
|
713
|
-
*/
|
|
714
|
-
multiplier_bps: u32;
|
|
715
|
-
/**
|
|
716
|
-
* Maximum native token value that can be sent.
|
|
717
|
-
*/
|
|
718
|
-
native_cap: u128;
|
|
719
|
-
/**
|
|
720
|
-
* Encoded executor options (lzReceive gas, lzCompose, nativeDrop, etc.).
|
|
721
|
-
*/
|
|
722
|
-
options: Buffer;
|
|
723
|
-
/**
|
|
724
|
-
* ============================================================================================
|
|
725
|
-
* Common Configuration
|
|
726
|
-
* ============================================================================================
|
|
727
|
-
* Price feed contract address for gas price and exchange rate data.
|
|
728
|
-
*/
|
|
729
|
-
price_feed: string;
|
|
730
|
-
/**
|
|
731
|
-
* ============================================================================================
|
|
732
|
-
* Message Parameters
|
|
733
|
-
* ============================================================================================
|
|
734
|
-
* The OApp sender address.
|
|
735
|
-
*/
|
|
736
|
-
sender: string;
|
|
737
|
-
}
|
|
738
|
-
/**
|
|
739
|
-
* Gas price information for a destination endpoint.
|
|
740
|
-
*
|
|
741
|
-
* Contains the exchange rate and gas costs needed for cross-chain fee calculations.
|
|
742
|
-
*/
|
|
743
|
-
export interface Price {
|
|
744
|
-
/**
|
|
745
|
-
* Gas cost per byte of calldata on the destination chain.
|
|
746
|
-
*/
|
|
747
|
-
gas_per_byte: u32;
|
|
748
|
-
/**
|
|
749
|
-
* Gas price in the smallest unit (wei for EVM, stroops for Stellar).
|
|
750
|
-
*/
|
|
751
|
-
gas_price_in_unit: u64;
|
|
752
|
-
/**
|
|
753
|
-
* Price ratio = (remote native token price / local native token price) * PRICE_RATIO_DENOMINATOR.
|
|
754
|
-
* Used to convert destination chain gas costs to source chain native token.
|
|
755
|
-
*/
|
|
756
|
-
price_ratio: u128;
|
|
757
|
-
}
|
|
758
|
-
/**
|
|
759
|
-
* Fee estimation result with detailed breakdown.
|
|
760
|
-
*
|
|
761
|
-
* Contains the calculated fee and all intermediate values used in the calculation.
|
|
762
|
-
*/
|
|
763
|
-
export interface FeeEstimate {
|
|
764
|
-
/**
|
|
765
|
-
* Source chain native token price in USD (scaled).
|
|
766
|
-
*/
|
|
767
|
-
native_price_usd: u128;
|
|
768
|
-
/**
|
|
769
|
-
* Price ratio used for the calculation.
|
|
770
|
-
*/
|
|
771
|
-
price_ratio: u128;
|
|
772
|
-
/**
|
|
773
|
-
* Denominator for the price ratio (typically 10^20).
|
|
774
|
-
*/
|
|
775
|
-
price_ratio_denominator: u128;
|
|
776
|
-
/**
|
|
777
|
-
* Total gas fee in source chain native token units.
|
|
778
|
-
*/
|
|
779
|
-
total_gas_fee: i128;
|
|
780
|
-
}
|
|
781
|
-
export type WorkerStorage = {
|
|
782
|
-
tag: "Paused";
|
|
783
|
-
values: void;
|
|
784
|
-
} | {
|
|
785
|
-
tag: "DepositAddress";
|
|
786
|
-
values: void;
|
|
787
|
-
} | {
|
|
788
|
-
tag: "PriceFeed";
|
|
789
|
-
values: void;
|
|
790
|
-
} | {
|
|
791
|
-
tag: "WorkerFeeLib";
|
|
792
|
-
values: void;
|
|
793
|
-
} | {
|
|
794
|
-
tag: "DefaultMultiplierBps";
|
|
795
|
-
values: void;
|
|
796
|
-
} | {
|
|
797
|
-
tag: "SupportedOptionTypes";
|
|
798
|
-
values: readonly [u32];
|
|
799
|
-
} | {
|
|
800
|
-
tag: "MessageLibs";
|
|
801
|
-
values: void;
|
|
802
|
-
} | {
|
|
803
|
-
tag: "Allowlist";
|
|
804
|
-
values: readonly [string];
|
|
805
|
-
} | {
|
|
806
|
-
tag: "Denylist";
|
|
807
|
-
values: readonly [string];
|
|
808
|
-
} | {
|
|
809
|
-
tag: "AllowlistSize";
|
|
810
|
-
values: void;
|
|
811
|
-
} | {
|
|
812
|
-
tag: "Admins";
|
|
813
|
-
values: void;
|
|
814
|
-
};
|
|
815
|
-
export interface Client {
|
|
810
|
+
export type WorkerStorage = {
|
|
811
|
+
tag: "Paused";
|
|
812
|
+
values: void;
|
|
813
|
+
} | {
|
|
814
|
+
tag: "Admins";
|
|
815
|
+
values: void;
|
|
816
|
+
} | {
|
|
817
|
+
tag: "MessageLibs";
|
|
818
|
+
values: void;
|
|
819
|
+
} | {
|
|
820
|
+
tag: "Allowlist";
|
|
821
|
+
values: readonly [string];
|
|
822
|
+
} | {
|
|
823
|
+
tag: "AllowlistSize";
|
|
824
|
+
values: void;
|
|
825
|
+
} | {
|
|
826
|
+
tag: "Denylist";
|
|
827
|
+
values: readonly [string];
|
|
828
|
+
} | {
|
|
829
|
+
tag: "DefaultMultiplierBps";
|
|
830
|
+
values: void;
|
|
831
|
+
} | {
|
|
832
|
+
tag: "DepositAddress";
|
|
833
|
+
values: void;
|
|
834
|
+
} | {
|
|
835
|
+
tag: "SupportedOptionTypes";
|
|
836
|
+
values: readonly [u32];
|
|
837
|
+
} | {
|
|
838
|
+
tag: "WorkerFeeLib";
|
|
839
|
+
values: void;
|
|
840
|
+
} | {
|
|
841
|
+
tag: "PriceFeed";
|
|
842
|
+
values: void;
|
|
843
|
+
};
|
|
844
|
+
export interface Client {
|
|
816
845
|
/**
|
|
817
846
|
* Construct and simulate a set_paused 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.
|
|
818
847
|
* Sets the paused state of the worker.
|
|
@@ -839,6 +868,34 @@ export interface Client {
|
|
|
839
868
|
*/
|
|
840
869
|
simulate?: boolean;
|
|
841
870
|
}) => Promise<AssembledTransaction<null>>;
|
|
871
|
+
/**
|
|
872
|
+
* Construct and simulate a set_admin 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.
|
|
873
|
+
* Sets admin status for an address.
|
|
874
|
+
*
|
|
875
|
+
* Admins can configure worker settings like fee multipliers, deposit addresses,
|
|
876
|
+
* and supported option types.
|
|
877
|
+
*
|
|
878
|
+
* # Arguments
|
|
879
|
+
* * `admin` - The address to set admin status for
|
|
880
|
+
* * `active` - `true` to add admin, `false` to remove
|
|
881
|
+
*/
|
|
882
|
+
set_admin: ({ admin, active }: {
|
|
883
|
+
admin: string;
|
|
884
|
+
active: boolean;
|
|
885
|
+
}, txnOptions?: {
|
|
886
|
+
/**
|
|
887
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
888
|
+
*/
|
|
889
|
+
fee?: number;
|
|
890
|
+
/**
|
|
891
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
892
|
+
*/
|
|
893
|
+
timeoutInSeconds?: number;
|
|
894
|
+
/**
|
|
895
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
896
|
+
*/
|
|
897
|
+
simulate?: boolean;
|
|
898
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
842
899
|
/**
|
|
843
900
|
* Construct and simulate a set_supported_message_lib 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.
|
|
844
901
|
* Sets whether a message library is supported by this worker.
|
|
@@ -986,7 +1043,7 @@ export interface Client {
|
|
|
986
1043
|
* # Arguments
|
|
987
1044
|
* * `admin` - Admin address (must provide authorization)
|
|
988
1045
|
* * `eid` - Destination endpoint ID (chain identifier)
|
|
989
|
-
* * `option_types` -
|
|
1046
|
+
* * `option_types` - Supported option types. Each byte represents an option type.
|
|
990
1047
|
*/
|
|
991
1048
|
set_supported_option_types: ({ admin, eid, option_types }: {
|
|
992
1049
|
admin: string;
|
|
@@ -1062,15 +1119,10 @@ export interface Client {
|
|
|
1062
1119
|
simulate?: boolean;
|
|
1063
1120
|
}) => Promise<AssembledTransaction<null>>;
|
|
1064
1121
|
/**
|
|
1065
|
-
* Construct and simulate a
|
|
1066
|
-
* Returns whether
|
|
1067
|
-
*
|
|
1068
|
-
* # Arguments
|
|
1069
|
-
* * `admin` - The address to check
|
|
1122
|
+
* Construct and simulate a paused transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1123
|
+
* Returns whether the worker is paused.
|
|
1070
1124
|
*/
|
|
1071
|
-
|
|
1072
|
-
admin: string;
|
|
1073
|
-
}, txnOptions?: {
|
|
1125
|
+
paused: (txnOptions?: {
|
|
1074
1126
|
/**
|
|
1075
1127
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1076
1128
|
*/
|
|
@@ -1085,10 +1137,15 @@ export interface Client {
|
|
|
1085
1137
|
simulate?: boolean;
|
|
1086
1138
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1087
1139
|
/**
|
|
1088
|
-
* Construct and simulate a
|
|
1089
|
-
* Returns
|
|
1140
|
+
* Construct and simulate a is_admin 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.
|
|
1141
|
+
* Returns whether an address is an admin.
|
|
1142
|
+
*
|
|
1143
|
+
* # Arguments
|
|
1144
|
+
* * `admin` - The address to check
|
|
1090
1145
|
*/
|
|
1091
|
-
|
|
1146
|
+
is_admin: ({ admin }: {
|
|
1147
|
+
admin: string;
|
|
1148
|
+
}, txnOptions?: {
|
|
1092
1149
|
/**
|
|
1093
1150
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1094
1151
|
*/
|
|
@@ -1101,12 +1158,12 @@ export interface Client {
|
|
|
1101
1158
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1102
1159
|
*/
|
|
1103
1160
|
simulate?: boolean;
|
|
1104
|
-
}) => Promise<AssembledTransaction<
|
|
1161
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1105
1162
|
/**
|
|
1106
|
-
* Construct and simulate a
|
|
1107
|
-
* Returns
|
|
1163
|
+
* Construct and simulate a admins 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.
|
|
1164
|
+
* Returns all admin addresses.
|
|
1108
1165
|
*/
|
|
1109
|
-
|
|
1166
|
+
admins: (txnOptions?: {
|
|
1110
1167
|
/**
|
|
1111
1168
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1112
1169
|
*/
|
|
@@ -1119,7 +1176,7 @@ export interface Client {
|
|
|
1119
1176
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1120
1177
|
*/
|
|
1121
1178
|
simulate?: boolean;
|
|
1122
|
-
}) => Promise<AssembledTransaction<
|
|
1179
|
+
}) => Promise<AssembledTransaction<Array<string>>>;
|
|
1123
1180
|
/**
|
|
1124
1181
|
* Construct and simulate a is_supported_message_lib 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.
|
|
1125
1182
|
* Returns whether a message library is supported.
|
|
@@ -1187,6 +1244,24 @@ export interface Client {
|
|
|
1187
1244
|
*/
|
|
1188
1245
|
simulate?: boolean;
|
|
1189
1246
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1247
|
+
/**
|
|
1248
|
+
* Construct and simulate a allowlist_size 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.
|
|
1249
|
+
* Returns the number of addresses on the allowlist.
|
|
1250
|
+
*/
|
|
1251
|
+
allowlist_size: (txnOptions?: {
|
|
1252
|
+
/**
|
|
1253
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1254
|
+
*/
|
|
1255
|
+
fee?: number;
|
|
1256
|
+
/**
|
|
1257
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1258
|
+
*/
|
|
1259
|
+
timeoutInSeconds?: number;
|
|
1260
|
+
/**
|
|
1261
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1262
|
+
*/
|
|
1263
|
+
simulate?: boolean;
|
|
1264
|
+
}) => Promise<AssembledTransaction<u32>>;
|
|
1190
1265
|
/**
|
|
1191
1266
|
* Construct and simulate a is_on_denylist 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.
|
|
1192
1267
|
* Returns whether an OApp is on the denylist.
|
|
@@ -1220,10 +1295,10 @@ export interface Client {
|
|
|
1220
1295
|
* 3. Otherwise → denied
|
|
1221
1296
|
*
|
|
1222
1297
|
* # Arguments
|
|
1223
|
-
* * `
|
|
1298
|
+
* * `oapp` - OApp contract address to check
|
|
1224
1299
|
*/
|
|
1225
|
-
has_acl: ({
|
|
1226
|
-
|
|
1300
|
+
has_acl: ({ oapp }: {
|
|
1301
|
+
oapp: string;
|
|
1227
1302
|
}, txnOptions?: {
|
|
1228
1303
|
/**
|
|
1229
1304
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
@@ -1238,24 +1313,6 @@ export interface Client {
|
|
|
1238
1313
|
*/
|
|
1239
1314
|
simulate?: boolean;
|
|
1240
1315
|
}) => Promise<AssembledTransaction<boolean>>;
|
|
1241
|
-
/**
|
|
1242
|
-
* Construct and simulate a allowlist_size 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.
|
|
1243
|
-
* Returns the number of addresses on the allowlist.
|
|
1244
|
-
*/
|
|
1245
|
-
allowlist_size: (txnOptions?: {
|
|
1246
|
-
/**
|
|
1247
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1248
|
-
*/
|
|
1249
|
-
fee?: number;
|
|
1250
|
-
/**
|
|
1251
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1252
|
-
*/
|
|
1253
|
-
timeoutInSeconds?: number;
|
|
1254
|
-
/**
|
|
1255
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1256
|
-
*/
|
|
1257
|
-
simulate?: boolean;
|
|
1258
|
-
}) => Promise<AssembledTransaction<u32>>;
|
|
1259
1316
|
/**
|
|
1260
1317
|
* Construct and simulate a default_multiplier_bps 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.
|
|
1261
1318
|
* Returns the default fee multiplier in basis points.
|
|
@@ -1291,12 +1348,17 @@ export interface Client {
|
|
|
1291
1348
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1292
1349
|
*/
|
|
1293
1350
|
simulate?: boolean;
|
|
1294
|
-
}) => Promise<AssembledTransaction<string
|
|
1351
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1295
1352
|
/**
|
|
1296
|
-
* Construct and simulate a
|
|
1297
|
-
* Returns
|
|
1353
|
+
* Construct and simulate a get_supported_option_types 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.
|
|
1354
|
+
* Returns supported option types for a destination endpoint.
|
|
1355
|
+
*
|
|
1356
|
+
* # Arguments
|
|
1357
|
+
* * `eid` - Destination endpoint ID (chain identifier)
|
|
1298
1358
|
*/
|
|
1299
|
-
|
|
1359
|
+
get_supported_option_types: ({ eid }: {
|
|
1360
|
+
eid: u32;
|
|
1361
|
+
}, txnOptions?: {
|
|
1300
1362
|
/**
|
|
1301
1363
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1302
1364
|
*/
|
|
@@ -1309,17 +1371,12 @@ export interface Client {
|
|
|
1309
1371
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1310
1372
|
*/
|
|
1311
1373
|
simulate?: boolean;
|
|
1312
|
-
}) => Promise<AssembledTransaction<
|
|
1374
|
+
}) => Promise<AssembledTransaction<Option<Buffer>>>;
|
|
1313
1375
|
/**
|
|
1314
|
-
* Construct and simulate a
|
|
1315
|
-
* Returns
|
|
1316
|
-
*
|
|
1317
|
-
* # Arguments
|
|
1318
|
-
* * `eid` - Destination endpoint ID (chain identifier)
|
|
1376
|
+
* Construct and simulate a worker_fee_lib 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.
|
|
1377
|
+
* Returns the worker fee library contract address.
|
|
1319
1378
|
*/
|
|
1320
|
-
|
|
1321
|
-
eid: u32;
|
|
1322
|
-
}, txnOptions?: {
|
|
1379
|
+
worker_fee_lib: (txnOptions?: {
|
|
1323
1380
|
/**
|
|
1324
1381
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1325
1382
|
*/
|
|
@@ -1332,12 +1389,12 @@ export interface Client {
|
|
|
1332
1389
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1333
1390
|
*/
|
|
1334
1391
|
simulate?: boolean;
|
|
1335
|
-
}) => Promise<AssembledTransaction<Option<
|
|
1392
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1336
1393
|
/**
|
|
1337
|
-
* Construct and simulate a
|
|
1338
|
-
* Returns the
|
|
1394
|
+
* Construct and simulate a price_feed 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.
|
|
1395
|
+
* Returns the price feed contract address.
|
|
1339
1396
|
*/
|
|
1340
|
-
|
|
1397
|
+
price_feed: (txnOptions?: {
|
|
1341
1398
|
/**
|
|
1342
1399
|
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1343
1400
|
*/
|
|
@@ -1350,7 +1407,7 @@ export interface Client {
|
|
|
1350
1407
|
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1351
1408
|
*/
|
|
1352
1409
|
simulate?: boolean;
|
|
1353
|
-
}) => Promise<AssembledTransaction<string
|
|
1410
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1354
1411
|
/**
|
|
1355
1412
|
* Construct and simulate a assign_job 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.
|
|
1356
1413
|
* Assigns a job to the executor and returns fee recipient information.
|
|
@@ -1513,71 +1570,6 @@ export interface Client {
|
|
|
1513
1570
|
*/
|
|
1514
1571
|
simulate?: boolean;
|
|
1515
1572
|
}) => Promise<AssembledTransaction<null>>;
|
|
1516
|
-
/**
|
|
1517
|
-
* Construct and simulate a set_admin 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.
|
|
1518
|
-
* Sets admin status for an address. Requires owner authorization.
|
|
1519
|
-
*
|
|
1520
|
-
* This is the multisig/quorum path for admin management.
|
|
1521
|
-
*
|
|
1522
|
-
* # Arguments
|
|
1523
|
-
* * `admin` - The address to set admin status for
|
|
1524
|
-
* * `active` - Whether the address should be an admin
|
|
1525
|
-
*/
|
|
1526
|
-
set_admin: ({ admin, active }: {
|
|
1527
|
-
admin: string;
|
|
1528
|
-
active: boolean;
|
|
1529
|
-
}, txnOptions?: {
|
|
1530
|
-
/**
|
|
1531
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1532
|
-
*/
|
|
1533
|
-
fee?: number;
|
|
1534
|
-
/**
|
|
1535
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1536
|
-
*/
|
|
1537
|
-
timeoutInSeconds?: number;
|
|
1538
|
-
/**
|
|
1539
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1540
|
-
*/
|
|
1541
|
-
simulate?: boolean;
|
|
1542
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1543
|
-
/**
|
|
1544
|
-
* Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1545
|
-
*/
|
|
1546
|
-
upgrade: ({ new_wasm_hash }: {
|
|
1547
|
-
new_wasm_hash: Buffer;
|
|
1548
|
-
}, txnOptions?: {
|
|
1549
|
-
/**
|
|
1550
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1551
|
-
*/
|
|
1552
|
-
fee?: number;
|
|
1553
|
-
/**
|
|
1554
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1555
|
-
*/
|
|
1556
|
-
timeoutInSeconds?: number;
|
|
1557
|
-
/**
|
|
1558
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1559
|
-
*/
|
|
1560
|
-
simulate?: boolean;
|
|
1561
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1562
|
-
/**
|
|
1563
|
-
* Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1564
|
-
*/
|
|
1565
|
-
migrate: ({ migration_data }: {
|
|
1566
|
-
migration_data: MigrationData;
|
|
1567
|
-
}, txnOptions?: {
|
|
1568
|
-
/**
|
|
1569
|
-
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1570
|
-
*/
|
|
1571
|
-
fee?: number;
|
|
1572
|
-
/**
|
|
1573
|
-
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1574
|
-
*/
|
|
1575
|
-
timeoutInSeconds?: number;
|
|
1576
|
-
/**
|
|
1577
|
-
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1578
|
-
*/
|
|
1579
|
-
simulate?: boolean;
|
|
1580
|
-
}) => Promise<AssembledTransaction<null>>;
|
|
1581
1573
|
/**
|
|
1582
1574
|
* 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.
|
|
1583
1575
|
*/
|
|
@@ -1731,9 +1723,34 @@ export interface Client {
|
|
|
1731
1723
|
*/
|
|
1732
1724
|
simulate?: boolean;
|
|
1733
1725
|
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1726
|
+
/**
|
|
1727
|
+
* 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.
|
|
1728
|
+
* Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
|
|
1729
|
+
*/
|
|
1730
|
+
pending_owner: (txnOptions?: {
|
|
1731
|
+
/**
|
|
1732
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1733
|
+
*/
|
|
1734
|
+
fee?: number;
|
|
1735
|
+
/**
|
|
1736
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1737
|
+
*/
|
|
1738
|
+
timeoutInSeconds?: number;
|
|
1739
|
+
/**
|
|
1740
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1741
|
+
*/
|
|
1742
|
+
simulate?: boolean;
|
|
1743
|
+
}) => Promise<AssembledTransaction<Option<string>>>;
|
|
1734
1744
|
/**
|
|
1735
1745
|
* 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.
|
|
1736
|
-
* Transfers ownership to a new address.
|
|
1746
|
+
* Transfers ownership immediately to a new address.
|
|
1747
|
+
*
|
|
1748
|
+
* Use with caution - if you transfer to a wrong address, ownership is lost forever.
|
|
1749
|
+
* Consider using `propose_ownership_transfer` instead.
|
|
1750
|
+
*
|
|
1751
|
+
* # Panics
|
|
1752
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1753
|
+
* - `TransferInProgress` if a 2-step transfer is in progress
|
|
1737
1754
|
*/
|
|
1738
1755
|
transfer_ownership: ({ new_owner }: {
|
|
1739
1756
|
new_owner: string;
|
|
@@ -1751,9 +1768,71 @@ export interface Client {
|
|
|
1751
1768
|
*/
|
|
1752
1769
|
simulate?: boolean;
|
|
1753
1770
|
}) => Promise<AssembledTransaction<null>>;
|
|
1771
|
+
/**
|
|
1772
|
+
* 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.
|
|
1773
|
+
* Proposes an ownership transfer to a new address.
|
|
1774
|
+
*
|
|
1775
|
+
* The new owner must call `accept_ownership()` within `ttl` ledgers
|
|
1776
|
+
* to complete the transfer. The pending transfer will automatically expire after.
|
|
1777
|
+
*
|
|
1778
|
+
* # Arguments
|
|
1779
|
+
* - `new_owner` - The proposed new owner
|
|
1780
|
+
* - `ttl` - Number of ledgers the new owner has to accept.
|
|
1781
|
+
* Use `0` to cancel a pending transfer (new_owner must match pending).
|
|
1782
|
+
*
|
|
1783
|
+
* # Panics
|
|
1784
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1785
|
+
* - `NoPendingTransfer` when cancelling and no pending transfer exists
|
|
1786
|
+
* - `InvalidTtl` if ttl exceeds max TTL
|
|
1787
|
+
* - `InvalidPendingOwner` when cancelling with wrong new_owner address
|
|
1788
|
+
*/
|
|
1789
|
+
propose_ownership_transfer: ({ new_owner, ttl }: {
|
|
1790
|
+
new_owner: string;
|
|
1791
|
+
ttl: u32;
|
|
1792
|
+
}, txnOptions?: {
|
|
1793
|
+
/**
|
|
1794
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1795
|
+
*/
|
|
1796
|
+
fee?: number;
|
|
1797
|
+
/**
|
|
1798
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1799
|
+
*/
|
|
1800
|
+
timeoutInSeconds?: number;
|
|
1801
|
+
/**
|
|
1802
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1803
|
+
*/
|
|
1804
|
+
simulate?: boolean;
|
|
1805
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1806
|
+
/**
|
|
1807
|
+
* 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.
|
|
1808
|
+
* Accepts a pending 2-step ownership transfer.
|
|
1809
|
+
*
|
|
1810
|
+
* Must be called by the pending owner before the TTL expires.
|
|
1811
|
+
*
|
|
1812
|
+
* # Panics
|
|
1813
|
+
* - `NoPendingTransfer` if there is no pending transfer (or it expired)
|
|
1814
|
+
*/
|
|
1815
|
+
accept_ownership: (txnOptions?: {
|
|
1816
|
+
/**
|
|
1817
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1818
|
+
*/
|
|
1819
|
+
fee?: number;
|
|
1820
|
+
/**
|
|
1821
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1822
|
+
*/
|
|
1823
|
+
timeoutInSeconds?: number;
|
|
1824
|
+
/**
|
|
1825
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1826
|
+
*/
|
|
1827
|
+
simulate?: boolean;
|
|
1828
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1754
1829
|
/**
|
|
1755
1830
|
* 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.
|
|
1756
|
-
* Permanently renounces ownership.
|
|
1831
|
+
* Permanently renounces ownership.
|
|
1832
|
+
*
|
|
1833
|
+
* # Panics
|
|
1834
|
+
* - `OwnerNotSet` if no owner is currently set
|
|
1835
|
+
* - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
|
|
1757
1836
|
*/
|
|
1758
1837
|
renounce_ownership: (txnOptions?: {
|
|
1759
1838
|
/**
|
|
@@ -1769,6 +1848,86 @@ export interface Client {
|
|
|
1769
1848
|
*/
|
|
1770
1849
|
simulate?: boolean;
|
|
1771
1850
|
}) => Promise<AssembledTransaction<null>>;
|
|
1851
|
+
/**
|
|
1852
|
+
* Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1853
|
+
* The type of data required for migration.
|
|
1854
|
+
* Upgrades the contract to new WASM bytecode.
|
|
1855
|
+
* Sets a migration flag that must be cleared by calling `migrate`.
|
|
1856
|
+
*/
|
|
1857
|
+
upgrade: ({ new_wasm_hash }: {
|
|
1858
|
+
new_wasm_hash: Buffer;
|
|
1859
|
+
}, txnOptions?: {
|
|
1860
|
+
/**
|
|
1861
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1862
|
+
*/
|
|
1863
|
+
fee?: number;
|
|
1864
|
+
/**
|
|
1865
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1866
|
+
*/
|
|
1867
|
+
timeoutInSeconds?: number;
|
|
1868
|
+
/**
|
|
1869
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1870
|
+
*/
|
|
1871
|
+
simulate?: boolean;
|
|
1872
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1873
|
+
/**
|
|
1874
|
+
* Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1875
|
+
* Runs migration logic after an upgrade.
|
|
1876
|
+
* Can only be called when the migration flag is set by a previous `upgrade` call.
|
|
1877
|
+
*/
|
|
1878
|
+
migrate: ({ migration_data }: {
|
|
1879
|
+
migration_data: Buffer;
|
|
1880
|
+
}, txnOptions?: {
|
|
1881
|
+
/**
|
|
1882
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1883
|
+
*/
|
|
1884
|
+
fee?: number;
|
|
1885
|
+
/**
|
|
1886
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1887
|
+
*/
|
|
1888
|
+
timeoutInSeconds?: number;
|
|
1889
|
+
/**
|
|
1890
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1891
|
+
*/
|
|
1892
|
+
simulate?: boolean;
|
|
1893
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1894
|
+
/**
|
|
1895
|
+
* Construct and simulate a freeze transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1896
|
+
* Permanently freezes the contract, preventing any future upgrades.
|
|
1897
|
+
* This action is irreversible.
|
|
1898
|
+
*/
|
|
1899
|
+
freeze: (txnOptions?: {
|
|
1900
|
+
/**
|
|
1901
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1902
|
+
*/
|
|
1903
|
+
fee?: number;
|
|
1904
|
+
/**
|
|
1905
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1906
|
+
*/
|
|
1907
|
+
timeoutInSeconds?: number;
|
|
1908
|
+
/**
|
|
1909
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1910
|
+
*/
|
|
1911
|
+
simulate?: boolean;
|
|
1912
|
+
}) => Promise<AssembledTransaction<null>>;
|
|
1913
|
+
/**
|
|
1914
|
+
* Construct and simulate a is_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
1915
|
+
* Returns whether the contract is frozen (upgrades disabled).
|
|
1916
|
+
*/
|
|
1917
|
+
is_frozen: (txnOptions?: {
|
|
1918
|
+
/**
|
|
1919
|
+
* The fee to pay for the transaction. Default: BASE_FEE
|
|
1920
|
+
*/
|
|
1921
|
+
fee?: number;
|
|
1922
|
+
/**
|
|
1923
|
+
* The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
|
|
1924
|
+
*/
|
|
1925
|
+
timeoutInSeconds?: number;
|
|
1926
|
+
/**
|
|
1927
|
+
* Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
|
|
1928
|
+
*/
|
|
1929
|
+
simulate?: boolean;
|
|
1930
|
+
}) => Promise<AssembledTransaction<boolean>>;
|
|
1772
1931
|
}
|
|
1773
1932
|
export declare class Client extends ContractClient {
|
|
1774
1933
|
readonly options: ContractClientOptions;
|
|
@@ -1796,6 +1955,7 @@ export declare class Client extends ContractClient {
|
|
|
1796
1955
|
constructor(options: ContractClientOptions);
|
|
1797
1956
|
readonly fromJSON: {
|
|
1798
1957
|
set_paused: (json: string) => AssembledTransaction<null>;
|
|
1958
|
+
set_admin: (json: string) => AssembledTransaction<null>;
|
|
1799
1959
|
set_supported_message_lib: (json: string) => AssembledTransaction<null>;
|
|
1800
1960
|
set_allowlist: (json: string) => AssembledTransaction<null>;
|
|
1801
1961
|
set_denylist: (json: string) => AssembledTransaction<null>;
|
|
@@ -1804,20 +1964,20 @@ export declare class Client extends ContractClient {
|
|
|
1804
1964
|
set_supported_option_types: (json: string) => AssembledTransaction<null>;
|
|
1805
1965
|
set_worker_fee_lib: (json: string) => AssembledTransaction<null>;
|
|
1806
1966
|
set_price_feed: (json: string) => AssembledTransaction<null>;
|
|
1967
|
+
paused: (json: string) => AssembledTransaction<boolean>;
|
|
1807
1968
|
is_admin: (json: string) => AssembledTransaction<boolean>;
|
|
1808
1969
|
admins: (json: string) => AssembledTransaction<string[]>;
|
|
1809
|
-
paused: (json: string) => AssembledTransaction<boolean>;
|
|
1810
1970
|
is_supported_message_lib: (json: string) => AssembledTransaction<boolean>;
|
|
1811
1971
|
message_libs: (json: string) => AssembledTransaction<string[]>;
|
|
1812
1972
|
is_on_allowlist: (json: string) => AssembledTransaction<boolean>;
|
|
1973
|
+
allowlist_size: (json: string) => AssembledTransaction<number>;
|
|
1813
1974
|
is_on_denylist: (json: string) => AssembledTransaction<boolean>;
|
|
1814
1975
|
has_acl: (json: string) => AssembledTransaction<boolean>;
|
|
1815
|
-
allowlist_size: (json: string) => AssembledTransaction<number>;
|
|
1816
1976
|
default_multiplier_bps: (json: string) => AssembledTransaction<number>;
|
|
1817
|
-
deposit_address: (json: string) => AssembledTransaction<string
|
|
1818
|
-
price_feed: (json: string) => AssembledTransaction<string>;
|
|
1977
|
+
deposit_address: (json: string) => AssembledTransaction<Option<string>>;
|
|
1819
1978
|
get_supported_option_types: (json: string) => AssembledTransaction<Option<Buffer<ArrayBufferLike>>>;
|
|
1820
|
-
worker_fee_lib: (json: string) => AssembledTransaction<string
|
|
1979
|
+
worker_fee_lib: (json: string) => AssembledTransaction<Option<string>>;
|
|
1980
|
+
price_feed: (json: string) => AssembledTransaction<Option<string>>;
|
|
1821
1981
|
assign_job: (json: string) => AssembledTransaction<FeeRecipient>;
|
|
1822
1982
|
get_fee: (json: string) => AssembledTransaction<bigint>;
|
|
1823
1983
|
set_dst_config: (json: string) => AssembledTransaction<null>;
|
|
@@ -1825,9 +1985,6 @@ export declare class Client extends ContractClient {
|
|
|
1825
1985
|
native_drop: (json: string) => AssembledTransaction<null>;
|
|
1826
1986
|
endpoint: (json: string) => AssembledTransaction<string>;
|
|
1827
1987
|
withdraw_token: (json: string) => AssembledTransaction<null>;
|
|
1828
|
-
set_admin: (json: string) => AssembledTransaction<null>;
|
|
1829
|
-
upgrade: (json: string) => AssembledTransaction<null>;
|
|
1830
|
-
migrate: (json: string) => AssembledTransaction<null>;
|
|
1831
1988
|
authorizer: (json: string) => AssembledTransaction<string>;
|
|
1832
1989
|
set_ttl_configs: (json: string) => AssembledTransaction<null>;
|
|
1833
1990
|
ttl_configs: (json: string) => AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>;
|
|
@@ -1835,7 +1992,14 @@ export declare class Client extends ContractClient {
|
|
|
1835
1992
|
is_ttl_configs_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1836
1993
|
extend_instance_ttl: (json: string) => AssembledTransaction<null>;
|
|
1837
1994
|
owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1995
|
+
pending_owner: (json: string) => AssembledTransaction<Option<string>>;
|
|
1838
1996
|
transfer_ownership: (json: string) => AssembledTransaction<null>;
|
|
1997
|
+
propose_ownership_transfer: (json: string) => AssembledTransaction<null>;
|
|
1998
|
+
accept_ownership: (json: string) => AssembledTransaction<null>;
|
|
1839
1999
|
renounce_ownership: (json: string) => AssembledTransaction<null>;
|
|
2000
|
+
upgrade: (json: string) => AssembledTransaction<null>;
|
|
2001
|
+
migrate: (json: string) => AssembledTransaction<null>;
|
|
2002
|
+
freeze: (json: string) => AssembledTransaction<null>;
|
|
2003
|
+
is_frozen: (json: string) => AssembledTransaction<boolean>;
|
|
1840
2004
|
};
|
|
1841
2005
|
}
|