@hyperlane-xyz/core 1.3.5 → 1.3.7

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 (325) hide show
  1. package/contracts/hooks/OptimismMessageHook.sol +96 -0
  2. package/contracts/interfaces/IInterchainSecurityModule.sol +3 -2
  3. package/contracts/interfaces/hooks/IMessageHook.sol +9 -0
  4. package/contracts/isms/native/AbstractNativeISM.sol +51 -0
  5. package/contracts/isms/native/OptimismISM.sol +80 -0
  6. package/contracts/upgrade/TimelockController.sol +6 -0
  7. package/dist/@eth-optimism/contracts/index.d.ts +3 -0
  8. package/dist/@eth-optimism/contracts/index.d.ts.map +1 -0
  9. package/dist/@eth-optimism/contracts/index.js +4 -0
  10. package/dist/@eth-optimism/contracts/index.js.map +1 -0
  11. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts +102 -0
  12. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.d.ts.map +1 -0
  13. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js +4 -0
  14. package/dist/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.js.map +1 -0
  15. package/dist/@eth-optimism/contracts/libraries/bridge/index.d.ts +2 -0
  16. package/dist/@eth-optimism/contracts/libraries/bridge/index.d.ts.map +1 -0
  17. package/dist/@eth-optimism/contracts/libraries/bridge/index.js +3 -0
  18. package/dist/@eth-optimism/contracts/libraries/bridge/index.js.map +1 -0
  19. package/dist/@eth-optimism/contracts/libraries/index.d.ts +3 -0
  20. package/dist/@eth-optimism/contracts/libraries/index.d.ts.map +1 -0
  21. package/dist/@eth-optimism/contracts/libraries/index.js +4 -0
  22. package/dist/@eth-optimism/contracts/libraries/index.js.map +1 -0
  23. package/dist/@eth-optimism/index.d.ts +3 -0
  24. package/dist/@eth-optimism/index.d.ts.map +1 -0
  25. package/dist/@eth-optimism/index.js +4 -0
  26. package/dist/@eth-optimism/index.js.map +1 -0
  27. package/dist/@openzeppelin/contracts/access/AccessControl.d.ts +162 -0
  28. package/dist/@openzeppelin/contracts/access/AccessControl.d.ts.map +1 -0
  29. package/dist/@openzeppelin/contracts/access/AccessControl.js +4 -0
  30. package/dist/@openzeppelin/contracts/access/AccessControl.js.map +1 -0
  31. package/dist/@openzeppelin/contracts/access/IAccessControl.d.ts +146 -0
  32. package/dist/@openzeppelin/contracts/access/IAccessControl.d.ts.map +1 -0
  33. package/dist/@openzeppelin/contracts/access/IAccessControl.js +4 -0
  34. package/dist/@openzeppelin/contracts/access/IAccessControl.js.map +1 -0
  35. package/dist/@openzeppelin/contracts/access/index.d.ts +2 -0
  36. package/dist/@openzeppelin/contracts/access/index.d.ts.map +1 -1
  37. package/dist/@openzeppelin/contracts/governance/TimelockController.d.ts +496 -0
  38. package/dist/@openzeppelin/contracts/governance/TimelockController.d.ts.map +1 -0
  39. package/dist/@openzeppelin/contracts/governance/TimelockController.js +4 -0
  40. package/dist/@openzeppelin/contracts/governance/TimelockController.js.map +1 -0
  41. package/dist/@openzeppelin/contracts/governance/index.d.ts +2 -0
  42. package/dist/@openzeppelin/contracts/governance/index.d.ts.map +1 -0
  43. package/dist/@openzeppelin/contracts/governance/index.js +3 -0
  44. package/dist/@openzeppelin/contracts/governance/index.js.map +1 -0
  45. package/dist/@openzeppelin/contracts/index.d.ts +6 -0
  46. package/dist/@openzeppelin/contracts/index.d.ts.map +1 -1
  47. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.d.ts +75 -0
  48. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.d.ts.map +1 -0
  49. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.js +4 -0
  50. package/dist/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.js.map +1 -0
  51. package/dist/@openzeppelin/contracts/token/ERC1155/index.d.ts +2 -0
  52. package/dist/@openzeppelin/contracts/token/ERC1155/index.d.ts.map +1 -0
  53. package/dist/@openzeppelin/contracts/token/ERC1155/index.js +3 -0
  54. package/dist/@openzeppelin/contracts/token/ERC1155/index.js.map +1 -0
  55. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.d.ts +51 -0
  56. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.d.ts.map +1 -0
  57. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.js +4 -0
  58. package/dist/@openzeppelin/contracts/token/ERC721/IERC721Receiver.js.map +1 -0
  59. package/dist/@openzeppelin/contracts/token/ERC721/index.d.ts +2 -0
  60. package/dist/@openzeppelin/contracts/token/ERC721/index.d.ts.map +1 -0
  61. package/dist/@openzeppelin/contracts/token/ERC721/index.js +3 -0
  62. package/dist/@openzeppelin/contracts/token/ERC721/index.js.map +1 -0
  63. package/dist/@openzeppelin/contracts/token/index.d.ts +4 -0
  64. package/dist/@openzeppelin/contracts/token/index.d.ts.map +1 -1
  65. package/dist/@openzeppelin/contracts/utils/index.d.ts +3 -0
  66. package/dist/@openzeppelin/contracts/utils/index.d.ts.map +1 -0
  67. package/dist/@openzeppelin/contracts/utils/index.js +4 -0
  68. package/dist/@openzeppelin/contracts/utils/index.js.map +1 -0
  69. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.d.ts +43 -0
  70. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.d.ts.map +1 -0
  71. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.js +4 -0
  72. package/dist/@openzeppelin/contracts/utils/introspection/ERC165.js.map +1 -0
  73. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.d.ts +43 -0
  74. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.d.ts.map +1 -0
  75. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.js +4 -0
  76. package/dist/@openzeppelin/contracts/utils/introspection/IERC165.js.map +1 -0
  77. package/dist/@openzeppelin/contracts/utils/introspection/index.d.ts +3 -0
  78. package/dist/@openzeppelin/contracts/utils/introspection/index.d.ts.map +1 -0
  79. package/dist/@openzeppelin/contracts/utils/introspection/index.js +3 -0
  80. package/dist/@openzeppelin/contracts/utils/introspection/index.js.map +1 -0
  81. package/dist/@openzeppelin/contracts/vendor/index.d.ts +3 -0
  82. package/dist/@openzeppelin/contracts/vendor/index.d.ts.map +1 -0
  83. package/dist/@openzeppelin/contracts/vendor/index.js +4 -0
  84. package/dist/@openzeppelin/contracts/vendor/index.js.map +1 -0
  85. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts +102 -0
  86. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.d.ts.map +1 -0
  87. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js +4 -0
  88. package/dist/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger.js.map +1 -0
  89. package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts +2 -0
  90. package/dist/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +1 -0
  91. package/dist/@openzeppelin/contracts/vendor/optimism/index.js +3 -0
  92. package/dist/@openzeppelin/contracts/vendor/optimism/index.js.map +1 -0
  93. package/dist/contracts/hooks/OptimismMessageHook.d.ts +75 -0
  94. package/dist/contracts/hooks/OptimismMessageHook.d.ts.map +1 -0
  95. package/dist/contracts/hooks/OptimismMessageHook.js +4 -0
  96. package/dist/contracts/hooks/OptimismMessageHook.js.map +1 -0
  97. package/dist/contracts/hooks/index.d.ts +2 -0
  98. package/dist/contracts/hooks/index.d.ts.map +1 -0
  99. package/dist/contracts/hooks/index.js +3 -0
  100. package/dist/contracts/hooks/index.js.map +1 -0
  101. package/dist/contracts/index.d.ts +2 -0
  102. package/dist/contracts/index.d.ts.map +1 -1
  103. package/dist/contracts/interfaces/hooks/IMessageHook.d.ts +51 -0
  104. package/dist/contracts/interfaces/hooks/IMessageHook.d.ts.map +1 -0
  105. package/dist/contracts/interfaces/hooks/IMessageHook.js +4 -0
  106. package/dist/contracts/interfaces/hooks/IMessageHook.js.map +1 -0
  107. package/dist/contracts/interfaces/hooks/index.d.ts +2 -0
  108. package/dist/contracts/interfaces/hooks/index.d.ts.map +1 -0
  109. package/dist/contracts/interfaces/hooks/index.js +3 -0
  110. package/dist/contracts/interfaces/hooks/index.js.map +1 -0
  111. package/dist/contracts/interfaces/index.d.ts +2 -0
  112. package/dist/contracts/interfaces/index.d.ts.map +1 -1
  113. package/dist/contracts/isms/index.d.ts +2 -0
  114. package/dist/contracts/isms/index.d.ts.map +1 -1
  115. package/dist/contracts/isms/native/AbstractNativeISM.d.ts +83 -0
  116. package/dist/contracts/isms/native/AbstractNativeISM.d.ts.map +1 -0
  117. package/dist/contracts/isms/native/AbstractNativeISM.js +4 -0
  118. package/dist/contracts/isms/native/AbstractNativeISM.js.map +1 -0
  119. package/dist/contracts/isms/native/OptimismISM.d.ts +123 -0
  120. package/dist/contracts/isms/native/OptimismISM.d.ts.map +1 -0
  121. package/dist/contracts/isms/native/OptimismISM.js +4 -0
  122. package/dist/contracts/isms/native/OptimismISM.js.map +1 -0
  123. package/dist/contracts/isms/native/index.d.ts +3 -0
  124. package/dist/contracts/isms/native/index.d.ts.map +1 -0
  125. package/dist/contracts/isms/native/index.js +3 -0
  126. package/dist/contracts/isms/native/index.js.map +1 -0
  127. package/dist/factories/@eth-optimism/contracts/index.d.ts +2 -0
  128. package/dist/factories/@eth-optimism/contracts/index.d.ts.map +1 -0
  129. package/dist/factories/@eth-optimism/contracts/index.js +31 -0
  130. package/dist/factories/@eth-optimism/contracts/index.js.map +1 -0
  131. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts +43 -0
  132. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.d.ts.map +1 -0
  133. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js +117 -0
  134. package/dist/factories/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger__factory.js.map +1 -0
  135. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.d.ts +2 -0
  136. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.d.ts.map +1 -0
  137. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.js +9 -0
  138. package/dist/factories/@eth-optimism/contracts/libraries/bridge/index.js.map +1 -0
  139. package/dist/factories/@eth-optimism/contracts/libraries/index.d.ts +2 -0
  140. package/dist/factories/@eth-optimism/contracts/libraries/index.d.ts.map +1 -0
  141. package/dist/factories/@eth-optimism/contracts/libraries/index.js +31 -0
  142. package/dist/factories/@eth-optimism/contracts/libraries/index.js.map +1 -0
  143. package/dist/factories/@eth-optimism/index.d.ts +2 -0
  144. package/dist/factories/@eth-optimism/index.d.ts.map +1 -0
  145. package/dist/factories/@eth-optimism/index.js +31 -0
  146. package/dist/factories/@eth-optimism/index.js.map +1 -0
  147. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.d.ts +36 -0
  148. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.d.ts.map +1 -0
  149. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.js +222 -0
  150. package/dist/factories/@openzeppelin/contracts/access/AccessControl__factory.js.map +1 -0
  151. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.d.ts +36 -0
  152. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.d.ts.map +1 -0
  153. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.js +190 -0
  154. package/dist/factories/@openzeppelin/contracts/access/IAccessControl__factory.js.map +1 -0
  155. package/dist/factories/@openzeppelin/contracts/access/index.d.ts +2 -0
  156. package/dist/factories/@openzeppelin/contracts/access/index.d.ts.map +1 -1
  157. package/dist/factories/@openzeppelin/contracts/access/index.js +5 -1
  158. package/dist/factories/@openzeppelin/contracts/access/index.js.map +1 -1
  159. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts +66 -0
  160. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.d.ts.map +1 -0
  161. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js +911 -0
  162. package/dist/factories/@openzeppelin/contracts/governance/TimelockController__factory.js.map +1 -0
  163. package/dist/factories/@openzeppelin/contracts/governance/index.d.ts +2 -0
  164. package/dist/factories/@openzeppelin/contracts/governance/index.d.ts.map +1 -0
  165. package/dist/factories/@openzeppelin/contracts/governance/index.js +9 -0
  166. package/dist/factories/@openzeppelin/contracts/governance/index.js.map +1 -0
  167. package/dist/factories/@openzeppelin/contracts/index.d.ts +3 -0
  168. package/dist/factories/@openzeppelin/contracts/index.d.ts.map +1 -1
  169. package/dist/factories/@openzeppelin/contracts/index.js +4 -1
  170. package/dist/factories/@openzeppelin/contracts/index.js.map +1 -1
  171. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.d.ts +23 -0
  172. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.d.ts.map +1 -0
  173. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.js +115 -0
  174. package/dist/factories/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver__factory.js.map +1 -0
  175. package/dist/factories/@openzeppelin/contracts/token/ERC1155/index.d.ts +2 -0
  176. package/dist/factories/@openzeppelin/contracts/token/ERC1155/index.d.ts.map +1 -0
  177. package/dist/factories/@openzeppelin/contracts/token/ERC1155/index.js +9 -0
  178. package/dist/factories/@openzeppelin/contracts/token/ERC1155/index.js.map +1 -0
  179. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.d.ts +23 -0
  180. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.d.ts.map +1 -0
  181. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js +52 -0
  182. package/dist/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js.map +1 -0
  183. package/dist/factories/@openzeppelin/contracts/token/ERC721/index.d.ts +2 -0
  184. package/dist/factories/@openzeppelin/contracts/token/ERC721/index.d.ts.map +1 -0
  185. package/dist/factories/@openzeppelin/contracts/token/ERC721/index.js +9 -0
  186. package/dist/factories/@openzeppelin/contracts/token/ERC721/index.js.map +1 -0
  187. package/dist/factories/@openzeppelin/contracts/token/index.d.ts +2 -0
  188. package/dist/factories/@openzeppelin/contracts/token/index.d.ts.map +1 -1
  189. package/dist/factories/@openzeppelin/contracts/token/index.js +3 -1
  190. package/dist/factories/@openzeppelin/contracts/token/index.js.map +1 -1
  191. package/dist/factories/@openzeppelin/contracts/utils/index.d.ts +2 -0
  192. package/dist/factories/@openzeppelin/contracts/utils/index.d.ts.map +1 -0
  193. package/dist/factories/@openzeppelin/contracts/utils/index.js +31 -0
  194. package/dist/factories/@openzeppelin/contracts/utils/index.js.map +1 -0
  195. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.d.ts +23 -0
  196. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.d.ts.map +1 -0
  197. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.js +37 -0
  198. package/dist/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.js.map +1 -0
  199. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.d.ts +23 -0
  200. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.d.ts.map +1 -0
  201. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js +37 -0
  202. package/dist/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js.map +1 -0
  203. package/dist/factories/@openzeppelin/contracts/utils/introspection/index.d.ts +3 -0
  204. package/dist/factories/@openzeppelin/contracts/utils/introspection/index.d.ts.map +1 -0
  205. package/dist/factories/@openzeppelin/contracts/utils/introspection/index.js +11 -0
  206. package/dist/factories/@openzeppelin/contracts/utils/introspection/index.js.map +1 -0
  207. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts +2 -0
  208. package/dist/factories/@openzeppelin/contracts/vendor/index.d.ts.map +1 -0
  209. package/dist/factories/@openzeppelin/contracts/vendor/index.js +31 -0
  210. package/dist/factories/@openzeppelin/contracts/vendor/index.js.map +1 -0
  211. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts +43 -0
  212. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.d.ts.map +1 -0
  213. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js +117 -0
  214. package/dist/factories/@openzeppelin/contracts/vendor/optimism/ICrossDomainMessenger__factory.js.map +1 -0
  215. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts +2 -0
  216. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.d.ts.map +1 -0
  217. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js +9 -0
  218. package/dist/factories/@openzeppelin/contracts/vendor/optimism/index.js.map +1 -0
  219. package/dist/factories/contracts/Mailbox__factory.d.ts +1 -1
  220. package/dist/factories/contracts/Mailbox__factory.js +1 -1
  221. package/dist/factories/contracts/ValidatorAnnounce__factory.d.ts +1 -1
  222. package/dist/factories/contracts/ValidatorAnnounce__factory.js +1 -1
  223. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts +45 -0
  224. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.d.ts.map +1 -0
  225. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js +125 -0
  226. package/dist/factories/contracts/hooks/OptimismMessageHook__factory.js.map +1 -0
  227. package/dist/factories/contracts/hooks/index.d.ts +2 -0
  228. package/dist/factories/contracts/hooks/index.d.ts.map +1 -0
  229. package/dist/factories/contracts/hooks/index.js +9 -0
  230. package/dist/factories/contracts/hooks/index.js.map +1 -0
  231. package/dist/factories/contracts/index.d.ts +1 -0
  232. package/dist/factories/contracts/index.d.ts.map +1 -1
  233. package/dist/factories/contracts/index.js +2 -1
  234. package/dist/factories/contracts/index.js.map +1 -1
  235. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts +23 -0
  236. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.d.ts.map +1 -0
  237. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js +42 -0
  238. package/dist/factories/contracts/interfaces/hooks/IMessageHook__factory.js.map +1 -0
  239. package/dist/factories/contracts/interfaces/hooks/index.d.ts +2 -0
  240. package/dist/factories/contracts/interfaces/hooks/index.d.ts.map +1 -0
  241. package/dist/factories/contracts/interfaces/hooks/index.js +9 -0
  242. package/dist/factories/contracts/interfaces/hooks/index.js.map +1 -0
  243. package/dist/factories/contracts/interfaces/index.d.ts +1 -0
  244. package/dist/factories/contracts/interfaces/index.d.ts.map +1 -1
  245. package/dist/factories/contracts/interfaces/index.js +2 -1
  246. package/dist/factories/contracts/interfaces/index.js.map +1 -1
  247. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.d.ts +1 -1
  248. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsmFactory__factory.js +1 -1
  249. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.d.ts +1 -1
  250. package/dist/factories/contracts/isms/aggregation/StaticAggregationIsm__factory.js +1 -1
  251. package/dist/factories/contracts/isms/index.d.ts +1 -0
  252. package/dist/factories/contracts/isms/index.d.ts.map +1 -1
  253. package/dist/factories/contracts/isms/index.js +2 -1
  254. package/dist/factories/contracts/isms/index.js.map +1 -1
  255. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.d.ts +1 -1
  256. package/dist/factories/contracts/isms/multisig/LegacyMultisigIsm__factory.js +1 -1
  257. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.d.ts +1 -1
  258. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsmFactory__factory.js +1 -1
  259. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.d.ts +1 -1
  260. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMerkleRootMultisigIsm__factory.js +1 -1
  261. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.d.ts +1 -1
  262. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsmFactory__factory.js +1 -1
  263. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.d.ts +1 -1
  264. package/dist/factories/contracts/isms/multisig/StaticMultisigIsm.sol/StaticMessageIdMultisigIsm__factory.js +1 -1
  265. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts +36 -0
  266. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.d.ts.map +1 -0
  267. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js +111 -0
  268. package/dist/factories/contracts/isms/native/AbstractNativeISM__factory.js.map +1 -0
  269. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts +66 -0
  270. package/dist/factories/contracts/isms/native/OptimismISM__factory.d.ts.map +1 -0
  271. package/dist/factories/contracts/isms/native/OptimismISM__factory.js +194 -0
  272. package/dist/factories/contracts/isms/native/OptimismISM__factory.js.map +1 -0
  273. package/dist/factories/contracts/isms/native/index.d.ts +3 -0
  274. package/dist/factories/contracts/isms/native/index.d.ts.map +1 -0
  275. package/dist/factories/contracts/isms/native/index.js +11 -0
  276. package/dist/factories/contracts/isms/native/index.js.map +1 -0
  277. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.d.ts +1 -1
  278. package/dist/factories/contracts/isms/routing/DomainRoutingIsmFactory__factory.js +1 -1
  279. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.d.ts +1 -1
  280. package/dist/factories/contracts/isms/routing/DomainRoutingIsm__factory.js +1 -1
  281. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.d.ts +1 -1
  282. package/dist/factories/contracts/isms/routing/InterchainAccountIsm__factory.js +1 -1
  283. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.d.ts +1 -1
  284. package/dist/factories/contracts/middleware/InterchainAccountRouter__factory.js +1 -1
  285. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.d.ts +1 -1
  286. package/dist/factories/contracts/middleware/InterchainQueryRouter__factory.js +1 -1
  287. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.d.ts +1 -1
  288. package/dist/factories/contracts/middleware/liquidity-layer/LiquidityLayerRouter__factory.js +1 -1
  289. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.d.ts +1 -1
  290. package/dist/factories/contracts/middleware/liquidity-layer/adapters/CircleBridgeAdapter__factory.js +1 -1
  291. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.d.ts +1 -1
  292. package/dist/factories/contracts/middleware/liquidity-layer/adapters/PortalAdapter__factory.js +1 -1
  293. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.d.ts +1 -1
  294. package/dist/factories/contracts/mock/MockHyperlaneEnvironment__factory.js +1 -1
  295. package/dist/factories/contracts/mock/MockMailbox__factory.d.ts +1 -1
  296. package/dist/factories/contracts/mock/MockMailbox__factory.js +1 -1
  297. package/dist/factories/contracts/test/LightTestRecipient__factory.d.ts +1 -1
  298. package/dist/factories/contracts/test/LightTestRecipient__factory.js +1 -1
  299. package/dist/factories/contracts/test/TestGasRouter__factory.d.ts +1 -1
  300. package/dist/factories/contracts/test/TestGasRouter__factory.js +1 -1
  301. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.d.ts +1 -1
  302. package/dist/factories/contracts/test/TestHyperlaneConnectionClient__factory.js +1 -1
  303. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.d.ts +1 -1
  304. package/dist/factories/contracts/test/TestLegacyMultisigIsm__factory.js +1 -1
  305. package/dist/factories/contracts/test/TestMailbox__factory.d.ts +1 -1
  306. package/dist/factories/contracts/test/TestMailbox__factory.js +1 -1
  307. package/dist/factories/contracts/test/TestMultisigIsm__factory.d.ts +1 -1
  308. package/dist/factories/contracts/test/TestMultisigIsm__factory.js +1 -1
  309. package/dist/factories/contracts/test/TestQuery__factory.d.ts +1 -1
  310. package/dist/factories/contracts/test/TestQuery__factory.js +1 -1
  311. package/dist/factories/contracts/test/TestRecipient__factory.d.ts +1 -1
  312. package/dist/factories/contracts/test/TestRecipient__factory.js +1 -1
  313. package/dist/factories/contracts/test/TestRouter__factory.d.ts +1 -1
  314. package/dist/factories/contracts/test/TestRouter__factory.js +1 -1
  315. package/dist/factories/contracts/test/TestSendReceiver__factory.d.ts +1 -1
  316. package/dist/factories/contracts/test/TestSendReceiver__factory.js +1 -1
  317. package/dist/factories/index.d.ts +1 -0
  318. package/dist/factories/index.d.ts.map +1 -1
  319. package/dist/factories/index.js +2 -1
  320. package/dist/factories/index.js.map +1 -1
  321. package/dist/index.d.ts +26 -0
  322. package/dist/index.d.ts.map +1 -1
  323. package/dist/index.js +27 -2
  324. package/dist/index.js.map +1 -1
  325. package/package.json +7 -7
