@layerzerolabs/protocol-stellar-v2 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/.turbo/turbo-build.log +347 -271
  2. package/.turbo/turbo-lint.log +277 -208
  3. package/.turbo/turbo-test.log +1700 -1370
  4. package/Cargo.lock +22 -51
  5. package/Cargo.toml +6 -1
  6. package/contracts/common-macros/src/auth.rs +10 -9
  7. package/contracts/common-macros/src/contract_ttl.rs +1 -4
  8. package/contracts/common-macros/src/error.rs +1 -3
  9. package/contracts/common-macros/src/lib.rs +65 -61
  10. package/contracts/common-macros/src/storage.rs +212 -65
  11. package/contracts/common-macros/src/tests/auth.rs +75 -6
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
  13. package/contracts/common-macros/src/tests/error.rs +9 -21
  14. package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
  15. package/contracts/common-macros/src/tests/mod.rs +2 -0
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
  21. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
  22. package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
  23. package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
  24. package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
  25. package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
  26. package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
  27. package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
  28. package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
  29. package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
  30. package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
  31. package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
  32. package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
  33. package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
  34. package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
  35. package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
  36. package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
  37. package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
  38. package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
  39. package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
  40. package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
  41. package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
  42. package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
  43. package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
  44. package/contracts/common-macros/src/ttl_configurable.rs +1 -4
  45. package/contracts/common-macros/src/upgradeable.rs +21 -3
  46. package/contracts/endpoint-v2/Cargo.toml +0 -4
  47. package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
  48. package/contracts/endpoint-v2/src/errors.rs +26 -1
  49. package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
  50. package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
  51. package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
  52. package/contracts/endpoint-v2/src/lib.rs +0 -1
  53. package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
  54. package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
  55. package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
  56. package/contracts/endpoint-v2/src/storage.rs +9 -1
  57. package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
  58. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
  59. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  60. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
  61. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
  62. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
  63. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
  64. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
  65. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
  66. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
  67. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
  68. package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
  69. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
  70. package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
  71. package/contracts/layerzero-views/src/tests/mod.rs +1 -0
  72. package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
  73. package/contracts/layerzero-views/src/types.rs +2 -3
  74. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
  75. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
  76. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
  77. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
  78. package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
  79. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
  80. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
  81. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
  82. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
  83. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
  84. package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
  85. package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
  86. package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
  87. package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
  88. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
  89. package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
  90. package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
  91. package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
  92. package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
  93. package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
  94. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
  95. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
  96. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
  97. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
  98. package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
  99. package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
  100. package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
  101. package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
  102. package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
  103. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
  104. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
  105. package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
  106. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
  107. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
  108. package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
  109. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
  110. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
  111. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
  112. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
  113. package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
  114. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
  115. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
  116. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
  117. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
  118. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
  119. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
  120. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
  121. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
  122. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
  123. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
  124. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
  125. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
  126. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
  127. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
  128. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
  129. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
  130. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
  131. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
  132. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
  133. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
  134. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
  135. package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
  136. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
  137. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
  138. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
  139. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
  140. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
  141. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
  142. package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
  143. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
  144. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
  145. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
  146. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
  147. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
  148. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
  149. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
  150. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
  151. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
  152. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
  153. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
  154. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
  155. package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
  156. package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
  157. package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
  158. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
  159. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
  160. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
  161. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
  162. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
  163. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
  164. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
  165. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
  166. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
  167. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
  168. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
  169. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
  170. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
  171. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
  172. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
  173. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
  174. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
  175. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
  176. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
  177. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
  178. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
  179. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
  180. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
  181. package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
  182. package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
  183. package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
  184. package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
  185. package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
  186. package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
  187. package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
  188. package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
  189. package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
  190. package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
  191. package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
  192. package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
  193. package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
  194. package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
  195. package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
  196. package/contracts/message-libs/uln-302/src/errors.rs +21 -0
  197. package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
  198. package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
  199. package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
  200. package/contracts/message-libs/uln-302/src/storage.rs +5 -5
  201. package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
  202. package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
  203. package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
  204. package/contracts/oapps/counter/Cargo.toml +2 -0
  205. package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
  206. package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
  207. package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
  208. package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
  209. package/contracts/oapps/counter/src/tests/mod.rs +1 -0
  210. package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
  211. package/contracts/oapps/oapp/src/lib.rs +0 -3
  212. package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
  213. package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
  214. package/contracts/oapps/oft/src/lib.rs +3 -0
  215. package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
  216. package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
  217. package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
  218. package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
  219. package/contracts/oapps/oft/src/tests/mod.rs +2 -0
  220. package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
  221. package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
  222. package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
  223. package/contracts/oapps/oft-core/src/lib.rs +2 -2
  224. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
  225. package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
  226. package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
  227. package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
  228. package/contracts/utils/src/auth.rs +2 -2
  229. package/contracts/utils/src/buffer_reader.rs +61 -10
  230. package/contracts/utils/src/buffer_writer.rs +35 -20
  231. package/contracts/utils/src/bytes_ext.rs +1 -2
  232. package/contracts/utils/src/errors.rs +5 -3
  233. package/contracts/utils/src/multisig.rs +59 -36
  234. package/contracts/utils/src/option_ext.rs +3 -3
  235. package/contracts/utils/src/ownable.rs +12 -6
  236. package/contracts/utils/src/tests/auth.rs +179 -0
  237. package/contracts/utils/src/tests/buffer_reader.rs +203 -1
  238. package/contracts/utils/src/tests/buffer_writer.rs +176 -5
  239. package/contracts/utils/src/tests/mod.rs +2 -0
  240. package/contracts/utils/src/tests/multisig.rs +170 -141
  241. package/contracts/utils/src/tests/option_ext.rs +1 -1
  242. package/contracts/utils/src/tests/ownable.rs +156 -161
  243. package/contracts/utils/src/tests/test_helper.rs +21 -1
  244. package/contracts/utils/src/tests/testing_utils.rs +84 -2
  245. package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
  246. package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
  247. package/contracts/utils/src/tests/upgradeable.rs +115 -6
  248. package/contracts/utils/src/ttl_configurable.rs +22 -12
  249. package/contracts/utils/src/ttl_extendable.rs +1 -3
  250. package/contracts/utils/src/upgradeable.rs +21 -24
  251. package/contracts/workers/dvn/src/auth.rs +1 -1
  252. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  253. package/contracts/workers/dvn/src/storage.rs +1 -1
  254. package/contracts/workers/dvn/src/tests/auth.rs +136 -3
  255. package/contracts/workers/dvn/src/tests/mod.rs +0 -1
  256. package/contracts/workers/dvn/src/tests/setup.rs +4 -10
  257. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
  258. package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
  259. package/contracts/workers/worker/src/worker.rs +1 -1
  260. package/docs/oft-guide.md +5 -5
  261. package/package.json +5 -7
  262. package/sdk/.turbo/turbo-test.log +662 -466
  263. package/sdk/LICENSE +23 -0
  264. package/sdk/dist/generated/bml.d.ts +101 -106
  265. package/sdk/dist/generated/bml.js +108 -26
  266. package/sdk/dist/generated/counter.d.ts +123 -484
  267. package/sdk/dist/generated/counter.js +103 -25
  268. package/sdk/dist/generated/dvn.d.ts +141 -699
  269. package/sdk/dist/generated/dvn.js +106 -28
  270. package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
  271. package/sdk/dist/generated/dvn_fee_lib.js +27 -24
  272. package/sdk/dist/generated/endpoint.d.ts +158 -836
  273. package/sdk/dist/generated/endpoint.js +107 -29
  274. package/sdk/dist/generated/executor.d.ts +139 -671
  275. package/sdk/dist/generated/executor.js +106 -28
  276. package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
  277. package/sdk/dist/generated/executor_fee_lib.js +106 -28
  278. package/sdk/dist/generated/executor_helper.d.ts +95 -92
  279. package/sdk/dist/generated/executor_helper.js +103 -25
  280. package/sdk/dist/generated/layerzero_view.d.ts +178 -335
  281. package/sdk/dist/generated/layerzero_view.js +172 -33
  282. package/sdk/dist/generated/oft.d.ts +137 -680
  283. package/sdk/dist/generated/oft.js +103 -25
  284. package/sdk/dist/generated/price_feed.d.ts +45 -444
  285. package/sdk/dist/generated/price_feed.js +27 -24
  286. package/sdk/dist/generated/sml.d.ts +119 -428
  287. package/sdk/dist/generated/sml.js +103 -25
  288. package/sdk/dist/generated/treasury.d.ts +109 -288
  289. package/sdk/dist/generated/treasury.js +103 -25
  290. package/sdk/dist/generated/uln302.d.ts +190 -527
  291. package/sdk/dist/generated/uln302.js +170 -31
  292. package/sdk/dist/generated/upgrader.d.ts +14 -34
  293. package/sdk/dist/generated/upgrader.js +24 -21
  294. package/sdk/package.json +3 -4
  295. package/sdk/test/counter-sml.test.ts +218 -142
  296. package/sdk/test/counter-uln.test.ts +189 -145
  297. package/sdk/test/oft-sml.test.ts +173 -156
  298. package/sdk/test/suites/constants.ts +7 -1
  299. package/sdk/test/suites/globalSetup.ts +140 -74
  300. package/sdk/turbo.json +1 -1
  301. package/tools/ts-bindings-gen/Cargo.toml +4 -4
  302. package/tools/ts-bindings-gen/src/main.rs +4 -0
  303. package/turbo.json +3 -0
  304. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
  305. package/contracts/endpoint-v2/src/constants.rs +0 -52
  306. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
  307. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
  308. package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
  309. package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
  310. package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
  311. package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
  312. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
  313. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
  314. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
  315. package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
  316. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
  317. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
  318. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
  319. package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
  320. package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
  321. package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
  322. package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
  323. package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
  324. package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
  325. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
  326. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
  327. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
  328. /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
@@ -6,14 +6,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
6
6
  export * as rpc from '@stellar/stellar-sdk/rpc';
