@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
@@ -5,14 +5,14 @@ export * as contract from '@stellar/stellar-sdk/contract';
5
5
  export * as rpc from '@stellar/stellar-sdk/rpc';
6
6
  /**
7
7
  * Embedded WASM bytecode (base64-encoded)
8
- * Size: 33966 bytes (33.17 KB)
8
+ * Size: 34907 bytes (34.09 KB)
9
9
  */
10
- export const WASM_BASE64 = "AGFzbQEAAAABiQEYYAJ+fgF+YAF+AX5gAAF+YAN+fn4BfmAEfn5+fgF+YAABf2ABfwBgAn9/AGABfwF/YAF/AX5gAn5+AX9gAABgAn5/AGABfgBgA39+fgBgBX5/f39/AGACf34AYAJ/fwF+YAN+f38AYAJ+fgBgBH9/f38BfmADf39/AGAEf35+fwBgBX9+fn5+AAK7AR8BbAExAAABYQEwAAEBYgE4AAEBYgEzAAABeAE3AAIBaQEzAAABZAFfAAMBaQE4AAEBaQE3AAEBaQE2AAABbAE2AAEBYgEwAAEBeAEwAAABbAE3AAQBeAExAAABbAEyAAABbAFfAAMBaQEwAAEBaQE1AAEBaQE0AAEBYgFqAAABYgExAAQBbQE5AAMBbQFhAAQBdgFnAAABeAEzAAIBeAE4AAIBbAEwAAABbAE4AAABeAE1AAEBYgFmAAMDUE8FBgcIBQkKCwICBgwLBg0JBg4ADxAQCAgRBxIREQsLAgEHBw0BBgECBwICAgACARMACwUOARQCCwIAABAJAgcHAgILFRUQFRAJFRYWFxcXBQMBABEGIQR/AUGAgMAAC38AQduCwAALfwBB/4TAAAt/AEGAhcAACwfYAhcGbWVtb3J5AgAHZ2V0X2ZlZQAxB3ZlcnNpb24APg1fX2NvbnN0cnVjdG9yAD8HdXBncmFkZQBDB21pZ3JhdGUARQZmcmVlemUARglpc19mcm96ZW4ASAphdXRob3JpemVyAEkFb3duZXIASg1wZW5kaW5nX293bmVyAEwSdHJhbnNmZXJfb3duZXJzaGlwAE0acHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIATxBhY2NlcHRfb3duZXJzaGlwAFUScmVub3VuY2Vfb3duZXJzaGlwAFcTZXh0ZW5kX2luc3RhbmNlX3R0bABYD3NldF90dGxfY29uZmlncwBZC3R0bF9jb25maWdzAFwSZnJlZXplX3R0bF9jb25maWdzAF8VaXNfdHRsX2NvbmZpZ3NfZnJvemVuAGABXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCrpdT1gBAn8jgICAgABBEGsiACSAgICAACAAQQRqEKCAgIAAAkAgACgCBEEBRw0AIAAoAgggACgCDBChgICAAAtBABCigICAACEBIABBEGokgICAgAAgAUH9AXELDAAgAEEBEN2AgIAACxsAIACtQiCGQgSEIAGtQiCGQgSEEJyAgIAAGgtHAgF/AX5BAiEBAkAgABDngICAACICQgIQpYCAgABFDQBBASEBAkACQCACQgIQgICAgACnQf8BcQ4CAQIACwALQQAhAQsgAQuLAQICfwF+I4CAgIAAQRBrIgAkgICAgAAgAEEEahCggICAAAJAIAAoAgRBAUcNACAAKAIIIAAoAgwQoYCAgAALQQAhAQJAQQAQpICAgAAiAkICEKWAgIAARQ0AQQEhAQJAAkAgAkICEICAgIAAp0H/AXEOAgECAAsAC0EAIQELIABBEGokgICAgAAgAQvCAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAAkACQAJAAkAgAEH/AXEOAwABAgALIAFB3oTAgABBBhDjgICAACABKAIADQMgASABKQMIEOaAgIAADAILIAFB5ITAgABBCBDjgICAACABKAIADQIgASABKQMIEOaAgIAADAELIAFB7ITAgABBChDjgICAACABKAIADQEgASABKQMIEOaAgIAACyABKQMIIQIgASkDAFANAQsACyABQRBqJICAgIAAIAILDwAgACABEJuAgIAAQgFRCw8AEKeAgIAAEIGAgIAAGgtmAgF/AX4jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBChgICAAAsgABCpgICAACAAKQMIIQEgACkDAEGKCBCqgICAACAAQRBqJICAgIAAIAELSgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCpgICAACAAKQMIIQEgACkDAEGKCBCqgICAACABEIGAgIAAGiAAQRBqJICAgIAAIAELUAEBfyOAgICAAEEQayIBJICAgIAAIAFBBGoQoICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKGAgIAACyAAEK+AgIAAIAFBEGokgICAgAALKQACQCAAp0EBcUUNAA8LIAFB+ndqrUIghkKDgICA4IABfBCtgICAAAALQgEBfyOAgICAAEEQayIAJICAgIAAIAAQrICAgAACQCAAKQMAUA0AQoOAgICwgQEQrYCAgAAACyAAQRBqJICAgIAAC5MBAgF/An4jgICAgABBEGsiASSAgICAACABQQRqEKCAgIAAAkAgASgCBEEBRw0AIAEoAgggASgCDBChgICAAAtCACECAkACQEEBEK6AgIAAIgNCABClgICAAEUNACADQgAQgICAgAAiAkL/AYNCzQBSDQEgACACNwMIQgEhAgsgACACNwMAIAFBEGokgICAgAAPCwALCwAgABCdgICAABoLkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQfGDwIAAQQwQ44CAgAAgASgCAA0CIAEgASkDCBDmgICAAAwBCyABQeyDwIAAQQUQ44CAgAAgASgCAA0BIAEgASkDCBDmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC00BAn5CACEBAkACQEEAEK6AgIAAIgJCAhClgICAAEUNACACQgIQgICAgAAiAUL/AYNCzQBSDQEgACABNwMIQgEhAQsgACABNwMADwsACygAAkAgAkJ/VQ0AQoOAgICQARCtgICAAAALIAAgATcDACAAIAI3AwgLthwFAn8OfgF/AX4GfyOAgICAAEGwBGsiAiSAgICAAAJAAkAgAEL/AYNCzQBSDQBBACEDAkADQCADQdgARg0BIAJBsANqIANqQgI3AwAgA0EIaiEDDAALCyABQv8Bg0LMAFINACABQZCBwIAAQQsgAkGwA2pBCxCygICAACACKQOwAyIBQv8Bg0IEUg0AIAIpA7gDIgBC/wGDQgRSDQAgAikDwAMiBEL/AYNCBFINACACQZACaiACKQPIAxCzgICAACACKAKQAkEBRg0AIAIpA6gCIQUgAikDoAIhBiACQZACaiACKQPQAxC0gICAACACKAKQAg0AIAIpA5gCIQcgAkGQAmogAikD2AMQtICAgAAgAigCkAINACACKQPgAyIIQv8Bg0IEUg0AIAIpA5gCIQkgAkGQAmogAikD6AMQs4CAgAAgAigCkAJBAUYNACACKQPwAyIKQv8Bg0LIAFINACACKQP4AyILQv8Bg0LNAFINACACKQOABCIMQv8Bg0LNAFINACACKQOoAiENIAIgAikDoAI3A6ACIAIgBjcDkAIgAiAIQiCIpzYC5AIgAiAAQiCIpzYC4AIgAiABQiCIpzYC3AIgAiAEQiCIpzYC2AIgAiAHNwPQAiACIAk3A8gCIAIgCzcDwAIgAiAKNwO4AiACIAw3A7ACIAIgDTcDqAIgAiAFNwOYAiACQbADahCggICAAAJAIAIoArADQQFHDQAgAigCtAMgAigCuAMQoYCAgAALAkAgAikDyAIiDkIAUQ0AIAIpA6gCIQ8gAikDoAIhECACKQPQAiERIAIoAtgCIQMCQCACKQO4AhCCgICAAEKAgICAEFQNACACQQA2AvQCIAIgAkG4AmoiEjYC8AIgAkGQBGqtQiCGQgSEIRMgA0Gv6gFLIRQgAkGwA2pBGGohFSACQbADakEIaiEWIANBsOoBSSEXQQAhA0IAIQdCACEGQQAhGEIAIQxCACEIQgAhBUIAIQBCACEBA0AgGCEZIAMgEikDABCCgICAAEIgiKciGEsNBAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMgGEcNACAAIBBWIAEgD1YgASAPURtFDQFCg4CAgPAAEK2AgIAAAAsgAkHwAmoQtYCAgAAaIAJB8AJqELaAgIAAIQMgAkHwAmoQtYCAgAAhEiADQf//A3FFDRMgAiACQfACaiADQX9qQf//A3EQt4CAgAAiBDcD+AJBASEYIBJB/wFxQX9qDgQCAwQOAQsgByAGhEIAUQ0LIAggB3wiByAIVCIDIAUgBnwgA618IgQgBVQgBCAFURtBAUcNBAwSC0KDgICAoAEQrYCAgAAACwJAAkACQCAEEIKAgIAAQiCIIgSnIgNBIEYNACADQRBHDQELIAJBADYClAQgAiACQfgCajYCkAQgAkGwA2ogAkGQBGoQuICAgAAgAikDuAMhCyACKQOwAyENIARCIFENAUIAIQlCACEKDAwLQoOAgIDQABCtgICAAAALIAJBsANqIAJBkARqELiAgIAAIAIpA7gDIQogAikDsAMhCSAUDQogCSAKhEIAUQ0KQoOAgICgARCtgICAAAALIAQQgoCAgABCgICAgHCDQoCAgICABlINByACQQA2AqwDIAIgAkH4Amo2AqgDIAJBgANqIAJBqANqELiAgIAAIAJBqANqQSAQt4CAgAAiBBCCgICAAEKAgICAcINCgICAgIAEUg0GIBVCADcDACACQbADakEQaiIDQgA3AwAgFkIANwMAIAJCADcDsAMgBBCCgICAAEKAgICAcINCgICAgIAEUg0FIAQgAkGwA2pBIBC5gICAACACQZAEakEYaiAVKQMANwMAIAJBkARqQRBqIAMpAwA3AwAgAkGQBGpB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sAMhAAsgBCABhUJ/hSAEIAQgAXwgBSAAfCIBIAVUrXwiAIWDQn9XDRACQAJAIAFCgICAgICAgMAAfEL//////////wBWDQAgASABhSAAIAFCP4eFhEIAUg0AIAFCCIZCC4QhAQwBCyAAIAEQiYCAgAAhAQsgAkGwBGokgICAgAAgAQ8LIAJBsANqIANqQgI3AwAgA0EIaiEDDAALC0KDgICAMBCtgICAAAALQoOAgICwARCtgICAAAALQoOAgICgARCtgICAAAALQoOAgIDAABCtgICAAAALELyAgIAAAAtCg4CAgICCARCtgICAAAALQoOAgIDgABCtgICAAAALQoOAgIDAARCtgICAAAALIAcgDXwiDSAHVCIDIAYgC3wgA618IgQgBlQgBCAGURsNBSAAIAl8IgsgAFQiAyABIAp8IAOtfCIJIAFUIAkgAVEbDQUgDSEHIAQhBiAZIRggCyEAIAkhAQsgAigC9AIhAyACKALwAiESDAALC0KDgICAgAEQrYCAgAAAC0KDgICAEBCtgICAAAALAAsQvYCAgAAACzEAAkAgAiAERg0AAAsgACABrUIghkIEhCADrUIghkIEhCACrUIghkIEhBCXgICAABoLewIBfwF+AkACQAJAIAGnQf8BcSICQcQARg0AIAJBCkcNAUIAIQMgAEIANwMYIAAgAUIIiDcDEAwCCyABEJKAgIAAIQMgARCTgICAACEBIAAgAzcDGCAAIAE3AxBCACEDDAELIABCg5CAgIABNwMIQgEhAwsgACADNwMAC10CAX8BfgJAAkAgAadB/wFxIgJBwABGDQACQCACQQZGDQBCASEDQoOQgICAASEBDAILIAFCCIghAUIAIQMMAQtCACEDIAEQkYCAgAAhAQsgACADNwMAIAAgATcDCAuYAQIBfwF+I4CAgIAAQRBrIgEkgICAgAACQAJAIABBARC3gICAACICEIKAgIAAQoCAgIBwg0KAgICAEFINACABQQA6AA8gAhCCgICAAEKAgICAcINCgICAgBBSDQEgAiABQQ9qQQEQuYCAgAAgAS0ADyEAIAFBEGokgICAgAAgAA8LQoOAgICAggEQrYCAgAAACxC8gICAAAALoQECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQCAAQQIQt4CAgAAiAhCCgICAAEKAgICAcINCgICAgCBSDQAgAUEAOwEOIAIQgoCAgABCgICAgHCDQoCAgIAgUg0BIAIgAUEOakECELmAgIAAIAEvAQ4hACABQRBqJICAgIAAIABBCHQgAEEIdnIPC0KDgICAgIIBEK2AgIAAAAsQvICAgAAAC3UCAn8BfgJAAkAgACgCBCICIAFqIgEgAkkNACABIAAoAgAiAykDABCCgICAAEIgiKdLDQEgAykDACACrUIghkIEhCABrUIghkIEhBCegICAACEEIAAgATYCBCAEDwsQvYCAgAAAC0KDgICAgP0AEK2AgIAAAAvRAgIBfwJ+I4CAgIAAQRBrIgIkgICAgAACQAJAIAFBEBC3gICAACIDEIKAgIAAQoCAgIBwg0KAgICAgAJSDQAgAkIANwMIIAJCADcDACADEIKAgIAAQoCAgIBwg0KAgICAgAJSDQEgAyACQRAQuYCAgAAgAikDCCEDIAAgAikDACIEQjiGIARCgP4Dg0IohoQgBEKAgPwHg0IYhiAEQoCAgPgPg0IIhoSEIARCCIhCgICA+A+DIARCGIhCgID8B4OEIARCKIhCgP4DgyAEQjiIhISENwMIIAAgA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhDcDACACQRBqJICAgIAADwtCg4CAgICCARCtgICAAAALELyAgIAAAAsfACAAQgQgAa1CIIZCBIQgAq1CIIZCBIQQlYCAgAAaC0UCAX8BfiOAgICAAEEQayICJICAgIAAIAIgACABEOKAgIAAAkAgAigCAEEBRw0AAAsgAikDCCEDIAJBEGokgICAgAAgAwsaACAArUIghkIEhCABrUIghkIEhBCYgICAAAsJABC9gICAAAALCQAQ4YCAgAAAC2gCAX8BfiOAgICAAEEQayIAJICAgIAAIAAQoICAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKGAgIAACyAAQoSAgIAQNwMIIABChgI3AwAgAEECELuAgIAAIQEgAEEQaiSAgICAACABC10AAkACQCAAQv8Bg0LNAFINAEGAyx5BgNIfEMCAgIAAQYDLHkGA0h8QwYCAgABBABCugICAAEICEKWAgIAADQEgABDCgICAAEICDwsAC0KDgICAkIEBEK2AgIAAAAsOAEEBIAAgARDogICAAAsOAEECIAAgARDogICAAAsOAEEAIABCAhDSgICAAAulAQEBfyOAgICAAEEQayIBJICAgIAAAkACQCAAQv8Bg0LIAFINACAAEIKAgIAAQoCAgIBwg0KAgICAgARSDQAgAUEEahCggICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQoYCAgAALEKaAgIAAEJ+AgIAADQFBARDEgICAACAAEIqAgIAAGiABQRBqJICAgIAAQgIPCwALQoOAgIDAgwEQrYCAgAAACwwAQQEgABDHgICAAAutAQEBfyOAgICAAEEQayIBJICAgIAAAkACQAJAIABC/wGDQsgAUg0AIAFBBGoQoICAgAACQCABKAIEQQFHDQAgASgCCCABKAIMEKGAgIAACxCmgICAAEEBEKKAgIAAQf0BcUUNASAAEIuAgIAAQv8Bg0ICUg0CQQAQxICAgAAgAUEQaiSAgICAAEICDwsAC0KDgICAsIMBEK2AgIAAAAtCg4CAgKCDARCtgICAAAALWgEBfyOAgICAAEEQayIAJICAgIAAIABBBGoQoICAgAACQCAAKAIEQQFHDQAgACgCCCAAKAIMEKGAgIAACxCmgICAAEEAQQEQx4CAgAAgAEEQaiSAgICAAEICCxoAIAAQ54CAgAAgAa1C/wGDQgIQkICAgAAaCwkAEJ+AgIAArQsIABCngICAAAs+AgF/AX4jgICAgABBEGsiACSAgICAACAAEKmAgIAAIAApAwAgACkDCBDLgICAACEBIABBEGokgICAgAAgAQsNACABQgIgAKdBAXEbCz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQrICAgAAgACkDACAAKQMIEMuAgIAAIQEgAEEQaiSAgICAACABC30CAX8BfiOAgICAAEEQayIBJICAgIAAAkAgAEL/AYNCzQBSDQAgAUEEahCggICAAAJAIAEoAgRBAUcNACABKAIIIAEoAgwQoYCAgAALEKiAgIAAIQIQq4CAgAAgABDCgICAACACIAAQzoCAgAAgAUEQaiSAgICAAEICDwsAC2ECAX8BfiOAgICAAEEQayICJICAgIAAQeSCwIAAQRUQuoCAgAAQ04CAgAAhAyACIAA3AwggAiABNwMAIANBjIPAgABBAiACQQIQ1ICAgAAQjoCAgAAaIAJBEGokgICAgAAL3QICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAgAkEIahCggICAAAJAIAIoAghBAUcNACACKAIMIAIoAhAQoYCAgAALEKiAgIAAIQMCQAJAIAFC/////w9WDQAgAkEIahCsgICAACACKQMQIQEgAikDCEGICBCqgICAACABIAAQjICAgABQRQ0DENCAgIAADAELENGAgIAAIAFCIIinSQ0DQQEgAEIAENKAgIAAQQEQroCAgABCACABQoSAgIBwgyIBIAEQjYCAgAAaQZyDwIAAQRYQuoCAgAAQ04CAgAAhBCACIAE3AxggAiADNwMQIAIgADcDCCAEQbiDwIAAQQMgAkEIakEDENSAgIAAEI6AgIAAGgsgAkEgaiSAgICAAEICDwsAC0KDgICA4IABEK2AgIAAAAtCg4CAgPCAARCtgICAAAALEwBBARCugICAAEIAEI+AgIAAGgszAQJ+EJmAgIAAIQACQBCagICAAEIgiCIBIABCIIgiAFQNACABpyAAp2sPCxC9gICAAAALFQAgABCugICAACABIAIQkICAgAAaC2MDAX8BfgF/I4CAgIAAQRBrIgEkgICAgAAgASAANwMAQgIhAkEBIQMCQANAIANFDQEgA0F/aiEDIAAhAgwACwsgASACNwMIIAFBCGpBARC7gICAACEAIAFBEGokgICAgAAgAAsuAAJAIAEgA0YNAAALIACtQiCGQgSEIAKtQiCGQgSEIAGtQiCGQgSEEJaAgIAAC6cBAgF/An4jgICAgABBEGsiACSAgICAACAAEKCAgIAAAkAgACgCAEEBRw0AIAAoAgQgACgCCBChgICAAAsgABCsgICAACAAKQMIIQEgACkDAEGICBCqgICAACABEIGAgIAAGiAAEK+AgIAAAkAgACgCAA0AENaAgIAAAAsgACkDCCECENCAgIAAIAEQwoCAgAAgAiABEM6AgIAAIABBEGokgICAgABCAgsJABC9gICAAAALoAECAX8CfiOAgICAAEEQayIAJICAgIAAIAAQoICAgAACQCAAKAIAQQFHDQAgACgCBCAAKAIIEKGAgIAACxCogICAACEBEKuAgIAAQQAQroCAgABCAhCPgICAABpB0IPAgABBExC6gICAABDTgICAACECIAAgATcDACACQeSDwIAAQQEgAEEBENSAgIAAEI6AgIAAGiAAQRBqJICAgIAAQgILMQACQCAAQv8Bg0IEUg0AIAFC/wGDQgRSDQAgAEIgiKcgAUIgiKcQoYCAgABCAg8LAAveBAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ2oCAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDagICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGCACQShqEKCAgIAAAkAgAigCKEEBRw0AIAIoAiwgAigCMBChgICAAAsQpoCAgAACQAJAAkAQo4CAgAANABDRgICAACIDQYD7gAMgA0GA+4ADSRshBCACIAJBGGo2AiwgAiACQQhqNgIoQQAhAwNAIANBCEYNAwJAIAJBKGogA2ooAgAiBSgCAEEBcUUNACAFKAIIIgYgBEsNAyAFKAIEIAZLDQMLIANBBGohAwwACwtCg4CAgND/ABCtgICAAAALQoOAgIDA/wAQrYCAgAAACwJAAkAgAigCCEEBRw0AIAIoAgwgAigCEBDAgICAAAwBC0EBEKSAgIAAQgIQj4CAgAAaCwJAAkAgAigCGEEBRw0AIAIoAhwgAigCIBDBgICAAAwBC0ECEKSAgIAAQgIQj4CAgAAaCyACQShqQQhqIAJBCGpBCGooAgA2AgAgAkE8aiACQRhqQQhqKAIANgIAIAIgAikDCDcDKCACIAIpAxg3AjRBmITAgABBDxC6gICAABDTgICAACEAIAJBKGoQ24CAgAAhASACIAJBNGoQ24CAgAA3A0ggAiABNwNAIABBvITAgABBAiACQcAAakECENSAgIAAEI6AgIAAGiACQdAAaiSAgICAAEICDwsAC2gBAX8jgICAgABBEGsiAiSAgICAAAJAAkAgAUICUQ0AIAJBBGogARDkgICAAAJAIAIoAgRFDQAgAEECNgIADAILIAAgAikCCDcCBCAAQQE2AgAMAQsgAEEANgIACyACQRBqJICAgIAAC0MCAX8BfiOAgICAAEEQayIBJICAgIAAIAEgABDegICAAAJAIAEoAgBBAUcNAAALIAEpAwghAiABQRBqJICAgIAAIAILxAECAn8BfiOAgICAAEHAAGsiACSAgICAACAAQQhqEKCAgIAAAkAgACgCCEEBRw0AIAAoAgwgACgCEBChgICAAAsgAEEIahCggICAACAAQRRqIgFBAhDdgICAACAAQTBqIABBCGoQ3oCAgAACQAJAIAAoAjANACAAKQM4IQIgAEEwaiABEN6AgIAAIAAoAjBBAUcNAQsACyAAIAApAzg3AyggACACNwMgIABBIGpBAhC7gICAACECIABBwABqJICAgIAAIAILdwICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkACQCABEKSAgIAAIgRCAhClgICAAEUNACACQQRqIARCAhCAgICAABDkgICAAEEBIQMgAigCBEEBRg0BIAAgAikCCDcCBAsgACADNgIAIAJBEGokgICAgAAPCwALMAACQCABKAIAQQFHDQAgACABKAIEIAEoAggQ5YCAgAAPCyAAQgA3AwAgAEICNwMIC6oBAQF/I4CAgIAAQSBrIgAkgICAgAAgAEEMahCggICAAAJAIAAoAgxBAUcNACAAKAIQIAAoAhQQoYCAgAALEKaAgIAAAkAQo4CAgABFDQBCg4CAgOD/ABCtgICAAAALQQAQpICAgABCAUICEJCAgIAAGkHMhMCAAEESELqAgIAAENOAgIAAQQRBACAAQRhqQQAQ1ICAgAAQjoCAgAAaIABBIGokgICAgABCAgsJABCjgICAAK0LAwAAC9sBAgF+BH8CQAJAIAJBCUsNAEIAIQMgAiEEIAEhBQNAAkAgBA0AIANCCIZCDoQhAwwDC0EBIQYCQCAFLQAAIgdB3wBGDQACQCAHQVBqQf8BcUEKSQ0AAkAgB0G/f2pB/wFxQRpJDQAgB0Gff2pB/wFxQRlLDQQgB0FFaiEGDAILIAdBS2ohBgwBCyAHQVJqIQYLIANCBoYgBq1C/wGDhCEDIARBf2ohBCAFQQFqIQUMAAsLIAGtQiCGQgSEIAKtQiCGQgSEEJSAgIAAIQMLIABCADcDACAAIAM3AwgLUQIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABIAIQ4oCAgABCASEEAkAgAygCAA0AIAAgAykDCDcDCEIAIQQLIAAgBDcDACADQRBqJICAgIAAC60BAgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQANAIANBEEYNASACIANqQgI3AwAgA0EIaiEDDAALC0EBIQMCQCABQv8Bg0LMAFINACABQYiEwIAAQQIgAkECELKAgIAAIAIpAwAiAUL/AYNCBFINACACKQMIIgRC/wGDQgRSDQAgACABQiCIpzYCCCAAIARCIIg+AgRBACEDCyAAIAM2AgAgAkEQaiSAgICAAAtgAgF/AX4jgICAgABBEGsiAySAgICAACADIAGtQiCGQgSENwMIIAMgAq1CIIZCBIQ3AwBBiITAgABBAiADQQIQ1ICAgAAhBCAAQgA3AwAgACAENwMIIANBEGokgICAgAALRAEBfyOAgICAAEEQayICJICAgIAAIAIgATcDCCACQQhqQQEQu4CAgAAhASAAQgA3AwAgACABNwMIIAJBEGokgICAgAALkgECAX8BfiOAgICAAEEQayIBJICAgIAAAkACQAJAAkAgAEEBcUUNACABQfaEwIAAQQkQ44CAgAAgASgCAA0CIAEgASkDCBDmgICAAAwBCyABQd6EwIAAQQYQ44CAgAAgASgCAA0BIAEgASkDCBDmgICAAAsgASkDCCECIAEpAwBQDQELAAsgAUEQaiSAgICAACACC1YCAX8BfiOAgICAAEEQayIDJICAgIAAIAAQpICAgAAhBCADIAEgAhDlgICAAAJAIAMoAgBBAUcNAAALIAQgAykDCEICEJCAgIAAGiADQRBqJICAgIAAC1cBAX4CQAJAIANBwABxDQAgA0UNASACQQAgA2tBP3GthiABIANBP3GtIgSIhCEBIAIgBIghAgwBCyACIANBP3GtiCEBQgAhAgsgACABNwMAIAAgAjcDCAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAiADQT9xrSIEhiABQQAgA2tBP3GtiIQhAiABIASGIQEMAQsgASADQT9xrYYhAkIAIQELIAAgATcDACAAIAI3AwgL0QgEAX8BfgN/BH4jgICAgABBsAFrIgUkgICAgABCACEGAkACQAJAAkACQCAEeSADeULAAHwgBEIAUhunIgcgAnkgAXlCwAB8IAJCAFIbpyIITQ0AIAhBP0sNASAHQd8ASw0CIAcgCGtBIEkNAyAFQaABaiADIARB4AAgB2siCRDpgICAACAFNQKgAUIBfCEKQgAhC0IAIQYCQAJAAkACQANAIAVBkAFqIAEgAkHAACAIayIIEOmAgIAAIAUpA5ABIQwCQCAIIAlPDQAgBUHQAGogAyAEIAgQ6YCAgAACQAJAIAUpA1AiClBFDQAMAQsgDCAKgCEMCyAFQcAAaiADIAQgDEIAEO2AgIAAAkAgASAFKQNAIg1UIgggAiAFKQNIIgpUIAIgClEbDQAgAiAKfSAIrX0hAiABIA19IQEgBiALIAx8IgwgC1StfCEGDAsLIAIgBHwgASADfCIEIAFUrXwgCn0gBCANVK19IQIgBCANfSEBIAYgDCALfEJ/fCIMIAtUrXwhBgwKCyAFQYABaiAMIAqAIgxCACAIIAlrIggQ6oCAgAAgBUHwAGogAyAEIAxCABDtgICAACAFQeAAaiAFKQNwIAUpA3ggCBDqgICAACAFKQOIASAGfCAFKQOAASIGIAt8IgsgBlStfCEGIAcgAiAFKQNofSABIAUpA2AiDFStfSICeSABIAx9IgF5QsAAfCACQgBSG6ciCE0NASAIQT9NDQALIANQRQ0BDAILIAEgA1QiCCACIARUIAIgBFEbRQ0CIAshDAwHCyABIAOAIQILIAEgA4IhASAGIAsgAnwiDCALVK18IQZCACECDAULIAIgBH0gCK19IQIgASADfSEBIAYgC0IBfCIMUK18IQYMBAsgAiAEQgAgASADWiACIARaIAIgBFEbIggbfSABIANCACAIGyIEVK19IQIgASAEfSEBIAitIQwMAwsgASABIAOAIgwgA359IQFCACEGQgAhAgwCCyACIAIgA0L/////D4MiBIAiBiADfn1CIIYgAUIgiCIMhCAEgCICQiCGIAwgAiADfn1CIIYgAUL/////D4OEIgEgBIAiA4QhDCABIAMgBH59IQEgAkIgiCAGhCEGQgAhAgwBCyAFQTBqIAMgBEHAACAIayIIEOmAgIAAIAVBIGogASACIAgQ6YCAgABCACEGIAVBEGogA0IAIAUpAyAgBSkDMIAiDEIAEO2AgIAAIAUgBEIAIAxCABDtgICAACAFKQMQIQoCQAJAIAUpAwggBSkDGCINIAUpAwB8IgsgDVStfEIAUg0AIAEgClQiCCACIAtUIAIgC1EbRQ0BCyAEIAJ8IAMgAXwiASADVK18IAt9IAEgClStfSECIAxCf3whDCABIAp9IQEMAQsgAiALfSAIrX0hAiABIAp9IQFCACEGCyAAIAE3AxAgACAMNwMAIAAgAjcDGCAAIAY3AwggBUGwAWokgICAgAALSAEBfyOAgICAAEEgayIFJICAgIAAIAUgASACIAMgBBDrgICAACAFKQMAIQQgACAFKQMINwMIIAAgBDcDACAFQSBqJICAgIAAC24BBn4gACADQv////8PgyIFIAFC/////w+DIgZ+IgcgA0IgiCIIIAZ+IgYgBSABQiCIIgl+fCIFQiCGfCIKNwMAIAAgCCAJfiAFIAZUrUIghiAFQiCIhHwgCiAHVK18IAQgAX4gAyACfnx8NwMICwuJBQEAQYCAwAAL/wRkZWZhdWx0X211bHRpcGxpZXJfYnBzZHN0X2VpZGZsb29yX21hcmdpbl91c2RtdWx0aXBsaWVyX2Jwc29wdGlvbnNwcmljZV9mZWVkc2VuZGVyY2FsbGRhdGFfc2l6ZWx6X2NvbXBvc2VfYmFzZV9nYXNsel9yZWNlaXZlX2Jhc2VfZ2FzbmF0aXZlX2NhcABSABAADQAAAAAAEAAWAAAAFgAQAAcAAAAdABAAEAAAAF8AEAATAAAAcgAQABMAAAAtABAADgAAAIUAEAAKAAAAOwAQAAcAAABCABAACgAAAEwAEAAGAAAAcHJpY2VfcmF0aW9uYXRpdmVfcHJpY2VfdXNkcHJpY2VfcmF0aW9fZGVub21pbmF0b3J0b3RhbF9nYXNfZmVlAPMAEAAQAAAA6AAQAAsAAAADARAAFwAAABoBEAANAAAAZXN0aW1hdGVfZmVlX2J5X2VpZHRocmVzaG9sZG93bmVyc2hpcF90cmFuc2ZlcnJlZG5ld19vd25lcm9sZF9vd25lcgB5ARAACQAAAIIBEAAJAAAAb3duZXJzaGlwX3RyYW5zZmVycmluZ3R0bAAAAHkBEAAJAAAAggEQAAkAAACyARAAAwAAAG93bmVyc2hpcF9yZW5vdW5jZWQAggEQAAkAAABPd25lclBlbmRpbmdPd25lcmV4dGVuZF90bwAA/QEQAAkAAABbARAACQAAAHR0bF9jb25maWdzX3NldGluc3RhbmNlcGVyc2lzdGVudAAAACcCEAAIAAAALwIQAAoAAAB0dGxfY29uZmlnc19mcm96ZW5Gcm96ZW5JbnN0YW5jZVBlcnNpc3RlbnRNaWdyYXRpbmcAt54BDmNvbnRyYWN0c3BlY3YwAAAABAAAAAAAAAAAAAAAE0V4ZWN1dG9yRmVlTGliRXJyb3IAAAAADAAAAAAAAAAPRWlkTm90U3VwcG9ydGVkAAAAAAEAAAAAAAAAFkludmFsaWRFeGVjdXRvck9wdGlvbnMAAAAAAAIAAAAAAAAACkludmFsaWRGZWUAAAAAAAMAAAAAAAAAFkludmFsaWRMekNvbXBvc2VPcHRpb24AAAAAAAQAAAAAAAAAFkludmFsaWRMelJlY2VpdmVPcHRpb24AAAAAAAUAAAAAAAAAF0ludmFsaWROYXRpdmVEcm9wT3B0aW9uAAAAAAYAAAAAAAAAFk5hdGl2ZUFtb3VudEV4Y2VlZHNDYXAAAAAAAAcAAAAAAAAACU5vT3B0aW9ucwAAAAAAAAgAAAAAAAAACE92ZXJmbG93AAAACQAAAAAAAAAVVW5zdXBwb3J0ZWRPcHRpb25UeXBlAAAAAAAACgAAAAAAAAAYWmVyb0x6Q29tcG9zZUdhc1Byb3ZpZGVkAAAACwAAAAAAAAAYWmVyb0x6UmVjZWl2ZUdhc1Byb3ZpZGVkAAAADAAAAAAAAAJRQ2FsY3VsYXRlcyB0aGUgdG90YWwgZXhlY3V0aW9uIGZlZSBmb3IgYSBjcm9zcy1jaGFpbiBtZXNzYWdlLgoKRGVjb2RlcyBleGVjdXRvciBvcHRpb25zLCBlc3RpbWF0ZXMgZ2FzIGZlZXMgZnJvbSB0aGUgcHJpY2UgZmVlZCwgYXBwbGllcwptdWx0aXBsaWVycyBhbmQgbWFyZ2lucywgYW5kIGNvbnZlcnRzIG5hdGl2ZSB0b2tlbiB2YWx1ZXMuIFJldHVybnMgdGhlCnRvdGFsIGZlZSBpbiBuYXRpdmUgdG9rZW5zLgoKIyBBcmd1bWVudHMKKiBgZXhlY3V0b3JgIC0gRXhlY3V0b3IgY29udHJhY3QgYWRkcmVzcyAodW51c2VkLCBrZXB0IGZvciBpbnRlcmZhY2UgY29tcGF0aWJpbGl0eSkKKiBgcGFyYW1zYCAtIEZlZSBjYWxjdWxhdGlvbiBwYXJhbWV0ZXJzCgojIFJldHVybnMKVG90YWwgZXhlY3V0aW9uIGZlZSBpbiBuYXRpdmUgdG9rZW5zLgoKIyBFcnJvcnMKKiBgRWlkTm90U3VwcG9ydGVkYCAtIElmIGRlc3RpbmF0aW9uIGVuZHBvaW50IGlzIG5vdCBzdXBwb3J0ZWQgKGx6X3JlY2VpdmVfYmFzZV9nYXMgaXMgMCkKKiBWYXJpb3VzIGV4ZWN1dG9yIG9wdGlvbiBwYXJzaW5nIGVycm9ycyAoc2VlIGBwYXJzZV9leGVjdXRvcl9vcHRpb25zYCkAAAAAAAAHZ2V0X2ZlZQAAAAACAAAAAAAAAAhleGVjdXRvcgAAABMAAAAAAAAABnBhcmFtcwAAAAAH0AAAAAlGZWVQYXJhbXMAAAAAAAABAAAACwAAAAAAAABbUmV0dXJucyB0aGUgdmVyc2lvbiBvZiB0aGUgZmVlIGxpYnJhcnkuCgojIFJldHVybnMKVHVwbGUgb2YgKG1ham9yX3ZlcnNpb24sIG1pbm9yX3ZlcnNpb24pLgAAAAAHdmVyc2lvbgAAAAAAAAAAAQAAA+0AAAACAAAABgAAAAQAAAAAAAAAAAAAAA1fX2NvbnN0cnVjdG9yAAAAAAAAAQAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAACVVGhlIHR5cGUgb2YgZGF0YSByZXF1aXJlZCBmb3IgbWlncmF0aW9uLgpVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAAAAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAXlBlcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuClRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZS4AAAAAAAZmcmVlemUAAAAAAAAAAAAAAAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAATAAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAABZUmV0dXJucyB0aGUgcGVuZGluZyBvd25lciBhZGRyZXNzIGZvciAyLXN0ZXAgdHJhbnNmZXIsIG9yIE5vbmUgaWYgbm8gdHJhbnNmZXIgaXMgcGVuZGluZy4AAAAAAAANcGVuZGluZ19vd25lcgAAAAAAAAAAAAABAAAD6AAAABMAAAAAAAABK1RyYW5zZmVycyBvd25lcnNoaXAgaW1tZWRpYXRlbHkgdG8gYSBuZXcgYWRkcmVzcy4KClVzZSB3aXRoIGNhdXRpb24gLSBpZiB5b3UgdHJhbnNmZXIgdG8gYSB3cm9uZyBhZGRyZXNzLCBvd25lcnNoaXAgaXMgbG9zdCBmb3JldmVyLgpDb25zaWRlciB1c2luZyBgcHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXJgIGluc3RlYWQuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBUcmFuc2ZlckluUHJvZ3Jlc3NgIGlmIGEgMi1zdGVwIHRyYW5zZmVyIGlzIGluIHByb2dyZXNzAAAAABJ0cmFuc2Zlcl9vd25lcnNoaXAAAAAAAAEAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAlxQcm9wb3NlcyBhbiBvd25lcnNoaXAgdHJhbnNmZXIgdG8gYSBuZXcgYWRkcmVzcy4KClRoZSBuZXcgb3duZXIgbXVzdCBjYWxsIGBhY2NlcHRfb3duZXJzaGlwKClgIHdpdGhpbiBgdHRsYCBsZWRnZXJzCnRvIGNvbXBsZXRlIHRoZSB0cmFuc2Zlci4gVGhlIHBlbmRpbmcgdHJhbnNmZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGlyZSBhZnRlci4KCiMgQXJndW1lbnRzCi0gYG5ld19vd25lcmAgLSBUaGUgcHJvcG9zZWQgbmV3IG93bmVyCi0gYHR0bGAgLSBOdW1iZXIgb2YgbGVkZ2VycyB0aGUgbmV3IG93bmVyIGhhcyB0byBhY2NlcHQuClVzZSBgMGAgdG8gY2FuY2VsIGEgcGVuZGluZyB0cmFuc2ZlciAobmV3X293bmVyIG11c3QgbWF0Y2ggcGVuZGluZykuCgojIFBhbmljcwotIGBPd25lck5vdFNldGAgaWYgbm8gb3duZXIgaXMgY3VycmVudGx5IHNldAotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgd2hlbiBjYW5jZWxsaW5nIGFuZCBubyBwZW5kaW5nIHRyYW5zZmVyIGV4aXN0cwotIGBJbnZhbGlkVHRsYCBpZiB0dGwgZXhjZWVkcyBtYXggVFRMCi0gYEludmFsaWRQZW5kaW5nT3duZXJgIHdoZW4gY2FuY2VsbGluZyB3aXRoIHdyb25nIG5ld19vd25lciBhZGRyZXNzAAAAGnByb3Bvc2Vfb3duZXJzaGlwX3RyYW5zZmVyAAAAAAACAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAAAAAAuUFjY2VwdHMgYSBwZW5kaW5nIDItc3RlcCBvd25lcnNoaXAgdHJhbnNmZXIuCgpNdXN0IGJlIGNhbGxlZCBieSB0aGUgcGVuZGluZyBvd25lciBiZWZvcmUgdGhlIFRUTCBleHBpcmVzLgoKIyBQYW5pY3MKLSBgTm9QZW5kaW5nVHJhbnNmZXJgIGlmIHRoZXJlIGlzIG5vIHBlbmRpbmcgdHJhbnNmZXIgKG9yIGl0IGV4cGlyZWQpAAAAAAAAEGFjY2VwdF9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAACkUGVybWFuZW50bHkgcmVub3VuY2VzIG93bmVyc2hpcC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MgKGNhbmNlbCBpdCBmaXJzdCkAAAAScmVub3VuY2Vfb3duZXJzaGlwAAAAAAAAAAAAAAAAAAAAAAClRXh0ZW5kcyB0aGUgaW5zdGFuY2UgVFRMLgoKIyBBcmd1bWVudHMKCiogYHRocmVzaG9sZGAgLSBUaGUgdGhyZXNob2xkIHRvIGV4dGVuZCB0aGUgVFRMIChpZiBjdXJyZW50IFRUTCBpcyBiZWxvdyB0aGlzLCBleHRlbmQpLgoqIGBleHRlbmRfdG9gIC0gVGhlIFRUTCB0byBleHRlbmQgdG8uAAAAAAAAE2V4dGVuZF9pbnN0YW5jZV90dGwAAAAAAgAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAJZXh0ZW5kX3RvAAAAAAAABAAAAAAAAAAAAAABj1NldHMgVFRMIGNvbmZpZ3MgZm9yIGluc3RhbmNlIGFuZCBwZXJzaXN0ZW50IHN0b3JhZ2UuCgotIGBOb25lYCB2YWx1ZXMgcmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGNvbmZpZyAoZGlzYWJsZXMgYXV0by1leHRlbnNpb24gZm9yIHRoYXQgdHlwZSkKLSBWYWxpZGF0ZXMgdGhhdCBgdGhyZXNob2xkIDw9IGV4dGVuZF90byA8PSBNQVhfVFRMYAoKIyBBcmd1bWVudHMKLSBgaW5zdGFuY2VgIC0gVFRMIGNvbmZpZyBmb3IgaW5zdGFuY2Ugc3RvcmFnZQotIGBwZXJzaXN0ZW50YCAtIFRUTCBjb25maWcgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZQoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnRnJvemVuYCBpZiBjb25maWdzIGFyZSBmcm96ZW4KLSBgSW52YWxpZFR0bENvbmZpZ2AgaWYgdmFsaWRhdGlvbiBmYWlscwAAAAAPc2V0X3R0bF9jb25maWdzAAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAEhSZXR1cm5zIHRoZSBjdXJyZW50IFRUTCBjb25maWdzIGFzIChpbnN0YW5jZV9jb25maWcsIHBlcnNpc3RlbnRfY29uZmlnKS4AAAALdHRsX2NvbmZpZ3MAAAAAAAAAAAEAAAPtAAAAAgAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAADhUGVybWFuZW50bHkgZnJlZXplcyBUVEwgY29uZmlncywgcHJldmVudGluZyBhbnkgZnV0dXJlIG1vZGlmaWNhdGlvbnMuCgpUaGlzIGlzIGlycmV2ZXJzaWJsZSBhbmQgcHJvdmlkZXMgaW1tdXRhYmlsaXR5IGd1YXJhbnRlZXMgdG8gdXNlcnMuCkVtaXRzIGBUdGxDb25maWdzRnJvemVuYCBldmVudC4KCiMgUGFuaWNzCi0gYFR0bENvbmZpZ0FscmVhZHlGcm96ZW5gIGlmIGFscmVhZHkgZnJvemVuAAAAAAAAEmZyZWV6ZV90dGxfY29uZmlncwAAAAAAAAAAAAAAAAAAAAAAJ1JldHVybnMgd2hldGhlciBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAVaXNfdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAAEAAAABAAAABQAAAAAAAAAAAAAAClBhY2tldFNlbnQAAAAAAAEAAAALcGFja2V0X3NlbnQAAAAAAwAAAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAAAAAAAAAAAAAdvcHRpb25zAAAAAA4AAAAAAAAAAAAAAAxzZW5kX2xpYnJhcnkAAAATAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAOUGFja2V0VmVyaWZpZWQAAAAAAAEAAAAPcGFja2V0X3ZlcmlmaWVkAAAAAAMAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAAAAAAADHBheWxvYWRfaGFzaAAAA+4AAAAgAAAAAAAAAAIAAAAFAAAAAAAAAAAAAAAPUGFja2V0RGVsaXZlcmVkAAAAAAEAAAAQcGFja2V0X2RlbGl2ZXJlZAAAAAIAAAAAAAAABm9yaWdpbgAAAAAH0AAAAAZPcmlnaW4AAAAAAAEAAAAAAAAACHJlY2VpdmVyAAAAEwAAAAEAAAACAAAABQAAAAAAAAAAAAAADkx6UmVjZWl2ZUFsZXJ0AAAAAAABAAAAEGx6X3JlY2VpdmVfYWxlcnQAAAAJAAAAAAAAAAhyZWNlaXZlcgAAABMA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AAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAAAAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAAAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAAAAAADFVuYXV0aG9yaXplZAAAABYAAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAAAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQAAAAEAAAAtUGFyYW1ldGVycyBmb3Igc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAAA9NZXNzYWdpbmdQYXJhbXMAAAAABQAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAcVGhlIG1lc3NhZ2UgcGF5bG9hZCB0byBzZW5kLgAAAAdtZXNzYWdlAAAAAA4AAAAhRW5jb2RlZCBleGVjdXRvciBhbmQgRFZOIG9wdGlvbnMuAAAAAAAAB29wdGlvbnMAAAAADgAAADlXaGV0aGVyIHRvIHBheSBmZWVzIGluIFpSTyB0b2tlbiBpbnN0ZWFkIG9mIG5hdGl2ZSB0b2tlbi4AAAAAAAAKcGF5X2luX3pybwAAAAAAAQAAADVSZWNlaXZlciBhZGRyZXNzIG9uIHRoZSBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAKEZlZSBzdHJ1Y3R1cmUgZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2luZy4AAAAAAAAADE1lc3NhZ2luZ0ZlZQAAAAIAAAAfRmVlIHBhaWQgaW4gbmF0aXZlIHRva2VuIChYTE0pLgAAAAAKbmF0aXZlX2ZlZQAAAAAACwAAAChGZWUgcGFpZCBpbiBaUk8gdG9rZW4gKExheWVyWmVybyB0b2tlbikuAAAAB3pyb19mZWUAAAAACwAAAAEAAABCUmVjZWlwdCByZXR1cm5lZCBhZnRlciBzdWNjZXNzZnVsbHkgc2VuZGluZyBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuAAAAAAAAAAAAEE1lc3NhZ2luZ1JlY2VpcHQAAAADAAAAKVRoZSBmZWVzIGNoYXJnZWQgZm9yIHNlbmRpbmcgdGhlIG1lc3NhZ2UuAAAAAAAAA2ZlZQAAAAfQAAAADE1lc3NhZ2luZ0ZlZQAAACtHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG1lc3NhZ2UuAAAAAARndWlkAAAD7gAAACAAAAAkVGhlIG91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAAAIAAAA4VHlwZSBvZiBtZXNzYWdlIGxpYnJhcnkgaW5kaWNhdGluZyBzdXBwb3J0ZWQgb3BlcmF0aW9ucy4AAAAAAAAADk1lc3NhZ2VMaWJUeXBlAAAAAAADAAAAAAAAAB9TdXBwb3J0cyBvbmx5IHNlbmRpbmcgbWVzc2FnZXMuAAAAAARTZW5kAAAAAAAAACFTdXBwb3J0cyBvbmx5IHJlY2VpdmluZyBtZXNzYWdlcy4AAAAAAAAHUmVjZWl2ZQAAAAAAAAAALVN1cHBvcnRzIGJvdGggc2VuZGluZyBhbmQgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAA5TZW5kQW5kUmVjZWl2ZQAAAAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABAAAAAEAAAA2VGltZW91dCBjb25maWd1cmF0aW9uIGZvciByZWNlaXZlIGxpYnJhcnkgdHJhbnNpdGlvbnMuAAAAAAAAAAAAB1RpbWVvdXQAAAAAAgAAAChVbml4IHRpbWVzdGFtcCB3aGVuIHRoZSB0aW1lb3V0IGV4cGlyZXMuAAAABmV4cGlyeQAAAAAABgAAAClUaGUgbmV3IGxpYnJhcnkgYWRkcmVzcyB0byB0cmFuc2l0aW9uIHRvLgAAAAAAAANsaWIAAAAAEwAAAAEAAAA1UGFyYW1ldGVycyBmb3Igc2V0dGluZyBtZXNzYWdlIGxpYnJhcnkgY29uZmlndXJhdGlvbi4AAAAAAAAAAAAADlNldENvbmZpZ1BhcmFtAAAAAAADAAAAH1hEUi1lbmNvZGVkIGNvbmZpZ3VyYXRpb24gZGF0YS4AAAAABmNvbmZpZwAAAAAADgAAADBUaGUgdHlwZSBvZiBjb25maWd1cmF0aW9uIChlLmcuLCBleGVjdXRvciwgVUxOKS4AAAALY29uZmlnX3R5cGUAAAAABAAAACdUaGUgZW5kcG9pbnQgSUQgdGhpcyBjb25maWcgYXBwbGllcyB0by4AAAAAA2VpZAAAAAAEAAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAATAAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQAAAABAAAAK0EgZmVlIHJlY2lwaWVudCB3aXRoIHRoZSBhbW91bnQgdG8gYmUgcGFpZC4AAAAAAAAAAAxGZWVSZWNpcGllbnQAAAACAAAAFUFtb3VudCBvZiBmZWUgdG8gcGF5LgAAAAAAAAZhbW91bnQAAAAAAAsAAAAfVGhlIGFkZHJlc3MgdG8gc2VuZCB0aGUgZmVlIHRvLgAAAAACdG8AAAAAABMAAAABAAAAPFJlc3VsdCBvZiBzZW5kIG9wZXJhdGlvbiBjb250YWluaW5nIGZlZXMgYW5kIGVuY29kZWQgcGFja2V0LgAAAAAAAAANRmVlc0FuZFBhY2tldAAAAAAAAAMAAAAqVGhlIGVuY29kZWQgcGFja2V0IHJlYWR5IGZvciB0cmFuc21pc3Npb24uAAAAAAAOZW5jb2RlZF9wYWNrZXQAAAAAAA4AAAA/TGlzdCBvZiBuYXRpdmUgdG9rZW4gZmVlIHJlY2lwaWVudHMgKGV4ZWN1dG9yLCBEVk5zLCB0cmVhc3VyeSkuAAAAABVuYXRpdmVfZmVlX3JlY2lwaWVudHMAAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAAsTGlzdCBvZiBaUk8gdG9rZW4gZmVlIHJlY2lwaWVudHMgKHRyZWFzdXJ5KS4AAAASenJvX2ZlZV9yZWNpcGllbnRzAAAAAAPqAAAH0AAAAAxGZWVSZWNpcGllbnQAAAABAAAA4VBhcmFtZXRlcnMgZm9yIERWTiBmZWUgY2FsY3VsYXRpb24uCgpDb250YWlucyBhbGwgaW5wdXRzIG5lZWRlZCBieSB0aGUgZmVlIGxpYnJhcnkgdG8gY2FsY3VsYXRlIHZlcmlmaWNhdGlvbiBmZWVzCmZvciBjcm9zcy1jaGFpbiBtZXNzYWdlcy4gSW5jbHVkZXMgbWVzc2FnZSBwYXJhbWV0ZXJzLCBjb21tb24gY29uZmlndXJhdGlvbiwKYW5kIGRlc3RpbmF0aW9uLXNwZWNpZmljIHNldHRpbmdzLgAAAAAAAAAAAAAMRHZuRmVlUGFyYW1zAAAACgAAACdOdW1iZXIgb2YgYmxvY2sgY29uZmlybWF0aW9ucyByZXF1aXJlZC4AAAAADWNvbmZpcm1hdGlvbnMAAAAAAAAGAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KR2FzIGVzdGltYXRlIGZvciB2ZXJpZmljYXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAA2dhcwAAAAAKAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAAAtEVk4gb3B0aW9ucwAAAAAHb3B0aW9ucwAAAAAOAAABED09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNvbW1vbiBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClByaWNlIGZlZWQgY29udHJhY3QgYWRkcmVzcyBmb3IgZ2FzIHByaWNlIGFuZCBleGNoYW5nZSByYXRlIGRhdGEuAAAACnByaWNlX2ZlZWQAAAAAABMAAAAnTnVtYmVyIG9mIHJlcXVpcmVkIHNpZ25hdHVyZXMgKHF1b3J1bSkuAAAAAAZxdW9ydW0AAAAAAAQAAADlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KTWVzc2FnZSBQYXJhbWV0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBPQXBwIHNlbmRlciBhZGRyZXNzLgAAAAAAAAZzZW5kZXIAAAAAABMAAAABAAAA41BhcmFtZXRlcnMgZm9yIGV4ZWN1dG9yIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgZXhlY3V0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAJRmVlUGFyYW1zAAAAAAAACwAAACZTaXplIG9mIHRoZSBtZXNzYWdlIGNhbGxkYXRhIGluIGJ5dGVzLgAAAAAADWNhbGxkYXRhX3NpemUAAAAAAAAEAAAATERlZmF1bHQgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICh1c2VkIGlmIG5vIGRzdC1zcGVjaWZpYyBtdWx0aXBsaWVyKS4AAAAWZGVmYXVsdF9tdWx0aXBsaWVyX2JwcwAAAAAABAAAACtEZXN0aW5hdGlvbiBlbmRwb2ludCBJRCAoY2hhaW4gaWRlbnRpZmllcikuAAAAAAdkc3RfZWlkAAAAAAQAAAAjTWluaW11bSBmZWUgbWFyZ2luIGluIFVTRCAoc2NhbGVkKS4AAAAAEGZsb29yX21hcmdpbl91c2QAAAAKAAAANkJhc2UgZ2FzIGZvciBlYWNoIGx6Q29tcG9zZSBjYWxsIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAAE2x6X2NvbXBvc2VfYmFzZV9nYXMAAAAABgAAARM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpEZXN0aW5hdGlvbi1TcGVjaWZpYyBDb25maWd1cmF0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJhc2UgZ2FzIGZvciBselJlY2VpdmUgZXhlY3V0aW9uIG9uIGRlc3RpbmF0aW9uIGNoYWluLgAAAAATbHpfcmVjZWl2ZV9iYXNlX2dhcwAAAAAGAAAARkRlc3RpbmF0aW9uLXNwZWNpZmljIGZlZSBtdWx0aXBsaWVyIGluIGJhc2lzIHBvaW50cyAoMCA9IHVzZSBkZWZhdWx0KS4AAAAAAA5tdWx0aXBsaWVyX2JwcwAAAAAABAAAACxNYXhpbXVtIG5hdGl2ZSB0b2tlbiB2YWx1ZSB0aGF0IGNhbiBiZSBzZW50LgAAAApuYXRpdmVfY2FwAAAAAAAKAAAARkVuY29kZWQgZXhlY3V0b3Igb3B0aW9ucyAobHpSZWNlaXZlIGdhcywgbHpDb21wb3NlLCBuYXRpdmVEcm9wLCBldGMuKS4AAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAACER2FzIHByaWNlIGluZm9ybWF0aW9uIGZvciBhIGRlc3RpbmF0aW9uIGVuZHBvaW50LgoKQ29udGFpbnMgdGhlIGV4Y2hhbmdlIHJhdGUgYW5kIGdhcyBjb3N0cyBuZWVkZWQgZm9yIGNyb3NzLWNoYWluIGZlZSBjYWxjdWxhdGlvbnMuAAAAAAAAAAVQcmljZQAAAAAAAAMAAAA3R2FzIGNvc3QgcGVyIGJ5dGUgb2YgY2FsbGRhdGEgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluLgAAAAAMZ2FzX3Blcl9ieXRlAAAABAAAAEJHYXMgcHJpY2UgaW4gdGhlIHNtYWxsZXN0IHVuaXQgKHdlaSBmb3IgRVZNLCBzdHJvb3BzIGZvciBTdGVsbGFyKS4AAAAAABFnYXNfcHJpY2VfaW5fdW5pdAAAAAAAAAYAAACpUHJpY2UgcmF0aW8gPSAocmVtb3RlIG5hdGl2ZSB0b2tlbiBwcmljZSAvIGxvY2FsIG5hdGl2ZSB0b2tlbiBwcmljZSkgKiBQUklDRV9SQVRJT19ERU5PTUlOQVRPUi4KVXNlZCB0byBjb252ZXJ0IGRlc3RpbmF0aW9uIGNoYWluIGdhcyBjb3N0cyB0byBzb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAAQAAAIBGZWUgZXN0aW1hdGlvbiByZXN1bHQgd2l0aCBkZXRhaWxlZCBicmVha2Rvd24uCgpDb250YWlucyB0aGUgY2FsY3VsYXRlZCBmZWUgYW5kIGFsbCBpbnRlcm1lZGlhdGUgdmFsdWVzIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAALRmVlRXN0aW1hdGUAAAAABAAAADBTb3VyY2UgY2hhaW4gbmF0aXZlIHRva2VuIHByaWNlIGluIFVTRCAoc2NhbGVkKS4AAAAQbmF0aXZlX3ByaWNlX3VzZAAAAAoAAAAlUHJpY2UgcmF0aW8gdXNlZCBmb3IgdGhlIGNhbGN1bGF0aW9uLgAAAAAAAAtwcmljZV9yYXRpbwAAAAAKAAAAMkRlbm9taW5hdG9yIGZvciB0aGUgcHJpY2UgcmF0aW8gKHR5cGljYWxseSAxMF4yMCkuAAAAAAAXcHJpY2VfcmF0aW9fZGVub21pbmF0b3IAAAAACgAAADFUb3RhbCBnYXMgZmVlIGluIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gdW5pdHMuAAAAAAAADXRvdGFsX2dhc19mZWUAAAAAAAALAAAABAAAAB1QYWNrZXRDb2RlY1YxRXJyb3I6IDExMDAtMTEwOQAAAAAAAAAAAAASUGFja2V0Q29kZWNWMUVycm9yAAAAAAACAAAAAAAAABNJbnZhbGlkUGFja2V0SGVhZGVyAAAABEwAAAAAAAAAFEludmFsaWRQYWNrZXRWZXJzaW9uAAAETQAAAAQAAAAdV29ya2VyT3B0aW9uc0Vycm9yOiAxMTEwLTExMTkAAAAAAAAAAAAAEldvcmtlck9wdGlvbnNFcnJvcgAAAAAACQAAAAAAAAASSW52YWxpZEJ5dGVzTGVuZ3RoAAAAAARWAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUxAAAAAAAEVwAAAAAAAAAZSW52YWxpZExlZ2FjeU9wdGlvbnNUeXBlMgAAAAAABFgAAAAAAAAAEUludmFsaWRPcHRpb25UeXBlAAAAAAAEWQAAAAAAAAAOSW52YWxpZE9wdGlvbnMAAAAABFoAAAAAAAAAD0ludmFsaWRXb3JrZXJJZAAAAARbAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTFHYXNPdmVyZmxvdwAAAAAABFwAAAAAAAAAIExlZ2FjeU9wdGlvbnNUeXBlMkFtb3VudE92ZXJmbG93AAAEXQAAAAAAAAAdTGVnYWN5T3B0aW9uc1R5cGUyR2FzT3ZlcmZsb3cAAAAAAAReAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAiwEOY29udHJhY3RtZXRhdjAAAAAAAAAABmJpbnZlcgAAAAAABTAuMC4xAAAAAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjUuMC4xIzk0MTQ0ODA3OWVjY2Y5NTYyN2QyZmZlYTEzYmEyNjhlMzA1YTkwNzcAAB4RY29udHJhY3RlbnZtZXRhdjAAAAAAAAAAGQAAAAAAUw5jb250cmFjdG1ldGF2MAAAAAAAAAAGY2xpdmVyAAAAAAAvMjUuMC4wI2E2NDkyNWU5MzkxYzNkM2IzZWY4ZTUzZGM2MGMyM2RiOWU2YTgyZTQA";
10
+ export const WASM_BASE64 = "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pyIYSw0EAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAyAYRw0AIAAgEFYgASAPViABIA9RG0UNAUKDgICA8AAQq4CAgAAACyACQfACahC1gICAABogAkHwAmoQtoCAgAAhAyACQfACahC1gICAACESIANB//8DcUUNEyACIAJB8AJqIANBf2pB//8DcRC3gICAACIENwP4AkEBIRggEkH/AXFBf2oOBAIDBA4BCyAHIAaEQgBRDQsgCCAHfCIHIAhUIgMgBSAGfCADrXwiBCAFVCAEIAVRG0EBRw0EDBILQoOAgICgARCrgICAAAALAkACQAJAIAQQgoCAgABCIIgiBKciA0EgRg0AIANBEEcNAQsgAkEANgKUBCACIAJB+AJqNgKQBCACQbADaiACQZAEahC4gICAACACKQO4AyELIAIpA7ADIQ0gBEIgUQ0BQgAhCUIAIQoMDAtCg4CAgNAAEKuAgIAAAAsgAkGwA2ogAkGQBGoQuICAgAAgAikDuAMhCiACKQOwAyEJIBQNCiAJIAqEQgBRDQpCg4CAgKABEKuAgIAAAAsgBBCCgICAAEKAgICAcINCgICAgIAGUg0HIAJBADYCrAMgAiACQfgCajYCqAMgAkGAA2ogAkGoA2oQuICAgAAgAkGoA2pBIBC3gICAACIEEIKAgIAAQoCAgIBwg0KAgICAgARSDQYgFUIANwMAIAJBsANqQRBqIgNCADcDACAWQgA3AwAgAkIANwOwAyAEEIKAgIAAQoCAgIBwg0KAgICAgARSDQUgBCACQbADakEgELmAgIAAIAJBkARqQRhqIBUpAwA3AwAgAkGQBGpBEGogAykDADcDACACQZAEakEIaiAWKQMANwMAIAIgAikDsAM3A5AEIBNChICAgIAEEIOAgIAAGiAAIAIpA4ADfCIJIABUIgMgASACKQOIA3wgA618IgQgAVQgBCABURsNDyAZIRggCSEAIAQhAQwKCyAXDQICQCAEEIKAgIAAQiCIIg2nIgNBIkYNACADQRJHDQQLIAJBADYClAQgAiACQfgCajYCkAQgAkGQBGoQtoCAgAAaIAJBsANqIAJBkARqELiAgIAAIAIpA7gDIQQgAikDsAMhCUIAIQpCACELAkAgDUIiUg0AIAJBsANqIAJBkARqELiAgIAAIAIpA7gDIQsgAikDsAMh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AkAgAUEQELeAgIAAIgMQgoCAgABCgICAgHCDQoCAgICAAlINACACQgA3AwggAkIANwMAIAMQgoCAgABCgICAgHCDQoCAgICAAlINASADIAJBEBC5gICAACACKQMIIQMgACACKQMAIgRCOIYgBEKA/gODQiiGhCAEQoCA/AeDQhiGIARCgICA+A+DQgiGhIQgBEIIiEKAgID4D4MgBEIYiEKAgPwHg4QgBEIoiEKA/gODIARCOIiEhIQ3AwggACADQjiGIANCgP4Dg0IohoQgA0KAgPwHg0IYhiADQoCAgPgPg0IIhoSEIANCCIhCgICA+A+DIANCGIhCgID8B4OEIANCKIhCgP4DgyADQjiIhISENwMAIAJBEGokgICAgAAPC0KDgICAgIIBEKuAgIAAAAsQvICAgAAACx8AIABCBCABrUIghkIEhCACrUIghkIEhBCUgICAABoLRQIBfwF+I4CAgIAAQRBrIgIkgICAgAAgAiAAIAEQ5ICAgAACQCACKAIAQQFHDQAACyACKQMIIQMgAkEQaiSAgICAACADCxoAIACtQiCGQgSEIAGtQiCGQgSEEJeAgIAACwkAEL2AgIAAAAsJABDjgICAAAALSQIBfwF+I4CAgIAAQRBrIgAkgICAgAAQoICAgAAgAEKEgICAEDcDCCAAQoYCNwMAIABBAhC7gICAACEBIABBEGokgICAgAAgAQtdAAJAAkAgAEL/AYNCzQBSDQBBgMseQYDSHxDAgICAAEGAyx5BgNIfEMGAgIAAQQAQroCAgABCAhCkgICAAA0BIAAQwoCAgABCAg8LAAtCg4CAgKCBARCrgICAAAALDgBBASAAIAEQ6oCAgAALDgBBAiAAIAEQ6oCAgAALDgBBACAAQgIQ1ICAgAALZQACQAJAIABC/wGDQsgAUg0AIAAQgoCAgABCgICAgHCDQoCAgICABFINABClgICAABCggICAABCfgICAAA0BQQEQxICAgAAgABCKgICAABpCAg8LAAtCg4CAgMCDARCrgICAAAALDABBASAAEMeAgIAAC20AAkACQAJAIABC/wGDQsgAUg0AEKWAgIAAEKCAgIAAQQEQoYCAgABB/QFxRQ0BIAAQi4CAgABC/wGDQgJSDQJBABDEgICAAEICDwsAC0KDgICAsIMBEKuAgIAAAAtCg4CAgKCDARCrgICAAAALNQAQpYCAgAAQoICAgAACQBCfgICAAEUNAEKDgICAwIMBEKuAgIAAAAtBAEEBEMeAgIAAQgILGgAgABDpgICAACABrUL/AYNCAhCPgICAABoLCQAQn4CAgACtCwgAEKaAgIAACz4CAX8BfiOAgICAAEEQayIAJICAgIAAIAAQqICAgAAgACkDACAAKQMIEMuAgIAAIQEgAEEQaiSAgICAACABCw0AIAFCAiAAp0EBcRsLPgIBfwF+I4CAgIAAQRBrIgAkgICAgAAgABCtgICAACAAKQMAIAApAwgQy4CAgAAhASAAQRBqJICAgIAAIAELPAEBfgJAIABC/wGDQs0AUQ0AAAsQoICAgAAQp4CAgAAhARCsgICAACAAEMKAgIAAIAEgABDOgICAAEICC2ECAX8BfiOAgICAAEEQayICJICAgIAAQeSCwIAAQRUQuoCAgAAQ0YCAgAAhAyACIAA3AwggAiABNwMAIANBjIPAgABBAiACQQIQ0oCAgAAQjICAgAAaIAJBEGokgICAgAAL/AICAX8CfiOAgICAAEEgayICJICAgIAAAkACQAJAIABC/wGDQs0AUg0AIAFC/wGDQgRSDQAQoICAgAAQp4CAgAAhAwJAAkAgAUL/////D1YNACACQQhqEK2AgIAAIAIpAxAhASACKQMIQYkIEKmAgIAAIAEgABCqgICAAEUNAxDQgICAAEHQg8CAAEEcELqAgIAAENGAgIAAIQAgAiADNwMQIAIgATcDCCAAQYiEwIAAQQIgAkEIakECENKAgIAAEIyAgIAAGgwBCxDTgICAACABQiCIp0kNA0EBIABCABDUgICAAEEBEK6AgIAAQgAgAUKEgICAcIMiASABEI2AgIAAGkGcg8CAAEEWELqAgIAAENGAgIAAIQQgAiABNwMYIAIgAzcDECACIAA3AwggBEG4g8CAAEEDIAJBCGpBAxDSgICAABCMgICAABoLIAJBIGokgICAgABCAg8LAAtCg4CAgPCAARCrgICAAAALQoOAgICAgQEQq4CAgAAACxMAQQEQroCAgABCABCOgICAABoLYwMBfwF+AX8jgICAgABBEGsiASSAgICAACABIAA3AwBCAiECQQEhAwJAA0AgA0UNASADQX9qIQMgACECDAALCyABIAI3AwggAUEIakEBELuAgIAAIQAgAUEQaiSAgICAACAACy4AAkAgASADRg0AAAsgAK1CIIZCBIQgAq1CIIZCBIQgAa1CIIZCBIQQlYCAgAALMwECfhCZgICAACEAAkAQmoCAgABCIIgiASAAQiCIIgBUDQAgAacgAKdrDwsQvYCAgAAACxUAIAAQroCAgAAgASACEI+AgIAAGguIAQIBfwJ+I4CAgIAAQRBrIgAkgICAgAAQoICAgAAgABCtgICAACAAKQMIIQEgACkDAEGJCBCpgICAACABEIGAgIAAGiAAEK+AgIAAAkAgACgCAA0AENaAgIAAAAsgACkDCCECENCAgIAAIAEQwoCAgAAgAiABEM6AgIAAIABBEGokgICAgABCAgsJABC9gICAAAALhAECAX8CfiOAgICAAEEQayIAJICAgIAAEKCAgIAAEKeAgIAAIQEQrICAgABBABCugICAAEICEI6AgIAAGkGYhMCAAEETELqAgIAAENGAgIAAIQIgACABNwMIIAJBrITAgABBASAAQQhqQQEQ0oCAgAAQjICAgAAaIABBEGokgICAgABCAgsxAAJAIABC/wGDQgRSDQAgAUL/AYNCBFINACAAQiCIpyABQiCIpxDZgICAAEICDwsACxsAIACtQiCGQgSEIAGtQiCGQgSEEJyAgIAAGgu8BAEFfyOAgICAAEHQAGsiAiSAgICAACACQShqIAAQ24CAgAACQCACKAIoQQJGDQAgAkEIakEIaiACQShqQQhqIgMoAgA2AgAgAiACKQIoNwMIIAJBKGogARDbgICAACACKAIoQQJGDQAgAkEYakEIaiADKAIANgIAIAIgAikCKDcDGBClgICAABCggICAAAJAAkACQBCigICAAA0AENOAgIAAIgNBgPuAAyADQYD7gANJGyEEIAIgAkEYajYCLCACIAJBCGo2AihBACEDA0AgA0EIRg0DAkAgAkEoaiADaigCACIFKAIAQQFxRQ0AIAUoAggiBiAESw0DIAUoAgQgBksNAwsgA0EEaiEDDAALC0KDgICA0P8AEKuAgIAAAAtCg4CAgMD/ABCrgICAAAALAkACQCACKAIIQQFHDQAgAigCDCACKAIQEMCAgIAADAELQQEQo4CAgABCAhCOgICAABoLAkACQCACKAIYQQFHDQAgAigCHCACKAIgEMGAgIAADAELQQIQo4CAgABCAhCOgICAABoLIAJBKGpBCGogAkEIakEIaigCADYCACACQTxqIAJBGGpBCGooAgA2AgAgAiACKQMINwMoIAIgAikDGDcCNEHghMCAAEEPELqAgIAAENGAgIAAIQAgAkEoahDcgICAACEBIAIgAkE0ahDcgICAADcDSCACIAE3A0AgAEGEhcCAAEECIAJBwABqQQIQ0oCAgAAQjICAgAAaIAJB0ABqJICAgIAAQgIPCwALaAEBfyOAgICAAEEQayICJICAgIAAAkACQCABQgJRDQAgAkEEaiABEOaAgIAAAkAgAigCBEUNACAAQQI2AgAMAgsgACACKQIINwIEIABBATYCAAwBCyAAQQA2AgALIAJBEGokgICAgAALQwIBfwF+I4CAgIAAQRBrIgEkgICAgAAgASAAEOCAgIAAAkAgASgCAEEBRw0AAAsgASkDCCECIAFBEGokgICAgAAgAguiAQICfwF+I4CAgIAAQcAAayIAJICAgIAAEKCAgIAAIABBCGoQ3oCAgAAgAEEUaiIBQQIQ34CAgAAgAEEwaiAAQQhqEOCAgIAAAkACQCAAKAIwDQAgACkDOCECIABBMGogARDggICAACAAKAIwQQFHDQELAAsgACAAKQM4NwMoIAAgAjcDICAAQSBqQQIQu4CAgAAhAiAAQcAAaiSAgICAACACCwwAIABBARDfgICAAAt3AgJ/AX4jgICAgABBEGsiAiSAgICAAEEAIQMCQAJAIAEQo4CAgAAiBEICEKSAgIAARQ0AIAJBBGogBEICEICAgIAAEOaAgIAAQQEhAyACKAIEQQFGDQEgACACKQIINwIECyAAIAM2AgAgAkEQaiSAgICAAA8LAAswAAJAIAEoAgBBAUcNACAAIAEoAgQgASgCCBDngICAAA8LIABCADcDACAAQgI3AwgLiAEBAX8jgICAgABBEGsiACSAgICAABClgICAABCggICAAAJAEKKAgIAARQ0AQoOAgIDg/wAQq4CAgAAAC0EAEKOAgIAAQgFCAhCPgICAABpBlIXAgABBEhC6gICAABDRgICAAEEEQQAgAEEIakEAENKAgIAAEIyAgIAAGiAAQRBqJICAgIAAQgILCQAQooCAgACtCwMAAAvbAQIBfgR/AkACQCACQQlLDQBCACEDIAIhBCABIQUDQAJAIAQNACADQgiGQg6EIQMMAwtBASEGAkAgBS0AACIHQd8ARg0AAkAgB0FQakH/AXFBCkkNAAJAIAdBv39qQf8BcUEaSQ0AIAdBn39qQf8BcUEZSw0EIAdBRWohBgwCCyAHQUtqIQYMAQsgB0FSaiEGCyADQgaGIAatQv8Bg4QhAyAEQX9qIQQgBUEBaiEFDAALCyABrUIghkIEhCACrUIghkIEhBCTgICAACEDCyAAQgA3AwAgACADNwMIC1ECAX8BfiOAgICAAEEQayIDJICAgIAAIAMgASACEOSAgIAAQgEhBAJAIAMoAgANACAAIAMpAwg3AwhCACEECyAAIAQ3AwAgA0EQaiSAgICAAAutAQICfwF+I4CAgIAAQRBrIgIkgICAgABBACEDAkADQCADQRBGDQEgAiADakICNwMAIANBCGohAwwACwtBASEDAkAgAUL/AYNCzABSDQAgAUHQhMCAAEECIAJBAhCygICAACACKQMAIgFC/wGDQgRSDQAgAikDCCIEQv8Bg0IEUg0AIAAgAUIgiKc2AgggACAEQiCIPgIEQQAhAwsgACADNgIAIAJBEGokgICAgAALYAIBfwF+I4CAgIAAQRBrIgMkgICAgAAgAyABrUIghkIEhDcDCCADIAKtQiCGQgSENwMAQdCEwIAAQQIgA0ECENKAgIAAIQQgAEIANwMAIAAgBDcDCCADQRBqJICAgIAAC0QBAX8jgICAgABBEGsiAiSAgICAACACIAE3AwggAkEIakEBELuAgIAAIQEgAEIANwMAIAAgATcDCCACQRBqJICAgIAAC5IBAgF/AX4jgICAgABBEGsiASSAgICAAAJAAkACQAJAIABBAXFFDQAgAUG+hcCAAEEJEOWAgIAAIAEoAgANAiABIAEpAwgQ6ICAgAAMAQsgAUGmhcCAAEEGEOWAgIAAIAEoAgANASABIAEpAwgQ6ICAgAALIAEpAwghAiABKQMAUA0BCwALIAFBEGokgICAgAAgAgtWAgF/AX4jgICAgABBEGsiAySAgICAACAAEKOAgIAAIQQgAyABIAIQ54CAgAACQCADKAIAQQFHDQAACyAEIAMpAwhCAhCPgICAABogA0EQaiSAgICAAAtXAQF+AkACQCADQcAAcQ0AIANFDQEgAkEAIANrQT9xrYYgASADQT9xrSIEiIQhASACIASIIQIMAQsgAiADQT9xrYghAUIAIQILIAAgATcDACAAIAI3AwgLVwEBfgJA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bmVyc2hpcF90cmFuc2ZlcnJpbmd0dGwAAAB5ARAACQAAAIIBEAAJAAAAsgEQAAMAAABvd25lcnNoaXBfdHJhbnNmZXJfY2FuY2VsbGVkY2FuY2VsbGVkX3BlbmRpbmdfb3duZXJvd25lcuwBEAAXAAAAAwIQAAUAAABvd25lcnNoaXBfcmVub3VuY2VkAIIBEAAJAAAAT3duZXJQZW5kaW5nT3duZXJleHRlbmRfdG8AAEUCEAAJAAAAWwEQAAkAAAB0dGxfY29uZmlnc19zZXRpbnN0YW5jZXBlcnNpc3RlbnQAAABvAhAACAAAAHcCEAAKAAAAdHRsX2NvbmZpZ3NfZnJvemVuRnJvemVuSW5zdGFuY2VQZXJzaXN0ZW50TWlncmF0aW5nAPOpAQ5jb250cmFjdHNwZWN2MAAAAAQAAAAAAAAAAAAAABNFeGVjdXRvckZlZUxpYkVycm9yAAAAAAwAAAAAAAAAD0VpZE5vdFN1cHBvcnRlZAAAAAABAAAAAAAAABZJbnZhbGlkRXhlY3V0b3JPcHRpb25zAAAAAAACAAAAAAAAAApJbnZhbGlkRmVlAAAAAAADAAAAAAAAABZJbnZhbGlkTHpDb21wb3NlT3B0aW9uAAAAAAAEAAAAAAAAABZJbnZhbGlkTHpSZWNlaXZlT3B0aW9uAAAAAAAFAAAAAAAAABdJbnZhbGlkTmF0aXZlRHJvcE9wdGlvbgAAAAAGAAAAAAAAABZOYXRpdmVBbW91bnRFeGNlZWRzQ2FwAAAAAAAHAAAAAAAAAAlOb09wdGlvbnMAAAAAAAAIAAAAAAAAAAhPdmVyZmxvdwAAAAkAAAAAAAAAFVVuc3VwcG9ydGVkT3B0aW9uVHlwZQAAAAAAAAoAAAAAAAAAGFplcm9MekNvbXBvc2VHYXNQcm92aWRlZAAAAAsAAAAAAAAAGFplcm9MelJlY2VpdmVHYXNQcm92aWRlZAAAAAwAAAAAAAACUUNhbGN1bGF0ZXMgdGhlIHRvdGFsIGV4ZWN1dGlvbiBmZWUgZm9yIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4KCkRlY29kZXMgZXhlY3V0b3Igb3B0aW9ucywgZXN0aW1hdGVzIGdhcyBmZWVzIGZyb20gdGhlIHByaWNlIGZlZWQsIGFwcGxpZXMKbXVsdGlwbGllcnMgYW5kIG1hcmdpbnMsIGFuZCBjb252ZXJ0cyBuYXRpdmUgdG9rZW4gdmFsdWVzLiBSZXR1cm5zIHRoZQp0b3RhbCBmZWUgaW4gbmF0aXZlIHRva2Vucy4KCiMgQXJndW1lbnRzCiogYGV4ZWN1dG9yYCAtIEV4ZWN1dG9yIGNvbnRyYWN0IGFkZHJlc3MgKHVudXNlZCwga2VwdCBmb3IgaW50ZXJmYWNlIGNvbXBhdGliaWxpdHkpCiogYHBhcmFtc2AgLSBGZWUgY2FsY3VsYXRpb24gcGFyYW1ldGVycwoKIyBSZXR1cm5zClRvdGFsIGV4ZWN1dGlvbiBmZWUgaW4gbmF0aXZlIHRva2Vucy4KCiMgRXJyb3JzCiogYEVpZE5vdFN1cHBvcnRlZGAgLSBJZiBkZXN0aW5hdGlvbiBlbmRwb2ludCBpcyBub3Qgc3VwcG9ydGVkIChsel9yZWNlaXZlX2Jhc2VfZ2FzIGlzIDApCiogVmFyaW91cyBleGVjdXRvciBvcHRpb24gcGFyc2luZyBlcnJvcnMgKHNlZSBgcGFyc2VfZXhlY3V0b3Jfb3B0aW9uc2ApAAAAAAAAB2dldF9mZWUAAAAAAgAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAZwYXJhbXMAAAAAB9AAAAAJRmVlUGFyYW1zAAAAAAAAAQAAAAsAAAAAAAAAW1JldHVybnMgdGhlIHZlcnNpb24gb2YgdGhlIGZlZSBsaWJyYXJ5LgoKIyBSZXR1cm5zClR1cGxlIG9mIChtYWpvcl92ZXJzaW9uLCBtaW5vcl92ZXJzaW9uKS4AAAAAB3ZlcnNpb24AAAAAAAAAAAEAAAPtAAAAAgAAAAYAAAAEAAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAEAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAAbFVwZ3JhZGVzIHRoZSBjb250cmFjdCB0byBuZXcgV0FTTSBieXRlY29kZS4KU2V0cyBhIG1pZ3JhdGlvbiBmbGFnIHRoYXQgbXVzdCBiZSBjbGVhcmVkIGJ5IGNhbGxpbmcgYG1pZ3JhdGVgLgAAAAd1cGdyYWRlAAAAAAEAAAAAAAAADW5ld193YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAAAAAAAAAAAh1J1bnMgbWlncmF0aW9uIGxvZ2ljIGFmdGVyIGFuIHVwZ3JhZGUuClBhcnNlcyBYRFItZW5jb2RlZCBgbWlncmF0aW9uX2RhdGFgIGFuZCBjYWxscyBgX19taWdyYXRlYC4gQ2xlYXJzIHRoZSBtaWdyYXRpb24gZmxhZyBvbiBzdWNjZXNzLgAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAAAAAAAAAAAT1Blcm1hbmVudGx5IGZyZWV6ZXMgdGhlIGNvbnRyYWN0LCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgdXBncmFkZXMuIElycmV2ZXJzaWJsZS4AAAAABmZyZWV6ZQAAAAAAAAAAAAAAAAAAAAAAO1JldHVybnMgd2hldGhlciB0aGUgY29udHJhY3QgaXMgZnJvemVuICh1cGdyYWRlcyBkaXNhYmxlZCkuAAAAAAlpc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAphdXRob3JpemVyAAAAAAAAAAAAAQAAABMAAAAAAAAAPlJldHVybnMgdGhlIGN1cnJlbnQgb3duZXIgYWRkcmVzcywgb3IgTm9uZSBpZiBubyBvd25lciBpcyBzZXQuAAAAAAAFb3duZXIAAAAAAAAAAAAAAQAAA+gAAAATAAAAAAAAAFlSZXR1cm5zIHRoZSBwZW5kaW5nIG93bmVyIGFkZHJlc3MgZm9yIDItc3RlcCB0cmFuc2Zlciwgb3IgTm9uZSBpZiBubyB0cmFuc2ZlciBpcyBwZW5kaW5nLgAAAAAAAA1wZW5kaW5nX293bmVyAAAAAAAAAAAAAAEAAAPoAAAAEwAAAAAAAAErVHJhbnNmZXJzIG93bmVyc2hpcCBpbW1lZGlhdGVseSB0byBhIG5ldyBhZGRyZXNzLgoKVXNlIHdpdGggY2F1dGlvbiAtIGlmIHlvdSB0cmFuc2ZlciB0byBhIHdyb25nIGFkZHJlc3MsIG93bmVyc2hpcCBpcyBsb3N0IGZvcmV2ZXIuCkNvbnNpZGVyIHVzaW5nIGBwcm9wb3NlX293bmVyc2hpcF90cmFuc2ZlcmAgaW5zdGVhZC4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYFRyYW5zZmVySW5Qcm9ncmVzc2AgaWYgYSAyLXN0ZXAgdHJhbnNmZXIgaXMgaW4gcHJvZ3Jlc3MAAAAAEnRyYW5zZmVyX293bmVyc2hpcAAAAAAAAQAAAAAAAAAJbmV3X293bmVyAAAAAAAAEwAAAAAAAAAAAAACXFByb3Bvc2VzIGFuIG93bmVyc2hpcCB0cmFuc2ZlciB0byBhIG5ldyBhZGRyZXNzLgoKVGhlIG5ldyBvd25lciBtdXN0IGNhbGwgYGFjY2VwdF9vd25lcnNoaXAoKWAgd2l0aGluIGB0dGxgIGxlZGdlcnMKdG8gY29tcGxldGUgdGhlIHRyYW5zZmVyLiBUaGUgcGVuZGluZyB0cmFuc2ZlciB3aWxsIGF1dG9tYXRpY2FsbHkgZXhwaXJlIGFmdGVyLgoKIyBBcmd1bWVudHMKLSBgbmV3X293bmVyYCAtIFRoZSBwcm9wb3NlZCBuZXcgb3duZXIKLSBgdHRsYCAtIE51bWJlciBvZiBsZWRnZXJzIHRoZSBuZXcgb3duZXIgaGFzIHRvIGFjY2VwdC4KVXNlIGAwYCB0byBjYW5jZWwgYSBwZW5kaW5nIHRyYW5zZmVyIChuZXdfb3duZXIgbXVzdCBtYXRjaCBwZW5kaW5nKS4KCiMgUGFuaWNzCi0gYE93bmVyTm90U2V0YCBpZiBubyBvd25lciBpcyBjdXJyZW50bHkgc2V0Ci0gYE5vUGVuZGluZ1RyYW5zZmVyYCB3aGVuIGNhbmNlbGxpbmcgYW5kIG5vIHBlbmRpbmcgdHJhbnNmZXIgZXhpc3RzCi0gYEludmFsaWRUdGxgIGlmIHR0bCBleGNlZWRzIG1heCBUVEwKLSBgSW52YWxpZFBlbmRpbmdPd25lcmAgd2hlbiBjYW5jZWxsaW5nIHdpdGggd3JvbmcgbmV3X293bmVyIGFkZHJlc3MAAAAacHJvcG9zZV9vd25lcnNoaXBfdHJhbnNmZXIAAAAAAAIAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAA3R0bAAAAAAEAAAAAAAAAAAAAAC5QWNjZXB0cyBhIHBlbmRpbmcgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2Zlci4KCk11c3QgYmUgY2FsbGVkIGJ5IHRoZSBwZW5kaW5nIG93bmVyIGJlZm9yZSB0aGUgVFRMIGV4cGlyZXMuCgojIFBhbmljcwotIGBOb1BlbmRpbmdUcmFuc2ZlcmAgaWYgdGhlcmUgaXMgbm8gcGVuZGluZyB0cmFuc2ZlciAob3IgaXQgZXhwaXJlZCkAAAAAAAAQYWNjZXB0X293bmVyc2hpcAAAAAAAAAAAAAAAAAAAAKRQZXJtYW5lbnRseSByZW5vdW5jZXMgb3duZXJzaGlwLgoKIyBQYW5pY3MKLSBgT3duZXJOb3RTZXRgIGlmIG5vIG93bmVyIGlzIGN1cnJlbnRseSBzZXQKLSBgVHJhbnNmZXJJblByb2dyZXNzYCBpZiBhIDItc3RlcCB0cmFuc2ZlciBpcyBpbiBwcm9ncmVzcyAoY2FuY2VsIGl0IGZpcnN0KQAAABJyZW5vdW5jZV9vd25lcnNoaXAAAAAAAAAAAAAAAAAAAAAAAKVFeHRlbmRzIHRoZSBpbnN0YW5jZSBUVEwuCgojIEFyZ3VtZW50cwoKKiBgdGhyZXNob2xkYCAtIFRoZSB0aHJlc2hvbGQgdG8gZXh0ZW5kIHRoZSBUVEwgKGlmIGN1cnJlbnQgVFRMIGlzIGJlbG93IHRoaXMsIGV4dGVuZCkuCiogYGV4dGVuZF90b2AgLSBUaGUgVFRMIHRvIGV4dGVuZCB0by4AAAAAAAATZXh0ZW5kX2luc3RhbmNlX3R0bAAAAAACAAAAAAAAAAl0aHJlc2hvbGQAAAAAAAAEAAAAAAAAAAlleHRlbmRfdG8AAAAAAAAEAAAAAAAAAAAAAAGPU2V0cyBUVEwgY29uZmlncyBmb3IgaW5zdGFuY2UgYW5kIHBlcnNpc3RlbnQgc3RvcmFnZS4KCi0gYE5vbmVgIHZhbHVlcyByZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIChkaXNhYmxlcyBhdXRvLWV4dGVuc2lvbiBmb3IgdGhhdCB0eXBlKQotIFZhbGlkYXRlcyB0aGF0IGB0aHJlc2hvbGQgPD0gZXh0ZW5kX3RvIDw9IE1BWF9UVExgCgojIEFyZ3VtZW50cwotIGBpbnN0YW5jZWAgLSBUVEwgY29uZmlnIGZvciBpbnN0YW5jZSBzdG9yYWdlCi0gYHBlcnNpc3RlbnRgIC0gVFRMIGNvbmZpZyBmb3IgcGVyc2lzdGVudCBzdG9yYWdlCgojIFBhbmljcwotIGBUdGxDb25maWdGcm96ZW5gIGlmIGNvbmZpZ3MgYXJlIGZyb3plbgotIGBJbnZhbGlkVHRsQ29uZmlnYCBpZiB2YWxpZGF0aW9uIGZhaWxzAAAAAA9zZXRfdHRsX2NvbmZpZ3MAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAASFJldHVybnMgdGhlIGN1cnJlbnQgVFRMIGNvbmZpZ3MgYXMgKGluc3RhbmNlX2NvbmZpZywgcGVyc2lzdGVudF9jb25maWcpLgAAAAt0dGxfY29uZmlncwAAAAAAAAAAAQAAA+0AAAACAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAOFQZXJtYW5lbnRseSBmcmVlemVzIFRUTCBjb25maWdzLCBwcmV2ZW50aW5nIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucy4KClRoaXMgaXMgaXJyZXZlcnNpYmxlIGFuZCBwcm92aWRlcyBpbW11dGFiaWxpdHkgZ3VhcmFudGVlcyB0byB1c2Vycy4KRW1pdHMgYFR0bENvbmZpZ3NGcm96ZW5gIGV2ZW50LgoKIyBQYW5pY3MKLSBgVHRsQ29uZmlnQWxyZWFkeUZyb3plbmAgaWYgYWxyZWFkeSBmcm96ZW4AAAAAAAASZnJlZXplX3R0bF9jb25maWdzAAAAAAAAAAAAAAAAAAAAAAAnUmV0dXJucyB3aGV0aGVyIFRUTCBjb25maWdzIGFyZSBmcm96ZW4uAAAAABVpc190dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAAAAQAAAAEAAAAFAAAAAAAAAAAAAAAKUGFja2V0U2VudAAAAAAAAQAAAAtwYWNrZXRfc2VudAAAAAADAAAAAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAAAAAAAAAAAAB29wdGlvbnMAAAAADgAAAAAAAAAAAAAADHNlbmRfbGlicmFyeQAAABMAAAAAAAAAAgAAAAUAAAAAAAAAAAAAAA5QYWNrZXRWZXJpZmllZAAA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Z3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAIAAAAEAAAAAAAAAAAAAAANRW5kcG9pbnRFcnJvcgAAAAAAABkAAAAvTGlicmFyeSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW5kcG9pbnQAAAAAEUFscmVhZHlSZWdpc3RlcmVkAAAAAAAAAQAAADZDb21wb3NlIG1lc3NhZ2UgYWxyZWFkeSBleGlzdHMgZm9yIHRoaXMgR1VJRCBhbmQgaW5kZXgAAAAAAA1Db21wb3NlRXhpc3RzAAAAAAAAAgAAADZDb21wb3NlIG1lc3NhZ2Ugbm90IGZvdW5kIGZvciB0aGUgZ2l2ZW4gR1VJRCBhbmQgaW5kZXgAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAADpEZWZhdWx0IHJlY2VpdmUgbGlicmFyeSBpcyBub3Qgc2V0IGZvciB0aGUgc291cmNlIGVuZHBvaW50AAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAA8RGVmYXVsdCBzZW5kIGxpYnJhcnkgaXMgbm90IHNldCBmb3IgdGhlIGRlc3RpbmF0aW9uIGVuZHBvaW50AAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAL1N1cHBsaWVkIG5hdGl2ZSB0b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAALFN1cHBsaWVkIFpSTyB0b2tlbiBmZWUgaXMgbGVzcyB0aGFuIHJlcXVpcmVkAAAAEkluc3VmZmljaWVudFpyb0ZlZQAAAAAABwAAACtUaW1lb3V0IGV4cGlyeSBpcyBpbnZhbGlkIChhbHJlYWR5IGV4cGlyZWQpAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACAAAACBGZWUgYW1vdW50IGlzIGludmFsaWQgKG5lZ2F0aXZlKQAAABBJbnZhbGlkRmVlQW1vdW50AAAACQAAACtDb21wb3NlIGluZGV4IGV4Y2VlZHMgbWF4aW11bSBhbGxvd2VkIHZhbHVlAAAAAAxJbnZhbGlkSW5kZXgAAAAKAAAALE5vbmNlIGlzIGludmFsaWQgZm9yIHRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uAAAADEludmFsaWROb25jZQAAAAsAAAAwUGF5bG9hZCBoYXNoIGlzIGludmFsaWQgKGVtcHR5IGhhc2ggbm90IGFsbG93ZWQpAAAAEkludmFsaWRQYXlsb2FkSGFzaAAAAAAADAAAAEFSZWNlaXZlIGxpYnJhcnkgaXMgbm90IHZhbGlkIGZvciB0aGUgcmVjZWl2ZXIgYW5kIHNvdXJjZSBlbmRwb2ludAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAMU9wZXJhdGlvbiByZXF1aXJlcyBhIG5vbi1kZWZhdWx0IChjdXN0b20pIGxpYnJhcnkAAAAAAAART25seU5vbkRlZmF1bHRMaWIAAAAAAAAOAAAAJ0xpYnJhcnkgbXVzdCBzdXBwb3J0IHJlY2VpdmluZyBtZXNzYWdlcwAAAAAOT25seVJlY2VpdmVMaWIAAAAAAA8AAAAsTGlicmFyeSBtdXN0IGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgZW5kcG9pbnQAAAART25seVJlZ2lzdGVyZWRMaWIAAAAAAAAQAAAAJUxpYnJhcnkgbXVzdCBzdXBwb3J0IHNlbmRpbmcgbWVzc2FnZXMAAAAAAAALT25seVNlbmRMaWIAAAAAEQAAADlNZXNzYWdpbmcgcGF0aCBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBnaXZlbiBvcmlnaW4AAAAAAAAUUGF0aE5vdEluaXRpYWxpemFibGUAAAASAAAAL01lc3NhZ2UgY2Fubm90IGJlIHZlcmlmaWVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAABFQYXRoTm90VmVyaWZpYWJsZQAAAAAAABMAAAArUGF5bG9hZCBoYXNoIGRvZXMgbm90IG1hdGNoIHRoZSBzdG9yZWQgaGFzaAAAAAATUGF5bG9hZEhhc2hOb3RGb3VuZAAAAAAUAAAAJ05ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyBleGlzdGluZyB2YWx1ZQAAAAAJU2FtZVZhbHVlAAAAAAAAFQAAAC9DYWxsZXIgaXMgbm90IGF1dGhvcml6ZWQgKG5vdCBPQXBwIG9yIGRlbGVnYXRlKQAAAAAMVW5hdXRob3JpemVkAAAAFgAAACtFbmRwb2ludCBJRCBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5AAAAAA5VbnN1cHBvcnRlZEVpZAAAAAAAFwAAADlaUk8gZmVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8gd2hlbiBwYXlfaW5fenJvIGlzIHRydWUAAAAAAAAKWmVyb1pyb0ZlZQAAAAAAGAAAABxaUk8gdG9rZW4gYWRkcmVzcyBpcyBub3Qgc2V0AAAADlpyb1VuYXZhaWxhYmxlAAAAAAAZAAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAABAAAATVNvdXJjZSBtZXNzYWdlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoZXJlIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZSBjYW1lIGZyb20uAAAAAAAAAAAAAAZPcmlnaW4AAAAAAAMAAAAXTm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAABW5vbmNlAAAAAAAABgAAAC5TZW5kZXIgYWRkcmVzcyBvbiB0aGUgc291cmNlIGNoYWluICgzMiBieXRlcykuAAAAAAAGc2VuZGVyAAAAAAPuAAAAIAAAACZTb3VyY2UgZW5kcG9pbnQgSUQgKGNoYWluIGlkZW50aWZpZXIpLgAAAAAAB3NyY19laWQAAAAABAAAAAEAAAAoRmVlIHN0cnVjdHVyZSBmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnaW5nLgAAAAAAAAAMTWVzc2FnaW5nRmVlAAAAAgAAAB9GZWUgcGFpZCBpbiBuYXRpdmUgdG9rZW4gKFhMTSkuAAAAAApuYXRpdmVfZmVlAAAAAAALAAAAKEZlZSBwYWlkIGluIFpSTyB0b2tlbiAoTGF5ZXJaZXJvIHRva2VuKS4AAAAHenJvX2ZlZQAAAAALAAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAGAAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAAAAAABAAAAt1ZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGEgbWVzc2FnZSBsaWJyYXJ5LgoKTm90ZTogYG1pbm9yYCBhbmQgYGVuZHBvaW50X3ZlcnNpb25gIHVzZSBgdTMyYCBpbnN0ZWFkIG9mIGB1OGAgYmVjYXVzZSBTdGVsbGFyIGRvZXMgbm90CnN1cHBvcnQgYHU4YCB0eXBlcyBpbiBjb250cmFjdCBpbnRlcmZhY2UgZnVuY3Rpb25zLgAAAAAAAAAAEU1lc3NhZ2VMaWJWZXJzaW9uAAAAAAAAAwAAADNFbmRwb2ludCB2ZXJzaW9uIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAAEGVuZHBvaW50X3ZlcnNpb24AAAAEAAAAFU1ham9yIHZlcnNpb24gbnVtYmVyLgAAAAAAAAVtYWpvcgAAAAAAAAYAAAA3TWlub3IgdmVyc2lvbiBudW1iZXIgKHNob3VsZCBub3QgZXhjZWVkIHU4OjpNQVggPSAyNTUpLgAAAAAFbWlub3IAAAAAAAAEAAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAM1VuaXggdGltZXN0YW1wIGluIHNlY29uZHMgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAAGZXhwaXJ5AAAAAAAGAAAAQ1RoZSBvbGQgbGlicmFyeSBhZGRyZXNzIHRoYXQgcmVtYWlucyB2YWxpZCBkdXJpbmcgdGhlIGdyYWNlIHBlcmlvZC4AAAAAA2xpYgAAAAATAAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQAAAABAAAAMVJlc29sdmVkIGxpYnJhcnkgaW5mb3JtYXRpb24gd2l0aCBkZWZhdWx0IHN0YXR1cy4AAAAAAAAAAAAAD1Jlc29sdmVkTGlicmFyeQAAAAACAAAARFdoZXRoZXIgdGhpcyBpcyB0aGUgZGVmYXVsdCBsaWJyYXJ5ICh0cnVlKSBvciBPQXBwLXNwZWNpZmljIChmYWxzZSkuAAAACmlzX2RlZmF1bHQAAAAAAAEAAAAdVGhlIHJlc29sdmVkIGxpYnJhcnkgYWRkcmVzcy4AAAAAAAADbGliAAAAABMAAAABAAAASE91dGJvdW5kIHBhY2tldCBjb250YWluaW5nIGFsbCBpbmZvcm1hdGlvbiBmb3IgY3Jvc3MtY2hhaW4gdHJhbnNtaXNzaW9uLgAAAAAAAAAOT3V0Ym91bmRQYWNrZXQAAAAAAAcAAAAYRGVzdGluYXRpb24gZW5kcG9pbnQgSUQuAAAAB2RzdF9laWQAAAAABAAAACxHbG9iYWxseSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBtZXNzYWdlLgAAAARndWlkAAAD7gAAACAAAAAUVGhlIG1lc3NhZ2UgcGF5bG9hZC4AAAAHbWVzc2FnZQAAAAAOAAAAIE91dGJvdW5kIG5vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAABW5vbmNlAAAAAAAABgAAADFSZWNlaXZlciBhZGRyZXNzIG9uIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACAAAAAfU2VuZGVyIGFkZHJlc3Mgb24gc291cmNlIGNoYWluLgAAAAAGc2VuZGVyAAAAAAATAAAAE1NvdXJjZSBlbmRwb2ludCBJRC4AAAAAB3NyY19laWQAAAAABAAAAAEAAAArQSBmZWUgcmVjaXBpZW50IHdpdGggdGhlIGFtb3VudCB0byBiZSBwYWlkLgAAAAAAAAAADEZlZVJlY2lwaWVudAAAAAIAAAAVQW1vdW50IG9mIGZlZSB0byBwYXkuAAAAAAAABmFtb3VudAAAAAAACwAAAB9UaGUgYWRkcmVzcyB0byBzZW5kIHRoZSBmZWUgdG8uAAAAAAJ0bwAAAAAAEwAAAAEAAAA8UmVzdWx0IG9mIHNlbmQgb3BlcmF0aW9uIGNvbnRhaW5pbmcgZmVlcyBhbmQgZW5jb2RlZCBwYWNrZXQuAAAAAAAAAA1GZWVzQW5kUGFja2V0AAAAAAAAAwAAACpUaGUgZW5jb2RlZCBwYWNrZXQgcmVhZHkgZm9yIHRyYW5zbWlzc2lvbi4AAAAAAA5lbmNvZGVkX3BhY2tldAAAAAAADgAAAD9MaXN0IG9mIG5hdGl2ZSB0b2tlbiBmZWUgcmVjaXBpZW50cyAoZXhlY3V0b3IsIERWTnMsIHRyZWFzdXJ5KS4AAAAAFW5hdGl2ZV9mZWVfcmVjaXBpZW50cwAAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAACxMaXN0IG9mIFpSTyB0b2tlbiBmZWUgcmVjaXBpZW50cyAodHJlYXN1cnkpLgAAABJ6cm9fZmVlX3JlY2lwaWVudHMAAAAAA+oAAAfQAAAADEZlZVJlY2lwaWVudAAAAAEAAADhUGFyYW1ldGVycyBmb3IgRFZOIGZlZSBjYWxjdWxhdGlvbi4KCkNvbnRhaW5zIGFsbCBpbnB1dHMgbmVlZGVkIGJ5IHRoZSBmZWUgbGlicmFyeSB0byBjYWxjdWxhdGUgdmVyaWZpY2F0aW9uIGZlZXMKZm9yIGNyb3NzLWNoYWluIG1lc3NhZ2VzLiBJbmNsdWRlcyBtZXNzYWdlIHBhcmFtZXRlcnMsIGNvbW1vbiBjb25maWd1cmF0aW9uLAphbmQgZGVzdGluYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuAAAAAAAAAAAAAAxEdm5GZWVQYXJhbXMAAAAKAAAAJ051bWJlciBvZiBibG9jayBjb25maXJtYXRpb25zIHJlcXVpcmVkLgAAAAANY29uZmlybWF0aW9ucwAAAAAAAAYAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KRGVzdGluYXRpb24tU3BlY2lmaWMgQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpHYXMgZXN0aW1hdGUgZm9yIHZlcmlmaWNhdGlvbiBvbiBkZXN0aW5hdGlvbiBjaGFpbi4AAAADZ2FzAAAAAAoAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAAC0RWTiBvcHRpb25zAAAAAAdvcHRpb25zAAAAAA4AAAEQPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ29tbW9uIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUHJpY2UgZmVlZCBjb250cmFjdCBhZGRyZXNzIGZvciBnYXMgcHJpY2UgYW5kIGV4Y2hhbmdlIHJhdGUgZGF0YS4AAAAKcHJpY2VfZmVlZAAAAAAAEwAAACdOdW1iZXIgb2YgcmVxdWlyZWQgc2lnbmF0dXJlcyAocXVvcnVtKS4AAAAABnF1b3J1bQAAAAAABAAAAOU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpNZXNzYWdlIFBhcmFtZXRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGhlIE9BcHAgc2VuZGVyIGFkZHJlc3MuAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAADjUGFyYW1ldGVycyBmb3IgZXhlY3V0b3IgZmVlIGNhbGN1bGF0aW9uLgoKQ29udGFpbnMgYWxsIGlucHV0cyBuZWVkZWQgYnkgdGhlIGZlZSBsaWJyYXJ5IHRvIGNhbGN1bGF0ZSBleGVjdXRpb24gZmVlcwpmb3IgY3Jvc3MtY2hhaW4gbWVzc2FnZXMuIEluY2x1ZGVzIG1lc3NhZ2UgcGFyYW1ldGVycywgY29tbW9uIGNvbmZpZ3VyYXRpb24sCmFuZCBkZXN0aW5hdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4AAAAAAAAAAAlGZWVQYXJhbXMAAAAAAAALAAAAJlNpemUgb2YgdGhlIG1lc3NhZ2UgY2FsbGRhdGEgaW4gYnl0ZXMuAAAAAAANY2FsbGRhdGFfc2l6ZQAAAAAAAAQAAABMRGVmYXVsdCBmZWUgbXVsdGlwbGllciBpbiBiYXNpcyBwb2ludHMgKHVzZWQgaWYgbm8gZHN0LXNwZWNpZmljIG11bHRpcGxpZXIpLgAAABZkZWZhdWx0X211bHRpcGxpZXJfYnBzAAAAAAAEAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAACNNaW5pbXVtIGZlZSBtYXJnaW4gaW4gVVNEIChzY2FsZWQpLgAAAAAQZmxvb3JfbWFyZ2luX3VzZAAAAAoAAAA2QmFzZSBnYXMgZm9yIGVhY2ggbHpDb21wb3NlIGNhbGwgb24gZGVzdGluYXRpb24gY2hhaW4uAAAAAAATbHpfY29tcG9zZV9iYXNlX2dhcwAAAAAGAAABEz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkRlc3RpbmF0aW9uLVNwZWNpZmljIENvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQmFzZSBnYXMgZm9yIGx6UmVjZWl2ZSBleGVjdXRpb24gb24gZGVzdGluYXRpb24gY2hhaW4uAAAAABNsel9yZWNlaXZlX2Jhc2VfZ2FzAAAAAAYAAABGRGVzdGluYXRpb24tc3BlY2lmaWMgZmVlIG11bHRpcGxpZXIgaW4gYmFzaXMgcG9pbnRzICgwID0gdXNlIGRlZmF1bHQpLgAAAAAADm11bHRpcGxpZXJfYnBzAAAAAAAEAAAALE1heGltdW0gbmF0aXZlIHRva2VuIHZhbHVlIHRoYXQgY2FuIGJlIHNlbnQuAAAACm5hdGl2ZV9jYXAAAAAAAAoAAABGRW5jb2RlZCBleGVjdXRvciBvcHRpb25zIChselJlY2VpdmUgZ2FzLCBsekNvbXBvc2UsIG5hdGl2ZURyb3AsIGV0Yy4pLgAAAAAAB29wdGlvbnMAAAAADgAAARA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDb21tb24gQ29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQcmljZSBmZWVkIGNvbnRyYWN0IGFkZHJlc3MgZm9yIGdhcyBwcmljZSBhbmQgZXhjaGFuZ2UgcmF0ZSBkYXRhLgAAAApwcmljZV9mZWVkAAAAAAATAAAA5T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ck1lc3NhZ2UgUGFyYW1ldGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgT0FwcCBzZW5kZXIgYWRkcmVzcy4AAAAAAAAGc2VuZGVyAAAAAAATAAAAAQAAAIRHYXMgcHJpY2UgaW5mb3JtYXRpb24gZm9yIGEgZGVzdGluYXRpb24gZW5kcG9pbnQuCgpDb250YWlucyB0aGUgZXhjaGFuZ2UgcmF0ZSBhbmQgZ2FzIGNvc3RzIG5lZWRlZCBmb3IgY3Jvc3MtY2hhaW4gZmVlIGNhbGN1bGF0aW9ucy4AAAAAAAAABVByaWNlAAAAAAAAAwAAADdHYXMgY29zdCBwZXIgYnl0ZSBvZiBjYWxsZGF0YSBvbiB0aGUgZGVzdGluYXRpb24gY2hhaW4uAAAAAAxnYXNfcGVyX2J5dGUAAAAEAAAAQkdhcyBwcmljZSBpbiB0aGUgc21hbGxlc3QgdW5pdCAod2VpIGZvciBFVk0sIHN0cm9vcHMgZm9yIFN0ZWxsYXIpLgAAAAAAEWdhc19wcmljZV9pbl91bml0AAAAAAAABgAAAKlQcmljZSByYXRpbyA9IChyZW1vdGUgbmF0aXZlIHRva2VuIHByaWNlIC8gbG9jYWwgbmF0aXZlIHRva2VuIHByaWNlKSAqIFBSSUNFX1JBVElPX0RFTk9NSU5BVE9SLgpVc2VkIHRvIGNvbnZlcnQgZGVzdGluYXRpb24gY2hhaW4gZ2FzIGNvc3RzIHRvIHNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAABAAAAgEZlZSBlc3RpbWF0aW9uIHJlc3VsdCB3aXRoIGRldGFpbGVkIGJyZWFrZG93bi4KCkNvbnRhaW5zIHRoZSBjYWxjdWxhdGVkIGZlZSBhbmQgYWxsIGludGVybWVkaWF0ZSB2YWx1ZXMgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uAAAAAAAAAAtGZWVFc3RpbWF0ZQAAAAAEAAAAMFNvdXJjZSBjaGFpbiBuYXRpdmUgdG9rZW4gcHJpY2UgaW4gVVNEIChzY2FsZWQpLgAAABBuYXRpdmVfcHJpY2VfdXNkAAAACgAAACVQcmljZSByYXRpbyB1c2VkIGZvciB0aGUgY2FsY3VsYXRpb24uAAAAAAAAC3ByaWNlX3JhdGlvAAAAAAoAAAAyRGVub21pbmF0b3IgZm9yIHRoZSBwcmljZSByYXRpbyAodHlwaWNhbGx5IDEwXjIwKS4AAAAAABdwcmljZV9yYXRpb19kZW5vbWluYXRvcgAAAAAKAAAAMVRvdGFsIGdhcyBmZWUgaW4gc291cmNlIGNoYWluIG5hdGl2ZSB0b2tlbiB1bml0cy4AAAAAAAANdG90YWxfZ2FzX2ZlZQAAAAAAAAsAAAAEAAAAHVBhY2tldENvZGVjVjFFcnJvcjogMTEwMC0xMTA5AAAAAAAAAAAAABJQYWNrZXRDb2RlY1YxRXJyb3IAAAAAAAIAAAAAAAAAE0ludmFsaWRQYWNrZXRIZWFkZXIAAAAETAAAAAAAAAAUSW52YWxpZFBhY2tldFZlcnNpb24AAARNAAAABAAAAB1Xb3JrZXJPcHRpb25zRXJyb3I6IDExMTAtMTExOQAAAAAAAAAAAAASV29ya2VyT3B0aW9uc0Vycm9yAAAAAAAJAAAAAAAAABJJbnZhbGlkQnl0ZXNMZW5ndGgAAAAABFYAAAAAAAAAGUludmFsaWRMZWdhY3lPcHRpb25zVHlwZTEAAAAAAARXAAAAAAAAABlJbnZhbGlkTGVnYWN5T3B0aW9uc1R5cGUyAAAAAAAEWAAAAAAAAAARSW52YWxpZE9wdGlvblR5cGUAAAAAAARZAAAAAAAAAA5JbnZhbGlkT3B0aW9ucwAAAAAEWgAAAAAAAAAPSW52YWxpZFdvcmtlcklkAAAABFsAAAAAAAAAHUxlZ2FjeU9wdGlvbnNUeXBlMUdhc092ZXJmbG93AAAAAAAEXAAAAAAAAAAgTGVnYWN5T3B0aW9uc1R5cGUyQW1vdW50T3ZlcmZsb3cAAARdAAAAAAAAAB1MZWdhY3lPcHRpb25zVHlwZTJHYXNPdmVyZmxvdwAAAAAABF4AAAAEAAAAHEJ1ZmZlclJlYWRlckVycm9yOiAxMDAwLTEwMDkAAAAAAAAAEUJ1ZmZlclJlYWRlckVycm9yAAAAAAAAAgAAAAAAAAANSW52YWxpZExlbmd0aAAAAAAAA+gAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA+kAAAAEAAAAHEJ1ZmZlcldyaXRlckVycm9yOiAxMDEwLTEwMTkAAAAAAAAAEUJ1ZmZlcldyaXRlckVycm9yAAAAAAAAAQAAAAAAAAAVSW52YWxpZEFkZHJlc3NQYXlsb2FkAAAAAAAD8gAAAAQAAAAfVHRsQ29uZmlndXJhYmxlRXJyb3I6IDEwMjAtMTAyOQAAAAAAAAAAFFR0bENvbmZpZ3VyYWJsZUVycm9yAAAAAwAAAAAAAAAQSW52YWxpZFR0bENvbmZpZwAAA/wAAAAAAAAAD1R0bENvbmZpZ0Zyb3plbgAAAAP9AAAAAAAAABZUdGxDb25maWdBbHJlYWR5RnJvemVuAAAAAAP+AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAwAAAAEAAAAGEJ5dGVzRXh0RXJyb3I6IDEwNDAtMTA0OQAAAAAAAAANQnl0ZXNFeHRFcnJvcgAAAAAAAAEAAAAAAAAADkxlbmd0aE1pc21hdGNoAAAAAAQQAAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQcAAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELAAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aVNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAA8RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBjYW5jZWxsZWQuAAAAAAAAABpPd25lcnNoaXBUcmFuc2ZlckNhbmNlbGxlZAAAAAAAAQAAABxvd25lcnNoaXBfdHJhbnNmZXJfY2FuY2VsbGVkAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAAXY2FuY2VsbGVkX3BlbmRpbmdfb3duZXIAAAAAEwAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAACAAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXIAAAABAAAASVRUTCBjb25maWd1cmF0aW9uOiB0aHJlc2hvbGQgKHdoZW4gdG8gZXh0ZW5kKSBhbmQgZXh0ZW5kX3RvICh0YXJnZXQgVFRMKS4AAAAAAAAAAAAACVR0bENvbmZpZwAAAAAAAAIAAAAoVGFyZ2V0IFRUTCBhZnRlciBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAlleHRlbmRfdG8AAAAAAAAEAAAAM1RUTCB0aHJlc2hvbGQgdGhhdCB0cmlnZ2VycyBleHRlbnNpb24gKGluIGxlZGdlcnMpLgAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAUAAAAnRXZlbnQgZW1pdHRlZCB3aGVuIFRUTCBjb25maWdzIGFyZSBzZXQuAAAAAAAAAAANVHRsQ29uZmlnc1NldAAAAAAAAAEAAAAPdHRsX2NvbmZpZ3Nfc2V0AAAAAAIAAAAAAAAACGluc3RhbmNlAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAAAAAAKcGVyc2lzdGVudAAAAAAD6AAAB9AAAAAJVHRsQ29uZmlnAAAAAAAAAAAAAAIAAAAFAAAAKkV2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgZnJvemVuLgAAAAAAAAAAABBUdGxDb25maWdzRnJvemVuAAAAAQAAABJ0dGxfY29uZmlnc19mcm96ZW4AAAAAAAAAAAACAAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAAAAAAIAAAAAAAAAAAAAABJVcGdyYWRlYWJsZVN0b3JhZ2UAAAAAAAIAAAAAAAAAAAAAAAZGcm96ZW4AAAAAAAAAAAAAAAAACU1pZ3JhdGluZwAAAACLAQ5jb250cmFjdG1ldGF2MAAAAAAAAAAGYmludmVyAAAAAAAFMC4wLjEAAAAAAAAAAAAABXJzdmVyAAAAAAAABjEuOTAuMAAAAAAAAAAAAAhyc3Nka3ZlcgAAAC8yNS4xLjAjODZjNTBhMWVhNGY4N2I0MGFkZDMwNjRmZjlkZjk1Yzc1NTM1NjVjNQAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAZAAAAAABTDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAZjbGl2ZXIAAAAAAC8yNS4wLjAjYTY0OTI1ZTkzOTFjM2QzYjNlZjhlNTNkYzYwYzIzZGI5ZTZhODJlNAA=";
11
11
  /**
12
12
  * Pre-computed WASM hash (SHA-256)
13
13
  * Use this when the WASM is already uploaded on-chain
14
14
  */