@@ -226,7 +226,7 @@ const _abi = [
226
226
  type: "function",
227
227
  },
228
228
  ];
229
- const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109418061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100c85760003560e01c8063715018a611610081578063de523cf31161005b578063de523cf31461019e578063f07c1f47146101be578063f2fde38b146101d157600080fd5b8063715018a6146101705780638da5cb5b14610178578063a4982fde1461019657600080fd5b80632113522a116100b25780632113522a14610100578063256fec881461014557806356d5d4751461015c57600080fd5b80626e75ec146100cd5780630e72cc06146100eb575b600080fd5b6100d56101e4565b6040516100e29190610581565b60405180910390f35b6100fe6100f936600461059b565b610272565b005b6004546101209073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e2565b61014e60025481565b6040519081526020016100e2565b6100fe61016a36600461061a565b50505050565b6100fe6102c1565b60005473ffffffffffffffffffffffffffffffffffffffff16610120565b6100d56102d5565b6001546101209073ffffffffffffffffffffffffffffffffffffffff1681565b6100fe6101cc36600461067f565b6102e2565b6100fe6101df36600461059b565b61036b565b600380546101f1906106cb565b80601f016020809104026020016040519081016040528092919081815260200182805461021d906106cb565b801561026a5780601f1061023f5761010080835404028352916020019161026a565b820191906000526020600020905b81548152906001019060200180831161024d57829003601f168201915b505050505081565b61027a610427565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6102c9610427565b6102d360006104a8565b565b600580546101f1906106cb565b3373ffffffffffffffffffffffffffffffffffffffff167f97d8367a1f39eb9e97f262fafbb05925c0bcfe120aaad7b9737cae34f749c20684848460405161032c9392919061071e565b60405180910390a2600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600561016a8284836107f0565b610373610427565b73ffffffffffffffffffffffffffffffffffffffff811661041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610424816104a8565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610412565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000815180845260005b8181101561054357602081850181015186830182015201610527565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610594602083018461051d565b9392505050565b6000602082840312156105ad57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461059457600080fd5b60008083601f8401126105e357600080fd5b50813567ffffffffffffffff8111156105fb57600080fd5b60208301915083602082850101111561061357600080fd5b9250929050565b6000806000806060858703121561063057600080fd5b843563ffffffff8116811461064457600080fd5b935060208501359250604085013567ffffffffffffffff81111561066757600080fd5b610673878288016105d1565b95989497509550505050565b60008060006040848603121561069457600080fd5b83359250602084013567ffffffffffffffff8111156106b257600080fd5b6106be868287016105d1565b9497909650939450505050565b600181811c908216806106df57607f821691505b602082108103610718577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156107eb57600081815260208120601f850160051c810160208610156107c85750805b601f850160051c820191505b818110156107e7578281556001016107d4565b5050505b505050565b67ffffffffffffffff83111561080857610808610772565b61081c8361081683546106cb565b836107a1565b6000601f84116001811461086e57600085156108385750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610904565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156108bd578685013582556020948501946001909201910161089d565b50868210156108f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea2646970667358221220f63a106557a771a63893cc9e42d4a99665a80305ff03e641c36d896210e2467e64736f6c63430008110033";
229
+ const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109418061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100c85760003560e01c8063715018a611610081578063de523cf31161005b578063de523cf31461019e578063f07c1f47146101be578063f2fde38b146101d157600080fd5b8063715018a6146101705780638da5cb5b14610178578063a4982fde1461019657600080fd5b80632113522a116100b25780632113522a14610100578063256fec881461014557806356d5d4751461015c57600080fd5b80626e75ec146100cd5780630e72cc06146100eb575b600080fd5b6100d56101e4565b6040516100e29190610581565b60405180910390f35b6100fe6100f936600461059b565b610272565b005b6004546101209073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e2565b61014e60025481565b6040519081526020016100e2565b6100fe61016a36600461061a565b50505050565b6100fe6102c1565b60005473ffffffffffffffffffffffffffffffffffffffff16610120565b6100d56102d5565b6001546101209073ffffffffffffffffffffffffffffffffffffffff1681565b6100fe6101cc36600461067f565b6102e2565b6100fe6101df36600461059b565b61036b565b600380546101f1906106cb565b80601f016020809104026020016040519081016040528092919081815260200182805461021d906106cb565b801561026a5780601f1061023f5761010080835404028352916020019161026a565b820191906000526020600020905b81548152906001019060200180831161024d57829003601f168201915b505050505081565b61027a610427565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6102c9610427565b6102d360006104a8565b565b600580546101f1906106cb565b3373ffffffffffffffffffffffffffffffffffffffff167f97d8367a1f39eb9e97f262fafbb05925c0bcfe120aaad7b9737cae34f749c20684848460405161032c9392919061071e565b60405180910390a2600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600561016a8284836107f0565b610373610427565b73ffffffffffffffffffffffffffffffffffffffff811661041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610424816104a8565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610412565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000815180845260005b8181101561054357602081850181015186830182015201610527565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610594602083018461051d565b9392505050565b6000602082840312156105ad57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461059457600080fd5b60008083601f8401126105e357600080fd5b50813567ffffffffffffffff8111156105fb57600080fd5b60208301915083602082850101111561061357600080fd5b9250929050565b6000806000806060858703121561063057600080fd5b843563ffffffff8116811461064457600080fd5b935060208501359250604085013567ffffffffffffffff81111561066757600080fd5b610673878288016105d1565b95989497509550505050565b60008060006040848603121561069457600080fd5b83359250602084013567ffffffffffffffff8111156106b257600080fd5b6106be868287016105d1565b9497909650939450505050565b600181811c908216806106df57607f821691505b602082108103610718577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f8211156107eb57600081815260208120601f850160051c810160208610156107c85750805b601f850160051c820191505b818110156107e7578281556001016107d4565b5050505b505050565b67ffffffffffffffff83111561080857610808610772565b61081c8361081683546106cb565b836107a1565b6000601f84116001811461086e57600085156108385750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610904565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156108bd578685013582556020948501946001909201910161089d565b50868210156108f8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b505050505056fea2646970667358221220717a168c9f5511742c53d291700dbf44bf84fdee76e7631676654cc890aae71b64736f6c63430008110033";
230
230
  const isSuperArgs = (xs) => xs.length > 1;