7
7
  /**
8
8
  * Embedded WASM bytecode (base64-encoded)
9
- * Size: 33995 bytes (33.20 KB)
9
+ * Size: 33115 bytes (32.34 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAABlgEaYAR+fn5+AX5gAn5+AX5gA35+fgF+YAF+AX5gAAF+YAN/f38AYAF/AX5gAn9/AGACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAX8Bf2AAAGACfn8AYAF+AGACfn8BfmAEf39/fwF+YAV+f39/fwBgAn9/AX5gAX4Bf2AFf39/fn4AYAJ+fgBgBH9+fn8AYAV/fn5+fgACowEbAWwBNwAAAWwBMQABAWwBXwACAWEBMAADAWwBMgABAXgBMQABAXYBMwADAXYBMQABAWkBNgABAWIBOAADAWwBNgADAWIBMAADAWkBXwADAWkBMAADAWkBMwABAWkBNQADAWkBNAADAXYBZwABAWIBagABAW0BOQACAW0BYQAAAXgBMAABAXgBMwAEAXgBOAAEAWwBMAABAWwBOAABAXgBNQADA3FwBQYHCAkKAQsMBw0LBg4EBAwPDgwQBgwRCRIGBwEFCQoJEwkBEBQDAwMDDA4BEAkHAQEDFQQMBAwDDRYHDBYIAAwKBAMEAQcHEAMMAwQHBAQEBAMXAQ4LCgQOBAEBCQYEBxQEBA4FCQUGBwUYGBkZGQUDAQARBiEEfwFBgIDAAAt/AEGshMAAC38AQc+GwAALfwBB0IbAAAsHpwUkBm1lbW9yeQIAEXNldF9wcmljZV91cGRhdGVyAD4bc2V0X3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAEIgc2V0X2FyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQAQxVzZXRfZWlkX3RvX21vZGVsX3R5cGUARAlzZXRfcHJpY2UARxZzZXRfcHJpY2VfZm9yX2FyYml0cnVtAEsac2V0X25hdGl2ZV90b2tlbl9wcmljZV91c2QATBBpc19wcmljZV91cGRhdGVyAE0cYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudABPEmFyYml0cnVtX3ByaWNlX2V4dABREWVpZF90b19tb2RlbF90eXBlAFMTZXN0aW1hdGVfZmVlX2J5X2VpZABaFm5hdGl2ZV90b2tlbl9wcmljZV91c2QAXQlnZXRfcHJpY2UAXhtnZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAXw1fX2NvbnN0cnVjdG9yAGAHdXBncmFkZQBkB21pZ3JhdGUAZgZmcmVlemUAZwlpc19mcm96ZW4AaQphdXRob3JpemVyAGoFb3duZXIAaw1wZW5kaW5nX293bmVyAGwSdHJhbnNmZXJfb3duZXJzaGlwAG0acHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAbxBhY2NlcHRfb3duZXJzaGlwAHMScmVub3VuY2Vfb3duZXJzaGlwAHUTZXh0ZW5kX2luc3RhbmNlX3R0bAB2D3NldF90dGxfY29uZmlncwB3C3R0bF9jb25maWdzAHoSZnJlZXplX3R0bF9jb25maWdzAH0VaXNfdHRsX2NvbmZpZ3NfZnJvemVuAH4BXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCrKBAXAlACAAEJyAgIAAQgEgAa1CIIZCBIQgAq1CIIZCBIQQgICAgAAaC4QDAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQAJAIAAoAgAOBwABAgMEBQYACyABQaCCwIAAQRUQuICAgAAgASgCAA0HIAEgASkDCBC5gICAAAwGCyABQbWCwIAAQQwQuICAgAAgASgCAA0GIAEgASkDCCAAKQMIELqAgIAADAULIAFBwYLAgABBERC4gICAACABKAIADQUgASABKQMIIAA1AgRCIIZCBIQQuoCAgAAMBAsgAUHSgsCAAEEQELiAgIAAIAEoAgANBCABIAEpAwgQuYCAgAAMAwsgAUHigsCAAEEOELiAgIAAIAEoAgANAyABIAEpAwgQuYCAgAAMAgsgAUHwgsCAAEEaELiAgIAAIAEoAgANAiABIAEpAwgQuYCAgAAMAQsgAUGKg8CAAEEOELiAgIAAIAEoAgANASABIAEpAwggADUCBEIghkIEhBC6gICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC40BAgF/AX4jgICAgABBIGsiAiSAgICAAAJAAkACQCABEJyAgIAAIgNCAhCegICAAA0AQgAhAwwBCyACIANCAhCBgICAABCfgICAACACKAIAQQFGDQEgAikDECEDIAAgAikDGDcDGCAAIAM3AxBCASEDCyAAIAM3AwAgAEIANwMIIAJBIGokgICAgAAPCwALDwAgACABEJiAgIAAQgFRC3sCAX8BfgJAAkACQCABp0H/AXEiAkHEAEYNACACQQpHDQFCACEDIABCADcDGCAAIAFCCIg3AxAMAgsgARCPgICAACEDIAEQkICAgAAhASAAIAM3AxggACABNwMQQgAhAwwBCyAAQoOQgICAATcDCEIBIQMLIAAgAzcDAAsdACAAEJyAgIAAIAEgAhChgICAAEICEIKAgIAAGgtDAQF/I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ3ICAgAACQCACKAIAQQFHDQAACyACKQMIIQEgAkEQaiSAgICAACABC1gBAn8jgICAgABBEGsiACSAgICAACAAQQRqEKOAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBCkgICAAAtBABClgICAACEBIABBEGokgICAgAAgAUH9AXELDAAgAEEBEISBgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEJmAgIAAGgtHAgF/AX5BAiEBAkAgABCDgYCAACICQgIQnoCAgABFDQBBASEBAkACQCACQgIQgYCAgACnQf8BcQ4CAQIACwALQQAhAQsgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCjgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQpICAgAALQQAhAQJAQQAQp4CAgAAiAkICEJ6AgIAARQ0AQQEhAQJAAkAgAkICEIGAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFBrobAgABBBhC4gICAACABKAIADQMgASABKQMIELmAgIAADAILIAFBtIbAgABBCBC4gICAACABKAIADQIgASABKQMIELmAgIAADAELIAFBvIbAgABBChC4gICAACABKAIADQEgASABKQMIELmAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAQqYCAgAAQg4CAgAAaC2YCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQo4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKSAgIAACyAAEKuAgIAAIAApAwghASAAKQMAQYoIEKyAgIAAIABBEGokgICAgAAgAQtKAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAIAApAwghASAAKQMAQYoIEKyAgIAAIAEQg4CAgAAaIABBEGokgICAgAAgAQtQAQF/I4CAgIAAQRBrIgEkgICAgAAgAUEEahCjgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQpICAgAALIAAQsYCAgAAgAUEQaiSAgICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8EK+AgIAAAAtCAQF/I4CAgIAAQRBrIgAkgICAgAAgABCugICAAAJAIAApAwBQDQBCg4CAgLCBARCvgICAAAALIABBEGokgICAgAALkwECAX8CfiOAgICAAEEQayIBJICAgIAAIAFBBGoQo4CAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKSAgIAAC0IAIQICQAJAQQEQsICAgAAiA0IAEJ6AgIAARQ0AIANCABCBgICAACICQv8Bg0LNAFINASAAIAI3AwhCASECCyAAIAI3AwAgAUEQaiSAgICAAA8LAAsLACAAEJqAgIAAGguSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFBwYXAgABBDBC4gICAACABKAIADQIgASABKQMIELmAgIAADAELIAFBvIXAgABBBRC4gICAACABKAIADQEgASABKQMIELmAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQsICAgAAiAkICEJ6AgIAARQ0AIAJCAhCBgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALaQEBfyOAgICAAEEgayICJICAgIAAIAJBEGogABCzgICAAAJAIAIoAhBBAUcNAAALIAIgAikDGDcDCCACIAGtQiCGQgSENwMAQcCBwIAAQQIgAkECELSAgIAAIQAgAkEgaiSAgICAACAACzsAAkACQCABQv//////////AFYNACABQgiGQgaEIQEMAQsgARCMgICAACEBCyAAQgA3AwAgACABNwMICy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQk4CAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAELaAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgutAQIBfwN+I4CAgIAAQSBrIgIkgICAgAAgATUCGCEDIAJBCGogASkDEBCzgICAAEIBIQQCQCACKAIIDQAgAikDECEFIAJBCGogASkDACABKQMIENyAgIAAIAIoAggNACACIAIpAxA3AxggAiAFNwMQIAIgA0IghkIEhDcDCCAAQcCDwIAAQQMgAkEIakEDELSAgIAANwMIQgAhBAsgACAENwMAIAJBIGokgICAgAALDQAgAUICIACnQQFxGwtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhCAgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQ/ICAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEPyAgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC7gBAgJ/AX4jgICAgABBIGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0IBIQQCQCABQv8Bg0LMAFINACABQcCBwIAAQQIgAkECELyAgIAAIAIpAwAiAUL/AYNCBFINACACQRBqIAIpAwgQvYCAgAAgAigCEA0AIAIpAxghBCAAIAFCIIinNgIQIAAgBDcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAACzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCUgICAABoLXQIBfwF+AkACQCABp0H/AXEiAkHAAEYNAAJAIAJBBkYNAEIBIQNCg5CAgIABIQEMAgsgAUIIiCEBQgAhAwwBC0IAIQMgARCNgICAACEBCyAAIAM3AwAgACABNwMIC/IBAQJ/I4CAgIAAQRBrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEBIAGnQf8BcSIDQQBHQQF0IANBAUYbIgNBAkYNABCogICAACACEKOAgIAAAkAgAigCAEEBRw0AIAIoAgQgAigCCBCkgICAAAsCQAJAIANBAXENACACQQE2AgAgAiAANwMIIAIQnICAgABCARCEgICAABoMAQsgABC/gICAAAtBgIDAgABBERDAgICAABDBgICAACEBIAIgADcDCCACIAOtNwMAIAFBoIDAgABBAiACQQIQtICAgAAQhYCAgAAaIAJBEGokgICAgABCAg8LAAtrAQF/I4CAgIAAQSBrIgEkgICAgAAgASAANwMIIAFBATYCACABEJyAgIAAQgFCARCCgICAABogAUEUahDFgICAAAJAIAEoAhRBAUcNACABIAEoAhggASgCHBCbgICAAAsgAUEgaiSAgICAAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCAgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEPyAgIAAIQAgAUEQaiSAgICAACAAC6MBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQn4CAgAACQAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEKiAgIAAIAEQo4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKSAgIAACyACIACEQgBRDQEgAUEANgIAIAEgAiAAEKCAgIAAIAFBIGokgICAgABCAg8LAAtCg4CAgBAQr4CAgAAAC4kBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQn4CAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhCogICAACABEKOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCkgICAAAsgAUEFNgIAIAEgAiAAEKCAgIAAIAFBIGokgICAgABCAg8LAAuXAwUBfwN+AX8BfgF/I4CAgIAAQSBrIgEkgICAgAACQCAAQv8Bg0LLAFINABCogICAACABEKOAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCkgICAAAsgABCGgICAAEIgiCECQgAhAwNAAkACQAJAIAMgAlENACAAIANCIIZCBIQQh4CAgAAhBEEAIQUCQANAIAVBEEYNASABIAVqQgI3AwAgBUEIaiEFDAALC0EDIQUgBEL/AYNCzABSDQEgBEGQgsCAAEECIAFBAhC8gICAACABKQMAIgRC/wGDQgRSDQEgASkDCCIGQv8Bg0IEUg0CIARCIIinIQcgBkIgiKciBUEDIAVBA0kbIQUMAgsgAUEgaiSAgICAAEICDwsLAkAgA0L/////D1ENACAFQQNGDQAgAUEGNgIAIAEgBzYCBCABEJyAgIAAIAWtQiCGQgSEQgEQgoCAgAAaIAFBFGoQxYCAgAACQCABKAIUQQFHDQAgASABKAIYIAEoAhwQm4CAgAALIANCAXwhAwwBCwsQxoCAgAAACwALDAAgAEECEISBgIAACwkAEP+AgIAAAAuoBAUBfwF+An8BfgR/I4CAgIAAQYABayICJICAgIAAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LLAFINACACQdAAahCjgICAAAJAIAIoAlBBAUcNACACKAJUIAIoAlgQpICAgAALIAAQyICAgAAgARCGgICAAEIgiCEDQgAhACACQdAAakEQaiIEQQhqIQUCQANAIAAgA1ENASABIABCIIZCBIQQh4CAgAAhBkEAIQcCQANAIAdBEEYNASACQcAAaiAHakICNwMAIAdBCGohBwwACwtBASEIAkACQCAGQv8Bg0LMAFENAAwBCyAGQdSBwIAAQQIgAkHAAGpBAhC8gICAACACKQNAIgZC/wGDQgRSDQAgAkHQAGogAikDSBDJgICAACACKAJQIghBAXENACAGQiCIpyEHIAJBIGpBGGogBEEYaikDADcDACACQSBqQRBqIARBEGopAwA3AwAgAiAEKQMANwMgIAIgBSkDADcDKAsgAEL/////D1ENAyACQRhqIgkgAkEgakEYaikDADcDACACQRBqIgogAkEgakEQaikDADcDACACIAIpAyg3AwggAiACKQMgNwMAIAhBAXENAyACQdAAakEYaiAJKQMANwMAIAQgCikDADcDACACIAIpAwg3A1ggAiACKQMANwNQIAIgBzYCcCAHIAJB0ABqEMqAgIAAIABCAXwhAAwACwsgAkGAAWokgICAgABCAg8LAAsQxoCAgAAAC20BAX8jgICAgABBEGsiASSAgICAACAAEIOAgIAAGiABEKuAgIAAAkACQAJAIAEoAgBBAUcNACABKQMIIAAQ2YCAgAANAQsgABDOgICAAEUNAQsgAUEQaiSAgICAAA8LQoOAgIDAABCvgICAAAALgQICAn8DfiOAgICAAEHAAGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHAg8CAAEEDIAJBCGpBAxC8gICAACACKQMIIgFC/wGDQgRSDQAgAkEgaiACKQMQEL2AgIAAIAIoAiANACACKQMoIQYgAkEgaiACKQMYEJ+AgIAAIAIoAiBBAUYNACACKQMwIQQgACACKQM4NwMYIAAgBDcDECAAIAFCIIinNgIoIAAgBjcDIEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBwABqJICAgIAAC4ICAgF/AX4jgICAgABBwABrIgIkgICAgAAgAkECNgIAIAIgADYCBCACEJyAgIAAIAEQtYCAgABCARCCgICAABogAkEwahDFgICAAAJAIAIoAjBBAUcNACACIAIoAjQgAigCOBCbgICAAAsgAkEQaiABQRBqKQMANwMAIAJBGGogAUEYaikDADcDACACIAEpAwA3AwAgAiABQQhqKQMANwMIIAIgADYCIEGwgMCAAEENEMCAgIAAEMGAgIAAIQMgAiACELWAgIAANwM4IAIgAK1CIIZCBIQ3AzAgA0HMgMCAAEECIAJBMGpBAhC0gICAABCFgICAABogAkHAAGokgICAgAAL5AMDAn8BfgF/I4CAgIAAQZABayICJICAgIAAAkAgAEL/AYNCzQBSDQBBACEDAkADQCADQRhGDQEgAkHIAGogA2pCAjcDACADQQhqIQMMAAsLIAFC/wGDQswAUg0AIAFB7IHAgABBAyACQcgAakEDELyAgIAAIAIpA0giBEL/AYNCBFINACACIAIpA1AQu4CAgAAgAigCAEEBRg0AIAIoAhAhAyACKQMIIQEgAkHgAGogAikDWBDJgICAACACKAJgQQFxDQAgAkEYaiACQYgBaikDADcDACACQRBqIAJBgAFqKQMANwMAIAIgAikDcDcDACACIAJB4ABqQRhqKQMANwMIIAIgBEIgiKciBTYCMCACIAM2AiggAiABNwMgIAJB4ABqEKOAgIAAAkAgAigCYEEBRw0AIAIoAmQgAigCaBCkgICAAAsgABDIgICAACAFIAIQyoCAgAAgAkEDNgJgIAJB4ABqEJyAgIAAIAEgAxCygICAAEICEIKAgIAAGkHcgMCAAEEaEMCAgIAAEMGAgIAAIQAgASADELKAgIAAIQEgAiAFrUIghkIEhDcDaCACIAE3A2AgAEGIgcCAAEEC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IQIgBEGgAWogCCAHENyAgIAAIAQoAqABDQAgBCkDqAEhAwJAAkAgAEKAgICAgICAwAB8Qv//////////AFYNACAAIACFIAEgAEI/h4WEQgBSDQAgAEIIhkILhCEADAELIAEgABCIgICAACEACyAEIAA3A4gBIAQgAzcDgAEgBCACNwN4IAQgCTcDcEGMhMCAAEEEIARB8ABqQQQQtICAgAAhACAEQbABaiSAgICAACAADwsAC4oBAwF/AX4BfyOAgICAAEEwayIBJICAgIAAIAFBEGoQo4CAgAACQCABKAIQQQFHDQAgASgCFCABKAIYEKSAgIAACyABQQQ2AgAgAUEQaiABEJ2AgIAAIAEpAyAhAiAAIAEpAyhCACABKAIQQQFxIgMbNwMIIAAgAkIAIAMbNwMAIAFBMGokgICAgAALRgACQAJAIAFC//////////8AViACQgBSIAJQGw0AIAFCCIZCCoQhAgwBCyACIAEQjoCAgAAhAgsgAEIANwMAIAAgAjcDCAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENuAgIAAIAApAwAgACkDCBChgICAACEBIABBEGokgICAgAAgAQt5AQF/I4CAgIAAQcAAayIBJICAgIAAAkAgAEL/AYNCBFINACABIABCIIinENaAgIAAAkACQCABKAIAQQFxDQBCAiEADAELIAFBMGogAUEQahC2gICAACABKAIwQQFxDQEgASkDOCEACyABQcAAaiSAgICAACAADwsACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ14CAgAAgACkDACAAKQMIEKGAgIAAIQEgAEEQaiSAgICAACABC3EAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINAEGAyx5BgNIfEOGAgIAAQYDLHkGA0h8Q4oCAgABBABCwgICAAEICEJ6AgIAADQEgABDjgICAACABEL+AgIAAQgIPCwALQoOAgICQgQEQr4CAgAAACw4AQQEgACABEIWBgIAACw4AQQIgACABEIWBgIAACw4AQQAgAEICEPKAgIAAC6UBAQF/I4CAgIAAQRBrIgEkgICAgAACQAJAIABC/wGDQsgAUg0AIAAQiYCAgABCgICAgHCDQoCAgICABFINACABQQRqEKOAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCkgICAAAsQqICAgAAQooCAgAANAUEBEOWAgIAAIAAQioCAgAAaIAFBEGokgICAgABCAg8LAAtCg4CAgMCDARCvgICAAAALDABBASAAEOiAgIAAC60BAQF/I4CAgIAAQRBrIgEkgICAgAACQAJAAkAgAEL/AYNCyABSDQAgAUEEahCjgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQpICAgAALEKiAgIAAQQEQpYCAgABB/QFxRQ0BIAAQi4CAgABC/wGDQgJSDQJBABDlgICAACABQRBqJICAgIAAQgIPCwALQoOAgICwgwEQr4CAgAAAC0KDgICAoIMBEK+AgIAAAAtaAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahCjgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQpICAgAALEKiAgIAAQQBBARDogICAACAAQRBqJICAgIAAQgILGgAgABCDgYCAACABrUL/AYNCAhCCgICAABoLCQAQooCAgACtCwgAEKmAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAAgACkDACAAKQMIELeAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQroCAgAAgACkDACAAKQMIELeAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCjgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQpICAgAALEKqAgIAAIQIQrYCAgAAgABDjgICAACACIAAQ7oCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQbWEwIAAQRUQwICAgAAQwYCAgAAhAyACIAA3AwggAiABNwMAIANB3ITAgABBAiACQQIQtICAgAAQhYCAgAAaIAJBEGokgICAgAAL3AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCjgICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQpICAgAALEKqAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahCugICAACACKQMQIQEgAikDCEGICBCsgICAACABIAAQ2YCAgABFDQMQ8ICAgAAMAQsQ8YCAgAAgAUIgiKdJDQNBASAAQgAQ8oCAgABBARCwgICAAEIAIAFChICAgHCDIgEgARCAgICAABpB7ITAgABBFhDAgICAABDBgICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARBiIXAgABBAyACQQhqQQMQtICAgAAQhYCAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQr4CAgAAAC0KDgICA8IABEK+AgIAAAAsTAEEBELCAgIAAQgAQhICAgAAaCzMBAn4QloCAgAAhAAJAEJeAgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LEMaAgIAAAAsVACAAELCAgIAAIAEgAhCCgICAABoLpwECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQo4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKSAgIAACyAAEK6AgIAAIAApAwghASAAKQMAQYgIEKyAgIAAIAEQg4CAgAAaIAAQsYCAgAACQCAAKAIADQAQ9ICAgAAACyAAKQMIIQIQ8ICAgAAgARDjgICAACACIAEQ7oCAgAAgAEEQaiSAgICAAEICCwkAEMaAgIAAAAugAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCjgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQpICAgAALEKqAgIAAIQEQrYCAgABBABCwgICAAEICEISAgIAAGkGghcCAAEETEMCAgIAAEMGAgIAAIQIgACABNwMAIAJBtIXAgABBASAAQQEQtICAgAAQhYCAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxCkgICAAEICDwsAC94EAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABD4gICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEPiAgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYIAJBKGoQo4CAgAACQCACKAIoQQFHDQAgAigCLCACKAIwEKSAgIAACxCogICAAAJAAkACQBCmgICAAA0AEPGAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEK+AgIAAAAtCg4CAgMD/ABCvgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEOGAgIAADAELQQEQp4CAgABCAhCEgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEOKAgIAADAELQQIQp4CAgABCAhCEgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHohcCAAEEPEMCAgIAAEMGAgIAAIQAgAkEoahD5gICAACEBIAIgAkE0ahD5gICAADcDSCACIAE3A0AgAEGMhsCAAEECIAJBwABqQQIQtICAgAAQhYCAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEIGBgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEPuAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAgvCAQICfwF+I4CAgIAAQcAAayIAJICAgIAAIABBCGoQo4CAgAACQCAAKAIIQQFHDQAgACgCDCAAKAIQEKSAgIAACyAAQQhqEKOAgIAAIABBFGoiARDFgICAACAAQTBqIABBCGoQ+4CAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEPuAgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhD8gICAACECIABBwABqJICAgIAAIAILMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQgoGAgAAPCyAAQgA3AwAgAEICNwMICxoAIACtQiCGQgSEIAGtQiCGQgSEEJGAgIAAC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCjgICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQpICAgAALEKiAgIAAAkAQ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AAAAbW9kZWxfdHlwZQAAPQAQAAcAAAAEARAACgAAAFByaWNlUmF0aW9EZW5vbWluYXRvclByaWNlVXBkYXRlckRlZmF1bHRNb2RlbFByaWNlQXJiaXRydW1QcmljZUV4dE5hdGl2ZVByaWNlVVNEQXJiaXRydW1Db21wcmVzc2lvblBlcmNlbnRFaWRUb01vZGVsVHlwZWdhc19wZXJfYnl0ZWdhc19wcmljZV9pbl91bml0cHJpY2VfcmF0aW+YARAADAAAAKQBEAARAAAAtQEQAAsAAABuYXRpdmVfcHJpY2VfdXNkcHJpY2VfcmF0aW9fZGVub21pbmF0b3J0b3RhbF9nYXNfZmVl2AEQABAAAAC1ARAACwAAAOgBEAAXAAAA/wEQAA0AAAB0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXJKAhAACQAAAFMCEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAEoCEAAJAAAAUwIQAAkAAACCAhAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAUwIQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAzQIQAAkAAAAsAhAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAPcCEAAIAAAA/wIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAp3YOY29udHJhY3RzcGVjdjAAAAAEAAAAAAAAAAAAAAAOUHJpY2VGZWVkRXJyb3IAAAAAAAUAAAAAAAAAEkludmFsaWREZW5vbWluYXRvcgAAAAAAAQAAAAAAAAAHTm9QcmljZQAAAAACAAAAAAAAAAxOb3RBbk9wU3RhY2sAAAADAAAAAAAAABBPbmx5UHJpY2VVcGRhdGVyAAAABAAAAAAAAAAIT3ZlcmZsb3cAAAAFAAAABQAAAAAAAAAAAAAAD1ByaWNlVXBkYXRlclNldAAAAAABAAAAEXByaWNlX3VwZGF0ZXJfc2V0AAAAAAAAAgAAAAAAAAAHdXBkYXRlcgAAAAATAAAAAAAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAMUHJpY2VVcGRhdGVkAAAAAQAAAA1wcmljZV91cGRhdGVkAAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAXQXJiaXRydW1QcmljZUV4dFVwZGF0ZWQAAAAAAQAAABphcmJpdHJ1bV9wcmljZV9leHRfdXBkYXRlZAAAAAAAAgAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAAAAAAASYXJiaXRydW1fcHJpY2VfZXh0AAAAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAAgAAAAEAAAAhQXJiaXRydW0tc3BlY2lmaWMgcHJpY2UgZXh0ZW5zaW9uAAAAAAAAAAAAABBBcmJpdHJ1bVByaWNlRXh0AAAAAgAAAEFHYXMgY29zdCBwZXIgYnl0ZSBvZiBMMSBjYWxsZGF0YSAoZm9yIEFyYml0cnVtJ3MgTDEgZGF0YSBwb3N0aW5nKQAAAAAAABhnYXNfcGVyX2wxX2NhbGxkYXRhX2J5dGUAAAAEAAAAH0dhcyBvdmVyaGVhZCBwZXIgTDIgdHJhbnNhY3Rpb24AAAAADWdhc19wZXJfbDJfdHgAAAAAAAAGAAAAAQAAACVQYXJhbWV0ZXIgZm9yIHVwZGF0aW5nIGEgc2luZ2xlIHByaWNlAAAAAAAAAAAAAAtVcGRhdGVQcmljZQAAAAACAAAAF0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEAAAAAANlaWQAAAAABAAAACVQcmljZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGRlc3RpbmF0aW9uAAAAAAAABXByaWNlAAAAAAAH0AAAAAVQcmljZQAAAAAAAAEAAAA0UGFyYW1ldGVyIGZvciB1cGRhdGluZyBBcmJpdHJ1bSBwcmljZSB3aXRoIGV4dGVuc2lvbgAAAAAAAAAOVXBkYXRlUHJpY2VFeHQAAAAAAAMAAAA4RGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKHNob3VsZCBiZSBhbiBBcmJpdHJ1bSBlbmRwb2ludCkAAAADZWlkAAAAAAQAAAAjQXJiaXRydW0tc3BlY2lmaWMgcHJpY2luZyBleHRlbnNpb24AAAAABmV4dGVuZAAAAAAH0AAAABBBcmJpdHJ1bVByaWNlRXh0AAAAJVByaWNlIGluZm9ybWF0aW9uIGZvciB0aGUgZGVzdGluYXRpb24AAAAAAAAFcHJpY2UAAAAAAAfQAAAABVByaWNlAAAAAAAAAwAAADBGZWUgbW9kZWwgdHlwZSBmb3IgZGlmZmVyZW50IGNoYWluIGFyY2hpdGVjdHVyZXMAAAAAAAAACU1vZGVsVHlwZQAAAAAAAAMAAAAAAAAAB0RlZmF1bHQAAAAAAAAAAAAAAAAIQXJiU3RhY2sAAAABAAAAAAAAAAdPcFN0YWNrAAAAAAIAAAABAAAAL1BhcmFtZXRlciBmb3Igc2V0dGluZyBFSUQgdG8gbW9kZWwgdHlwZSBtYXBwaW5nAAAAAAAAAAAWU2V0RWlkVG9Nb2RlbFR5cGVQYXJhbQAAAAAAAgAAABdEZXN0aW5hdGlvbiBlbmRwb2ludCBJRAAAAAAHZHN0X2VpZAAAAAAEAAAAI0ZlZSBtb2RlbCB0eXBlIGZvciB0aGlzIGRlc3RpbmF0aW9uAAAAAAptb2RlbF90eXBlAAAAAAfQAAAACU1vZGVsVHlwZQAAAAAAAAAAAAAlU2V0IHByaWNlIHVwZGF0ZXIgc3RhdHVzIChvd25lciBvbmx5KQAAAAAAABFzZXRfcHJpY2VfdXBkYXRlcgAAAAAAAAIAAAAAAAAAB3VwZGF0ZXIAAAAAEwAAAAAAAAAGYWN0aXZlAAAAAAABAAAAAAAAAAAAAAAsU2V0IHRoZSBwcmljZSByYXRpbyBkZW5vbWluYXRvciAob3duZXIgb25seSkAAAAbc2V0X3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAEAAAAAAAAAC2Rlbm9taW5hdG9yAAAAAAoAAAAAAAAAAAAAADRTZXQgdGhlIEFyYml0cnVtIGNvbXByZXNzaW9uIHBlcmNlbnRhZ2UgKG93bmVyIG9ubHkpAAAAIHNldF9hcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AAAAAQAAAAAAAAATY29tcHJlc3Npb25fcGVyY2VudAAAAAAKAAAAAAAAAAAAAAA4U2V0IHRoZSBmZWUgbW9kZWwgdHlwZSBmb3IgZGVzdGluYXRpb24gRUlEcyAob3duZXIgb25seSkAAAAVc2V0X2VpZF90b19tb2RlbF90eXBlAAAAAAAAAQAAAAAAAAAGcGFyYW1zAAAAAAPqAAAH0AAAABZTZXRFaWRUb01vZGVsVHlwZVBhcmFtAAAAAAAAAAAAAAAAAD1TZXQgcHJpY2VzIGZvciBtdWx0aXBsZSBkZXN0aW5hdGlvbnMgKHByaWNlIHVwZGF0ZXIgb3Igb3duZXIpAAAAAAAACXNldF9wcmljZQAAAAAAAAIAAAAAAAAADXByaWNlX3VwZGF0ZXIAAAAAAAATAAAAAAAAAAZwcmljZXMAAAAAA+oAAAfQAAAAC1VwZGF0ZVByaWNlAAAAAAAAAAAAAAAAclNldCBwcmljZSBmb3IgQXJiaXRydW0gd2l0aCBleHRlbnNpb24gKHByaWNlIHVwZGF0ZXIgb3Igb3duZXIpCkNvcnJlc3BvbmRzIHRvIHNldFByaWNlRm9yQXJiaXRydW0gaW4gUHJpY2VGZWVkLnNvbAAAAAAAFnNldF9wcmljZV9mb3JfYXJiaXRydW0AAAAAAAIAAAAAAAAADXByaWNlX3VwZGF0ZXIAAAAAAAATAAAAAAAAAAZ1cGRhdGUAAAAAB9AAAAAOVXBkYXRlUHJpY2VFeHQAAAAAAAAAAAAAAAAAtFNldCB0aGUgbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAocHJpY2UgdXBkYXRlciBvciBvd25lcikuCgpLZXB0IGFzIGEgc3RhbmRhbG9uZSBjb250cmFjdCBmdW5jdGlvbiAobm90IHBhcnQgb2YgdGhlIGNhbm9uaWNhbCBgZmVlX2xpYl9pbnRlcmZhY2VzOjpJTGF5ZXJaZXJvUHJpY2VGZWVkYCBpbnRlcmZhY2UpLgAAABpzZXRfbmF0aXZlX3Rva2VuX3ByaWNlX3VzZAAAAAAAAgAAAAAAAAANcHJpY2VfdXBkYXRlcgAAAAAAABMAAAAAAAAAFm5hdGl2ZV90b2tlbl9wcmljZV91c2QAAAAAAAoAAAAAAAAAAAAAAC5DaGVjayBpZiBhbiBhZGRyZXNzIGlzIGFuIGFjdGl2ZSBwcmljZSB1cGRhdGVyAAAAAAAQaXNfcHJpY2VfdXBkYXRlcgAAAAEAAAAAAAAAB3VwZGF0ZXIAAAAAEwAAAAEAAAABAAAAAAAAACRHZXQgdGhlIEFyYml0cnVtIGNvbXByZXNzaW9uIHBlcmNlbnQAAAAcYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudAAAAAAAAAABAAAACgAAAAAAAAAgR2V0IHRoZSBBcmJpdHJ1bSBwcmljZSBleHRlbnNpb24AAAASYXJiaXRydW1fcHJpY2VfZXh0AAAAAAAAAAAAAQAAB9AAAAAQQXJiaXRydW1QcmljZUV4dAAAAAAAAAAoR2V0IHRoZSBtb2RlbCB0eXBlIGZvciBhIGRlc3RpbmF0aW9uIEVJRAAAABFlaWRfdG9fbW9kZWxfdHlwZQAAAAAAAAEAAAAAAAAAB2RzdF9laWQAAAAABAAAAAEAAAfQAAAACU1vZGVsVHlwZQAAAAAAAAAAAABkRXN0aW1hdGUgZmVlIHdpdGggZGV0YWlsZWQgYnJlYWtkb3duIGJ5IGVuZHBvaW50IElECkNvcnJlc3BvbmRzIHRvIGVzdGltYXRlRmVlQnlFaWQgaW4gUHJpY2VGZWVkLnNvbAAAABNlc3RpbWF0ZV9mZWVfYnlfZWlkAAAAAAQAAAAAAAAAB2ZlZV9saWIAAAAAEwAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAAAAAAADZ2FzAAAAAAoAAAABAAAH0AAAAAtGZWVFc3RpbWF0ZQAAAAAAAAAAIUdldCB0aGUgbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRAAAAAAAABZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAAAAAAAAAAAAAQAAAAoAAAAAAAAAJEdldCB0aGUgcHJpY2UgZm9yIGEgZGVzdGluYXRpb24gRUlELgAAAAlnZXRfcHJpY2UAAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAD6AAAB9AAAAAFUHJpY2UAAAAAAAAAAAAAIEdldCB0aGUgcHJpY2UgcmF0aW8gZGVub21pbmF0b3IuAAAAG2dldF9wcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAAAAAAAQAAAAoAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAAAAAAlVRoZSB0eXBlIG9mIGRhdGEgcmVxdWlyZWQgZm9yIG1pZ3JhdGlvbi4KVXBncmFkZXMgdGhlIGNvbnRyYWN0IHRvIG5ldyBXQVNNIGJ5dGVjb2RlLgpTZXRzIGEgbWlncmF0aW9uIGZsYWcgdGhhdCBtdXN0IGJlIGNsZWFyZWQgYnkgY2FsbGluZyBgbWlncmF0ZWAuAAAAAAAAB3VwZ3JhZGUAAAAAAQAAAAAAAAANbmV3X3dhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAB2UnVucyBtaWdyYXRpb24gbG9naWMgYWZ0ZXIgYW4gdXBncmFkZS4KQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIG1pZ3JhdGlvbiBmbGFnIGlzIHNldCBieSBhIHByZXZpb3VzIGB1cGdyYWRlYCBjYWxsLgAAAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAAAAAAAAAAA7UmV0dXJucyB3aGV0aGVyIHRoZSBjb250cmFjdCBpcyBmcm96ZW4gKHVwZ3JhZGVzIGRpc2FibGVkKS4AAAAACWlzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAACmF1dGhvcml6ZXIAAAAAAAAAAAABAAAAEwAAAAAAAAA+UmV0dXJucyB0aGUgY3VycmVudCBvd25lciBhZGRyZXNzLCBvciBOb25lIGlmIG5vIG93bmVyIGlzIHNldC4AAAAAAAVvd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAAAWVJldHVybnMgdGhlIHBlbmRpbmcgb3duZXIgYWRkcmVzcyBmb3IgMi1zdGVwIHRyYW5zZmVyLCBvciBOb25lIGlmIG5vIHRyYW5zZmVyIGlzIHBlbmRpbmcuAAAAAAAADXBlbmRpbmdfb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAStUcmFuc2ZlcnMgb3duZXJzaGlwIGltbWVkaWF0ZWx5IHRvIGEgbmV3IGFkZHJlc3MuCgpVc2Ugd2l0aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAABAAAAAQAAAAIAAAAAAAAAAAAAABBQcmljZUZlZWRTdG9yYWdlAAAABwAAAAAAAAAAAAAAFVByaWNlUmF0aW9EZW5vbWluYXRvcgAAAAAAAAEAAAAAAAAADFByaWNlVXBkYXRlcgAAAAEAAAATAAAAAQAAAAAAAAARRGVmYXVsdE1vZGVsUHJpY2UAAAAAAAABAAAABAAAAAAAAAAAAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAAAAAAA5OYXRpdmVQcmljZVVTRAAAAAAAAAAAAAAAAAAaQXJiaXRydW1Db21wcmVzc2lvblBlcmNlbnQAAAAAAAEAAAAAAAAADkVpZFRvTW9kZWxUeXBlAAAAAAABAAAABAAAAAEAAADhUGFyYW1ldGVycyBmb3IgRFZOIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgdmVyaWZpY2F0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAAAAxEdm5GZWVQYXJhbXMAAAAKAAAAJ051bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkLgAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpHYXMgZXN0aW1hdGUgZm9yIHZlcmlmaWNhdGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAADZ2FzAAAAAAoAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAC0RWTiBvcHRpb25zAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAACdOdW1iZXIgb2YgcmVxdWlyZWQgc2lnbmF0dXJlcyAocXVvcnVtKS4AAAAABnF1b3J1bQAAAAAABAAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAADjUGFyYW1ldGVycyBmb3IgZXhlY3V0b3IgZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBleGVjdXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAlGZWVQYXJhbXMAAAAAAAALAAAAJlNpemUgb2YgdGhlIG1lc3NhZ2UgY2FsbGRhdGEgaW4gYnl0ZXMuAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAA2QmFzZSBnYXMgZm9yIGVhY2ggbHpDb21wb3NlIGNhbGwgb24gZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAABEz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQmFzZSBnYXMgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAABNsel9yZWNlaXZlX2Jhc2VfZ2FzAAAAAAYAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAALE1heGltdW0gbmF0aXZlIHRva2VuIHZhbHVlIHRoYXQgY2FuIGJlIHNlbnQuAAAACm5hdGl2ZV9jYXAAAAAAAAoAAABGRW5jb2RlZCBleGVjdXRvciBvcHRpb25zIChselJlY2VpdmUgZ2FzLCBsekNvbXBvc2UsIG5hdGl2ZURyb3AsIGV0Yy4pLgAAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAIRHYXMgcHJpY2UgaW5mb3JtYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgpDb250YWlucyB0aGUgZXhjaGFuZ2UgcmF0ZSBhbmQgZ2FzIGNvc3RzIG5lZWRlZCBmb3IgY3Jvc3MtY2hhaW4gZmVlIGNhbGN1bGF0aW9ucy4AAAAAAAAABVByaWNlAAAAAAAAAwAAADdHYXMgY29zdCBwZXIgYnl0ZSBvZiBjYWxsZGF0YSBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAxnYXNfcGVyX2J5dGUAAAAEAAAAQkdhcyBwcmljZSBpbiB0aGUgc21hbGxlc3QgdW5pdCAod2VpIGZvciBFVk0sIHN0cm9vcHMgZm9yIFN0ZWxsYXIpLgAAAAAAEWdhc19wcmljZV9pbl91bml0AAAAAAAABgAAAKlQcmljZSByYXRpbyA9IChyZW1vdGUgbmF0aXZlIHRva2VuIHByaWNlIC8gbG9jYWwgbmF0aXZlIHRva2VuIHByaWNlKSAqIFBSSUNFX1JBVElPX0RFTk9NSU5BVE9SLgpVc2VkIHRvIGNvbnZlcnQgZGVzdGluYXRpb24gY2hhaW4gZ2FzIGNvc3RzIHRvIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAABAAAAgEZlZSBlc3RpbWF0aW9uIHJlc3VsdCB3aXRoIGRldGFpbGVkIGJyZWFrZG93bi4KCkNvbnRhaW5zIHRoZSBjYWxjdWxhdGVkIGZlZSBhbmQgYWxsIGludGVybWVkaWF0ZSB2YWx1ZXMgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uAAAAAAAAAAtGZWVFc3RpbWF0ZQAAAAAEAAAAMFNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gcHJpY2UgaW4gVVNEIChzY2FsZWQpLgAAABBuYXRpdmVfcHJpY2VfdXNkAAAACgAAACVQcmljZSByYXRpbyB1c2VkIGZvciB0aGUgY2FsY3VsYXRpb24uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAAyRGVub21pbmF0b3IgZm9yIHRoZSBwcmljZSByYXRpbyAodHlwaWNhbGx5IDEwXjIwKS4AAAAAABdwcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAKAAAAMVRvdGFsIGdhcyBmZWUgaW4gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiB1bml0cy4AAAAAAAANdG90YWxfZ2FzX2ZlZQAAAAAAAAsAAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQLAAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEAAAAAQAAAAbVXBncmFkZWFibGVFcnJvcjogMTA1MC0xMDU5AAAAAAAAAAAQVXBncmFkZWFibGVFcnJvcgAAAAMAAAAAAAAAFEludmFsaWRNaWdyYXRpb25EYXRhAAAEGgAAAAAAAAATTWlncmF0aW9uTm90QWxsb3dlZAAAAAQbAAAAAAAAAA5VcGdyYWRlc0Zyb3plbgAAAAAEHAAAAAQAAAAYTXVsdGlzaWdFcnJvcjogMTA2MC0xMDY5AAAAAAAAAA1NdWx0aXNpZ0Vycm9yAAAAAAAACAAAAAAAAAASQWxyZWFkeUluaXRpYWxpemVkAAAAAAQkAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJQAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCYAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEJwAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCgAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKQAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCoAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQrAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4wLjEjOTQxNDQ4MDc5ZWNjZjk1NjI3ZDJmZmVhMTNiYTI2OGUzMDVhOTA3NwAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABlgEaYAJ+fgF+YAN+fn4BfmAEfn5+fgF+YAF+AX5gAAF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAN/fn4AYAABf2AAAGABfwF/YAF/AGACfn8AYAF+AGADf39/AGACfn8BfmAEf39/fwF+YAV+f39/fwBgAn9/AX5gAX4Bf2AFf39/fn4AYAJ+fgBgBH9+fn8AYAV/fn5+fgACowEbAWwBMQAAAWwBXwABAWwBNwACAWEBMAADAWwBMgAAAXgBMQAAAXYBMwADAXYBMQAAAWkBNgAAAWIBOAADAWwBNgADAWIBMAADAWkBXwADAWkBMAADAWkBMwAAAWkBNQADAWkBNAADAXYBZwAAAWIBagAAAW0BOQABAW0BYQACAXgBMAAAAXgBMwAEAXgBOAAEAWwBMAAAAWwBOAAAAXgBNQADA3JxBQYHCAkACgsMCgYNDQsEBA0OBw8LDQYNEAgJEQgSBgUACBMIAA8UAwMDAwsADwgFAAADFQQNBA0DDBYFDRYCDQkEAwQABQUPAw0DBAUEBAQEAxcACwoJBAsEAAUACAYEDQUUBAQLEAgQBgUQGBgZGRkFAwEAEQYhBH8BQYCAwAALfwBBrITAAAt/AEGXh8AAC38AQaCHwAALB6cFJAZtZW1vcnkCABFzZXRfcHJpY2VfdXBkYXRlcgA/G3NldF9wcmljZV9yYXRpb19kZW5vbWluYXRvcgBDIHNldF9hcmJpdHJ1bV9jb21wcmVzc2lvbl9wZXJjZW50AEQVc2V0X2VpZF90b19tb2RlbF90eXBlAEUJc2V0X3ByaWNlAEcWc2V0X3ByaWNlX2Zvcl9hcmJpdHJ1bQBLGnNldF9uYXRpdmVfdG9rZW5fcHJpY2VfdXNkAEwQaXNfcHJpY2VfdXBkYXRlcgBNHGFyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQATxJhcmJpdHJ1bV9wcmljZV9leHQAURFlaWRfdG9fbW9kZWxfdHlwZQBTE2VzdGltYXRlX2ZlZV9ieV9laWQAWRZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAFwJZ2V0X3ByaWNlAF0bZ2V0X3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAF4NX19jb25zdHJ1Y3RvcgBfB3VwZ3JhZGUAYwdtaWdyYXRlAGUGZnJlZXplAGYJaXNf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gICAACAAELKAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQroCAgAAACw0AIAAgARCVgICAAFALCwAgABCagICAABoLQgEBfyOAgICAAEEQayIAJICAgIAAIAAQsICAgAACQCAAKQMAUA0AQoOAgIDAgQEQroCAgAAACyAAQRBqJICAgIAAC1MBAn4QooCAgABCACEBAkACQEEBELGAgIAAIgJCABCdgICAAEUNACACQgAQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGJhsCAAEEMELOAgIAAIAEoAgANAiABIAEpAwgQtICAgAAMAQsgAUGEhsCAAEEFELOAgIAAIAEoAgANASABIAEpAwgQtICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABCxgICAACICQgIQnYCAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtRAgF/AX4jgICAgABBEGsiAySAgICAACADIAEgAhCBgYCAAEIBIQQCQCADKAIADQAgACADKQMINwMIQgAhBAsgACAENwMAIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQ/YCAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALSAEBfyOAgICAAEEQayIDJICAgIAAIAMgAjcDCCADIAE3AwAgA0ECEP2AgIAAIQIgAEIANwMAIAAgAjcDCCADQRBqJICAgIAAC2kBAX8jgICAgABBIGsiAiSAgICAACACQRBqIAAQt4CAgAACQCACKAIQQQFHDQAACyACIAIpAxg3AwggAiABrUIghkIEhDcDAEHAgcCAAEECIAJBAhC4gICAACEAIAJBIGokgICAgAAgAAs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQjICAgAAhAQsgAEIANwMAIAAgATcDCAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJOAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABC6gICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILrQECAX8DfiOAgICAAEEgayICJICAgIAAIAE1AhghAyACQQhqIAEpAxAQt4CAgABCASEEAkAgAigCCA0AIAIpAxAhBSACQQhqIAEpAwAgASkDCBDbgICAACACKAIIDQAgAiACKQMQNwMYIAIgBTcDECACIANCIIZCBIQ3AwggAEHAg8CAAEEDIAJBCGpBAxC4gICAADcDCEIAIQQLIAAgBDcDACACQSBqJICAgIAACw0AIAFCAiAAp0EBcRsLuAECAn8BfiOAgICAAEEgayICJICAgIAAQQAhAwJAA0AgA0EQRg0BIAIgA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFBwIHAgABBAiACQQIQvYCAgAAgAikDACIBQv8Bg0IEUg0AIAJBEGogAikDCBC+gICAACACKAIQDQAgAikDGCEEIAAgAUIgiKc2AhAgACAENwMIQgAhBAsgACAENwMAIAJBIGokgICAgAALMQACQCACIARGDQAACyAAIAGtQiCGQgSEIAOtQiCGQgSEIAKtQiCGQgSEEJSAgIAAGgtdAgF/AX4CQAJAIAGnQf8BcSICQcAARg0AAkAgAkEGRg0AQgEhA0KDkICAgAEhAQwCCyABQgiIIQFCACEDDAELQgAhAyABEI2AgIAAIQELIAAgAzcDACAAIAE3AwgL0wEBAn8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AQQEgAadB/wFxIgNBAEdBAXQgA0EBRhsiA0ECRg0AEKiAgIAAEKKAgIAAAkACQCADQQFxDQAgAkEBNgIAIAIgADcDCCACEJyAgIAAQgEQhICAgAAaDAELIAAQwICAgAALQYCAwIAAQREQwYCAgAAQwoCAgAAhASACIAA3AwggAiADrTcDACABQaCAwIAAQQIgAkECELiAgIAAEIWAgIAAGiACQRBqJICAgIAAQgIPCwALSQEBfyOAgICAAEEQayIBJICAgIAAIAFBATYCACABIAA3AwggARCcgICAAEIBQgEQgYCAgAAaIAEQpoCAgAAgAUEQaiSAgICAAAtFAgF/AX4jgICAgABBEGsiAiSAgICAACACIAAgARCBgYCAAAJAIAIoAgBBAUcNAAALIAIpAwghAyACQRBqJICAgIAAIAMLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBEP2AgIAAIQAgAUEQaiSAgICAACAAC4QBAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQnoCAgAACQAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEKiAgIAAEKKAgIAAIAIgAIRCAFENASABQQA2AgAgASACIAAQn4CAgAAgAUEgaiSAgICAAEICDwsAC0KDgICAEBCugICAAAALaQIBfwF+I4CAgIAAQSBrIgEkgICAgAAgASAAEJ6AgIAAAkAgASgCAEEBRw0AAAsgASkDGCEAIAEpAxAhAhCogICAABCigICAACABQQU2AgAgASACIAAQn4CAgAAgAUEgaiSAgICAAEICC9YCBQF/A34BfwF+AX8jgICAgABBEGsiASSAgICAAAJAIABC/wGDQssAUg0AEKiAgIAAEKKAgIAAIAAQhoCAgABCIIghAkIAIQMDQAJAAkACQCADIAJRDQAgACADQiCGQgSEEIeAgIAAIQRBACEFAkADQCAFQRBGDQEgASAFakICNwMAIAVBCGohBQwACwtBAyEFIARC/wGDQswAUg0BIARBkILAgABBAiABQQIQvYCAgAAgASkDACIEQv8Bg0IEUg0BIAEpAwgiBkL/AYNCBFINAiAEQiCIpyEHIAZCIIinIgVBAyAFQQNJGyEFDAILIAFBEGokgICAgABCAg8LCwJAIANC/////w9RDQAgBUEDRg0AIAFBBjYCACABIAc2AgQgARCcgICAACAFrUIghkIEhEIBEIGAgIAAGiADQgF8IQMgARCmgICAAAwBCwsQxoCAgAAACwALCQAQgIGAgAAAC4UEBQF/AX4CfwF+BH8jgICAgABBgAFrIgIkgICAgAACQAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AEKKAgIAAIAAQyICAgAAgARCGgICAAEIgiCEDQgAhACACQdAAakEQaiIEQQhqIQUCQANAIAAgA1ENASABIABCIIZCBIQQh4CAgAAhBkEAIQcCQANAIAdBEEYNASACQcAAaiAHakICNwMAIAdBCGohBwwACwtBASEIAkACQCAGQv8Bg0LMAFENAAwBCyAGQdSBwIAAQQIgAkHAAGpBAhC9gICAACACKQNAIgZC/wGDQgRSDQAgAkHQAGogAikDSBDJgICAACACKAJQIghBAXENACAGQiCIpyEHIAJBIGpBGGogBEEYaikDADcDACACQSBqQRBqIARBEGopAwA3AwAgAiAEKQMANwMgIAIgBSkDADcDKAsgAEL/////D1ENAyACQRhqIgkgAkEgakEYaikDADcDACACQRBqIgogAkEgakEQaikDADcDACACIAIpAyg3AwggAiACKQMgNwMAIAhBAXENAyACQdAAakEYaiAJKQMANwMAIAQgCikDADcDACACIAIpAwg3A1ggAiACKQMANwNQIAIgBzYCcCAHIAJB0ABqEMqAgIAAIABCAXwhAAwACwsgAkGAAWokgICAgABCAg8LAAsQxoCAgAAAC20BAX8jgICAgABBEGsiASSAgICAACAAEIOAgIAAGiABEKuAgIAAAkACQAJAIAEoAgBBAUcNACABKQMIIAAQrYCAgAANAQsgABDOgICAAEUNAQsgAUEQaiSAgICAAA8LQoOAgIDAABCugICAAAALgQICAn8DfiOAgICAAEHAAGsiAiSAgICAAEEAIQMCQANAIANBGEYNASACQQhqIANqQgI3AwAgA0EIaiEDDAALC0IAIQRCASEFAkAgAUL/AYNCzABSDQAgAUHAg8CAAEEDIAJBCGpBAxC9gICAACACKQMIIgFC/wGDQgRSDQAgAkEgaiACKQMQEL6AgIAAIAIoAiANACACKQMoIQYgAkEgaiACKQMYEJ6AgIAAIAIoAiBBAUYNACACKQMwIQQgACACKQM4NwMYIAAgBDcDECAAIAFCIIinNgIoIAAgBjcDIEIAIQVCACEECyAAIAU3AwAgACAENwMIIAJBwABqJICAgIAAC+ABAgF/AX4jgICAgABBwABrIgIkgICAgAAgAkECNgIAIAIgADYCBCACEJyAgIAAIAEQuYCAgABCARCBgICAABogAhCmgICAACACQRBqIAFBEGopAwA3AwAgAkEYaiABQRhqKQMANwMAIAIgADYCICACIAEpAwA3AwAgAiABQQhqKQMANwMIQbCAwIAAQQ0QwYCAgAAQwoCAgAAhAyACIAIQuYCAgAA3AzggAiAArUIghkIEhDcDMCADQcyAwIAAQQIgAkEwakECELiAgIAAEIWAgIAAGiACQcAAaiSAgICAAAvBAwMCfwF+AX8jgICAgABBkAFrIgIkgICAgAACQCAAQv8Bg0LNAFINAEEAIQMCQANAIANBGEYNASACQcgAaiADakICNwMAIANBCGohAwwACwsgAUL/AYNCzABSDQAgAUHsgcCAAEEDIAJByABqQQMQvYCAgAAgAikDSCIEQv8Bg0IEUg0AIAIgAikDUBC8gICAACACKAIAQQFGDQAgAigCECEDIAIpAwghASACQeAAaiACKQNYEMmAgIAAIAIoAmBBAXENACACQRhqIAJBiAFqKQMANwMAIAJBEGogAkGAAWopAwA3AwAgAiACKQNwNwMAIAIgAkHgAGpBGGopAwA3AwggAiADNgIoIAIgATcDICACIARCIIinIgU2AjAQooCAgAAgABDIgICAACAFIAIQyoCAgAAgAkEDNgJgIAJB4ABqEJyAgIAAIAEgAxC2gICAAEICEIGAgIAAGkHcgMCAAEEaEMGAgIAAEMKAgIAAIQAgASADELaAgIAAIQEgAiAEQoSAgIBwgzcDaCACIAE3A2AgAEGIgcCAAEECIAJB4ABqQQIQuICAgAAQhYCAgAAaIAJBkAFqJICAgIAAQgIPCwALeAIBfwF+I4CAgIAAQSBrIgIkgICAgAACQCAAQv8Bg0LNAFINACACIAEQnoCAgAAgAigCAEEBRg0AIAIpAxghASACKQMQIQMQooCAgAAgABDIgICAACACQQQ2AgAgAiADIAEQn4CAgAAgAkEgaiSAgICAAEICDwsACxsAAkAgAEL/AYNCzQBRDQAACyAAEM6AgIAArQtWAQJ/I4CAgIAAQRBrIgEkgICAgAAQooCAgAAgAUEBNgIAIAEgADcDCAJAIAEQnICAgABCARCdgICAACICRQ0AIAEQpoCAgAALIAFBEGokgICAgAAgAgs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENCAgIAAIAApAwAgACkDCBCggICAACEBIABBEGokgICAgAAgAQtoAwF/AX4BfyOAgICAAEEwayIBJICAgIAAEKKAgIAAIAFBBTYCACABQRBqIAEQm4CAgAAgASkDICECIAAgASkDKEIAIAEoAhBBAXEiAxs3AwggACACQi8gAxs3AwAgAUEwaiSAgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENKAgIAAIAApAwAgACgCCBC2gICAACEBIABBEGokgICAgAAgAQuYAQMBfwF+AX8jgICAgABBMGsiASSAgICAABCigICAACABQQM2AggCQAJAAkAgAUEIahCcgICAACICQgIQnYCAgAANAEIAIQJBACEDDAELIAFBGGogAkICEICAgIAAELyAgIAAIAEoAhhBAUYNASABKAIoIQMgASkDICECCyAAIAM2AgggACACNwMAIAFBMGokgICAgAAPCwALJAACQCAAQv8Bg0IEUQ0AAAsgAEIgiKcQ1ICAgACtQiCGQgSEC4kBAgF/AX4jgICAgABBEGsiASSAgICAABCigICAACABQQY2AgAgASAANgIEQQAhAAJAAkAgARCcgICAACICQgEQnYCAgABFDQAgAkIBEICAgIAAIgJC/wGDQgRSDQEgAkKAgICAMFoNASACQiCIpyEAIAEQpoCAgAALIAFBEGokgICAgAAgAA8LAAujBwICfwl+I4CAgIAAQYACayIFJICAgIAAQeUAIQYCQAJAAkACQAJAIAFB7wBGDQACQAJAIAFBpJ0BRg0AIAFBlM8ARw0BQYnPACEGDAILQZmdASEGDAELIAEQ1ICAgABBAkcNASABQZDOAEkNAEGxzwBBmZ0BIAFBoJwBSRshBgsgBUHQAWogBhDWgICAACAFKALQAUEBcUUNASAFQcABaiAFNQL4AUIAIAKtIgdCABCLgYCAACAFQbABaiAFKQPAASIIQvQYfCIJIAUpA8gBIAkgCFStfCAFKQPwAUIAEIuBgIAAIAUpA+gBIQkgBSkD4AEhCiAFQdABaiABENaAgIAAIAUoAtABQQFxRQ0CIAUpA7gBIQsgBSkDsAEhDCAFQaABaiAFNQL4AUIAIAdCABCLgYCAAAJAIAUpA6ABIgggA3wiByAIVCIBIAUpA6gBIgMgBHwgAa18IgggA1QgCCADURsNACAFKQPoASEDIAUpA+ABIQQgBUGAAWogCEIAIAUpA/ABIg1CABCLgYCAACAFQZABaiAHQgAgDUIAEIuBgIAAIAUpA4gBQgBSIAUpA5gBIgggBSkDgAF8IgcgCFRyDQAgBSkDkAEhDSAFQdAAaiALQgAgCkIAEIuBgIAAIAVB4ABqIAlCACAMQgAQi4GAgAAgBUHw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AAALIARBoAFqIAQpA3AgBCkDeBDbgICAACAEKAKgAQ0AIAQpA6gBIQkgBEGgAWogAyACENuAgIAAIAQoAqABDQAgBCkDqAEhAiAEQaABaiAIIAUQ24CAgAAgBCgCoAENACAEKQOoASEDAkACQCAAQoCAgICAgIDAAHxC//////////8AVg0AIAAgAIUgASAAQj+HhYRCAFINACAAQgiGQguEIQAMAQsgASAAEIiAgIAAIQALIAQgADcDiAEgBCADNwOAASAEIAI3A3ggBCAJNwNwQYyEwIAAQQQgBEHwAGpBBBC4gICAACEAIARBsAFqJICAgIAAIAAPCwALaAMBfwF+AX8jgICAgABBMGsiASSAgICAABCigICAACABQQQ2AgAgAUEQaiABEJuAgIAAIAEpAyAhAiAAIAEpAyhCACABKAIQQQFxIgMbNwMIIAAgAkIAIAMbNwMAIAFBMGokgICAgAALRgACQAJAIAFC//////////8AViACQgBSIAJQGw0AIAFCCIZCCoQhAgwBCyACIAEQjoCAgAAhAgsgAEIANwMAIAAgAjcDCAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAENqAgIAAIAApAwAgACkDCBCggICAACEBIABBEGokgICAgAAgAQt5AQF/I4CAgIAAQcAAayIBJICAgIAAAkAgAEL/AYNCBFINACABIABCIIinENaAgIAAAkACQCABKAIAQQFxDQBCAiEADAELIAFBMGogAUEQahC6gICAACABKAIwQQFxDQEgASkDOCEACyABQcAAaiSAgICAACAADwsACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQ14CAgAAgACkDACAAKQMIEKCAgIAAIQEgAEEQaiSAgICAACABC3EAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINAEGAyx5BgNIfEOCAgIAAQYDLHkGA0h8Q4YCAgABBABCxgICAAEICEJ2AgIAADQEgABDigICAACABEMCAgIAAQgIPCwALQoOAgICggQEQroCAgAAACw4AQQEgACABEIaBgIAACw4AQQIgACABEIaBgIAACw4AQQAgAEICEPGAgIAAC2UAAkACQCAAQv8Bg0LIAFINACAAEImAgIAAQoCAgIBwg0KAgICAgARSDQAQqICAgAAQooCAgAAQoYCAgAANAUEBEOSAgIAAIAAQioCAgAAaQgIPCwALQoOAgIDAgwEQroCAgAAACwwAQQEgABDngICAAAttAAJAAkACQCAAQv8Bg0LIAFINABCogICAABCigICAAEEBEKOAgIAAQf0BcUUNASAAEIuAgIAAQv8Bg0ICUg0CQQAQ5ICAgABCAg8LAAtCg4CAgLCDARCugICAAAALQoOAgICggwEQroCAgAAACzUAEKiAgIAAEKKAgIAAAkAQoYCAgABFDQBCg4CAgMCDARCugICAAAALQQBBARDngICAAEICCxoAIAAQhIGAgAAgAa1C/wGDQgIQgYCAgAAaCwkAEKGAgIAArQsIABCpgICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAIAApAwAgACkDCBC7gICAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELCAgIAAIAApAwAgACkDCBC7gICAACEBIABBEGokgICAgAAgAQs8AQF+AkAgAEL/AYNCzQBRDQAACxCigICAABCqgICAACEBEK+AgIAAIAAQ4oCAgAAgASAAEO2AgIAAQgILYQIBfwF+I4CAgIAAQRBrIgIkgICAgABBtYTAgABBFRDBgICAABDCgICAACEDIAIgADcDCCACIAE3AwAgA0HchMCAAEECIAJBAhC4gICAABCFgICAABogAkEQaiSAgICAAAv8AgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINABCigICAABCqgICAACEDAkACQCABQv////8PVg0AIAJBCGoQsICAgAAgAikDECEBIAIpAwhBiQgQrICAgAAgASAAEK2AgIAARQ0DEO+AgIAAQaCFwIAAQRwQwYCAgAAQwoCAgAAhACACIAM3AxAgAiABNwMIIABB2IXAgABBAiACQQhqQQIQuICAgAAQhYCAgAAaDAELEPCAgIAAIAFCIIinSQ0DQQEgAEIAEPGAgIAAQQEQsYCAgABCACABQoSAgIBwgyIBIAEQgoCAgAAaQeyEwIAAQRYQwYCAgAAQwoCAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQYiFwIAAQQMgAkEIakEDELiAgIAAEIWAgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA8IABEK6AgIAAAAtCg4CAgICBARCugICAAAALEwBBARCxgICAAEIAEISAgIAAGgszAQJ+EJaAgIAAIQACQBCXgICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxDGgICAAAALFQAgABCxgICAACABIAIQgYCAgAAaC4gBAgF/An4jgICAgABBEGsiACSAgICAABCigICAACAAELCAgIAAIAApAwghASAAKQMAQYkIEKyAgIAAIAEQg4CAgAAaIAAQsoCAgAACQCAAKAIADQAQ84CAgAAACyAAKQMIIQIQ74CAgAAgARDigICAACACIAEQ7YCAgAAgAEEQaiSAgICAAEICCwkAEMaAgIAAAAuEAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQooCAgAAQqoCAgAAhARCvgICAAEEAELGAgIAAQgIQhICAgAAaQeiFwIAAQRMQwYCAgAAQwoCAgAAhAiAAIAE3AwggAkH8hcCAAEEBIABBCGpBARC4gICAABCFgICAABogAEEQaiSAgICAAEICCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEPaAgIAAQgIPCwALGwAgAK1CIIZCBIQgAa1CIIZCBIQQmYCAgAAaC7wEAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABD4gICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEPiAgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYEKiAgIAAEKKAgIAAAkACQAJAEKSAgIAADQAQ8ICAgAAiA0GA+4ADIANBgPuAA0kbIQQgAiACQRhqNgIsIAIgAkEIajYCKEEAIQMDQCADQQhGDQMCQCACQShqIANqKAIAIgUoAgBBAXFFDQAgBSgCCCIGIARLDQMgBSgCBCAGSw0DCyADQQRqIQMMAAsLQoOAgIDQ/wAQroCAgAAAC0KDgICAwP8AEK6AgIAAAAsCQAJAIAIoAghBAUcNACACKAIMIAIoAhAQ4ICAgAAMAQtBARClgICAAEICEISAgIAAGgsCQAJAIAIoAhhBAUcNACACKAIcIAIoAiAQ4YCAgAAMAQtBAhClgICAAEICEISAgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QbCGwIAAQQ8QwYCAgAAQwoCAgAAhACACQShqEPmAgIAAIQEgAiACQTRqEPmAgIAANwNIIAIgATcDQCAAQdSGwIAAQQIgAkHAAGpBAhC4gICAABCFgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQgoGAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQ/ICAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC6ABAgJ/AX4jgICAgABBwABrIgAkgICAgAAQooCAgAAgAEEIahD7gICAACAAQRRqIgEQp4CAgAAgAEEwaiAAQQhqEPyAgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARD8gICAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQ/YCAgAAhAiAAQcAAaiSAgICAACACCwwAIABBARCFgYCAAAswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBCDgYCAAA8LIABCADcDACAAQgI3AwgLGgAgAK1CIIZCBIQgAa1CIIZCBIQQkYCAgAALiAEBAX8jgICAgABBEGsiACSAgICAABCogICAABCigICAAAJAEKSAgIAARQ0AQoOAgIDg/wAQroCAgAAAC0EAEKWAgIAAQgFCAhCBgICAABpB5IbAgABBEhDBgICAABDCgICAAEEEQQAgAEEIakEAELiAgIAAEIWAgIAAGiAAQRBqJICAgIAAQgILCQAQpICAgACtCwMAAAvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCSgICAACEDCyAAQgA3AwAgACADNwMIC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQaCGwIAAQQIgAkECEL2AgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBoIbAgABBAiADQQIQuICAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQY6HwIAAQQkQs4CAgAAgASgCAA0CIAEgASkDCBC0gICAAAwBCyABQfaGwIAAQQYQs4CAgAAgASgCAA0BIAEgASkDCBC0gICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC3cCAn8BfiOAgICAAEEQayICJICAgIAAQQAhAwJAAkAgARClgICAACIEQgIQnYCAgABFDQAgAkEEaiAEQgIQgICAgAAQgoGAgABBASEDIAIoAgRBAUYNASAAIAIpAgg3AgQLIAAgAzYCACACQRBqJICAgIAADwsAC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQpYCAgAAhBCADIAEgAhCDgYCAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEIGAgIAAGiADQRBqJICAgIAAC1cBAX4CQAJAIANBwABxDQAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAiADQT9xrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQEMAQsgASADQT9xrYYhAkIAIQELIAAgATcDACAAIAI3AwgL0QgEAX8BfgN/BH4jgICAgABBsAFrIgUkgICAgABCACEGAkACQAJAAkACQCAE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ARAAFwAAAP8BEAANAAAAdGhyZXNob2xkb3duZXJzaGlwX3RyYW5zZmVycmVkbmV3X293bmVyb2xkX293bmVySgIQAAkAAABTAhAACQAAAG93bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAABKAhAACQAAAFMCEAAJAAAAggIQAAMAAABvd25lcnNoaXBfdHJhbnNmZXJfY2FuY2VsbGVkY2FuY2VsbGVkX3BlbmRpbmdfb3duZXJvd25lcrwCEAAXAAAA0wIQAAUAAABvd25lcnNoaXBfcmVub3VuY2VkAFMCEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AABUDEAAJAAAALAIQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAAA/AxAACAAAAEcDEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nAI94DmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAADlByaWNlRmVlZEVycm9yAAAAAAAFAAAAAAAAABJJbnZhbGlkRGVub21pbmF0b3IAAAAAAAEAAAAAAAAAB05vUHJpY2UAAAAAAgAAAAAAAAAMTm90QW5PcFN0YWNrAAAAAwAAAAAAAAAQT25seVByaWNlVXBkYXRlcgAAAAQAAAAAAAAACE92ZXJmbG93AAAABQAAAAUAAAAAAAAAAAAAAA9QcmljZVVwZGF0ZXJTZXQAAAAAAQAAABFwcmljZV91cGRhdGVyX3NldAAAAAAAAAIAAAAAAAAAB3VwZGF0ZXIAAAAAEwAAAAAAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAAAAAAAAAAAAADFByaWNlVXBkYXRlZAAAAAEAAAANcHJpY2VfdXBkYXRlZAAAAAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAABXByaWNlAAAAAAAH0AAAAAVQcmljZQAAAAAAAAAAAAACAAAABQAAAAAAAAAAAAAAF0FyYml0cnVtUHJpY2VFeHRVcGRhdGVkAAAAAAEAAAAaYXJiaXRydW1fcHJpY2VfZXh0X3VwZGF0ZWQAAAAAAAIAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAAAAAAAEmFyYml0cnVtX3ByaWNlX2V4dAAAAAAH0AAAABBBcmJpdHJ1bVByaWNlRXh0AAAAAAAAAAIAAAABAAAAIUFyYml0cnVtLXNwZWNpZmljIHByaWNlIGV4dGVuc2lvbgAAAAAAAAAAAAAQQXJiaXRydW1QcmljZUV4dAAAAAIAAABBR2FzIGNvc3QgcGVyIGJ5dGUgb2YgTDEgY2FsbGRhdGEgKGZvciBBcmJpdHJ1bSdzIEwxIGRhdGEgcG9zdGluZykAAAAAAAAYZ2FzX3Blcl9sMV9jYWxsZGF0YV9ieXRlAAAABAAAAB9HYXMgb3ZlcmhlYWQgcGVyIEwyIHRyYW5zYWN0aW9uAAAAAA1nYXNfcGVyX2wyX3R4AAAAAAAABgAAAAEAAAAlUGFyYW1ldGVyIGZvciB1cGRhdGluZyBhIHNpbmdsZSBwcmljZQAAAAAAAAAAAAALVXBkYXRlUHJpY2UAAAAAAgAAABdEZXN0aW5hdGlvbiBlbmRwb2ludCBJRAAAAAADZWlkAAAAAAQAAAAlUHJpY2UgaW5mb3JtYXRpb24gZm9yIHRoZSBkZXN0aW5hdGlvbgAAAAAAAAVwcmljZQAAAAAAB9AAAAAFUHJpY2UAAAAAAAABAAAANFBhcmFtZXRlciBmb3IgdXBkYXRpbmcgQXJiaXRydW0gcHJpY2Ugd2l0aCBleHRlbnNpb24AAAAAAAAADlVwZGF0ZVByaWNlRXh0AAAAAAADAAAAOERlc3RpbmF0aW9uIGVuZHBvaW50IElEIChzaG91bGQgYmUgYW4gQXJiaXRydW0gZW5kcG9pbnQpAAAAA2VpZAAAAAAEAAAAI0FyYml0cnVtLXNwZWNpZmljIHByaWNpbmcgZXh0ZW5zaW9uAAAAAAZleHRlbmQAAAAAB9AAAAAQQXJiaXRydW1QcmljZUV4dAAAACVQcmljZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGRlc3RpbmF0aW9uAAAAAAAABXByaWNlAAAAAAAH0AAAAAVQcmljZQAAAAAAAAMAAAAwRmVlIG1vZGVsIHR5cGUgZm9yIGRpZmZlcmVudCBjaGFpbiBhcmNoaXRlY3R1cmVzAAAAAAAAAAlNb2RlbFR5cGUAAAAAAAADAAAAAAAAAAdEZWZhdWx0AAAAAAAAAAAAAAAACEFyYlN0YWNrAAAAAQAAAAAAAAAHT3BTdGFjawAAAAACAAAAAQAAAC9QYXJhbWV0ZXIgZm9yIHNldHRpbmcgRUlEIHRvIG1vZGVsIHR5cGUgbWFwcGluZwAAAAAAAAAAFlNldEVpZFRvTW9kZWxUeXBlUGFyYW0AAAAAAAIAAAAXRGVzdGluYXRpb24gZW5kcG9pbnQgSUQAAAAAB2RzdF9laWQAAAAABAAAACNGZWUgbW9kZWwgdHlwZSBmb3IgdGhpcyBkZXN0aW5hdGlvbgAAAAAKbW9kZWxfdHlwZQAAAAAH0AAAAAlNb2RlbFR5cGUAAAAAAAAAAAAAJVNldCBwcmljZSB1cGRhdGVyIHN0YXR1cyAob3duZXIgb25seSkAAAAAAAARc2V0X3ByaWNlX3VwZGF0ZXIAAAAAAAACAAAAAAAAAAd1cGRhdGVyAAAAABMAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAAAAAALFNldCB0aGUgcHJpY2UgcmF0aW8gZGVub21pbmF0b3IgKG93bmVyIG9ubHkpAAAAG3NldF9wcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAABAAAAAAAAAAtkZW5vbWluYXRvcgAAAAAKAAAAAAAAAAAAAAA0U2V0IHRoZSBBcmJpdHJ1bSBjb21wcmVzc2lvbiBwZXJjZW50YWdlIChvd25lciBvbmx5KQAAACBzZXRfYXJiaXRydW1fY29tcHJlc3Npb25fcGVyY2VudAAAAAEAAAAAAAAAE2NvbXByZXNzaW9uX3BlcmNlbnQAAAAACgAAAAAAAAAAAAAAOFNldCB0aGUgZmVlIG1vZGVsIHR5cGUgZm9yIGRlc3RpbmF0aW9uIEVJRHMgKG93bmVyIG9ubHkpAAAAFXNldF9laWRfdG9fbW9kZWxfdHlwZQAAAAAAAAEAAAAAAAAABnBhcmFtcwAAAAAD6gAAB9AAAAAWU2V0RWlkVG9Nb2RlbFR5cGVQYXJhbQAAAAAAAAAAAAAAAAA9U2V0IHByaWNlcyBmb3IgbXVsdGlwbGUgZGVzdGluYXRpb25zIChwcmljZSB1cGRhdGVyIG9yIG93bmVyKQAAAAAAAAlzZXRfcHJpY2UAAAAAAAACAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAGcHJpY2VzAAAAAAPqAAAH0AAAAAtVcGRhdGVQcmljZQAAAAAAAAAAAAAAAHJTZXQgcHJpY2UgZm9yIEFyYml0cnVtIHdpdGggZXh0ZW5zaW9uIChwcmljZSB1cGRhdGVyIG9yIG93bmVyKQpDb3JyZXNwb25kcyB0byBzZXRQcmljZUZvckFyYml0cnVtIGluIFByaWNlRmVlZC5zb2wAAAAAABZzZXRfcHJpY2VfZm9yX2FyYml0cnVtAAAAAAACAAAAAAAAAA1wcmljZV91cGRhdGVyAAAAAAAAEwAAAAAAAAAGdXBkYXRlAAAAAAfQAAAADlVwZGF0ZVByaWNlRXh0AAAAAAAAAAAAAAAAALRTZXQgdGhlIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHByaWNlIHVwZGF0ZXIgb3Igb3duZXIpLgoKS2VwdCBhcyBhIHN0YW5kYWxvbmUgY29udHJhY3QgZnVuY3Rpb24gKG5vdCBwYXJ0IG9mIHRoZSBjYW5vbmljYWwgYGZlZV9saWJfaW50ZXJmYWNlczo6SUxheWVyWmVyb1ByaWNlRmVlZGAgaW50ZXJmYWNlKS4AAAAac2V0X25hdGl2ZV90b2tlbl9wcmljZV91c2QAAAAAAAIAAAAAAAAADXByaWNlX3VwZGF0ZXIAAAAAAAATAAAAAAAAABZuYXRpdmVfdG9rZW5fcHJpY2VfdXNkAAAAAAAKAAAAAAAAAAAAAAAuQ2hlY2sgaWYgYW4gYWRkcmVzcyBpcyBhbiBhY3RpdmUgcHJpY2UgdXBkYXRlcgAAAAAAEGlzX3ByaWNlX3VwZGF0ZXIAAAABAAAAAAAAAAd1cGRhdGVyAAAAABMAAAABAAAAAQAAAAAAAAAkR2V0IHRoZSBBcmJpdHJ1bSBjb21wcmVzc2lvbiBwZXJjZW50AAAAHGFyYml0cnVtX2NvbXByZXNzaW9uX3BlcmNlbnQAAAAAAAAAAQAAAAoAAAAAAAAAIEdldCB0aGUgQXJiaXRydW0gcHJpY2UgZXh0ZW5zaW9uAAAAEmFyYml0cnVtX3ByaWNlX2V4dAAAAAAAAAAAAAEAAAfQAAAAEEFyYml0cnVtUHJpY2VFeHQAAAAAAAAAKEdldCB0aGUgbW9kZWwgdHlwZSBmb3IgYSBkZXN0aW5hdGlvbiBFSUQAAAARZWlkX3RvX21vZGVsX3R5cGUAAAAAAAABAAAAAAAAAAdkc3RfZWlkAAAAAAQAAAABAAAH0AAAAAlNb2RlbFR5cGUAAAAAAAAAAAAAZEVzdGltYXRlIGZlZSB3aXRoIGRldGFpbGVkIGJyZWFrZG93biBieSBlbmRwb2ludCBJRApDb3JyZXNwb25kcyB0byBlc3RpbWF0ZUZlZUJ5RWlkIGluIFByaWNlRmVlZC5zb2wAAAATZXN0aW1hdGVfZmVlX2J5X2VpZAAAAAAEAAAAAAAAAAdmZWVfbGliAAAAABMAAAAAAAAAB2RzdF9laWQAAAAABAAAAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAAAAAAAAA2dhcwAAAAAKAAAAAQAAB9AAAAALRmVlRXN0aW1hdGUAAAAAAAAAACFHZXQgdGhlIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QAAAAAAAAWbmF0aXZlX3Rva2VuX3ByaWNlX3VzZAAAAAAAAAAAAAEAAAAKAAAAAAAAACRHZXQgdGhlIHByaWNlIGZvciBhIGRlc3RpbmF0aW9uIEVJRC4AAAAJZ2V0X3ByaWNlAAAAAAAAAQAAAAAAAAAHZHN0X2VpZAAAAAAEAAAAAQAAA+gAAAfQAAAABVByaWNlAAAAAAAAAAAAACBHZXQgdGhlIHByaWNlIHJhdGlvIGRlbm9taW5hdG9yLgAAABtnZXRfcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAAAAAAAAEAAAAKAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAIAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAANcHJpY2VfdXBkYXRlcgAAAAAAABMAAAAAAAAAAAAAAGxVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAIdSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpQYXJzZXMgWERSLWVuY29kZWQgYG1pZ3JhdGlvbl9kYXRhYCBhbmQgY2FsbHMgYF9fbWlncmF0ZWAuIENsZWFycyB0aGUgbWlncmF0aW9uIGZsYWcgb24gc3VjY2Vzcy4AAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAAAAAAAE9QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLiBJcnJldmVyc2libGUuAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAgAAAAAAAAAAAAAAEFByaWNlRmVlZFN0b3JhZ2UAAAAHAAAAAAAAAAAAAAAVUHJpY2VSYXRpb0Rlbm9taW5hdG9yAAAAAAAAAQAAAAAAAAAMUHJpY2VVcGRhdGVyAAAAAQAAABMAAAABAAAAAAAAABFEZWZhdWx0TW9kZWxQcmljZQAAAAAAAAEAAAAEAAAAAAAAAAAAAAAQQXJiaXRydW1QcmljZUV4dAAAAAAAAAAAAAAADk5hdGl2ZVByaWNlVVNEAAAAAAAAAAAAAAAAABpBcmJpdHJ1bUNvbXByZXNzaW9uUGVyY2VudAAAAAAAAQAAAAAAAAAORWlkVG9Nb2RlbFR5cGUAAAAAAAEAAAAEAAAAAQAAAOFQYXJhbWV0ZXJzIGZvciBEVk4gZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSB2ZXJpZmljYXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAAADER2bkZlZVBhcmFtcwAAAAoAAAAnTnVtYmVyIG9mIGJsb2NrIGNvbmZpcm1hdGlvbnMgcmVxdWlyZWQuAAAAAA1jb25maXJtYXRpb25zAAAAAAAABgAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkdhcyBlc3RpbWF0ZSBmb3IgdmVyaWZpY2F0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAANnYXMAAAAACgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAALRFZOIG9wdGlvbnMAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAAJ051bWJlciBvZiByZXF1aXJlZCBzaWduYXR1cmVzIChxdW9ydW0pLgAAAAAGcXVvcnVtAAAAAAAEAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAONQYXJhbWV0ZXJzIGZvciBleGVjdXRvciBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIGV4ZWN1dGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAACUZlZVBhcmFtcwAAAAAAAAsAAAAmU2l6ZSBvZiB0aGUgbWVzc2FnZSBjYWxsZGF0YSBpbiBieXRlcy4AAAAAAA1jYWxsZGF0YV9zaXplAAAAAAAABAAAAExEZWZhdWx0IGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAodXNlZCBpZiBubyBkc3Qtc3BlY2lmaWMgbXVsdGlwbGllcikuAAAAFmRlZmF1bHRfbXVsdGlwbGllcl9icHMAAAAAAAQAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAI01pbmltdW0gZmVlIG1hcmdpbiBpbiBVU0QgKHNjYWxlZCkuAAAAABBmbG9vcl9tYXJnaW5fdXNkAAAACgAAADZCYXNlIGdhcyBmb3IgZWFjaCBsekNvbXBvc2UgY2FsbCBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAABNsel9jb21wb3NlX2Jhc2VfZ2FzAAAAAAYAAAETPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpCYXNlIGdhcyBmb3IgbHpSZWNlaXZlIGV4ZWN1dGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAAAE2x6X3JlY2VpdmVfYmFzZV9nYXMAAAAABgAAAEZEZXN0aW5hdGlvbi1zcGVjaWZpYyBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKDAgPSB1c2UgZGVmYXVsdCkuAAAAAAAObXVsdGlwbGllcl9icHMAAAAAAAQAAAAsTWF4aW11bSBuYXRpdmUgdG9rZW4gdmFsdWUgdGhhdCBjYW4gYmUgc2VudC4AAAAKbmF0aXZlX2NhcAAAAAAACgAAAEZFbmNvZGVkIGV4ZWN1dG9yIG9wdGlvbnMgKGx6UmVjZWl2ZSBnYXMsIGx6Q29tcG9zZSwgbmF0aXZlRHJvcCwgZXRjLikuAAAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAAhEdhcyBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBkZXN0aW5hdGlvbiBlbmRwb2ludC4KCkNvbnRhaW5zIHRoZSBleGNoYW5nZSByYXRlIGFuZCBnYXMgY29zdHMgbmVlZGVkIGZvciBjcm9zcy1jaGFpbiBmZWUgY2FsY3VsYXRpb25zLgAAAAAAAAAFUHJpY2UAAAAAAAADAAAAN0dhcyBjb3N0IHBlciBieXRlIG9mIGNhbGxkYXRhIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbi4AAAAADGdhc19wZXJfYnl0ZQAAAAQAAABCR2FzIHByaWNlIGluIHRoZSBzbWFsbGVzdCB1bml0ICh3ZWkgZm9yIEVWTSwgc3Ryb29wcyBmb3IgU3RlbGxhcikuAAAAAAARZ2FzX3ByaWNlX2luX3VuaXQAAAAAAAAGAAAAqVByaWNlIHJhdGlvID0gKHJlbW90ZSBuYXRpdmUgdG9rZW4gcHJpY2UgLyBsb2NhbCBuYXRpdmUgdG9rZW4gcHJpY2UpICogUFJJQ0VfUkFUSU9fREVOT01JTkFUT1IuClVzZWQgdG8gY29udmVydCBkZXN0aW5hdGlvbiBjaGFpbiBnYXMgY29zdHMgdG8gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAAAEAAACARmVlIGVzdGltYXRpb24gcmVzdWx0IHdpdGggZGV0YWlsZWQgYnJlYWtkb3duLgoKQ29udGFpbnMgdGhlIGNhbGN1bGF0ZWQgZmVlIGFuZCBhbGwgaW50ZXJtZWRpYXRlIHZhbHVlcyB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAAAC0ZlZUVzdGltYXRlAAAAAAQAAAAwU291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiBwcmljZSBpbiBVU0QgKHNjYWxlZCkuAAAAEG5hdGl2ZV9wcmljZV91c2QAAAAKAAAAJVByaWNlIHJhdGlvIHVzZWQgZm9yIHRoZSBjYWxjdWxhdGlvbi4AAAAAAAALcHJpY2VfcmF0aW8AAAAACgAAADJEZW5vbWluYXRvciBmb3IgdGhlIHByaWNlIHJhdGlvICh0eXBpY2FsbHkgMTBeMjApLgAAAAAAF3ByaWNlX3JhdGlvX2Rlbm9taW5hdG9yAAAAAAoAAAAxVG90YWwgZ2FzIGZlZSBpbiBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHVuaXRzLgAAAAAAAA10b3RhbF9nYXNfZmVlAAAAAAAACwAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABwAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAcAAAAAAAAACkludmFsaWRUdGwAAAAABAgAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECQAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAoAAAAAAAAAC093bmVyTm90U2V0AAAABAsAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAEDAAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpU2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlTaWdFcnJvcgAAAAAAAAkAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQlAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJgAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCcAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEKAAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCkAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKgAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCsAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQsAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAIsBDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZiaW52ZXIAAAAAAAUwLjAuMQAAAAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjEuMCM4NmM1MGExZWE0Zjg3YjQwYWRkMzA2NGZmOWRmOTVjNzU1MzU2NWM1AAAeEWNvbnRyYWN0ZW52bWV0YXYwAAAAAAAAABkAAAAAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
12
12
  /**
13
13
  * Pre-computed WASM hash (SHA-256)
14
14
  * Use this when the WASM is already uploaded on-chain
15
15
  */