15
- export const WASM_HASH = "05a18caf82faa48c7261039b061654cf831092422854a7c1d1b54fd32c459430";
15
+ export const WASM_HASH = "c2585633f3a40f18d491bc7bbe43859f102caae277d6b5b7d1096135eeae180e";
16
16
  /**
17
17
  * Get the WASM bytecode as a Buffer
18
18
  * Use this to upload the WASM to the network
@@ -35,30 +35,105 @@ export const ExecutorFeeLibError = {
35
35
  12: { message: "ZeroLzReceiveGasProvided" }
36
36
  };
37
37
  export const EndpointError = {
38
+ /**
39
+ * Library is already registered with the endpoint
40
+ */
38
41
  1: { message: "AlreadyRegistered" },
42
+ /**
43
+ * Compose message already exists for this GUID and index
44
+ */
39
45
  2: { message: "ComposeExists" },
46
+ /**
47
+ * Compose message not found for the given GUID and index
48
+ */
40
49
  3: { message: "ComposeNotFound" },
50
+ /**
51
+ * Default receive library is not set for the source endpoint
52
+ */
41
53
  4: { message: "DefaultReceiveLibUnavailable" },
54
+ /**
55
+ * Default send library is not set for the destination endpoint
56
+ */
42
57
  5: { message: "DefaultSendLibUnavailable" },