231
231
  class LightTestRecipient__factory extends ethers_1.ContractFactory {
232
232
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class TestGasRouter__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): TestGasRouter;
14
14
  connect(signer: Signer): TestGasRouter__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b50611d22806100206000396000f3fe60806040526004361061018b5760003560e01c8063775313a1116100d6578063de523cf31161007f578063f2ed8c5311610059578063f2ed8c5314610489578063f2fde38b146104a9578063f3c61d6b146104c957600080fd5b8063de523cf31461041c578063e9198bf914610449578063f1bd6f0a1461046957600080fd5b8063b1bd6436116100b0578063b1bd6436146103af578063b49c53a7146103cf578063d5438eae146103ef57600080fd5b8063775313a1146103445780638da5cb5b14610371578063972173911461039c57600080fd5b8063440df4f41161013857806356d5d4751161011257806356d5d475146102ef578063715018a61461030f5780637249609f1461032457600080fd5b8063440df4f41461029a578063485cc955146102bc578063563e81e5146102dc57600080fd5b80632e6a9e4b116101695780632e6a9e4b146101f85780632ead72f61461022857806339bb4ad91461024857600080fd5b80630e72cc0614610190578063112c725e146101b2578063133b79a9146101c5575b600080fd5b34801561019c57600080fd5b506101b06101ab3660046116a4565b6104e9565b005b6101b06101c03660046117ad565b6104fd565b3480156101d157600080fd5b506101e56101e03660046117fb565b61050c565b6040519081526020015b60405180910390f35b34801561020457600080fd5b50610218610213366004611816565b61051d565b60405190151581526020016101ef565b34801561023457600080fd5b506101e56102433660046117fb565b610530565b34801561025457600080fd5b506066546102759073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ef565b3480156102a657600080fd5b506102af61056c565b6040516101ef9190611840565b3480156102c857600080fd5b506101b06102d736600461188a565b610627565b6101b06102ea3660046118bd565b6107ea565b3480156102fb57600080fd5b506101b061030a36600461192f565b6107ff565b34801561031b57600080fd5b506101b06108e3565b34801561033057600080fd5b506101b061033f3660046117ad565b6108f7565b34801561035057600080fd5b506101e561035f3660046117fb565b60cc6020526000908152604090205481565b34801561037d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610275565b6101b06103aa3660046119b6565b610901565b3480156103bb57600080fd5b506101b06103ca366004611a1e565b610914565b3480156103db57600080fd5b506101b06103ea366004611816565b610985565b3480156103fb57600080fd5b506065546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561042857600080fd5b506067546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045557600080fd5b506101b0610464366004611adf565b61099b565b34801561047557600080fd5b506101b06104843660046116a4565b610a72565b34801561049557600080fd5b506101e56104a43660046117fb565b610a83565b3480156104b557600080fd5b506101b06104c43660046116a4565b610b31565b3480156104d557600080fd5b506101b06104e43660046116a4565b610be5565b6104f1610bf6565b6104fa81610c77565b50565b6105078282610d85565b505050565b600061051782610d93565b92915050565b60006105298383610dfe565b9392505050565b6000610546609863ffffffff80851690610e1216565b1561055f57610517609863ffffffff80851690610e1e16565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561058f5761058f6116d3565b6040519080825280602002602001820160405280156105b8578160200160208202803683370190505b50905060005b8281101561061f578381815481106105d8576105d8611b4b565b906000526020600020015460001c8282815181106105f8576105f8611b4b565b63ffffffff909216602092830291909101909101528061061781611ba9565b9150506105be565b509392505050565b600054610100900460ff16158080156106475750600054600160ff909116105b806106615750303b158015610661575060005460ff166001145b6106f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561075057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61075a8383610e2a565b6040517fb5673f91a88e1d934867629094eedba1c72a382fbe5f32a41bacb5098900fdf990600090a1801561050757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6107f78585858585610ed3565b505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064016106e9565b838361088c8282610dfe565b604051806080016040528060438152602001611caa60439139906108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b506107f7565b6108eb610bf6565b6108f56000610f91565b565b6105078282611008565b61090d848484846110ba565b5050505050565b61091c610bf6565b60005b818110156105075761097383838381811061093c5761093c611b4b565b61095292602060409092020190810191506117fb565b84848481811061096457610964611b4b565b905060400201602001356110e8565b61097e600182611c58565b905061091f565b61098d610bf6565b610997828261113e565b5050565b6109a3610bf6565b828114610a0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106e9565b8260005b818110156107f757610a60868683818110610a2d57610a2d611b4b565b9050602002016020810190610a4291906117fb565b858584818110610a5457610a54611b4b565b9050602002013561113e565b610a6b600182611c58565b9050610a10565b610a7a610bf6565b6104fa8161118c565b60665463ffffffff8216600081815260cc60205260408082205490517fa6929793000000000000000000000000000000000000000000000000000000008152600481019390935260248301529173ffffffffffffffffffffffffffffffffffffffff169063a692979390604401602060405180830381865afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190611c6b565b610b39610bf6565b73ffffffffffffffffffffffffffffffffffffffff8116610bdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106e9565b6104fa81610f91565b610bed610bf6565b6104fa8161127b565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106e9565b73ffffffffffffffffffffffffffffffffffffffff81161580610cb0575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6000610529838334336110ba565b6000610d9e82610530565b90506000801b811415604051806080016040528060438152602001611caa6043913990610df8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b50919050565b600081610e0a84610530565b149392505050565b6000610529838361136a565b60006105298383611376565b600054610100900460ff16610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b610eca8161118c565b61099782611400565b6000610edf8686611008565b6066546040517f11bf2c180000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff891660248201526044810187905273ffffffffffffffffffffffffffffffffffffffff85811660648301529293509116906311bf2c189085906084016000604051808303818588803b158015610f6957600080fd5b505af1158015610f7d573d6000803e3d6000fd5b505050505095945050505050565b50505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061101484610d93565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061106f90879085908890600401611c84565b6020604051808303816000875af115801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190611c6b565b949350505050565b63ffffffff8416600090815260cc60205260408120546110df90869086908686610ed3565b95945050505050565b63ffffffff8216600081815260cc602052604090819020839055517f90563f253ecb04527a6a7ae1a8cbe2bdc6caefb39d5f7b06a973cf5e7f8035a4906111329084815260200190565b60405180910390a25050565b611154609863ffffffff8085169084906114a816565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc64588260405161113291815260200190565b8073ffffffffffffffffffffffffffffffffffffffff81163b61120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600061052983836114b3565b60008181526002830160205260408120548015158061139a575061139a848461136a565b610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016106e9565b600054610100900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6114a08161127b565b6104fa6114cb565b610f8b83838361156a565b60008181526001830160205260408120541515610529565b600054610100900460ff16611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f5611587565b600082815260028401602052604081208290556110b28484611627565b600054610100900460ff1661161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f533610f91565b60008181526001830160205260408120546105299084908490849061167857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610517565b506000610517565b803573ffffffffffffffffffffffffffffffffffffffff8116811461056757600080fd5b6000602082840312156116b657600080fd5b61052982611680565b803563ffffffff8116811461056757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261171357600080fd5b813567ffffffffffffffff8082111561172e5761172e6116d3565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611774576117746116d3565b8160405283815286602085880101111561178d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156117c057600080fd5b6117c9836116bf565b9150602083013567ffffffffffffffff8111156117e557600080fd5b6117f185828601611702565b9150509250929050565b60006020828403121561180d57600080fd5b610529826116bf565b6000806040838503121561182957600080fd5b611832836116bf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561187e57835163ffffffff168352928401929184019160010161185c565b50909695505050505050565b6000806040838503121561189d57600080fd5b6118a683611680565b91506118b460208401611680565b90509250929050565b600080600080600060a086880312156118d557600080fd5b6118de866116bf565b9450602086013567ffffffffffffffff8111156118fa57600080fd5b61190688828901611702565b945050604086013592506060860135915061192360808701611680565b90509295509295909350565b6000806000806060858703121561194557600080fd5b61194e856116bf565b935060208501359250604085013567ffffffffffffffff8082111561197257600080fd5b818701915087601f83011261198657600080fd5b81358181111561199557600080fd5b8860208285010111156119a757600080fd5b95989497505060200194505050565b600080600080608085870312156119cc57600080fd5b6119d5856116bf565b9350602085013567ffffffffffffffff8111156119f157600080fd5b6119fd87828801611702565b93505060408501359150611a1360608601611680565b905092959194509250565b60008060208385031215611a3157600080fd5b823567ffffffffffffffff80821115611a4957600080fd5b818501915085601f830112611a5d57600080fd5b813581811115611a6c57600080fd5b8660208260061b8501011115611a8157600080fd5b60209290920196919550909350505050565b60008083601f840112611aa557600080fd5b50813567ffffffffffffffff811115611abd57600080fd5b6020830191508360208260051b8501011115611ad857600080fd5b9250929050565b60008060008060408587031215611af557600080fd5b843567ffffffffffffffff80821115611b0d57600080fd5b611b1988838901611a93565b90965094506020870135915080821115611b3257600080fd5b50611b3f87828801611a93565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611bda57611bda611b7a565b5060010190565b6000815180845260005b81811015611c0757602081850181015186830182015201611beb565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006105296020830184611be1565b8082018082111561051757610517611b7a565b600060208284031215611c7d57600080fd5b5051919050565b63ffffffff841681528260208201526060604082015260006110df6060830184611be156fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212209fd5cf61d788aa3a8865363f036d0459ea4fa6818d49b7af59a6e2277b482bf464736f6c63430008110033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b50611d22806100206000396000f3fe60806040526004361061018b5760003560e01c8063775313a1116100d6578063de523cf31161007f578063f2ed8c5311610059578063f2ed8c5314610489578063f2fde38b146104a9578063f3c61d6b146104c957600080fd5b8063de523cf31461041c578063e9198bf914610449578063f1bd6f0a1461046957600080fd5b8063b1bd6436116100b0578063b1bd6436146103af578063b49c53a7146103cf578063d5438eae146103ef57600080fd5b8063775313a1146103445780638da5cb5b14610371578063972173911461039c57600080fd5b8063440df4f41161013857806356d5d4751161011257806356d5d475146102ef578063715018a61461030f5780637249609f1461032457600080fd5b8063440df4f41461029a578063485cc955146102bc578063563e81e5146102dc57600080fd5b80632e6a9e4b116101695780632e6a9e4b146101f85780632ead72f61461022857806339bb4ad91461024857600080fd5b80630e72cc0614610190578063112c725e146101b2578063133b79a9146101c5575b600080fd5b34801561019c57600080fd5b506101b06101ab3660046116a4565b6104e9565b005b6101b06101c03660046117ad565b6104fd565b3480156101d157600080fd5b506101e56101e03660046117fb565b61050c565b6040519081526020015b60405180910390f35b34801561020457600080fd5b50610218610213366004611816565b61051d565b60405190151581526020016101ef565b34801561023457600080fd5b506101e56102433660046117fb565b610530565b34801561025457600080fd5b506066546102759073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ef565b3480156102a657600080fd5b506102af61056c565b6040516101ef9190611840565b3480156102c857600080fd5b506101b06102d736600461188a565b610627565b6101b06102ea3660046118bd565b6107ea565b3480156102fb57600080fd5b506101b061030a36600461192f565b6107ff565b34801561031b57600080fd5b506101b06108e3565b34801561033057600080fd5b506101b061033f3660046117ad565b6108f7565b34801561035057600080fd5b506101e561035f3660046117fb565b60cc6020526000908152604090205481565b34801561037d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610275565b6101b06103aa3660046119b6565b610901565b3480156103bb57600080fd5b506101b06103ca366004611a1e565b610914565b3480156103db57600080fd5b506101b06103ea366004611816565b610985565b3480156103fb57600080fd5b506065546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561042857600080fd5b506067546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045557600080fd5b506101b0610464366004611adf565b61099b565b34801561047557600080fd5b506101b06104843660046116a4565b610a72565b34801561049557600080fd5b506101e56104a43660046117fb565b610a83565b3480156104b557600080fd5b506101b06104c43660046116a4565b610b31565b3480156104d557600080fd5b506101b06104e43660046116a4565b610be5565b6104f1610bf6565b6104fa81610c77565b50565b6105078282610d85565b505050565b600061051782610d93565b92915050565b60006105298383610dfe565b9392505050565b6000610546609863ffffffff80851690610e1216565b1561055f57610517609863ffffffff80851690610e1e16565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561058f5761058f6116d3565b6040519080825280602002602001820160405280156105b8578160200160208202803683370190505b50905060005b8281101561061f578381815481106105d8576105d8611b4b565b906000526020600020015460001c8282815181106105f8576105f8611b4b565b63ffffffff909216602092830291909101909101528061061781611ba9565b9150506105be565b509392505050565b600054610100900460ff16158080156106475750600054600160ff909116105b806106615750303b158015610661575060005460ff166001145b6106f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561075057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61075a8383610e2a565b6040517fb5673f91a88e1d934867629094eedba1c72a382fbe5f32a41bacb5098900fdf990600090a1801561050757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6107f78585858585610ed3565b505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064016106e9565b838361088c8282610dfe565b604051806080016040528060438152602001611caa60439139906108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b506107f7565b6108eb610bf6565b6108f56000610f91565b565b6105078282611008565b61090d848484846110ba565b5050505050565b61091c610bf6565b60005b818110156105075761097383838381811061093c5761093c611b4b565b61095292602060409092020190810191506117fb565b84848481811061096457610964611b4b565b905060400201602001356110e8565b61097e600182611c58565b905061091f565b61098d610bf6565b610997828261113e565b5050565b6109a3610bf6565b828114610a0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106e9565b8260005b818110156107f757610a60868683818110610a2d57610a2d611b4b565b9050602002016020810190610a4291906117fb565b858584818110610a5457610a54611b4b565b9050602002013561113e565b610a6b600182611c58565b9050610a10565b610a7a610bf6565b6104fa8161118c565b60665463ffffffff8216600081815260cc60205260408082205490517fa6929793000000000000000000000000000000000000000000000000000000008152600481019390935260248301529173ffffffffffffffffffffffffffffffffffffffff169063a692979390604401602060405180830381865afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190611c6b565b610b39610bf6565b73ffffffffffffffffffffffffffffffffffffffff8116610bdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106e9565b6104fa81610f91565b610bed610bf6565b6104fa8161127b565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106e9565b73ffffffffffffffffffffffffffffffffffffffff81161580610cb0575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6000610529838334336110ba565b6000610d9e82610530565b90506000801b811415604051806080016040528060438152602001611caa6043913990610df8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b50919050565b600081610e0a84610530565b149392505050565b6000610529838361136a565b60006105298383611376565b600054610100900460ff16610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b610eca8161118c565b61099782611400565b6000610edf8686611008565b6066546040517f11bf2c180000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff891660248201526044810187905273ffffffffffffffffffffffffffffffffffffffff85811660648301529293509116906311bf2c189085906084016000604051808303818588803b158015610f6957600080fd5b505af1158015610f7d573d6000803e3d6000fd5b505050505095945050505050565b50505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061101484610d93565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061106f90879085908890600401611c84565b6020604051808303816000875af115801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190611c6b565b949350505050565b63ffffffff8416600090815260cc60205260408120546110df90869086908686610ed3565b95945050505050565b63ffffffff8216600081815260cc602052604090819020839055517f90563f253ecb04527a6a7ae1a8cbe2bdc6caefb39d5f7b06a973cf5e7f8035a4906111329084815260200190565b60405180910390a25050565b611154609863ffffffff8085169084906114a816565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc64588260405161113291815260200190565b8073ffffffffffffffffffffffffffffffffffffffff81163b61120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600061052983836114b3565b60008181526002830160205260408120548015158061139a575061139a848461136a565b610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016106e9565b600054610100900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6114a08161127b565b6104fa6114cb565b610f8b83838361156a565b60008181526001830160205260408120541515610529565b600054610100900460ff16611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f5611587565b600082815260028401602052604081208290556110b28484611627565b600054610100900460ff1661161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f533610f91565b60008181526001830160205260408120546105299084908490849061167857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610517565b506000610517565b803573ffffffffffffffffffffffffffffffffffffffff8116811461056757600080fd5b6000602082840312156116b657600080fd5b61052982611680565b803563ffffffff8116811461056757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261171357600080fd5b813567ffffffffffffffff8082111561172e5761172e6116d3565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611774576117746116d3565b8160405283815286602085880101111561178d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156117c057600080fd5b6117c9836116bf565b9150602083013567ffffffffffffffff8111156117e557600080fd5b6117f185828601611702565b9150509250929050565b60006020828403121561180d57600080fd5b610529826116bf565b6000806040838503121561182957600080fd5b611832836116bf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561187e57835163ffffffff168352928401929184019160010161185c565b50909695505050505050565b6000806040838503121561189d57600080fd5b6118a683611680565b91506118b460208401611680565b90509250929050565b600080600080600060a086880312156118d557600080fd5b6118de866116bf565b9450602086013567ffffffffffffffff8111156118fa57600080fd5b61190688828901611702565b945050604086013592506060860135915061192360808701611680565b90509295509295909350565b6000806000806060858703121561194557600080fd5b61194e856116bf565b935060208501359250604085013567ffffffffffffffff8082111561197257600080fd5b818701915087601f83011261198657600080fd5b81358181111561199557600080fd5b8860208285010111156119a757600080fd5b95989497505060200194505050565b600080600080608085870312156119cc57600080fd5b6119d5856116bf565b9350602085013567ffffffffffffffff8111156119f157600080fd5b6119fd87828801611702565b93505060408501359150611a1360608601611680565b905092959194509250565b60008060208385031215611a3157600080fd5b823567ffffffffffffffff80821115611a4957600080fd5b818501915085601f830112611a5d57600080fd5b813581811115611a6c57600080fd5b8660208260061b8501011115611a8157600080fd5b60209290920196919550909350505050565b60008083601f840112611aa557600080fd5b50813567ffffffffffffffff811115611abd57600080fd5b6020830191508360208260051b8501011115611ad857600080fd5b9250929050565b60008060008060408587031215611af557600080fd5b843567ffffffffffffffff80821115611b0d57600080fd5b611b1988838901611a93565b90965094506020870135915080821115611b3257600080fd5b50611b3f87828801611a93565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611bda57611bda611b7a565b5060010190565b6000815180845260005b81811015611c0757602081850181015186830182015201611beb565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006105296020830184611be1565b8082018082111561051757610517611b7a565b600060208284031215611c7d57600080fd5b5051919050565b63ffffffff841681528260208201526060604082015260006110df6060830184611be156fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212205cd383c8fe659c7f36ae4e439077a4665504d8b9430d3f0d1bd29e7cedcfc7d364736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  anonymous: boolean;
18
18
  inputs: {
@@ -543,7 +543,7 @@ const _abi = [
543
543
  type: "function",
544
544
  },
545
545
  ];