16
- export declare const WASM_HASH = "dcf39d3b282fd9dc1b9b499e6d4a1833ad63ebcbaeac3611bb465f9e05abba24";
16
+ export declare const WASM_HASH = "bc1441eb80671ff57ab3e33c478da9f75b65b270257adbfb6f0d5073e8511ae2";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -340,6 +340,9 @@ export declare const OwnableError: {
340
340
  1035: {
341
341
  message: string;
342
342
  };
343
+ 1036: {
344
+ message: string;
345
+ };
343
346
  };
344
347
  /**
345
348
  * BytesExtError: 1040-1049
@@ -364,9 +367,9 @@ export declare const UpgradeableError: {
364
367
  };
365
368
  };
366
369
  /**
367
- * MultisigError: 1060-1069
370
+ * MultiSigError: 1060-1069
368
371
  */
369
- export declare const MultisigError: {
372
+ export declare const MultiSigError: {
370
373
  1060: {
371
374
  message: string;
372
375
  };
@@ -391,8 +394,11 @@ export declare const MultisigError: {
391
394
  1067: {
392
395
  message: string;
393
396
  };
397
+ 1068: {
398
+ message: string;
399
+ };
394
400
  };
395
- export type MultisigStorage = {
401
+ export type MultiSigStorage = {
396
402
  tag: "Signers";
397
403
  values: void;
398
404
  } | {
@@ -444,80 +450,28 @@ export interface Client {
444
450
  set_price_updater: ({ updater, active }: {
445
451
  updater: string;
446
452
  active: boolean;
447
- }, txnOptions?: {
448
- /**
449
- * The fee to pay for the transaction. Default: BASE_FEE
450
- */
451
- fee?: number;
452
- /**
453
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
454
- */
455
- timeoutInSeconds?: number;
456
- /**
457
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
458
- */
459
- simulate?: boolean;
460
- }) => Promise<AssembledTransaction<null>>;
453
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
461
454
  /**
462
455
  * Construct and simulate a set_price_ratio_denominator transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
463
456
  * Set the price ratio denominator (owner only)
464
457
  */
465
458
  set_price_ratio_denominator: ({ denominator }: {
466
459
  denominator: u128;
467
- }, txnOptions?: {
468
- /**
469
- * The fee to pay for the transaction. Default: BASE_FEE
470
- */
471
- fee?: number;
472
- /**
473
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
474
- */
475
- timeoutInSeconds?: number;
476
- /**
477
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
478
- */
479
- simulate?: boolean;
480
- }) => Promise<AssembledTransaction<null>>;
460
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
481
461
  /**
482
462
  * Construct and simulate a set_arbitrum_compression_percent transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
483
463
  * Set the Arbitrum compression percentage (owner only)
484
464
  */
485
465
  set_arbitrum_compression_percent: ({ compression_percent }: {
486
466
  compression_percent: u128;
487
- }, txnOptions?: {
488
- /**
489
- * The fee to pay for the transaction. Default: BASE_FEE
490
- */
491
- fee?: number;
492
- /**
493
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
494
- */
495
- timeoutInSeconds?: number;
496
- /**
497
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
498
- */
499
- simulate?: boolean;
500
- }) => Promise<AssembledTransaction<null>>;
467
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
501
468
  /**
502
469
  * Construct and simulate a set_eid_to_model_type transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
503
470
  * Set the fee model type for destination EIDs (owner only)
504
471
  */
505
472
  set_eid_to_model_type: ({ params }: {
506
473
  params: Array<SetEidToModelTypeParam>;
507
- }, txnOptions?: {
508
- /**
509
- * The fee to pay for the transaction. Default: BASE_FEE
510
- */
511
- fee?: number;
512
- /**
513
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
514
- */
515
- timeoutInSeconds?: number;
516
- /**
517
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
518
- */
519
- simulate?: boolean;
520
- }) => Promise<AssembledTransaction<null>>;
474
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
521
475
  /**
522
476
  * Construct and simulate a set_price transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
523
477
  * Set prices for multiple destinations (price updater or owner)
@@ -525,20 +479,7 @@ export interface Client {
525
479
  set_price: ({ price_updater, prices }: {
526
480
  price_updater: string;
527
481
  prices: Array<UpdatePrice>;
528
- }, txnOptions?: {
529
- /**
530
- * The fee to pay for the transaction. Default: BASE_FEE
531
- */
532
- fee?: number;
533
- /**
534
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
535
- */
536
- timeoutInSeconds?: number;
537
- /**
538
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
539
- */
540
- simulate?: boolean;
541
- }) => Promise<AssembledTransaction<null>>;
482
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
542
483
  /**
543
484
  * Construct and simulate a set_price_for_arbitrum transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
544
485
  * Set price for Arbitrum with extension (price updater or owner)
@@ -547,20 +488,7 @@ export interface Client {
547
488
  set_price_for_arbitrum: ({ price_updater, update }: {
548
489
  price_updater: string;
549
490
  update: UpdatePriceExt;
550
- }, txnOptions?: {
551
- /**
552
- * The fee to pay for the transaction. Default: BASE_FEE
553
- */
554
- fee?: number;
555
- /**
556
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
557
- */
558
- timeoutInSeconds?: number;
559
- /**
560
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
561
- */
562
- simulate?: boolean;
563
- }) => Promise<AssembledTransaction<null>>;
491
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
564
492
  /**
565
493
  * Construct and simulate a set_native_token_price_usd transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
566
494
  * Set the native token price in USD (price updater or owner).
@@ -570,96 +498,31 @@ export interface Client {
570
498
  set_native_token_price_usd: ({ price_updater, native_token_price_usd }: {
571
499
  price_updater: string;
572
500
  native_token_price_usd: u128;
573
- }, txnOptions?: {
574
- /**
575
- * The fee to pay for the transaction. Default: BASE_FEE
576
- */
577
- fee?: number;
578
- /**
579
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
580
- */
581
- timeoutInSeconds?: number;
582
- /**
583
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
584
- */
585
- simulate?: boolean;
586
- }) => Promise<AssembledTransaction<null>>;
501
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
587
502
  /**
588
503
  * Construct and simulate a is_price_updater transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
589
504
  * Check if an address is an active price updater
590
505
  */
