@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: 29284 bytes (28.60 KB)
9
+ * Size: 29825 bytes (29.13 KB)
10
10
  */
11
- export declare const WASM_BASE64 = "AGFzbQEAAAABjgEZYAJ+fgF+YAN+fn4BfmABfgF+YAABfmAEfn5+fgF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAN/fn4AYAABf2ABfwBgAABgAn5/AGABfgBgBH9/f38BfmADf39/AGACfn4AYAJ/fwF+YAR+fn9/AX5gAn9/AX9gA35/fwBgAn9+AX9gAX8Bf2AFfn9/f38AAs0BIgFsATEAAAFsAV8AAQFhATAAAgF2AV8AAwF2ATYAAAFiATQAAwFiATgAAgFiAV8AAgFiAWYAAQFiAWUAAAFkAV8AAQFiATAAAgF4ATcAAwF4ATAAAAFsATcABAF4ATEAAAFsATIAAAFpAV8AAgFpATAAAgFiATEABAFiATMAAAFpATgAAgFpATcAAgFpATYAAAFiAWoAAAFiATIABAFtATkAAQFtAWEABAF2AWcAAAF4ATMAAwF4ATgAAwFsATAAAAFsATgAAAF4ATUAAgNpaAUGBwUICAkACgsFBgwDAwsNDAsOBgsBCQ8QCBERDg4BCAsLAQMDEhMUCBUIFgECAwADCAEFBQ4MAAgDEhcGEgwCAgICAwMMAwMDAwMDAAMCEQAMCgkSAgMDAAAIBgMFBQMDDBgQCBAQBQMBABEGIQR/AUGAgMAAC38AQYSDwAALfwBBpoXAAAt/AEGwhcAACwenBCMGbWVtb3J5AgAFcXVvdGUAQQRzZW5kAEUKZ2V0X2NvbmZpZwBPEGlzX3N1cHBvcnRlZF9laWQAUBBtZXNzYWdlX2xpYl90eXBlAFEKc2V0X2NvbmZpZwBSB3ZlcnNpb24AUw1fX2NvbnN0cnVjdG9yAFUPdmFsaWRhdGVfcGFja2V0AFoRc2V0X2ZlZV9yZWNpcGllbnQAYg5zZXRfbmF0aXZlX2ZlZQBjC3NldF96cm9fZmVlAGQWc2V0X3doaXRlbGlzdGVkX2NhbGxlcgBlCGVuZHBvaW50AGYJbG9jYWxfZWlkAGcKbmF0aXZlX2ZlZQBpB3pyb19mZWUAag1mZWVfcmVjaXBpZW50AGsSd2hpdGVsaXN0ZWRfY2FsbGVyAGwKYXV0aG9yaXplcgBtBW93bmVyAG4NcGVuZGluZ19vd25lcgBwEnRyYW5zZmVyX293bmVyc2hpcABxGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAHMQYWNjZXB0X293bmVyc2hpcAB5EnJlbm91bmNlX293bmVyc2hpcAB6E2V4dGVuZF9pbnN0YW5jZV90dGwAew9zZXRfdHRsX2NvbmZpZ3MAfAt0dGxfY29uZmlncwB/EmZyZWV6ZV90dGxfY29uZmlncwCCARVpc190dGxfY29uZmlnc19mcm96ZW4AgwEBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCtBbaE0BAn5CACECAkACQCABEKOAgIAAIgNCAhCkgICAAEUNACADQgIQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMADwsAC8ACAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQAJAAkACQCAAQf8BcQ4GAAECAwQFAAsgAUGOgMCAAEEIELuAgIAAIAEoAgANBiABIAEpAwgQvICAgAAMBQsgAUGWgMCAAEEIELuAgIAAIAEoAgANBSABIAEpAwgQvICAgAAMBAsgAUGegMCAAEEJELuAgIAAIAEoAgANBCABIAEpAwgQvICAgAAMAwsgAUGngMCAAEEGELuAgIAAIAEoAgANAyABIAEpAwgQvICAgAAMAgsgAUGtgMCAAEEMELuAgIAAIAEoAgANAiABIAEpAwgQvICAgAAMAQsgAUG5gMCAAEERELuAgIAAIAEoAgANASABIAEpAwgQvICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPACAAIAEQn4CAgABCAVELjQECAX8BfiOAgICAAEEgayICJICAgIAAAkACQAJAIAEQo4CAgAAiA0ICEKSAgIAADQBCACEDDAELIAIgA0ICEICAgIAAEKaAgIAAIAIoAgBBAUYNASACKQMQIQMgACACKQMYNwMYIAAgAzcDEEIBIQMLIAAgAzcDACAAQgA3AwggAkEgaiSAgICAAA8LAAt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJWAgIAAIQMgARCWgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAsVACAAEKOAgIAAIAFCAhCBgICAABoLHQAgABCjgICAACABIAIQqYCAgABCAhCBgICAABoLQwEBfyOAgICAAEEQayICJICAgIAAIAIgACABELmAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEBIAJBEGokgICAgAAgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCrgICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQrICAgAALQQAhAQJAQQAQrYCAgAAiAkICEKSAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQsMACAAQQEQgIGAgAALGwAgAK1CIIZCBIQgAa1CIIZCBIQQoICAgAAaC8IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAAkACQCAAQf8BcQ4DAAECAAsgAUGOhcCAAEEGELuAgIAAIAEoAgANAyABIAEpAwgQvICAgAAMAgsgAUGUhcCAAEEIELuAgIAAIAEoAgANAiABIAEpAwgQvICAgAAMAQsgAUGchcCAAEEKELuAgIAAIAEoAgANASABIAEpAwgQvICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgsPABCvgICAABCCgICAABoLZgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIAAQsYCAgAAgACkDCCEBIAApAwBBiggQsoCAgAAgAEEQaiSAgICAACABC0oCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQsYCAgAAgACkDCCEBIAApAwBBiggQsoCAgAAgARCCgICAABogAEEQaiSAgICAACABC1ABAX8jgICAgABBEGsiASSAgICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABC3gICAACABQRBqJICAgIAACykAAkAgAKdBAXFFDQAPCyABQfp3aq1CIIZCg4CAgOCAAXwQtYCAgAAAC0IBAX8jgICAgABBEGsiACSAgICAACAAELSAgIAAAkAgACkDAFANAEKDgICAsIEBELWAgIAAAAsgAEEQaiSAgICAAAuTAQIBfwJ+I4CAgIAAQRBrIgEkgICAgAAgAUEEahCrgICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQrICAgAALQgAhAgJAAkBBARC2gICAACIDQgAQpICAgABFDQAgA0IAEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDACABQRBqJICAgIAADwsACwsAIAAQoYCAgAAaC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUGhhMCAAEEMELuAgIAAIAEoAgANAiABIAEpAwgQvICAgAAMAQsgAUGchMCAAEEFELuAgIAAIAEoAgANASABIAEpAwgQvICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtNAQJ+QgAhAQJAAkBBABC2gICAACICQgIQpICAgABFDQAgAkICEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAtoAQF/I4CAgIAAQSBrIgMkgICAgAAgA0EQaiAAIAEQuYCAgAACQCADKAIQQQFHDQAACyADKQMYIQEgAyACNwMIIAMgATcDAEG0gsCAAEECIANBAhC6gICAACEBIANBIGokgICAgAAgAQtbAAJAAkAgAUKAgICAgICAwAB8Qv//////////AFYNACABIAGFIAIgAUI/h4WEQgBSDQAgAUIIhkILhCEBDAELIAIgARCXgICAACEBCyAAQgA3AwAgACABNwMICy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQmoCAgAALUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQhoGAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBEMiAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAACw4AQQIgACABEKiAgIAACw4AQQMgACABEKiAgIAACwwAQQQgABCngICAAAsMAEEFIAAQp4CAgAALpgICAn8BfiOAgICAAEHQAGsiAySAgICAACADIAAQwoCAgAACQCADKAIAQQFGDQAgAUL/AYNCyABSDQBBASACp0H/AXEiBEEAR0EBdCAEQQFGGyIEQQJGDQAgAxCrgICAAAJAIAMoAgBBAUcNACADKAIEIAMoAggQrICAgAALIAMQw4CAgAAgAykDCCECIAMpAwAhBUIAIQBCACEBAkAgBEEBcUUNACADEMSAgIAAIAMpAwghASADKQMAIQALIAMgBSACELmAgIAAIAMoAgANACADKQMIIQIgAyAAIAEQuYCAgAAgAygCAEEBRg0AIAMgAykDCDcDSCADIAI3A0BBrIHAgABBAiADQcAAakECELqAgIAAIQAgA0HQAGokgICAgAAgAA8LAAvsAgICfwZ+I4CAgIAAQdAAayICJICAgIAAQQAhAwJAA0AgA0E4Rg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFB9IHAgABBByACQQhqQQcQhYGAgAAgAikDCCIBQv8Bg0IEUg0AIAJBwABqIAIpAxAQ24CAgAAgAigCQA0AIAIpAxgiBUL/AYNCyABSDQAgAikDSCEGAkACQCACKQMgIgenQf8BcSIDQcAARg0AIANBBkcNAiAHQgiIIQcMAQsgBxCSgICAACEHCyACQcAAaiACKQMoENuAgIAAIAIoAkANACACKQMwIghC/wGDQs0AUg0AIAIpAzgiCUL/AYNCBFINACACKQNIIQQgACABQiCIpzYCNCAAIAU3AyggACAGNwMgIAAgBDcDGCAAIAg3AxAgACAHNwMIIAAgCUIgiD4CMEIAIQQLIAAgBDcDACACQdAAaiSAgICAAAt9AgF/AX4jgICAgABBIGsiASSAgICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAUECEKWAgIAAAkAgASgCAEEBcQ0AEOiAgIAAAAsgASkDGCECIAAgASkDEDcDACAAIAI3AwggAUEgaiSAgICAAAt9AgF/AX4jgICAgABBIGsiASSAgICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAUEDEKWAgIAAAkAgASgCAEEBcQ0AEOiAgIAAAAsgASkDGCECIAAgASkDEDcDACAAIAI3AwggAUEgaiSAgICAAAvWBwQFfwR+An8BfiOAgICAAEHAAGsiAySAgICAACADIAAQwoCAgAACQCADKAIAQQFGDQAgAUL/AYNCyABSDQBBASACp0H/AXEiBEEAR0EBdCAEQQFGGyIFQQJGDQAgAygCNCEGIAMoAjAhByADKQMoIQggAykDICEJIAMpAxghCiADKQMQIQsgAykDCCEBIAMQq4CAgAACQCADKAIAQQFHDQAgAygCBCADKAIIEKyAgIAACyADQSBqIQwQxoCAgAAQgoCAgAAaEMeAgIAAIQAgAxDDgICAACADIAA3AxAgAyEEQgIhAEEBIQ0CQANAIA1BAXFFDQFBACENIAQpAwAgBCkDCCAEQRBqKQMAELiAgIAAIQAgDCEEDAALCyADIAA3AzggA0E4akEBEMiAgIAAIQ4Qg4CAgAAhAgJAIAVBAXFFDQAQx4CAgAAhACADEMSAgIAAIAIgAykDACADKQMIIAAQuICAgAAQhICAgAAhAgsQhYCAgAAhACADQQE6AAAgACAAEIaAgIAAQoCAgIBwg0IEhCADQQEQyYCAgAAhACADIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwAgAyAAIAAQhoCAgABCgICAgHCDQgSEIANBCBDJgICAADcDOCADQThqIAcQyoCAgAAhDSALEIeAgIAAIQAgAyAAQoSAgIDAACAAEIaAgIAAQoCAgIBwg0IEhBCIgICAACIAQgRChICAgMAAEIiAgIAAEMuAgIAAIAMoAgBBAUYNACADKQMIIQEgA0EANgIAIAEgA0EEEMyAgIAAAkAgAygCACIEQf///wdxDQACQAJAAkAgBEEYdg4CAAEDCyADIABChICAgMAAQoSAgICAARCIgICAABDLgICAACADKAIAQQFGDQMgAykDCCEBIANBADYCACABIANBBBDMgICAACADKAIADQIgAyAAQoSAgICAAUKEgICAgAUQiICAgAAQzYCAgAAgAygCAEEBRw0BDAMLIAMgAEKEgICAwABChICAgMAEEIiAgIAAEM2AgIAAIAMoAgBBAUYNAgsgAyANIAMpAwgQzoCAgAAgBhDKgICAACAKEM6AgIAAKQMANwMAIAMgCRDOgICAACkDACAIEImAgIAAIQAgAyACNwMQIAMgDjcDCCADIAA3AwBB7ILAgABBAyADQQMQuoCAgAAhACADQcAAaiSAgICAACAADwtCg4CAgKD+ABC1gICAAAALAAtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCsgICAAAsgAEEAEKKAgIAAAkAgACgCAA0AEOiAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQtrAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCsgICAAAsgAEEEEKKAgIAAAkAgACgCAA0AEOiAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQsaACAArUIghkIEhCABrUIghkIEhBCcgICAAAseACAAIAEgAq1CIIZCBIQgA61CIIZCBIQQmYCAgAALdwIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiABQRh0IAFBgP4DcUEIdHIgAUEIdkGA/gNxIAFBGHZycjYCDCAAKQMAIQMgACADIAMQhoCAgABCgICAgHCDQgSEIAJBDGpBBBDJgICAADcDACACQRBqJICAgIAAIAALNgEBfkIBIQICQCABEIaAgIAAQoCAgIBwg0KAgICAwABSDQAgACABNwMIQgAhAgsgACACNwMACx8AIABCBCABrUIghkIEhCACrUIghkIEhBCTgICAABoLNgEBfkIBIQICQCABEIaAgIAAQoCAgIBwg0KAgICAgARSDQAgACABNwMIQgAhAgsgACACNwMAC8IBAQR/I4CAgIAAQcAAayICJICAgIAAIAJBIGpBGGoiA0IANwMAIAJBIGpBEGoiBEIANwMAIAJBIGpBCGoiBUIANwMAIAJCADcDICABIAJBIGpBIBDMgICAACACQRhqIAMpAwA3AwAgAkEQaiAEKQMANwMAIAJBCGogBSkDADcDACACIAIpAyA3AwAgACkDACEBIAAgASABEIaAgIAAQoCAgIBwg0IEhCACQSAQyYCAgAA3AwAgAkHAAGokgICAgAAgAAtvAQF/I4CAgIAAQRBrIgMkgICAgAACQCAAQv8Bg0IEUg0AIAFC/wGDQs0AUg0AIAJC/wGDQgRSDQAgA0EEahCrgICAAAJAIAMoAgRBAUcNACADKAIIIAMoAgwQrICAgAALQoOAgIAQELWAgIAACwALWgEBfyOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCBFINACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgAUEQaiSAgICAAEIBDwsAC4UBAgF/AX4jgICAgABBEGsiACSAgICAACAAEKuAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBCsgICAAAsgAEGAgMCAAEEOELuAgIAAAkACQCAAKAIADQAgACAAKQMIELyAgIAAIAAoAgBBAUcNAQsACyAAKQMIIQEgAEEQaiSAgICAACABC2UBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AIAJBBGoQq4CAgAACQCACKAIEQQFHDQAgAigCCCACKAIMEKyAgIAAC0KDgICAEBC1gICAAAsAC54BAgF/AX4jgICAgABBMGsiACSAgICAACAAQQhqEKuAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCsgICAAAsgAEEgakIAENSAgIAAAkAgACgCIEEBRw0AAAsgACkDKCEBIABCBDcDGCAAIAE3AxAgAEKEgICAIDcDCEHcgcCAAEEDIABBCGpBAxC6gICAACEBIABBMGokgICAgAAgAQs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQkYCAgAAhAQsgAEIANwMAIAAgATcDCAvpAQEBfgJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0LNAFINAEGAyx5BgNIfENaAgIAAQYDLHkGA0h8Q14CAgAAgAUKO0q4VEIOAgIAAEIqAgIAAIgNC/wGDQgRSDQFBACABEKeAgIAAQQEQo4CAgAAgA0KEgICAcINCAhCBgICAABpC4wBCABC+gICAAELkAEIAEL2AgIAAIAIQv4CAgAAgABDAgICAAEEAELaAgIAAQgIQpICAgAANAiAAENiAgIAAQgIPCwALENmAgIAAAAtCg4CAgJCBARC1gICAAAALDgBBASAAIAEQiYGAgAALDgBBAiAAIAEQiYGAgAALDgBBACAAQgIQ9oCAgAALCQAQhIGAgAAAC/YGAgJ/BH4jgICAgABB0ABrIgIkgICAgAACQCAAQv8Bg0LIAFINACACQTBqIAEQ24CAgAAgAigCMEEBRg0AIAIpAzghASACIAA3AwggAkEwahCrgICAAAJAIAIoAjBBAUcNACACKAI0IAIoAjgQrICAgAALENyAgIAAEIKAgIAAGgJAIAAQhoCAgABCgICAgHCDQoCAgICQClINACACQQA2AhQgAiACQQhqNgIQAkAgAkEQakEBEN2AgIAAIgAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAJBADoAMAJAIAAQhoCAgABCgICAgHCDQoCAgIAQUg0AIAAgAkEwakEBEMyAgIAAAkAgAi0AMEEBRw0AAkAgAkEQakEIEN2AgIAAIgAQhoCAgABCgICAgHCDQoCAgICAAVINACACQgA3AzAgABCGgICAAEKAgICAcINCgICAgIABUg0CIAAgAkEwakEIEMyAgIAAIAIpAzAhACACQRBqEN6AgIAAIQMgAkEQahDfgICAACEEIAJBEGoQ3oCAgAAaIAJBEGoQ34CAgAAhBUGEg8CAAEEIEOCAgIAAIAUQiYCAgAAQi4CAgAAiBUL/AYNCzQBSDQUQxoCAgAAhBhCMgICAACEHIAJBEGogAEI4hiAAQoD+A4NCKIaEIABCgID8B4NCGIYgAEKAgID4D4NCCIaEhCAAQgiIQoCAgPgPgyAAQhiIQoCA/AeDhCAAQiiIQoD+A4MgAEI4iISEhBDUgICAACACKAIQQQFGDQUgAikDGCEAIAIgBDcDOCACIAA3AzAgAiADrUIghkIEhDcDQEGAgcCAAEEDIAJBMGpBAxC6gICAACEAIAIgATcDKCACIAU3AyAgAiAANwMYIAIgBzcDEEEAIQMCQANAAkAgA0EgRw0AQQAhAwJAA0AgA0EgRg0BIAJBMGogA2ogAkEQaiADaikDADcDACADQQhqIQMMAAsLIAZCjvyr963dAyACQTBqQQQQyICAgAAQioCAgABC/wGDQgJSDQIgAkHQAGokgICAgABCAg8LIAJBMGogA2pCAjcDACADQQhqIQMMAAsLENmAgIAAAAtCg4CAgICCARC1gICAAAALQoOAgIDQiQEQtYCAgAAACxDhgICAAAALQoOAgICAggEQtYCAgAAAC0KDgICAwIkBELWAgIAAAAsACyMAAkAgAUL/AYNCyABRDQAgAEIBNwMADwsgACABEM2AgIAAC2sCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACyAAQQUQooCAgAACQCAAKAIADQAQ6ICAgAAACyAAKQMIIQEgAEEQaiSAgICAACABC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCGgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCIgICAACEEIAAgATYCBCAEDwsQ2YCAgAAAC0KDgICAgP0AELWAgIAAAAu5AQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBBBDdgICAACICEIaAgIAAQoCAgIBwg0KAgICAwABSDQAgAUEANgIMIAIQhoCAgABCgICAgHCDQoCAgIDAAFINASACIAFBDGpBBBDMgICAACABKAIMIQAgAUEQaiSAgICAACAAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZycg8LQoOAgICAggEQtYCAgAAACxDhgICAAAALgQIDAX8BfgJ/I4CAgIAAQcAAayIBJICAgIAAAkACQCAAQSAQ3YCAgAAiAhCGgICAAEKAgICAcINCgICAgIAEUg0AIAFBIGpBGGoiAEIANwMAIAFBIGpBEGoiA0IANwMAIAFBIGpBCGoiBEIANwMAIAFCADcDICACEIaAgIAAQoCAgIBwg0KAgICAgARSDQEgAiABQSBqQSAQzICAgAAgAUEYaiAAKQMANwMAIAFBEGogAykDADcDACABQQhqIAQpAwA3AwAgASABKQMgNwMAIAFBIBDggICAACECIAFBwABqJICAgIAAIAIPC0KDgICAgIIBELWAgIAAAAsQ4YCAgAAACxoAIACtQiCGQgSEIAGtQiCGQgSEEJSAgIAACwkAENmAgIAAAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABC/gICAACABQRBqJICAgIAAQgIPCwALgAECAX8BfiOAgICAAEEgayIBJICAgIAAIAEgABCmgICAAAJAIAEoAgBBAUYNACABKQMYIQAgASkDECECEK6AgIAAIAEQq4CAgAACQCABKAIAQQFHDQAgASgCBCABKAIIEKyAgIAACyACIAAQvYCAgAAgAUEgaiSAgICAAEICDwsAC4ABAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQpoCAgAACQCABKAIAQQFGDQAgASkDGCEAIAEpAxAhAhCugICAACABEKuAgIAAAkAgASgCAEEBRw0AIAEoAgQgASgCCBCsgICAAAsgAiAAEL6AgIAAIAFBIGokgICAgABCAg8LAAtpAQF/I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINABCugICAACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsgABDAgICAACABQRBqJICAgIAAQgIPCwALCAAQxoCAgAALiwECAX8BfiOAgICAAEEQayIAJICAgIAAIABBBGoQq4CAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKyAgIAACwJAAkBBARCjgICAACIBQgIQpICAgABFDQAgAUICEICAgIAAIgFC/wGDQgRRDQEACxDogICAAAALIABBEGokgICAgAAgAUKEgICAcIMLCQAQ2YCAgAAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQw4CAgAAgACkDACAAKQMIEKmAgIAAIQEgAEEQaiSAgICAACABCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQxICAgAAgACkDACAAKQMIEKmAgIAAIQEgAEEQaiSAgICAACABCwgAEMeAgIAACwgAENyAgIAACwgAEK+AgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQsYCAgAAgACkDACAAKQMIEO+AgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABC0gICAACAAKQMAIAApAwgQ74CAgAAhASAAQRBqJICAgIAAIAELfQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQCAAQv8Bg0LNAFINACABQQRqEKuAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBCsgICAAAsQsICAgAAhAhCzgICAACAAENiAgIAAIAIgABDygICAACABQRBqJICAgIAAQgIPCwALYQIBfwF+I4CAgIAAQRBrIgIkgICAgABBlYPAgABBFRD3gICAABD4gICAACEDIAIgADcDCCACIAE3AwAgA0G8g8CAAEECIAJBAhC6gICAABCPgICAABogAkEQaiSAgICAAAvdAgIBfwJ+I4CAgIAAQSBrIgIkgICAgAACQAJAAkAgAEL/AYNCzQBSDQAgAUL/AYNCBFINACACQQhqEKuAgIAAAkAgAigCCEEBRw0AIAIoAgwgAigCEBCsgICAAAsQsICAgAAhAwJAAkAgAUL/////D1YNACACQQhqELSAgIAAIAIpAxAhASACKQMIQYgIELKAgIAAIAEgABCNgICAAFBFDQMQ9ICAgAAMAQsQ9YCAgAAgAUIgiKdJDQNBASAAQgAQ9oCAgABBARC2gICAAEIAIAFChICAgHCDIgEgARCOgICAABpBzIPAgABBFhD3gICAABD4gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARB6IPAgABBAyACQQhqQQMQuoCAgAAQj4CAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDggAEQtYCAgAAAC0KDgICA8IABELWAgIAAAAsTAEEBELaAgIAAQgAQkICAgAAaCzMBAn4QnYCAgAAhAAJAEJ6AgIAAQiCIIgEgAEIgiCIAVA0AIAGnIACnaw8LENmAgIAAAAsVACAAELaAgIAAIAEgAhCBgICAABoLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQhoGAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARDIgICAACEAIAFBEGokgICAgAAgAAunAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAgABCrgICAAAJAIAAoAgBBAUcNACAAKAIEIAAoAggQrICAgAALIAAQtICAgAAgACkDCCEBIAApAwBBiAgQsoCAgAAgARCCgICAABogABC3gICAAAJAIAAoAgANABDogICAAAALIAApAwghAhD0gICAACABENiAgIAAIAIgARDygICAACAAQRBqJICAgIAAQgILoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQq4CAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKyAgIAACxCwgICAACEBELOAgIAAQQAQtoCAgABCAhCQgICAABpBgITAgABBExD3gICAABD4gICAACECIAAgATcDACACQZSEwIAAQQEgAEEBELqAgIAAEI+AgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQrICAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ/YCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARD9gICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKuAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBCsgICAAAsQroCAgAACQAJAAkAQqoCAgAANABD1gICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABC1gICAAAALQoOAgIDA/wAQtYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBDWgICAAAwBC0EBEK2AgIAAQgIQkICAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBDXgICAAAwBC0ECEK2AgIAAQgIQkICAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRByITAgABBDxD3gICAABD4gICAACEAIAJBKGoQ/oCAgAAhASACIAJBNGoQ/oCAgAA3A0ggAiABNwNAIABB7ITAgABBAiACQcAAakECELqAgIAAEI+AgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARCHgYCAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABCBgYCAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKuAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBCsgICAAAsgAEEIahCrgICAACAAQRRqIgFBAhCAgYCA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aCBjYXV0aW9uIC0gaWYgeW91IHRyYW5zZmVyIHRvIGEgd3JvbmcgYWRkcmVzcywgb3duZXJzaGlwIGlzIGxvc3QgZm9yZXZlci4KQ29uc2lkZXIgdXNpbmcgYHByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyYCBpbnN0ZWFkLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcwAAAAASdHJhbnNmZXJfb3duZXJzaGlwAAAAAAABAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAJcUHJvcG9zZXMgYW4gb3duZXJzaGlwIHRyYW5zZmVyIHRvIGEgbmV3IGFkZHJlc3MuCgpUaGUgbmV3IG93bmVyIG11c3QgY2FsbCBgYWNjZXB0X293bmVyc2hpcCgpYCB3aXRoaW4gYHR0bGAgbGVkZ2Vycwp0byBjb21wbGV0ZSB0aGUgdHJhbnNmZXIuIFRoZSBwZW5kaW5nIHRyYW5zZmVyIHdpbGwgYXV0b21hdGljYWxseSBleHBpcmUgYWZ0ZXIuCgojIEFyZ3VtZW50cwotIGBuZXdfb3duZXJgIC0gVGhlIHByb3Bvc2VkIG5ldyBvd25lcgotIGB0dGxgIC0gTnVtYmVyIG9mIGxlZGdlcnMgdGhlIG5ldyBvd25lciBoYXMgdG8gYWNjZXB0LgpVc2UgYDBgIHRvIGNhbmNlbCBhIHBlbmRpbmcgdHJhbnNmZXIgKG5ld19vd25lciBtdXN0IG1hdGNoIHBlbmRpbmcpLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIHdoZW4gY2FuY2VsbGluZyBhbmQgbm8gcGVuZGluZyB0cmFuc2ZlciBleGlzdHMKLSBgSW52YWxpZFR0bGAgaWYgdHRsIGV4Y2VlZHMgbWF4IFRUTAotIGBJbnZhbGlkUGVuZGluZ093bmVyYCB3aGVuIGNhbmNlbGxpbmcgd2l0aCB3cm9uZyBuZXdfb3duZXIgYWRkcmVzcwAAABpwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcgAAAAAAAgAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAAAAALlBY2NlcHRzIGEgcGVuZGluZyAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyLgoKTXVzdCBiZSBjYWxsZWQgYnkgdGhlIHBlbmRpbmcgb3duZXIgYmVmb3JlIHRoZSBUVEwgZXhwaXJlcy4KCiMgUGFuaWNzCi0gYE5vUGVuZGluZ1RyYW5zZmVyYCBpZiB0aGVyZSBpcyBubyBwZW5kaW5nIHRyYW5zZmVyIChvciBpdCBleHBpcmVkKQAAAAAAABBhY2NlcHRfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAApFBlcm1hbmVudGx5IHJlbm91bmNlcyBvd25lcnNoaXAuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzIChjYW5jZWwgaXQgZmlyc3QpAAAAEnJlbm91bmNlX293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAAAApUV4dGVuZHMgdGhlIGluc3RhbmNlIFRUTC4KCiMgQXJndW1lbnRzCgoqIGB0aHJlc2hvbGRgIC0gVGhlIHRocmVzaG9sZCB0byBleHRlbmQgdGhlIFRUTCAoaWYgY3VycmVudCBUVEwgaXMgYmVsb3cgdGhpcywgZXh0ZW5kKS4KKiBgZXh0ZW5kX3RvYCAtIFRoZSBUVEwgdG8gZXh0ZW5kIHRvLgAAAAAAABNleHRlbmRfaW5zdGFuY2VfdHRsAAAAAAIAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAACWV4dGVuZF90bwAAAAAAAAQAAAAAAAAAAAAAAY9TZXRzIFRUTCBjb25maWdzIGZvciBpbnN0YW5jZSBhbmQgcGVyc2lzdGVudCBzdG9yYWdlLgoKLSBgTm9uZWAgdmFsdWVzIHJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBjb25maWcgKGRpc2FibGVzIGF1dG8tZXh0ZW5zaW9uIGZvciB0aGF0IHR5cGUpCi0gVmFsaWRhdGVzIHRoYXQgYHRocmVzaG9sZCA8PSBleHRlbmRfdG8gPD0gTUFYX1RUTGAKCiMgQXJndW1lbnRzCi0gYGluc3RhbmNlYCAtIFRUTCBjb25maWcgZm9yIGluc3RhbmNlIHN0b3JhZ2UKLSBgcGVyc2lzdGVudGAgLSBUVEwgY29uZmlnIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UKCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0Zyb3plbmAgaWYgY29uZmlncyBhcmUgZnJvemVuCi0gYEludmFsaWRUdGxDb25maWdgIGlmIHZhbGlkYXRpb24gZmFpbHMAAAAAD3NldF90dGxfY29uZmlncwAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAABIUmV0dXJucyB0aGUgY3VycmVudCBUVEwgY29uZmlncyBhcyAoaW5zdGFuY2VfY29uZmlnLCBwZXJzaXN0ZW50X2NvbmZpZykuAAAAC3R0bF9jb25maWdzAAAAAAAAAAABAAAD7QAAAAIAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAA4VBlcm1hbmVudGx5IGZyZWV6ZXMgVFRMIGNvbmZpZ3MsIHByZXZlbnRpbmcgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zLgoKVGhpcyBpcyBpcnJldmVyc2libGUgYW5kIHByb3ZpZGVzIGltbXV0YWJpbGl0eSBndWFyYW50ZWVzIHRvIHVzZXJzLgpFbWl0cyBgVHRsQ29uZmlnc0Zyb3plbmAgZXZlbnQuCgojIFBhbmljcwotIGBUdGxDb25maWdBbHJlYWR5RnJvemVuYCBpZiBhbHJlYWR5IGZyb3plbgAAAAAAABJmcmVlemVfdHRsX2NvbmZpZ3MAAAAAAAAAAAAAAAAAAAAAACdSZXR1cm5zIHdoZXRoZXIgVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAFWlzX3R0bF9jb25maWdzX2Zyb3plbgAAAAAA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AAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAAAAAAA5Pbmx5UmVjZWl2ZUxpYgAAAAAADwAAAAAAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAAAAAAAtPbmx5U2VuZExpYgAAAAARAAAAAAAAABRQYXRoTm90SW5pdGlhbGl6YWJsZQAAABIAAAAAAAAAEVBhdGhOb3RWZXJpZmlhYmxlAAAAAAAAEwAAAAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAAAAAAAlTYW1lVmFsdWUAAAAAAAAVAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAAWAAAAAAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAAAAAAAAOWnJvVW5hdmFpbGFibGUAAAAAABkAAAABAAAALVBhcmFtZXRlcnMgZm9yIHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAAAAPTWVzc2FnaW5nUGFyYW1zAAAAAAUAAAArRGVzdGluYXRpb24gZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAHZHN0X2VpZAAAAAAEAAAAHFRoZSBtZXNzYWdlIHBheWxvYWQgdG8gc2VuZC4AAAAHbWVzc2FnZQAAAAAOAAAAIUVuY29kZWQgZXhlY3V0b3IgYW5kIERWTiBvcHRpb25zLgAAAAAAAAdvcHRpb25zAAAAAA4AAAA5V2hldGhlciB0byBwYXkgZmVlcyBpbiBaUk8gdG9rZW4gaW5zdGVhZCBvZiBuYXRpdmUgdG9rZW4uAAAAAAAACnBheV9pbl96cm8AAAAAAAEAAAA1UmVjZWl2ZXIgYWRkcmVzcyBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAAEAAABNU291cmNlIG1lc3NhZ2UgaW5mb3JtYXRpb24gaWRlbnRpZnlpbmcgd2hlcmUgYSBjcm9zcy1jaGFpbiBtZXNzYWdlIGNhbWUgZnJvbS4AAAAAAAAAAAAABk9yaWdpbgAAAAAAAwAAABdOb25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAAFbm9uY2UAAAAAAAAGAAAALlNlbmRlciBhZGRyZXNzIG9uIHRoZSBzb3VyY2UgY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAZzZW5kZXIAAAAAA+4AAAAgAAAAJlNvdXJjZSBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAsAAAABAAAAQlJlY2VpcHQgcmV0dXJuZWQgYWZ0ZXIgc3VjY2Vzc2Z1bGx5IHNlbmRpbmcgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgAAAAAAAAAAABBNZXNzYWdpbmdSZWNlaXB0AAAAAwAAAClUaGUgZmVlcyBjaGFyZ2VkIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlLgAAAAAAAANmZWUAAAAH0AAAAAxNZXNzYWdpbmdGZWUAAAArR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBtZXNzYWdlLgAAAAAEZ3VpZAAAA+4AAAAgAAAAJFRoZSBvdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAACAAAAOFR5cGUgb2YgbWVzc2FnZSBsaWJyYXJ5IGluZGljYXRpbmcgc3VwcG9ydGVkIG9wZXJhdGlvbnMuAAAAAAAAAA5NZXNzYWdlTGliVHlwZQAAAAAAAwAAAAAAAAAfU3VwcG9ydHMgb25seSBzZW5kaW5nIG1lc3NhZ2VzLgAAAAAEU2VuZAAAAAAAAAAhU3VwcG9ydHMgb25seSByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAAB1JlY2VpdmUAAAAAAAAAAC1TdXBwb3J0cyBib3RoIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAOU2VuZEFuZFJlY2VpdmUAAAAAAAEAAAC3VmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYSBtZXNzYWdlIGxpYnJhcnkuCgpOb3RlOiBgbWlub3JgIGFuZCBgZW5kcG9pbnRfdmVyc2lvbmAgdXNlIGB1MzJgIGluc3RlYWQgb2YgYHU4YCBiZWNhdXNlIFN0ZWxsYXIgZG9lcyBub3QKc3VwcG9ydCBgdThgIHR5cGVzIGluIGNvbnRyYWN0IGludGVyZmFjZSBmdW5jdGlvbnMuAAAAAAAAAAARTWVzc2FnZUxpYlZlcnNpb24AAAAAAAADAAAAM0VuZHBvaW50IHZlcnNpb24gKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAQZW5kcG9pbnRfdmVyc2lvbgAAAAQAAAAVTWFqb3IgdmVyc2lvbiBudW1iZXIuAAAAAAAABW1ham9yAAAAAAAABgAAADdNaW5vciB2ZXJzaW9uIG51bWJlciAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAAAVtaW5vcgAAAAAAAAQAAAABAAAANlRpbWVvdXQgY29uZmlndXJhdGlvbiBmb3IgcmVjZWl2ZSBsaWJyYXJ5IHRyYW5zaXRpb25zLgAAAAAAAAAAAAdUaW1lb3V0AAAAAAIAAAAoVW5peCB0aW1lc3RhbXAgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAZleHBpcnkAAAAAAAYAAAApVGhlIG5ldyBsaWJyYXJ5IGFkZHJlc3MgdG8gdHJhbnNpdGlvbiB0by4AAAAAAAADbGliAAAAABMAAAABAAAANVBhcmFtZXRlcnMgZm9yIHNldHRpbmcgbWVzc2FnZSBsaWJyYXJ5IGNvbmZpZ3VyYXRpb24uAAAAAAAAAAAAAA5TZXRDb25maWdQYXJhbQAAAAAAAwAAAB9YRFItZW5jb2RlZCBjb25maWd1cmF0aW9uIGRhdGEuAAAAAAZjb25maWcAAAAAAA4AAAAwVGhlIHR5cGUgb2YgY29uZmlndXJhdGlvbiAoZS5nLiwgZXhlY3V0b3IsIFVMTikuAAAAC2NvbmZpZ190eXBlAAAAAAQAAAAnVGhlIGVuZHBvaW50IElEIHRoaXMgY29uZmlnIGFwcGxpZXMgdG8uAAAAAANlaWQAAAAABAAAAAEAAAAxUmVzb2x2ZWQgbGlicmFyeSBpbmZvcm1hdGlvbiB3aXRoIGRlZmF1bHQgc3RhdHVzLgAAAAAAAAAAAAAPUmVzb2x2ZWRMaWJyYXJ5AAAAAAIAAABEV2hldGhlciB0aGlzIGlzIHRoZSBkZWZhdWx0IGxpYnJhcnkgKHRydWUpIG9yIE9BcHAtc3BlY2lmaWMgKGZhbHNlKS4AAAAKaXNfZGVmYXVsdAAAAAAAAQAAAB1UaGUgcmVzb2x2ZWQgbGlicmFyeSBhZGRyZXNzLgAAAAAAAANsaWIAAAAAEwAAAAEAAABIT3V0Ym91bmQgcGFja2V0IGNvbnRhaW5pbmcgYWxsIGluZm9ybWF0aW9uIGZvciBjcm9zcy1jaGFpbiB0cmFuc21pc3Npb24uAAAAAAAAAA5PdXRib3VuZFBhY2tldAAAAAAABwAAABhEZXN0aW5hdGlvbiBlbmRwb2ludCBJRC4AAAAHZHN0X2VpZAAAAAAEAAAALEdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG1lc3NhZ2UuAAAABGd1aWQAAAPuAAAAIAAAABRUaGUgbWVzc2FnZSBwYXlsb2FkLgAAAAdtZXNzYWdlAAAAAA4AAAAgT3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAMVJlY2VpdmVyIGFkZHJlc3Mgb24gZGVzdGluYXRpb24gY2hhaW4gKDMyIGJ5dGVzKS4AAAAAAAAIcmVjZWl2ZXIAAAPuAAAAIAAAAB9TZW5kZXIgYWRkcmVzcyBvbiBzb3VyY2UgY2hhaW4uAAAAAAZzZW5kZXIAAAAAABMAAAATU291cmNlIGVuZHBvaW50IElELgAAAAAHc3JjX2VpZAAAAAAEAAAAAQAAACtBIGZlZSByZWNpcGllbnQgd2l0aCB0aGUgYW1vdW50IHRvIGJlIHBhaWQuAAAAAAAAAAAMRmVlUmVjaXBpZW50AAAAAgAAABVBbW91bnQgb2YgZmVlIHRvIHBheS4AAAAAAAAGYW1vdW50AAAAAAALAAAAH1RoZSBhZGRyZXNzIHRvIHNlbmQgdGhlIGZlZSB0by4AAAAAAnRvAAAAAAATAAAAAQAAADxSZXN1bHQgb2Ygc2VuZCBvcGVyYXRpb24gY29udGFpbmluZyBmZWVzIGFuZCBlbmNvZGVkIHBhY2tldC4AAAAAAAAADUZlZXNBbmRQYWNrZXQAAAAAAAADAAAAKlRoZSBlbmNvZGVkIHBhY2tldCByZWFkeSBmb3IgdHJhbnNtaXNzaW9uLgAAAAAADmVuY29kZWRfcGFja2V0AAAAAAAOAAAAP0xpc3Qgb2YgbmF0aXZlIHRva2VuIGZlZSByZWNpcGllbnRzIChleGVjdXRvciwgRFZOcywgdHJlYXN1cnkpLgAAAAAVbmF0aXZlX2ZlZV9yZWNpcGllbnRzAAAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAALExpc3Qgb2YgWlJPIHRva2VuIGZlZSByZWNpcGllbnRzICh0cmVhc3VyeSkuAAAAEnpyb19mZWVfcmVjaXBpZW50cwAAAAAD6gAAB9AAAAAMRmVlUmVjaXBpZW50AAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQAAAAQAAAAdV29ya2VyT3B0aW9uc0Vycm9yOiAxMTEwLTExMTkAAAAAAAAAAAAAEldvcmtlck9wdGlvbnNFcnJvcgAAAAAACQAAAAAAAAASSW52YWxpZEJ5dGVzTGVuZ3RoAAAAAARWAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUxAAAAAAAEVwAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMgAAAAAABFgAAAAAAAAAEUludmFsaWRPcHRpb25UeXBlAAAAAAAEWQAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAABFoAAAAAAAAAD0ludmFsaWRXb3JrZXJJZAAAAARbAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTFHYXNPdmVyZmxvdwAAAAAABFwAAAAAAAAAIExlZ2FjeU9wdGlvbnNUeXBlMkFtb3VudE92ZXJmbG93AAAEXQAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUyR2FzT3ZlcmZsb3cAAAAAAAReAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAFMOY29udHJhY3RtZXRhdjAAAAAAAAAABmNsaXZlcgAAAAAALzI1LjAuMCNhNjQ5MjVlOTM5MWMzZDNiM2VmOGU1M2RjNjBjMjNkYjllNmE4MmU0AA==";
11
+ export declare const WASM_BASE64 = "AGFzbQEAAAABjgEZYAJ+fgF+YAN+fn4BfmABfgF+YAABfmAEfn5+fgF+YAJ/fwBgAX8BfmACfn4Bf2ACf34AYAN/fn4AYAABf2AAAGABfwBgAn5/AGABfgBgBH9/f38BfmADf39/AGACfn4AYAJ/fwF+YAR+fn9/AX5gAn9/AX9gA35/fwBgAn9+AX9gAX8Bf2AFfn9/f38AAs0BIgFsATEAAAFsAV8AAQFhATAAAgF2AV8AAwF2ATYAAAFiATQAAwFiATgAAgFiAV8AAgFiAWYAAQFiAWUAAAFkAV8AAQFiATAAAgF4ATcAAwF4ATEAAAFsATcABAFsATIAAAFpAV8AAgFpATAAAgFiATEABAFiATMAAAFpATgAAgFpATcAAgFpATYAAAFiAWoAAAFiATIABAFtATkAAQFtAWEABAF2AWcAAAF4ATAAAAF4ATMAAwF4ATgAAwFsATAAAAFsATgAAAF4ATUAAgNragUGBwgFCAkACgsGCwMDDA0HDgsMBgwBCQ8QCBERDg4BCAwMAQMDEhMUCBUIFgECAwADCAEFBQ4LAAgDEhcGEgsCAgICAwMLAwMDAwMDAAMCEQALEgIKCQMDAAUACAYDDAUFAwMLGBAIEBAFAwEAEQYhBH8BQYCAwAALfwBBhIPAAAt/AEHuhcAAC38AQfCFwAALB6gEIwZtZW1vcnkCAAVxdW90ZQBBBHNlbmQARQpnZXRfY29uZmlnAE8QaXNfc3VwcG9ydGVkX2VpZABQEG1lc3NhZ2VfbGliX3R5cGUAUQpzZXRfY29uZmlnAFIHdmVyc2lvbgBTDV9fY29uc3RydWN0b3IAVQ92YWxpZGF0ZV9wYWNrZXQAWhFzZXRfZmVlX3JlY2lwaWVudABiDnNldF9uYXRpdmVfZmVlAGMLc2V0X3pyb19mZWUAZBZzZXRfd2hpdGVsaXN0ZWRfY2FsbGVyAGUIZW5kcG9pbnQAZglsb2NhbF9laWQAZwpuYXRpdmVfZmVlAGkHenJvX2ZlZQBqDWZlZV9yZWNpcGllbnQAaxJ3aGl0ZWxpc3RlZF9jYWxsZXIAbAphdXRob3JpemVyAG0Fb3duZXIAbg1wZW5kaW5nX293bmVyAHASdHJhbnNmZXJfb3duZXJzaGlwAHEacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAcxBhY2NlcHRfb3duZXJzaGlwAHkScmVub3VuY2Vfb3duZXJzaGlwAHoTZXh0ZW5kX2luc3RhbmNlX3R0bAB7D3NldF90dGxfY29uZmlncwB9C3R0bF9jb25maWdzAIABEmZyZWV6ZV90dGxfY29uZmlncwCEARVpc190dGxfY29uZmlnc19mcm96ZW4AhQEBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCrlTao0BAgF/AX4jgICAgABBIGsiAiSAgICAAAJAAkACQCABEKOAgIAAIgNCAhCkgICAAA0AQgAhAwwBCyACIANCAhCAgICAABClgICAACACKAIAQQFGDQEgAikDECEDIAAgAikDGDcDGCAAIAM3AxBCASEDCyAAIAM3AwAgAEIANwMIIAJBIGokgICAgAAPCwALwAICAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAAkACQAJAIABB/wFxDgYAAQIDBAUACyABQY6AwIAAQQgQu4CAgAAgASgCAA0GIAEgASkDCBC8gICAAAwFCyABQZaAwIAAQQgQu4CAgAAgASgCAA0FIAEgASkDCBC8gICAAAwECyABQZ6AwIAAQQkQu4CAgAAgASgCAA0EIAEgASkDCBC8gICAAAwDCyABQaeAwIAAQQYQu4CAgAAgASgCAA0DIAEgASkDCBC8gICAAAwCCyABQa2AwIAAQQwQu4CAgAAgASgCAA0CIAEgASkDCBC8gICAAAwBCyABQbmAwIAAQREQu4CAgAAgASgCAA0BIAEgASkDCBC8gICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AIAAgARCfgICAAEIBUQt9AgF/AX4CQAJAAkACQCABp0H/AXEiAkHFAEYNACACQQtHDQIgACABQj+HNwMYIAAgAUIIhzcDEAwBCyABEJSAgIAAIQMgARCVgICAACEBIAAgAzcDGCAAIAE3AxALQgAhAQwBCyAAQoOQgICAATcDCEIBIQELIAAgATcDAAtNAQJ+QgAhAgJAAkAgARCjgICAACIDQgIQpICAgABFDQAgA0ICEICAgIAAIgJC/wGDQs0AUg0BIAAgAjcDCEIBIQILIAAgAjcDAA8LAAsVACAAEKOAgIAAIAFCAhCBgICAABoLHQAgABCjgICAACABIAIQqYCAgABCAhCBgICAABoLQwEBfyOAgICAAEEQayICJICAgIAAIAIgACABELmAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEBIAJBEGokgICAgAAgAQtNAgF/AX4Qq4CAgABBACEAAkBBABCsgICAACIBQgIQpICAgABFDQBBASEAAkACQCABQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAAsgAAtIAQF/I4CAgIAAQRBrIgAkgICAgAAgAEEEahCBgYCAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQ/ICAgAALIABBEGokgICAgAALwgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkACQAJAIABB/wFxDgMAAQIACyABQdaFwIAAQQYQu4CAgAAgASgCAA0DIAEgASkDCBC8gICAAAwCCyABQdyFwIAAQQgQu4CAgAAgASgCAA0CIAEgASkDCBC8gICAAAwBCyABQeSFwIAAQQoQu4CAgAAgASgCAA0BIAEgASkDCBC8gICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACCw8AEK6AgIAAEIKAgIAAGgtHAgF/AX4jgICAgABBEGsiACSAgICAABCrgICAACAAELCAgIAAIAApAwghASAAKQMAQYsIELGAgIAAIABBEGokgICAgAAgAQtsAgF/AX4jgICAgABBEGsiACSAgICAACAAELCAgIAAIAApAwghASAAKQMAQYsIELGAgIAAAkAgARCugICAABCygICAAA0AQoOAgIDggAEQs4CAgAAACyABEIKAgIAAGiAAQRBqJICAgIAAIAELEAAQq4CAgAAgABC3gICAAAspAAJAIACnQQFxRQ0ADwsgAUH6d2qtQiCGQoOAgIDggAF8ELOAgIAAAAsNACAAIAEQnICAgABQCwsAIAAQoYCAgAAaC0IBAX8jgICAgABBEGsiACSAgICAACAAELWAgIAAAkAgACkDAFANAEKDgICAwIEBELOAgIAAAAsgAEEQaiSAgICAAAtTAQJ+EKuAgIAAQgAhAQJAAkBBARC2gICAACICQgAQpICAgABFDQAgAkIAEICAgIAAIgFC/wGDQs0AUg0BIAAgATcDCEIBIQELIAAgATcDAA8LAAuSAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQCAAQQFxRQ0AIAFB6YTAgABBDBC7gICAACABKAIADQIgASABKQMIELyAgIAADAELIAFB5ITAgABBBRC7gICAACABKAIADQEgASABKQMIELyAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILTQECfkIAIQECQAJAQQAQtoCAgAAiAkICEKSAgIAARQ0AIAJCAhCAgICAACIBQv8Bg0LNAFINASAAIAE3AwhCASEBCyAAIAE3AwAPCwALaAEBfyOAgICAAEEgayIDJICAgIAAIANBEGogACABELmAgIAAAkAgAygCEEEBRw0AAAsgAykDGCEBIAMgAjcDCCADIAE3AwBBtILAgABBAiADQQIQuoCAgAAhASADQSBqJICAgIAAIAELWwACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSACIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyACIAEQloCAgAAhAQsgAEIANwMAIAAgATcDCAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJmAgIAAC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACEIiBgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAtEAQF/I4CAgIAAQRBrIgIkgICAgAAgAiABNwMIIAJBCGpBARDIgICAACEBIABCADcDACAAIAE3AwggAkEQaiSAgICAAAsOAEECIAAgARCogICAAAsOAEEDIAAgARCogICAAAsMAEEEIAAQp4CAgAALDABBBSAAEKeAgIAAC4cCAgJ/AX4jgICAgABB0ABrIgMkgICAgAAgAyAAEMKAgIAAAkAgAygCAEEBRg0AIAFC/wGDQsgAUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBEECRg0AEKuAgIAAIAMQw4CAgAAgAykDCCECIAMpAwAhBUIAIQBCACEBAkAgBEEBcUUNACADEMSAgIAAIAMpAwghASADKQMAIQALIAMgBSACELmAgIAAIAMoAgANACADKQMIIQIgAyAAIAEQuYCAgAAgAygCAEEBRg0AIAMgAykDCDcDSCADIAI3A0BBrIHAgABBAiADQcAAakECELqAgIAAIQAgA0HQAGokgICAgAAgAA8LAAvsAgICfwZ+I4CAgIAAQdAAayICJICAgIAAQQAhAwJAA0AgA0E4Rg0BIAJBCGogA2pCAjcDACADQQhqIQMMAAsLQgEhBAJAIAFC/wGDQswAUg0AIAFB9IHAgABBByACQQhqQQcQh4GAgAAgAikDCCIBQv8Bg0IEUg0AIAJBwABqIAIpAxAQ24CAgAAgAigCQA0AIAIpAxgiBUL/AYNCyABSDQAgAikDSCEGAkACQCACKQMgIgenQf8BcSIDQcAARg0AIANBBkcNAiAHQgiIIQcMAQsgBxCRgICAACEHCyACQcAAaiACKQMoENuAgIAAIAIoAkANACACKQMwIghC/wGDQs0AUg0AIAIpAzgiCUL/AYNCBFINACACKQNIIQQgACABQiCIpzYCNCAAIAU3AyggACAGNwMgIAAgBDcDGCAAIAg3AxAgACAHNwMIIAAgCUIgiD4CMEIAIQQLIAAgBDcDACACQdAAaiSAgICAAAteAgF/AX4jgICAgABBIGsiASSAgICAABCrgICAACABQQIQooCAgAACQCABKAIAQQFxDQAQ6ICAgAAACyABKQMYIQIgACABKQMQNwMAIAAgAjcDCCABQSBqJICAgIAAC14CAX8BfiOAgICAAEEgayIBJICAgIAAEKuAgIAAIAFBAxCigICAAAJAIAEoAgBBAXENABDogICAAAALIAEpAxghAiAAIAEpAxA3AwAgACACNwMIIAFBIGokgICAgAALtwcEBX8EfgJ/AX4jgICAgABBwABrIgMkgICAgAAgAyAAEMKAgIAAAkAgAygCAEEBRg0AIAFC/wGDQsgAUg0AQQEgAqdB/wFxIgRBAEdBAXQgBEEBRhsiBUECRg0AIAMoAjQhBiADKAIwIQcgAykDKCEIIAMpAyAhCSADKQMYIQogAykDECELIAMpAwghARCrgICAABDGgICAABCCgICAABoQx4CAgAAhACADEMOAgIAAIAMgADcDECADQSBqIQwgAyEEQgIhAEEBIQ0CQANAIA1BAXFFDQFBACENIAQpAwAgBCkDCCAEQRBqKQMAELiAgIAAIQAgDCEEDAALCyADIAA3AzggA0E4akEBEMiAgIAAIQ4Qg4CAgAAhAgJAIAVBAXFFDQAQx4CAgAAhACADEMSAgIAAIAIgAykDACADKQMIIAAQuICAgAAQhICAgAAhAgsQhYCAgAAhACADQQE6AAAgACAAEIaAgIAAQoCAgIBwg0IEhCADQQEQyYCAgAAhACADIAFCOIYgAUKA/gODQiiGhCABQoCA/AeDQhiGIAFCgICA+A+DQgiGhIQgAUIIiEKAgID4D4MgAUIYiEKAgPwHg4QgAUIoiEKA/gODIAFCOIiEhIQ3AwAgAyAAIAAQhoCAgABCgICAgHCDQgSEIANBCBDJgICAADcDOCADQThqIAcQyoCAgAAhDSALEIeAgIAAIQAgAyAAQoSAgIDAACAAEIaAgIAAQoCAgIBwg0IEhBCIgICAACIAQgRChICAgMAAEIiAgIAAEMuAgIAAIAMoAgBBAUYNACADKQMIIQEgA0EANgIAIAEgA0EEEMyAgIAAAkAgAygCACIEQf///wdxDQACQAJAAkAgBEEYdg4CAAEDCyADIABChICAgMAAQoSAgICAARCIgICAABDLgICAACADKAIAQQFGDQMgAykDCCEBIANBADYCACABIANBBBDMgICAACADKAIADQIgAyAAQoSAgICAAUKEgICAgAUQiICAgAAQzYCAgAAgAygCAEEBRw0BDAMLIAMgAEKEgICAwABChICAgMAEEIiAgIAAEM2AgIAAIAMoAgBBAUYNAgsgAyANIAMpAwgQzoCAgAAgBhDKgICAACAKEM6AgIAAKQMANwMAIAMgCRDOgICAACkDACAIEImAgIAAIQAgAyACNwMQIAMgDjcDCCADIAA3AwBB7ILAgABBAyADQQMQuoCAgAAhACADQcAAaiSAgICAACAADwtCg4CAgKD+ABCzgICAAAALAAtMAgF/AX4jgICAgABBEGsiACSAgICAABCrgICAACAAQQAQpoCAgAACQCAAKAIADQAQ6ICAgAAACyAAKQMIIQEgAEEQaiSAgICAACABC0wCAX8BfiOAgICAAEEQayIAJICAgIAAEKuAgIAAIABBBBCmgICAAAJAIAAoAgANABDogICAAAALIAApAwghASAAQRBqJICAgIAAIAELGgAgAK1CIIZCBIQgAa1CIIZCBIQQm4CAgAALHgAgACABIAKtQiCGQgSEIAOtQiCGQgSEEJiAgIAAC3cCAX8BfiOAgICAAEEQayICJICAgIAAIAIgAUEYdCABQYD+A3FBCHRyIAFBCHZBgP4DcSABQRh2cnI2AgwgACkDACEDIAAgAyADEIaAgIAAQoCAgIBwg0IEhCACQQxqQQQQyYCAgAA3AwAgAkEQaiSAgICAACAACzYBAX5CASECAkAgARCGgICAAEKAgICAcINCgICAgMAAUg0AIAAgATcDCEIAIQILIAAgAjcDAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQkoCAgAAaCzYBAX5CASECAkAgARCGgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAvCAQEEfyOAgICAAEHAAGsiAiSAgICAACACQSBqQRhqIgNCADcDACACQSBqQRBqIgRCADcDACACQSBqQQhqIgVCADcDACACQgA3AyAgASACQSBqQSAQzICAgAAgAkEYaiADKQMANwMAIAJBEGogBCkDADcDACACQQhqIAUpAwA3AwAgAiACKQMgNwMAIAApAwAhASAAIAEgARCGgICAAEKAgICAcINCBIQgAkEgEMmAgIAANwMAIAJBwABqJICAgIAAIAALOgACQCAAQv8Bg0IEUg0AIAFC/wGDQs0AUg0AIAJC/wGDQgRSDQAQq4CAgABCg4CAgBAQs4CAgAALAAsZAAJAIABC/wGDQgRRDQAACxCrgICAAEIBC2YCAX8BfiOAgICAAEEQayIAJICAgIAAEKuAgIAAIABBgIDAgABBDhC7gICAAAJAAkAgACgCAA0AIAAgACkDCBC8gICAACAAKAIAQQFHDQELAAsgACkDCCEBIABBEGokgICAgAAgAQswAAJAIABC/wGDQs0AUg0AIAFC/wGDQssAUg0AEKuAgIAAQoOAgIAQELOAgIAACwALfAIBfwF+I4CAgIAAQTBrIgAkgICAgAAQq4CAgAAgAEEgakIAENSAgIAAAkAgACgCIEEBRw0AAAsgACkDKCEBIABCBDcDGCAAIAE3AxAgAEKEgICAIDcDCEHcgcCAAEEDIABBCGpBAxC6gICAACEBIABBMGokgICAgAAgAQs7AAJAAkAgAUL//////////wBWDQAgAUIIhkIGhCEBDAELIAEQkICAgAAhAQsgAEIANwMAIAAgATcDCAvpAQEBfgJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0LNAFINACACQv8Bg0LNAFINAEGAyx5BgNIfENaAgIAAQYDLHkGA0h8Q14CAgAAgAUKO0q4VEIOAgIAAEIqAgIAAIgNC/wGDQgRSDQFBACABEKeAgIAAQQEQo4CAgAAgA0KEgICAcINCAhCBgICAABpC4wBCABC+gICAAELkAEIAEL2AgIAAIAIQv4CAgAAgABDAgICAAEEAELaAgIAAQgIQpICAgAANAiAAENiAgIAAQgIPCwALENmAgIAAAAtCg4CAgKCBARCzgICAAAALDgBBASAAIAEQi4GAgAALDgBBAiAAIAEQi4GAgAALDgBBACAAQgIQ+ICAgAALCQAQhoGAgAAAC9QGAgJ/BH4jgICAgABB0ABrIgIkgICAgAACQCAAQv8Bg0LIAFINACACQTBqIAEQ24CAgAAgAigCMEEBRg0AIAIpAzghASACIAA3AwgQq4CAgAAQ3ICAgAAQgoCAgAAaAkAgABCGgICAAEKAgICAcINCgICAgJAKUg0AIAJBADYCFCACIAJBCGo2AhACQCACQRBqQQEQ3YCAgAAiABCGgICAAEKAgICAcINCgICAgBBSDQAgAkEAOgAwAkAgABCGgICAAEKAgICAcINCgICAgBBSDQAgACACQTBqQQEQzICAgAACQCACLQAwQQFHDQACQCACQRBqQQgQ3YCAgAAiABCGgICAAEKAgICAcINCgICAgIABUg0AIAJCADcDMCAAEIaAgIAAQoCAgIBwg0KAgICAgAFSDQIgACACQTBqQQgQzICAgAAgAikDMCEAIAJBEGoQ3oCAgAAhAyACQRBqEN+AgIAAIQQgAkEQahDegICAABogAkEQahDfgICAACEFQYSDwIAAQQgQ4ICAgAAgBRCJgICAABCLgICAACIFQv8Bg0LNAFINBRDGgICAACEGEIyAgIAAIQcgAkEQaiAAQjiGIABCgP4Dg0IohoQgAEKAgPwHg0IYhiAAQoCAgPgPg0IIhoSEIABCCIhCgICA+A+DIABCGIhCgID8B4OEIABCKIhCgP4DgyAAQjiIhISEENSAgIAAIAIoAhBBAUYNBSACKQMYIQAgAiAENwM4IAIgADcDMCACIAOtQiCGQgSENwNAQYCBwIAAQQMgAkEwakEDELqAgIAAIQAgAiABNwMoIAIgBTcDICACIAA3AxggAiAHNwMQQQAhAwJAA0ACQCADQSBHDQBBACEDAkADQCADQSBGDQEgAkEwaiADaiACQRBqIANqKQMANwMAIANBCGohAwwACwsgBkKO/Kv3rd0DIAJBMGpBBBDIgICAABCKgICAAEL/AYNCAlINAiACQdAAaiSAgICAAEICDwsgAkEwaiADakICNwMAIANBCGohAwwACwsQ2YCAgAAAC0KDgICAgIIBELOAgIAAAAtCg4CAgNCJARCzgICAAAALEOGAgIAAAAtCg4CAgICCARCzgICAAAALQoOAgIDAiQEQs4CAgAAACwALIwACQCABQv8Bg0LIAFENACAAQgE3AwAPCyAAIAEQzYCAgAALTAIBfwF+I4CAgIAAQRBrIgAkgICAgAAQq4CAgAAgAEEFEKaAgIAAAkAgACgCAA0AEOiAgIAAAAsgACkDCCEBIABBEGokgICAgAAgAQt1AgJ/AX4CQAJAIAAoAgQiAiABaiIBIAJJDQAgASAAKAIAIgMpAwAQhoCAgABCIIinSw0BIAMpAwAgAq1CIIZCBIQgAa1CIIZCBIQQiICAgAAhBCAAIAE2AgQgBA8LENmAgIAAAAtCg4CAgID9ABCzgICAAAALuQECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQCAAQQQQ3YCAgAAiAhCGgICAAEKAgICAcINCgICAgMAAUg0AIAFBADYCDCACEIaAgIAAQoCAgIBwg0KAgICAwABSDQEgAiABQQxqQQQQzICAgAAgASgCDCEAIAFBEGokgICAgAAgAEEYdCAAQYD+A3FBCHRyIABBCHZBgP4DcSAAQRh2cnIPC0KDgICAgIIBELOAgIAAAAsQ4YCAgAAAC4ECAwF/AX4CfyOAgICAAEHAAGsiASSAgICAAAJAAkAgAEEgEN2AgIAAIgIQhoCAgABCgICAgHCDQoCAgICABFINACABQSBqQRhqIgBCADcDACABQSBqQRBqIgNCADcDACABQSBqQQhqIgRCADcDACABQgA3AyAgAhCGgICAAEKAgICAcINCgICAgIAEUg0BIAIgAUEgakEgEMyAgIAAIAFBGGogACkDADcDACABQRBqIAMpAwA3AwAgAUEIaiAEKQMANwMAIAEgASkDIDcDACABQSAQ4ICAgAAhAiABQcAAaiSAgICAACACDwtCg4CAgICCARCzgICAAAALEOGAgIAAAAsaACAArUIghkIEhCABrUIghkIEhBCTgICAAAsJABDZgICAAAALKAACQCAAQv8Bg0LNAFENAAALEK2AgIAAEKuAgIAAIAAQv4CAgABCAgtgAgF/AX4jgICAgABBIGsiASSAgICAACABIAAQpYCAgAACQCABKAIAQQFHDQAACyABKQMYIQAgASkDECECEK2AgIAAEKuAgIAAIAIgABC9gICAACABQSBqJICAgIAAQgILYAIBfwF+I4CAgIAAQSBrIgEkgICAgAAgASAAEKWAgIAAAkAgASgCAEEBRw0AAAsgASkDGCEAIAEpAxAhAhCtgICAABCrgICAACACIAAQvoCAgAAgAUEgaiSAgICAAEICCygAAkAgAEL/AYNCzQBRDQAACxCtgICAABCrgICAACAAEMCAgIAAQgILCAAQxoCAgAALSwEBfhCrgICAAAJAAkBBARCjgICAACIAQgIQpICAgABFDQAgAEICEICAgIAAIgBC/wGDQgRRDQEACxDogICAAAALIABChICAgHCDCwkAENmAgIAAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMOAgIAAIAApAwAgACkDCBCpgICAACEBIABBEGokgICAgAAgAQs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEMSAgIAAIAApAwAgACkDCBCpgICAACEBIABBEGokgICAgAAgAQsIABDHgICAAAsIABDcgICAAAsIABCugICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAELCAgIAAIAApAwAgACkDCBDvgICAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQtYCAgAAgACkDACAAKQMIEO+AgIAAIQEgAEEQaiSAgICAACABCzwBAX4CQCAAQv8Bg0LNAFENAAALEKuAgIAAEK+AgIAAIQEQtICAgAAgABDYgICAACABIAAQ8oCAgABCAgthAgF/AX4jgICAgABBEGsiAiSAgICAAEGVg8CAAEEVEPWAgIAAEPaAgIAAIQMgAiAANwMIIAIgATcDACADQbyDwIAAQQIgAkECELqAgIAAEI2AgIAAGiACQRBqJICAgIAAC/wCAgF/An4jgICAgABBIGsiAiSAgICAAAJAAkACQCAAQv8Bg0LNAFINACABQv8Bg0IEUg0AEKuAgIAAEK+AgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahC1gICAACACKQMQIQEgAikDCEGJCBCxgICAACABIAAQsoCAgABFDQMQ9ICAgABBgITAgABBHBD1gICAABD2gICAACEAIAIgAzcDECACIAE3AwggAEG4hMCAAEECIAJBCGpBAhC6gICAABCNgICAABoMAQsQ94CAgAAgAUIgiKdJDQNBASAAQgAQ+ICAgABBARC2gICAAEIAIAFChICAgHCDIgEgARCOgICAABpBzIPAgABBFhD1gICAABD2gICAACEEIAIgATcDGCACIAM3AxAgAiAANwMIIARB6IPAgABBAyACQQhqQQMQuoCAgAAQjYCAgAAaCyACQSBqJICAgIAAQgIPCwALQoOAgIDwgAEQs4CAgAAAC0KDgICAgIEBELOAgIAAAAsTAEEBELaAgIAAQgAQj4CAgAAaC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABEIiBgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwtjAwF/AX4BfyOAgICAAEEQayIBJICAgIAAIAEgADcDAEICIQJBASEDAkADQCADRQ0BIANBf2ohAyAAIQIMAAsLIAEgAjcDCCABQQhqQQEQyICAgAAhACABQRBqJICAgIAAIAALMwECfhCdgICAACEAAkAQnoCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQ2YCAgAAACxUAIAAQtoCAgAAgASACEIGAgIAAGguIAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQq4CAgAAgABC1gICAACAAKQMIIQEgACkDAEGJCBCxgICAACABEIKAgIAAGiAAELeAgIAAAkAgACgCAA0AEOiAgIAAAAsgACkDCCECEPSAgIAAIAEQ2ICAgAAgAiABEPKAgIAAIABBEGokgICAgABCAguEAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQq4CAgAAQr4CAgAAhARC0gICAAEEAELaAgIAAQgIQj4CAgAAaQciEwIAAQRMQ9YCAgAAQ9oCAgAAhAiAAIAE3AwggAkHchMCAAEEBIABBCGpBARC6gICAABCNgICAABogAEEQaiSAgICAAEICCzEAAkAgAEL/AYNCBFINACABQv8Bg0IEUg0AIABCIIinIAFCIIinEPyAgIAAQgIPCwALGwAgAK1CIIZCBIQgAa1CIIZCBIQQoICAgAAaC7wEAQV/I4CAgIAAQdAAayICJICAgIAAIAJBKGogABD+gICAAAJAIAIoAihBAkYNACACQQhqQQhqIAJBKGpBCGoiAygCADYCACACIAIpAig3AwggAkEoaiABEP6AgIAAIAIoAihBAkYNACACQRhqQQhqIAMoAgA2AgAgAiACKQIoNwMYEK2AgIAAEKuAgIAAAkACQAJAEKqAgIAADQAQ94CAgAAiA0GA+4ADIANBgPuAA0kbIQQgAiACQRhqNgIsIAIgAkEIajYCKEEAIQMDQCADQQhGDQMCQCACQShqIANqKAIAIgUoAgBBAXFFDQAgBSgCCCIGIARLDQMgBSgCBCAGSw0DCyADQQRqIQMMAAsLQoOAgIDQ/wAQs4CAgAAAC0KDgICAwP8AELOAgIAAAAsCQAJAIAIoAghBAUcNACACKAIMIAIoAhAQ1oCAgAAMAQtBARCsgICAAEICEI+AgIAAGgsCQAJAIAIoAhhBAUcNACACKAIcIAIoAiAQ14CAgAAMAQtBAhCsgICAAEICEI+AgIAAGgsgAkEoakEIaiACQQhqQQhqKAIANgIAIAJBPGogAkEYakEIaigCADYCACACIAIpAwg3AyggAiACKQMYNwI0QZCFwIAAQQ8Q9YCAgAAQ9oCAgAAhACACQShqEP+AgIAAIQEgAiACQTRqEP+AgIAANwNIIAIgATcDQCAAQbSFwIAAQQIgAkHAAGpBAhC6gICAABCNgICAABogAkHQAGokgICAgABCAg8LAAtoAQF/I4CAgIAAQRBrIgIkgICAgAACQAJAIAFCAlENACACQQRqIAEQiYGAgAACQCACKAIERQ0AIABBAjYCAAwCCyAAIAIpAgg3AgQgAEEBNgIADAELIABBADYCAAsgAkEQaiSAgICAAAtDAgF/AX4jgICAgABBEGsiASSAgICAACABIAAQg4GAgAACQCABKAIAQQFHDQAACyABKQMIIQIgAUEQaiSAgICAACACC6IBAgJ/AX4jgICAgABBwABrIgAkgICAgAAQq4CAgAAgAEEIahCBgYCAACAAQRRqIgFBAhCCgYCAACAAQTBqIABBCGoQg4GAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEIOBgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhDIgICAACECIABBwABqJICAgIAAIAILDAAgAEEBEIKBgIAAC3cCAn8BfiOAgICAAEEQayICJICAgIAAQQAhAwJAAkAgARCsgICAACIEQgIQpICAgABFDQAgAkEEaiAEQgIQgICAgAAQiYGAgABBASEDIAIoAgRBAUYNASAAIAIpAgg3AgQLIAAgAzYCACACQRBqJICAgIAADwsACzAAAkAgASgCAEEBRw0AIAAgASgCBCABKAIIEIqBgIAADwsgAEIANwMAIABCAjcDCAuIAQEBfyOAgICAAEEQayIAJICAgIAAEK2AgIAAEKuAgIAAAkAQqoCAgABFDQBCg4CAgOD/ABCzgICAAAALQQAQrICAgABCAUICEIGAgIAAGkHEhcCAAEESEPWAgIAAEPaAgIAAQQRBACAAQQhqQQAQuoCAgAAQjYCAgAAaIABBEGokgICAgABCAgsJABCqgICAAK0LAwAACzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCagICAABoL2wECAX4EfwJAAkAgAkEJSw0AQgAhAyACIQQgASEFA0ACQCAEDQAgA0IIhkIOhCEDDAMLQQEhBgJAIAUtAAAiB0HfAEYNAAJAIAdBUGpB/wFxQQpJDQACQCAHQb9/akH/AXFBGkkNACAHQZ9/akH/AXFBGUsNBCAHQUVqIQYMAgsgB0FLaiEGDAELIAdBUmohBgsgA0IGhiAGrUL/AYOEIQMgBEF/aiEEIAVBAWohBQwACwsgAa1CIIZCBIQgAq1CIIZCBIQQl4CAgAAhAwsgAEIANwMAIAAgAzcDCAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUGAhcCAAEECIAJBAhCHgYCAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQYCFwIAAQQIgA0ECELqAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQrICAgAAhBCADIAEgAhCKgYCAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEIGAgIAAGiADQRBqJICAgIAACwv4BQEAQYCAwAAL7gVTZW5kQW5kUmVjZWl2ZUVuZHBvaW50TG9jYWxFaWROYXRpdmVGZWVacm9GZWVGZWVSZWNpcGllbnRXaGl0ZWxpc3RlZENhbGxlcmVuY29kZWRfcGFja2V0bWVzc2FnZWRzdF9laWRyZWNlaXZlcm5vbmNlc2VuZGVyc3JjX2VpZG4AEAAFAAAAcwAQAAYAAAB5ABAABwAAAG5hdGl2ZV9mZWV6cm9fZmVlAAAAmAAQAAoAAACiABAABwAAAGd1aWRlbmRwb2ludF92ZXJzaW9ubWFqb3JtaW5vcgAAwAAQABAAAADQABAABQAAANUAEAAFAAAAXwAQAAcAAAC8ABAABAAAAFgAEAAHAAAAbgAQAAUAAABmABAACAAAAHMAEAAGAAAAeQAQAAcAAABhbW91bnR0bywBEAAGAAAAMgEQAAIAAABuYXRpdmVfZmVlX3JlY2lwaWVudHN6cm9fZmVlX3JlY2lwaWVudHMASgAQAA4AAABEARAAFQAAAFkBEAASAAAAAAAAEgAAAAF0aHJlc2hvbGRvd25lcnNoaXBfdHJhbnNmZXJyZWRuZXdfb3duZXJvbGRfb3duZXKqARAACQAAALMBEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAKoBEAAJAAAAswEQAAkAAADiARAAAwAAAG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWRjYW5jZWxsZWRfcGVuZGluZ19vd25lcm93bmVyHAIQABcAAAAzAhAABQAAAG93bmVyc2hpcF9yZW5vdW5jZWQAswEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAAdQIQAAkAAACMARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAAJ8CEAAIAAAApwIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnQAt4UBDmNvbnRyYWN0c3BlY3YwAAAAAgAAAAAAAAAAAAAAClNtbFN0b3JhZ2UAAAAAAAYAAAAAAAAAAAAAAAhFbmRwb2ludAAAAAAAAAAAAAAACExvY2Fs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ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAEAAAAAAAAAAAAAAAVU2ltcGxlTWVzc2FnZUxpYkVycm9yAAAAAAAAAgAAAAAAAAAOTm90SW1wbGVt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bGVzcyB0aGFuIHJlcXVpcmVkAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAALFN1cHBsaWVkIFpSTyB0b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAACtUaW1lb3V0IGV4cGlyeSBpcyBpbnZhbGlkIChhbHJlYWR5IGV4cGlyZWQpAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACAAAACBGZWUgYW1vdW50IGlzIGludmFsaWQgKG5lZ2F0aXZlKQAAABBJbnZhbGlkRmVlQW1vdW50AAAACQAAACtDb21wb3NlIGluZGV4IGV4Y2VlZHMgbWF4aW11bSBhbGxvd2VkIHZhbHVlAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAALE5vbmNlIGlzIGludmFsaWQgZm9yIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uAAAADEludmFsaWROb25jZQAAAAsAAAAwUGF5bG9hZCBoYXNoIGlzIGludmFsaWQgKGVtcHR5IGhhc2ggbm90IGFsbG93ZWQpAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAEFSZWNlaXZlIGxpYnJhcnkgaXMgbm90IHZhbGlkIGZvciB0aGUgcmVjZWl2ZXIgYW5kIHNvdXJjZSBlbmRwb2ludAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAMU9wZXJhdGlvbiByZXF1aXJlcyBhIG5vbi1kZWZhdWx0IChjdXN0b20pIGxpYnJhcnkAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAJ0xpYnJhcnkgbXVzdCBzdXBwb3J0IHJlY2VpdmluZyBtZXNzYWdlcwAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAsTGlicmFyeSBtdXN0IGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW5kcG9pbnQAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAJUxpYnJhcnkgbXVzdCBzdXBwb3J0IHNlbmRpbmcgbWVzc2FnZXMAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAADlNZXNzYWdpbmcgcGF0aCBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAL01lc3NhZ2UgY2Fubm90IGJlIHZlcmlmaWVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAArUGF5bG9hZCBoYXNoIGRvZXMgbm90IG1hdGNoIHRoZSBzdG9yZWQgaGFzaAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAJ05ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyBleGlzdGluZyB2YWx1ZQAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAC9DYWxsZXIgaXMgbm90IGF1dGhvcml6ZWQgKG5vdCBPQXBwIG9yIGRlbGVnYXRlKQAAAAAMVW5hdXRob3JpemVkAAAAFgAAACtFbmRwb2ludCBJRCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5AAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAADlaUk8gZmVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gd2hlbiBwYXlfaW5fenJvIGlzIHRydWUAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAABxaUk8gdG9rZW4gYWRkcmVzcyBpcyBub3Qgc2V0AAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAM1VuaXggdGltZXN0YW1wIGluIHNlY29uZHMgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAAGZXhwaXJ5AAAAAAAGAAAAQ1RoZSBvbGQgbGlicmFyeSBhZGRyZXNzIHRoYXQgcmVtYWlucyB2YWxpZCBkdXJpbmcgdGhlIGdyYWNlIHBlcmlvZC4AAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAQAAAAdUGFja2V0Q29kZWNWMUVycm9yOiAxMTAwLTExMDkAAAAAAAAAAAAAElBhY2tldENvZGVjVjFFcnJvcgAAAAAAAgAAAAAAAAATSW52YWxpZFBhY2tldEhlYWRlcgAAAARMAAAAAAAAABRJbnZhbGlkUGFja2V0VmVyc2lvbgAABE0AAAAEAAAAHVdvcmtlck9wdGlvbnNFcnJvcjogMTExMC0xMTE5AAAAAAAAAAAAABJXb3JrZXJPcHRpb25zRXJyb3IAAAAAAAkAAAAAAAAAEkludmFsaWRCeXRlc0xlbmd0aAAAAAAEVgAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMQAAAAAABFcAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTIAAAAAAARYAAAAAAAAABFJbnZhbGlkT3B0aW9uVHlwZQAAAAAABFkAAAAAAAAADkludmFsaWRPcHRpb25zAAAAAARaAAAAAAAAAA9JbnZhbGlkV29ya2VySWQAAAAEWwAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUxR2FzT3ZlcmZsb3cAAAAAAARcAAAAAAAAACBMZWdhY3lPcHRpb25zVHlwZTJBbW91bnRPdmVyZmxvdwAABF0AAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMkdhc092ZXJmbG93AAAAAAAEXgAAAAQAAAAcQnVmZmVyUmVhZGVyRXJyb3I6IDEwMDAtMTAwOQAAAAAAAAARQnVmZmVyUmVhZGVyRXJyb3IAAAAAAAACAAAAAAAAAA1JbnZhbGlkTGVuZ3RoAAAAAAAD6AAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD6QAAAAQAAAAcQnVmZmVyV3JpdGVyRXJyb3I6IDEwMTAtMTAxOQAAAAAAAAARQnVmZmVyV3JpdGVyRXJyb3IAAAAAAAABAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPyAAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4AAAAEAAAAF093bmFibGVFcnJvcjogMTAzMC0xMDM5AAAAAAAAAAAMT3duYWJsZUVycm9yAAAABwAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAcAAAAAAAAACkludmFsaWRUdGwAAAAABAgAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECQAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAoAAAAAAAAAC093bmVyTm90U2V0AAAABAsAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAEDAAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpU2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlTaWdFcnJvcgAAAAAAAAkAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAARSW52YWxpZEF1dGhvcml6ZXIAAAAAAAQlAAAAAAAAAA1JbnZhbGlkU2lnbmVyAAAAAAAEJgAAAAAAAAAOU2lnbmF0dXJlRXJyb3IAAAAABCcAAAAAAAAAE1NpZ25lckFscmVhZHlFeGlzdHMAAAAEKAAAAAAAAAAOU2lnbmVyTm90Rm91bmQAAAAABCkAAAAAAAAAHVRvdGFsU2lnbmVyc0xlc3NUaGFuVGhyZXNob2xkAAAAAAAEKgAAAAAAAAAPVW5zb3J0ZWRTaWduZXJzAAAABCsAAAAAAAAADVplcm9UaHJlc2hvbGQAAAAAAAQsAAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAACAAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAAAAAAFAAAAV0V2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgdHJhbnNmZXJyZWQgKGJvdGggc2luZ2xlLXN0ZXAgYW5kIHR3by1zdGVwIGNvbXBsZXRpb24pLgAAAAAAAAAAFE93bmVyc2hpcFRyYW5zZmVycmVkAAAAAQAAABVvd25lcnNoaXBfdHJhbnNmZXJyZWQAAAAAAAACAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAACAAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAACAAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBvd25lcnNoaXAgaXMgcmVub3VuY2VkLgAAAAAAAAAAABJPd25lcnNoaXBSZW5vdW5jZWQAAAAAAAEAAAATb3duZXJzaGlwX3Jlbm91bmNlZAAAAAABAAAAAAAAAAlvbGRfb3duZXIAAAAAAAATAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAOT3duYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAVPd25lcgAAAAAAAAAAAAAAAAAADFBlbmRpbmdPd25lcgAAAAEAAABJVFRMIGNvbmZpZ3VyYXRpb246IHRocmVzaG9sZCAod2hlbiB0byBleHRlbmQpIGFuZCBleHRlbmRfdG8gKHRhcmdldCBUVEwpLgAAAAAAAAAAAAAJVHRsQ29uZmlnAAAAAAAAAgAAAChUYXJnZXQgVFRMIGFmdGVyIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAACWV4dGVuZF90bwAAAAAAAAQAAAAzVFRMIHRocmVzaG9sZCB0aGF0IHRyaWdnZXJzIGV4dGVuc2lvbiAoaW4gbGVkZ2VycykuAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAAAAAAAAAEFR0bENvbmZpZ3NGcm96ZW4AAAABAAAAEnR0bF9jb25maWdzX2Zyb3plbgAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAQVHRsQ29uZmlnU3RvcmFnZQAAAAMAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACEluc3RhbmNlAAAAAAAAAAAAAAAKUGVyc2lzdGVudAAAAAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAbw5jb250cmFjdG1ldGF2MAAAAAAAAAAFcnN2ZXIAAAAAAAAGMS45MC4wAAAAAAAAAAAACHJzc2RrdmVyAAAALzI1LjEuMCM4NmM1MGExZWE0Zjg3YjQwYWRkMzA2NGZmOWRmOTVjNzU1MzU2NWM1AABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
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 = "50f95eceb29103f5c23981254e80a68d3c38a9837917b7e39bb951670c5ae19f";
16
+ export declare const WASM_HASH = "7fc53277b7b586f0f3ad33720d904eb8ea21110b9c064a67317b4b9048127d41";
17
17
  /**
18
18
  * Get the WASM bytecode as a Buffer
19
19
  * Use this to upload the WASM to the network
@@ -47,78 +47,153 @@ export declare const SimpleMessageLibError: {
47
47
  };
48
48
  };
49
49
  export declare const EndpointError: {
50
+ /**
51
+ * Library is already registered with the endpoint
52
+ */
50
53
  1: {
51
54
  message: string;
52
55
  };