546
- const _bytecode = "0x608060405234801561001057600080fd5b50611d22806100206000396000f3fe60806040526004361061018b5760003560e01c8063775313a1116100d6578063de523cf31161007f578063f2ed8c5311610059578063f2ed8c5314610489578063f2fde38b146104a9578063f3c61d6b146104c957600080fd5b8063de523cf31461041c578063e9198bf914610449578063f1bd6f0a1461046957600080fd5b8063b1bd6436116100b0578063b1bd6436146103af578063b49c53a7146103cf578063d5438eae146103ef57600080fd5b8063775313a1146103445780638da5cb5b14610371578063972173911461039c57600080fd5b8063440df4f41161013857806356d5d4751161011257806356d5d475146102ef578063715018a61461030f5780637249609f1461032457600080fd5b8063440df4f41461029a578063485cc955146102bc578063563e81e5146102dc57600080fd5b80632e6a9e4b116101695780632e6a9e4b146101f85780632ead72f61461022857806339bb4ad91461024857600080fd5b80630e72cc0614610190578063112c725e146101b2578063133b79a9146101c5575b600080fd5b34801561019c57600080fd5b506101b06101ab3660046116a4565b6104e9565b005b6101b06101c03660046117ad565b6104fd565b3480156101d157600080fd5b506101e56101e03660046117fb565b61050c565b6040519081526020015b60405180910390f35b34801561020457600080fd5b50610218610213366004611816565b61051d565b60405190151581526020016101ef565b34801561023457600080fd5b506101e56102433660046117fb565b610530565b34801561025457600080fd5b506066546102759073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ef565b3480156102a657600080fd5b506102af61056c565b6040516101ef9190611840565b3480156102c857600080fd5b506101b06102d736600461188a565b610627565b6101b06102ea3660046118bd565b6107ea565b3480156102fb57600080fd5b506101b061030a36600461192f565b6107ff565b34801561031b57600080fd5b506101b06108e3565b34801561033057600080fd5b506101b061033f3660046117ad565b6108f7565b34801561035057600080fd5b506101e561035f3660046117fb565b60cc6020526000908152604090205481565b34801561037d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610275565b6101b06103aa3660046119b6565b610901565b3480156103bb57600080fd5b506101b06103ca366004611a1e565b610914565b3480156103db57600080fd5b506101b06103ea366004611816565b610985565b3480156103fb57600080fd5b506065546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561042857600080fd5b506067546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045557600080fd5b506101b0610464366004611adf565b61099b565b34801561047557600080fd5b506101b06104843660046116a4565b610a72565b34801561049557600080fd5b506101e56104a43660046117fb565b610a83565b3480156104b557600080fd5b506101b06104c43660046116a4565b610b31565b3480156104d557600080fd5b506101b06104e43660046116a4565b610be5565b6104f1610bf6565b6104fa81610c77565b50565b6105078282610d85565b505050565b600061051782610d93565b92915050565b60006105298383610dfe565b9392505050565b6000610546609863ffffffff80851690610e1216565b1561055f57610517609863ffffffff80851690610e1e16565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561058f5761058f6116d3565b6040519080825280602002602001820160405280156105b8578160200160208202803683370190505b50905060005b8281101561061f578381815481106105d8576105d8611b4b565b906000526020600020015460001c8282815181106105f8576105f8611b4b565b63ffffffff909216602092830291909101909101528061061781611ba9565b9150506105be565b509392505050565b600054610100900460ff16158080156106475750600054600160ff909116105b806106615750303b158015610661575060005460ff166001145b6106f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561075057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61075a8383610e2a565b6040517fb5673f91a88e1d934867629094eedba1c72a382fbe5f32a41bacb5098900fdf990600090a1801561050757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6107f78585858585610ed3565b505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064016106e9565b838361088c8282610dfe565b604051806080016040528060438152602001611caa60439139906108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b506107f7565b6108eb610bf6565b6108f56000610f91565b565b6105078282611008565b61090d848484846110ba565b5050505050565b61091c610bf6565b60005b818110156105075761097383838381811061093c5761093c611b4b565b61095292602060409092020190810191506117fb565b84848481811061096457610964611b4b565b905060400201602001356110e8565b61097e600182611c58565b905061091f565b61098d610bf6565b610997828261113e565b5050565b6109a3610bf6565b828114610a0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106e9565b8260005b818110156107f757610a60868683818110610a2d57610a2d611b4b565b9050602002016020810190610a4291906117fb565b858584818110610a5457610a54611b4b565b9050602002013561113e565b610a6b600182611c58565b9050610a10565b610a7a610bf6565b6104fa8161118c565b60665463ffffffff8216600081815260cc60205260408082205490517fa6929793000000000000000000000000000000000000000000000000000000008152600481019390935260248301529173ffffffffffffffffffffffffffffffffffffffff169063a692979390604401602060405180830381865afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190611c6b565b610b39610bf6565b73ffffffffffffffffffffffffffffffffffffffff8116610bdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106e9565b6104fa81610f91565b610bed610bf6565b6104fa8161127b565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106e9565b73ffffffffffffffffffffffffffffffffffffffff81161580610cb0575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6000610529838334336110ba565b6000610d9e82610530565b90506000801b811415604051806080016040528060438152602001611caa6043913990610df8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b50919050565b600081610e0a84610530565b149392505050565b6000610529838361136a565b60006105298383611376565b600054610100900460ff16610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b610eca8161118c565b61099782611400565b6000610edf8686611008565b6066546040517f11bf2c180000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff891660248201526044810187905273ffffffffffffffffffffffffffffffffffffffff85811660648301529293509116906311bf2c189085906084016000604051808303818588803b158015610f6957600080fd5b505af1158015610f7d573d6000803e3d6000fd5b505050505095945050505050565b50505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061101484610d93565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061106f90879085908890600401611c84565b6020604051808303816000875af115801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190611c6b565b949350505050565b63ffffffff8416600090815260cc60205260408120546110df90869086908686610ed3565b95945050505050565b63ffffffff8216600081815260cc602052604090819020839055517f90563f253ecb04527a6a7ae1a8cbe2bdc6caefb39d5f7b06a973cf5e7f8035a4906111329084815260200190565b60405180910390a25050565b611154609863ffffffff8085169084906114a816565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc64588260405161113291815260200190565b8073ffffffffffffffffffffffffffffffffffffffff81163b61120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600061052983836114b3565b60008181526002830160205260408120548015158061139a575061139a848461136a565b610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016106e9565b600054610100900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6114a08161127b565b6104fa6114cb565b610f8b83838361156a565b60008181526001830160205260408120541515610529565b600054610100900460ff16611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f5611587565b600082815260028401602052604081208290556110b28484611627565b600054610100900460ff1661161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f533610f91565b60008181526001830160205260408120546105299084908490849061167857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610517565b506000610517565b803573ffffffffffffffffffffffffffffffffffffffff8116811461056757600080fd5b6000602082840312156116b657600080fd5b61052982611680565b803563ffffffff8116811461056757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261171357600080fd5b813567ffffffffffffffff8082111561172e5761172e6116d3565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611774576117746116d3565b8160405283815286602085880101111561178d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156117c057600080fd5b6117c9836116bf565b9150602083013567ffffffffffffffff8111156117e557600080fd5b6117f185828601611702565b9150509250929050565b60006020828403121561180d57600080fd5b610529826116bf565b6000806040838503121561182957600080fd5b611832836116bf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561187e57835163ffffffff168352928401929184019160010161185c565b50909695505050505050565b6000806040838503121561189d57600080fd5b6118a683611680565b91506118b460208401611680565b90509250929050565b600080600080600060a086880312156118d557600080fd5b6118de866116bf565b9450602086013567ffffffffffffffff8111156118fa57600080fd5b61190688828901611702565b945050604086013592506060860135915061192360808701611680565b90509295509295909350565b6000806000806060858703121561194557600080fd5b61194e856116bf565b935060208501359250604085013567ffffffffffffffff8082111561197257600080fd5b818701915087601f83011261198657600080fd5b81358181111561199557600080fd5b8860208285010111156119a757600080fd5b95989497505060200194505050565b600080600080608085870312156119cc57600080fd5b6119d5856116bf565b9350602085013567ffffffffffffffff8111156119f157600080fd5b6119fd87828801611702565b93505060408501359150611a1360608601611680565b905092959194509250565b60008060208385031215611a3157600080fd5b823567ffffffffffffffff80821115611a4957600080fd5b818501915085601f830112611a5d57600080fd5b813581811115611a6c57600080fd5b8660208260061b8501011115611a8157600080fd5b60209290920196919550909350505050565b60008083601f840112611aa557600080fd5b50813567ffffffffffffffff811115611abd57600080fd5b6020830191508360208260051b8501011115611ad857600080fd5b9250929050565b60008060008060408587031215611af557600080fd5b843567ffffffffffffffff80821115611b0d57600080fd5b611b1988838901611a93565b90965094506020870135915080821115611b3257600080fd5b50611b3f87828801611a93565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611bda57611bda611b7a565b5060010190565b6000815180845260005b81811015611c0757602081850181015186830182015201611beb565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006105296020830184611be1565b8082018082111561051757610517611b7a565b600060208284031215611c7d57600080fd5b5051919050565b63ffffffff841681528260208201526060604082015260006110df6060830184611be156fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212209fd5cf61d788aa3a8865363f036d0459ea4fa6818d49b7af59a6e2277b482bf464736f6c63430008110033";
546
+ const _bytecode = "0x608060405234801561001057600080fd5b50611d22806100206000396000f3fe60806040526004361061018b5760003560e01c8063775313a1116100d6578063de523cf31161007f578063f2ed8c5311610059578063f2ed8c5314610489578063f2fde38b146104a9578063f3c61d6b146104c957600080fd5b8063de523cf31461041c578063e9198bf914610449578063f1bd6f0a1461046957600080fd5b8063b1bd6436116100b0578063b1bd6436146103af578063b49c53a7146103cf578063d5438eae146103ef57600080fd5b8063775313a1146103445780638da5cb5b14610371578063972173911461039c57600080fd5b8063440df4f41161013857806356d5d4751161011257806356d5d475146102ef578063715018a61461030f5780637249609f1461032457600080fd5b8063440df4f41461029a578063485cc955146102bc578063563e81e5146102dc57600080fd5b80632e6a9e4b116101695780632e6a9e4b146101f85780632ead72f61461022857806339bb4ad91461024857600080fd5b80630e72cc0614610190578063112c725e146101b2578063133b79a9146101c5575b600080fd5b34801561019c57600080fd5b506101b06101ab3660046116a4565b6104e9565b005b6101b06101c03660046117ad565b6104fd565b3480156101d157600080fd5b506101e56101e03660046117fb565b61050c565b6040519081526020015b60405180910390f35b34801561020457600080fd5b50610218610213366004611816565b61051d565b60405190151581526020016101ef565b34801561023457600080fd5b506101e56102433660046117fb565b610530565b34801561025457600080fd5b506066546102759073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101ef565b3480156102a657600080fd5b506102af61056c565b6040516101ef9190611840565b3480156102c857600080fd5b506101b06102d736600461188a565b610627565b6101b06102ea3660046118bd565b6107ea565b3480156102fb57600080fd5b506101b061030a36600461192f565b6107ff565b34801561031b57600080fd5b506101b06108e3565b34801561033057600080fd5b506101b061033f3660046117ad565b6108f7565b34801561035057600080fd5b506101e561035f3660046117fb565b60cc6020526000908152604090205481565b34801561037d57600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610275565b6101b06103aa3660046119b6565b610901565b3480156103bb57600080fd5b506101b06103ca366004611a1e565b610914565b3480156103db57600080fd5b506101b06103ea366004611816565b610985565b3480156103fb57600080fd5b506065546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561042857600080fd5b506067546102759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561045557600080fd5b506101b0610464366004611adf565b61099b565b34801561047557600080fd5b506101b06104843660046116a4565b610a72565b34801561049557600080fd5b506101e56104a43660046117fb565b610a83565b3480156104b557600080fd5b506101b06104c43660046116a4565b610b31565b3480156104d557600080fd5b506101b06104e43660046116a4565b610be5565b6104f1610bf6565b6104fa81610c77565b50565b6105078282610d85565b505050565b600061051782610d93565b92915050565b60006105298383610dfe565b9392505050565b6000610546609863ffffffff80851690610e1216565b1561055f57610517609863ffffffff80851690610e1e16565b506000919050565b919050565b609880546060919060008167ffffffffffffffff81111561058f5761058f6116d3565b6040519080825280602002602001820160405280156105b8578160200160208202803683370190505b50905060005b8281101561061f578381815481106105d8576105d8611b4b565b906000526020600020015460001c8282815181106105f8576105f8611b4b565b63ffffffff909216602092830291909101909101528061061781611ba9565b9150506105be565b509392505050565b600054610100900460ff16158080156106475750600054600160ff909116105b806106615750303b158015610661575060005460ff166001145b6106f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561075057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61075a8383610e2a565b6040517fb5673f91a88e1d934867629094eedba1c72a382fbe5f32a41bacb5098900fdf990600090a1801561050757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6107f78585858585610ed3565b505050505050565b60655473ffffffffffffffffffffffffffffffffffffffff163314610880576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f216d61696c626f7800000000000000000000000000000000000000000000000060448201526064016106e9565b838361088c8282610dfe565b604051806080016040528060438152602001611caa60439139906108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b506107f7565b6108eb610bf6565b6108f56000610f91565b565b6105078282611008565b61090d848484846110ba565b5050505050565b61091c610bf6565b60005b818110156105075761097383838381811061093c5761093c611b4b565b61095292602060409092020190810191506117fb565b84848481811061096457610964611b4b565b905060400201602001356110e8565b61097e600182611c58565b905061091f565b61098d610bf6565b610997828261113e565b5050565b6109a3610bf6565b828114610a0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064016106e9565b8260005b818110156107f757610a60868683818110610a2d57610a2d611b4b565b9050602002016020810190610a4291906117fb565b858584818110610a5457610a54611b4b565b9050602002013561113e565b610a6b600182611c58565b9050610a10565b610a7a610bf6565b6104fa8161118c565b60665463ffffffff8216600081815260cc60205260408082205490517fa6929793000000000000000000000000000000000000000000000000000000008152600481019390935260248301529173ffffffffffffffffffffffffffffffffffffffff169063a692979390604401602060405180830381865afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190611c6b565b610b39610bf6565b73ffffffffffffffffffffffffffffffffffffffff8116610bdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106e9565b6104fa81610f91565b610bed610bf6565b6104fa8161127b565b60335473ffffffffffffffffffffffffffffffffffffffff1633146108f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106e9565b73ffffffffffffffffffffffffffffffffffffffff81161580610cb0575073ffffffffffffffffffffffffffffffffffffffff81163b15155b610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6000610529838334336110ba565b6000610d9e82610530565b90506000801b811415604051806080016040528060438152602001611caa6043913990610df8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e99190611c45565b50919050565b600081610e0a84610530565b149392505050565b6000610529838361136a565b60006105298383611376565b600054610100900460ff16610ec1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b610eca8161118c565b61099782611400565b6000610edf8686611008565b6066546040517f11bf2c180000000000000000000000000000000000000000000000000000000081526004810183905263ffffffff891660248201526044810187905273ffffffffffffffffffffffffffffffffffffffff85811660648301529293509116906311bf2c189085906084016000604051808303818588803b158015610f6957600080fd5b505af1158015610f7d573d6000803e3d6000fd5b505050505095945050505050565b50505050565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061101484610d93565b6065546040517ffa31de0100000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063fa31de019061106f90879085908890600401611c84565b6020604051808303816000875af115801561108e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190611c6b565b949350505050565b63ffffffff8416600090815260cc60205260408120546110df90869086908686610ed3565b95945050505050565b63ffffffff8216600081815260cc602052604090819020839055517f90563f253ecb04527a6a7ae1a8cbe2bdc6caefb39d5f7b06a973cf5e7f8035a4906111329084815260200190565b60405180910390a25050565b611154609863ffffffff8085169084906114a816565b8163ffffffff167f97fd51fef1f80c854cbd0150c248e8b2ac4ecdc97cc05e742b5f61c9f4dc64588260405161113291815260200190565b8073ffffffffffffffffffffffffffffffffffffffff81163b61120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b6112fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e7472616374000000000000000000000000000000000000000000000060448201526064016106e9565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600061052983836114b3565b60008181526002830160205260408120548015158061139a575061139a848461136a565b610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016106e9565b600054610100900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6114a08161127b565b6104fa6114cb565b610f8b83838361156a565b60008181526001830160205260408120541515610529565b600054610100900460ff16611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f5611587565b600082815260028401602052604081208290556110b28484611627565b600054610100900460ff1661161e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106e9565b6108f533610f91565b60008181526001830160205260408120546105299084908490849061167857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610517565b506000610517565b803573ffffffffffffffffffffffffffffffffffffffff8116811461056757600080fd5b6000602082840312156116b657600080fd5b61052982611680565b803563ffffffff8116811461056757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261171357600080fd5b813567ffffffffffffffff8082111561172e5761172e6116d3565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715611774576117746116d3565b8160405283815286602085880101111561178d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156117c057600080fd5b6117c9836116bf565b9150602083013567ffffffffffffffff8111156117e557600080fd5b6117f185828601611702565b9150509250929050565b60006020828403121561180d57600080fd5b610529826116bf565b6000806040838503121561182957600080fd5b611832836116bf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561187e57835163ffffffff168352928401929184019160010161185c565b50909695505050505050565b6000806040838503121561189d57600080fd5b6118a683611680565b91506118b460208401611680565b90509250929050565b600080600080600060a086880312156118d557600080fd5b6118de866116bf565b9450602086013567ffffffffffffffff8111156118fa57600080fd5b61190688828901611702565b945050604086013592506060860135915061192360808701611680565b90509295509295909350565b6000806000806060858703121561194557600080fd5b61194e856116bf565b935060208501359250604085013567ffffffffffffffff8082111561197257600080fd5b818701915087601f83011261198657600080fd5b81358181111561199557600080fd5b8860208285010111156119a757600080fd5b95989497505060200194505050565b600080600080608085870312156119cc57600080fd5b6119d5856116bf565b9350602085013567ffffffffffffffff8111156119f157600080fd5b6119fd87828801611702565b93505060408501359150611a1360608601611680565b905092959194509250565b60008060208385031215611a3157600080fd5b823567ffffffffffffffff80821115611a4957600080fd5b818501915085601f830112611a5d57600080fd5b813581811115611a6c57600080fd5b8660208260061b8501011115611a8157600080fd5b60209290920196919550909350505050565b60008083601f840112611aa557600080fd5b50813567ffffffffffffffff811115611abd57600080fd5b6020830191508360208260051b8501011115611ad857600080fd5b9250929050565b60008060008060408587031215611af557600080fd5b843567ffffffffffffffff80821115611b0d57600080fd5b611b1988838901611a93565b90965094506020870135915080821115611b3257600080fd5b50611b3f87828801611a93565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611bda57611bda611b7a565b5060010190565b6000815180845260005b81811015611c0757602081850181015186830182015201611beb565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006105296020830184611be1565b8082018082111561051757610517611b7a565b600060208284031215611c7d57600080fd5b5051919050565b63ffffffff841681528260208201526060604082015260006110df6060830184611be156fe4e6f20726f7574657220656e726f6c6c656420666f7220646f6d61696e2e2044696420796f7520737065636966792074686520726967687420646f6d61696e2049443fa26469706673582212205cd383c8fe659c7f36ae4e439077a4665504d8b9430d3f0d1bd29e7cedcfc7d364736f6c63430008110033";
547
547
  const isSuperArgs = (xs) => xs.length > 1;
548
548
  class TestGasRouter__factory extends ethers_1.ContractFactory {
549
549
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class TestHyperlaneConnectionClient__factory extends ContractFact
12
12
  }): TransactionRequest;
13
13
  attach(address: string): TestHyperlaneConnectionClient;
14
14
  connect(signer: Signer): TestHyperlaneConnectionClient__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610b8b806100806000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063c4d66de811610081578063f1bd6f0a1161005b578063f1bd6f0a146101c3578063f2fde38b146101d6578063f3c61d6b146101e957600080fd5b8063c4d66de814610170578063d5438eae14610183578063de523cf3146101a357600080fd5b8063715018a6116100b2578063715018a61461012d5780638d3638f4146101355780638da5cb5b1461015257600080fd5b80630e72cc06146100ce57806339bb4ad9146100e3575b600080fd5b6100e16100dc366004610af2565b6101fc565b005b6066546101039073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100e1610210565b61013d610224565b60405163ffffffff9091168152602001610124565b60335473ffffffffffffffffffffffffffffffffffffffff16610103565b6100e161017e366004610af2565b6102bd565b6065546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6100e16101d1366004610af2565b610456565b6100e16101e4366004610af2565b610467565b6100e16101f7366004610af2565b61051b565b61020461052c565b61020d816105ad565b50565b61021861052c565b61022260006106bb565b565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f49160048083019260209291908290030181865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610b2f565b905090565b600054610100900460ff16158080156102dd5750600054600160ff909116105b806102f75750303b1580156102f7575060005460ff166001145b610388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103ef82610732565b801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61045e61052c565b61020d816107da565b61046f61052c565b73ffffffffffffffffffffffffffffffffffffffff8116610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037f565b61020d816106bb565b61052361052c565b61020d816108c9565b60335473ffffffffffffffffffffffffffffffffffffffff163314610222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037f565b73ffffffffffffffffffffffffffffffffffffffff811615806105e6575073ffffffffffffffffffffffffffffffffffffffff81163b15155b61064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166107c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b6107d2816108c9565b61020d6109b8565b8073ffffffffffffffffffffffffffffffffffffffff81163b610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16610a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222600054610100900460ff16610ae9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222336106bb565b600060208284031215610b0457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610b2857600080fd5b9392505050565b600060208284031215610b4157600080fd5b815163ffffffff81168114610b2857600080fdfea2646970667358221220daace3ff76f0d05fc1e7b7e51ad3a75f1e29d68b23b1ddf4000e0b0c9934560b64736f6c63430008110033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610b8b806100806000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063c4d66de811610081578063f1bd6f0a1161005b578063f1bd6f0a146101c3578063f2fde38b146101d6578063f3c61d6b146101e957600080fd5b8063c4d66de814610170578063d5438eae14610183578063de523cf3146101a357600080fd5b8063715018a6116100b2578063715018a61461012d5780638d3638f4146101355780638da5cb5b1461015257600080fd5b80630e72cc06146100ce57806339bb4ad9146100e3575b600080fd5b6100e16100dc366004610af2565b6101fc565b005b6066546101039073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100e1610210565b61013d610224565b60405163ffffffff9091168152602001610124565b60335473ffffffffffffffffffffffffffffffffffffffff16610103565b6100e161017e366004610af2565b6102bd565b6065546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6100e16101d1366004610af2565b610456565b6100e16101e4366004610af2565b610467565b6100e16101f7366004610af2565b61051b565b61020461052c565b61020d816105ad565b50565b61021861052c565b61022260006106bb565b565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f49160048083019260209291908290030181865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610b2f565b905090565b600054610100900460ff16158080156102dd5750600054600160ff909116105b806102f75750303b1580156102f7575060005460ff166001145b610388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103ef82610732565b801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61045e61052c565b61020d816107da565b61046f61052c565b73ffffffffffffffffffffffffffffffffffffffff8116610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037f565b61020d816106bb565b61052361052c565b61020d816108c9565b60335473ffffffffffffffffffffffffffffffffffffffff163314610222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037f565b73ffffffffffffffffffffffffffffffffffffffff811615806105e6575073ffffffffffffffffffffffffffffffffffffffff81163b15155b61064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166107c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b6107d2816108c9565b61020d6109b8565b8073ffffffffffffffffffffffffffffffffffffffff81163b610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16610a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222600054610100900460ff16610ae9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222336106bb565b600060208284031215610b0457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610b2857600080fd5b9392505050565b600060208284031215610b4157600080fd5b815163ffffffff81168114610b2857600080fdfea26469706673582212205bc2f9853aac348b5246d960efefa48ca91ebd83e4227ffb9acbc584b41a4df364736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  inputs: never[];
18
18
  stateMutability: string;
@@ -218,7 +218,7 @@ const _abi = [
218
218
  type: "function",
219
219
  },
220
220
  ];
221
- const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610b8b806100806000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063c4d66de811610081578063f1bd6f0a1161005b578063f1bd6f0a146101c3578063f2fde38b146101d6578063f3c61d6b146101e957600080fd5b8063c4d66de814610170578063d5438eae14610183578063de523cf3146101a357600080fd5b8063715018a6116100b2578063715018a61461012d5780638d3638f4146101355780638da5cb5b1461015257600080fd5b80630e72cc06146100ce57806339bb4ad9146100e3575b600080fd5b6100e16100dc366004610af2565b6101fc565b005b6066546101039073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100e1610210565b61013d610224565b60405163ffffffff9091168152602001610124565b60335473ffffffffffffffffffffffffffffffffffffffff16610103565b6100e161017e366004610af2565b6102bd565b6065546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6100e16101d1366004610af2565b610456565b6100e16101e4366004610af2565b610467565b6100e16101f7366004610af2565b61051b565b61020461052c565b61020d816105ad565b50565b61021861052c565b61022260006106bb565b565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f49160048083019260209291908290030181865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610b2f565b905090565b600054610100900460ff16158080156102dd5750600054600160ff909116105b806102f75750303b1580156102f7575060005460ff166001145b610388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103ef82610732565b801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61045e61052c565b61020d816107da565b61046f61052c565b73ffffffffffffffffffffffffffffffffffffffff8116610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037f565b61020d816106bb565b61052361052c565b61020d816108c9565b60335473ffffffffffffffffffffffffffffffffffffffff163314610222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037f565b73ffffffffffffffffffffffffffffffffffffffff811615806105e6575073ffffffffffffffffffffffffffffffffffffffff81163b15155b61064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166107c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b6107d2816108c9565b61020d6109b8565b8073ffffffffffffffffffffffffffffffffffffffff81163b610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16610a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222600054610100900460ff16610ae9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222336106bb565b600060208284031215610b0457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610b2857600080fd5b9392505050565b600060208284031215610b4157600080fd5b815163ffffffff81168114610b2857600080fdfea2646970667358221220daace3ff76f0d05fc1e7b7e51ad3a75f1e29d68b23b1ddf4000e0b0c9934560b64736f6c63430008110033";
221
+ const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b610071565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610b8b806100806000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063c4d66de811610081578063f1bd6f0a1161005b578063f1bd6f0a146101c3578063f2fde38b146101d6578063f3c61d6b146101e957600080fd5b8063c4d66de814610170578063d5438eae14610183578063de523cf3146101a357600080fd5b8063715018a6116100b2578063715018a61461012d5780638d3638f4146101355780638da5cb5b1461015257600080fd5b80630e72cc06146100ce57806339bb4ad9146100e3575b600080fd5b6100e16100dc366004610af2565b6101fc565b005b6066546101039073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100e1610210565b61013d610224565b60405163ffffffff9091168152602001610124565b60335473ffffffffffffffffffffffffffffffffffffffff16610103565b6100e161017e366004610af2565b6102bd565b6065546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6067546101039073ffffffffffffffffffffffffffffffffffffffff1681565b6100e16101d1366004610af2565b610456565b6100e16101e4366004610af2565b610467565b6100e16101f7366004610af2565b61051b565b61020461052c565b61020d816105ad565b50565b61021861052c565b61022260006106bb565b565b606554604080517f8d3638f4000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691638d3638f49160048083019260209291908290030181865afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190610b2f565b905090565b600054610100900460ff16158080156102dd5750600054600160ff909116105b806102f75750303b1580156102f7575060005460ff166001145b610388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156103e657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6103ef82610732565b801561045257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61045e61052c565b61020d816107da565b61046f61052c565b73ffffffffffffffffffffffffffffffffffffffff8116610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037f565b61020d816106bb565b61052361052c565b61020d816108c9565b60335473ffffffffffffffffffffffffffffffffffffffff163314610222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037f565b73ffffffffffffffffffffffffffffffffffffffff811615806105e6575073ffffffffffffffffffffffffffffffffffffffff81163b15155b61064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517ffec811ed4e60aebdaf7a79cad8a97196bf56e35362f039705598226d30c9d24890600090a250565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166107c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b6107d2816108c9565b61020d6109b8565b8073ffffffffffffffffffffffffffffffffffffffff81163b610859576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517fb87f5a0bface22cde699143559fb99f990ae54eea236995fc54178af91af859f90600090a25050565b8073ffffffffffffffffffffffffffffffffffffffff81163b610948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e74726163740000000000000000000000000000000000000000000000604482015260640161037f565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040517f7a61e573722ff8b205c8962b59d37e7d30573f368965597a844a94872204ebd790600090a25050565b600054610100900460ff16610a4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222600054610100900460ff16610ae9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161037f565b610222336106bb565b600060208284031215610b0457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610b2857600080fd5b9392505050565b600060208284031215610b4157600080fd5b815163ffffffff81168114610b2857600080fdfea26469706673582212205bc2f9853aac348b5246d960efefa48ca91ebd83e4227ffb9acbc584b41a4df364736f6c63430008110033";
222
222
  const isSuperArgs = (xs) => xs.length > 1;
