@wireio/stake 2.5.2 → 2.6.0

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 (210) hide show
  1. package/lib/stake.browser.js +28102 -730
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +53 -11
  4. package/lib/stake.js +28126 -730
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +28102 -730
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +2 -2
  9. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.dbg.json +4 -0
  10. package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.json +164 -0
  11. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
  12. package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
  13. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
  14. package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
  15. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.dbg.json +4 -0
  16. package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.json +618 -0
  17. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.dbg.json +4 -0
  18. package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.json +40 -0
  19. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.dbg.json +4 -0
  20. package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.json +10 -0
  21. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
  22. package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.json +10 -0
  23. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
  24. package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.json +233 -0
  25. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.dbg.json +4 -0
  26. package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.json +49 -0
  27. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
  28. package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
  29. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.dbg.json +4 -0
  30. package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.json +1458 -0
  31. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
  32. package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.json +1532 -0
  33. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
  34. package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.json +1525 -0
  35. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.dbg.json +4 -0
  36. package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.json +1076 -0
  37. package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  38. package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.json +807 -0
  39. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
  40. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.json +1004 -0
  41. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +4 -0
  42. package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +29 -0
  43. package/src/assets/ethereum/hoodi/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +4 -0
  44. package/src/assets/ethereum/hoodi/liqEth/KeyBondManager.sol/KeyBondManager.json +897 -0
  45. package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  46. package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  47. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  48. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
  49. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  50. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
  51. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +4 -0
  52. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IKeyBondManager.json +189 -0
  53. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  54. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  55. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  56. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
  57. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  58. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
  59. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  60. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.json +279 -0
  61. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  62. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  63. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  64. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  65. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  66. package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  67. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
  68. package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
  69. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  70. package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  71. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
  72. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
  73. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
  74. package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
  75. package/src/assets/ethereum/hoodi/liqEth/StakingLib.sol/StakingLib.dbg.json +4 -0
  76. package/src/assets/ethereum/hoodi/liqEth/StakingLib.sol/StakingLib.json +89 -0
  77. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
  78. package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.json +1376 -0
  79. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
  80. package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
  81. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
  82. package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.json +1896 -0
  83. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
  84. package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
  85. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
  86. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
  87. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
  88. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
  89. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
  90. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
  91. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  92. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  93. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
  94. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
  95. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  96. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  97. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
  98. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
  99. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
  100. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
  101. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
  102. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
  103. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
  104. package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
  105. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  106. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
  107. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  108. package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
  109. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
  110. package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json +542 -0
  111. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
  112. package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
  113. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
  114. package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
  115. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
  116. package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
  117. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
  118. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
  119. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
  120. package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
  121. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BARV2.dbg.json +4 -0
  122. package/src/assets/ethereum/hoodi/outpost/BAR.sol/BARV2.json +1915 -0
  123. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/DepositorV2.dbg.json +4 -0
  124. package/src/assets/ethereum/hoodi/outpost/Depositor.sol/DepositorV2.json +1845 -0
  125. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
  126. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
  127. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
  128. package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +551 -0
  129. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.dbg.json +4 -0
  130. package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.json +948 -0
  131. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
  132. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.json +88 -0
  133. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
  134. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
  135. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
  136. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.json +194 -0
  137. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
  138. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
  139. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
  140. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.json +36 -0
  141. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
  142. package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json +199 -0
  143. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
  144. package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.json +273 -0
  145. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
  146. package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +394 -0
  147. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
  148. package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +378 -0
  149. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
  150. package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.json +224 -0
  151. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
  152. package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json +1010 -0
  153. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
  154. package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.json +291 -0
  155. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
  156. package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.json +298 -0
  157. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
  158. package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.json +488 -0
  159. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
  160. package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
  161. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +4 -0
  162. package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManagerV2.json +737 -0
  163. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
  164. package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
  165. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
  166. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
  167. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
  168. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
  169. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
  170. package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
  171. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
  172. package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
  173. package/src/assets/ethereum/hoodi/outpost/Pool.sol/PoolV2.dbg.json +4 -0
  174. package/src/assets/ethereum/hoodi/outpost/Pool.sol/PoolV2.json +943 -0
  175. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/PretokenV2.dbg.json +4 -0
  176. package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/PretokenV2.json +1703 -0
  177. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
  178. package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json +2015 -0
  179. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  180. package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  181. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
  182. package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
  183. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
  184. package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
  185. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
  186. package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
  187. package/src/assets/ethereum/hoodi/outpost/v1/BAR.sol/BAR.dbg.json +4 -0
  188. package/src/assets/ethereum/hoodi/outpost/v1/BAR.sol/BAR.json +1871 -0
  189. package/src/assets/ethereum/hoodi/outpost/v1/Depositor.sol/Depositor.dbg.json +4 -0
  190. package/src/assets/ethereum/hoodi/outpost/v1/Depositor.sol/Depositor.json +1653 -0
  191. package/src/assets/ethereum/hoodi/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +4 -0
  192. package/src/assets/ethereum/hoodi/outpost/v1/OutpostManager.sol/OutpostManager.json +730 -0
  193. package/src/assets/ethereum/hoodi/outpost/v1/Pool.sol/Pool.dbg.json +4 -0
  194. package/src/assets/ethereum/hoodi/outpost/v1/Pool.sol/Pool.json +936 -0
  195. package/src/assets/ethereum/hoodi/outpost/v1/Pretoken.sol/Pretoken.dbg.json +4 -0
  196. package/src/assets/ethereum/hoodi/outpost/v1/Pretoken.sol/Pretoken.json +1665 -0
  197. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
  198. package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json +472 -0
  199. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
  200. package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json +330 -0
  201. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
  202. package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json +449 -0
  203. package/src/networks/ethereum/clients/stake.client.ts +81 -7
  204. package/src/networks/ethereum/contract.ts +189 -81
  205. package/src/networks/ethereum/ethereum.ts +47 -6
  206. package/src/networks/ethereum/types.ts +10 -0
  207. package/src/networks/solana/constants.ts +3 -3
  208. package/src/networks/solana/solana.ts +92 -7
  209. package/src/networks/solana/types.ts +2 -2
  210. package/src/types.ts +10 -1