58
+ /**
59
+ * Supplied native token fee is less than required
60
+ */
43
61
  6: { message: "InsufficientNativeFee" },
62
+ /**
63
+ * Supplied ZRO token fee is less than required
64
+ */
44
65
  7: { message: "InsufficientZroFee" },
45
- 8: { message: "InvalidFeeAmount" },
46
- 9: { message: "InvalidExpiry" },
66
+ /**
67
+ * Timeout expiry is invalid (already expired)
68
+ */
69
+ 8: { message: "InvalidExpiry" },
70
+ /**
71
+ * Fee amount is invalid (negative)
72
+ */
73
+ 9: { message: "InvalidFeeAmount" },
74
+ /**
75
+ * Compose index exceeds maximum allowed value
76
+ */
47
77
  10: { message: "InvalidIndex" },
78
+ /**
79
+ * Nonce is invalid for the requested operation
80
+ */
48
81
  11: { message: "InvalidNonce" },
82
+ /**
83
+ * Payload hash is invalid (empty hash not allowed)
84
+ */
49
85
  12: { message: "InvalidPayloadHash" },
86
+ /**
87
+ * Receive library is not valid for the receiver and source endpoint
88
+ */
50
89
  13: { message: "InvalidReceiveLibrary" },
90
+ /**
91
+ * Operation requires a non-default (custom) library
92
+ */
51
93
  14: { message: "OnlyNonDefaultLib" },
