@pendle/core-v2 0.8.0-beta-12 → 0.8.1-gamma

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 (330) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +39 -7
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.dbg.json +4 -0
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol/PendleQiSAvaxSCY.json +833 -0
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +39 -7
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.dbg.json +4 -0
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol/PendleSAvaxSCY.json +723 -0
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.dbg.json +4 -0
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol/PendleEulerSCY.json +723 -0
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +38 -6
  15. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.dbg.json +4 -0
  16. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol/PendleStargateSCY.json +864 -0
  17. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +56 -6
  19. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
  20. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +38 -6
  21. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.dbg.json +4 -0
  22. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol/PendleSJoeSCY.json +784 -0
  23. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.json +36 -4
  25. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  26. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +36 -4
  27. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.json +2 -2
  30. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +4 -0
  32. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +242 -0
  33. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +4 -0
  34. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/{PendleGaugeControllerSidechain.sol → PendleGaugeControllerSidechainUpg.sol}/PendleGaugeControllerSidechainUpg.json +3 -3
  35. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +46 -40
  38. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +0 -13
  40. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +66 -4
  42. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +26 -2
  44. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +24 -0
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  50. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +2 -2
  52. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  54. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -77
  57. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  59. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +21 -96
  61. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  63. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +2 -2
  65. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +2 -2
  67. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +4 -0
  80. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +162 -0
  81. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +4 -0
  82. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +87 -0
  83. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +38 -23
  101. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +24 -0
  103. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +27 -27
  108. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +4 -0
  113. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +199 -0
  114. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +4 -0
  115. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +168 -0
  116. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +4 -0
  117. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +92 -0
  118. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +4 -0
  119. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.json +137 -0
  120. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +4 -0
  121. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.json +135 -0
  122. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +4 -0
  123. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.json +63 -0
  124. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.json +36 -4
  126. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +4 -0
  127. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +252 -0
  128. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  131. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  132. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  133. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  134. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  135. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  136. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  138. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  139. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +2 -2
  140. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  142. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +4 -0
  143. package/build/artifacts/contracts/libraries/{SCY/SCYIndex.sol/SCYIndexLib.json → helpers/PYIndex.sol/PYIndexLib.json} +4 -4
  144. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  145. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  146. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  148. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  149. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  150. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  151. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  152. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  153. package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
  154. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  155. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  156. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +1 -1
  157. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +1 -1
  158. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  159. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +209 -41
  160. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  161. package/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol +13 -3
  162. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiSAvaxSCY.sol +242 -0
  163. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol +14 -10
  164. package/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleSAvaxSCY.sol +146 -0
  165. package/contracts/SuperComposableYield/SCY-implementations/Euler/PendleEulerSCY.sol +170 -0
  166. package/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol +12 -2
  167. package/contracts/SuperComposableYield/SCY-implementations/PendleStargateSCY.sol +194 -0
  168. package/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol +41 -10
  169. package/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol +12 -8
  170. package/contracts/SuperComposableYield/SCY-implementations/TraderJoe/PendleSJoeSCY.sol +184 -0
  171. package/contracts/SuperComposableYield/base-implementations/SCYBase.sol +10 -12
  172. package/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol +1 -2
  173. package/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol +20 -10
  174. package/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -1
  175. package/contracts/core/LiquidityMining/GaugeController/{PendleGaugeControllerMainchain.sol → PendleGaugeControllerMainchainUpg.sol} +0 -0
  176. package/contracts/core/LiquidityMining/GaugeController/{PendleGaugeControllerSidechain.sol → PendleGaugeControllerSidechainUpg.sol} +0 -0
  177. package/contracts/core/LiquidityMining/PendleGauge.sol +3 -2
  178. package/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +41 -29
  179. package/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +4 -10
  180. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +33 -16
  181. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +2 -4
  182. package/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +5 -1
  183. package/contracts/core/Market/PendleMarket.sol +4 -5
  184. package/contracts/core/Market/PendleMarketFactory.sol +2 -1
  185. package/contracts/core/PendleERC20.sol +1 -1
  186. package/contracts/core/YieldContracts/InterestManagerYT.sol +0 -2
  187. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  188. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +2 -2
  189. package/contracts/core/YieldContracts/PendleYieldToken.sol +24 -32
  190. package/contracts/core/actions/ActionCallback.sol +10 -8
  191. package/contracts/core/actions/base/ActionSCYAndPTBase.sol +10 -9
  192. package/contracts/core/actions/base/ActionSCYAndYTBase.sol +5 -4
  193. package/contracts/core/actions/base/CallbackHelper.sol +1 -1
  194. package/contracts/interfaces/IEulerEToken.sol +60 -0
  195. package/contracts/interfaces/IEulerMarkets.sol +46 -0
  196. package/contracts/interfaces/IPGaugeController.sol +1 -1
  197. package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
  198. package/contracts/interfaces/IPMarket.sol +1 -0
  199. package/contracts/interfaces/IPRouterStatic.sol +17 -10
  200. package/contracts/interfaces/IPVeToken.sol +2 -0
  201. package/contracts/interfaces/IPYieldToken.sol +2 -2
  202. package/contracts/interfaces/ISAvax.sol +61 -0
  203. package/contracts/interfaces/ISJoe.sol +60 -0
  204. package/contracts/interfaces/IStETH.sol +14 -0
  205. package/contracts/interfaces/IStargateLPStaking.sol +47 -0
  206. package/contracts/interfaces/IStargatePool.sol +49 -0
  207. package/contracts/interfaces/IStargateRouter.sol +37 -0
  208. package/contracts/interfaces/ISuperComposableYield.sol +6 -9
  209. package/contracts/interfaces/IWAvax.sol +34 -0
  210. package/contracts/libraries/RewardManager.sol +2 -3
  211. package/contracts/libraries/RewardManagerAbstract.sol +1 -0
  212. package/contracts/libraries/VeBalanceLib.sol +13 -0
  213. package/contracts/libraries/helpers/ArrayLib.sol +0 -17
  214. package/contracts/libraries/helpers/PYIndex.sol +69 -0
  215. package/contracts/libraries/helpers/TokenHelper.sol +4 -2
  216. package/contracts/libraries/math/LogExpMath.sol +46 -44
  217. package/contracts/libraries/math/MarketApproxLib.sol +10 -12
  218. package/contracts/libraries/math/MarketMathCore.sol +24 -15
  219. package/contracts/libraries/math/Math.sol +14 -0
  220. package/contracts/offchain-helpers/RouterStatic.sol +177 -66
  221. package/deployments/43113-benqi.json +2 -2
  222. package/deployments/43113-core.json +7 -7
  223. package/deployments/43113-markets/benqi-market-599408.json +7 -0
  224. package/deployments/43113-markets/benqi-market-93bbf0.json +7 -0
  225. package/deployments/80001-benqi.json +2 -2
  226. package/deployments/80001-core.json +6 -6
  227. package/deployments/80001-markets/benqi-market-007811.json +7 -0
  228. package/deployments/80001-markets/benqi-market-3fe528.json +7 -0
  229. package/package.json +3 -3
  230. package/typechain-types/CelerSenderUpg.ts +16 -16
  231. package/typechain-types/IERC20Upgradeable.ts +300 -0
  232. package/typechain-types/IEulerEToken.ts +320 -0
  233. package/typechain-types/IEulerMarkets.ts +204 -0
  234. package/typechain-types/IPInterestManagerYT.ts +3 -3
  235. package/typechain-types/IPRouterStatic.ts +75 -97
  236. package/typechain-types/IPVeToken.ts +34 -0
  237. package/typechain-types/IPYieldToken.ts +47 -47
  238. package/typechain-types/ISAvax.ts +430 -0
  239. package/typechain-types/ISJoe.ts +340 -0
  240. package/typechain-types/IStETH.ts +201 -0
  241. package/typechain-types/IStargateLPStaking.ts +108 -0
  242. package/typechain-types/IStargatePool.ts +94 -0
  243. package/typechain-types/ISuperComposableYield.ts +72 -26
  244. package/typechain-types/IWAvax.ts +380 -0
  245. package/typechain-types/PendleAaveV3SCY.ts +74 -28
  246. package/typechain-types/PendleERC4626SCY.ts +73 -27
  247. package/typechain-types/PendleEulerSCY.ts +965 -0
  248. package/typechain-types/PendlePrincipalToken.ts +0 -104
  249. package/typechain-types/PendleQiSAvaxSCY.ts +1098 -0
  250. package/typechain-types/PendleQiTokenSCY.ts +74 -28
  251. package/typechain-types/PendleSAvaxSCY.ts +962 -0
  252. package/typechain-types/PendleSJoeSCY.ts +1053 -0
  253. package/typechain-types/PendleStargatePool.ts +73 -27
  254. package/typechain-types/PendleStargateSCY.ts +1135 -0
  255. package/typechain-types/PendleVotingControllerUpg.ts +88 -75
  256. package/typechain-types/PendleWstEthSCY.ts +86 -27
  257. package/typechain-types/PendleYearnVaultScy.ts +73 -27
  258. package/typechain-types/PendleYieldToken.ts +44 -148
  259. package/typechain-types/RouterStatic.ts +327 -253
  260. package/typechain-types/SCYBase.ts +73 -27
  261. package/typechain-types/SCYBaseWithRewards.ts +73 -27
  262. package/typechain-types/VotingControllerStorageUpg.ts +0 -21
  263. package/typechain-types/VotingEscrowPendleMainchain.ts +118 -16
  264. package/typechain-types/VotingEscrowPendleSidechain.ts +34 -0
  265. package/typechain-types/VotingEscrowTokenBase.ts +34 -0
  266. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  267. package/typechain-types/factories/ActionCore__factory.ts +1 -1
  268. package/typechain-types/factories/ActionYT__factory.ts +1 -1
  269. package/typechain-types/factories/CelerSenderUpg__factory.ts +2 -2
  270. package/typechain-types/factories/IERC20Upgradeable__factory.ts +209 -0
  271. package/typechain-types/factories/IEulerEToken__factory.ts +174 -0
  272. package/typechain-types/factories/IEulerMarkets__factory.ts +99 -0
  273. package/typechain-types/factories/IPInterestManagerYT__factory.ts +1 -1
  274. package/typechain-types/factories/IPRouterStatic__factory.ts +38 -23
  275. package/typechain-types/factories/IPVeToken__factory.ts +24 -0
  276. package/typechain-types/factories/IPYieldToken__factory.ts +27 -27
  277. package/typechain-types/factories/ISAvax__factory.ts +208 -0
  278. package/typechain-types/factories/ISJoe__factory.ts +177 -0
  279. package/typechain-types/factories/IStETH__factory.ts +101 -0
  280. package/typechain-types/factories/IStargateLPStaking__factory.ts +90 -0
  281. package/typechain-types/factories/IStargatePool__factory.ts +79 -0
  282. package/typechain-types/factories/ISuperComposableYield__factory.ts +36 -4
  283. package/typechain-types/factories/IWAvax__factory.ts +261 -0
  284. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +38 -6
  285. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  286. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  287. package/typechain-types/factories/PendleERC4626SCY__factory.ts +37 -5
  288. package/typechain-types/factories/PendleEulerSCY__factory.ts +796 -0
  289. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  290. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  291. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  292. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  293. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -76
  294. package/typechain-types/factories/PendleQiSAvaxSCY__factory.ts +917 -0
  295. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +38 -6
  296. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  297. package/typechain-types/factories/PendleSAvaxSCY__factory.ts +796 -0
  298. package/typechain-types/factories/PendleSJoeSCY__factory.ts +845 -0
  299. package/typechain-types/factories/PendleStargatePool__factory.ts +37 -5
  300. package/typechain-types/factories/PendleStargateSCY__factory.ts +952 -0
  301. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +44 -38
  302. package/typechain-types/factories/PendleWstEthSCY__factory.ts +65 -6
  303. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +37 -5
  304. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  305. package/typechain-types/factories/PendleYieldToken__factory.ts +19 -94
  306. package/typechain-types/factories/RouterStatic__factory.ts +208 -40
  307. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +36 -4
  308. package/typechain-types/factories/SCYBase__factory.ts +36 -4
  309. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +0 -13
  310. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +65 -3
  311. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +25 -1
  312. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +24 -0
  313. package/typechain-types/hardhat.d.ts +103 -13
  314. package/typechain-types/index.ts +24 -4
  315. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.dbg.json +0 -4
  316. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.json +0 -242
  317. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.dbg.json +0 -4
  318. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
  319. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +0 -329
  320. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +0 -4
  321. package/contracts/core/PendleERC20Permit.sol +0 -84
  322. package/contracts/libraries/SCY/SCYIndex.sol +0 -72
  323. package/deployments/43113-markets/benqi-market-5C60ba.json +0 -7
  324. package/deployments/43113-markets/benqi-market-611eA3.json +0 -7
  325. package/deployments/43113-markets/benqi-market-A386eA.json +0 -7
  326. package/deployments/43113-markets/benqi-market-bf8841.json +0 -7
  327. package/deployments/80001-markets/benqi-market-5E1104.json +0 -7
  328. package/deployments/80001-markets/benqi-market-899134.json +0 -7
  329. package/deployments/80001-markets/benqi-market-94C86f.json +0 -7
  330. package/deployments/80001-markets/benqi-market-c68429.json +0 -7