223
223
  class TestHyperlaneConnectionClient__factory extends ethers_1.ContractFactory {
224
224
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class TestLegacyMultisigIsm__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): TestLegacyMultisigIsm;
14
14
  connect(signer: Signer): TestLegacyMultisigIsm__factory;
15
- static readonly bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6121fa8061007e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636465e69f116100b2578063e7d5d3a111610081578063f2fde38b11610066578063f2fde38b14610298578063f7e83aee146102ab578063fe9f5ab1146102be57600080fd5b8063e7d5d3a114610262578063f211b7321461027557600080fd5b80636465e69f146101f8578063715018a6146102125780638da5cb5b1461021a5780639a6e9a241461024257600080fd5b806340989912116100ee578063409899121461018f578063414c676f146101b25780634422cc2a146101c55780635d94f2b9146101d857600080fd5b8063020addf1146101205780630677bc7514610146578063174769dc146101595780632e0ed2341461016e575b600080fd5b61013361012e3660046119ff565b6102d1565b6040519081526020015b60405180910390f35b610133610154366004611a1a565b6102f5565b61016c610167366004611a89565b610308565b005b61018161017c366004611b37565b61047a565b60405161013d929190611bca565b6101a261019d366004611c13565b6104be565b604051901515815260200161013d565b61016c6101c0366004611a89565b6104ec565b61016c6101d3366004611c57565b6105cc565b6101336101e63660046119ff565b60036020526000908152604090205481565b610200600381565b60405160ff909116815260200161013d565b61016c6106dd565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013d565b6102556102503660046119ff565b6106f1565b60405161013d9190611c81565b61016c610270366004611c13565b6107c2565b6102006102833660046119ff565b60016020526000908152604090205460ff1681565b61016c6102a6366004611c94565b610948565b6101a26102b9366004611caf565b6109ff565b61016c6102cc366004611c13565b610af0565b63ffffffff811660009081526002602052604081206102ef90610b0b565b92915050565b60006103018383610b15565b9392505050565b610310610b95565b8281811461037f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b818110156104725736600085858481811061039f5761039f611d0f565b90506020028101906103b19190611d3e565b90925090508060005b8181101561042a576104188a8a878181106103d7576103d7611d0f565b90506020020160208101906103ec91906119ff565b8585848181106103fe576103fe611d0f565b90506020020160208101906104139190611c94565b610c16565b610423600182611dd5565b90506103ba565b5061045a89898681811061044057610440611d0f565b905060200201602081019061045591906119ff565b610d78565b5050505060018161046b9190611dd5565b9050610382565b505050505050565b60606000806104898585610e3d565b90506000610496826106f1565b63ffffffff9092166000908152600160205260409020549193505060ff1690505b9250929050565b63ffffffff808316600090815260026020526040812090916104e49082908590610e6016565b949350505050565b6104f4610b95565b8281811461055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610376565b60005b81811015610472576105ba86868381811061057e5761057e611d0f565b905060200201602081019061059391906119ff565b8585848181106105a5576105a5611d0f565b90506020020160208101906101d39190611de8565b6105c5600182611dd5565b9050610561565b6105d4610b95565b60008160ff161180156105f257506105eb826102d1565b8160ff1611155b610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172616e676500000000000000000000000000000000000000000000000000006044820152606401610376565b63ffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff861690811790915591519182527ff25cfff98c95cf069df801752174d854732576e4b283bc4299386f65676e386a910160405180910390a26106d882610d78565b505050565b6106e5610b95565b6106ef6000610e8f565b565b63ffffffff8116600090815260026020526040812060609161071282610b0b565b905060008167ffffffffffffffff81111561072f5761072f611e32565b604051908082528060200260200182016040528015610758578160200160208202803683370190505b50905060005b828110156107b9576107708482610f04565b82828151811061078257610782611d0f565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806107b181611e61565b91505061075e565b50949350505050565b6107ca610b95565b63ffffffff80831660009081526002602052604090206107ec918390610f1016565b610852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e726f6c6c656400000000000000000000000000000000000000000000006044820152606401610376565b600061085d836102d1565b63ffffffff841660009081526001602052604090205490915060ff168110156108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f76696f6c617465732071756f72756d207468726573686f6c64000000000000006044820152606401610376565b6108eb83610d78565b508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167fa4c7a7b783c9afd72ed0b93a7e67ca063acdaa9c3b3268bd43abe1199bdad27c8360405161093b91815260200190565b60405180910390a3505050565b610950610b95565b73ffffffffffffffffffffffffffffffffffffffff81166109f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610376565b6109fc81610e8f565b50565b6000610a0d85858585610f32565b610a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216d65726b6c65000000000000000000000000000000000000000000000000006044820152606401610376565b610a7f85858585610fac565b610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21736967730000000000000000000000000000000000000000000000000000006044820152606401610376565b506001949350505050565b610af8610b95565b610b028282610c16565b6106d882610d78565b60006102ef825490565b6040805160e084901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018490527f48595045524c414e45000000000000000000000000000000000000000000000060448301528251602d818403018152604d9092019092528051910120600090610301565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610376565b73ffffffffffffffffffffffffffffffffffffffff8116610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f206164647265737300000000000000000000000000000000000000006044820152606401610376565b63ffffffff8083166000908152600260205260409020610cb591839061122416565b610d1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f616c726561647920656e726f6c6c6564000000000000000000000000000000006044820152606401610376565b8073ffffffffffffffffffffffffffffffffffffffff168263ffffffff167f890997ec79a2b993cbc6e69433ed0ffa6303de16e3c21e315ba91c21ab5ec15a610d63856102d1565b60405190815260200160405180910390a35050565b600080610d84836106f1565b63ffffffff8416600090815260016020908152604080832054905193945060ff1692610db4918491869101611e99565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012063ffffffff8916600081815260038452849020829055845290830181905292507f6f17fabbcaf1b0e8cfbc153d8884a27de46c3076c2de8ac2aef0094a134909e3910160405180910390a1949350505050565b6000610e4d600960058486611f11565b610e5691611f3b565b60e01c9392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610301565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006103018383611246565b60006103018373ffffffffffffffffffffffffffffffffffffffff8416611270565b600080610f96610f7785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061136392505050565b610f81888861136e565b610f8b8787611392565b63ffffffff166113a2565b9050610fa28686611453565b1495945050505050565b600080610fb9868661146b565b9050600080610fc88686610e3d565b9050600083610fd78a8a611490565b604051602001610fe993929190611f83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012063ffffffff851660009081526003909352912054909150811461109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21636f6d6d69746d656e740000000000000000000000000000000000000000006044820152606401610376565b6110c5826110ac8b8b6114b5565b6110b68c8c611453565b6110c08d8d6114c5565b6114d5565b9250505060006110d58888611589565b90506000805b8460ff16811015611214576000611131856110f78d8d866115ab565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f192505050565b90505b838310801561117957506111498b8b8561160d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561118e5761118783611e61565b9250611134565b8383106111f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217468726573686f6c64000000000000000000000000000000000000000000006044820152606401610376565b61120083611e61565b9250508061120d90611e61565b90506110db565b5060019998505050505050505050565b60006103018373ffffffffffffffffffffffffffffffffffffffff841661166d565b600082600001828154811061125d5761125d611d0f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015611359576000611294600183611fc2565b85549091506000906112a890600190611fc2565b905081811461130d5760008660000182815481106112c8576112c8611d0f565b90600052602060002001549050808760000184815481106112eb576112eb611d0f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061131e5761131e611fd5565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102ef565b60009150506102ef565b805160209091012090565b6113766119c7565b61138561044460448486611f11565b8101906103019190612004565b6000610e4d600560018486611f11565b8260005b602081101561144b57600183821c1660008583602081106113c9576113c9611d0f565b6020020151905081600103611409576040805160208101839052908101859052606001604051602081830303815290604052805190602001209350611436565b60408051602081018690529081018290526060016040516020818303038152906040528051906020012093505b5050808061144390611e61565b9150506113a6565b509392505050565b60006114626020828486611f11565b610301916120aa565b600061147d6104456104448486611f11565b611486916120e6565b60f81c9392505050565b366000838361149f86866116bc565b6114aa928290611f11565b915091509250929050565b6000611462604460248486611f11565b6000610e4d602460208486611f11565b6000806114e28686610b15565b60408051602080820184905281830188905260e087901b7fffffffff00000000000000000000000000000000000000000000000000000000166060830152825160448184030181526064830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000608484015260a0808401919091528351808403909101815260c090920190925280519101209091509695505050505050565b6000602061159784846116bc565b6115a19084611fc2565b610301919061212c565b366000806115ba604185612167565b6115c690610445611dd5565b905060006115d5604183611dd5565b90506115e38183888a611f11565b935093505050935093915050565b600080600061160085856116e3565b9150915061144b81611725565b60008061161b836020612167565b61162586866116bc565b61162f9190611dd5565b61163a90600c611dd5565b90506000611649826014611dd5565b905061165781838789611f11565b6116609161217e565b60601c9695505050505050565b60008181526001830160205260408120546116b4575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102ef565b5060006102ef565b600060416116ca848461146b565b60ff166116d79190612167565b61030190610445611dd5565b60008082516041036117195760208301516040840151606085015160001a61170d878285856118d8565b945094505050506104b7565b506000905060026104b7565b600081600481111561173957611739611e03565b036117415750565b600181600481111561175557611755611e03565b036117bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610376565b60028160048111156117d0576117d0611e03565b03611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610376565b600381600481111561184b5761184b611e03565b036109fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610376565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561190f57506000905060036119be565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611963573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119b7576000600192509250506119be565b9150600090505b94509492505050565b6040518061040001604052806020906020820280368337509192915050565b803563ffffffff811681146119fa57600080fd5b919050565b600060208284031215611a1157600080fd5b610301826119e6565b60008060408385031215611a2d57600080fd5b611a36836119e6565b946020939093013593505050565b60008083601f840112611a5657600080fd5b50813567ffffffffffffffff811115611a6e57600080fd5b6020830191508360208260051b85010111156104b757600080fd5b60008060008060408587031215611a9f57600080fd5b843567ffffffffffffffff80821115611ab757600080fd5b611ac388838901611a44565b90965094506020870135915080821115611adc57600080fd5b50611ae987828801611a44565b95989497509550505050565b60008083601f840112611b0757600080fd5b50813567ffffffffffffffff811115611b1f57600080fd5b6020830191508360208285010111156104b757600080fd5b60008060208385031215611b4a57600080fd5b823567ffffffffffffffff811115611b6157600080fd5b611b6d85828601611af5565b90969095509350505050565b600081518084526020808501945080840160005b83811015611bbf57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611b8d565b509495945050505050565b604081526000611bdd6040830185611b79565b905060ff831660208301529392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146119fa57600080fd5b60008060408385031215611c2657600080fd5b611c2f836119e6565b9150611c3d60208401611bef565b90509250929050565b803560ff811681146119fa57600080fd5b60008060408385031215611c6a57600080fd5b611c73836119e6565b9150611c3d60208401611c46565b6020815260006103016020830184611b79565b600060208284031215611ca657600080fd5b61030182611bef565b60008060008060408587031215611cc557600080fd5b843567ffffffffffffffff80821115611cdd57600080fd5b611ce988838901611af5565b90965094506020870135915080821115611d0257600080fd5b50611ae987828801611af5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d7357600080fd5b83018035915067ffffffffffffffff821115611d8e57600080fd5b6020019150600581901b36038213156104b757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102ef576102ef611da6565b600060208284031215611dfa57600080fd5b61030182611c46565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e9257611e92611da6565b5060010190565b7fff000000000000000000000000000000000000000000000000000000000000008360f81b168152600060018083018451602080870160005b83811015611f0357815173ffffffffffffffffffffffffffffffffffffffff16855293820193908201908501611ed2565b509298975050505050505050565b60008085851115611f2157600080fd5b83861115611f2e57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611f7b5780818660040360031b1b83161692505b505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008460f81b168152818360018301376000910160010190815292915050565b818103818111156102ef576102ef611da6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061040080838503121561201857600080fd5b83601f84011261202757600080fd5b60405181810181811067ffffffffffffffff82111715612070577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290830190808583111561208557600080fd5b845b8381101561209f578035825260209182019101612087565b509095945050505050565b803560208310156102ef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015611f7b5760019490940360031b84901b1690921692915050565b600082612162577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820281158282048414176102ef576102ef611da6565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015611f7b5760149490940360031b84901b169092169291505056fea26469706673582212201d75a79585e47a14ce89e54ef31e5e6cc0c5d0f545fbcf3451c722a5d4e79a0064736f6c63430008110033";
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6121fa8061007e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636465e69f116100b2578063e7d5d3a111610081578063f2fde38b11610066578063f2fde38b14610298578063f7e83aee146102ab578063fe9f5ab1146102be57600080fd5b8063e7d5d3a114610262578063f211b7321461027557600080fd5b80636465e69f146101f8578063715018a6146102125780638da5cb5b1461021a5780639a6e9a241461024257600080fd5b806340989912116100ee578063409899121461018f578063414c676f146101b25780634422cc2a146101c55780635d94f2b9146101d857600080fd5b8063020addf1146101205780630677bc7514610146578063174769dc146101595780632e0ed2341461016e575b600080fd5b61013361012e3660046119ff565b6102d1565b6040519081526020015b60405180910390f35b610133610154366004611a1a565b6102f5565b61016c610167366004611a89565b610308565b005b61018161017c366004611b37565b61047a565b60405161013d929190611bca565b6101a261019d366004611c13565b6104be565b604051901515815260200161013d565b61016c6101c0366004611a89565b6104ec565b61016c6101d3366004611c57565b6105cc565b6101336101e63660046119ff565b60036020526000908152604090205481565b610200600381565b60405160ff909116815260200161013d565b61016c6106dd565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013d565b6102556102503660046119ff565b6106f1565b60405161013d9190611c81565b61016c610270366004611c13565b6107c2565b6102006102833660046119ff565b60016020526000908152604090205460ff1681565b61016c6102a6366004611c94565b610948565b6101a26102b9366004611caf565b6109ff565b61016c6102cc366004611c13565b610af0565b63ffffffff811660009081526002602052604081206102ef90610b0b565b92915050565b60006103018383610b15565b9392505050565b610310610b95565b8281811461037f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b818110156104725736600085858481811061039f5761039f611d0f565b90506020028101906103b19190611d3e565b90925090508060005b8181101561042a576104188a8a878181106103d7576103d7611d0f565b90506020020160208101906103ec91906119ff565b8585848181106103fe576103fe611d0f565b90506020020160208101906104139190611c94565b610c16565b610423600182611dd5565b90506103ba565b5061045a89898681811061044057610440611d0f565b905060200201602081019061045591906119ff565b610d78565b5050505060018161046b9190611dd5565b9050610382565b505050505050565b60606000806104898585610e3d565b90506000610496826106f1565b63ffffffff9092166000908152600160205260409020549193505060ff1690505b9250929050565b63ffffffff808316600090815260026020526040812090916104e49082908590610e6016565b949350505050565b6104f4610b95565b8281811461055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610376565b60005b81811015610472576105ba86868381811061057e5761057e611d0f565b905060200201602081019061059391906119ff565b8585848181106105a5576105a5611d0f565b90506020020160208101906101d39190611de8565b6105c5600182611dd5565b9050610561565b6105d4610b95565b60008160ff161180156105f257506105eb826102d1565b8160ff1611155b610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172616e676500000000000000000000000000000000000000000000000000006044820152606401610376565b63ffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff861690811790915591519182527ff25cfff98c95cf069df801752174d854732576e4b283bc4299386f65676e386a910160405180910390a26106d882610d78565b505050565b6106e5610b95565b6106ef6000610e8f565b565b63ffffffff8116600090815260026020526040812060609161071282610b0b565b905060008167ffffffffffffffff81111561072f5761072f611e32565b604051908082528060200260200182016040528015610758578160200160208202803683370190505b50905060005b828110156107b9576107708482610f04565b82828151811061078257610782611d0f565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806107b181611e61565b91505061075e565b50949350505050565b6107ca610b95565b63ffffffff80831660009081526002602052604090206107ec918390610f1016565b610852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e726f6c6c656400000000000000000000000000000000000000000000006044820152606401610376565b600061085d836102d1565b63ffffffff841660009081526001602052604090205490915060ff168110156108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f76696f6c617465732071756f72756d207468726573686f6c64000000000000006044820152606401610376565b6108eb83610d78565b508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167fa4c7a7b783c9afd72ed0b93a7e67ca063acdaa9c3b3268bd43abe1199bdad27c8360405161093b91815260200190565b60405180910390a3505050565b610950610b95565b73ffffffffffffffffffffffffffffffffffffffff81166109f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610376565b6109fc81610e8f565b50565b6000610a0d85858585610f32565b610a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216d65726b6c65000000000000000000000000000000000000000000000000006044820152606401610376565b610a7f85858585610fac565b610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21736967730000000000000000000000000000000000000000000000000000006044820152606401610376565b506001949350505050565b610af8610b95565b610b028282610c16565b6106d882610d78565b60006102ef825490565b6040805160e084901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018490527f48595045524c414e45000000000000000000000000000000000000000000000060448301528251602d818403018152604d9092019092528051910120600090610301565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610376565b73ffffffffffffffffffffffffffffffffffffffff8116610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f206164647265737300000000000000000000000000000000000000006044820152606401610376565b63ffffffff8083166000908152600260205260409020610cb591839061122416565b610d1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f616c726561647920656e726f6c6c6564000000000000000000000000000000006044820152606401610376565b8073ffffffffffffffffffffffffffffffffffffffff168263ffffffff167f890997ec79a2b993cbc6e69433ed0ffa6303de16e3c21e315ba91c21ab5ec15a610d63856102d1565b60405190815260200160405180910390a35050565b600080610d84836106f1565b63ffffffff8416600090815260016020908152604080832054905193945060ff1692610db4918491869101611e99565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012063ffffffff8916600081815260038452849020829055845290830181905292507f6f17fabbcaf1b0e8cfbc153d8884a27de46c3076c2de8ac2aef0094a134909e3910160405180910390a1949350505050565b6000610e4d600960058486611f11565b610e5691611f3b565b60e01c9392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610301565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006103018383611246565b60006103018373ffffffffffffffffffffffffffffffffffffffff8416611270565b600080610f96610f7785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061136392505050565b610f81888861136e565b610f8b8787611392565b63ffffffff166113a2565b9050610fa28686611453565b1495945050505050565b600080610fb9868661146b565b9050600080610fc88686610e3d565b9050600083610fd78a8a611490565b604051602001610fe993929190611f83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012063ffffffff851660009081526003909352912054909150811461109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21636f6d6d69746d656e740000000000000000000000000000000000000000006044820152606401610376565b6110c5826110ac8b8b6114b5565b6110b68c8c611453565b6110c08d8d6114c5565b6114d5565b9250505060006110d58888611589565b90506000805b8460ff16811015611214576000611131856110f78d8d866115ab565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f192505050565b90505b838310801561117957506111498b8b8561160d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561118e5761118783611e61565b9250611134565b8383106111f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217468726573686f6c64000000000000000000000000000000000000000000006044820152606401610376565b61120083611e61565b9250508061120d90611e61565b90506110db565b5060019998505050505050505050565b60006103018373ffffffffffffffffffffffffffffffffffffffff841661166d565b600082600001828154811061125d5761125d611d0f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015611359576000611294600183611fc2565b85549091506000906112a890600190611fc2565b905081811461130d5760008660000182815481106112c8576112c8611d0f565b90600052602060002001549050808760000184815481106112eb576112eb611d0f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061131e5761131e611fd5565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102ef565b60009150506102ef565b805160209091012090565b6113766119c7565b61138561044460448486611f11565b8101906103019190612004565b6000610e4d600560018486611f11565b8260005b602081101561144b57600183821c1660008583602081106113c9576113c9611d0f565b6020020151905081600103611409576040805160208101839052908101859052606001604051602081830303815290604052805190602001209350611436565b60408051602081018690529081018290526060016040516020818303038152906040528051906020012093505b5050808061144390611e61565b9150506113a6565b509392505050565b60006114626020828486611f11565b610301916120aa565b600061147d6104456104448486611f11565b611486916120e6565b60f81c9392505050565b366000838361149f86866116bc565b6114aa928290611f11565b915091509250929050565b6000611462604460248486611f11565b6000610e4d602460208486611f11565b6000806114e28686610b15565b60408051602080820184905281830188905260e087901b7fffffffff00000000000000000000000000000000000000000000000000000000166060830152825160448184030181526064830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000608484015260a0808401919091528351808403909101815260c090920190925280519101209091509695505050505050565b6000602061159784846116bc565b6115a19084611fc2565b610301919061212c565b366000806115ba604185612167565b6115c690610445611dd5565b905060006115d5604183611dd5565b90506115e38183888a611f11565b935093505050935093915050565b600080600061160085856116e3565b9150915061144b81611725565b60008061161b836020612167565b61162586866116bc565b61162f9190611dd5565b61163a90600c611dd5565b90506000611649826014611dd5565b905061165781838789611f11565b6116609161217e565b60601c9695505050505050565b60008181526001830160205260408120546116b4575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102ef565b5060006102ef565b600060416116ca848461146b565b60ff166116d79190612167565b61030190610445611dd5565b60008082516041036117195760208301516040840151606085015160001a61170d878285856118d8565b945094505050506104b7565b506000905060026104b7565b600081600481111561173957611739611e03565b036117415750565b600181600481111561175557611755611e03565b036117bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610376565b60028160048111156117d0576117d0611e03565b03611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610376565b600381600481111561184b5761184b611e03565b036109fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610376565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561190f57506000905060036119be565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611963573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119b7576000600192509250506119be565b9150600090505b94509492505050565b6040518061040001604052806020906020820280368337509192915050565b803563ffffffff811681146119fa57600080fd5b919050565b600060208284031215611a1157600080fd5b610301826119e6565b60008060408385031215611a2d57600080fd5b611a36836119e6565b946020939093013593505050565b60008083601f840112611a5657600080fd5b50813567ffffffffffffffff811115611a6e57600080fd5b6020830191508360208260051b85010111156104b757600080fd5b60008060008060408587031215611a9f57600080fd5b843567ffffffffffffffff80821115611ab757600080fd5b611ac388838901611a44565b90965094506020870135915080821115611adc57600080fd5b50611ae987828801611a44565b95989497509550505050565b60008083601f840112611b0757600080fd5b50813567ffffffffffffffff811115611b1f57600080fd5b6020830191508360208285010111156104b757600080fd5b60008060208385031215611b4a57600080fd5b823567ffffffffffffffff811115611b6157600080fd5b611b6d85828601611af5565b90969095509350505050565b600081518084526020808501945080840160005b83811015611bbf57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611b8d565b509495945050505050565b604081526000611bdd6040830185611b79565b905060ff831660208301529392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146119fa57600080fd5b60008060408385031215611c2657600080fd5b611c2f836119e6565b9150611c3d60208401611bef565b90509250929050565b803560ff811681146119fa57600080fd5b60008060408385031215611c6a57600080fd5b611c73836119e6565b9150611c3d60208401611c46565b6020815260006103016020830184611b79565b600060208284031215611ca657600080fd5b61030182611bef565b60008060008060408587031215611cc557600080fd5b843567ffffffffffffffff80821115611cdd57600080fd5b611ce988838901611af5565b90965094506020870135915080821115611d0257600080fd5b50611ae987828801611af5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d7357600080fd5b83018035915067ffffffffffffffff821115611d8e57600080fd5b6020019150600581901b36038213156104b757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102ef576102ef611da6565b600060208284031215611dfa57600080fd5b61030182611c46565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e9257611e92611da6565b5060010190565b7fff000000000000000000000000000000000000000000000000000000000000008360f81b168152600060018083018451602080870160005b83811015611f0357815173ffffffffffffffffffffffffffffffffffffffff16855293820193908201908501611ed2565b509298975050505050505050565b60008085851115611f2157600080fd5b83861115611f2e57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611f7b5780818660040360031b1b83161692505b505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008460f81b168152818360018301376000910160010190815292915050565b818103818111156102ef576102ef611da6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061040080838503121561201857600080fd5b83601f84011261202757600080fd5b60405181810181811067ffffffffffffffff82111715612070577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290830190808583111561208557600080fd5b845b8381101561209f578035825260209182019101612087565b509095945050505050565b803560208310156102ef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015611f7b5760019490940360031b84901b1690921692915050565b600082612162577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820281158282048414176102ef576102ef611da6565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015611f7b5760149490940360031b84901b169092169291505056fea264697066735822122056776db489810097ac265c2ebda57c470acac0e98c29ea8b301deeba3e938c2b64736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  anonymous: boolean;
18
18
  inputs: {
@@ -420,7 +420,7 @@ const _abi = [
420
420
  type: "function",
421
421
  },
422
422
  ];