591
506
  is_price_updater: ({ updater }: {
592
507
  updater: string;
593
- }, txnOptions?: {
594
- /**
595
- * The fee to pay for the transaction. Default: BASE_FEE
596
- */
597
- fee?: number;
598
- /**
599
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
600
- */
601
- timeoutInSeconds?: number;
602
- /**
603
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
604
- */
605
- simulate?: boolean;
606
- }) => Promise<AssembledTransaction<boolean>>;
508
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
607
509
  /**
608
510
  * Construct and simulate a arbitrum_compression_percent transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
609
511
  * Get the Arbitrum compression percent
610
512
  */
611
- arbitrum_compression_percent: (txnOptions?: {
612
- /**
613
- * The fee to pay for the transaction. Default: BASE_FEE
614
- */
615
- fee?: number;
616
- /**
617
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
618
- */
619
- timeoutInSeconds?: number;
620
- /**
621
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
622
- */
623
- simulate?: boolean;
624
- }) => Promise<AssembledTransaction<u128>>;
513
+ arbitrum_compression_percent: (options?: MethodOptions) => Promise<AssembledTransaction<u128>>;
625
514
  /**
626
515
  * Construct and simulate a arbitrum_price_ext transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
627
516
  * Get the Arbitrum price extension
628
517
  */