@@ -248,28 +248,33 @@
248
248
  },
249
249
  {
250
250
  "inputs": [],
251
- "name": "USER_VOTE_MAX_WEIGHT",
251
+ "name": "WEEK",
252
252
  "outputs": [
253
253
  {
254
- "internalType": "uint64",
254
+ "internalType": "uint128",
255
255
  "name": "",
256
- "type": "uint64"
256
+ "type": "uint128"
257
257
  }
258
258
  ],
259
259
  "stateMutability": "view",
260
260
  "type": "function"
261
261
  },
262
262
  {
263
- "inputs": [],
264
- "name": "WEEK",
265
- "outputs": [
263
+ "inputs": [
266
264
  {
267
- "internalType": "uint128",
268
- "name": "",
269
- "type": "uint128"
265
+ "internalType": "address",
266
+ "name": "_address",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "internalType": "uint256",
271
+ "name": "_chainId",
272
+ "type": "uint256"
270
273
  }
271
274
  ],
272
- "stateMutability": "view",
275
+ "name": "addDestinationContract",
276
+ "outputs": [],
277
+ "stateMutability": "payable",
273
278
  "type": "function"
274
279
  },
275
280
  {
@@ -290,24 +295,6 @@
290
295
  "stateMutability": "nonpayable",
291
296
  "type": "function"
292
297
  },
293
- {
294
- "inputs": [
295
- {
296
- "internalType": "address",
297
- "name": "_address",
298
- "type": "address"
299
- },
300
- {
301
- "internalType": "uint256",
302
- "name": "_chainId",
303
- "type": "uint256"
304
- }
305
- ],
306
- "name": "addSidechainContract",
307
- "outputs": [],
308
- "stateMutability": "payable",
309
- "type": "function"
310
- },
311
298
  {
312
299
  "inputs": [
313
300
  {
@@ -403,6 +390,24 @@
403
390
  "stateMutability": "view",
404
391
  "type": "function"
405
392
  },
393
+ {
394
+ "inputs": [],
395
+ "name": "getAllDestinationContracts",
396
+ "outputs": [
397
+ {
398
+ "internalType": "uint256[]",
399
+ "name": "chainIds",
400
+ "type": "uint256[]"
401
+ },
402
+ {
403
+ "internalType": "address[]",
404
+ "name": "addrs",
405
+ "type": "address[]"
406
+ }
407
+ ],
408
+ "stateMutability": "view",
409
+ "type": "function"
410
+ },
406
411
  {
407
412
  "inputs": [
408
413
  {
@@ -433,18 +438,19 @@
433
438
  "type": "function"
434
439
  },
435
440
  {
436
- "inputs": [],
437
- "name": "getAllSidechainContracts",
438
- "outputs": [
441
+ "inputs": [
439
442
  {
440
- "internalType": "uint256[]",
441
- "name": "chainIds",
442
- "type": "uint256[]"
443
- },
443
+ "internalType": "uint64",
444
+ "name": "chainId",
445
+ "type": "uint64"
446
+ }
447
+ ],
448
+ "name": "getBroadcastResultFee",
449
+ "outputs": [
444
450
  {
445
- "internalType": "address[]",
446
- "name": "addrs",
447
- "type": "address[]"
451
+ "internalType": "uint256",
452
+ "name": "",
453
+ "type": "uint256"
448
454
  }
449
455
  ],
450
456
  "stateMutability": "view",
@@ -771,8 +777,8 @@
771
777
  "type": "function"
772
778
  }
773
779
  ],
774
- "bytecode": "0x6101006040523060e0523480156200001657600080fd5b50604051620038ec380380620038ec833981016040819052620000399162000119565b8181806001600160a01b038116620000865760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640160405180910390fd5b6001600160a01b03908116608052821660a05250620000b0620000c6602090811b6200149d17901c565b6001600160801b031660c05250620001c4915050565b6000620000d342620000d8565b905090565b600062093a80620000ea818462000151565b620000f6919062000186565b92915050565b80516001600160a01b03811681146200011457600080fd5b919050565b600080604083850312156200012d57600080fd5b6200013883620000fc565b91506200014860208401620000fc565b90509250929050565b60006001600160801b03838116806200017a57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006001600160801b0382811684821681151582840482111615620001bb57634e487b7160e01b600052601160045260246000fd5b02949350505050565b60805160a05160c05160e0516136b662000236600039600081816107120152818161075201528181610a9b01528181610adb0152610b530152600081816104230152611fd70152600081816103ef01528181610d5a01526126ae0152600081816105bb01526114ac01526136b66000f3fe6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c62997b146101fa5780631c9bdb491461022e57806323342c38146102435780632c730351146102635780633659cfe61461028557806338b8765c146102a55780633b7d0946146102c55780634e91d0cb146102e55780634f1ef286146102f857806352d1902d1461030b578063592557061461032e5780635cc049681461034e578063646fb67c1461037b578063698766ee146103a857806382ae9ef7146103c857806382dabb21146103dd578063b292bf9514610411578063bfa5b32414610452578063c0202a4414610470578063c2811e2a146104cf578063c291230d146104ef578063c4c30dc214610502578063c891091314610525578063c9430f481461055b578063cc88370e1461057b578063d2e6d1c3146105a9578063d68ffecb146105dd578063f4359ce5146105fd578063f7f03fea14610614578063fa78668f14610634575b600080fd5b34801561017957600080fd5b506101e2610188366004612d6d565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190612da5565b60405180910390f35b34801561020657600080fd5b50610216670de0b6b3a764000081565b6040516001600160401b0390911681526020016101f1565b61024161023c366004612e0a565b61064c565b005b34801561024f57600080fd5b5061024161025e366004612d6d565b61069d565b34801561026f57600080fd5b506102786106f7565b6040516101f19190612e97565b34801561029157600080fd5b506102416102a0366004612d6d565b610708565b3480156102b157600080fd5b506102416102c0366004612d6d565b6107d0565b3480156102d157600080fd5b506102416102e0366004612d6d565b610975565b6102416102f3366004612eaa565b610a49565b610241610306366004612eec565b610a91565b34801561031757600080fd5b50610320610b46565b6040519081526020016101f1565b34801561033a57600080fd5b50610241610349366004612faf565b610bf4565b34801561035a57600080fd5b5060645461036e906001600160a01b031681565b6040516101f19190612fcc565b34801561038757600080fd5b5061039b610396366004612fe0565b610c82565b6040516101f19190613019565b3480156103b457600080fd5b506102416103c3366004613081565b610cfa565b3480156103d457600080fd5b5061024161106b565b3480156103e957600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041d57600080fd5b506104457f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f191906130ec565b34801561045e57600080fd5b5061044569d3c21bcecceda100000081565b34801561047c57600080fd5b506104b061048b366004612faf565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104db57600080fd5b506104456104ea366004613100565b6110ab565b6102416104fd366004613130565b6110ef565b34801561050e57600080fd5b50610517611173565b6040516101f192919061317b565b34801561053157600080fd5b50610216610540366004612d6d565b60d4602052600090815260409020546001600160401b031681565b34801561056757600080fd5b50610278610576366004613130565b611287565b34801561058757600080fd5b5061059b6105963660046131a0565b6112ab565b6040516101f19291906131c2565b3480156105b557600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e957600080fd5b506102416105f83660046131db565b61136b565b34801561060957600080fd5b5061044562093a8081565b34801561062057600080fd5b5060cc54610445906001600160801b031681565b34801561064057600080fd5b506104456303bfc40081565b6106546114a8565b6001600160a01b0316336001600160a01b03161461068d5760405162461bcd60e51b8152600401610684906131f7565b60405180910390fd5b61069883838361152c565b505050565b6106a56114a8565b6001600160a01b0316336001600160a01b0316146106d55760405162461bcd60e51b8152600401610684906131f7565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b606061070360cd6117e8565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107505760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107826117f5565b6001600160a01b0316146107a85760405162461bcd60e51b81526004016106849061325a565b6107b181611811565b604080516000808252602082019092526107cd91839190611849565b50565b6107d9816119b4565b6107f55760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b03169061082761149d565b9050806001600160801b0316826001600160801b03161061084757505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610910576108b162093a80846132d0565b6001600160a01b038516600090815260d2602090815260408083206001600160801b0380861685526002909101909252909120549194506108f591839116856119c1565b905061090b84846109068482611a0f565b611a2d565b61088a565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b61097d6114a8565b6001600160a01b0316336001600160a01b0316146109ad5760405162461bcd60e51b8152600401610684906131f7565b6109b6816119b4565b6109d25760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d260205260409020546001600160401b03166109fd826107d0565b610a0682611ac2565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b610a516114a8565b6001600160a01b0316336001600160a01b031614610a815760405162461bcd60e51b8152600401610684906131f7565b61069860658284611b92565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ad95760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b0b6117f5565b6001600160a01b031614610b315760405162461bcd60e51b81526004016106849061325a565b610b3a82611811565b610a8d82826001611849565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610be15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610684565b5060008051602061363a83398151915290565b610bfc6114a8565b6001600160a01b0316336001600160a01b031614610c2c5760405162461bcd60e51b8152600401610684906131f7565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610c779083906130ec565b60405180910390a150565b610c8a612d19565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610d405760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610684565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610d8f908590600401612fcc565b602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd091906132fb565b6001600160801b031611610e1e5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610684565b6001600160a01b038116600090815260d460205260408120905b85811015610eae57610e6f878783818110610e5557610e55613318565b9050602002016020810190610e6a9190612d6d565b6119b4565b15610e9e57610e9e878783818110610e8957610e89613318565b90506020020160208101906102c09190612d6d565b610ea78161332e565b9050610e38565b5060005b85811015610fa857848482818110610ecc57610ecc613318565b9050602002016020810190610ee19190613130565b6001600160401b0316826001016000898985818110610f0257610f02613318565b9050602002016020810190610f179190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611610f9857610f9683888884818110610f5557610f55613318565b9050602002016020810190610f6a9190612d6d565b878785818110610f7c57610f7c613318565b9050602002016020810190610f919190613130565b611ba8565b505b610fa18161332e565b9050610eb2565b5060005b8581101561106257848482818110610fc657610fc6613318565b9050602002016020810190610fdb9190613130565b6001600160401b0316826001016000898985818110610ffc57610ffc613318565b90506020020160208101906110119190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611156110525761105083888884818110610f5557610f55613318565b505b61105b8161332e565b9050610fac565b50505050505050565b600061107760cd611fb2565b905060005b818110156110a2576110926102c060cd83611fbc565b61109b8161332e565b905061107c565b506107cd611fc8565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206110e5906001600160801b03841661206c565b90505b9392505050565b60006110f961149d565b6001600160801b038116600090815260d3602052604090205490915060ff1661115a5760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610684565b60cc54610a8d90839083906001600160801b031661152c565b606080600061118260656121ac565b9050806001600160401b0381111561119c5761119c612ed6565b6040519080825280602002602001820160405280156111c5578160200160208202803683370190505b509250806001600160401b038111156111e0576111e0612ed6565b604051908082528060200260200182016040528015611209578160200160208202803683370190505b50915060005b81811015611281576112226065826121b7565b85838151811061123457611234613318565b6020026020010185848151811061124d5761124d613318565b60200260200101826001600160a01b03166001600160a01b03168152508281525050508061127a9061332e565b905061120f565b50509091565b6001600160401b038116600090815260d160205260409020606090610cf4906117e8565b600060606112b98484613347565b6112c490600161335e565b6001600160401b038111156112db576112db612ed6565b604051908082528060200260200182016040528015611304578160200160208202803683370190505b509050835b8381116113575761131b60cf82611fbc565b82828151811061132d5761132d613318565b6001600160a01b03909216602092830291909101909101528061134f8161332e565b915050611309565b5061136260cf611fb2565b91509250929050565b6113736114a8565b6001600160a01b0316336001600160a01b0316146113a35760405162461bcd60e51b8152600401610684906131f7565b6113ac816119b4565b156113ee5760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610684565b6113f960cf826121d5565b156114505760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610684565b61145a82826121ea565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b6000610703426122cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190613376565b6001600160801b03808316600090815260d3602052604081205461010090049091169081900361155c5750505050565b6001600160401b038416600090815260d16020526040812061157d90611fb2565b90508060000361158e575050505050565b6001600160401b038516600090815260d1602052604081206115af906117e8565b90506000826001600160401b038111156115cb576115cb612ed6565b6040519080825280602002602001820160405280156115f4578160200160208202803683370190505b50905060005b838110156116cc57600060d36000896001600160801b03166001600160801b03168152602001908152602001600020600101600085848151811061164057611640613318565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03908116925087906116829084908b16613393565b61168c91906133c8565b905061169b62093a8082613393565b8484815181106116ad576116ad613318565b6020026020010181815250505050806116c59061332e565b90506115fa565b5046876001600160401b03160361175e5760006116f360656001600160401b038a166122e7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611726908a90879087906004016133dc565b600060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b5050505050611794565b611794876001600160401b0316878484604051602001611780939291906133dc565b6040516020818303038152906040526122f3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516117d791906130ec565b60405180910390a350505050505050565b606060006110e8836123fd565b60008051602061363a833981519152546001600160a01b031690565b6118196114a8565b6001600160a01b0316336001600160a01b0316146107cd5760405162461bcd60e51b8152600401610684906131f7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561187c5761069883612459565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118d6575060408051601f3d908101601f191682019092526118d39181019061341c565b60015b6119395760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610684565b60008051602061363a83398151915281146119a85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610684565b506106988383836124f3565b6000610cf460cd836121d5565b6119c9612d41565b8284602001516119d99190613435565b6001600160801b031660208201526119f1828461345d565b84516119fd9190613435565b6001600160801b031681529392505050565b6000818360200151611a21919061345d565b83516110e89190613435565b6001600160801b03808316600090815260d36020526040902080548392600191611a5e9185916101009004166132d0565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611afc9083612518565b611b185760405162461bcd60e51b81526004016106849061348c565b611b2360cd83612518565b611b3f5760405162461bcd60e51b81526004016106849061348c565b611b4a60cf8361252d565b611b665760405162461bcd60e51b81526004016106849061348c565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b60006110e584846001600160a01b038516612542565b611bb0612d41565b6001600160a01b03808516600090815260d460209081526040808320938716835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b90920416928201929092529015611d7257611c1c866119b4565b8015611c2c5750611c2c8161255f565b15611cea576040805180820190915260018301546001600160801b038082168352600160801b909104166020820152611c65908261259c565b80516020918201516001600160801b03908116600160801b029116176001840155810151600283016000611c98846125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611cc591859116613435565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038616600090815260018401602052604081205484546001600160401b039182169286929091611d23918591166134a8565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038616600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b03851615611f7957611d8a866119b4565b611dc85760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610684565b611dd28786612642565b6040805180820190915260018401546001600160801b038082168352600160801b909104166020820152909450611e09908561277d565b80516020918201516001600160801b03908116600160801b029116176001840155840151600283016000611e3c876125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611e69918591166132d0565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038d16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b02919095161791909201558554889350869291611f06918591166134c8565b82546101009290920a6001600160401b038181021990931691831602179091558454670de0b6b3a7640000911611159050611f795760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610684565b6001600160a01b03808816600090815260d560209081526040808320938a16835292905220611fa890856127b2565b5050509392505050565b6000610cf4825490565b60006110e883836128be565b6000611fd261149d565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b03161015801561203057506001600160801b038116600090815260d3602052604090205460ff16155b156107cd576001600160801b038116600090815260d360205260409020805460ff1916600117905561206562093a8082613435565b9050611fd5565b60004282106120bd5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610684565b825460005b8181101561213357600060026120d8848461335e565b6120e291906133c8565b9050848660000182815481106120fa576120fa613318565b600091825260209091206002909102015463ffffffff16111561211f5780925061212d565b61212a81600161335e565b91505b506120c2565b81156121a05761219b85612148600185613347565b8154811061215857612158613318565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611a0f565b6121a3565b60005b95945050505050565b6000610cf4826128e8565b60008080806121c686866128f3565b909450925050505b9250929050565b60006110e8836001600160a01b03841661291e565b6001600160401b038216600090815260d16020526040902061220c908261252d565b6122285760405162461bcd60e51b81526004016106849061348c565b61223360cd8261252d565b61224f5760405162461bcd60e51b81526004016106849061348c565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b03841617905561228861149d565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806122dd81846134ea565b610cf4919061345d565b60006110e88383612936565b6122fe6065836129a6565b61230a5761230a613510565b60006123176065846122e7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061234d90869060040161357e565b602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e919061341c565b606454604051634f9e72ad60e11b81529192506001600160a01b031690639f3ce55a9083906123c590869089908990600401613591565b6000604051808303818588803b1580156123de57600080fd5b505af11580156123f2573d6000803e3d6000fd5b505050505050505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244d57602002820191906000526020600020905b815481526020019060010190808311612439575b50505050509050919050565b612462816129b2565b6124c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610684565b60008051602061363a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6124fc836129c1565b6000825111806125095750805b156106985761096f8383612a01565b60006110e8836001600160a01b038416612aea565b60006110e8836001600160a01b038416612be4565b600082815260028401602052604081208290556110e58484612c2e565b600081602001516001600160801b0316600014158015610cf45750612595612586836125e5565b6001600160801b031642101590565b1592915050565b6125a4612d41565b815183516125b29190613435565b6001600160801b03168152602080830151908401516125d19190613435565b6001600160801b0316602082015292915050565b600081602001516001600160801b03166000036126315760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610684565b60208201518251610cf491906134ea565b61264a612d41565b6000806126556114a8565b6001600160a01b0316856001600160a01b0316036126975769d3c21bcecceda1000000915061269061268b6303bfc400426132d0565b6122cd565b9050612729565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c906126e3908890600401612fcc565b6040805180830381865afa1580156126ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272391906135b8565b90925090505b612761670de0b6b3a76400006127516001600160401b0387166001600160801b038616613393565b61275b91906133c8565b82612c3a565b6001600160801b03908116602086015216835250909392505050565b612785612d41565b8151835161279391906132d0565b6001600160801b03168152602080830151908401516125d191906132d0565b815480158015906127f4575042836127cb600184613347565b815481106127db576127db613318565b600091825260209091206002909102015463ffffffff16145b15612853578183612806600184613347565b8154811061281657612816613318565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b60008260000182815481106128d5576128d5613318565b9060005260206000200154905092915050565b6000610cf482611fb2565b600080806129018585611fbc565b600081815260029690960160205260409095205494959350505050565b60009081526001919091016020526040902054151590565b60008181526002830160205260408120548015158061295a575061295a8484612c82565b6110e85760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610684565b60006110e88383612c82565b6001600160a01b03163b151590565b6129ca81612459565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612a0c836129b2565b612a675760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610684565b600080846001600160a01b031684604051612a8291906135e7565b600060405180830381855af49150503d8060008114612abd576040519150601f19603f3d011682016040523d82523d6000602084013e612ac2565b606091505b50915091506121a3828260405180606001604052806027815260200161365a60279139612c8e565b60008181526001830160205260408120548015612bd3576000612b0e600183613347565b8554909150600090612b2290600190613347565b9050818114612b87576000866000018281548110612b4257612b42613318565b9060005260206000200154905080876000018481548110612b6557612b65613318565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612b9857612b98613603565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cf4565b6000915050610cf4565b5092915050565b6000612bf0838361291e565b612c2657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cf4565b506000610cf4565b60006110e88383612be4565b6000806000612c6e6040518060400160405280876001600160801b03168152602001866001600160801b0316815250612cc7565b805160209091015190969095509350505050565b60006110e88383612d0d565b60608315612c9d5750816110e8565b825115612cad5782518084602001fd5b8160405162461bcd60e51b8152600401610684919061357e565b612ccf612d41565b8151612ce0906303bfc400906134ea565b6001600160801b03166020808301829052830151612cfd9161345d565b6001600160801b03168152919050565b60006110e8838361291e565b604051806040016040528060006001600160401b03168152602001612d3c612d41565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146107cd57600080fd5b600060208284031215612d7f57600080fd5b81356110e881612d58565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b038316602082015260808101612dd16040830184612d8a565b949350505050565b80356001600160401b0381168114612df057600080fd5b919050565b6001600160801b03811681146107cd57600080fd5b600080600060608486031215612e1f57600080fd5b612e2884612dd9565b92506020840135612e3881612df5565b91506040840135612e4881612df5565b809150509250925092565b600081518084526020808501945080840160005b83811015612e8c5781516001600160a01b031687529582019590820190600101612e67565b509495945050505050565b6020815260006110e86020830184612e53565b60008060408385031215612ebd57600080fd5b8235612ec881612d58565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612eff57600080fd5b8235612f0a81612d58565b915060208301356001600160401b0380821115612f2657600080fd5b818501915085601f830112612f3a57600080fd5b813581811115612f4c57612f4c612ed6565b604051601f8201601f19908116603f01168101908382118183101715612f7457612f74612ed6565b81604052828152886020848701011115612f8d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215612fc157600080fd5b81356110e881612df5565b6001600160a01b0391909116815260200190565b60008060408385031215612ff357600080fd5b8235612ffe81612d58565b9150602083013561300e81612d58565b809150509250929050565b81516001600160401b031681526020808301516060830191612bdd90840182612d8a565b60008083601f84011261304f57600080fd5b5081356001600160401b0381111561306657600080fd5b6020830191508360208260051b85010111156121ce57600080fd5b6000806000806040858703121561309757600080fd5b84356001600160401b03808211156130ae57600080fd5b6130ba8883890161303d565b909650945060208701359150808211156130d357600080fd5b506130e08782880161303d565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561311557600080fd5b833561312081612d58565b92506020840135612e3881612d58565b60006020828403121561314257600080fd5b6110e882612dd9565b600081518084526020808501945080840160005b83811015612e8c5781518752958201959082019060010161315f565b60408152600061318e604083018561314b565b82810360208401526121a38185612e53565b600080604083850312156131b357600080fd5b50508035926020909101359150565b8281526040602082015260006110e56040830184612e53565b600080604083850312156131ee57600080fd5b612ffe83612dd9565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6020808252602c9082015260008051602061361a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061361a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156132f2576132f26132ba565b01949350505050565b60006020828403121561330d57600080fd5b81516110e881612df5565b634e487b7160e01b600052603260045260246000fd5b600060018201613340576133406132ba565b5060010190565b600082821015613359576133596132ba565b500390565b60008219821115613371576133716132ba565b500190565b60006020828403121561338857600080fd5b81516110e881612d58565b60008160001904831182151516156133ad576133ad6132ba565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826133d7576133d76133b2565b500490565b6001600160801b038416815260606020820181905260009061340090830185612e53565b8281036040840152613412818561314b565b9695505050505050565b60006020828403121561342e57600080fd5b5051919050565b60006001600160801b0383811690831681811015613455576134556132ba565b039392505050565b60006001600160801b0382811684821681151582840482111615613483576134836132ba565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b60006001600160401b0383811690831681811015613455576134556132ba565b60006001600160401b038281168482168083038211156132f2576132f26132ba565b60006001600160801b0383811680613504576135046133b2565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60005b83811015613541578181015183820152602001613529565b8381111561096f5750506000910152565b6000815180845261356a816020860160208601613526565b601f01601f19169290920160200192915050565b6020815260006110e86020830184613552565b60018060a01b03841681528260208201526060604082015260006121a36060830184613552565b600080604083850312156135cb57600080fd5b82516135d681612df5565b602084015190925061300e81612df5565b600082516135f9818460208701613526565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a603d06dd64eb647155abae241dff025fe55b1c46b78dea23b8b1cd9a7d1d3ac64736f6c634300080f0033",
775
- "deployedBytecode": "0x6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c62997b146101fa5780631c9bdb491461022e57806323342c38146102435780632c730351146102635780633659cfe61461028557806338b8765c146102a55780633b7d0946146102c55780634e91d0cb146102e55780634f1ef286146102f857806352d1902d1461030b578063592557061461032e5780635cc049681461034e578063646fb67c1461037b578063698766ee146103a857806382ae9ef7146103c857806382dabb21146103dd578063b292bf9514610411578063bfa5b32414610452578063c0202a4414610470578063c2811e2a146104cf578063c291230d146104ef578063c4c30dc214610502578063c891091314610525578063c9430f481461055b578063cc88370e1461057b578063d2e6d1c3146105a9578063d68ffecb146105dd578063f4359ce5146105fd578063f7f03fea14610614578063fa78668f14610634575b600080fd5b34801561017957600080fd5b506101e2610188366004612d6d565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190612da5565b60405180910390f35b34801561020657600080fd5b50610216670de0b6b3a764000081565b6040516001600160401b0390911681526020016101f1565b61024161023c366004612e0a565b61064c565b005b34801561024f57600080fd5b5061024161025e366004612d6d565b61069d565b34801561026f57600080fd5b506102786106f7565b6040516101f19190612e97565b34801561029157600080fd5b506102416102a0366004612d6d565b610708565b3480156102b157600080fd5b506102416102c0366004612d6d565b6107d0565b3480156102d157600080fd5b506102416102e0366004612d6d565b610975565b6102416102f3366004612eaa565b610a49565b610241610306366004612eec565b610a91565b34801561031757600080fd5b50610320610b46565b6040519081526020016101f1565b34801561033a57600080fd5b50610241610349366004612faf565b610bf4565b34801561035a57600080fd5b5060645461036e906001600160a01b031681565b6040516101f19190612fcc565b34801561038757600080fd5b5061039b610396366004612fe0565b610c82565b6040516101f19190613019565b3480156103b457600080fd5b506102416103c3366004613081565b610cfa565b3480156103d457600080fd5b5061024161106b565b3480156103e957600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041d57600080fd5b506104457f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f191906130ec565b34801561045e57600080fd5b5061044569d3c21bcecceda100000081565b34801561047c57600080fd5b506104b061048b366004612faf565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104db57600080fd5b506104456104ea366004613100565b6110ab565b6102416104fd366004613130565b6110ef565b34801561050e57600080fd5b50610517611173565b6040516101f192919061317b565b34801561053157600080fd5b50610216610540366004612d6d565b60d4602052600090815260409020546001600160401b031681565b34801561056757600080fd5b50610278610576366004613130565b611287565b34801561058757600080fd5b5061059b6105963660046131a0565b6112ab565b6040516101f19291906131c2565b3480156105b557600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e957600080fd5b506102416105f83660046131db565b61136b565b34801561060957600080fd5b5061044562093a8081565b34801561062057600080fd5b5060cc54610445906001600160801b031681565b34801561064057600080fd5b506104456303bfc40081565b6106546114a8565b6001600160a01b0316336001600160a01b03161461068d5760405162461bcd60e51b8152600401610684906131f7565b60405180910390fd5b61069883838361152c565b505050565b6106a56114a8565b6001600160a01b0316336001600160a01b0316146106d55760405162461bcd60e51b8152600401610684906131f7565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b606061070360cd6117e8565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107505760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107826117f5565b6001600160a01b0316146107a85760405162461bcd60e51b81526004016106849061325a565b6107b181611811565b604080516000808252602082019092526107cd91839190611849565b50565b6107d9816119b4565b6107f55760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b03169061082761149d565b9050806001600160801b0316826001600160801b03161061084757505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610910576108b162093a80846132d0565b6001600160a01b038516600090815260d2602090815260408083206001600160801b0380861685526002909101909252909120549194506108f591839116856119c1565b905061090b84846109068482611a0f565b611a2d565b61088a565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b61097d6114a8565b6001600160a01b0316336001600160a01b0316146109ad5760405162461bcd60e51b8152600401610684906131f7565b6109b6816119b4565b6109d25760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d260205260409020546001600160401b03166109fd826107d0565b610a0682611ac2565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b610a516114a8565b6001600160a01b0316336001600160a01b031614610a815760405162461bcd60e51b8152600401610684906131f7565b61069860658284611b92565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ad95760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b0b6117f5565b6001600160a01b031614610b315760405162461bcd60e51b81526004016106849061325a565b610b3a82611811565b610a8d82826001611849565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610be15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610684565b5060008051602061363a83398151915290565b610bfc6114a8565b6001600160a01b0316336001600160a01b031614610c2c5760405162461bcd60e51b8152600401610684906131f7565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610c779083906130ec565b60405180910390a150565b610c8a612d19565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610d405760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610684565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610d8f908590600401612fcc565b602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd091906132fb565b6001600160801b031611610e1e5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610684565b6001600160a01b038116600090815260d460205260408120905b85811015610eae57610e6f878783818110610e5557610e55613318565b9050602002016020810190610e6a9190612d6d565b6119b4565b15610e9e57610e9e878783818110610e8957610e89613318565b90506020020160208101906102c09190612d6d565b610ea78161332e565b9050610e38565b5060005b85811015610fa857848482818110610ecc57610ecc613318565b9050602002016020810190610ee19190613130565b6001600160401b0316826001016000898985818110610f0257610f02613318565b9050602002016020810190610f179190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611610f9857610f9683888884818110610f5557610f55613318565b9050602002016020810190610f6a9190612d6d565b878785818110610f7c57610f7c613318565b9050602002016020810190610f919190613130565b611ba8565b505b610fa18161332e565b9050610eb2565b5060005b8581101561106257848482818110610fc657610fc6613318565b9050602002016020810190610fdb9190613130565b6001600160401b0316826001016000898985818110610ffc57610ffc613318565b90506020020160208101906110119190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611156110525761105083888884818110610f5557610f55613318565b505b61105b8161332e565b9050610fac565b50505050505050565b600061107760cd611fb2565b905060005b818110156110a2576110926102c060cd83611fbc565b61109b8161332e565b905061107c565b506107cd611fc8565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206110e5906001600160801b03841661206c565b90505b9392505050565b60006110f961149d565b6001600160801b038116600090815260d3602052604090205490915060ff1661115a5760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610684565b60cc54610a8d90839083906001600160801b031661152c565b606080600061118260656121ac565b9050806001600160401b0381111561119c5761119c612ed6565b6040519080825280602002602001820160405280156111c5578160200160208202803683370190505b509250806001600160401b038111156111e0576111e0612ed6565b604051908082528060200260200182016040528015611209578160200160208202803683370190505b50915060005b81811015611281576112226065826121b7565b85838151811061123457611234613318565b6020026020010185848151811061124d5761124d613318565b60200260200101826001600160a01b03166001600160a01b03168152508281525050508061127a9061332e565b905061120f565b50509091565b6001600160401b038116600090815260d160205260409020606090610cf4906117e8565b600060606112b98484613347565b6112c490600161335e565b6001600160401b038111156112db576112db612ed6565b604051908082528060200260200182016040528015611304578160200160208202803683370190505b509050835b8381116113575761131b60cf82611fbc565b82828151811061132d5761132d613318565b6001600160a01b03909216602092830291909101909101528061134f8161332e565b915050611309565b5061136260cf611fb2565b91509250929050565b6113736114a8565b6001600160a01b0316336001600160a01b0316146113a35760405162461bcd60e51b8152600401610684906131f7565b6113ac816119b4565b156113ee5760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610684565b6113f960cf826121d5565b156114505760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610684565b61145a82826121ea565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b6000610703426122cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190613376565b6001600160801b03808316600090815260d3602052604081205461010090049091169081900361155c5750505050565b6001600160401b038416600090815260d16020526040812061157d90611fb2565b90508060000361158e575050505050565b6001600160401b038516600090815260d1602052604081206115af906117e8565b90506000826001600160401b038111156115cb576115cb612ed6565b6040519080825280602002602001820160405280156115f4578160200160208202803683370190505b50905060005b838110156116cc57600060d36000896001600160801b03166001600160801b03168152602001908152602001600020600101600085848151811061164057611640613318565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03908116925087906116829084908b16613393565b61168c91906133c8565b905061169b62093a8082613393565b8484815181106116ad576116ad613318565b6020026020010181815250505050806116c59061332e565b90506115fa565b5046876001600160401b03160361175e5760006116f360656001600160401b038a166122e7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611726908a90879087906004016133dc565b600060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b5050505050611794565b611794876001600160401b0316878484604051602001611780939291906133dc565b6040516020818303038152906040526122f3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516117d791906130ec565b60405180910390a350505050505050565b606060006110e8836123fd565b60008051602061363a833981519152546001600160a01b031690565b6118196114a8565b6001600160a01b0316336001600160a01b0316146107cd5760405162461bcd60e51b8152600401610684906131f7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561187c5761069883612459565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118d6575060408051601f3d908101601f191682019092526118d39181019061341c565b60015b6119395760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610684565b60008051602061363a83398151915281146119a85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610684565b506106988383836124f3565b6000610cf460cd836121d5565b6119c9612d41565b8284602001516119d99190613435565b6001600160801b031660208201526119f1828461345d565b84516119fd9190613435565b6001600160801b031681529392505050565b6000818360200151611a21919061345d565b83516110e89190613435565b6001600160801b03808316600090815260d36020526040902080548392600191611a5e9185916101009004166132d0565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611afc9083612518565b611b185760405162461bcd60e51b81526004016106849061348c565b611b2360cd83612518565b611b3f5760405162461bcd60e51b81526004016106849061348c565b611b4a60cf8361252d565b611b665760405162461bcd60e51b81526004016106849061348c565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b60006110e584846001600160a01b038516612542565b611bb0612d41565b6001600160a01b03808516600090815260d460209081526040808320938716835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b90920416928201929092529015611d7257611c1c866119b4565b8015611c2c5750611c2c8161255f565b15611cea576040805180820190915260018301546001600160801b038082168352600160801b909104166020820152611c65908261259c565b80516020918201516001600160801b03908116600160801b029116176001840155810151600283016000611c98846125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611cc591859116613435565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038616600090815260018401602052604081205484546001600160401b039182169286929091611d23918591166134a8565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038616600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b03851615611f7957611d8a866119b4565b611dc85760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610684565b611dd28786612642565b6040805180820190915260018401546001600160801b038082168352600160801b909104166020820152909450611e09908561277d565b80516020918201516001600160801b03908116600160801b029116176001840155840151600283016000611e3c876125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611e69918591166132d0565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038d16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b02919095161791909201558554889350869291611f06918591166134c8565b82546101009290920a6001600160401b038181021990931691831602179091558454670de0b6b3a7640000911611159050611f795760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610684565b6001600160a01b03808816600090815260d560209081526040808320938a16835292905220611fa890856127b2565b5050509392505050565b6000610cf4825490565b60006110e883836128be565b6000611fd261149d565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b03161015801561203057506001600160801b038116600090815260d3602052604090205460ff16155b156107cd576001600160801b038116600090815260d360205260409020805460ff1916600117905561206562093a8082613435565b9050611fd5565b60004282106120bd5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610684565b825460005b8181101561213357600060026120d8848461335e565b6120e291906133c8565b9050848660000182815481106120fa576120fa613318565b600091825260209091206002909102015463ffffffff16111561211f5780925061212d565b61212a81600161335e565b91505b506120c2565b81156121a05761219b85612148600185613347565b8154811061215857612158613318565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611a0f565b6121a3565b60005b95945050505050565b6000610cf4826128e8565b60008080806121c686866128f3565b909450925050505b9250929050565b60006110e8836001600160a01b03841661291e565b6001600160401b038216600090815260d16020526040902061220c908261252d565b6122285760405162461bcd60e51b81526004016106849061348c565b61223360cd8261252d565b61224f5760405162461bcd60e51b81526004016106849061348c565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b03841617905561228861149d565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806122dd81846134ea565b610cf4919061345d565b60006110e88383612936565b6122fe6065836129a6565b61230a5761230a613510565b60006123176065846122e7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061234d90869060040161357e565b602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e919061341c565b606454604051634f9e72ad60e11b81529192506001600160a01b031690639f3ce55a9083906123c590869089908990600401613591565b6000604051808303818588803b1580156123de57600080fd5b505af11580156123f2573d6000803e3d6000fd5b505050505050505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244d57602002820191906000526020600020905b815481526020019060010190808311612439575b50505050509050919050565b612462816129b2565b6124c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610684565b60008051602061363a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6124fc836129c1565b6000825111806125095750805b156106985761096f8383612a01565b60006110e8836001600160a01b038416612aea565b60006110e8836001600160a01b038416612be4565b600082815260028401602052604081208290556110e58484612c2e565b600081602001516001600160801b0316600014158015610cf45750612595612586836125e5565b6001600160801b031642101590565b1592915050565b6125a4612d41565b815183516125b29190613435565b6001600160801b03168152602080830151908401516125d19190613435565b6001600160801b0316602082015292915050565b600081602001516001600160801b03166000036126315760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610684565b60208201518251610cf491906134ea565b61264a612d41565b6000806126556114a8565b6001600160a01b0316856001600160a01b0316036126975769d3c21bcecceda1000000915061269061268b6303bfc400426132d0565b6122cd565b9050612729565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c906126e3908890600401612fcc565b6040805180830381865afa1580156126ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272391906135b8565b90925090505b612761670de0b6b3a76400006127516001600160401b0387166001600160801b038616613393565b61275b91906133c8565b82612c3a565b6001600160801b03908116602086015216835250909392505050565b612785612d41565b8151835161279391906132d0565b6001600160801b03168152602080830151908401516125d191906132d0565b815480158015906127f4575042836127cb600184613347565b815481106127db576127db613318565b600091825260209091206002909102015463ffffffff16145b15612853578183612806600184613347565b8154811061281657612816613318565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b60008260000182815481106128d5576128d5613318565b9060005260206000200154905092915050565b6000610cf482611fb2565b600080806129018585611fbc565b600081815260029690960160205260409095205494959350505050565b60009081526001919091016020526040902054151590565b60008181526002830160205260408120548015158061295a575061295a8484612c82565b6110e85760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610684565b60006110e88383612c82565b6001600160a01b03163b151590565b6129ca81612459565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612a0c836129b2565b612a675760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610684565b600080846001600160a01b031684604051612a8291906135e7565b600060405180830381855af49150503d8060008114612abd576040519150601f19603f3d011682016040523d82523d6000602084013e612ac2565b606091505b50915091506121a3828260405180606001604052806027815260200161365a60279139612c8e565b60008181526001830160205260408120548015612bd3576000612b0e600183613347565b8554909150600090612b2290600190613347565b9050818114612b87576000866000018281548110612b4257612b42613318565b9060005260206000200154905080876000018481548110612b6557612b65613318565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612b9857612b98613603565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cf4565b6000915050610cf4565b5092915050565b6000612bf0838361291e565b612c2657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cf4565b506000610cf4565b60006110e88383612be4565b6000806000612c6e6040518060400160405280876001600160801b03168152602001866001600160801b0316815250612cc7565b805160209091015190969095509350505050565b60006110e88383612d0d565b60608315612c9d5750816110e8565b825115612cad5782518084602001fd5b8160405162461bcd60e51b8152600401610684919061357e565b612ccf612d41565b8151612ce0906303bfc400906134ea565b6001600160801b03166020808301829052830151612cfd9161345d565b6001600160801b03168152919050565b60006110e8838361291e565b604051806040016040528060006001600160401b03168152602001612d3c612d41565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146107cd57600080fd5b600060208284031215612d7f57600080fd5b81356110e881612d58565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b038316602082015260808101612dd16040830184612d8a565b949350505050565b80356001600160401b0381168114612df057600080fd5b919050565b6001600160801b03811681146107cd57600080fd5b600080600060608486031215612e1f57600080fd5b612e2884612dd9565b92506020840135612e3881612df5565b91506040840135612e4881612df5565b809150509250925092565b600081518084526020808501945080840160005b83811015612e8c5781516001600160a01b031687529582019590820190600101612e67565b509495945050505050565b6020815260006110e86020830184612e53565b60008060408385031215612ebd57600080fd5b8235612ec881612d58565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612eff57600080fd5b8235612f0a81612d58565b915060208301356001600160401b0380821115612f2657600080fd5b818501915085601f830112612f3a57600080fd5b813581811115612f4c57612f4c612ed6565b604051601f8201601f19908116603f01168101908382118183101715612f7457612f74612ed6565b81604052828152886020848701011115612f8d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215612fc157600080fd5b81356110e881612df5565b6001600160a01b0391909116815260200190565b60008060408385031215612ff357600080fd5b8235612ffe81612d58565b9150602083013561300e81612d58565b809150509250929050565b81516001600160401b031681526020808301516060830191612bdd90840182612d8a565b60008083601f84011261304f57600080fd5b5081356001600160401b0381111561306657600080fd5b6020830191508360208260051b85010111156121ce57600080fd5b6000806000806040858703121561309757600080fd5b84356001600160401b03808211156130ae57600080fd5b6130ba8883890161303d565b909650945060208701359150808211156130d357600080fd5b506130e08782880161303d565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561311557600080fd5b833561312081612d58565b92506020840135612e3881612d58565b60006020828403121561314257600080fd5b6110e882612dd9565b600081518084526020808501945080840160005b83811015612e8c5781518752958201959082019060010161315f565b60408152600061318e604083018561314b565b82810360208401526121a38185612e53565b600080604083850312156131b357600080fd5b50508035926020909101359150565b8281526040602082015260006110e56040830184612e53565b600080604083850312156131ee57600080fd5b612ffe83612dd9565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6020808252602c9082015260008051602061361a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061361a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156132f2576132f26132ba565b01949350505050565b60006020828403121561330d57600080fd5b81516110e881612df5565b634e487b7160e01b600052603260045260246000fd5b600060018201613340576133406132ba565b5060010190565b600082821015613359576133596132ba565b500390565b60008219821115613371576133716132ba565b500190565b60006020828403121561338857600080fd5b81516110e881612d58565b60008160001904831182151516156133ad576133ad6132ba565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826133d7576133d76133b2565b500490565b6001600160801b038416815260606020820181905260009061340090830185612e53565b8281036040840152613412818561314b565b9695505050505050565b60006020828403121561342e57600080fd5b5051919050565b60006001600160801b0383811690831681811015613455576134556132ba565b039392505050565b60006001600160801b0382811684821681151582840482111615613483576134836132ba565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b60006001600160401b0383811690831681811015613455576134556132ba565b60006001600160401b038281168482168083038211156132f2576132f26132ba565b60006001600160801b0383811680613504576135046133b2565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60005b83811015613541578181015183820152602001613529565b8381111561096f5750506000910152565b6000815180845261356a816020860160208601613526565b601f01601f19169290920160200192915050565b6020815260006110e86020830184613552565b60018060a01b03841681528260208201526060604082015260006121a36060830184613552565b600080604083850312156135cb57600080fd5b82516135d681612df5565b602084015190925061300e81612df5565b600082516135f9818460208701613526565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a603d06dd64eb647155abae241dff025fe55b1c46b78dea23b8b1cd9a7d1d3ac64736f6c634300080f0033",
780
+ "bytecode": "0x6101006040523060e0523480156200001657600080fd5b5060405162003bcb38038062003bcb833981016040819052620000399162000119565b8181806001600160a01b038116620000865760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640160405180910390fd5b6001600160a01b03908116608052821660a05250620000b0620000c6602090811b620016a417901c565b6001600160801b031660c05250620001c4915050565b6000620000d342620000d8565b905090565b600062093a80620000ea818462000151565b620000f6919062000186565b92915050565b80516001600160a01b03811681146200011457600080fd5b919050565b600080604083850312156200012d57600080fd5b6200013883620000fc565b91506200014860208401620000fc565b90509250929050565b60006001600160801b03838116806200017a57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006001600160801b0382811684821681151582840482111615620001bb57634e487b7160e01b600052601160045260246000fd5b02949350505050565b60805160a05160c05160e05161399562000236600039600081816108e70152818161092701528181610d3c01528181610d7c0152610df401526000818161043201526123d20152600081816103fe01528181610ffb0152611f770152600081816105bf01526116b301526139956000f3fe6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c9bdb49146101fa578063210490281461020f57806323342c38146102225780632477bfbe146102425780632c730351146102705780633659cfe61461029257806338b8765c146102b25780633b7d0946146102d25780633e39b650146102f25780634f1ef2861461031557806352d1902d14610328578063592557061461033d5780635cc049681461035d578063646fb67c1461038a578063698766ee146103b757806382ae9ef7146103d757806382dabb21146103ec578063b292bf9514610420578063bfa5b32414610461578063c0202a441461047f578063c2811e2a146104de578063c291230d146104fe578063c891091314610511578063c9430f481461055f578063cc88370e1461057f578063d2e6d1c3146105ad578063d68ffecb146105e1578063f4359ce514610601578063f7f03fea14610618578063fa78668f14610638575b600080fd5b34801561017957600080fd5b506101e2610188366004613051565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190613089565b60405180910390f35b61020d6102083660046130e9565b610650565b005b61020d61021d366004613132565b6106b1565b34801561022e57600080fd5b5061020d61023d366004613051565b6106f9565b34801561024e57600080fd5b5061026261025d36600461315e565b610753565b6040519081526020016101f1565b34801561027c57600080fd5b506102856108cc565b6040516101f191906131bd565b34801561029e57600080fd5b5061020d6102ad366004613051565b6108dd565b3480156102be57600080fd5b5061020d6102cd366004613051565b6109a5565b3480156102de57600080fd5b5061020d6102ed366004613051565b610b4a565b3480156102fe57600080fd5b50610307610c1e565b6040516101f1929190613200565b61020d61032336600461323b565b610d32565b34801561033457600080fd5b50610262610de7565b34801561034957600080fd5b5061020d6103583660046132fe565b610e95565b34801561036957600080fd5b5060645461037d906001600160a01b031681565b6040516101f1919061331b565b34801561039657600080fd5b506103aa6103a536600461332f565b610f23565b6040516101f19190613368565b3480156103c357600080fd5b5061020d6103d23660046133d0565b610f9b565b3480156103e357600080fd5b5061020d611375565b3480156103f857600080fd5b5061037d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042c57600080fd5b506104547f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f1919061343b565b34801561046d57600080fd5b5061045469d3c21bcecceda100000081565b34801561048b57600080fd5b506104bf61049a3660046132fe565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104ea57600080fd5b506104546104f936600461344f565b6113b5565b61020d61050c36600461315e565b6113f9565b34801561051d57600080fd5b5061054761052c366004613051565b60d4602052600090815260409020546001600160401b031681565b6040516001600160401b0390911681526020016101f1565b34801561056b57600080fd5b5061028561057a36600461315e565b61148e565b34801561058b57600080fd5b5061059f61059a36600461347f565b6114b2565b6040516101f19291906134a1565b3480156105b957600080fd5b5061037d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105ed57600080fd5b5061020d6105fc3660046134ba565b611572565b34801561060d57600080fd5b5061045462093a8081565b34801561062457600080fd5b5060cc54610454906001600160801b031681565b34801561064457600080fd5b506104546303bfc40081565b6106586116af565b6001600160a01b0316336001600160a01b0316146106915760405162461bcd60e51b8152600401610688906134d6565b60405180910390fd5b61069c838383611733565b47156106ac576106ac33476119ea565b505050565b6106b96116af565b6001600160a01b0316336001600160a01b0316146106e95760405162461bcd60e51b8152600401610688906134d6565b6106ac60658284611b00565b5050565b6107016116af565b6001600160a01b0316336001600160a01b0316146107315760405162461bcd60e51b8152600401610688906134d6565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b600046826001600160401b03160361076d57506000919050565b6001600160401b038216600090815260d16020526040812061078e90611b16565b9050806000036107a15750600092915050565b6000816001600160401b038111156107bb576107bb613225565b6040519080825280602002602001820160405280156107e4578160200160208202803683370190505b5090506000826001600160401b0381111561080157610801613225565b60405190808252806020026020018201604052801561082a578160200160208202803683370190505b506064546040519192506001600160a01b031690635335dca29061085790600090869086906020016134ff565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016108829190613597565b602060405180830381865afa15801561089f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c391906135aa565b95945050505050565b60606108d860cd611b20565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109255760405162461bcd60e51b8152600401610688906135c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610957611b2d565b6001600160a01b03161461097d5760405162461bcd60e51b8152600401610688906135fd565b61098681611b49565b604080516000808252602082019092526109a291839190611b81565b50565b6109ae81611cec565b6109ca5760405162461bcd60e51b815260040161068890613637565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b0316906109fc6116a4565b9050806001600160801b0316826001600160801b031610610a1c57505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610ae557610a8662093a8084613673565b6001600160a01b038516600090815260d2602090815260408083206001600160801b038086168552600290910190925290912054919450610aca9183911685611cf9565b9050610ae08484610adb8482611d47565b611d65565b610a5f565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b610b526116af565b6001600160a01b0316336001600160a01b031614610b825760405162461bcd60e51b8152600401610688906134d6565b610b8b81611cec565b610ba75760405162461bcd60e51b815260040161068890613637565b6001600160a01b038116600090815260d260205260409020546001600160401b0316610bd2826109a5565b610bdb82611dfa565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b6060806000610c2d6065611eca565b9050806001600160401b03811115610c4757610c47613225565b604051908082528060200260200182016040528015610c70578160200160208202803683370190505b509250806001600160401b03811115610c8b57610c8b613225565b604051908082528060200260200182016040528015610cb4578160200160208202803683370190505b50915060005b81811015610d2c57610ccd606582611ed5565b858381518110610cdf57610cdf61369e565b60200260200101858481518110610cf857610cf861369e565b60200260200101826001600160a01b03166001600160a01b031681525082815250505080610d25906136b4565b9050610cba565b50509091565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d7a5760405162461bcd60e51b8152600401610688906135c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dac611b2d565b6001600160a01b031614610dd25760405162461bcd60e51b8152600401610688906135fd565b610ddb82611b49565b6106f582826001611b81565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610688565b5060008051602061391983398151915290565b610e9d6116af565b6001600160a01b0316336001600160a01b031614610ecd5760405162461bcd60e51b8152600401610688906134d6565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610f1890839061343b565b60405180910390a150565b610f2b612ffd565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610fe15760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610688565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061103090859060040161331b565b602060405180830381865afa15801561104d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107191906136cd565b6001600160801b0316116110bf5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610688565b6001600160a01b038116600090815260d460205260408120906110e183611ef3565b905060005b8681101561115c5761111d8888838181106111035761110361369e565b90506020020160208101906111189190613051565b611cec565b1561114c5761114c8888838181106111375761113761369e565b90506020020160208101906102cd9190613051565b611155816136b4565b90506110e6565b5060005b868110156112585785858281811061117a5761117a61369e565b905060200201602081019061118f919061315e565b6001600160401b03168360010160008a8a858181106111b0576111b061369e565b90506020020160208101906111c59190613051565b6001600160a01b031681526020810191909152604001600020546001600160401b0316111561124857611246848989848181106112045761120461369e565b90506020020160208101906112199190613051565b8489898681811061122c5761122c61369e565b9050602002016020810190611241919061315e565b611ff1565b505b611251816136b4565b9050611160565b5060005b86811015611311578585828181106112765761127661369e565b905060200201602081019061128b919061315e565b6001600160401b03168360010160008a8a858181106112ac576112ac61369e565b90506020020160208101906112c19190613051565b6001600160a01b031681526020810191909152604001600020546001600160401b031611611301576112ff848989848181106112045761120461369e565b505b61130a816136b4565b905061125c565b508154670de0b6b3a76400006001600160401b03909116111561136c5760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610688565b50505050505050565b600061138160cd611b16565b905060005b818110156113ac5761139c6102cd60cd836123b7565b6113a5816136b4565b9050611386565b506109a26123c3565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206113ef906001600160801b038416612466565b90505b9392505050565b60006114036116a4565b6001600160801b038116600090815260d3602052604090205490915060ff166114645760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610688565b60cc5461147d90839083906001600160801b0316611733565b5047156109a2576109a233476119ea565b6001600160401b038116600090815260d160205260409020606090610f9590611b20565b600060606114c084846136ea565b6114cb906001613701565b6001600160401b038111156114e2576114e2613225565b60405190808252806020026020018201604052801561150b578160200160208202803683370190505b509050835b83811161155e5761152260cf826123b7565b8282815181106115345761153461369e565b6001600160a01b039092166020928302919091019091015280611556816136b4565b915050611510565b5061156960cf611b16565b91509250929050565b61157a6116af565b6001600160a01b0316336001600160a01b0316146115aa5760405162461bcd60e51b8152600401610688906134d6565b6115b381611cec565b156115f55760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610688565b61160060cf826125a5565b156116575760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610688565b61166182826125ba565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b60006108d84261269d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561170f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190613719565b6001600160801b03808316600090815260d360205260408120546101009004909116908190036117635750505050565b6001600160401b038416600090815260d16020526040812061178490611b16565b905080600003611795575050505050565b6001600160401b038516600090815260d1602052604081206117b690611b20565b90506000826001600160401b038111156117d2576117d2613225565b6040519080825280602002602001820160405280156117fb578160200160208202803683370190505b50905060005b838110156118ce57600060d36000896001600160801b03166001600160801b0316815260200190815260200160002060010160008584815181106118475761184761369e565b6020908102919091018101516001600160a01b03168252810191909152604001600020546001600160801b039081169150869062093a809061188c9084908b16613736565b6118969190613736565b6118a0919061376b565b8383815181106118b2576118b261369e565b6020908102919091010152506118c7816136b4565b9050611801565b5046876001600160401b0316036119605760006118f560656001600160401b038a166126b7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611928908a90879087906004016134ff565b600060405180830381600087803b15801561194257600080fd5b505af1158015611956573d6000803e3d6000fd5b5050505050611996565b611996876001600160401b0316878484604051602001611982939291906134ff565b6040516020818303038152906040526126c3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516119d9919061343b565b60405180910390a350505050505050565b80471015611a3a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610688565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a87576040519150601f19603f3d011682016040523d82523d6000602084013e611a8c565b606091505b50509050806106ac5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b6064820152608401610688565b60006113ef84846001600160a01b038516612817565b6000610f95825490565b606060006113f283612834565b600080516020613919833981519152546001600160a01b031690565b611b516116af565b6001600160a01b0316336001600160a01b0316146109a25760405162461bcd60e51b8152600401610688906134d6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611bb4576106ac83612890565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c0e575060408051601f3d908101601f19168201909252611c0b918101906135aa565b60015b611c715760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610688565b6000805160206139198339815191528114611ce05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610688565b506106ac83838361292a565b6000610f9560cd836125a5565b611d01613025565b828460200151611d11919061377f565b6001600160801b03166020820152611d2982846137a7565b8451611d35919061377f565b6001600160801b031681529392505050565b6000818360200151611d5991906137a7565b83516113f2919061377f565b6001600160801b03808316600090815260d36020526040902080548392600191611d96918591610100900416613673565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611e34908361294f565b611e505760405162461bcd60e51b8152600401610688906137d6565b611e5b60cd8361294f565b611e775760405162461bcd60e51b8152600401610688906137d6565b611e8260cf83612964565b611e9e5760405162461bcd60e51b8152600401610688906137d6565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b6000610f9582612979565b6000808080611ee48686612984565b909450925050505b9250929050565b6040805180820190915260008082526020820152611f0f6116af565b6001600160a01b0316826001600160a01b031603611f605769d3c21bcecceda1000000611f48611f436303bfc40042613673565b61269d565b6001600160801b039081166020840152168152919050565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c90611fac90859060040161331b565b6040805180830381865afa158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4891906137f2565b919050565b611ff9613025565b6001600160a01b03808616600090815260d460209081526040808320938816835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b909204169282019290925290156121bb5761206587611cec565b80156120755750612075816129af565b15612133576040805180820190915260018301546001600160801b038082168352600160801b9091041660208201526120ae90826129ec565b80516020918201516001600160801b03908116600160801b0291161760018401558101516002830160006120e184612a35565b6001600160801b039081168252602082019290925260400160009081208054909261210e9185911661377f565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038716600090815260018401602052604081205484546001600160401b03918216928692909161216c91859116613821565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038716600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b0385161561237d576121d387611cec565b6122115760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610688565b612224866001600160401b038716612a92565b6040805180820190915260018401546001600160801b038082168352600160801b90910416602082015290945061225b9085612b0b565b80516020918201516001600160801b03908116600160801b02911617600184015584015160028301600061228e87612a35565b6001600160801b03908116825260208201929092526040016000908120805490926122bb91859116613673565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038e16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b0291909516179190920155855488935086929161235891859116613841565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b6001600160a01b03808916600090815260d560209081526040808320938b168352929052206123ac9085612b40565b505050949350505050565b60006113f28383612c4c565b60006123cd6116a4565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b031611801561242a57506001600160801b038116600090815260d3602052604090205460ff16155b156109a2576001600160801b038116600090815260d360205260409020805460ff1916600117905561245f62093a808261377f565b90506123d0565b60004282106124b75760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610688565b825460005b8181101561252d57600060026124d28484613701565b6124dc919061376b565b9050848660000182815481106124f4576124f461369e565b600091825260209091206002909102015463ffffffff16111561251957809250612527565b612524816001613701565b91505b506124bc565b811561259a57612595856125426001856136ea565b815481106125525761255261369e565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611d47565b6108c3565b600095945050505050565b60006113f2836001600160a01b038416612c76565b6001600160401b038216600090815260d1602052604090206125dc9082612964565b6125f85760405162461bcd60e51b8152600401610688906137d6565b61260360cd82612964565b61261f5760405162461bcd60e51b8152600401610688906137d6565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b0384161790556126586116a4565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806126ad8184613863565b610f9591906137a7565b60006113f28383612c8e565b6126ce606583612cfe565b6126da576126da613889565b60006126e76065846126b7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061271d908690600401613597565b602060405180830381865afa15801561273a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275e91906135aa565b9050803410156127a95760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e742063656c65722066656560501b6044820152606401610688565b606454604051634f9e72ad60e11b81526001600160a01b0390911690639f3ce55a9083906127df9086908990899060040161389f565b6000604051808303818588803b1580156127f857600080fd5b505af115801561280c573d6000803e3d6000fd5b505050505050505050565b600082815260028401602052604081208290556113ef8484612d0a565b60608160000180548060200260200160405190810160405280929190818152602001828054801561288457602002820191906000526020600020905b815481526020019060010190808311612870575b50505050509050919050565b61289981612d16565b6128fb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610688565b60008051602061391983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61293383612d25565b6000825111806129405750805b156106ac57610b448383612d65565b60006113f2836001600160a01b038416612e4e565b60006113f2836001600160a01b038416612f48565b6000610f9582611b16565b6000808061299285856123b7565b600081815260029690960160205260409095205494959350505050565b600081602001516001600160801b0316600014158015610f9557506129e56129d683612a35565b6001600160801b031642101590565b1592915050565b6129f4613025565b81518351612a02919061377f565b6001600160801b0316815260208083015190840151612a21919061377f565b6001600160801b0316602082015292915050565b600081602001516001600160801b0316600003612a815760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610688565b60208201518251610f959190613863565b612a9a613025565b8251612add90670de0b6b3a7640000906303bfc40090612ac49086906001600160801b0316613736565b612ace919061376b565b612ad8919061376b565b612f92565b6001600160801b03166020808301829052840151612afa916137a7565b6001600160801b0316815292915050565b612b13613025565b81518351612b219190613673565b6001600160801b0316815260208083015190840151612a219190613673565b81548015801590612b8257504283612b596001846136ea565b81548110612b6957612b6961369e565b600091825260209091206002909102015463ffffffff16145b15612be1578183612b946001846136ea565b81548110612ba457612ba461369e565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b6000826000018281548110612c6357612c6361369e565b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b600081815260028301602052604081205480151580612cb25750612cb28484612fac565b6113f25760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610688565b60006113f28383612fac565b60006113f28383612f48565b6001600160a01b03163b151590565b612d2e81612890565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612d7083612d16565b612dcb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610688565b600080846001600160a01b031684604051612de691906138c6565b600060405180830381855af49150503d8060008114612e21576040519150601f19603f3d011682016040523d82523d6000602084013e612e26565b606091505b50915091506108c3828260405180606001604052806027815260200161393960279139612fb8565b60008181526001830160205260408120548015612f37576000612e726001836136ea565b8554909150600090612e86906001906136ea565b9050818114612eeb576000866000018281548110612ea657612ea661369e565b9060005260206000200154905080876000018481548110612ec957612ec961369e565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612efc57612efc6138e2565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f95565b6000915050610f95565b5092915050565b6000612f548383612c76565b612f8a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f95565b506000610f95565b60006001600160801b03821115612fa857600080fd5b5090565b60006113f28383612ff1565b60608315612fc75750816113f2565b825115612fd75782518084602001fd5b8160405162461bcd60e51b81526004016106889190613597565b60006113f28383612c76565b604051806040016040528060006001600160401b03168152602001613020613025565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146109a257600080fd5b60006020828403121561306357600080fd5b81356113f28161303c565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b0383166020820152608081016130b5604083018461306e565b949350505050565b80356001600160401b0381168114611fec57600080fd5b6001600160801b03811681146109a257600080fd5b6000806000606084860312156130fe57600080fd5b613107846130bd565b92506020840135613117816130d4565b91506040840135613127816130d4565b809150509250925092565b6000806040838503121561314557600080fd5b82356131508161303c565b946020939093013593505050565b60006020828403121561317057600080fd5b6113f2826130bd565b600081518084526020808501945080840160005b838110156131b25781516001600160a01b03168752958201959082019060010161318d565b509495945050505050565b6020815260006113f26020830184613179565b600081518084526020808501945080840160005b838110156131b2578151875295820195908201906001016131e4565b60408152600061321360408301856131d0565b82810360208401526108c38185613179565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561324e57600080fd5b82356132598161303c565b915060208301356001600160401b038082111561327557600080fd5b818501915085601f83011261328957600080fd5b81358181111561329b5761329b613225565b604051601f8201601f19908116603f011681019083821181831017156132c3576132c3613225565b816040528281528860208487010111156132dc57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561331057600080fd5b81356113f2816130d4565b6001600160a01b0391909116815260200190565b6000806040838503121561334257600080fd5b823561334d8161303c565b9150602083013561335d8161303c565b809150509250929050565b81516001600160401b031681526020808301516060830191612f419084018261306e565b60008083601f84011261339e57600080fd5b5081356001600160401b038111156133b557600080fd5b6020830191508360208260051b8501011115611eec57600080fd5b600080600080604085870312156133e657600080fd5b84356001600160401b03808211156133fd57600080fd5b6134098883890161338c565b9096509450602087013591508082111561342257600080fd5b5061342f8782880161338c565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561346457600080fd5b833561346f8161303c565b925060208401356131178161303c565b6000806040838503121561349257600080fd5b50508035926020909101359150565b8281526040602082015260006113ef6040830184613179565b600080604083850312156134cd57600080fd5b61334d836130bd565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6001600160801b038416815260606020820181905260009061352390830185613179565b828103604084015261353581856131d0565b9695505050505050565b60005b8381101561355a578181015183820152602001613542565b83811115610b445750506000910152565b6000815180845261358381602086016020860161353f565b601f01601f19169290920160200192915050565b6020815260006113f2602083018461356b565b6000602082840312156135bc57600080fd5b5051919050565b6020808252602c908201526000805160206138f983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206138f983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156136955761369561365d565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016136c6576136c661365d565b5060010190565b6000602082840312156136df57600080fd5b81516113f2816130d4565b6000828210156136fc576136fc61365d565b500390565b600082198211156137145761371461365d565b500190565b60006020828403121561372b57600080fd5b81516113f28161303c565b60008160001904831182151516156137505761375061365d565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261377a5761377a613755565b500490565b60006001600160801b038381169083168181101561379f5761379f61365d565b039392505050565b60006001600160801b03828116848216811515828404821116156137cd576137cd61365d565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b6000806040838503121561380557600080fd5b8251613810816130d4565b602084015190925061335d816130d4565b60006001600160401b038381169083168181101561379f5761379f61365d565b60006001600160401b038281168482168083038211156136955761369561365d565b60006001600160801b038381168061387d5761387d613755565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60018060a01b03841681528260208201526060604082015260006108c3606083018461356b565b600082516138d881846020870161353f565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122046ddb78f43d263eaf04552224663708a3fed96b64f9c4635601f4b4aeff6285164736f6c634300080f0033",
781
+ "deployedBytecode": "0x6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c9bdb49146101fa578063210490281461020f57806323342c38146102225780632477bfbe146102425780632c730351146102705780633659cfe61461029257806338b8765c146102b25780633b7d0946146102d25780633e39b650146102f25780634f1ef2861461031557806352d1902d14610328578063592557061461033d5780635cc049681461035d578063646fb67c1461038a578063698766ee146103b757806382ae9ef7146103d757806382dabb21146103ec578063b292bf9514610420578063bfa5b32414610461578063c0202a441461047f578063c2811e2a146104de578063c291230d146104fe578063c891091314610511578063c9430f481461055f578063cc88370e1461057f578063d2e6d1c3146105ad578063d68ffecb146105e1578063f4359ce514610601578063f7f03fea14610618578063fa78668f14610638575b600080fd5b34801561017957600080fd5b506101e2610188366004613051565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190613089565b60405180910390f35b61020d6102083660046130e9565b610650565b005b61020d61021d366004613132565b6106b1565b34801561022e57600080fd5b5061020d61023d366004613051565b6106f9565b34801561024e57600080fd5b5061026261025d36600461315e565b610753565b6040519081526020016101f1565b34801561027c57600080fd5b506102856108cc565b6040516101f191906131bd565b34801561029e57600080fd5b5061020d6102ad366004613051565b6108dd565b3480156102be57600080fd5b5061020d6102cd366004613051565b6109a5565b3480156102de57600080fd5b5061020d6102ed366004613051565b610b4a565b3480156102fe57600080fd5b50610307610c1e565b6040516101f1929190613200565b61020d61032336600461323b565b610d32565b34801561033457600080fd5b50610262610de7565b34801561034957600080fd5b5061020d6103583660046132fe565b610e95565b34801561036957600080fd5b5060645461037d906001600160a01b031681565b6040516101f1919061331b565b34801561039657600080fd5b506103aa6103a536600461332f565b610f23565b6040516101f19190613368565b3480156103c357600080fd5b5061020d6103d23660046133d0565b610f9b565b3480156103e357600080fd5b5061020d611375565b3480156103f857600080fd5b5061037d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042c57600080fd5b506104547f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f1919061343b565b34801561046d57600080fd5b5061045469d3c21bcecceda100000081565b34801561048b57600080fd5b506104bf61049a3660046132fe565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104ea57600080fd5b506104546104f936600461344f565b6113b5565b61020d61050c36600461315e565b6113f9565b34801561051d57600080fd5b5061054761052c366004613051565b60d4602052600090815260409020546001600160401b031681565b6040516001600160401b0390911681526020016101f1565b34801561056b57600080fd5b5061028561057a36600461315e565b61148e565b34801561058b57600080fd5b5061059f61059a36600461347f565b6114b2565b6040516101f19291906134a1565b3480156105b957600080fd5b5061037d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105ed57600080fd5b5061020d6105fc3660046134ba565b611572565b34801561060d57600080fd5b5061045462093a8081565b34801561062457600080fd5b5060cc54610454906001600160801b031681565b34801561064457600080fd5b506104546303bfc40081565b6106586116af565b6001600160a01b0316336001600160a01b0316146106915760405162461bcd60e51b8152600401610688906134d6565b60405180910390fd5b61069c838383611733565b47156106ac576106ac33476119ea565b505050565b6106b96116af565b6001600160a01b0316336001600160a01b0316146106e95760405162461bcd60e51b8152600401610688906134d6565b6106ac60658284611b00565b5050565b6107016116af565b6001600160a01b0316336001600160a01b0316146107315760405162461bcd60e51b8152600401610688906134d6565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b600046826001600160401b03160361076d57506000919050565b6001600160401b038216600090815260d16020526040812061078e90611b16565b9050806000036107a15750600092915050565b6000816001600160401b038111156107bb576107bb613225565b6040519080825280602002602001820160405280156107e4578160200160208202803683370190505b5090506000826001600160401b0381111561080157610801613225565b60405190808252806020026020018201604052801561082a578160200160208202803683370190505b506064546040519192506001600160a01b031690635335dca29061085790600090869086906020016134ff565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016108829190613597565b602060405180830381865afa15801561089f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c391906135aa565b95945050505050565b60606108d860cd611b20565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109255760405162461bcd60e51b8152600401610688906135c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610957611b2d565b6001600160a01b03161461097d5760405162461bcd60e51b8152600401610688906135fd565b61098681611b49565b604080516000808252602082019092526109a291839190611b81565b50565b6109ae81611cec565b6109ca5760405162461bcd60e51b815260040161068890613637565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b0316906109fc6116a4565b9050806001600160801b0316826001600160801b031610610a1c57505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610ae557610a8662093a8084613673565b6001600160a01b038516600090815260d2602090815260408083206001600160801b038086168552600290910190925290912054919450610aca9183911685611cf9565b9050610ae08484610adb8482611d47565b611d65565b610a5f565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b610b526116af565b6001600160a01b0316336001600160a01b031614610b825760405162461bcd60e51b8152600401610688906134d6565b610b8b81611cec565b610ba75760405162461bcd60e51b815260040161068890613637565b6001600160a01b038116600090815260d260205260409020546001600160401b0316610bd2826109a5565b610bdb82611dfa565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b6060806000610c2d6065611eca565b9050806001600160401b03811115610c4757610c47613225565b604051908082528060200260200182016040528015610c70578160200160208202803683370190505b509250806001600160401b03811115610c8b57610c8b613225565b604051908082528060200260200182016040528015610cb4578160200160208202803683370190505b50915060005b81811015610d2c57610ccd606582611ed5565b858381518110610cdf57610cdf61369e565b60200260200101858481518110610cf857610cf861369e565b60200260200101826001600160a01b03166001600160a01b031681525082815250505080610d25906136b4565b9050610cba565b50509091565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d7a5760405162461bcd60e51b8152600401610688906135c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dac611b2d565b6001600160a01b031614610dd25760405162461bcd60e51b8152600401610688906135fd565b610ddb82611b49565b6106f582826001611b81565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610688565b5060008051602061391983398151915290565b610e9d6116af565b6001600160a01b0316336001600160a01b031614610ecd5760405162461bcd60e51b8152600401610688906134d6565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610f1890839061343b565b60405180910390a150565b610f2b612ffd565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610fe15760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610688565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061103090859060040161331b565b602060405180830381865afa15801561104d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107191906136cd565b6001600160801b0316116110bf5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610688565b6001600160a01b038116600090815260d460205260408120906110e183611ef3565b905060005b8681101561115c5761111d8888838181106111035761110361369e565b90506020020160208101906111189190613051565b611cec565b1561114c5761114c8888838181106111375761113761369e565b90506020020160208101906102cd9190613051565b611155816136b4565b90506110e6565b5060005b868110156112585785858281811061117a5761117a61369e565b905060200201602081019061118f919061315e565b6001600160401b03168360010160008a8a858181106111b0576111b061369e565b90506020020160208101906111c59190613051565b6001600160a01b031681526020810191909152604001600020546001600160401b0316111561124857611246848989848181106112045761120461369e565b90506020020160208101906112199190613051565b8489898681811061122c5761122c61369e565b9050602002016020810190611241919061315e565b611ff1565b505b611251816136b4565b9050611160565b5060005b86811015611311578585828181106112765761127661369e565b905060200201602081019061128b919061315e565b6001600160401b03168360010160008a8a858181106112ac576112ac61369e565b90506020020160208101906112c19190613051565b6001600160a01b031681526020810191909152604001600020546001600160401b031611611301576112ff848989848181106112045761120461369e565b505b61130a816136b4565b905061125c565b508154670de0b6b3a76400006001600160401b03909116111561136c5760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610688565b50505050505050565b600061138160cd611b16565b905060005b818110156113ac5761139c6102cd60cd836123b7565b6113a5816136b4565b9050611386565b506109a26123c3565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206113ef906001600160801b038416612466565b90505b9392505050565b60006114036116a4565b6001600160801b038116600090815260d3602052604090205490915060ff166114645760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610688565b60cc5461147d90839083906001600160801b0316611733565b5047156109a2576109a233476119ea565b6001600160401b038116600090815260d160205260409020606090610f9590611b20565b600060606114c084846136ea565b6114cb906001613701565b6001600160401b038111156114e2576114e2613225565b60405190808252806020026020018201604052801561150b578160200160208202803683370190505b509050835b83811161155e5761152260cf826123b7565b8282815181106115345761153461369e565b6001600160a01b039092166020928302919091019091015280611556816136b4565b915050611510565b5061156960cf611b16565b91509250929050565b61157a6116af565b6001600160a01b0316336001600160a01b0316146115aa5760405162461bcd60e51b8152600401610688906134d6565b6115b381611cec565b156115f55760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610688565b61160060cf826125a5565b156116575760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610688565b61166182826125ba565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b60006108d84261269d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561170f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190613719565b6001600160801b03808316600090815260d360205260408120546101009004909116908190036117635750505050565b6001600160401b038416600090815260d16020526040812061178490611b16565b905080600003611795575050505050565b6001600160401b038516600090815260d1602052604081206117b690611b20565b90506000826001600160401b038111156117d2576117d2613225565b6040519080825280602002602001820160405280156117fb578160200160208202803683370190505b50905060005b838110156118ce57600060d36000896001600160801b03166001600160801b0316815260200190815260200160002060010160008584815181106118475761184761369e565b6020908102919091018101516001600160a01b03168252810191909152604001600020546001600160801b039081169150869062093a809061188c9084908b16613736565b6118969190613736565b6118a0919061376b565b8383815181106118b2576118b261369e565b6020908102919091010152506118c7816136b4565b9050611801565b5046876001600160401b0316036119605760006118f560656001600160401b038a166126b7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611928908a90879087906004016134ff565b600060405180830381600087803b15801561194257600080fd5b505af1158015611956573d6000803e3d6000fd5b5050505050611996565b611996876001600160401b0316878484604051602001611982939291906134ff565b6040516020818303038152906040526126c3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516119d9919061343b565b60405180910390a350505050505050565b80471015611a3a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610688565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a87576040519150601f19603f3d011682016040523d82523d6000602084013e611a8c565b606091505b50509050806106ac5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b6064820152608401610688565b60006113ef84846001600160a01b038516612817565b6000610f95825490565b606060006113f283612834565b600080516020613919833981519152546001600160a01b031690565b611b516116af565b6001600160a01b0316336001600160a01b0316146109a25760405162461bcd60e51b8152600401610688906134d6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611bb4576106ac83612890565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c0e575060408051601f3d908101601f19168201909252611c0b918101906135aa565b60015b611c715760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610688565b6000805160206139198339815191528114611ce05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610688565b506106ac83838361292a565b6000610f9560cd836125a5565b611d01613025565b828460200151611d11919061377f565b6001600160801b03166020820152611d2982846137a7565b8451611d35919061377f565b6001600160801b031681529392505050565b6000818360200151611d5991906137a7565b83516113f2919061377f565b6001600160801b03808316600090815260d36020526040902080548392600191611d96918591610100900416613673565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611e34908361294f565b611e505760405162461bcd60e51b8152600401610688906137d6565b611e5b60cd8361294f565b611e775760405162461bcd60e51b8152600401610688906137d6565b611e8260cf83612964565b611e9e5760405162461bcd60e51b8152600401610688906137d6565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b6000610f9582612979565b6000808080611ee48686612984565b909450925050505b9250929050565b6040805180820190915260008082526020820152611f0f6116af565b6001600160a01b0316826001600160a01b031603611f605769d3c21bcecceda1000000611f48611f436303bfc40042613673565b61269d565b6001600160801b039081166020840152168152919050565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c90611fac90859060040161331b565b6040805180830381865afa158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4891906137f2565b919050565b611ff9613025565b6001600160a01b03808616600090815260d460209081526040808320938816835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b909204169282019290925290156121bb5761206587611cec565b80156120755750612075816129af565b15612133576040805180820190915260018301546001600160801b038082168352600160801b9091041660208201526120ae90826129ec565b80516020918201516001600160801b03908116600160801b0291161760018401558101516002830160006120e184612a35565b6001600160801b039081168252602082019290925260400160009081208054909261210e9185911661377f565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038716600090815260018401602052604081205484546001600160401b03918216928692909161216c91859116613821565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038716600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b0385161561237d576121d387611cec565b6122115760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610688565b612224866001600160401b038716612a92565b6040805180820190915260018401546001600160801b038082168352600160801b90910416602082015290945061225b9085612b0b565b80516020918201516001600160801b03908116600160801b02911617600184015584015160028301600061228e87612a35565b6001600160801b03908116825260208201929092526040016000908120805490926122bb91859116613673565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038e16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b0291909516179190920155855488935086929161235891859116613841565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b6001600160a01b03808916600090815260d560209081526040808320938b168352929052206123ac9085612b40565b505050949350505050565b60006113f28383612c4c565b60006123cd6116a4565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b031611801561242a57506001600160801b038116600090815260d3602052604090205460ff16155b156109a2576001600160801b038116600090815260d360205260409020805460ff1916600117905561245f62093a808261377f565b90506123d0565b60004282106124b75760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610688565b825460005b8181101561252d57600060026124d28484613701565b6124dc919061376b565b9050848660000182815481106124f4576124f461369e565b600091825260209091206002909102015463ffffffff16111561251957809250612527565b612524816001613701565b91505b506124bc565b811561259a57612595856125426001856136ea565b815481106125525761255261369e565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611d47565b6108c3565b600095945050505050565b60006113f2836001600160a01b038416612c76565b6001600160401b038216600090815260d1602052604090206125dc9082612964565b6125f85760405162461bcd60e51b8152600401610688906137d6565b61260360cd82612964565b61261f5760405162461bcd60e51b8152600401610688906137d6565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b0384161790556126586116a4565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806126ad8184613863565b610f9591906137a7565b60006113f28383612c8e565b6126ce606583612cfe565b6126da576126da613889565b60006126e76065846126b7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061271d908690600401613597565b602060405180830381865afa15801561273a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275e91906135aa565b9050803410156127a95760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e742063656c65722066656560501b6044820152606401610688565b606454604051634f9e72ad60e11b81526001600160a01b0390911690639f3ce55a9083906127df9086908990899060040161389f565b6000604051808303818588803b1580156127f857600080fd5b505af115801561280c573d6000803e3d6000fd5b505050505050505050565b600082815260028401602052604081208290556113ef8484612d0a565b60608160000180548060200260200160405190810160405280929190818152602001828054801561288457602002820191906000526020600020905b815481526020019060010190808311612870575b50505050509050919050565b61289981612d16565b6128fb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610688565b60008051602061391983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61293383612d25565b6000825111806129405750805b156106ac57610b448383612d65565b60006113f2836001600160a01b038416612e4e565b60006113f2836001600160a01b038416612f48565b6000610f9582611b16565b6000808061299285856123b7565b600081815260029690960160205260409095205494959350505050565b600081602001516001600160801b0316600014158015610f9557506129e56129d683612a35565b6001600160801b031642101590565b1592915050565b6129f4613025565b81518351612a02919061377f565b6001600160801b0316815260208083015190840151612a21919061377f565b6001600160801b0316602082015292915050565b600081602001516001600160801b0316600003612a815760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610688565b60208201518251610f959190613863565b612a9a613025565b8251612add90670de0b6b3a7640000906303bfc40090612ac49086906001600160801b0316613736565b612ace919061376b565b612ad8919061376b565b612f92565b6001600160801b03166020808301829052840151612afa916137a7565b6001600160801b0316815292915050565b612b13613025565b81518351612b219190613673565b6001600160801b0316815260208083015190840151612a219190613673565b81548015801590612b8257504283612b596001846136ea565b81548110612b6957612b6961369e565b600091825260209091206002909102015463ffffffff16145b15612be1578183612b946001846136ea565b81548110612ba457612ba461369e565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b6000826000018281548110612c6357612c6361369e565b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b600081815260028301602052604081205480151580612cb25750612cb28484612fac565b6113f25760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610688565b60006113f28383612fac565b60006113f28383612f48565b6001600160a01b03163b151590565b612d2e81612890565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612d7083612d16565b612dcb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610688565b600080846001600160a01b031684604051612de691906138c6565b600060405180830381855af49150503d8060008114612e21576040519150601f19603f3d011682016040523d82523d6000602084013e612e26565b606091505b50915091506108c3828260405180606001604052806027815260200161393960279139612fb8565b60008181526001830160205260408120548015612f37576000612e726001836136ea565b8554909150600090612e86906001906136ea565b9050818114612eeb576000866000018281548110612ea657612ea661369e565b9060005260206000200154905080876000018481548110612ec957612ec961369e565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612efc57612efc6138e2565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f95565b6000915050610f95565b5092915050565b6000612f548383612c76565b612f8a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f95565b506000610f95565b60006001600160801b03821115612fa857600080fd5b5090565b60006113f28383612ff1565b60608315612fc75750816113f2565b825115612fd75782518084602001fd5b8160405162461bcd60e51b81526004016106889190613597565b60006113f28383612c76565b604051806040016040528060006001600160401b03168152602001613020613025565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146109a257600080fd5b60006020828403121561306357600080fd5b81356113f28161303c565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b0383166020820152608081016130b5604083018461306e565b949350505050565b80356001600160401b0381168114611fec57600080fd5b6001600160801b03811681146109a257600080fd5b6000806000606084860312156130fe57600080fd5b613107846130bd565b92506020840135613117816130d4565b91506040840135613127816130d4565b809150509250925092565b6000806040838503121561314557600080fd5b82356131508161303c565b946020939093013593505050565b60006020828403121561317057600080fd5b6113f2826130bd565b600081518084526020808501945080840160005b838110156131b25781516001600160a01b03168752958201959082019060010161318d565b509495945050505050565b6020815260006113f26020830184613179565b600081518084526020808501945080840160005b838110156131b2578151875295820195908201906001016131e4565b60408152600061321360408301856131d0565b82810360208401526108c38185613179565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561324e57600080fd5b82356132598161303c565b915060208301356001600160401b038082111561327557600080fd5b818501915085601f83011261328957600080fd5b81358181111561329b5761329b613225565b604051601f8201601f19908116603f011681019083821181831017156132c3576132c3613225565b816040528281528860208487010111156132dc57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561331057600080fd5b81356113f2816130d4565b6001600160a01b0391909116815260200190565b6000806040838503121561334257600080fd5b823561334d8161303c565b9150602083013561335d8161303c565b809150509250929050565b81516001600160401b031681526020808301516060830191612f419084018261306e565b60008083601f84011261339e57600080fd5b5081356001600160401b038111156133b557600080fd5b6020830191508360208260051b8501011115611eec57600080fd5b600080600080604085870312156133e657600080fd5b84356001600160401b03808211156133fd57600080fd5b6134098883890161338c565b9096509450602087013591508082111561342257600080fd5b5061342f8782880161338c565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561346457600080fd5b833561346f8161303c565b925060208401356131178161303c565b6000806040838503121561349257600080fd5b50508035926020909101359150565b8281526040602082015260006113ef6040830184613179565b600080604083850312156134cd57600080fd5b61334d836130bd565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6001600160801b038416815260606020820181905260009061352390830185613179565b828103604084015261353581856131d0565b9695505050505050565b60005b8381101561355a578181015183820152602001613542565b83811115610b445750506000910152565b6000815180845261358381602086016020860161353f565b601f01601f19169290920160200192915050565b6020815260006113f2602083018461356b565b6000602082840312156135bc57600080fd5b5051919050565b6020808252602c908201526000805160206138f983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206138f983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156136955761369561365d565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016136c6576136c661365d565b5060010190565b6000602082840312156136df57600080fd5b81516113f2816130d4565b6000828210156136fc576136fc61365d565b500390565b600082198211156137145761371461365d565b500190565b60006020828403121561372b57600080fd5b81516113f28161303c565b60008160001904831182151516156137505761375061365d565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261377a5761377a613755565b500490565b60006001600160801b038381169083168181101561379f5761379f61365d565b039392505050565b60006001600160801b03828116848216811515828404821116156137cd576137cd61365d565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b6000806040838503121561380557600080fd5b8251613810816130d4565b602084015190925061335d816130d4565b60006001600160401b038381169083168181101561379f5761379f61365d565b60006001600160401b038281168482168083038211156136955761369561365d565b60006001600160801b038381168061387d5761387d613755565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60018060a01b03841681528260208201526060604082015260006108c3606083018461356b565b600082516138d881846020870161353f565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122046ddb78f43d263eaf04552224663708a3fed96b64f9c4635601f4b4aeff6285164736f6c634300080f0033",
776
782
  "linkReferences": {},
777
783
  "deployedLinkReferences": {}
778
784
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/b0346cebcf8301b67a28d59590cc4e88.json"
3
+ "buildInfo": "../../../../../build-info/a4ba5d2a874c9e63492c072e1e1ee71d.json"
4
4
  }
@@ -29,19 +29,6 @@
29
29
  "stateMutability": "view",
30
30
  "type": "function"
31
31
  },
32
- {
33
- "inputs": [],
34
- "name": "USER_VOTE_MAX_WEIGHT",
35
- "outputs": [
36
- {
37
- "internalType": "uint64",
38
- "name": "",
39
- "type": "uint64"
40
- }
41
- ],
42
- "stateMutability": "view",
43
- "type": "function"
44
- },
45
32
  {
46
33
  "inputs": [],
47
34
  "name": "WEEK",
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/b0346cebcf8301b67a28d59590cc4e88.json"
3
+ "buildInfo": "../../../../../build-info/a4ba5d2a874c9e63492c072e1e1ee71d.json"
4
4
  }