423
- const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6121fa8061007e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636465e69f116100b2578063e7d5d3a111610081578063f2fde38b11610066578063f2fde38b14610298578063f7e83aee146102ab578063fe9f5ab1146102be57600080fd5b8063e7d5d3a114610262578063f211b7321461027557600080fd5b80636465e69f146101f8578063715018a6146102125780638da5cb5b1461021a5780639a6e9a241461024257600080fd5b806340989912116100ee578063409899121461018f578063414c676f146101b25780634422cc2a146101c55780635d94f2b9146101d857600080fd5b8063020addf1146101205780630677bc7514610146578063174769dc146101595780632e0ed2341461016e575b600080fd5b61013361012e3660046119ff565b6102d1565b6040519081526020015b60405180910390f35b610133610154366004611a1a565b6102f5565b61016c610167366004611a89565b610308565b005b61018161017c366004611b37565b61047a565b60405161013d929190611bca565b6101a261019d366004611c13565b6104be565b604051901515815260200161013d565b61016c6101c0366004611a89565b6104ec565b61016c6101d3366004611c57565b6105cc565b6101336101e63660046119ff565b60036020526000908152604090205481565b610200600381565b60405160ff909116815260200161013d565b61016c6106dd565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013d565b6102556102503660046119ff565b6106f1565b60405161013d9190611c81565b61016c610270366004611c13565b6107c2565b6102006102833660046119ff565b60016020526000908152604090205460ff1681565b61016c6102a6366004611c94565b610948565b6101a26102b9366004611caf565b6109ff565b61016c6102cc366004611c13565b610af0565b63ffffffff811660009081526002602052604081206102ef90610b0b565b92915050565b60006103018383610b15565b9392505050565b610310610b95565b8281811461037f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b818110156104725736600085858481811061039f5761039f611d0f565b90506020028101906103b19190611d3e565b90925090508060005b8181101561042a576104188a8a878181106103d7576103d7611d0f565b90506020020160208101906103ec91906119ff565b8585848181106103fe576103fe611d0f565b90506020020160208101906104139190611c94565b610c16565b610423600182611dd5565b90506103ba565b5061045a89898681811061044057610440611d0f565b905060200201602081019061045591906119ff565b610d78565b5050505060018161046b9190611dd5565b9050610382565b505050505050565b60606000806104898585610e3d565b90506000610496826106f1565b63ffffffff9092166000908152600160205260409020549193505060ff1690505b9250929050565b63ffffffff808316600090815260026020526040812090916104e49082908590610e6016565b949350505050565b6104f4610b95565b8281811461055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610376565b60005b81811015610472576105ba86868381811061057e5761057e611d0f565b905060200201602081019061059391906119ff565b8585848181106105a5576105a5611d0f565b90506020020160208101906101d39190611de8565b6105c5600182611dd5565b9050610561565b6105d4610b95565b60008160ff161180156105f257506105eb826102d1565b8160ff1611155b610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172616e676500000000000000000000000000000000000000000000000000006044820152606401610376565b63ffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff861690811790915591519182527ff25cfff98c95cf069df801752174d854732576e4b283bc4299386f65676e386a910160405180910390a26106d882610d78565b505050565b6106e5610b95565b6106ef6000610e8f565b565b63ffffffff8116600090815260026020526040812060609161071282610b0b565b905060008167ffffffffffffffff81111561072f5761072f611e32565b604051908082528060200260200182016040528015610758578160200160208202803683370190505b50905060005b828110156107b9576107708482610f04565b82828151811061078257610782611d0f565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806107b181611e61565b91505061075e565b50949350505050565b6107ca610b95565b63ffffffff80831660009081526002602052604090206107ec918390610f1016565b610852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e726f6c6c656400000000000000000000000000000000000000000000006044820152606401610376565b600061085d836102d1565b63ffffffff841660009081526001602052604090205490915060ff168110156108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f76696f6c617465732071756f72756d207468726573686f6c64000000000000006044820152606401610376565b6108eb83610d78565b508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167fa4c7a7b783c9afd72ed0b93a7e67ca063acdaa9c3b3268bd43abe1199bdad27c8360405161093b91815260200190565b60405180910390a3505050565b610950610b95565b73ffffffffffffffffffffffffffffffffffffffff81166109f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610376565b6109fc81610e8f565b50565b6000610a0d85858585610f32565b610a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216d65726b6c65000000000000000000000000000000000000000000000000006044820152606401610376565b610a7f85858585610fac565b610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21736967730000000000000000000000000000000000000000000000000000006044820152606401610376565b506001949350505050565b610af8610b95565b610b028282610c16565b6106d882610d78565b60006102ef825490565b6040805160e084901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018490527f48595045524c414e45000000000000000000000000000000000000000000000060448301528251602d818403018152604d9092019092528051910120600090610301565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610376565b73ffffffffffffffffffffffffffffffffffffffff8116610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f206164647265737300000000000000000000000000000000000000006044820152606401610376565b63ffffffff8083166000908152600260205260409020610cb591839061122416565b610d1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f616c726561647920656e726f6c6c6564000000000000000000000000000000006044820152606401610376565b8073ffffffffffffffffffffffffffffffffffffffff168263ffffffff167f890997ec79a2b993cbc6e69433ed0ffa6303de16e3c21e315ba91c21ab5ec15a610d63856102d1565b60405190815260200160405180910390a35050565b600080610d84836106f1565b63ffffffff8416600090815260016020908152604080832054905193945060ff1692610db4918491869101611e99565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012063ffffffff8916600081815260038452849020829055845290830181905292507f6f17fabbcaf1b0e8cfbc153d8884a27de46c3076c2de8ac2aef0094a134909e3910160405180910390a1949350505050565b6000610e4d600960058486611f11565b610e5691611f3b565b60e01c9392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610301565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006103018383611246565b60006103018373ffffffffffffffffffffffffffffffffffffffff8416611270565b600080610f96610f7785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061136392505050565b610f81888861136e565b610f8b8787611392565b63ffffffff166113a2565b9050610fa28686611453565b1495945050505050565b600080610fb9868661146b565b9050600080610fc88686610e3d565b9050600083610fd78a8a611490565b604051602001610fe993929190611f83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012063ffffffff851660009081526003909352912054909150811461109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21636f6d6d69746d656e740000000000000000000000000000000000000000006044820152606401610376565b6110c5826110ac8b8b6114b5565b6110b68c8c611453565b6110c08d8d6114c5565b6114d5565b9250505060006110d58888611589565b90506000805b8460ff16811015611214576000611131856110f78d8d866115ab565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f192505050565b90505b838310801561117957506111498b8b8561160d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561118e5761118783611e61565b9250611134565b8383106111f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217468726573686f6c64000000000000000000000000000000000000000000006044820152606401610376565b61120083611e61565b9250508061120d90611e61565b90506110db565b5060019998505050505050505050565b60006103018373ffffffffffffffffffffffffffffffffffffffff841661166d565b600082600001828154811061125d5761125d611d0f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015611359576000611294600183611fc2565b85549091506000906112a890600190611fc2565b905081811461130d5760008660000182815481106112c8576112c8611d0f565b90600052602060002001549050808760000184815481106112eb576112eb611d0f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061131e5761131e611fd5565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102ef565b60009150506102ef565b805160209091012090565b6113766119c7565b61138561044460448486611f11565b8101906103019190612004565b6000610e4d600560018486611f11565b8260005b602081101561144b57600183821c1660008583602081106113c9576113c9611d0f565b6020020151905081600103611409576040805160208101839052908101859052606001604051602081830303815290604052805190602001209350611436565b60408051602081018690529081018290526060016040516020818303038152906040528051906020012093505b5050808061144390611e61565b9150506113a6565b509392505050565b60006114626020828486611f11565b610301916120aa565b600061147d6104456104448486611f11565b611486916120e6565b60f81c9392505050565b366000838361149f86866116bc565b6114aa928290611f11565b915091509250929050565b6000611462604460248486611f11565b6000610e4d602460208486611f11565b6000806114e28686610b15565b60408051602080820184905281830188905260e087901b7fffffffff00000000000000000000000000000000000000000000000000000000166060830152825160448184030181526064830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000608484015260a0808401919091528351808403909101815260c090920190925280519101209091509695505050505050565b6000602061159784846116bc565b6115a19084611fc2565b610301919061212c565b366000806115ba604185612167565b6115c690610445611dd5565b905060006115d5604183611dd5565b90506115e38183888a611f11565b935093505050935093915050565b600080600061160085856116e3565b9150915061144b81611725565b60008061161b836020612167565b61162586866116bc565b61162f9190611dd5565b61163a90600c611dd5565b90506000611649826014611dd5565b905061165781838789611f11565b6116609161217e565b60601c9695505050505050565b60008181526001830160205260408120546116b4575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102ef565b5060006102ef565b600060416116ca848461146b565b60ff166116d79190612167565b61030190610445611dd5565b60008082516041036117195760208301516040840151606085015160001a61170d878285856118d8565b945094505050506104b7565b506000905060026104b7565b600081600481111561173957611739611e03565b036117415750565b600181600481111561175557611755611e03565b036117bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610376565b60028160048111156117d0576117d0611e03565b03611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610376565b600381600481111561184b5761184b611e03565b036109fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610376565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561190f57506000905060036119be565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611963573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119b7576000600192509250506119be565b9150600090505b94509492505050565b6040518061040001604052806020906020820280368337509192915050565b803563ffffffff811681146119fa57600080fd5b919050565b600060208284031215611a1157600080fd5b610301826119e6565b60008060408385031215611a2d57600080fd5b611a36836119e6565b946020939093013593505050565b60008083601f840112611a5657600080fd5b50813567ffffffffffffffff811115611a6e57600080fd5b6020830191508360208260051b85010111156104b757600080fd5b60008060008060408587031215611a9f57600080fd5b843567ffffffffffffffff80821115611ab757600080fd5b611ac388838901611a44565b90965094506020870135915080821115611adc57600080fd5b50611ae987828801611a44565b95989497509550505050565b60008083601f840112611b0757600080fd5b50813567ffffffffffffffff811115611b1f57600080fd5b6020830191508360208285010111156104b757600080fd5b60008060208385031215611b4a57600080fd5b823567ffffffffffffffff811115611b6157600080fd5b611b6d85828601611af5565b90969095509350505050565b600081518084526020808501945080840160005b83811015611bbf57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611b8d565b509495945050505050565b604081526000611bdd6040830185611b79565b905060ff831660208301529392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146119fa57600080fd5b60008060408385031215611c2657600080fd5b611c2f836119e6565b9150611c3d60208401611bef565b90509250929050565b803560ff811681146119fa57600080fd5b60008060408385031215611c6a57600080fd5b611c73836119e6565b9150611c3d60208401611c46565b6020815260006103016020830184611b79565b600060208284031215611ca657600080fd5b61030182611bef565b60008060008060408587031215611cc557600080fd5b843567ffffffffffffffff80821115611cdd57600080fd5b611ce988838901611af5565b90965094506020870135915080821115611d0257600080fd5b50611ae987828801611af5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d7357600080fd5b83018035915067ffffffffffffffff821115611d8e57600080fd5b6020019150600581901b36038213156104b757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102ef576102ef611da6565b600060208284031215611dfa57600080fd5b61030182611c46565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e9257611e92611da6565b5060010190565b7fff000000000000000000000000000000000000000000000000000000000000008360f81b168152600060018083018451602080870160005b83811015611f0357815173ffffffffffffffffffffffffffffffffffffffff16855293820193908201908501611ed2565b509298975050505050505050565b60008085851115611f2157600080fd5b83861115611f2e57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611f7b5780818660040360031b1b83161692505b505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008460f81b168152818360018301376000910160010190815292915050565b818103818111156102ef576102ef611da6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061040080838503121561201857600080fd5b83601f84011261202757600080fd5b60405181810181811067ffffffffffffffff82111715612070577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290830190808583111561208557600080fd5b845b8381101561209f578035825260209182019101612087565b509095945050505050565b803560208310156102ef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015611f7b5760019490940360031b84901b1690921692915050565b600082612162577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820281158282048414176102ef576102ef611da6565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015611f7b5760149490940360031b84901b169092169291505056fea26469706673582212201d75a79585e47a14ce89e54ef31e5e6cc0c5d0f545fbcf3451c722a5d4e79a0064736f6c63430008110033";
423
+ const _bytecode = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6121fa8061007e6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80636465e69f116100b2578063e7d5d3a111610081578063f2fde38b11610066578063f2fde38b14610298578063f7e83aee146102ab578063fe9f5ab1146102be57600080fd5b8063e7d5d3a114610262578063f211b7321461027557600080fd5b80636465e69f146101f8578063715018a6146102125780638da5cb5b1461021a5780639a6e9a241461024257600080fd5b806340989912116100ee578063409899121461018f578063414c676f146101b25780634422cc2a146101c55780635d94f2b9146101d857600080fd5b8063020addf1146101205780630677bc7514610146578063174769dc146101595780632e0ed2341461016e575b600080fd5b61013361012e3660046119ff565b6102d1565b6040519081526020015b60405180910390f35b610133610154366004611a1a565b6102f5565b61016c610167366004611a89565b610308565b005b61018161017c366004611b37565b61047a565b60405161013d929190611bca565b6101a261019d366004611c13565b6104be565b604051901515815260200161013d565b61016c6101c0366004611a89565b6104ec565b61016c6101d3366004611c57565b6105cc565b6101336101e63660046119ff565b60036020526000908152604090205481565b610200600381565b60405160ff909116815260200161013d565b61016c6106dd565b60005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013d565b6102556102503660046119ff565b6106f1565b60405161013d9190611c81565b61016c610270366004611c13565b6107c2565b6102006102833660046119ff565b60016020526000908152604090205460ff1681565b61016c6102a6366004611c94565b610948565b6101a26102b9366004611caf565b6109ff565b61016c6102cc366004611c13565b610af0565b63ffffffff811660009081526002602052604081206102ef90610b0b565b92915050565b60006103018383610b15565b9392505050565b610310610b95565b8281811461037f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e6774680000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b60005b818110156104725736600085858481811061039f5761039f611d0f565b90506020028101906103b19190611d3e565b90925090508060005b8181101561042a576104188a8a878181106103d7576103d7611d0f565b90506020020160208101906103ec91906119ff565b8585848181106103fe576103fe611d0f565b90506020020160208101906104139190611c94565b610c16565b610423600182611dd5565b90506103ba565b5061045a89898681811061044057610440611d0f565b905060200201602081019061045591906119ff565b610d78565b5050505060018161046b9190611dd5565b9050610382565b505050505050565b60606000806104898585610e3d565b90506000610496826106f1565b63ffffffff9092166000908152600160205260409020549193505060ff1690505b9250929050565b63ffffffff808316600090815260026020526040812090916104e49082908590610e6016565b949350505050565b6104f4610b95565b8281811461055e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216c656e677468000000000000000000000000000000000000000000000000006044820152606401610376565b60005b81811015610472576105ba86868381811061057e5761057e611d0f565b905060200201602081019061059391906119ff565b8585848181106105a5576105a5611d0f565b90506020020160208101906101d39190611de8565b6105c5600182611dd5565b9050610561565b6105d4610b95565b60008160ff161180156105f257506105eb826102d1565b8160ff1611155b610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f2172616e676500000000000000000000000000000000000000000000000000006044820152606401610376565b63ffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff861690811790915591519182527ff25cfff98c95cf069df801752174d854732576e4b283bc4299386f65676e386a910160405180910390a26106d882610d78565b505050565b6106e5610b95565b6106ef6000610e8f565b565b63ffffffff8116600090815260026020526040812060609161071282610b0b565b905060008167ffffffffffffffff81111561072f5761072f611e32565b604051908082528060200260200182016040528015610758578160200160208202803683370190505b50905060005b828110156107b9576107708482610f04565b82828151811061078257610782611d0f565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152806107b181611e61565b91505061075e565b50949350505050565b6107ca610b95565b63ffffffff80831660009081526002602052604090206107ec918390610f1016565b610852576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e726f6c6c656400000000000000000000000000000000000000000000006044820152606401610376565b600061085d836102d1565b63ffffffff841660009081526001602052604090205490915060ff168110156108e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f76696f6c617465732071756f72756d207468726573686f6c64000000000000006044820152606401610376565b6108eb83610d78565b508173ffffffffffffffffffffffffffffffffffffffff168363ffffffff167fa4c7a7b783c9afd72ed0b93a7e67ca063acdaa9c3b3268bd43abe1199bdad27c8360405161093b91815260200190565b60405180910390a3505050565b610950610b95565b73ffffffffffffffffffffffffffffffffffffffff81166109f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610376565b6109fc81610e8f565b50565b6000610a0d85858585610f32565b610a73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216d65726b6c65000000000000000000000000000000000000000000000000006044820152606401610376565b610a7f85858585610fac565b610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f21736967730000000000000000000000000000000000000000000000000000006044820152606401610376565b506001949350505050565b610af8610b95565b610b028282610c16565b6106d882610d78565b60006102ef825490565b6040805160e084901b7fffffffff0000000000000000000000000000000000000000000000000000000016602080830191909152602482018490527f48595045524c414e45000000000000000000000000000000000000000000000060448301528251602d818403018152604d9092019092528051910120600090610301565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610376565b73ffffffffffffffffffffffffffffffffffffffff8116610c93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f7a65726f206164647265737300000000000000000000000000000000000000006044820152606401610376565b63ffffffff8083166000908152600260205260409020610cb591839061122416565b610d1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f616c726561647920656e726f6c6c6564000000000000000000000000000000006044820152606401610376565b8073ffffffffffffffffffffffffffffffffffffffff168263ffffffff167f890997ec79a2b993cbc6e69433ed0ffa6303de16e3c21e315ba91c21ab5ec15a610d63856102d1565b60405190815260200160405180910390a35050565b600080610d84836106f1565b63ffffffff8416600090815260016020908152604080832054905193945060ff1692610db4918491869101611e99565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209182012063ffffffff8916600081815260038452849020829055845290830181905292507f6f17fabbcaf1b0e8cfbc153d8884a27de46c3076c2de8ac2aef0094a134909e3910160405180910390a1949350505050565b6000610e4d600960058486611f11565b610e5691611f3b565b60e01c9392505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001830160205260408120541515610301565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006103018383611246565b60006103018373ffffffffffffffffffffffffffffffffffffffff8416611270565b600080610f96610f7785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061136392505050565b610f81888861136e565b610f8b8787611392565b63ffffffff166113a2565b9050610fa28686611453565b1495945050505050565b600080610fb9868661146b565b9050600080610fc88686610e3d565b9050600083610fd78a8a611490565b604051602001610fe993929190611f83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152815160209283012063ffffffff851660009081526003909352912054909150811461109e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f21636f6d6d69746d656e740000000000000000000000000000000000000000006044820152606401610376565b6110c5826110ac8b8b6114b5565b6110b68c8c611453565b6110c08d8d6114c5565b6114d5565b9250505060006110d58888611589565b90506000805b8460ff16811015611214576000611131856110f78d8d866115ab565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115f192505050565b90505b838310801561117957506111498b8b8561160d565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561118e5761118783611e61565b9250611134565b8383106111f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f217468726573686f6c64000000000000000000000000000000000000000000006044820152606401610376565b61120083611e61565b9250508061120d90611e61565b90506110db565b5060019998505050505050505050565b60006103018373ffffffffffffffffffffffffffffffffffffffff841661166d565b600082600001828154811061125d5761125d611d0f565b9060005260206000200154905092915050565b60008181526001830160205260408120548015611359576000611294600183611fc2565b85549091506000906112a890600190611fc2565b905081811461130d5760008660000182815481106112c8576112c8611d0f565b90600052602060002001549050808760000184815481106112eb576112eb611d0f565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061131e5761131e611fd5565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506102ef565b60009150506102ef565b805160209091012090565b6113766119c7565b61138561044460448486611f11565b8101906103019190612004565b6000610e4d600560018486611f11565b8260005b602081101561144b57600183821c1660008583602081106113c9576113c9611d0f565b6020020151905081600103611409576040805160208101839052908101859052606001604051602081830303815290604052805190602001209350611436565b60408051602081018690529081018290526060016040516020818303038152906040528051906020012093505b5050808061144390611e61565b9150506113a6565b509392505050565b60006114626020828486611f11565b610301916120aa565b600061147d6104456104448486611f11565b611486916120e6565b60f81c9392505050565b366000838361149f86866116bc565b6114aa928290611f11565b915091509250929050565b6000611462604460248486611f11565b6000610e4d602460208486611f11565b6000806114e28686610b15565b60408051602080820184905281830188905260e087901b7fffffffff00000000000000000000000000000000000000000000000000000000166060830152825160448184030181526064830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000608484015260a0808401919091528351808403909101815260c090920190925280519101209091509695505050505050565b6000602061159784846116bc565b6115a19084611fc2565b610301919061212c565b366000806115ba604185612167565b6115c690610445611dd5565b905060006115d5604183611dd5565b90506115e38183888a611f11565b935093505050935093915050565b600080600061160085856116e3565b9150915061144b81611725565b60008061161b836020612167565b61162586866116bc565b61162f9190611dd5565b61163a90600c611dd5565b90506000611649826014611dd5565b905061165781838789611f11565b6116609161217e565b60601c9695505050505050565b60008181526001830160205260408120546116b4575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102ef565b5060006102ef565b600060416116ca848461146b565b60ff166116d79190612167565b61030190610445611dd5565b60008082516041036117195760208301516040840151606085015160001a61170d878285856118d8565b945094505050506104b7565b506000905060026104b7565b600081600481111561173957611739611e03565b036117415750565b600181600481111561175557611755611e03565b036117bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610376565b60028160048111156117d0576117d0611e03565b03611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610376565b600381600481111561184b5761184b611e03565b036109fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610376565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561190f57506000905060036119be565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611963573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166119b7576000600192509250506119be565b9150600090505b94509492505050565b6040518061040001604052806020906020820280368337509192915050565b803563ffffffff811681146119fa57600080fd5b919050565b600060208284031215611a1157600080fd5b610301826119e6565b60008060408385031215611a2d57600080fd5b611a36836119e6565b946020939093013593505050565b60008083601f840112611a5657600080fd5b50813567ffffffffffffffff811115611a6e57600080fd5b6020830191508360208260051b85010111156104b757600080fd5b60008060008060408587031215611a9f57600080fd5b843567ffffffffffffffff80821115611ab757600080fd5b611ac388838901611a44565b90965094506020870135915080821115611adc57600080fd5b50611ae987828801611a44565b95989497509550505050565b60008083601f840112611b0757600080fd5b50813567ffffffffffffffff811115611b1f57600080fd5b6020830191508360208285010111156104b757600080fd5b60008060208385031215611b4a57600080fd5b823567ffffffffffffffff811115611b6157600080fd5b611b6d85828601611af5565b90969095509350505050565b600081518084526020808501945080840160005b83811015611bbf57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611b8d565b509495945050505050565b604081526000611bdd6040830185611b79565b905060ff831660208301529392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146119fa57600080fd5b60008060408385031215611c2657600080fd5b611c2f836119e6565b9150611c3d60208401611bef565b90509250929050565b803560ff811681146119fa57600080fd5b60008060408385031215611c6a57600080fd5b611c73836119e6565b9150611c3d60208401611c46565b6020815260006103016020830184611b79565b600060208284031215611ca657600080fd5b61030182611bef565b60008060008060408587031215611cc557600080fd5b843567ffffffffffffffff80821115611cdd57600080fd5b611ce988838901611af5565b90965094506020870135915080821115611d0257600080fd5b50611ae987828801611af5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611d7357600080fd5b83018035915067ffffffffffffffff821115611d8e57600080fd5b6020019150600581901b36038213156104b757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156102ef576102ef611da6565b600060208284031215611dfa57600080fd5b61030182611c46565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e9257611e92611da6565b5060010190565b7fff000000000000000000000000000000000000000000000000000000000000008360f81b168152600060018083018451602080870160005b83811015611f0357815173ffffffffffffffffffffffffffffffffffffffff16855293820193908201908501611ed2565b509298975050505050505050565b60008085851115611f2157600080fd5b83861115611f2e57600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611f7b5780818660040360031b1b83161692505b505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008460f81b168152818360018301376000910160010190815292915050565b818103818111156102ef576102ef611da6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061040080838503121561201857600080fd5b83601f84011261202757600080fd5b60405181810181811067ffffffffffffffff82111715612070577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290830190808583111561208557600080fd5b845b8381101561209f578035825260209182019101612087565b509095945050505050565b803560208310156102ef577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015611f7b5760019490940360031b84901b1690921692915050565b600082612162577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820281158282048414176102ef576102ef611da6565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015611f7b5760149490940360031b84901b169092169291505056fea264697066735822122056776db489810097ac265c2ebda57c470acac0e98c29ea8b301deeba3e938c2b64736f6c63430008110033";
424
424
  const isSuperArgs = (xs) => xs.length > 1;