94
+ /**
95
+ * Library must support receiving messages
96
+ */
52
97
  15: { message: "OnlyReceiveLib" },
98
+ /**
99
+ * Library must be registered with the endpoint
100
+ */
53
101
  16: { message: "OnlyRegisteredLib" },
102
+ /**
103
+ * Library must support sending messages
104
+ */
54
105
  17: { message: "OnlySendLib" },
106
+ /**
107
+ * Messaging path cannot be initialized for the given origin
108
+ */
55
109
  18: { message: "PathNotInitializable" },
110
+ /**
111
+ * Message cannot be verified for the given origin
112
+ */
56
113
  19: { message: "PathNotVerifiable" },
114
+ /**
115
+ * Payload hash does not match the stored hash
116
+ */
57
117
  20: { message: "PayloadHashNotFound" },
118
+ /**
119
+ * New value is the same as existing value
120
+ */
58
121
  21: { message: "SameValue" },
122
+ /**
123
+ * Caller is not authorized (not OApp or delegate)
124
+ */
59
125
  22: { message: "Unauthorized" },
126
+ /**
127
+ * Endpoint ID is not supported by the library
128
+ */
60
129
  23: { message: "UnsupportedEid" },
130
+ /**
131
+ * ZRO fee must be greater than zero when pay_in_zro is true
132
+ */
61
133
  24: { message: "ZeroZroFee" },