@@ -0,0 +1,897 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "KeyBondManager",
4
+ "sourceName": "contracts/liqEth/KeyBondManager.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "target",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "AddressEmptyCode",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "implementation",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ERC1967InvalidImplementation",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ERC1967NonPayable",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [],
73
+ "name": "FailedCall",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "InvalidInitialization",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "NotInitializing",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "ReentrancyGuardReentrantCall",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "UUPSUnauthorizedCallContext",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [
98
+ {
99
+ "internalType": "bytes32",
100
+ "name": "slot",
101
+ "type": "bytes32"
102
+ }
103
+ ],
104
+ "name": "UUPSUnsupportedProxiableUUID",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "anonymous": false,
109
+ "inputs": [
110
+ {
111
+ "indexed": false,
112
+ "internalType": "address",
113
+ "name": "authority",
114
+ "type": "address"
115
+ }
116
+ ],
117
+ "name": "AuthorityUpdated",
118
+ "type": "event"
119
+ },
120
+ {
121
+ "anonymous": false,
122
+ "inputs": [
123
+ {
124
+ "indexed": true,
125
+ "internalType": "address",
126
+ "name": "op",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "indexed": false,
131
+ "internalType": "uint256",
132
+ "name": "tokenAmt",
133
+ "type": "uint256"
134
+ }
135
+ ],
136
+ "name": "BondLocked",
137
+ "type": "event"
138
+ },
139
+ {
140
+ "anonymous": false,
141
+ "inputs": [
142
+ {
143
+ "indexed": true,
144
+ "internalType": "address",
145
+ "name": "op",
146
+ "type": "address"
147
+ },
148
+ {
149
+ "indexed": false,
150
+ "internalType": "uint256",
151
+ "name": "tokenAmt",
152
+ "type": "uint256"
153
+ }
154
+ ],
155
+ "name": "BondUnlocked",
156
+ "type": "event"
157
+ },
158
+ {
159
+ "anonymous": false,
160
+ "inputs": [
161
+ {
162
+ "indexed": false,
163
+ "internalType": "uint64",
164
+ "name": "version",
165
+ "type": "uint64"
166
+ }
167
+ ],
168
+ "name": "Initialized",
169
+ "type": "event"
170
+ },
171
+ {
172
+ "anonymous": false,
173
+ "inputs": [
174
+ {
175
+ "indexed": true,
176
+ "internalType": "address",
177
+ "name": "op",
178
+ "type": "address"
179
+ },
180
+ {
181
+ "indexed": false,
182
+ "internalType": "uint256",
183
+ "name": "tokenAmt",
184
+ "type": "uint256"
185
+ }
186
+ ],
187
+ "name": "PenaltyTaken",
188
+ "type": "event"
189
+ },
190
+ {
191
+ "anonymous": false,
192
+ "inputs": [
193
+ {
194
+ "indexed": true,
195
+ "internalType": "address",
196
+ "name": "implementation",
197
+ "type": "address"
198
+ }
199
+ ],
200
+ "name": "Upgraded",
201
+ "type": "event"
202
+ },
203
+ {
204
+ "inputs": [],
205
+ "name": "REQUIRED_BOND",
206
+ "outputs": [
207
+ {
208
+ "internalType": "uint256",
209
+ "name": "",
210
+ "type": "uint256"
211
+ }
212
+ ],
213
+ "stateMutability": "view",
214
+ "type": "function"
215
+ },
216
+ {
217
+ "inputs": [],
218
+ "name": "UPGRADE_INTERFACE_VERSION",
219
+ "outputs": [
220
+ {
221
+ "internalType": "string",
222
+ "name": "",
223
+ "type": "string"
224
+ }
225
+ ],
226
+ "stateMutability": "view",
227
+ "type": "function"
228
+ },
229
+ {
230
+ "inputs": [
231
+ {
232
+ "internalType": "address",
233
+ "name": "operator",
234
+ "type": "address"
235
+ }
236
+ ],
237
+ "name": "activeKeysOf",
238
+ "outputs": [
239
+ {
240
+ "internalType": "uint32",
241
+ "name": "",
242
+ "type": "uint32"
243
+ }
244
+ ],
245
+ "stateMutability": "view",
246
+ "type": "function"
247
+ },
248
+ {
249
+ "inputs": [],
250
+ "name": "activeTimeCap",
251
+ "outputs": [
252
+ {
253
+ "internalType": "uint256",
254
+ "name": "",
255
+ "type": "uint256"
256
+ }
257
+ ],
258
+ "stateMutability": "view",
259
+ "type": "function"
260
+ },
261
+ {
262
+ "inputs": [
263
+ {
264
+ "internalType": "address",
265
+ "name": "operator",
266
+ "type": "address"
267
+ },
268
+ {
269
+ "internalType": "uint256",
270
+ "name": "tokenAmount",
271
+ "type": "uint256"
272
+ },
273
+ {
274
+ "internalType": "uint256",
275
+ "name": "tokenShares",
276
+ "type": "uint256"
277
+ },
278
+ {
279
+ "internalType": "uint256",
280
+ "name": "depositFee",
281
+ "type": "uint256"
282
+ },
283
+ {
284
+ "internalType": "uint64",
285
+ "name": "rateBPS",
286
+ "type": "uint64"
287
+ }
288
+ ],
289
+ "name": "addBond",
290
+ "outputs": [],
291
+ "stateMutability": "nonpayable",
292
+ "type": "function"
293
+ },
294
+ {
295
+ "inputs": [],
296
+ "name": "authority",
297
+ "outputs": [
298
+ {
299
+ "internalType": "address",
300
+ "name": "",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "stateMutability": "view",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "address",
311
+ "name": "operator",
312
+ "type": "address"
313
+ }
314
+ ],
315
+ "name": "bondSharesOf",
316
+ "outputs": [
317
+ {
318
+ "internalType": "uint256",
319
+ "name": "",
320
+ "type": "uint256"
321
+ }
322
+ ],
323
+ "stateMutability": "view",
324
+ "type": "function"
325
+ },
326
+ {
327
+ "inputs": [
328
+ {
329
+ "internalType": "address",
330
+ "name": "operator",
331
+ "type": "address"
332
+ }
333
+ ],
334
+ "name": "bondTokensOf",
335
+ "outputs": [
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "",
339
+ "type": "uint256"
340
+ }
341
+ ],
342
+ "stateMutability": "view",
343
+ "type": "function"
344
+ },
345
+ {
346
+ "inputs": [
347
+ {
348
+ "internalType": "address",
349
+ "name": "operator",
350
+ "type": "address"
351
+ }
352
+ ],
353
+ "name": "excessKeyBondedCapacity",
354
+ "outputs": [
355
+ {
356
+ "internalType": "uint32",
357
+ "name": "excessKeys",
358
+ "type": "uint32"
359
+ }
360
+ ],
361
+ "stateMutability": "view",
362
+ "type": "function"
363
+ },
364
+ {
365
+ "inputs": [
366
+ {
367
+ "internalType": "bytes32",
368
+ "name": "id",
369
+ "type": "bytes32"
370
+ }
371
+ ],
372
+ "name": "getKey",
373
+ "outputs": [
374
+ {
375
+ "components": [
376
+ {
377
+ "internalType": "address",
378
+ "name": "operator",
379
+ "type": "address"
380
+ },
381
+ {
382
+ "internalType": "bytes",
383
+ "name": "pubkey",
384
+ "type": "bytes"
385
+ },
386
+ {
387
+ "internalType": "bytes",
388
+ "name": "signature",
389
+ "type": "bytes"
390
+ },
391
+ {
392
+ "internalType": "enum KeyStatus",
393
+ "name": "status",
394
+ "type": "uint8"
395
+ },
396
+ {
397
+ "internalType": "uint256",
398
+ "name": "activeTime",
399
+ "type": "uint256"
400
+ }
401
+ ],
402
+ "internalType": "struct ValidatorKey",
403
+ "name": "key",
404
+ "type": "tuple"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [],
412
+ "name": "getNextPendingKey",
413
+ "outputs": [
414
+ {
415
+ "internalType": "bool",
416
+ "name": "found",
417
+ "type": "bool"
418
+ },
419
+ {
420
+ "internalType": "bytes32",
421
+ "name": "id",
422
+ "type": "bytes32"
423
+ },
424
+ {
425
+ "components": [
426
+ {
427
+ "internalType": "address",
428
+ "name": "operator",
429
+ "type": "address"
430
+ },
431
+ {
432
+ "internalType": "bytes",
433
+ "name": "pubkey",
434
+ "type": "bytes"
435
+ },
436
+ {
437
+ "internalType": "bytes",
438
+ "name": "signature",
439
+ "type": "bytes"
440
+ },
441
+ {
442
+ "internalType": "enum KeyStatus",
443
+ "name": "status",
444
+ "type": "uint8"
445
+ },
446
+ {
447
+ "internalType": "uint256",
448
+ "name": "activeTime",
449
+ "type": "uint256"
450
+ }
451
+ ],
452
+ "internalType": "struct ValidatorKey",
453
+ "name": "pubkey",
454
+ "type": "tuple"
455
+ }
456
+ ],
457
+ "stateMutability": "nonpayable",
458
+ "type": "function"
459
+ },
460
+ {
461
+ "inputs": [
462
+ {
463
+ "internalType": "address",
464
+ "name": "_token",
465
+ "type": "address"
466
+ },
467
+ {
468
+ "internalType": "address",
469
+ "name": "manager",
470
+ "type": "address"
471
+ }
472
+ ],
473
+ "name": "initialize",
474
+ "outputs": [],
475
+ "stateMutability": "nonpayable",
476
+ "type": "function"
477
+ },
478
+ {
479
+ "inputs": [
480
+ {
481
+ "internalType": "uint256",
482
+ "name": "_activeTimeCap",
483
+ "type": "uint256"
484
+ },
485
+ {
486
+ "components": [
487
+ {
488
+ "internalType": "address",
489
+ "name": "account",
490
+ "type": "address"
491
+ },
492
+ {
493
+ "internalType": "uint256",
494
+ "name": "totalShares",
495
+ "type": "uint256"
496
+ },
497
+ {
498
+ "internalType": "uint256",
499
+ "name": "totalTokens",
500
+ "type": "uint256"
501
+ }
502
+ ],
503
+ "internalType": "struct V2TokenToShareParams[]",
504
+ "name": "changes",
505
+ "type": "tuple[]"
506
+ },
507
+ {
508
+ "components": [
509
+ {
510
+ "internalType": "address",
511
+ "name": "operator",
512
+ "type": "address"
513
+ },
514
+ {
515
+ "internalType": "bytes",
516
+ "name": "pubkey",
517
+ "type": "bytes"
518
+ },
519
+ {
520
+ "internalType": "bytes",
521
+ "name": "signature",
522
+ "type": "bytes"
523
+ },
524
+ {
525
+ "internalType": "enum KeyStatus",
526
+ "name": "status",
527
+ "type": "uint8"
528
+ },
529
+ {
530
+ "internalType": "uint256",
531
+ "name": "activeTime",
532
+ "type": "uint256"
533
+ }
534
+ ],
535
+ "internalType": "struct ValidatorKey[]",
536
+ "name": "keys",
537
+ "type": "tuple[]"
538
+ }
539
+ ],
540
+ "name": "initializeV2",
541
+ "outputs": [],
542
+ "stateMutability": "nonpayable",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [],
547
+ "name": "isConsumingScheduledOp",
548
+ "outputs": [
549
+ {
550
+ "internalType": "bytes4",
551
+ "name": "",
552
+ "type": "bytes4"
553
+ }
554
+ ],
555
+ "stateMutability": "view",
556
+ "type": "function"
557
+ },
558
+ {
559
+ "inputs": [
560
+ {
561
+ "internalType": "bytes32",
562
+ "name": "pubkeyHash",
563
+ "type": "bytes32"
564
+ }
565
+ ],
566
+ "name": "keyDeposited",
567
+ "outputs": [],
568
+ "stateMutability": "nonpayable",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [
573
+ {
574
+ "internalType": "bytes32",
575
+ "name": "pubkeyHash",
576
+ "type": "bytes32"
577
+ }
578
+ ],
579
+ "name": "keySlashed",
580
+ "outputs": [],
581
+ "stateMutability": "nonpayable",
582
+ "type": "function"
583
+ },
584
+ {
585
+ "inputs": [
586
+ {
587
+ "internalType": "bytes32",
588
+ "name": "pubkeyHash",
589
+ "type": "bytes32"
590
+ },
591
+ {
592
+ "internalType": "uint256",
593
+ "name": "penalties",
594
+ "type": "uint256"
595
+ },
596
+ {
597
+ "internalType": "uint256",
598
+ "name": "activeTime",
599
+ "type": "uint256"
600
+ }
601
+ ],
602
+ "name": "keyWithdrawn",
603
+ "outputs": [],
604
+ "stateMutability": "nonpayable",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [
609
+ {
610
+ "internalType": "address",
611
+ "name": "",
612
+ "type": "address"
613
+ }
614
+ ],
615
+ "name": "ops",
616
+ "outputs": [
617
+ {
618
+ "internalType": "uint256",
619
+ "name": "bondShares",
620
+ "type": "uint256"
621
+ },
622
+ {
623
+ "internalType": "uint256",
624
+ "name": "penalties",
625
+ "type": "uint256"
626
+ },
627
+ {
628
+ "internalType": "uint256",
629
+ "name": "depositFees",
630
+ "type": "uint256"
631
+ },
632
+ {
633
+ "internalType": "uint256",
634
+ "name": "avgRateBPS",
635
+ "type": "uint256"
636
+ }
637
+ ],
638
+ "stateMutability": "view",
639
+ "type": "function"
640
+ },
641
+ {
642
+ "inputs": [
643
+ {
644
+ "internalType": "bytes32",
645
+ "name": "commitmentHash",
646
+ "type": "bytes32"
647
+ }
648
+ ],
649
+ "name": "preregisterKey",
650
+ "outputs": [],
651
+ "stateMutability": "nonpayable",
652
+ "type": "function"
653
+ },
654
+ {
655
+ "inputs": [],
656
+ "name": "proxiableUUID",
657
+ "outputs": [
658
+ {
659
+ "internalType": "bytes32",
660
+ "name": "",
661
+ "type": "bytes32"
662
+ }
663
+ ],
664
+ "stateMutability": "view",
665
+ "type": "function"
666
+ },
667
+ {
668
+ "inputs": [
669
+ {
670
+ "internalType": "bytes32",
671
+ "name": "",
672
+ "type": "bytes32"
673
+ }
674
+ ],
675
+ "name": "pubkeyCommitments",
676
+ "outputs": [
677
+ {
678
+ "internalType": "address",
679
+ "name": "",
680
+ "type": "address"
681
+ }
682
+ ],
683
+ "stateMutability": "view",
684
+ "type": "function"
685
+ },
686
+ {
687
+ "inputs": [
688
+ {
689
+ "internalType": "bytes",
690
+ "name": "pubkey",
691
+ "type": "bytes"
692
+ },
693
+ {
694
+ "internalType": "bytes32",
695
+ "name": "salt",
696
+ "type": "bytes32"
697
+ },
698
+ {
699
+ "internalType": "bytes",
700
+ "name": "signature",
701
+ "type": "bytes"
702
+ }
703
+ ],
704
+ "name": "registerKey",
705
+ "outputs": [],
706
+ "stateMutability": "nonpayable",
707
+ "type": "function"
708
+ },
709
+ {
710
+ "inputs": [
711
+ {
712
+ "internalType": "address",
713
+ "name": "operator",
714
+ "type": "address"
715
+ }
716
+ ],
717
+ "name": "reservedBond",
718
+ "outputs": [
719
+ {
720
+ "internalType": "uint256",
721
+ "name": "",
722
+ "type": "uint256"
723
+ }
724
+ ],
725
+ "stateMutability": "view",
726
+ "type": "function"
727
+ },
728
+ {
729
+ "inputs": [
730
+ {
731
+ "internalType": "address",
732
+ "name": "newAuthority",
733
+ "type": "address"
734
+ }
735
+ ],
736
+ "name": "setAuthority",
737
+ "outputs": [],
738
+ "stateMutability": "nonpayable",
739
+ "type": "function"
740
+ },
741
+ {
742
+ "inputs": [
743
+ {
744
+ "internalType": "uint256",
745
+ "name": "",
746
+ "type": "uint256"
747
+ }
748
+ ],
749
+ "name": "statusCounts",
750
+ "outputs": [
751
+ {
752
+ "internalType": "uint32",
753
+ "name": "",
754
+ "type": "uint32"
755
+ }
756
+ ],
757
+ "stateMutability": "view",
758
+ "type": "function"
759
+ },
760
+ {
761
+ "inputs": [],
762
+ "name": "token",
763
+ "outputs": [
764
+ {
765
+ "internalType": "contract IRewardsERC20",
766
+ "name": "",
767
+ "type": "address"
768
+ }
769
+ ],
770
+ "stateMutability": "view",
771
+ "type": "function"
772
+ },
773
+ {
774
+ "inputs": [],
775
+ "name": "totalActiveKeys",
776
+ "outputs": [
777
+ {
778
+ "internalType": "uint32",
779
+ "name": "",
780
+ "type": "uint32"
781
+ }
782
+ ],
783
+ "stateMutability": "view",
784
+ "type": "function"
785
+ },
786
+ {
787
+ "inputs": [
788
+ {
789
+ "internalType": "address",
790
+ "name": "operator",
791
+ "type": "address"
792
+ },
793
+ {
794
+ "internalType": "bytes32[]",
795
+ "name": "pkHashes",
796
+ "type": "bytes32[]"
797
+ },
798
+ {
799
+ "internalType": "address payable",
800
+ "name": "to",
801
+ "type": "address"
802
+ }
803
+ ],
804
+ "name": "unlock",
805
+ "outputs": [],
806
+ "stateMutability": "nonpayable",
807
+ "type": "function"
808
+ },
809
+ {
810
+ "inputs": [
811
+ {
812
+ "internalType": "bytes32",
813
+ "name": "pubkeyHash",
814
+ "type": "bytes32"
815
+ }
816
+ ],
817
+ "name": "unregisterKey",
818
+ "outputs": [],
819
+ "stateMutability": "nonpayable",
820
+ "type": "function"
821
+ },
822
+ {
823
+ "inputs": [
824
+ {
825
+ "internalType": "address",
826
+ "name": "newImplementation",
827
+ "type": "address"
828
+ },
829
+ {
830
+ "internalType": "bytes",
831
+ "name": "data",
832
+ "type": "bytes"
833
+ }
834
+ ],
835
+ "name": "upgradeToAndCall",
836
+ "outputs": [],
837
+ "stateMutability": "payable",
838
+ "type": "function"
839
+ },
840
+ {
841
+ "inputs": [
842
+ {
843
+ "internalType": "bytes32",
844
+ "name": "",
845
+ "type": "bytes32"
846
+ }
847
+ ],
848
+ "name": "validatorKeys",
849
+ "outputs": [
850
+ {
851
+ "internalType": "address",
852
+ "name": "operator",
853
+ "type": "address"
854
+ },
855
+ {
856
+ "internalType": "bytes",
857
+ "name": "pubkey",
858
+ "type": "bytes"
859
+ },
860
+ {
861
+ "internalType": "bytes",
862
+ "name": "signature",
863
+ "type": "bytes"
864
+ },
865
+ {
866
+ "internalType": "enum KeyStatus",
867
+ "name": "status",
868
+ "type": "uint8"
869
+ },
870
+ {
871
+ "internalType": "uint256",
872
+ "name": "activeTime",
873
+ "type": "uint256"
874
+ }
875
+ ],
876
+ "stateMutability": "view",
877
+ "type": "function"
878
+ },
879
+ {
880
+ "inputs": [],
881
+ "name": "version",
882
+ "outputs": [
883
+ {
884
+ "internalType": "string",
885
+ "name": "",
886
+ "type": "string"
887
+ }
888
+ ],
889
+ "stateMutability": "pure",
890
+ "type": "function"
891
+ }
892
+ ],
893
+ "bytecode": "0x60a0806040523460295730608052613b76908161002f8239608051818181611d9701526139fb0152f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c908163040d765b14612ba25750806310e7807c146129aa57806312aaac7014612962578063161531011461293e5780631a8843db146128a85780631adf24521461277657806325e51abc146125ac5780632d25034d1461235b5780632f820f291461233d578063485cc955146121815780634f1ef28614611fb15780634fde1e1714611e0157806352d1902d14611d8457806354fd4d5014611d415780635894fa2514611ca55780637a9e5e4b14611c25578063805d5ea414611672578063809a42bb1461164c578063851c28791461160c578063875a142514610e1a5780638fa4af4c146106135780638fb36037146105c0578063986016541461058d5780639cffe6ee14610554578063a7c32102146104f8578063ad3cb1cc146104b2578063bb69d1e01461040f578063bf7e214f146103d9578063c22dc3c0146103a7578063c80c2c2d1461037b578063ee8beb2f146101aa5763fc0c546a1461018157600080fd5b346101a757806003193601126101a757546040516001600160a01b039091168152602090f35b80fd5b50346101a757806003193601126101a75780816101c5612fae565b906004546080916001600160801b0382818094169060801c0316805b610210575b868661020c87604051938493151584526020840152606060408401526060830190612c80565b0390f35b60045483811690851c81146103695761023c816001600160801b03166000526005602052604060002090565b54600061025c836001600160801b03166000526005602052604060002090565b55600480546fffffffffffffffffffffffffffffffff19166001938401871617905580845260026020818152604086208054909291906001600160a01b03168015158061033d575b6102b5575b505050505050806101e1565b90859c9996939a97949b989591855252604083206102d48c8201612f18565b929054910154159182610329575b50501561030857505050505050506102fc61020c91612fdb565b929192903880806101e6565b92959850929550929561031a9061391e565b600019018038808080806102a9565b63ffffffff925060031b1c161538806102e2565b5060ff600385015416600581101561035557156102a4565b634e487b7160e01b89526021600452602489fd5b634e487b71835260316020526024601cfd5b50346101a75760203660031901126101a757602061039f61039a612bf3565b613472565b604051908152f35b50346101a75760203660031901126101a75760206103cb6103c6612bf3565b6131c0565b63ffffffff60405191168152f35b50346101a757806003193601126101a757600080516020613ac1833981519152546040516001600160a01b039091168152602090f35b50346101a757602090816003193601126101a75761042b612bf3565b60018060a01b03808354169116825260018352826040832054602460405180948193631bfac16f60e01b835260048301525afa9182156104a65791610474575b50604051908152f35b90508181813d831161049f575b61048b8183612d5c565b8101031261049a57513861046b565b600080fd5b503d610481565b604051903d90823e3d90fd5b50346101a757806003193601126101a75761020c6040516104d281612d41565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612c1d565b50346101a75760203660031901126101a7576080906040906001600160a01b03610520612bf3565b1681526001602052208054906002810154906004600382015491015491604051938452602084015260408301526060820152f35b50346101a75760203660031901126101a7576020906040906001600160a01b0361057c612bf3565b168152600183522054604051908152f35b50346101a75760203660031901126101a757602090600435815260038252604060018060a01b0391205416604051908152f35b50346101a757806003193601126101a757600080516020613ac18339815191525460a01c60ff161561060b57506020638fb3603760e01b5b6040516001600160e01b03199091168152f35b6020906105f8565b50346101a75760603660031901126101a7576024356001600160401b038111610dc05736602382011215610dc057806004013561064f81612f53565b9161065d6040519384612d5c565b8183526024606060208501930282010190368211610db857602401915b818310610dc4575050506001600160401b0360443511610dc057366023604435011215610dc05760443560040135916106b283612f53565b926106c06040519485612d5c565b80845260208401903660248260051b604435010111610dbc57602460443501915b60248260051b60443501018310610cda57505050600080516020613b218339815191525460ff8160401c168015610cc6575b610cb45768ffffffffffffffffff19166801000000000000000217600080516020613b21833981519152556004356006555b60078054600581101561079857600160401b8110156107825761076d91600182019055612eea565b63ffffffff82549160031b1b19169055610745565b634e487b7160e01b600052604160045260246000fd5b828585825b8151811015610861576107b081836131ac565b5180516001600160a01b03168552600160205260408520906107d182613868565b8154604082015181036107ed575060200151905560010161079d565b6108285760405162461bcd60e51b815260206004820152600f60248201526e1058d8dbdd5b9d139bdd119bdd5b99608a1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526011602482015270092dcd2e8a8ded6cadc9ad2e6dac2e8c6d607b1b6044820152606490fd5b5050815b8151811015610c5e5761087881836131ac565b5160208101516040516108a98161089b6020820194602086526040830190612c1d565b03601f198101835282612d5c565b519020808552600260205260408520546001600160a01b0316610c195784526002602090815260408520825181546001600160a01b0319166001600160a01b0391909116178155908201518051906001600160401b038211610b63576109126001840154612cd9565b601f8111610be6575b50602090601f8311600114610b775761094c9291889183610aab575b50508160011b916000199060031b1c19161790565b60018201555b60408201518051906001600160401b038211610b63576109756002840154612cd9565b601f8111610b25575b50602090601f8311600114610ab6576109ae9291889183610aab5750508160011b916000199060031b1c19161790565b60028201555b60608201516005811015610a97576109cf906003830161315a565b60808201516004919091015580516001600160a01b031684526001602052604084206109fa81613868565b6060820151906005821015610a975791610a1c6060926001610a4f9501612f30565b939063ffffffff94610a358683548360031b1c16613172565b9063ffffffff8084549260031b9316831b921b1916179055565b01516005811015610a835760019291610a35610a6d610a7d93612eea565b91909283548360031b1c16613172565b01610865565b634e487b7160e01b85526021600452602485fd5b634e487b7160e01b86526021600452602486fd5b015190508880610937565b9190600284018852602088209088935b601f1984168510610b0a576001945083601f19811610610af1575b505050811b0160028201556109b4565b015160001960f88460031b161c19169055878080610ae1565b81810151835560209485019460019093019290910190610ac6565b610b539060028501895260208920601f850160051c81019160208610610b59575b601f0160051c0190613143565b8761097e565b9091508190610b46565b634e487b7160e01b87526041600452602487fd5b9190600184018852602088209088935b601f1984168510610bcb576001945083601f19811610610bb2575b505050811b016001820155610952565b015160001960f88460031b161c19169055878080610ba2565b81810151835560209485019460019093019290910190610b87565b610c139060018501895260208920601f850160051c81019160208610610b5957601f0160051c0190613143565b8761091b565b60405162461bcd60e51b815260206004820152601960248201527f5075626b657920616c72656164792072656769737465726564000000000000006044820152606490fd5b8260ff60401b19600080516020613b218339815191525416600080516020613b21833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b60405163f92ee8a960e01b8152600490fd5b5060026001600160401b0382161015610713565b82356001600160401b038111610db85760a0604435820136036023190112610db85760405190610d0982612d13565b610d196024826044350101612c09565b82526001600160401b03604482813501013511610db457610d47366044803584019081013501602401612e74565b60208301526001600160401b0360648260443501013511610db457610d79366044358301606481013501602401612e74565b60408301526084816044350101356005811015610db05760608301526044350160a4013560808201528152602092830192016106e1565b8680fd5b8580fd5b8480fd5b8280fd5b5080fd5b606083360312610db8576040519060608201908282106001600160401b0383111761078257606092602092604052610dfb86612c09565b815282860135838201526040860135604082015281520192019161067a565b50346101a75760603660031901126101a757610e34612bf3565b6001600160401b038060243511610dbc57366023602435011215610dbc576024356004013511610dc05736602480356004013560051b8135010111610dc057604435906001600160a01b0382168203610dbc576002600080516020613b0183398151915254146115fa576002600080516020613b0183398151915255610eba36336136f7565b6001600160a01b0381168352600160205260408320600481015484939190849081905b602435600401358210611369575050610ef584613472565b9160018060a01b038754169260208254602460405180978193631bfac16f60e01b835260048301525afa93841561135e578894611326575b508381116112e15783610f41828a9661319f565b8811801561121c575b611209575b5050600281019586548082116000146111f2575083610f708854809361319f565b9197555b6003820192808454116000146111e957610f8f90845461319f565b83555b8254808211156111c95750610fb48491610fae8554809261319f565b9861303d565b92555b82546001600160a01b03166020610fce848961303d565b6024604051809481936388d7f8c960e01b835260048301525afa8015611125578490611195575b6110019150825461319f565b905580611130575b50908361105e575b50506040519182526001600160a01b0316907f1ceab64053cad6d92ea3504e273effdf7a1b1006f7e8506741551d4f05bc74a690602090a26001600080516020613b018339815191525580f35b815460405163a9059cbb60e01b81526001600160a01b0392831660048201526024810186905292602092849260449284929091165af19081156111255784916110e6575b50156110af578238611011565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b90506020813d60201161111d575b8161110160209383612d5c565b810103126111195751801515810361111957386110a2565b8380fd5b3d91506110f4565b6040513d86823e3d90fd5b81546001600160a01b0316803b15610dbc576044839260405194859384926304c5978b60e51b845230600485015260248401525af1801561118a57611177575b8490611009565b61118390949194612d2e565b9238611170565b6040513d87823e3d90fd5b506020813d6020116111c1575b816111af60209383612d5c565b81010312611119576110019051610ff5565b3d91506111a2565b926111db826111e2959993949961319f565b905561303d565b8194610fb7565b50838355610f92565b81611200919892939861319f565b90559482610f74565b61121492975061319f565b943880610f4f565b5063ffffffff61122e60018501612ebf565b90549060031b1c1615806112af575b8061128f575b8015610f4a5750909192935060018301546004101561127b57908291600189959401855263ffffffff602086205460801c1615610f4a565b634e487b7160e01b88526032600452602488fd5b5063ffffffff6112a160018501612f18565b90549060031b1c1615611243565b50909192935060018301546003101561127b57908291600189959401855263ffffffff602086205460601c161561123d565b60405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420617661696c61626c6520626f6e6400000000006044820152606490fd5b9093506020813d602011611356575b8161134260209383612d5c565b8101031261135257519238610f2d565b8780fd5b3d9150611335565b6040513d8a823e3d90fd5b909160248360051b813501013588526002602052604088209661139e60018060a01b03881660018060a01b038a541614613093565b6113c66113ad60018a01612d7d565b60248660051b81350101359060208151910120146130df565b60ff60038901541660058110156115e657600381149081156115db575b5015611588576801bc16d674ec8000008101811161156c576801bc16d674ec80000060049101970154600654808211611580575b506801bc16d674ec80000083810204830361156c5761144b61144482856801bc16d674ec80000002613060565b9184613060565b64496cebb8008181018111611558579161146b9161147194930190613073565b9061303d565b60248035600585901b010135885260026020526040882080549193916001600160a01b03166114a1811515612f6a565b895260016020526003600160408b200191019060ff825416906005821015611544576114d360ff93926114e892612f30565b610a3563ffffffff83548360031b1c16613852565b5416600581101561035557906115026114d3600193612eea565b60248160051b81350101358952600260205288600460408220828155611529858201613979565b61153560028201613979565b82600382015501550190610edd565b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8b52601160045260248bfd5b634e487b7160e01b89526011600452602489fd5b905038611417565b60405162461bcd60e51b815260206004820152602560248201527f4b6579206d7573742062652077697468647261776e206f7220756e72656769736044820152641d195c995960da1b6064820152608490fd5b6004915014386113e3565b634e487b7160e01b8a52602160045260248afd5b604051633ee5aeb560e01b8152600490fd5b50346101a75760203660031901126101a757600435906007548210156101a757602063ffffffff61163c84612eea565b9190546040519260031b1c168152f35b50346101a757806003193601126101a75763ffffffff6020915460a01c16604051908152f35b50346101a75760603660031901126101a7576004356001600160401b038111610dc0576116a3903690600401612e92565b91906044356001600160401b038111610dbc576116c4903690600401612e92565b6116d192919236336136f7565b60308503611be0576040516020810190308252336040820152608060608201526117198161170360a082018a88613122565b602435608083015203601f198101835282612d5c565b519020808552600360205260408520546001600160a01b039391903390851603611b90578552600360205260408520906bffffffffffffffffffffffff60a01b9182815416905560405160208101906020825261177e8161089b604082018c87613122565b51902094858752600260205284604088205416610c195733875260016020526002604088200154611b405763ffffffff6117b7336131c0565b1615611af1576117db6117ea92604051996117d18b612d13565b338b523691612e3d565b93602089019485523691612e3d565b60408701528460608701528460808701528385526002602052604085209286511690835416178255518051906001600160401b038211611a3b576118316001840154612cd9565b601f8111611abe575b50602090601f8311600114611a4f5761186a92918691836119935750508160011b916000199060031b1c19161790565b60018201555b60408401518051906001600160401b038211611a3b576118936002840154612cd9565b601f8111611a08575b50602090601f831160011461199e576118cc92918691836119935750508160011b916000199060031b1c19161790565b60028201555b6060840151600581101561197f57608061190094956118f66004936003860161315a565b015191015561391e565b338152600160205261192f61191a60016040842001612ebf565b610a3563ffffffff83548360031b1c16613172565b6007541561196b5760078152600080516020613ae1833981519152805463ffffffff61195c818316613172565b169063ffffffff191617905580f35b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b84526021600452602484fd5b015190503880610937565b600284018652602086209190601f198416875b8181106119f057509084600195949392106119d7575b505050811b0160028201556118d2565b015160001960f88460031b161c191690553880806119c7565b929360206001819287860151815501950193016119b1565b611a359060028501875260208720601f850160051c81019160208610610b5957601f0160051c0190613143565b3861189c565b634e487b7160e01b85526041600452602485fd5b9190600184018652602086209086935b601f1984168510611aa3576001945083601f19811610611a8a575b505050811b016001820155611870565b015160001960f88460031b161c19169055388080611a7a565b81810151835560209485019460019093019290910190611a5f565b611aeb9060018501875260208720601f850160051c81019160208610610b5957601f0160051c0190613143565b3861183a565b60405162461bcd60e51b815260206004820152602160248201527f4e6f2065786365737320626f6e64656420636170616369747920666f72206b656044820152607960f81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f4f70657261746f7220686173206f75747374616e64696e672070656e616c7469604482015261657360f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f4e6f74207265676973746572656420666f72207468697320636f6d6d69746d656044820152611b9d60f21b6064820152608490fd5b60405162461bcd60e51b815260206004820152601760248201527f5075626b6579206d7573742062652034382062797465730000000000000000006044820152606490fd5b50346101a75760203660031901126101a757611c3f612bf3565b600080516020613ac1833981519152546001600160a01b039081163303611c8e57813b15611c745750611c71906138c5565b80f35b6040516361798f2f60e11b81529116600482015260249150fd5b60405162d1953b60e31b8152336004820152602490fd5b50346101a75760203660031901126101a757600435611cc436336136f7565b808252600360205260408220546001600160a01b0316611cfc57815260036020526040812080546001600160a01b0319163317905580f35b60405162461bcd60e51b815260206004820152601d60248201527f436f6d6d69746d656e7420616c726561647920726567697374657265640000006044820152606490fd5b50346101a757806003193601126101a75761020c604051611d6181612d41565b60028152613b1960f11b6020820152604051918291602083526020830190612c1d565b50346101a757806003193601126101a7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611def5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b50346101a757602080600319360112610dc05760043590611e2236336136f7565b81835260028152604083209160ff600360018060a01b0394611e48868254161515612f6a565b0154166005811015610a8357600103611f6e57906001918452600281526040842092835416611e78811515612f6a565b84525260036001604084200191019060ff825416600581101561197f57611ec782611ea9611ed893611ec295612f30565b949063ffffffff95610a358783548360031b1c16613852565b612f18565b610a358483548360031b1c16613172565b60ff825416600581101561197f57611ef2611f0391612eea565b610a358483548360031b1c16613852565b60075460021015611f5a5760078352600080516020613ae18339815191529063ffffffff60401b611f3a8354928360401c16613172565b60401b169063ffffffff60401b1916179055600260ff1982541617905580f35b634e487b7160e01b83526032600452602483fd5b6064826040519062461bcd60e51b825280600483015260248201527f4b6579206d7573742062652061637469766520746f20626520736c61736865646044820152fd5b5060403660031901126101a757611fc6612bf3565b6024356001600160401b038111610dbc57611fe5903690600401612e74565b611fed6139f1565b611ff736336136f7565b611fff6139f1565b6040516352d1902d60e01b81526001600160a01b038316926020918281600481885afa869181612152575b5061204857604051634c9c8ce360e01b815260048101869052602490fd5b9385947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9081810361213a5750823b156121215780546001600160a01b0319168217905560405185917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a284511561210457508084846120f796519101845af4903d156120fb573d6120db81612e22565b906120e96040519283612d5c565b81528581943d92013e613a5d565b5080f35b60609250613a5d565b935050505034612112575080f35b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d831161217a575b61216a8183612d5c565b81010312610db05751903861202a565b503d612160565b50346101a75760403660031901126101a75761219b612bf3565b6024356001600160a01b03808216820361111957600080516020613b2183398151915292835460ff8160401c1615936001600160401b03821680159081612335575b600114908161232b575b159081612322575b50610cb45767ffffffffffffffff19821660011786556122359185612303575b506122186139c2565b6122206139c2565b6122286139c2565b6122306139c2565b6138c5565b61223d6139c2565b6122456139c2565b61224d6139c2565b6001600080516020613b01833981519152556122676139c2565b1680156122be5783546001600160a01b031916178355612285575080f35b60ff60401b1981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606490fd5b68ffffffffffffffffff1916680100000000000000011786553861220f565b905015386121ef565b303b1591506121e7565b8691506121dd565b50346101a757806003193601126101a7576020600654604051908152f35b50346101a75760603660031901126101a75760043590602461237d36336136f7565b828252602060028152604083209360039060ff828701541660058110156125995760010361254a576123c1816123b560018901612d7d565b858151910120146130df565b84526002825260408420805490956001600160a01b0392909183166123e7811515612f6a565b865260018452806001604088200197019060ff8254169760058910156125375761241461242c9982612f30565b999063ffffffff9a610a358c835483881b1c16613852565b805482101561252457875284872080549861244b818b60601c16613172565b9163ffffffff60601b199a8b63ffffffff60601b809560601b16911617905560ff84541660058110156125115761248461249491612eea565b610a3584835483891b1c16613852565b6007548310156124fe57889960076001999a52600080516020613ae1833981519152926124c78454938460601c16613172565b60601b16911617905560ff19825416179055604435600482015554168452526124f9600260408420019135825461303d565b905580f35b634e487b7160e01b895260326004528789fd5b634e487b7160e01b8a526021600452888afd5b634e487b7160e01b885260326004528688fd5b634e487b7160e01b885260216004528688fd5b60405162461bcd60e51b8152600481018490526022818601527f4b6579206d7573742062652061637469766520746f20626520776974686472616044820152613bb760f11b6064820152608490fd5b634e487b7160e01b865260216004528486fd5b50346101a757602080600319360112610dc057600435906125cd36336136f7565b81835260028152604083209160ff600360018060a01b03946125f3338783541614613093565b0154166005811015610a835761272757835260028152604083209182541661261c811515612f6a565b83526001815260036001604085200192019160ff8354166005811015610a83579061264b612664939282612f30565b939063ffffffff94610a358683548360031b1c16613852565b8054600410156127135784528320908154612683828260801c16613172565b9263ffffffff60801b19918263ffffffff60801b809660801b16911617905560ff8454166005811015610a97576126bc6126cd91612eea565b610a358583548360031b1c16613852565b600754600410156127135760078552600080516020613ae1833981519152926126fc8454938460801c16613172565b60801b169116179055600460ff1982541617905580f35b634e487b7160e01b85526032600452602485fd5b60405162461bcd60e51b815260048101839052602160248201527f4b6579206d7573742062652070656e64696e6720746f2062652072656d6f76656044820152601960fa1b6064820152608490fd5b50346101a75760a03660031901126101a757612790612bf3565b60243590604435608435926001600160401b038416809403610db8576127b636336136f7565b8115158061289f575b1561285a5761146b6020927ff6a4fac3c715c43d37e594d3f60bb5e3782af5a2aac2783711964a70277b60589460018060a01b0316958688526001855261284d604089209261280d84613868565b61284884549361281d838661303d565b96879360038801612831606435825461303d565b905561284260048901978854613060565b92613060565b613073565b905555604051908152a280f35b60405162461bcd60e51b815260206004820152601b60248201527f626f6e64206d7573742062652067726561746572207468616e203000000000006044820152606490fd5b508015156127bf565b50346101a75760203660031901126101a757600435815260026020526040902080546001600160a01b03166128df60018301612d7d565b916128ec60028201612d7d565b61293561292a600460ff6003860154169401549261291c604051978897885260a0602089015260a0880190612c1d565b908682036040880152612c1d565b926060850190612c5d565b60808301520390f35b50346101a757806003193601126101a75760206040516801bc16d674ec8000008152f35b50346101a75760203660031901126101a757612996604061020c92612985612fae565b506004358152600260205220612fdb565b604051918291602083526020830190612c80565b50346101a757602080600319360112610dc0576004356129ca36336136f7565b80835260028252604083209160018060a01b03916129ec838554161515612f6a565b60ff6003850154166005811015610a9757612b51578452600281526040842091825416612a1a811515612f6a565b84526001815260036001604086200192019160ff8354166005811015610a975790612a48612a619282612f30565b929063ffffffff93610a358583548360031b1c16613852565b805460011015612b3d578552818520805490612a808383861c16613172565b9067ffffffff0000000019928367ffffffff000000008094881b16911617905560ff8554166005811015612b2957612aba612acb91612eea565b610a358683548360031b1c16613852565b60075460011015612b155760078752600080516020613ae183398151915293612af985549485831c16613172565b901b169116179055600160ff1982541617905560044291015580f35b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b88526021600452602488fd5b634e487b7160e01b86526032600452602486fd5b60405162461bcd60e51b815260048101839052602360248201527f4b6579206d7573742062652070656e64696e6720746f206265206465706f73696044820152621d195960ea1b6064820152608490fd5b905034610dc0576020366003190112610dc0576001600160a01b03612bc5612bf3565b168252600160205260016040832001805460011015611f5a5760208363ffffffff928295522054831c168152f35b600435906001600160a01b038216820361049a57565b35906001600160a01b038216820361049a57565b919082519283825260005b848110612c49575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201612c28565b906005821015612c6a5752565b634e487b7160e01b600052602160045260246000fd5b9060018060a01b038251168152608080612cbe612cac602086015160a0602087015260a0860190612c1d565b60408601518582036040870152612c1d565b93612cd160608201516060860190612c5d565b015191015290565b90600182811c92168015612d09575b6020831014612cf357565b634e487b7160e01b600052602260045260246000fd5b91607f1691612ce8565b60a081019081106001600160401b0382111761078257604052565b6001600160401b03811161078257604052565b604081019081106001600160401b0382111761078257604052565b90601f801991011681019081106001600160401b0382111761078257604052565b90604051918260008254612d9081612cd9565b90818452602094600191600181169081600014612e005750600114612dc1575b505050612dbf92500383612d5c565b565b600090815285812095935091905b818310612de8575050612dbf9350820101388080612db0565b85548884018501529485019487945091830191612dcf565b92505050612dbf94925060ff191682840152151560051b820101388080612db0565b6001600160401b03811161078257601f01601f191660200190565b929192612e4982612e22565b91612e576040519384612d5c565b82948184528183011161049a578281602093846000960137010152565b9080601f8301121561049a57816020612e8f93359101612e3d565b90565b9181601f8401121561049a578235916001600160401b03831161049a576020838186019501011161049a57565b805415612ed457600052602060002090600090565b634e487b7160e01b600052603260045260246000fd5b90600754821015612ed4576007600052601c8260031c600080516020613ae1833981519152019260021b1690565b805460021015612ed457600052602060002090600890565b9190918054831015612ed457600052601c60206000208360031c019260021b1690565b6001600160401b0381116107825760051b60200190565b15612f7157565b60405162461bcd60e51b8152602060048201526015602482015274141d589ad95e481b9bdd081c9959da5cdd195c9959605a1b6044820152606490fd5b60405190612fbb82612d13565b600060808382815260606020820152606060408201528260608201520152565b90604051612fe881612d13565b82546001600160a01b0316815291829061300460018201612d7d565b602083015261301560028201612d7d565b604083015260ff6003820154166005811015612c6a5760809160049160608501520154910152565b9190820180921161304a57565b634e487b7160e01b600052601160045260246000fd5b8181029291811591840414171561304a57565b811561307d570490565b634e487b7160e01b600052601260045260246000fd5b1561309a57565b60405162461bcd60e51b815260206004820152601860248201527f4e6f74206f70657261746f72206f662074686973206b657900000000000000006044820152606490fd5b156130e657565b60405162461bcd60e51b81526020600482015260146024820152730a0eac4d6caf240d0c2e6d040dad2e6dac2e8c6d60631b6044820152606490fd5b908060209392818452848401376000828201840152601f01601f1916010190565b81811061314e575050565b60008155600101613143565b906005811015612c6a5760ff80198354169116179055565b90600163ffffffff8093160191821161304a57565b91909163ffffffff8080941691160191821161304a57565b9190820391821161304a57565b8051821015612ed45760209160051b010190565b9060009160009060018060a01b039182821681526001906020828152604094858320868051956131ef87612d13565b8254875280830185835191829485938383549182815201928b52838b20958b905b8260078301106133fe578561326c9854948484106133e8575b8484106133d0575b8484106133b6575b5083831061339d575b838310613384575b83831061336b575b838310613352575b505010613344575b5090500382612d5c565b8386015260046002820154918289880152600381015460608801520154608086015261333a57819083541693516024875180968193631bfac16f60e01b835260048301525afa94851561332f575081946132fa575b5050506132cd90613472565b908082106132d9575050565b63ffffffff9293506801bc16d674ec800000916132f59161319f565b041690565b909180939450813d8311613328575b6133138183612d5c565b810103126101a7575051906132cd38806132c1565b503d613309565b51913d9150823e3d90fd5b5090955050505050565b60e01c815201869038613262565b90919463ffffffff8560c01c168152019301388561325a565b81929563ffffffff8660a01c1681520194019085613252565b81929563ffffffff8660801c168152019401908561324a565b81929563ffffffff8660601c1681520194019085613242565b9563ffffffff868495981c168152019401908f8690613239565b85821c63ffffffff1687529581019592820192613231565b63ffffffff861687529581019592820192613229565b9384929650600893610100929689549163ffffffff9182841685528284821c16908501528183821c169084015260608183821c169084015260808183821c169084015260a08183821c169084015260c09082821c169083015260e090811c90820152019501920185938d918a949693613210565b60009060018060a01b0316815260016020908082526040918083852092845161349a81612d13565b84548152818501865190819481818793549485815201908b5289828c20948c5b88826007830110613684578561351798549484841061366e575b848410613656575b84841061363e575b50838310613625575b83831061360c575b8383106135f3575b8383106135da575b5050106135cc575b5090500384612d5c565b6080600485830196858852600281015489850152600381015460608501520154910152815111156127135763ffffffff938491015116908251805115612b3d5701516135669190841690613187565b90518051600210156135b857908260606135839301511690613187565b16906801bc16d674ec800000918281029281840414901517156135a4575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b84526032600452602484fd5b60e01c81520186903861350d565b90919463ffffffff8560c01c1681520193018885613505565b90919463ffffffff8560a01c16815201930188856134fd565b90919463ffffffff8560801c16815201930188856134f5565b90919463ffffffff8560601c16815201930188856134ed565b85901c63ffffffff168652909401930188858e6134e4565b85821c63ffffffff16875295810195928201926134dc565b63ffffffff8616875295810195928201926134d4565b92509350935061010060089286548d63ffffffff9081831684528d8284821c16908501528183821c169084015260608183821c169084015260808183821c169084015260a08183821c169084015260c09082821c169083015260e090811c908201520194019101928987938993956134ba565b600080516020613ac18339815191528054909290916001600160a01b03808416926004811061049a5760009260009384916040958691825196602088019163b700961360e01b8352169687602482015230604482015263ffffffff60e01b83351660648201526064815261376a81612d13565b828052826020525190895afa613841575b1561378a575b50505050505050565b63ffffffff161561382b5760ff60a01b19948516600160a01b178655833b1561049a57606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af19081156138215750613812575b50815416905538808080808080613781565b61381b90612d2e565b38613800565b513d6000823e3d90fd5b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c15029061377b565b63ffffffff908116600019019190821161304a57565b905b600180830180549060058210156138be57600160401b8210156138a9576138949282018155612f30565b63ffffffff82549160031b1b1916905561386a565b60246000634e487b7160e01b81526041600452fd5b5050509050565b600080516020613ac183398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b6004548060801c9160018301926001600160801b0380931683851614613966576000526005602052604060002055600454916001600160801b03199060801b16911617600455565b634e487b7160005260416020526024601cfd5b6139838154612cd9565b908161398d575050565b81601f6000931160011461399f575055565b9080839182526139be601f60208420940160051c840160018501613143565b5555565b60ff600080516020613b218339815191525460401c16156139df57565b604051631afcd79f60e31b8152600490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215613a2f575b5050611def57565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880613a27565b90613a845750805115613a7257602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580613ab7575b613a95575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15613a8d56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220df64f5269090be901cfa67ca8dd062b414f039599d21a0efc023536d59f65c5564736f6c63430008190033",
894
+ "deployedBytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c908163040d765b14612ba25750806310e7807c146129aa57806312aaac7014612962578063161531011461293e5780631a8843db146128a85780631adf24521461277657806325e51abc146125ac5780632d25034d1461235b5780632f820f291461233d578063485cc955146121815780634f1ef28614611fb15780634fde1e1714611e0157806352d1902d14611d8457806354fd4d5014611d415780635894fa2514611ca55780637a9e5e4b14611c25578063805d5ea414611672578063809a42bb1461164c578063851c28791461160c578063875a142514610e1a5780638fa4af4c146106135780638fb36037146105c0578063986016541461058d5780639cffe6ee14610554578063a7c32102146104f8578063ad3cb1cc146104b2578063bb69d1e01461040f578063bf7e214f146103d9578063c22dc3c0146103a7578063c80c2c2d1461037b578063ee8beb2f146101aa5763fc0c546a1461018157600080fd5b346101a757806003193601126101a757546040516001600160a01b039091168152602090f35b80fd5b50346101a757806003193601126101a75780816101c5612fae565b906004546080916001600160801b0382818094169060801c0316805b610210575b868661020c87604051938493151584526020840152606060408401526060830190612c80565b0390f35b60045483811690851c81146103695761023c816001600160801b03166000526005602052604060002090565b54600061025c836001600160801b03166000526005602052604060002090565b55600480546fffffffffffffffffffffffffffffffff19166001938401871617905580845260026020818152604086208054909291906001600160a01b03168015158061033d575b6102b5575b505050505050806101e1565b90859c9996939a97949b989591855252604083206102d48c8201612f18565b929054910154159182610329575b50501561030857505050505050506102fc61020c91612fdb565b929192903880806101e6565b92959850929550929561031a9061391e565b600019018038808080806102a9565b63ffffffff925060031b1c161538806102e2565b5060ff600385015416600581101561035557156102a4565b634e487b7160e01b89526021600452602489fd5b634e487b71835260316020526024601cfd5b50346101a75760203660031901126101a757602061039f61039a612bf3565b613472565b604051908152f35b50346101a75760203660031901126101a75760206103cb6103c6612bf3565b6131c0565b63ffffffff60405191168152f35b50346101a757806003193601126101a757600080516020613ac1833981519152546040516001600160a01b039091168152602090f35b50346101a757602090816003193601126101a75761042b612bf3565b60018060a01b03808354169116825260018352826040832054602460405180948193631bfac16f60e01b835260048301525afa9182156104a65791610474575b50604051908152f35b90508181813d831161049f575b61048b8183612d5c565b8101031261049a57513861046b565b600080fd5b503d610481565b604051903d90823e3d90fd5b50346101a757806003193601126101a75761020c6040516104d281612d41565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612c1d565b50346101a75760203660031901126101a7576080906040906001600160a01b03610520612bf3565b1681526001602052208054906002810154906004600382015491015491604051938452602084015260408301526060820152f35b50346101a75760203660031901126101a7576020906040906001600160a01b0361057c612bf3565b168152600183522054604051908152f35b50346101a75760203660031901126101a757602090600435815260038252604060018060a01b0391205416604051908152f35b50346101a757806003193601126101a757600080516020613ac18339815191525460a01c60ff161561060b57506020638fb3603760e01b5b6040516001600160e01b03199091168152f35b6020906105f8565b50346101a75760603660031901126101a7576024356001600160401b038111610dc05736602382011215610dc057806004013561064f81612f53565b9161065d6040519384612d5c565b8183526024606060208501930282010190368211610db857602401915b818310610dc4575050506001600160401b0360443511610dc057366023604435011215610dc05760443560040135916106b283612f53565b926106c06040519485612d5c565b80845260208401903660248260051b604435010111610dbc57602460443501915b60248260051b60443501018310610cda57505050600080516020613b218339815191525460ff8160401c168015610cc6575b610cb45768ffffffffffffffffff19166801000000000000000217600080516020613b21833981519152556004356006555b60078054600581101561079857600160401b8110156107825761076d91600182019055612eea565b63ffffffff82549160031b1b19169055610745565b634e487b7160e01b600052604160045260246000fd5b828585825b8151811015610861576107b081836131ac565b5180516001600160a01b03168552600160205260408520906107d182613868565b8154604082015181036107ed575060200151905560010161079d565b6108285760405162461bcd60e51b815260206004820152600f60248201526e1058d8dbdd5b9d139bdd119bdd5b99608a1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526011602482015270092dcd2e8a8ded6cadc9ad2e6dac2e8c6d607b1b6044820152606490fd5b5050815b8151811015610c5e5761087881836131ac565b5160208101516040516108a98161089b6020820194602086526040830190612c1d565b03601f198101835282612d5c565b519020808552600260205260408520546001600160a01b0316610c195784526002602090815260408520825181546001600160a01b0319166001600160a01b0391909116178155908201518051906001600160401b038211610b63576109126001840154612cd9565b601f8111610be6575b50602090601f8311600114610b775761094c9291889183610aab575b50508160011b916000199060031b1c19161790565b60018201555b60408201518051906001600160401b038211610b63576109756002840154612cd9565b601f8111610b25575b50602090601f8311600114610ab6576109ae9291889183610aab5750508160011b916000199060031b1c19161790565b60028201555b60608201516005811015610a97576109cf906003830161315a565b60808201516004919091015580516001600160a01b031684526001602052604084206109fa81613868565b6060820151906005821015610a975791610a1c6060926001610a4f9501612f30565b939063ffffffff94610a358683548360031b1c16613172565b9063ffffffff8084549260031b9316831b921b1916179055565b01516005811015610a835760019291610a35610a6d610a7d93612eea565b91909283548360031b1c16613172565b01610865565b634e487b7160e01b85526021600452602485fd5b634e487b7160e01b86526021600452602486fd5b015190508880610937565b9190600284018852602088209088935b601f1984168510610b0a576001945083601f19811610610af1575b505050811b0160028201556109b4565b015160001960f88460031b161c19169055878080610ae1565b81810151835560209485019460019093019290910190610ac6565b610b539060028501895260208920601f850160051c81019160208610610b59575b601f0160051c0190613143565b8761097e565b9091508190610b46565b634e487b7160e01b87526041600452602487fd5b9190600184018852602088209088935b601f1984168510610bcb576001945083601f19811610610bb2575b505050811b016001820155610952565b015160001960f88460031b161c19169055878080610ba2565b81810151835560209485019460019093019290910190610b87565b610c139060018501895260208920601f850160051c81019160208610610b5957601f0160051c0190613143565b8761091b565b60405162461bcd60e51b815260206004820152601960248201527f5075626b657920616c72656164792072656769737465726564000000000000006044820152606490fd5b8260ff60401b19600080516020613b218339815191525416600080516020613b21833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b60405163f92ee8a960e01b8152600490fd5b5060026001600160401b0382161015610713565b82356001600160401b038111610db85760a0604435820136036023190112610db85760405190610d0982612d13565b610d196024826044350101612c09565b82526001600160401b03604482813501013511610db457610d47366044803584019081013501602401612e74565b60208301526001600160401b0360648260443501013511610db457610d79366044358301606481013501602401612e74565b60408301526084816044350101356005811015610db05760608301526044350160a4013560808201528152602092830192016106e1565b8680fd5b8580fd5b8480fd5b8280fd5b5080fd5b606083360312610db8576040519060608201908282106001600160401b0383111761078257606092602092604052610dfb86612c09565b815282860135838201526040860135604082015281520192019161067a565b50346101a75760603660031901126101a757610e34612bf3565b6001600160401b038060243511610dbc57366023602435011215610dbc576024356004013511610dc05736602480356004013560051b8135010111610dc057604435906001600160a01b0382168203610dbc576002600080516020613b0183398151915254146115fa576002600080516020613b0183398151915255610eba36336136f7565b6001600160a01b0381168352600160205260408320600481015484939190849081905b602435600401358210611369575050610ef584613472565b9160018060a01b038754169260208254602460405180978193631bfac16f60e01b835260048301525afa93841561135e578894611326575b508381116112e15783610f41828a9661319f565b8811801561121c575b611209575b5050600281019586548082116000146111f2575083610f708854809361319f565b9197555b6003820192808454116000146111e957610f8f90845461319f565b83555b8254808211156111c95750610fb48491610fae8554809261319f565b9861303d565b92555b82546001600160a01b03166020610fce848961303d565b6024604051809481936388d7f8c960e01b835260048301525afa8015611125578490611195575b6110019150825461319f565b905580611130575b50908361105e575b50506040519182526001600160a01b0316907f1ceab64053cad6d92ea3504e273effdf7a1b1006f7e8506741551d4f05bc74a690602090a26001600080516020613b018339815191525580f35b815460405163a9059cbb60e01b81526001600160a01b0392831660048201526024810186905292602092849260449284929091165af19081156111255784916110e6575b50156110af578238611011565b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b90506020813d60201161111d575b8161110160209383612d5c565b810103126111195751801515810361111957386110a2565b8380fd5b3d91506110f4565b6040513d86823e3d90fd5b81546001600160a01b0316803b15610dbc576044839260405194859384926304c5978b60e51b845230600485015260248401525af1801561118a57611177575b8490611009565b61118390949194612d2e565b9238611170565b6040513d87823e3d90fd5b506020813d6020116111c1575b816111af60209383612d5c565b81010312611119576110019051610ff5565b3d91506111a2565b926111db826111e2959993949961319f565b905561303d565b8194610fb7565b50838355610f92565b81611200919892939861319f565b90559482610f74565b61121492975061319f565b943880610f4f565b5063ffffffff61122e60018501612ebf565b90549060031b1c1615806112af575b8061128f575b8015610f4a5750909192935060018301546004101561127b57908291600189959401855263ffffffff602086205460801c1615610f4a565b634e487b7160e01b88526032600452602488fd5b5063ffffffff6112a160018501612f18565b90549060031b1c1615611243565b50909192935060018301546003101561127b57908291600189959401855263ffffffff602086205460601c161561123d565b60405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e7420617661696c61626c6520626f6e6400000000006044820152606490fd5b9093506020813d602011611356575b8161134260209383612d5c565b8101031261135257519238610f2d565b8780fd5b3d9150611335565b6040513d8a823e3d90fd5b909160248360051b813501013588526002602052604088209661139e60018060a01b03881660018060a01b038a541614613093565b6113c66113ad60018a01612d7d565b60248660051b81350101359060208151910120146130df565b60ff60038901541660058110156115e657600381149081156115db575b5015611588576801bc16d674ec8000008101811161156c576801bc16d674ec80000060049101970154600654808211611580575b506801bc16d674ec80000083810204830361156c5761144b61144482856801bc16d674ec80000002613060565b9184613060565b64496cebb8008181018111611558579161146b9161147194930190613073565b9061303d565b60248035600585901b010135885260026020526040882080549193916001600160a01b03166114a1811515612f6a565b895260016020526003600160408b200191019060ff825416906005821015611544576114d360ff93926114e892612f30565b610a3563ffffffff83548360031b1c16613852565b5416600581101561035557906115026114d3600193612eea565b60248160051b81350101358952600260205288600460408220828155611529858201613979565b61153560028201613979565b82600382015501550190610edd565b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8b52601160045260248bfd5b634e487b7160e01b89526011600452602489fd5b905038611417565b60405162461bcd60e51b815260206004820152602560248201527f4b6579206d7573742062652077697468647261776e206f7220756e72656769736044820152641d195c995960da1b6064820152608490fd5b6004915014386113e3565b634e487b7160e01b8a52602160045260248afd5b604051633ee5aeb560e01b8152600490fd5b50346101a75760203660031901126101a757600435906007548210156101a757602063ffffffff61163c84612eea565b9190546040519260031b1c168152f35b50346101a757806003193601126101a75763ffffffff6020915460a01c16604051908152f35b50346101a75760603660031901126101a7576004356001600160401b038111610dc0576116a3903690600401612e92565b91906044356001600160401b038111610dbc576116c4903690600401612e92565b6116d192919236336136f7565b60308503611be0576040516020810190308252336040820152608060608201526117198161170360a082018a88613122565b602435608083015203601f198101835282612d5c565b519020808552600360205260408520546001600160a01b039391903390851603611b90578552600360205260408520906bffffffffffffffffffffffff60a01b9182815416905560405160208101906020825261177e8161089b604082018c87613122565b51902094858752600260205284604088205416610c195733875260016020526002604088200154611b405763ffffffff6117b7336131c0565b1615611af1576117db6117ea92604051996117d18b612d13565b338b523691612e3d565b93602089019485523691612e3d565b60408701528460608701528460808701528385526002602052604085209286511690835416178255518051906001600160401b038211611a3b576118316001840154612cd9565b601f8111611abe575b50602090601f8311600114611a4f5761186a92918691836119935750508160011b916000199060031b1c19161790565b60018201555b60408401518051906001600160401b038211611a3b576118936002840154612cd9565b601f8111611a08575b50602090601f831160011461199e576118cc92918691836119935750508160011b916000199060031b1c19161790565b60028201555b6060840151600581101561197f57608061190094956118f66004936003860161315a565b015191015561391e565b338152600160205261192f61191a60016040842001612ebf565b610a3563ffffffff83548360031b1c16613172565b6007541561196b5760078152600080516020613ae1833981519152805463ffffffff61195c818316613172565b169063ffffffff191617905580f35b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b84526021600452602484fd5b015190503880610937565b600284018652602086209190601f198416875b8181106119f057509084600195949392106119d7575b505050811b0160028201556118d2565b015160001960f88460031b161c191690553880806119c7565b929360206001819287860151815501950193016119b1565b611a359060028501875260208720601f850160051c81019160208610610b5957601f0160051c0190613143565b3861189c565b634e487b7160e01b85526041600452602485fd5b9190600184018652602086209086935b601f1984168510611aa3576001945083601f19811610611a8a575b505050811b016001820155611870565b015160001960f88460031b161c19169055388080611a7a565b81810151835560209485019460019093019290910190611a5f565b611aeb9060018501875260208720601f850160051c81019160208610610b5957601f0160051c0190613143565b3861183a565b60405162461bcd60e51b815260206004820152602160248201527f4e6f2065786365737320626f6e64656420636170616369747920666f72206b656044820152607960f81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f4f70657261746f7220686173206f75747374616e64696e672070656e616c7469604482015261657360f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602260248201527f4e6f74207265676973746572656420666f72207468697320636f6d6d69746d656044820152611b9d60f21b6064820152608490fd5b60405162461bcd60e51b815260206004820152601760248201527f5075626b6579206d7573742062652034382062797465730000000000000000006044820152606490fd5b50346101a75760203660031901126101a757611c3f612bf3565b600080516020613ac1833981519152546001600160a01b039081163303611c8e57813b15611c745750611c71906138c5565b80f35b6040516361798f2f60e11b81529116600482015260249150fd5b60405162d1953b60e31b8152336004820152602490fd5b50346101a75760203660031901126101a757600435611cc436336136f7565b808252600360205260408220546001600160a01b0316611cfc57815260036020526040812080546001600160a01b0319163317905580f35b60405162461bcd60e51b815260206004820152601d60248201527f436f6d6d69746d656e7420616c726561647920726567697374657265640000006044820152606490fd5b50346101a757806003193601126101a75761020c604051611d6181612d41565b60028152613b1960f11b6020820152604051918291602083526020830190612c1d565b50346101a757806003193601126101a7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611def5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b50346101a757602080600319360112610dc05760043590611e2236336136f7565b81835260028152604083209160ff600360018060a01b0394611e48868254161515612f6a565b0154166005811015610a8357600103611f6e57906001918452600281526040842092835416611e78811515612f6a565b84525260036001604084200191019060ff825416600581101561197f57611ec782611ea9611ed893611ec295612f30565b949063ffffffff95610a358783548360031b1c16613852565b612f18565b610a358483548360031b1c16613172565b60ff825416600581101561197f57611ef2611f0391612eea565b610a358483548360031b1c16613852565b60075460021015611f5a5760078352600080516020613ae18339815191529063ffffffff60401b611f3a8354928360401c16613172565b60401b169063ffffffff60401b1916179055600260ff1982541617905580f35b634e487b7160e01b83526032600452602483fd5b6064826040519062461bcd60e51b825280600483015260248201527f4b6579206d7573742062652061637469766520746f20626520736c61736865646044820152fd5b5060403660031901126101a757611fc6612bf3565b6024356001600160401b038111610dbc57611fe5903690600401612e74565b611fed6139f1565b611ff736336136f7565b611fff6139f1565b6040516352d1902d60e01b81526001600160a01b038316926020918281600481885afa869181612152575b5061204857604051634c9c8ce360e01b815260048101869052602490fd5b9385947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9081810361213a5750823b156121215780546001600160a01b0319168217905560405185917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a284511561210457508084846120f796519101845af4903d156120fb573d6120db81612e22565b906120e96040519283612d5c565b81528581943d92013e613a5d565b5080f35b60609250613a5d565b935050505034612112575080f35b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d831161217a575b61216a8183612d5c565b81010312610db05751903861202a565b503d612160565b50346101a75760403660031901126101a75761219b612bf3565b6024356001600160a01b03808216820361111957600080516020613b2183398151915292835460ff8160401c1615936001600160401b03821680159081612335575b600114908161232b575b159081612322575b50610cb45767ffffffffffffffff19821660011786556122359185612303575b506122186139c2565b6122206139c2565b6122286139c2565b6122306139c2565b6138c5565b61223d6139c2565b6122456139c2565b61224d6139c2565b6001600080516020613b01833981519152556122676139c2565b1680156122be5783546001600160a01b031916178355612285575080f35b60ff60401b1981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b60405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606490fd5b68ffffffffffffffffff1916680100000000000000011786553861220f565b905015386121ef565b303b1591506121e7565b8691506121dd565b50346101a757806003193601126101a7576020600654604051908152f35b50346101a75760603660031901126101a75760043590602461237d36336136f7565b828252602060028152604083209360039060ff828701541660058110156125995760010361254a576123c1816123b560018901612d7d565b858151910120146130df565b84526002825260408420805490956001600160a01b0392909183166123e7811515612f6a565b865260018452806001604088200197019060ff8254169760058910156125375761241461242c9982612f30565b999063ffffffff9a610a358c835483881b1c16613852565b805482101561252457875284872080549861244b818b60601c16613172565b9163ffffffff60601b199a8b63ffffffff60601b809560601b16911617905560ff84541660058110156125115761248461249491612eea565b610a3584835483891b1c16613852565b6007548310156124fe57889960076001999a52600080516020613ae1833981519152926124c78454938460601c16613172565b60601b16911617905560ff19825416179055604435600482015554168452526124f9600260408420019135825461303d565b905580f35b634e487b7160e01b895260326004528789fd5b634e487b7160e01b8a526021600452888afd5b634e487b7160e01b885260326004528688fd5b634e487b7160e01b885260216004528688fd5b60405162461bcd60e51b8152600481018490526022818601527f4b6579206d7573742062652061637469766520746f20626520776974686472616044820152613bb760f11b6064820152608490fd5b634e487b7160e01b865260216004528486fd5b50346101a757602080600319360112610dc057600435906125cd36336136f7565b81835260028152604083209160ff600360018060a01b03946125f3338783541614613093565b0154166005811015610a835761272757835260028152604083209182541661261c811515612f6a565b83526001815260036001604085200192019160ff8354166005811015610a83579061264b612664939282612f30565b939063ffffffff94610a358683548360031b1c16613852565b8054600410156127135784528320908154612683828260801c16613172565b9263ffffffff60801b19918263ffffffff60801b809660801b16911617905560ff8454166005811015610a97576126bc6126cd91612eea565b610a358583548360031b1c16613852565b600754600410156127135760078552600080516020613ae1833981519152926126fc8454938460801c16613172565b60801b169116179055600460ff1982541617905580f35b634e487b7160e01b85526032600452602485fd5b60405162461bcd60e51b815260048101839052602160248201527f4b6579206d7573742062652070656e64696e6720746f2062652072656d6f76656044820152601960fa1b6064820152608490fd5b50346101a75760a03660031901126101a757612790612bf3565b60243590604435608435926001600160401b038416809403610db8576127b636336136f7565b8115158061289f575b1561285a5761146b6020927ff6a4fac3c715c43d37e594d3f60bb5e3782af5a2aac2783711964a70277b60589460018060a01b0316958688526001855261284d604089209261280d84613868565b61284884549361281d838661303d565b96879360038801612831606435825461303d565b905561284260048901978854613060565b92613060565b613073565b905555604051908152a280f35b60405162461bcd60e51b815260206004820152601b60248201527f626f6e64206d7573742062652067726561746572207468616e203000000000006044820152606490fd5b508015156127bf565b50346101a75760203660031901126101a757600435815260026020526040902080546001600160a01b03166128df60018301612d7d565b916128ec60028201612d7d565b61293561292a600460ff6003860154169401549261291c604051978897885260a0602089015260a0880190612c1d565b908682036040880152612c1d565b926060850190612c5d565b60808301520390f35b50346101a757806003193601126101a75760206040516801bc16d674ec8000008152f35b50346101a75760203660031901126101a757612996604061020c92612985612fae565b506004358152600260205220612fdb565b604051918291602083526020830190612c80565b50346101a757602080600319360112610dc0576004356129ca36336136f7565b80835260028252604083209160018060a01b03916129ec838554161515612f6a565b60ff6003850154166005811015610a9757612b51578452600281526040842091825416612a1a811515612f6a565b84526001815260036001604086200192019160ff8354166005811015610a975790612a48612a619282612f30565b929063ffffffff93610a358583548360031b1c16613852565b805460011015612b3d578552818520805490612a808383861c16613172565b9067ffffffff0000000019928367ffffffff000000008094881b16911617905560ff8554166005811015612b2957612aba612acb91612eea565b610a358683548360031b1c16613852565b60075460011015612b155760078752600080516020613ae183398151915293612af985549485831c16613172565b901b169116179055600160ff1982541617905560044291015580f35b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b88526021600452602488fd5b634e487b7160e01b86526032600452602486fd5b60405162461bcd60e51b815260048101839052602360248201527f4b6579206d7573742062652070656e64696e6720746f206265206465706f73696044820152621d195960ea1b6064820152608490fd5b905034610dc0576020366003190112610dc0576001600160a01b03612bc5612bf3565b168252600160205260016040832001805460011015611f5a5760208363ffffffff928295522054831c168152f35b600435906001600160a01b038216820361049a57565b35906001600160a01b038216820361049a57565b919082519283825260005b848110612c49575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201612c28565b906005821015612c6a5752565b634e487b7160e01b600052602160045260246000fd5b9060018060a01b038251168152608080612cbe612cac602086015160a0602087015260a0860190612c1d565b60408601518582036040870152612c1d565b93612cd160608201516060860190612c5d565b015191015290565b90600182811c92168015612d09575b6020831014612cf357565b634e487b7160e01b600052602260045260246000fd5b91607f1691612ce8565b60a081019081106001600160401b0382111761078257604052565b6001600160401b03811161078257604052565b604081019081106001600160401b0382111761078257604052565b90601f801991011681019081106001600160401b0382111761078257604052565b90604051918260008254612d9081612cd9565b90818452602094600191600181169081600014612e005750600114612dc1575b505050612dbf92500383612d5c565b565b600090815285812095935091905b818310612de8575050612dbf9350820101388080612db0565b85548884018501529485019487945091830191612dcf565b92505050612dbf94925060ff191682840152151560051b820101388080612db0565b6001600160401b03811161078257601f01601f191660200190565b929192612e4982612e22565b91612e576040519384612d5c565b82948184528183011161049a578281602093846000960137010152565b9080601f8301121561049a57816020612e8f93359101612e3d565b90565b9181601f8401121561049a578235916001600160401b03831161049a576020838186019501011161049a57565b805415612ed457600052602060002090600090565b634e487b7160e01b600052603260045260246000fd5b90600754821015612ed4576007600052601c8260031c600080516020613ae1833981519152019260021b1690565b805460021015612ed457600052602060002090600890565b9190918054831015612ed457600052601c60206000208360031c019260021b1690565b6001600160401b0381116107825760051b60200190565b15612f7157565b60405162461bcd60e51b8152602060048201526015602482015274141d589ad95e481b9bdd081c9959da5cdd195c9959605a1b6044820152606490fd5b60405190612fbb82612d13565b600060808382815260606020820152606060408201528260608201520152565b90604051612fe881612d13565b82546001600160a01b0316815291829061300460018201612d7d565b602083015261301560028201612d7d565b604083015260ff6003820154166005811015612c6a5760809160049160608501520154910152565b9190820180921161304a57565b634e487b7160e01b600052601160045260246000fd5b8181029291811591840414171561304a57565b811561307d570490565b634e487b7160e01b600052601260045260246000fd5b1561309a57565b60405162461bcd60e51b815260206004820152601860248201527f4e6f74206f70657261746f72206f662074686973206b657900000000000000006044820152606490fd5b156130e657565b60405162461bcd60e51b81526020600482015260146024820152730a0eac4d6caf240d0c2e6d040dad2e6dac2e8c6d60631b6044820152606490fd5b908060209392818452848401376000828201840152601f01601f1916010190565b81811061314e575050565b60008155600101613143565b906005811015612c6a5760ff80198354169116179055565b90600163ffffffff8093160191821161304a57565b91909163ffffffff8080941691160191821161304a57565b9190820391821161304a57565b8051821015612ed45760209160051b010190565b9060009160009060018060a01b039182821681526001906020828152604094858320868051956131ef87612d13565b8254875280830185835191829485938383549182815201928b52838b20958b905b8260078301106133fe578561326c9854948484106133e8575b8484106133d0575b8484106133b6575b5083831061339d575b838310613384575b83831061336b575b838310613352575b505010613344575b5090500382612d5c565b8386015260046002820154918289880152600381015460608801520154608086015261333a57819083541693516024875180968193631bfac16f60e01b835260048301525afa94851561332f575081946132fa575b5050506132cd90613472565b908082106132d9575050565b63ffffffff9293506801bc16d674ec800000916132f59161319f565b041690565b909180939450813d8311613328575b6133138183612d5c565b810103126101a7575051906132cd38806132c1565b503d613309565b51913d9150823e3d90fd5b5090955050505050565b60e01c815201869038613262565b90919463ffffffff8560c01c168152019301388561325a565b81929563ffffffff8660a01c1681520194019085613252565b81929563ffffffff8660801c168152019401908561324a565b81929563ffffffff8660601c1681520194019085613242565b9563ffffffff868495981c168152019401908f8690613239565b85821c63ffffffff1687529581019592820192613231565b63ffffffff861687529581019592820192613229565b9384929650600893610100929689549163ffffffff9182841685528284821c16908501528183821c169084015260608183821c169084015260808183821c169084015260a08183821c169084015260c09082821c169083015260e090811c90820152019501920185938d918a949693613210565b60009060018060a01b0316815260016020908082526040918083852092845161349a81612d13565b84548152818501865190819481818793549485815201908b5289828c20948c5b88826007830110613684578561351798549484841061366e575b848410613656575b84841061363e575b50838310613625575b83831061360c575b8383106135f3575b8383106135da575b5050106135cc575b5090500384612d5c565b6080600485830196858852600281015489850152600381015460608501520154910152815111156127135763ffffffff938491015116908251805115612b3d5701516135669190841690613187565b90518051600210156135b857908260606135839301511690613187565b16906801bc16d674ec800000918281029281840414901517156135a4575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b84526032600452602484fd5b60e01c81520186903861350d565b90919463ffffffff8560c01c1681520193018885613505565b90919463ffffffff8560a01c16815201930188856134fd565b90919463ffffffff8560801c16815201930188856134f5565b90919463ffffffff8560601c16815201930188856134ed565b85901c63ffffffff168652909401930188858e6134e4565b85821c63ffffffff16875295810195928201926134dc565b63ffffffff8616875295810195928201926134d4565b92509350935061010060089286548d63ffffffff9081831684528d8284821c16908501528183821c169084015260608183821c169084015260808183821c169084015260a08183821c169084015260c09082821c169083015260e090811c908201520194019101928987938993956134ba565b600080516020613ac18339815191528054909290916001600160a01b03808416926004811061049a5760009260009384916040958691825196602088019163b700961360e01b8352169687602482015230604482015263ffffffff60e01b83351660648201526064815261376a81612d13565b828052826020525190895afa613841575b1561378a575b50505050505050565b63ffffffff161561382b5760ff60a01b19948516600160a01b178655833b1561049a57606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af19081156138215750613812575b50815416905538808080808080613781565b61381b90612d2e565b38613800565b513d6000823e3d90fd5b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c15029061377b565b63ffffffff908116600019019190821161304a57565b905b600180830180549060058210156138be57600160401b8210156138a9576138949282018155612f30565b63ffffffff82549160031b1b1916905561386a565b60246000634e487b7160e01b81526041600452fd5b5050509050565b600080516020613ac183398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b6004548060801c9160018301926001600160801b0380931683851614613966576000526005602052604060002055600454916001600160801b03199060801b16911617600455565b634e487b7160005260416020526024601cfd5b6139838154612cd9565b908161398d575050565b81601f6000931160011461399f575055565b9080839182526139be601f60208420940160051c840160018501613143565b5555565b60ff600080516020613b218339815191525460401c16156139df57565b604051631afcd79f60e31b8152600490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215613a2f575b5050611def57565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880613a27565b90613a845750805115613a7257602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580613ab7575b613a95575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15613a8d56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220df64f5269090be901cfa67ca8dd062b414f039599d21a0efc023536d59f65c5564736f6c63430008190033",
895
+ "linkReferences": {},
896
+ "deployedLinkReferences": {}
897
+ }