425
425
  class TestLegacyMultisigIsm__factory extends ethers_1.ContractFactory {
426
426
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class TestMailbox__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): TestMailbox;
14
14
  connect(signer: Signer): TestMailbox__factory;
15
- static readonly bytecode = "0x60a060405234801561001057600080fd5b506040516200246c3803806200246c8339810160408190526100319161003f565b63ffffffff1660805261006c565b60006020828403121561005157600080fd5b815163ffffffff8116811461006557600080fd5b9392505050565b6080516123d66200009660003960008181610259015281816106ff0152610dd401526123d66000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063907c0f92116100d8578063f2fde38b1161008c578063faf924cf11610066578063faf924cf1461034a578063fd54b2281461035f578063ffa1ad741461036957600080fd5b8063f2fde38b14610311578063f794687a14610324578063fa31de011461033757600080fd5b8063e495f1d4116100bd578063e495f1d4146102d3578063e70f48ac146102f6578063ebf0c7171461030957600080fd5b8063907c0f9214610299578063b187bd26146102bb57600080fd5b80636e5f516e1161013a5780638456cb59116101145780638456cb591461024c5780638d3638f4146102545780638da5cb5b1461027b57600080fd5b80636e5f516e146101ec578063715018a6146102315780637c39d1301461023957600080fd5b80633f4ba83a1161016b5780633f4ba83a146101ba578063485cc955146101c2578063522ae002146101d557600080fd5b806306661abd14610187578063082548ec146101a5575b600080fd5b60b8545b60405163ffffffff90911681526020015b60405180910390f35b6101b86101b3366004611c63565b610383565b005b6101b8610414565b6101b86101d0366004611ced565b61044f565b6101de61080081565b60405190815260200161019c565b60975461020c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019c565b6101b8610602565b6101b8610247366004611d26565b610616565b6101b8610ac9565b61018b7f000000000000000000000000000000000000000000000000000000000000000081565b60335473ffffffffffffffffffffffffffffffffffffffff1661020c565b6102a1610b04565b6040805192835263ffffffff90911660208301520161019c565b6102c3610b2c565b604051901515815260200161019c565b6102c36102e1366004611d92565b60b96020526000908152604090205460ff1681565b61020c610304366004611dab565b610b3f565b6101de610c0d565b6101b861031f366004611dab565b610c19565b6101b8610332366004611dab565b610cd0565b6101de610345366004611dc8565b610ce1565b610352610e9d565b60405161019c9190611e16565b60b8546101de9081565b610371600081565b60405160ff909116815260200161019c565b6040517f56d5d47500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906356d5d475906103db908890889087908790600401611e95565b600060405180830381600087803b1580156103f557600080fd5b505af1158015610409573d6000803e3d6000fd5b505050505050505050565b61041c610f65565b610424610fe6565b6040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b600054610100900460ff161580801561046f5750600054600160ff909116105b806104895750303b158015610489575060005460ff166001145b61051a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561057857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610580611059565b6105886110f0565b61059183610c19565b61059a8261118f565b80156105fd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b61060a610f65565b610614600061127c565b565b600160655414610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f7265656e7472616e742063616c6c20286f7220706175736564290000000000006044820152606401610511565b6000606581905561069383836112f3565b60ff16146106fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2176657273696f6e0000000000000000000000000000000000000000000000006044820152606401610511565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff1661072e8383611317565b63ffffffff161461079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e00000000000000000000000000000000000000006044820152606401610511565b60006107dc83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061133a92505050565b600081815260b9602052604090205490915060ff1615610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f64656c69766572656400000000000000000000000000000000000000000000006044820152606401610511565b600081815260b96020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561089c6103048585611345565b6040517ff7e83aee00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee906108f7908990899089908990600401611ec5565b6020604051808303816000875af1158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190611ef7565b6109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216d6f64756c65000000000000000000000000000000000000000000000000006044820152606401610511565b60006109ac858561135e565b905060006109ba868661136e565b905060006109c88787611345565b90508073ffffffffffffffffffffffffffffffffffffffff166356d5d47584846109f28b8b611387565b6040518563ffffffff1660e01b8152600401610a119493929190611e95565b600060405180830381600087803b158015610a2b57600080fd5b505af1158015610a3f573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16828463ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405185907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a25050600160655550505050505050565b610ad1610f65565b610ad96113a3565b6040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b600080610b0f610c0d565b6001610b1a60b85490565b610b249190611f48565b915091509091565b6000610b3a60655460021490565b905090565b60008173ffffffffffffffffffffffffffffffffffffffff1663de523cf36040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610bc6575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610bc391810190611f6c565b60015b15610bef5773ffffffffffffffffffffffffffffffffffffffff811615610bed5792915050565b505b505060975473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b3a6098611416565b610c21610f65565b73ffffffffffffffffffffffffffffffffffffffff8116610cc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610511565b610ccd8161127c565b50565b610cd8610f65565b610ccd8161118f565b6000610cef60655460021490565b15610d56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f70617573656400000000000000000000000000000000000000000000000000006044820152606401610511565b610800821115610dc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e6700000000000000000000000000000000000000006044820152606401610511565b6000610dfd6000610dd260b85490565b7f0000000000000000000000000000000000000000000000000000000000000000338a8a8a8a611429565b80516020820120909150610e12609882611467565b858763ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051610e609190611f89565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a29695505050505050565b610ea5611be9565b6000610eaf6115a6565b905060006001609860200154610ec59190611ff5565b9050610ecf611be9565b60005b6020811015610f5d57600183821c811690819003610f1b5760988260208110610efd57610efd612008565b0154838360208110610f1157610f11612008565b6020020152610f4a565b848260208110610f2d57610f2d612008565b6020020151838360208110610f4457610f44612008565b60200201525b5080610f5581612037565b915050610ed2565b509392505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610511565b606554600214611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21706175736564000000000000000000000000000000000000000000000000006044820152606401610511565b6001606555565b600054610100900460ff16611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610511565b600054610100900460ff16611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610511565b610614611a67565b73ffffffffffffffffffffffffffffffffffffffff81163b61120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e747261637400000000000000000000000000000000000000000000006044820152606401610511565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611302600182848661206f565b61130b91612099565b60f81c90505b92915050565b6000611327602d6029848661206f565b611330916120df565b60e01c9392505050565b805160209091012090565b60006113576113548484611b07565b90565b9392505050565b600061132760096005848661206f565b600061137e60296009848661206f565b61135791612125565b36600061139783604d818761206f565b915091505b9250929050565b60655460020361140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f70617573656400000000000000000000000000000000000000000000000000006044820152606401610511565b6002606555565b6000611311826114246115a6565b611b17565b6060888888888888888860405160200161144a989796959493929190612161565b604051602081830303815290604052905098975050505050505050565b600161147560206002612317565b61147f9190611ff5565b8260200154106114eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c000000000000000000000000000000006044820152606401610511565b60018260200160008282546115009190612323565b9091555050602082015460005b602081101561159d578160011660010361153c578284826020811061153457611534612008565b015550505050565b83816020811061154e5761154e612008565b015460408051602081019290925281018490526060016040516020818303038152906040528051906020012092506002826115899190612336565b91508061159581612037565b91505061150d565b506105fd612371565b6115ae611be9565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b600054610100900460ff16611afe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610511565b6106143361127c565b600061137e604d602d848661206f565b6020820154600090815b6020811015611be157600182821c166000868360208110611b4457611b44612008565b0154905081600103611b81576040805160208101839052908101869052606001604051602081830303815290604052805190602001209450611bcc565b84868460208110611b9457611b94612008565b6020020151604051602001611bb3929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b50508080611bd990612037565b915050611b21565b505092915050565b6040518061040001604052806020906020820280368337509192915050565b803563ffffffff81168114611c1c57600080fd5b919050565b60008083601f840112611c3357600080fd5b50813567ffffffffffffffff811115611c4b57600080fd5b60208301915083602082850101111561139c57600080fd5b600080600080600060808688031215611c7b57600080fd5b611c8486611c08565b94506020860135935060408601359250606086013567ffffffffffffffff811115611cae57600080fd5b611cba88828901611c21565b969995985093965092949392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ccd57600080fd5b60008060408385031215611d0057600080fd5b8235611d0b81611ccb565b91506020830135611d1b81611ccb565b809150509250929050565b60008060008060408587031215611d3c57600080fd5b843567ffffffffffffffff80821115611d5457600080fd5b611d6088838901611c21565b90965094506020870135915080821115611d7957600080fd5b50611d8687828801611c21565b95989497509550505050565b600060208284031215611da457600080fd5b5035919050565b600060208284031215611dbd57600080fd5b813561135781611ccb565b60008060008060608587031215611dde57600080fd5b611de785611c08565b935060208501359250604085013567ffffffffffffffff811115611e0a57600080fd5b611d8687828801611c21565b6104008101818360005b6020808210611e2f5750611e43565b825184529283019290910190600101611e20565b50505092915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b63ffffffff85168152836020820152606060408201526000611ebb606083018486611e4c565b9695505050505050565b604081526000611ed9604083018688611e4c565b8281036020840152611eec818587611e4c565b979650505050505050565b600060208284031215611f0957600080fd5b8151801515811461135757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff828116828216039080821115611f6557611f65611f19565b5092915050565b600060208284031215611f7e57600080fd5b815161135781611ccb565b600060208083528351808285015260005b81811015611fb657858101830151858201604001528201611f9a565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b8181038181111561131157611311611f19565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361206857612068611f19565b5060010190565b6000808585111561207f57600080fd5b8386111561208c57600080fd5b5050820193919092039150565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015611be15760019490940360031b84901b1690921692915050565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611be15760049490940360031b84901b1690921692915050565b80356020831015611311577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d01908152979650505050505050565b600181815b8085111561225057817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561223657612236611f19565b8085161561224357918102915b93841c93908002906121fc565b509250929050565b60008261226757506001611311565b8161227457506000611311565b816001811461228a5760028114612294576122b0565b6001915050611311565b60ff8411156122a5576122a5611f19565b50506001821b611311565b5060208310610133831016604e8410600b84101617156122d3575081810a611311565b6122dd83836121f7565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561230f5761230f611f19565b029392505050565b60006113578383612258565b8082018082111561131157611311611f19565b60008261236c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea264697066735822122064558d38d29c92875dbf5ca415973a954a7120454d42d55e7d48100d39cf11ab64736f6c63430008110033";
15
+ static readonly bytecode = "0x60a060405234801561001057600080fd5b506040516200246c3803806200246c8339810160408190526100319161003f565b63ffffffff1660805261006c565b60006020828403121561005157600080fd5b815163ffffffff8116811461006557600080fd5b9392505050565b6080516123d66200009660003960008181610259015281816106ff0152610dd401526123d66000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c8063907c0f92116100d8578063f2fde38b1161008c578063faf924cf11610066578063faf924cf1461034a578063fd54b2281461035f578063ffa1ad741461036957600080fd5b8063f2fde38b14610311578063f794687a14610324578063fa31de011461033757600080fd5b8063e495f1d4116100bd578063e495f1d4146102d3578063e70f48ac146102f6578063ebf0c7171461030957600080fd5b8063907c0f9214610299578063b187bd26146102bb57600080fd5b80636e5f516e1161013a5780638456cb59116101145780638456cb591461024c5780638d3638f4146102545780638da5cb5b1461027b57600080fd5b80636e5f516e146101ec578063715018a6146102315780637c39d1301461023957600080fd5b80633f4ba83a1161016b5780633f4ba83a146101ba578063485cc955146101c2578063522ae002146101d557600080fd5b806306661abd14610187578063082548ec146101a5575b600080fd5b60b8545b60405163ffffffff90911681526020015b60405180910390f35b6101b86101b3366004611c63565b610383565b005b6101b8610414565b6101b86101d0366004611ced565b61044f565b6101de61080081565b60405190815260200161019c565b60975461020c9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019c565b6101b8610602565b6101b8610247366004611d26565b610616565b6101b8610ac9565b61018b7f000000000000000000000000000000000000000000000000000000000000000081565b60335473ffffffffffffffffffffffffffffffffffffffff1661020c565b6102a1610b04565b6040805192835263ffffffff90911660208301520161019c565b6102c3610b2c565b604051901515815260200161019c565b6102c36102e1366004611d92565b60b96020526000908152604090205460ff1681565b61020c610304366004611dab565b610b3f565b6101de610c0d565b6101b861031f366004611dab565b610c19565b6101b8610332366004611dab565b610cd0565b6101de610345366004611dc8565b610ce1565b610352610e9d565b60405161019c9190611e16565b60b8546101de9081565b610371600081565b60405160ff909116815260200161019c565b6040517f56d5d47500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906356d5d475906103db908890889087908790600401611e95565b600060405180830381600087803b1580156103f557600080fd5b505af1158015610409573d6000803e3d6000fd5b505050505050505050565b61041c610f65565b610424610fe6565b6040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b600054610100900460ff161580801561046f5750600054600160ff909116105b806104895750303b158015610489575060005460ff166001145b61051a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561057857600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610580611059565b6105886110f0565b61059183610c19565b61059a8261118f565b80156105fd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b61060a610f65565b610614600061127c565b565b600160655414610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f7265656e7472616e742063616c6c20286f7220706175736564290000000000006044820152606401610511565b6000606581905561069383836112f3565b60ff16146106fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f2176657273696f6e0000000000000000000000000000000000000000000000006044820152606401610511565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff1661072e8383611317565b63ffffffff161461079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f2164657374696e6174696f6e00000000000000000000000000000000000000006044820152606401610511565b60006107dc83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061133a92505050565b600081815260b9602052604090205490915060ff1615610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f64656c69766572656400000000000000000000000000000000000000000000006044820152606401610511565b600081815260b96020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561089c6103048585611345565b6040517ff7e83aee00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff82169063f7e83aee906108f7908990899089908990600401611ec5565b6020604051808303816000875af1158015610916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093a9190611ef7565b6109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f216d6f64756c65000000000000000000000000000000000000000000000000006044820152606401610511565b60006109ac858561135e565b905060006109ba868661136e565b905060006109c88787611345565b90508073ffffffffffffffffffffffffffffffffffffffff166356d5d47584846109f28b8b611387565b6040518563ffffffff1660e01b8152600401610a119493929190611e95565b600060405180830381600087803b158015610a2b57600080fd5b505af1158015610a3f573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16828463ffffffff167f0d381c2a574ae8f04e213db7cfb4df8df712cdbd427d9868ffef380660ca657460405160405180910390a460405185907f1cae38cdd3d3919489272725a5ae62a4f48b2989b0dae843d3c279fee18073a990600090a25050600160655550505050505050565b610ad1610f65565b610ad96113a3565b6040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b600080610b0f610c0d565b6001610b1a60b85490565b610b249190611f48565b915091509091565b6000610b3a60655460021490565b905090565b60008173ffffffffffffffffffffffffffffffffffffffff1663de523cf36040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610bc6575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610bc391810190611f6c565b60015b15610bef5773ffffffffffffffffffffffffffffffffffffffff811615610bed5792915050565b505b505060975473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b3a6098611416565b610c21610f65565b73ffffffffffffffffffffffffffffffffffffffff8116610cc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610511565b610ccd8161127c565b50565b610cd8610f65565b610ccd8161118f565b6000610cef60655460021490565b15610d56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f70617573656400000000000000000000000000000000000000000000000000006044820152606401610511565b610800821115610dc2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6d736720746f6f206c6f6e6700000000000000000000000000000000000000006044820152606401610511565b6000610dfd6000610dd260b85490565b7f0000000000000000000000000000000000000000000000000000000000000000338a8a8a8a611429565b80516020820120909150610e12609882611467565b858763ffffffff163373ffffffffffffffffffffffffffffffffffffffff167f769f711d20c679153d382254f59892613b58a97cc876b249134ac25c80f9c81485604051610e609190611f89565b60405180910390a460405181907f788dbc1b7152732178210e7f4d9d010ef016f9eafbe66786bd7169f56e0c353a90600090a29695505050505050565b610ea5611be9565b6000610eaf6115a6565b905060006001609860200154610ec59190611ff5565b9050610ecf611be9565b60005b6020811015610f5d57600183821c811690819003610f1b5760988260208110610efd57610efd612008565b0154838360208110610f1157610f11612008565b6020020152610f4a565b848260208110610f2d57610f2d612008565b6020020151838360208110610f4457610f44612008565b60200201525b5080610f5581612037565b915050610ed2565b509392505050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610511565b606554600214611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21706175736564000000000000000000000000000000000000000000000000006044820152606401610511565b6001606555565b600054610100900460ff16611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610511565b600054610100900460ff16611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610511565b610614611a67565b73ffffffffffffffffffffffffffffffffffffffff81163b61120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21636f6e747261637400000000000000000000000000000000000000000000006044820152606401610511565b609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa76ad0adbf45318f8633aa0210f711273d50fbb6fef76ed95bbae97082c75daa90600090a250565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611302600182848661206f565b61130b91612099565b60f81c90505b92915050565b6000611327602d6029848661206f565b611330916120df565b60e01c9392505050565b805160209091012090565b60006113576113548484611b07565b90565b9392505050565b600061132760096005848661206f565b600061137e60296009848661206f565b61135791612125565b36600061139783604d818761206f565b915091505b9250929050565b60655460020361140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f70617573656400000000000000000000000000000000000000000000000000006044820152606401610511565b6002606555565b6000611311826114246115a6565b611b17565b6060888888888888888860405160200161144a989796959493929190612161565b604051602081830303815290604052905098975050505050505050565b600161147560206002612317565b61147f9190611ff5565b8260200154106114eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6d65726b6c6520747265652066756c6c000000000000000000000000000000006044820152606401610511565b60018260200160008282546115009190612323565b9091555050602082015460005b602081101561159d578160011660010361153c578284826020811061153457611534612008565b015550505050565b83816020811061154e5761154e612008565b015460408051602081019290925281018490526060016040516020818303038152906040528051906020012092506002826115899190612336565b91508061159581612037565b91505061150d565b506105fd612371565b6115ae611be9565b600081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb560208201527fb4c11951957c6f8f642c4af61cd6b24640fec6dc7fc607ee8206a99e92410d3060408201527f21ddb9a356815c3fac1026b6dec5df3124afbadb485c9ba5a3e3398a04b7ba8560608201527fe58769b32a1beaf1ea27375a44095a0d1fb664ce2dd358e7fcbfb78c26a1934460808201527f0eb01ebfc9ed27500cd4dfc979272d1f0913cc9f66540d7e8005811109e1cf2d60a08201527f887c22bd8750d34016ac3c66b5ff102dacdd73f6b014e710b51e8022af9a196860c08201527fffd70157e48063fc33c97a050f7f640233bf646cc98d9524c6b92bcf3ab56f8360e08201527f9867cc5f7f196b93bae1e27e6320742445d290f2263827498b54fec539f756af6101008201527fcefad4e508c098b9a7e1d8feb19955fb02ba9675585078710969d3440f5054e06101208201527ff9dc3e7fe016e050eff260334f18a5d4fe391d82092319f5964f2e2eb7c1c3a56101408201527ff8b13a49e282f609c317a833fb8d976d11517c571d1221a265d25af778ecf8926101608201527f3490c6ceeb450aecdc82e28293031d10c7d73bf85e57bf041a97360aa2c5d99c6101808201527fc1df82d9c4b87413eae2ef048f94b4d3554cea73d92b0f7af96e0271c691e2bb6101a08201527f5c67add7c6caf302256adedf7ab114da0acfe870d449a3a489f781d659e8becc6101c08201527fda7bce9f4e8618b6bd2f4132ce798cdc7a60e7e1460a7299e3c6342a579626d26101e08201527f2733e50f526ec2fa19a22b31e8ed50f23cd1fdf94c9154ed3a7609a2f1ff981f6102008201527fe1d3b5c807b281e4683cc6d6315cf95b9ade8641defcb32372f1c126e398ef7a6102208201527f5a2dce0a8a7f68bb74560f8f71837c2c2ebbcbf7fffb42ae1896f13f7c7479a06102408201527fb46a28b6f55540f89444f63de0378e3d121be09e06cc9ded1c20e65876d36aa06102608201527fc65e9645644786b620e2dd2ad648ddfcbf4a7e5b1a3a4ecfe7f64667a3f0b7e26102808201527ff4418588ed35a2458cffeb39b93d26f18d2ab13bdce6aee58e7b99359ec2dfd96102a08201527f5a9c16dc00d6ef18b7933a6f8dc65ccb55667138776f7dea101070dc8796e3776102c08201527f4df84f40ae0c8229d0d6069e5c8f39a7c299677a09d367fc7b05e3bc380ee6526102e08201527fcdc72595f74c7b1043d0e1ffbab734648c838dfb0527d971b602bc216c9619ef6103008201527f0abf5ac974a1ed57f4050aa510dd9c74f508277b39d7973bb2dfccc5eeb0618d6103208201527fb8cd74046ff337f0a7bf2c8e03e10f642c1886798d71806ab1e888d9e5ee87d06103408201527f838c5655cb21c6cb83313b5a631175dff4963772cce9108188b34ac87c81c41e6103608201527f662ee4dd2dd7b2bc707961b1e646c4047669dcb6584f0d8d770daf5d7e7deb2e6103808201527f388ab20e2573d171a88108e79d820e98f26c0b84aa8b2f4aa4968dbb818ea3226103a08201527f93237c50ba75ee485f4c22adf2f741400bdf8d6a9cc7df7ecae576221665d7356103c08201527f8448818bb4ae4562849e949e17ac16e0be16688e156b5cf15e098c627c0056a96103e082015290565b600054610100900460ff16611afe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610511565b6106143361127c565b600061137e604d602d848661206f565b6020820154600090815b6020811015611be157600182821c166000868360208110611b4457611b44612008565b0154905081600103611b81576040805160208101839052908101869052606001604051602081830303815290604052805190602001209450611bcc565b84868460208110611b9457611b94612008565b6020020151604051602001611bb3929190918252602082015260400190565b6040516020818303038152906040528051906020012094505b50508080611bd990612037565b915050611b21565b505092915050565b6040518061040001604052806020906020820280368337509192915050565b803563ffffffff81168114611c1c57600080fd5b919050565b60008083601f840112611c3357600080fd5b50813567ffffffffffffffff811115611c4b57600080fd5b60208301915083602082850101111561139c57600080fd5b600080600080600060808688031215611c7b57600080fd5b611c8486611c08565b94506020860135935060408601359250606086013567ffffffffffffffff811115611cae57600080fd5b611cba88828901611c21565b969995985093965092949392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ccd57600080fd5b60008060408385031215611d0057600080fd5b8235611d0b81611ccb565b91506020830135611d1b81611ccb565b809150509250929050565b60008060008060408587031215611d3c57600080fd5b843567ffffffffffffffff80821115611d5457600080fd5b611d6088838901611c21565b90965094506020870135915080821115611d7957600080fd5b50611d8687828801611c21565b95989497509550505050565b600060208284031215611da457600080fd5b5035919050565b600060208284031215611dbd57600080fd5b813561135781611ccb565b60008060008060608587031215611dde57600080fd5b611de785611c08565b935060208501359250604085013567ffffffffffffffff811115611e0a57600080fd5b611d8687828801611c21565b6104008101818360005b6020808210611e2f5750611e43565b825184529283019290910190600101611e20565b50505092915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b63ffffffff85168152836020820152606060408201526000611ebb606083018486611e4c565b9695505050505050565b604081526000611ed9604083018688611e4c565b8281036020840152611eec818587611e4c565b979650505050505050565b600060208284031215611f0957600080fd5b8151801515811461135757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b63ffffffff828116828216039080821115611f6557611f65611f19565b5092915050565b600060208284031215611f7e57600080fd5b815161135781611ccb565b600060208083528351808285015260005b81811015611fb657858101830151858201604001528201611f9a565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b8181038181111561131157611311611f19565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361206857612068611f19565b5060010190565b6000808585111561207f57600080fd5b8386111561208c57600080fd5b5050820193919092039150565b7fff000000000000000000000000000000000000000000000000000000000000008135818116916001851015611be15760019490940360031b84901b1690921692915050565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015611be15760049490940360031b84901b1690921692915050565b80356020831015611311577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fff000000000000000000000000000000000000000000000000000000000000008960f81b16815260007fffffffff00000000000000000000000000000000000000000000000000000000808a60e01b166001840152808960e01b166005840152876009840152808760e01b1660298401525084602d8301528284604d8401375060009101604d01908152979650505050505050565b600181815b8085111561225057817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561223657612236611f19565b8085161561224357918102915b93841c93908002906121fc565b509250929050565b60008261226757506001611311565b8161227457506000611311565b816001811461228a5760028114612294576122b0565b6001915050611311565b60ff8411156122a5576122a5611f19565b50506001821b611311565b5060208310610133831016604e8410600b84101617156122d3575081810a611311565b6122dd83836121f7565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561230f5761230f611f19565b029392505050565b60006113578383612258565b8082018082111561131157611311611f19565b60008261236c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fdfea2646970667358221220b9180cea247cff9445771ac12b2198b36505eda64bce01563d75996a92b9a82e64736f6c63430008110033";
16
16
  static readonly abi: ({
17
17
  inputs: {
18
18
  internalType: string;