629
- arbitrum_price_ext: (txnOptions?: {
630
- /**
631
- * The fee to pay for the transaction. Default: BASE_FEE
632
- */
633
- fee?: number;
634
- /**
635
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
636
- */
637
- timeoutInSeconds?: number;
638
- /**
639
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
640
- */
641
- simulate?: boolean;
642
- }) => Promise<AssembledTransaction<ArbitrumPriceExt>>;
518
+ arbitrum_price_ext: (options?: MethodOptions) => Promise<AssembledTransaction<ArbitrumPriceExt>>;
643
519
  /**
644
520
  * Construct and simulate a eid_to_model_type transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
645
521
  * Get the model type for a destination EID
646
522
  */
647
523
  eid_to_model_type: ({ dst_eid }: {
648
524
  dst_eid: u32;
649
- }, txnOptions?: {
650
- /**
651
- * The fee to pay for the transaction. Default: BASE_FEE
652
- */
653
- fee?: number;
654
- /**
655
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
656
- */
657
- timeoutInSeconds?: number;
658
- /**
659
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
660
- */
661
- simulate?: boolean;
662
- }) => Promise<AssembledTransaction<ModelType>>;
525
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<ModelType>>;
663
526
  /**
664
527
  * Construct and simulate a estimate_fee_by_eid transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
665
528
  * Estimate fee with detailed breakdown by endpoint ID
@@ -670,209 +533,64 @@ export interface Client {
670
533
  dst_eid: u32;
671
534
  calldata_size: u32;
672
535
  gas: u128;
673
- }, txnOptions?: {
674
- /**
675
- * The fee to pay for the transaction. Default: BASE_FEE
676
- */
677
- fee?: number;
678
- /**
679
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
680
- */
681
- timeoutInSeconds?: number;
682
- /**
683
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
684
- */
685
- simulate?: boolean;
686
- }) => Promise<AssembledTransaction<FeeEstimate>>;
536
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<FeeEstimate>>;
687
537
  /**
688
538
  * Construct and simulate a native_token_price_usd transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
689
539
  * Get the native token price in USD
690
540
  */