134
+ /**
135
+ * ZRO token address is not set
136
+ */
62
137
  25: { message: "ZroUnavailable" }
63
138
  };
64
139
  /**
@@ -107,12 +182,13 @@ export const TtlConfigurableError = {
107
182
  * OwnableError: 1030-1039
108
183
  */
109
184
  export const OwnableError = {
110
- 1030: { message: "InvalidPendingOwner" },
111
- 1031: { message: "InvalidTtl" },
112
- 1032: { message: "NoPendingTransfer" },
113
- 1033: { message: "OwnerAlreadySet" },
114
- 1034: { message: "OwnerNotSet" },
115
- 1035: { message: "TransferInProgress" }
185
+ 1030: { message: "InvalidAuthorizer" },
186
+ 1031: { message: "InvalidPendingOwner" },
187
+ 1032: { message: "InvalidTtl" },
188
+ 1033: { message: "NoPendingTransfer" },
189
+ 1034: { message: "OwnerAlreadySet" },
190
+ 1035: { message: "OwnerNotSet" },
191
+ 1036: { message: "TransferInProgress" }
116
192
  };
117
193
  /**
118
194
  * BytesExtError: 1040-1049
@@ -129,17 +205,18 @@ export const UpgradeableError = {
129
205
  1052: { message: "UpgradesFrozen" }
130
206
  };
131
207
  /**
132
- * MultisigError: 1060-1069
208
+ * MultiSigError: 1060-1069
133
209
  */