56
+ /**
57
+ * Compose message already exists for this GUID and index
58
+ */
53
59
  2: {
54
60
  message: string;
55
61
  };
62
+ /**
63
+ * Compose message not found for the given GUID and index
64
+ */
56
65
  3: {
57
66
  message: string;
58
67
  };
68
+ /**
69
+ * Default receive library is not set for the source endpoint
70
+ */
59
71
  4: {
60
72
  message: string;
61
73
  };
74
+ /**
75
+ * Default send library is not set for the destination endpoint
76
+ */
62
77
  5: {
63
78
  message: string;
64
79
  };
80
+ /**
81
+ * Supplied native token fee is less than required
82
+ */
65
83
  6: {
66
84
  message: string;
67
85
  };
86
+ /**
87
+ * Supplied ZRO token fee is less than required
88
+ */
68
89
  7: {
69
90
  message: string;
70
91
  };
92
+ /**
93
+ * Timeout expiry is invalid (already expired)
94
+ */
71
95
  8: {
72
96
  message: string;
73
97
  };
98
+ /**
99
+ * Fee amount is invalid (negative)
100
+ */
74
101
  9: {
75
102
  message: string;
76
103
  };
104
+ /**
105
+ * Compose index exceeds maximum allowed value
106
+ */
77
107
  10: {
78
108
  message: string;
79
109
  };