691
- native_token_price_usd: (txnOptions?: {
692
- /**
693
- * The fee to pay for the transaction. Default: BASE_FEE
694
- */
695
- fee?: number;
696
- /**
697
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
698
- */
699
- timeoutInSeconds?: number;
700
- /**
701
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
702
- */
703
- simulate?: boolean;
704
- }) => Promise<AssembledTransaction<u128>>;
541
+ native_token_price_usd: (options?: MethodOptions) => Promise<AssembledTransaction<u128>>;
705
542
  /**
706
543
  * Construct and simulate a get_price transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
707
544
  * Get the price for a destination EID.
708
545
  */
709
546
  get_price: ({ dst_eid }: {
710
547
  dst_eid: u32;
711
- }, txnOptions?: {
712
- /**
713
- * The fee to pay for the transaction. Default: BASE_FEE
714
- */
715
- fee?: number;
716
- /**
717
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
718
- */
719
- timeoutInSeconds?: number;
720
- /**
721
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
722
- */
723
- simulate?: boolean;
724
- }) => Promise<AssembledTransaction<Option<Price>>>;
548
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Option<Price>>>;
725
549
  /**
726
550
  * Construct and simulate a get_price_ratio_denominator transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
727
551
  * Get the price ratio denominator.
728
552
  */