134
- export const MultisigError = {
210
+ export const MultiSigError = {
135
211
  1060: { message: "AlreadyInitialized" },
136
- 1061: { message: "InvalidSigner" },
137
- 1062: { message: "SignatureError" },
138
- 1063: { message: "SignerAlreadyExists" },
139
- 1064: { message: "SignerNotFound" },
140
- 1065: { message: "TotalSignersLessThanThreshold" },
141
- 1066: { message: "UnsortedSigners" },
142
- 1067: { message: "ZeroThreshold" }
212
+ 1061: { message: "InvalidAuthorizer" },
213
+ 1062: { message: "InvalidSigner" },
214
+ 1063: { message: "SignatureError" },
215
+ 1064: { message: "SignerAlreadyExists" },
216
+ 1065: { message: "SignerNotFound" },
217
+ 1066: { message: "TotalSignersLessThanThreshold" },
218
+ 1067: { message: "UnsortedSigners" },
219
+ 1068: { message: "ZeroThreshold" }
143
220
  };
144
221
  export class Client extends ContractClient {
145
222
  options;
@@ -155,9 +232,9 @@ export class Client extends ContractClient {
155
232
  "AAAAAAAAAlFDYWxjdWxhdGVzIHRoZSB0b3RhbCBleGVjdXRpb24gZmVlIGZvciBhIGNyb3NzLWNoYWluIG1lc3NhZ2UuCgpEZWNvZGVzIGV4ZWN1dG9yIG9wdGlvbnMsIGVzdGltYXRlcyBnYXMgZmVlcyBmcm9tIHRoZSBwcmljZSBmZWVkLCBhcHBsaWVzCm11bHRpcGxpZXJzIGFuZCBtYXJnaW5zLCBhbmQgY29udmVydHMgbmF0aXZlIHRva2VuIHZhbHVlcy4gUmV0dXJucyB0aGUKdG90YWwgZmVlIGluIG5hdGl2ZSB0b2tlbnMuCgojIEFyZ3VtZW50cwoqIGBleGVjdXRvcmAgLSBFeGVjdXRvciBjb250cmFjdCBhZGRyZXNzICh1bnVzZWQsIGtlcHQgZm9yIGludGVyZmFjZSBjb21wYXRpYmlsaXR5KQoqIGBwYXJhbXNgIC0gRmVlIGNhbGN1bGF0aW9uIHBhcmFtZXRlcnMKCiMgUmV0dXJucwpUb3RhbCBleGVjdXRpb24gZmVlIGluIG5hdGl2ZSB0b2tlbnMuCgojIEVycm9ycwoqIGBFaWROb3RTdXBwb3J0ZWRgIC0gSWYgZGVzdGluYXRpb24gZW5kcG9pbnQgaXMgbm90IHN1cHBvcnRlZCAobHpfcmVjZWl2ZV9iYXNlX2dhcyBpcyAwKQoqIFZhcmlvdXMgZXhlY3V0b3Igb3B0aW9uIHBhcnNpbmcgZXJyb3JzIChzZWUgYHBhcnNlX2V4ZWN1dG9yX29wdGlvbnNgKQAAAAAAAAdnZXRfZmVlAAAAAAIAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAGcGFyYW1zAAAAAAfQAAAACUZlZVBhcmFtcwAAAAAAAAEAAAAL",
156
233
  "AAAAAAAAAFtSZXR1cm5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBmZWUgbGlicmFyeS4KCiMgUmV0dXJucwpUdXBsZSBvZiAobWFqb3JfdmVyc2lvbiwgbWlub3JfdmVyc2lvbikuAAAAAAd2ZXJzaW9uAAAAAAAAAAABAAAD7QAAAAIAAAAGAAAABA==",
157
234
  "AAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAEAAAAAAAAABW93bmVyAAAAAAAAEwAAAAA=",
158
- "AAAAAAAAAJVUaGUgdHlwZSBvZiBkYXRhIHJlcXVpcmVkIGZvciBtaWdyYXRpb24uClVwZ3JhZGVzIHRoZSBjb250cmFjdCB0byBuZXcgV0FTTSBieXRlY29kZS4KU2V0cyBhIG1pZ3JhdGlvbiBmbGFnIHRoYXQgbXVzdCBiZSBjbGVhcmVkIGJ5IGNhbGxpbmcgYG1pZ3JhdGVgLgAAAAAAAAd1cGdyYWRlAAAAAAEAAAAAAAAADW5ld193YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAA=",
159
- "AAAAAAAAAHZSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgbWlncmF0aW9uIGZsYWcgaXMgc2V0IGJ5IGEgcHJldmlvdXMgYHVwZ3JhZGVgIGNhbGwuAAAAAAAHbWlncmF0ZQAAAAABAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAA=",
160
- "AAAAAAAAAF5QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLgpUaGlzIGFjdGlvbiBpcyBpcnJldmVyc2libGUuAAAAAAAGZnJlZXplAAAAAAAAAAAAAA==",
235
+ "AAAAAAAAAGxVcGdyYWRlcyB0aGUgY29udHJhY3QgdG8gbmV3IFdBU00gYnl0ZWNvZGUuClNldHMgYSBtaWdyYXRpb24gZmxhZyB0aGF0IG11c3QgYmUgY2xlYXJlZCBieSBjYWxsaW5nIGBtaWdyYXRlYC4AAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAA",
236
+ "AAAAAAAAAIdSdW5zIG1pZ3JhdGlvbiBsb2dpYyBhZnRlciBhbiB1cGdyYWRlLgpQYXJzZXMgWERSLWVuY29kZWQgYG1pZ3JhdGlvbl9kYXRhYCBhbmQgY2FsbHMgYF9fbWlncmF0ZWAuIENsZWFycyB0aGUgbWlncmF0aW9uIGZsYWcgb24gc3VjY2Vzcy4AAAAAB21pZ3JhdGUAAAAAAQAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAA",
237
+ "AAAAAAAAAE9QZXJtYW5lbnRseSBmcmVlemVzIHRoZSBjb250cmFjdCwgcHJldmVudGluZyBhbnkgZnV0dXJlIHVwZ3JhZGVzLiBJcnJldmVyc2libGUuAAAAAAZmcmVlemUAAAAAAAAAAAAA",
161
238
  "AAAAAAAAADtSZXR1cm5zIHdoZXRoZXIgdGhlIGNvbnRyYWN0IGlzIGZyb3plbiAodXBncmFkZXMgZGlzYWJsZWQpLgAAAAAJaXNfZnJvemVuAAAAAAAAAAAAAAEAAAAB",
162
239
  "AAAAAAAAAAAAAAAKYXV0aG9yaXplcgAAAAAAAAAAAAEAAAAT",
163
240
  "AAAAAAAAAD5SZXR1cm5zIHRoZSBjdXJyZW50IG93bmVyIGFkZHJlc3MsIG9yIE5vbmUgaWYgbm8gb3duZXIgaXMgc2V0LgAAAAAABW93bmVyAAAAAAAAAAAAAAEAAAPoAAAAEw==",
@@ -190,14 +267,14 @@ export class Client extends ContractClient {
190
267
  "AAAABQAAAAAAAAAAAAAAC0NvbXBvc2VTZW50AAAAAAEAAAAMY29tcG9zZV9zZW50AAAABQAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAAAAAAAB21lc3NhZ2UAAAAADgAAAAAAAAAC",
191
268
  "AAAABQAAAAAAAAAAAAAAEENvbXBvc2VEZWxpdmVyZWQAAAABAAAAEWNvbXBvc2VfZGVsaXZlcmVkAAAAAAAABAAAAAAAAAAEZnJvbQAAABMAAAABAAAAAAAAAAJ0bwAAAAAAEwAAAAEAAAAAAAAABGd1aWQAAAPuAAAAIAAAAAEAAAAAAAAABWluZGV4AAAAAAAABAAAAAEAAAAC",
192
269
  "AAAABQAAAAAAAAAAAAAADkx6Q29tcG9zZUFsZXJ0AAAAAAABAAAAEGx6X2NvbXBvc2VfYWxlcnQAAAAKAAAAAAAAAARmcm9tAAAAEwAAAAEAAAAAAAAAAnRvAAAAAAATAAAAAQAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAQAAAAAAAAAEZ3VpZAAAA+4AAAAgAAAAAQAAAAAAAAAFaW5kZXgAAAAAAAAEAAAAAQAAAAAAAAADZ2FzAAAAAAsAAAAAAAAAAAAAAAV2YWx1ZQAAAAAAAAsAAAAAAAAAAAAAAAdtZXNzYWdlAAAAAA4AAAAAAAAAAAAAAApleHRyYV9kYXRhAAAAAAAOAAAAAAAAAAAAAAAGcmVhc29uAAAAAAAOAAAAAAAAAAI=",
193
- "AAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAAAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAAAAAAADUNvbXBvc2VFeGlzdHMAAAAAAAACAAAAAAAAAA9Db21wb3NlTm90Rm91bmQAAAAAAwAAAAAAAAAcRGVmYXVsdFJlY2VpdmVMaWJVbmF2YWlsYWJsZQAAAAQAAAAAAAAAGURlZmF1bHRTZW5kTGliVW5hdmFpbGFibGUAAAAAAAAFAAAAAAAAABVJbnN1ZmZpY2llbnROYXRpdmVGZWUAAAAAAAAGAAAAAAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAAAAAAAEEludmFsaWRGZWVBbW91bnQAAAAIAAAAAAAAAA1JbnZhbGlkRXhwaXJ5AAAAAAAACQAAAAAAAAAMSW52YWxpZEluZGV4AAAACgAAAAAAAAAMSW52YWxpZE5vbmNlAAAACwAAAAAAAAASSW52YWxpZFBheWxvYWRIYXNoAAAAAAAMAAAAAAAAABVJbnZhbGlkUmVjZWl2ZUxpYnJhcnkAAAAAAAANAAAAAAAAABFPbmx5Tm9uRGVmYXVsdExpYgAAAAAAAA4AAAAAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAAAAAAABFPbmx5UmVnaXN0ZXJlZExpYgAAAAAAABAAAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAAAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAAAAAABNQYXlsb2FkSGFzaE5vdEZvdW5kAAAAABQAAAAAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAAAAAADFVuYXV0aG9yaXplZAAAABYAAAAAAAAADlVuc3VwcG9ydGVkRWlkAAAAAAAXAAAAAAAAAApaZXJvWnJvRmVlAAAAAAAYAAAAAAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQ==",
270
+ "AAAABAAAAAAAAAAAAAAADUVuZHBvaW50RXJyb3IAAAAAAAAZAAAAL0xpYnJhcnkgaXMgYWxyZWFkeSByZWdpc3RlcmVkIHdpdGggdGhlIGVuZHBvaW50AAAAABFBbHJlYWR5UmVnaXN0ZXJlZAAAAAAAAAEAAAA2Q29tcG9zZSBtZXNzYWdlIGFscmVhZHkgZXhpc3RzIGZvciB0aGlzIEdVSUQgYW5kIGluZGV4AAAAAAANQ29tcG9zZUV4aXN0cwAAAAAAAAIAAAA2Q29tcG9zZSBtZXNzYWdlIG5vdCBmb3VuZCBmb3IgdGhlIGdpdmVuIEdVSUQgYW5kIGluZGV4AAAAAAAPQ29tcG9zZU5vdEZvdW5kAAAAAAMAAAA6RGVmYXVsdCByZWNlaXZlIGxpYnJhcnkgaXMgbm90IHNldCBmb3IgdGhlIHNvdXJjZSBlbmRwb2ludAAAAAAAHERlZmF1bHRSZWNlaXZlTGliVW5hdmFpbGFibGUAAAAEAAAAPERlZmF1bHQgc2VuZCBsaWJyYXJ5IGlzIG5vdCBzZXQgZm9yIHRoZSBkZXN0aW5hdGlvbiBlbmRwb2ludAAAABlEZWZhdWx0U2VuZExpYlVuYXZhaWxhYmxlAAAAAAAABQAAAC9TdXBwbGllZCBuYXRpdmUgdG9rZW4gZmVlIGlzIGxlc3MgdGhhbiByZXF1aXJlZAAAAAAVSW5zdWZmaWNpZW50TmF0aXZlRmVlAAAAAAAABgAAACxTdXBwbGllZCBaUk8gdG9rZW4gZmVlIGlzIGxlc3MgdGhhbiByZXF1aXJlZAAAABJJbnN1ZmZpY2llbnRacm9GZWUAAAAAAAcAAAArVGltZW91dCBleHBpcnkgaXMgaW52YWxpZCAoYWxyZWFkeSBleHBpcmVkKQAAAAANSW52YWxpZEV4cGlyeQAAAAAAAAgAAAAgRmVlIGFtb3VudCBpcyBpbnZhbGlkIChuZWdhdGl2ZSkAAAAQSW52YWxpZEZlZUFtb3VudAAAAAkAAAArQ29tcG9zZSBpbmRleCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCB2YWx1ZQAAAAAMSW52YWxpZEluZGV4AAAACgAAACxOb25jZSBpcyBpbnZhbGlkIGZvciB0aGUgcmVxdWVzdGVkIG9wZXJhdGlvbgAAAAxJbnZhbGlkTm9uY2UAAAALAAAAMFBheWxvYWQgaGFzaCBpcyBpbnZhbGlkIChlbXB0eSBoYXNoIG5vdCBhbGxvd2VkKQAAABJJbnZhbGlkUGF5bG9hZEhhc2gAAAAAAAwAAABBUmVjZWl2ZSBsaWJyYXJ5IGlzIG5vdCB2YWxpZCBmb3IgdGhlIHJlY2VpdmVyIGFuZCBzb3VyY2UgZW5kcG9pbnQAAAAAAAAVSW52YWxpZFJlY2VpdmVMaWJyYXJ5AAAAAAAADQAAADFPcGVyYXRpb24gcmVxdWlyZXMgYSBub24tZGVmYXVsdCAoY3VzdG9tKSBsaWJyYXJ5AAAAAAAAEU9ubHlOb25EZWZhdWx0TGliAAAAAAAADgAAACdMaWJyYXJ5IG11c3Qgc3VwcG9ydCByZWNlaXZpbmcgbWVzc2FnZXMAAAAADk9ubHlSZWNlaXZlTGliAAAAAAAPAAAALExpYnJhcnkgbXVzdCBiZSByZWdpc3RlcmVkIHdpdGggdGhlIGVuZHBvaW50AAAAEU9ubHlSZWdpc3RlcmVkTGliAAAAAAAAEAAAACVMaWJyYXJ5IG11c3Qgc3VwcG9ydCBzZW5kaW5nIG1lc3NhZ2VzAAAAAAAAC09ubHlTZW5kTGliAAAAABEAAAA5TWVzc2FnaW5nIHBhdGggY2Fubm90IGJlIGluaXRpYWxpemVkIGZvciB0aGUgZ2l2ZW4gb3JpZ2luAAAAAAAAFFBhdGhOb3RJbml0aWFsaXphYmxlAAAAEgAAAC9NZXNzYWdlIGNhbm5vdCBiZSB2ZXJpZmllZCBmb3IgdGhlIGdpdmVuIG9yaWdpbgAAAAARUGF0aE5vdFZlcmlmaWFibGUAAAAAAAATAAAAK1BheWxvYWQgaGFzaCBkb2VzIG5vdCBtYXRjaCB0aGUgc3RvcmVkIGhhc2gAAAAAE1BheWxvYWRIYXNoTm90Rm91bmQAAAAAFAAAACdOZXcgdmFsdWUgaXMgdGhlIHNhbWUgYXMgZXhpc3RpbmcgdmFsdWUAAAAACVNhbWVWYWx1ZQAAAAAAABUAAAAvQ2FsbGVyIGlzIG5vdCBhdXRob3JpemVkIChub3QgT0FwcCBvciBkZWxlZ2F0ZSkAAAAADFVuYXV0aG9yaXplZAAAABYAAAArRW5kcG9pbnQgSUQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgbGlicmFyeQAAAAAOVW5zdXBwb3J0ZWRFaWQAAAAAABcAAAA5WlJPIGZlZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIHdoZW4gcGF5X2luX3pybyBpcyB0cnVlAAAAAAAAClplcm9acm9GZWUAAAAAABgAAAAcWlJPIHRva2VuIGFkZHJlc3MgaXMgbm90IHNldAAAAA5acm9VbmF2YWlsYWJsZQAAAAAAGQ==",
194
271
  "AAAAAQAAAC1QYXJhbWV0ZXJzIGZvciBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAAD01lc3NhZ2luZ1BhcmFtcwAAAAAFAAAAK0Rlc3RpbmF0aW9uIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAB2RzdF9laWQAAAAABAAAABxUaGUgbWVzc2FnZSBwYXlsb2FkIHRvIHNlbmQuAAAAB21lc3NhZ2UAAAAADgAAACFFbmNvZGVkIGV4ZWN1dG9yIGFuZCBEVk4gb3B0aW9ucy4AAAAAAAAHb3B0aW9ucwAAAAAOAAAAOVdoZXRoZXIgdG8gcGF5IGZlZXMgaW4gWlJPIHRva2VuIGluc3RlYWQgb2YgbmF0aXZlIHRva2VuLgAAAAAAAApwYXlfaW5fenJvAAAAAAABAAAANVJlY2VpdmVyIGFkZHJlc3Mgb24gdGhlIGRlc3RpbmF0aW9uIGNoYWluICgzMiBieXRlcykuAAAAAAAACHJlY2VpdmVyAAAD7gAAACA=",
195
272
  "AAAAAQAAAE1Tb3VyY2UgbWVzc2FnZSBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB3aGVyZSBhIGNyb3NzLWNoYWluIG1lc3NhZ2UgY2FtZSBmcm9tLgAAAAAAAAAAAAAGT3JpZ2luAAAAAAADAAAAF05vbmNlIGZvciB0aGlzIHBhdGh3YXkuAAAAAAVub25jZQAAAAAAAAYAAAAuU2VuZGVyIGFkZHJlc3Mgb24gdGhlIHNvdXJjZSBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAABnNlbmRlcgAAAAAD7gAAACAAAAAmU291cmNlIGVuZHBvaW50IElEIChjaGFpbiBpZGVudGlmaWVyKS4AAAAAAAdzcmNfZWlkAAAAAAQ=",
196
273
  "AAAAAQAAAChGZWUgc3RydWN0dXJlIGZvciBjcm9zcy1jaGFpbiBtZXNzYWdpbmcuAAAAAAAAAAxNZXNzYWdpbmdGZWUAAAACAAAAH0ZlZSBwYWlkIGluIG5hdGl2ZSB0b2tlbiAoWExNKS4AAAAACm5hdGl2ZV9mZWUAAAAAAAsAAAAoRmVlIHBhaWQgaW4gWlJPIHRva2VuIChMYXllclplcm8gdG9rZW4pLgAAAAd6cm9fZmVlAAAAAAs=",
197
274
  "AAAAAQAAAEJSZWNlaXB0IHJldHVybmVkIGFmdGVyIHN1Y2Nlc3NmdWxseSBzZW5kaW5nIGEgY3Jvc3MtY2hhaW4gbWVzc2FnZS4AAAAAAAAAAAAQTWVzc2FnaW5nUmVjZWlwdAAAAAMAAAApVGhlIGZlZXMgY2hhcmdlZCBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZS4AAAAAAAADZmVlAAAAB9AAAAAMTWVzc2FnaW5nRmVlAAAAK0dsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgbWVzc2FnZS4AAAAABGd1aWQAAAPuAAAAIAAAACRUaGUgb3V0Ym91bmQgbm9uY2UgZm9yIHRoaXMgcGF0aHdheS4AAAAFbm9uY2UAAAAAAAAG",
198
275
  "AAAAAgAAADhUeXBlIG9mIG1lc3NhZ2UgbGlicmFyeSBpbmRpY2F0aW5nIHN1cHBvcnRlZCBvcGVyYXRpb25zLgAAAAAAAAAOTWVzc2FnZUxpYlR5cGUAAAAAAAMAAAAAAAAAH1N1cHBvcnRzIG9ubHkgc2VuZGluZyBtZXNzYWdlcy4AAAAABFNlbmQAAAAAAAAAIVN1cHBvcnRzIG9ubHkgcmVjZWl2aW5nIG1lc3NhZ2VzLgAAAAAAAAdSZWNlaXZlAAAAAAAAAAAtU3VwcG9ydHMgYm90aCBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbWVzc2FnZXMuAAAAAAAADlNlbmRBbmRSZWNlaXZlAAA=",
199
276
  "AAAAAQAAALdWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhIG1lc3NhZ2UgbGlicmFyeS4KCk5vdGU6IGBtaW5vcmAgYW5kIGBlbmRwb2ludF92ZXJzaW9uYCB1c2UgYHUzMmAgaW5zdGVhZCBvZiBgdThgIGJlY2F1c2UgU3RlbGxhciBkb2VzIG5vdApzdXBwb3J0IGB1OGAgdHlwZXMgaW4gY29udHJhY3QgaW50ZXJmYWNlIGZ1bmN0aW9ucy4AAAAAAAAAABFNZXNzYWdlTGliVmVyc2lvbgAAAAAAAAMAAAAzRW5kcG9pbnQgdmVyc2lvbiAoc2hvdWxkIG5vdCBleGNlZWQgdTg6Ok1BWCA9IDI1NSkuAAAAABBlbmRwb2ludF92ZXJzaW9uAAAABAAAABVNYWpvciB2ZXJzaW9uIG51bWJlci4AAAAAAAAFbWFqb3IAAAAAAAAGAAAAN01pbm9yIHZlcnNpb24gbnVtYmVyIChzaG91bGQgbm90IGV4Y2VlZCB1ODo6TUFYID0gMjU1KS4AAAAABW1pbm9yAAAAAAAABA==",
200
- "AAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAKFVuaXggdGltZXN0YW1wIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4AAAAGZXhwaXJ5AAAAAAAGAAAAKVRoZSBuZXcgbGlicmFyeSBhZGRyZXNzIHRvIHRyYW5zaXRpb24gdG8uAAAAAAAAA2xpYgAAAAAT",
277
+ "AAAAAQAAADZUaW1lb3V0IGNvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmUgbGlicmFyeSB0cmFuc2l0aW9ucy4AAAAAAAAAAAAHVGltZW91dAAAAAACAAAAM1VuaXggdGltZXN0YW1wIGluIHNlY29uZHMgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzLgAAAAAGZXhwaXJ5AAAAAAAGAAAAQ1RoZSBvbGQgbGlicmFyeSBhZGRyZXNzIHRoYXQgcmVtYWlucyB2YWxpZCBkdXJpbmcgdGhlIGdyYWNlIHBlcmlvZC4AAAAAA2xpYgAAAAAT",
201
278
  "AAAAAQAAADVQYXJhbWV0ZXJzIGZvciBzZXR0aW5nIG1lc3NhZ2UgbGlicmFyeSBjb25maWd1cmF0aW9uLgAAAAAAAAAAAAAOU2V0Q29uZmlnUGFyYW0AAAAAAAMAAAAfWERSLWVuY29kZWQgY29uZmlndXJhdGlvbiBkYXRhLgAAAAAGY29uZmlnAAAAAAAOAAAAMFRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24gKGUuZy4sIGV4ZWN1dG9yLCBVTE4pLgAAAAtjb25maWdfdHlwZQAAAAAEAAAAJ1RoZSBlbmRwb2ludCBJRCB0aGlzIGNvbmZpZyBhcHBsaWVzIHRvLgAAAAADZWlkAAAAAAQ=",
202
279
  "AAAAAQAAADFSZXNvbHZlZCBsaWJyYXJ5IGluZm9ybWF0aW9uIHdpdGggZGVmYXVsdCBzdGF0dXMuAAAAAAAAAAAAAA9SZXNvbHZlZExpYnJhcnkAAAAAAgAAAERXaGV0aGVyIHRoaXMgaXMgdGhlIGRlZmF1bHQgbGlicmFyeSAodHJ1ZSkgb3IgT0FwcC1zcGVjaWZpYyAoZmFsc2UpLgAAAAppc19kZWZhdWx0AAAAAAABAAAAHVRoZSByZXNvbHZlZCBsaWJyYXJ5IGFkZHJlc3MuAAAAAAAAA2xpYgAAAAAT",
203
280
  "AAAAAQAAAEhPdXRib3VuZCBwYWNrZXQgY29udGFpbmluZyBhbGwgaW5mb3JtYXRpb24gZm9yIGNyb3NzLWNoYWluIHRyYW5zbWlzc2lvbi4AAAAAAAAADk91dGJvdW5kUGFja2V0AAAAAAAHAAAAGERlc3RpbmF0aW9uIGVuZHBvaW50IElELgAAAAdkc3RfZWlkAAAAAAQAAAAsR2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgbWVzc2FnZS4AAAAEZ3VpZAAAA+4AAAAgAAAAFFRoZSBtZXNzYWdlIHBheWxvYWQuAAAAB21lc3NhZ2UAAAAADgAAACBPdXRib3VuZCBub25jZSBmb3IgdGhpcyBwYXRod2F5LgAAAAVub25jZQAAAAAAAAYAAAAxUmVjZWl2ZXIgYWRkcmVzcyBvbiBkZXN0aW5hdGlvbiBjaGFpbiAoMzIgYnl0ZXMpLgAAAAAAAAhyZWNlaXZlcgAAA+4AAAAgAAAAH1NlbmRlciBhZGRyZXNzIG9uIHNvdXJjZSBjaGFpbi4AAAAABnNlbmRlcgAAAAAAEwAAABNTb3VyY2UgZW5kcG9pbnQgSUQuAAAAAAdzcmNfZWlkAAAAAAQ=",
@@ -212,15 +289,16 @@ export class Client extends ContractClient {
212
289
  "AAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPp",
213
290
  "AAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/I=",
214
291
  "AAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4=",
215
- "AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQL",
292
+ "AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAcAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEBgAAAAAAAAATSW52YWxpZFBlbmRpbmdPd25lcgAAAAQHAAAAAAAAAApJbnZhbGlkVHRsAAAAAAQIAAAAAAAAABFOb1BlbmRpbmdUcmFuc2ZlcgAAAAAABAkAAAAAAAAAD093bmVyQWxyZWFkeVNldAAAAAQKAAAAAAAAAAtPd25lck5vdFNldAAAAAQLAAAAAAAAABJUcmFuc2ZlckluUHJvZ3Jlc3MAAAAABAw=",
216
293
  "AAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEA==",
217
294
  "AAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQc",
218
- "AAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCs=",
295
+ "AAAABAAAABhNdWx0aVNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpU2lnRXJyb3IAAAAAAAAJAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAAEUludmFsaWRBdXRob3JpemVyAAAAAAAEJQAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCYAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQnAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCgAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQpAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCoAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQrAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAELA==",
219
296
  "AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAC",
220
297
  "AAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAC",
221
- "AAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAA=",
298
+ "AAAAAgAAAAAAAAAAAAAAD011bHRpU2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAA=",
222
299
  "AAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAg==",
223
300
  "AAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAC",
301
+ "AAAABQAAADxFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIGNhbmNlbGxlZC4AAAAAAAAAGk93bmVyc2hpcFRyYW5zZmVyQ2FuY2VsbGVkAAAAAAABAAAAHG93bmVyc2hpcF90cmFuc2Zlcl9jYW5jZWxsZWQAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAABdjYW5jZWxsZWRfcGVuZGluZ19vd25lcgAAAAATAAAAAAAAAAI=",
224
302
  "AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAC",
225
303
  "AAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXI=",
226
304
  "AAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQ=",