110
+ /**
111
+ * Nonce is invalid for the requested operation
112
+ */
80
113
  11: {
81
114
  message: string;
82
115
  };
116
+ /**
117
+ * Payload hash is invalid (empty hash not allowed)
118
+ */
83
119
  12: {
84
120
  message: string;
85
121
  };
122
+ /**
123
+ * Receive library is not valid for the receiver and source endpoint
124
+ */
86
125
  13: {
87
126
  message: string;
88
127
  };
128
+ /**
129
+ * Operation requires a non-default (custom) library
130
+ */
89
131
  14: {
90
132
  message: string;
91
133
  };
134
+ /**
135
+ * Library must support receiving messages
136
+ */
92
137
  15: {
93
138
  message: string;
94
139
  };
140
+ /**
141
+ * Library must be registered with the endpoint
142
+ */
95
143
  16: {
96
144
  message: string;
97
145
  };
146
+ /**
147
+ * Library must support sending messages
148
+ */
98
149
  17: {
99
150
  message: string;
100
151
  };
152
+ /**
153
+ * Messaging path cannot be initialized for the given origin
154
+ */
101
155
  18: {
102
156
  message: string;
103
157
  };
158
+ /**
159
+ * Message cannot be verified for the given origin
160
+ */
104
161
  19: {
105
162
  message: string;
106
163
  };