729
- get_price_ratio_denominator: (txnOptions?: {
730
- /**
731
- * The fee to pay for the transaction. Default: BASE_FEE
732
- */
733
- fee?: number;
734
- /**
735
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
736
- */
737
- timeoutInSeconds?: number;
738
- /**
739
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
740
- */
741
- simulate?: boolean;
742
- }) => Promise<AssembledTransaction<u128>>;
553
+ get_price_ratio_denominator: (options?: MethodOptions) => Promise<AssembledTransaction<u128>>;
743
554
  /**
744
555
  * Construct and simulate a upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
745
- * The type of data required for migration.
746
556
  * Upgrades the contract to new WASM bytecode.
747
557
  * Sets a migration flag that must be cleared by calling `migrate`.
748
558
  */
749
559
  upgrade: ({ new_wasm_hash }: {
750
560
  new_wasm_hash: Buffer;
751
- }, txnOptions?: {
752
- /**
753
- * The fee to pay for the transaction. Default: BASE_FEE
754
- */
755
- fee?: number;
756
- /**
757
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
758
- */
759
- timeoutInSeconds?: number;
760
- /**
761
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
762
- */
763
- simulate?: boolean;
764
- }) => Promise<AssembledTransaction<null>>;
561
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
765
562
  /**
766
563
  * Construct and simulate a migrate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
767
564
  * Runs migration logic after an upgrade.
768
- * Can only be called when the migration flag is set by a previous `upgrade` call.
565
+ * Parses XDR-encoded `migration_data` and calls `__migrate`. Clears the migration flag on success.
769
566
  */