164
+ /**
165
+ * Payload hash does not match the stored hash
166
+ */
107
167
  20: {
108
168
  message: string;
109
169
  };
170
+ /**
171
+ * New value is the same as existing value
172
+ */
110
173
  21: {
111
174
  message: string;
112
175
  };
176
+ /**
177
+ * Caller is not authorized (not OApp or delegate)
178
+ */
113
179
  22: {
114
180
  message: string;
115
181
  };
182
+ /**
183
+ * Endpoint ID is not supported by the library
184
+ */
116
185
  23: {
117
186
  message: string;
118
187
  };
188
+ /**
189
+ * ZRO fee must be greater than zero when pay_in_zro is true
190
+ */
119
191
  24: {
120
192
  message: string;
121
193
  };
194
+ /**
195
+ * ZRO token address is not set
196
+ */
122
197
  25: {
123
198
  message: string;
124
199
  };
@@ -233,11 +308,11 @@ export interface MessageLibVersion {
233
308
  */
234
309
  export interface Timeout {
235
310
  /**
236
- * Unix timestamp when the timeout expires.
311
+ * Unix timestamp in seconds when the timeout expires.
237
312
  */
238
313
  expiry: u64;
239
314
  /**
240
- * The new library address to transition to.
315
+ * The old library address that remains valid during the grace period.
241
316
  */
242
317
  lib: string;
243
318
  }
@@ -432,6 +507,9 @@ export declare const OwnableError: {
432
507
  1035: {
433
508
  message: string;
434
509
  };
510
+ 1036: {
511
+ message: string;
512
+ };
435
513
  };
436
514
  /**
437
515
  * BytesExtError: 1040-1049
@@ -456,9 +534,9 @@ export declare const UpgradeableError: {
456
534
  };
457
535
  };
458
536
  /**
459
- * MultisigError: 1060-1069
537
+ * MultiSigError: 1060-1069
460
538
  */
461
- export declare const MultisigError: {
539
+ export declare const MultiSigError: {
462
540
  1060: {
463
541
  message: string;
464
542
  };
@@ -483,8 +561,11 @@ export declare const MultisigError: {
483
561
  1067: {
484
562
  message: string;
485
563
  };
564
+ 1068: {
565
+ message: string;
566
+ };
486
567
  };
487
- export type MultisigStorage = {
568
+ export type MultiSigStorage = {
488
569
  tag: "Signers";
489
570
  values: void;
490
571
  } | {
@@ -536,20 +617,7 @@ export interface Client {
536
617
  packet: OutboundPacket;
537
618
  options: Buffer;
538
619
  pay_in_zro: boolean;
539
- }, txnOptions?: {
540
- /**
541
- * The fee to pay for the transaction. Default: BASE_FEE
542
- */
543
- fee?: number;
544
- /**
545
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
546
- */
547
- timeoutInSeconds?: number;
548
- /**
549
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
550
- */
551
- simulate?: boolean;
552
- }) => Promise<AssembledTransaction<MessagingFee>>;
620
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<MessagingFee>>;
553
621
  /**
554
622
  * Construct and simulate a send 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.
555
623
  */
@@ -557,20 +625,7 @@ export interface Client {
557
625
  packet: OutboundPacket;
558
626
  options: Buffer;
559
627
  pay_in_zro: boolean;
560
- }, txnOptions?: {
561
- /**
562
- * The fee to pay for the transaction. Default: BASE_FEE
563
- */
564
- fee?: number;
565
- /**
566
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
567
- */
568
- timeoutInSeconds?: number;
569
- /**
570
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
571
- */
572
- simulate?: boolean;
573
- }) => Promise<AssembledTransaction<FeesAndPacket>>;
628
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<FeesAndPacket>>;
574
629
  /**
575
630
  * Construct and simulate a get_config 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.
576
631
  */
@@ -578,344 +633,97 @@ export interface Client {
578
633
  eid: u32;
579
634
  oapp: string;
580
635
  config_type: u32;
581
- }, txnOptions?: {
582
- /**
583
- * The fee to pay for the transaction. Default: BASE_FEE
584
- */
585
- fee?: number;
586
- /**
587
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
588
- */
589
- timeoutInSeconds?: number;
590
- /**
591
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
592
- */
593
- simulate?: boolean;
594
- }) => Promise<AssembledTransaction<Buffer>>;
636
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<Buffer>>;
595
637
  /**
596
638
  * Construct and simulate a is_supported_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.
597
639
  */
598
640
  is_supported_eid: ({ eid }: {
599
641
  eid: u32;
600
- }, txnOptions?: {
601
- /**
602
- * The fee to pay for the transaction. Default: BASE_FEE
603
- */
604
- fee?: number;
605
- /**
606
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
607
- */
608
- timeoutInSeconds?: number;
609
- /**
610
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
611
- */
612
- simulate?: boolean;
613
- }) => Promise<AssembledTransaction<boolean>>;
642
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
614
643
  /**
615
644
  * Construct and simulate a message_lib_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.
616
645
  */
617
- message_lib_type: (txnOptions?: {
618
- /**
619
- * The fee to pay for the transaction. Default: BASE_FEE
620
- */
621
- fee?: number;
622
- /**
623
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
624
- */
625
- timeoutInSeconds?: number;
626
- /**
627
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
628
- */
629
- simulate?: boolean;
630
- }) => Promise<AssembledTransaction<MessageLibType>>;
646
+ message_lib_type: (options?: MethodOptions) => Promise<AssembledTransaction<MessageLibType>>;
631
647
  /**
632
648
  * Construct and simulate a set_config 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.
633
649
  */
634
650
  set_config: ({ oapp, param }: {
635
651
  oapp: string;
636
652
  param: Array<SetConfigParam>;
637
- }, txnOptions?: {
638
- /**
639
- * The fee to pay for the transaction. Default: BASE_FEE
640
- */
641
- fee?: number;
642
- /**
643
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
644
- */
645
- timeoutInSeconds?: number;
646
- /**
647
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
648
- */
649
- simulate?: boolean;
650
- }) => Promise<AssembledTransaction<null>>;
653
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
651
654
  /**
652
655
  * Construct and simulate a version transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
653
656
  */
654
- version: (txnOptions?: {
655
- /**
656
- * The fee to pay for the transaction. Default: BASE_FEE
657
- */
658
- fee?: number;
659
- /**
660
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
661
- */
662
- timeoutInSeconds?: number;
663
- /**
664
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
665
- */
666
- simulate?: boolean;
667
- }) => Promise<AssembledTransaction<MessageLibVersion>>;
657
+ version: (options?: MethodOptions) => Promise<AssembledTransaction<MessageLibVersion>>;
668
658
  /**
669
659
  * Construct and simulate a validate_packet 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.
670
660
  */
671
661
  validate_packet: ({ header_bytes, payload_hash }: {
672
662
  header_bytes: Buffer;
673
663
  payload_hash: Buffer;
674
- }, txnOptions?: {
675
- /**
676
- * The fee to pay for the transaction. Default: BASE_FEE
677
- */
678
- fee?: number;
679
- /**
680
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
681
- */
682
- timeoutInSeconds?: number;
683
- /**
684
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
685
- */
686
- simulate?: boolean;
687
- }) => Promise<AssembledTransaction<null>>;
664
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
688
665
  /**
689
666
  * Construct and simulate a set_fee_recipient 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.
690
667
  */
691
668
  set_fee_recipient: ({ fee_recipient }: {
692
669
  fee_recipient: string;
693
- }, txnOptions?: {
694
- /**
695
- * The fee to pay for the transaction. Default: BASE_FEE
696
- */
697
- fee?: number;
698
- /**
699
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
700
- */
701
- timeoutInSeconds?: number;
702
- /**
703
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
704
- */
705
- simulate?: boolean;
706
- }) => Promise<AssembledTransaction<null>>;
670
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
707
671
  /**
708
672
  * Construct and simulate a set_native_fee 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.
709
673
  */
710
674
  set_native_fee: ({ native_fee }: {
711
675
  native_fee: i128;
712
- }, txnOptions?: {
713
- /**
714
- * The fee to pay for the transaction. Default: BASE_FEE
715
- */
716
- fee?: number;
717
- /**
718
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
719
- */
720
- timeoutInSeconds?: number;
721
- /**
722
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
723
- */
724
- simulate?: boolean;
725
- }) => Promise<AssembledTransaction<null>>;
676
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
726
677
  /**
727
678
  * Construct and simulate a set_zro_fee 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.
728
679
  */
729
680
  set_zro_fee: ({ zro_fee }: {
730
681
  zro_fee: i128;
731
- }, txnOptions?: {
732
- /**
733
- * The fee to pay for the transaction. Default: BASE_FEE
734
- */
735
- fee?: number;
736
- /**
737
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
738
- */
739
- timeoutInSeconds?: number;
740
- /**
741
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
742
- */
743
- simulate?: boolean;
744
- }) => Promise<AssembledTransaction<null>>;
682
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
745
683
  /**
746
684
  * Construct and simulate a set_whitelisted_caller 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.
747
685
  */
748
686
  set_whitelisted_caller: ({ whitelisted_caller }: {
749
687
  whitelisted_caller: string;
750
- }, txnOptions?: {
751
- /**
752
- * The fee to pay for the transaction. Default: BASE_FEE
753
- */
754
- fee?: number;
755
- /**
756
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
757
- */
758
- timeoutInSeconds?: number;
759
- /**
760
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
761
- */
762
- simulate?: boolean;
763
- }) => Promise<AssembledTransaction<null>>;
688
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
764
689
  /**
765
690
  * Construct and simulate a endpoint transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
766
691
  */
767
- endpoint: (txnOptions?: {
768
- /**
769
- * The fee to pay for the transaction. Default: BASE_FEE
770
- */
771
- fee?: number;
772
- /**
773
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
774
- */
775
- timeoutInSeconds?: number;
776
- /**
777
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
778
- */
779
- simulate?: boolean;
780
- }) => Promise<AssembledTransaction<string>>;
692
+ endpoint: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
781
693
  /**
782
694
  * Construct and simulate a local_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.
783
695
  */
784
- local_eid: (txnOptions?: {
785
- /**
786
- * The fee to pay for the transaction. Default: BASE_FEE
787
- */
788
- fee?: number;
789
- /**
790
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
791
- */
792
- timeoutInSeconds?: number;
793
- /**
794
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
795
- */
796
- simulate?: boolean;
797
- }) => Promise<AssembledTransaction<u32>>;
696
+ local_eid: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>;
798
697
  /**
799
698
  * Construct and simulate a native_fee 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.
800
699
  */
801
- native_fee: (txnOptions?: {
802
- /**
803
- * The fee to pay for the transaction. Default: BASE_FEE
804
- */
805
- fee?: number;
806
- /**
807
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
808
- */
809
- timeoutInSeconds?: number;
810
- /**
811
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
812
- */
813
- simulate?: boolean;
814
- }) => Promise<AssembledTransaction<i128>>;
700
+ native_fee: (options?: MethodOptions) => Promise<AssembledTransaction<i128>>;
815
701
  /**
816
702
  * Construct and simulate a zro_fee 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.
817
703
  */
818
- zro_fee: (txnOptions?: {
819
- /**
820
- * The fee to pay for the transaction. Default: BASE_FEE
821
- */
822
- fee?: number;
823
- /**
824
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
825
- */
826
- timeoutInSeconds?: number;
827
- /**
828
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
829
- */
830
- simulate?: boolean;
831
- }) => Promise<AssembledTransaction<i128>>;
704
+ zro_fee: (options?: MethodOptions) => Promise<AssembledTransaction<i128>>;
832
705
  /**
833
706
  * Construct and simulate a fee_recipient transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
834
707
  */
835
- fee_recipient: (txnOptions?: {
836
- /**
837
- * The fee to pay for the transaction. Default: BASE_FEE
838
- */
839
- fee?: number;
840
- /**
841
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
842
- */
843
- timeoutInSeconds?: number;
844
- /**
845
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
846
- */
847
- simulate?: boolean;
848
- }) => Promise<AssembledTransaction<string>>;
708
+ fee_recipient: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
849
709
  /**
850
710
  * Construct and simulate a whitelisted_caller 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.
851
711
  */
852
- whitelisted_caller: (txnOptions?: {
853
- /**
854
- * The fee to pay for the transaction. Default: BASE_FEE
855
- */
856
- fee?: number;
857
- /**
858
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
859
- */
860
- timeoutInSeconds?: number;
861
- /**
862
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
863
- */
864
- simulate?: boolean;
865
- }) => Promise<AssembledTransaction<string>>;
712
+ whitelisted_caller: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
866
713
  /**
867
714
  * 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.
868
715
  */
869
- authorizer: (txnOptions?: {
870
- /**
871
- * The fee to pay for the transaction. Default: BASE_FEE
872
- */
873
- fee?: number;
874
- /**
875
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
876
- */
877
- timeoutInSeconds?: number;
878
- /**
879
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
880
- */
881
- simulate?: boolean;
882
- }) => Promise<AssembledTransaction<string>>;
716
+ authorizer: (options?: MethodOptions) => Promise<AssembledTransaction<string>>;
883
717
  /**
884
718
  * 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.
885
719
  * Returns the current owner address, or None if no owner is set.
886
720
  */
887
- owner: (txnOptions?: {
888
- /**
889
- * The fee to pay for the transaction. Default: BASE_FEE
890
- */
891
- fee?: number;
892
- /**
893
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
894
- */
895
- timeoutInSeconds?: number;
896
- /**
897
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
898
- */
899
- simulate?: boolean;
900
- }) => Promise<AssembledTransaction<Option<string>>>;
721
+ owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
901
722
  /**
902
723
  * 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.
903
724
  * Returns the pending owner address for 2-step transfer, or None if no transfer is pending.
904
725
  */
905
- pending_owner: (txnOptions?: {
906
- /**
907
- * The fee to pay for the transaction. Default: BASE_FEE
908
- */
909
- fee?: number;
910
- /**
911
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
912
- */
913
- timeoutInSeconds?: number;
914
- /**
915
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
916
- */
917
- simulate?: boolean;
918
- }) => Promise<AssembledTransaction<Option<string>>>;
726
+ pending_owner: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
919
727
  /**
920
728
  * 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.
921
729
  * Transfers ownership immediately to a new address.
@@ -929,20 +737,7 @@ export interface Client {
929
737
  */
930
738
  transfer_ownership: ({ new_owner }: {
931
739
  new_owner: string;
932
- }, txnOptions?: {
933
- /**
934
- * The fee to pay for the transaction. Default: BASE_FEE
935
- */
936
- fee?: number;
937
- /**
938
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
939
- */
940
- timeoutInSeconds?: number;
941
- /**
942
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
943
- */
944
- simulate?: boolean;
945
- }) => Promise<AssembledTransaction<null>>;
740
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
946
741
  /**
947
742
  * 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.
948
743
  * Proposes an ownership transfer to a new address.
@@ -964,20 +759,7 @@ export interface Client {
964
759
  propose_ownership_transfer: ({ new_owner, ttl }: {
965
760
  new_owner: string;
966
761
  ttl: u32;
967
- }, txnOptions?: {
968
- /**
969
- * The fee to pay for the transaction. Default: BASE_FEE
970
- */
971
- fee?: number;
972
- /**
973
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
974
- */
975
- timeoutInSeconds?: number;
976
- /**
977
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
978
- */
979
- simulate?: boolean;
980
- }) => Promise<AssembledTransaction<null>>;
762
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
981
763
  /**
982
764
  * 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.
983
765
  * Accepts a pending 2-step ownership transfer.
@@ -987,20 +769,7 @@ export interface Client {
987
769
  * # Panics
988
770
  * - `NoPendingTransfer` if there is no pending transfer (or it expired)
989
771
  */
990
- accept_ownership: (txnOptions?: {
991
- /**
992
- * The fee to pay for the transaction. Default: BASE_FEE
993
- */
994
- fee?: number;
995
- /**
996
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
997
- */
998
- timeoutInSeconds?: number;
999
- /**
1000
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1001
- */
1002
- simulate?: boolean;
1003
- }) => Promise<AssembledTransaction<null>>;
772
+ accept_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1004
773
  /**
1005
774
  * 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.
1006
775
  * Permanently renounces ownership.
@@ -1009,20 +778,7 @@ export interface Client {
1009
778
  * - `OwnerNotSet` if no owner is currently set
1010
779
  * - `TransferInProgress` if a 2-step transfer is in progress (cancel it first)
1011
780
  */
1012
- renounce_ownership: (txnOptions?: {
1013
- /**
1014
- * The fee to pay for the transaction. Default: BASE_FEE
1015
- */
1016
- fee?: number;
1017
- /**
1018
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1019
- */
1020
- timeoutInSeconds?: number;
1021
- /**
1022
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1023
- */
1024
- simulate?: boolean;
1025
- }) => Promise<AssembledTransaction<null>>;
781
+ renounce_ownership: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1026
782
  /**
1027
783
  * 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.
1028
784
  * Extends the instance TTL.
@@ -1035,20 +791,7 @@ export interface Client {
1035
791
  extend_instance_ttl: ({ threshold, extend_to }: {
1036
792
  threshold: u32;
1037
793
  extend_to: u32;
1038
- }, txnOptions?: {
1039
- /**
1040
- * The fee to pay for the transaction. Default: BASE_FEE
1041
- */
1042
- fee?: number;
1043
- /**
1044
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1045
- */
1046
- timeoutInSeconds?: number;
1047
- /**
1048
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1049
- */
1050
- simulate?: boolean;
1051
- }) => Promise<AssembledTransaction<null>>;
794
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1052
795
  /**
1053
796
  * 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.
1054
797
  * Sets TTL configs for instance and persistent storage.
@@ -1067,38 +810,12 @@ export interface Client {
1067
810
  set_ttl_configs: ({ instance, persistent }: {
1068
811
  instance: Option<TtlConfig>;
1069
812
  persistent: Option<TtlConfig>;
1070
- }, txnOptions?: {
1071
- /**
1072
- * The fee to pay for the transaction. Default: BASE_FEE
1073
- */
1074
- fee?: number;
1075
- /**
1076
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1077
- */
1078
- timeoutInSeconds?: number;
1079
- /**
1080
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1081
- */
1082
- simulate?: boolean;
1083
- }) => Promise<AssembledTransaction<null>>;
813
+ }, txnOptions?: MethodOptions) => Promise<AssembledTransaction<null>>;
1084
814
  /**
1085
815
  * 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.
1086
816
  * Returns the current TTL configs as (instance_config, persistent_config).
1087
817
  */