770
567
  migrate: ({ migration_data }: {
771
568
  migration_data: Buffer;
772
- }, txnOptions?: {
773
- /**
774
- * The fee to pay for the transaction. Default: BASE_FEE
775
- */
776
- fee?: number;
777
- /**
778
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
779
- */
780
- timeoutInSeconds?: number;
781
- /**
782
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
783
- */
784
- simulate?: boolean;
785
- }) => Promise<AssembledTransaction<null>>;
569
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
786
570
  /**
787
571
  * Construct and simulate a freeze transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
788
- * Permanently freezes the contract, preventing any future upgrades.
789
- * This action is irreversible.
572
+ * Permanently freezes the contract, preventing any future upgrades. Irreversible.
790
573
  */
791
- freeze: (txnOptions?: {
792
- /**
793
- * The fee to pay for the transaction. Default: BASE_FEE
794
- */
795
- fee?: number;
796
- /**
797
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
798
- */
799
- timeoutInSeconds?: number;
800
- /**
801
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
802
- */
803
- simulate?: boolean;
804
- }) => Promise<AssembledTransaction<null>>;
574
+ freeze: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
805
575
  /**
806
576
  * Construct and simulate a is_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
807
577
  * Returns whether the contract is frozen (upgrades disabled).
808
578
  */
809
- is_frozen: (txnOptions?: {
810
- /**
811
- * The fee to pay for the transaction. Default: BASE_FEE
812
- */
813
- fee?: number;
814
- /**
815
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
816
- */
817
- timeoutInSeconds?: number;
818
- /**
819
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
820
- */
821
- simulate?: boolean;
822
- }) => Promise<AssembledTransaction<boolean>>;
579
+ is_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
823
580
  /**
824
581
  * 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.
825
582
  */
826
- authorizer: (txnOptions?: {
827
- /**
828
- * The fee to pay for the transaction. Default: BASE_FEE
829
- */
830
- fee?: number;
831
- /**
832
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
833
- */
834
- timeoutInSeconds?: number;
835
- /**
836
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
837
- */
838
- simulate?: boolean;
839
- }) => Promise<AssembledTransaction<string>>;
583
+ authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
840
584
  /**
841
585
  * Construct and simulate a owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
842
586
  * Returns the current owner address, or None if no owner is set.
843
587
  */
844
- owner: (txnOptions?: {
845
- /**
846
- * The fee to pay for the transaction. Default: BASE_FEE
847
- */
848
- fee?: number;
849
- /**
850
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
851
- */
852
- timeoutInSeconds?: number;
853
- /**
854
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
855
- */
856
- simulate?: boolean;
857
- }) => Promise<AssembledTransaction<Option<string>>>;
588
+ owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
858
589
  /**
859
590
  * 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.
860
591
  * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
861
592
  */
862
- pending_owner: (txnOptions?: {
863
- /**
864
- * The fee to pay for the transaction. Default: BASE_FEE
865
- */
866
- fee?: number;
867
- /**
868
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
869
- */
870
- timeoutInSeconds?: number;
871
- /**
872
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
873
- */
874
- simulate?: boolean;
875
- }) => Promise<AssembledTransaction<Option<string>>>;
593
+ pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
876
594
  /**
877
595
  * 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.
878
596
  * Transfers ownership immediately to a new address.
@@ -886,20 +604,7 @@ export interface Client {
886
604
  */
887
605
  transfer_ownership: ({ new_owner }: {
888
606
  new_owner: string;
889
- }, txnOptions?: {
890
- /**
891
- * The fee to pay for the transaction. Default: BASE_FEE
892
- */
893
- fee?: number;
894
- /**
895
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
896
- */
897
- timeoutInSeconds?: number;
898
- /**
899
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
900
- */
901
- simulate?: boolean;
902
- }) => Promise<AssembledTransaction<null>>;
607
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
903
608
  /**
904
609
  * 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.
905
610
  * Proposes an ownership transfer to a new address.
@@ -921,20 +626,7 @@ export interface Client {
921
626
  propose_ownership_transfer: ({ new_owner, ttl }: {
922
627
  new_owner: string;
923
628
  ttl: u32;
924
- }, txnOptions?: {
925
- /**
926
- * The fee to pay for the transaction. Default: BASE_FEE
927
- */
928
- fee?: number;
929
- /**
930
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
931
- */
932
- timeoutInSeconds?: number;
933
- /**
934
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
935
- */
936
- simulate?: boolean;
937
- }) => Promise<AssembledTransaction<null>>;
629
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
938
630
  /**
939
631
  * 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.
940
632
  * Accepts a pending 2-step ownership transfer.
@@ -944,20 +636,7 @@ export interface Client {
944
636
  * # Panics
945
637
  * - `NoPendingTransfer` if there is no pending transfer (or it expired)
946
638
  */
947
- accept_ownership: (txnOptions?: {
948
- /**
949
- * The fee to pay for the transaction. Default: BASE_FEE
950
- */
951
- fee?: number;
952
- /**
953
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
954
- */
955
- timeoutInSeconds?: number;
956
- /**
957
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
958
- */
959
- simulate?: boolean;
960
- }) => Promise<AssembledTransaction<null>>;
639
+ accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
961
640
  /**
962
641
  * 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.
963
642
  * Permanently renounces ownership.
@@ -966,20 +645,7 @@ export interface Client {
966
645
  * - `OwnerNotSet` if no owner is currently set
967
646
  * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
968
647
  */
969
- renounce_ownership: (txnOptions?: {
970
- /**
971
- * The fee to pay for the transaction. Default: BASE_FEE
972
- */
973
- fee?: number;
974
- /**
975
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
976
- */
977
- timeoutInSeconds?: number;
978
- /**
979
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
980
- */
981
- simulate?: boolean;
982
- }) => Promise<AssembledTransaction<null>>;
648
+ renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
983
649
  /**
984
650
  * Construct and simulate a extend_instance_ttl transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
985
651
  * Extends the instance TTL.
@@ -992,20 +658,7 @@ export interface Client {
992
658
  extend_instance_ttl: ({ threshold, extend_to }: {
993
659
  threshold: u32;
994
660
  extend_to: u32;
995
- }, txnOptions?: {
996
- /**
997
- * The fee to pay for the transaction. Default: BASE_FEE
998
- */
999
- fee?: number;
1000
- /**
1001
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1002
- */
1003
- timeoutInSeconds?: number;
1004
- /**
1005
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1006
- */
1007
- simulate?: boolean;
1008
- }) => Promise<AssembledTransaction<null>>;
661
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1009
662
  /**
1010
663
  * Construct and simulate a set_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1011
664
  * Sets TTL configs for instance and persistent storage.
@@ -1024,38 +677,12 @@ export interface Client {
1024
677
  set_ttl_configs: ({ instance, persistent }: {
1025
678
  instance: Option<TtlConfig>;
1026
679
  persistent: Option<TtlConfig>;
1027
- }, txnOptions?: {
1028
- /**
1029
- * The fee to pay for the transaction. Default: BASE_FEE
1030
- */
1031
- fee?: number;
1032
- /**
1033
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1034
- */
1035
- timeoutInSeconds?: number;
1036
- /**
1037
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1038
- */
1039
- simulate?: boolean;
1040
- }) => Promise<AssembledTransaction<null>>;
680
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1041
681
  /**
1042
682
  * Construct and simulate a ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1043
683
  * Returns the current TTL configs as (instance_config, persistent_config).
1044
684
  */
1045
- ttl_configs: (txnOptions?: {
1046
- /**
1047
- * The fee to pay for the transaction. Default: BASE_FEE
1048
- */
1049
- fee?: number;
1050
- /**
1051
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1052
- */
1053
- timeoutInSeconds?: number;
1054
- /**
1055
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1056
- */
1057
- simulate?: boolean;
1058
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
685
+ ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1059
686
  /**
1060
687
  * Construct and simulate a freeze_ttl_configs transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1061
688
  * Permanently freezes TTL configs, preventing any future modifications.
@@ -1066,38 +693,12 @@ export interface Client {
1066
693
  * # Panics
1067
694
  * - `TtlConfigAlreadyFrozen` if already frozen
1068
695
  */
1069
- freeze_ttl_configs: (txnOptions?: {
1070
- /**
1071
- * The fee to pay for the transaction. Default: BASE_FEE
1072
- */
1073
- fee?: number;
1074
- /**
1075
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1076
- */
1077
- timeoutInSeconds?: number;
1078
- /**
1079
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1080
- */
1081
- simulate?: boolean;
1082
- }) => Promise<AssembledTransaction<null>>;
696
+ freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1083
697
  /**
1084
698
  * Construct and simulate a is_ttl_configs_frozen transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1085
699
  * Returns whether TTL configs are frozen.
1086
700
  */
1087
- is_ttl_configs_frozen: (txnOptions?: {
1088
- /**
1089
- * The fee to pay for the transaction. Default: BASE_FEE
1090
- */
1091
- fee?: number;
1092
- /**
1093
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1094
- */
1095
- timeoutInSeconds?: number;
1096
- /**
1097
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1098
- */
1099
- simulate?: boolean;
1100
- }) => Promise<AssembledTransaction<boolean>>;
701
+ is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1101
702
  }
1102
703
  export declare class Client extends ContractClient {
1103
704
  readonly options: ContractClientOptions;