1088
- ttl_configs: (txnOptions?: {
1089
- /**
1090
- * The fee to pay for the transaction. Default: BASE_FEE
1091
- */
1092
- fee?: number;
1093
- /**
1094
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1095
- */
1096
- timeoutInSeconds?: number;
1097
- /**
1098
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1099
- */
1100
- simulate?: boolean;
1101
- }) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
818
+ ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [Option<TtlConfig>, Option<TtlConfig>]>>;
1102
819
  /**
1103
820
  * 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.
1104
821
  * Permanently freezes TTL configs, preventing any future modifications.
@@ -1109,38 +826,12 @@ export interface Client {
1109
826
  * # Panics
1110
827
  * - `TtlConfigAlreadyFrozen` if already frozen
1111
828
  */
1112
- freeze_ttl_configs: (txnOptions?: {
1113
- /**
1114
- * The fee to pay for the transaction. Default: BASE_FEE
1115
- */
1116
- fee?: number;
1117
- /**
1118
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1119
- */
1120
- timeoutInSeconds?: number;
1121
- /**
1122
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1123
- */
1124
- simulate?: boolean;
1125
- }) => Promise<AssembledTransaction<null>>;
829
+ freeze_ttl_configs: (options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1126
830
  /**
1127
831
  * 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.
1128
832
  * Returns whether TTL configs are frozen.
1129
833
  */
1130
- is_ttl_configs_frozen: (txnOptions?: {
1131
- /**
1132
- * The fee to pay for the transaction. Default: BASE_FEE
1133
- */
1134
- fee?: number;
1135
- /**
1136
- * The maximum amount of time to wait for the transaction to complete. Default: DEFAULT_TIMEOUT
1137
- */
1138
- timeoutInSeconds?: number;
1139
- /**
1140
- * Whether to automatically simulate the transaction when constructing the AssembledTransaction. Default: true
1141
- */
1142
- simulate?: boolean;
1143
- }) => Promise<AssembledTransaction<boolean>>;
834
+ is_ttl_configs_frozen: (options?: MethodOptions) => Promise<AssembledTransaction<boolean>>;
1144
835
  }
1145
836
  export declare class Client extends ContractClient {
1146
837
  readonly options: ContractClientOptions;