@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
@@ -254,28 +254,33 @@ const _abi = [
254
254
  },
255
255
  {
256
256
  inputs: [],
257
- name: "USER_VOTE_MAX_WEIGHT",
257
+ name: "WEEK",
258
258
  outputs: [
259
259
  {
260
- internalType: "uint64",
260
+ internalType: "uint128",
261
261
  name: "",
262
- type: "uint64",
262
+ type: "uint128",
263
263
  },
264
264
  ],
265
265
  stateMutability: "view",
266
266
  type: "function",
267
267
  },
268
268
  {
269
- inputs: [],
270
- name: "WEEK",
271
- outputs: [
269
+ inputs: [
272
270
  {
273
- internalType: "uint128",
274
- name: "",
275
- type: "uint128",
271
+ internalType: "address",
272
+ name: "_address",
273
+ type: "address",
274
+ },
275
+ {
276
+ internalType: "uint256",
277
+ name: "_chainId",
278
+ type: "uint256",
276
279
  },
277
280
  ],
278
- stateMutability: "view",
281
+ name: "addDestinationContract",
282
+ outputs: [],
283
+ stateMutability: "payable",
279
284
  type: "function",
280
285
  },
281
286
  {
@@ -296,24 +301,6 @@ const _abi = [
296
301
  stateMutability: "nonpayable",
297
302
  type: "function",
298
303
  },
299
- {
300
- inputs: [
301
- {
302
- internalType: "address",
303
- name: "_address",
304
- type: "address",
305
- },
306
- {
307
- internalType: "uint256",
308
- name: "_chainId",
309
- type: "uint256",
310
- },
311
- ],
312
- name: "addSidechainContract",
313
- outputs: [],
314
- stateMutability: "payable",
315
- type: "function",
316
- },
317
304
  {
318
305
  inputs: [
319
306
  {
@@ -409,6 +396,24 @@ const _abi = [
409
396
  stateMutability: "view",
410
397
  type: "function",
411
398
  },
399
+ {
400
+ inputs: [],
401
+ name: "getAllDestinationContracts",
402
+ outputs: [
403
+ {
404
+ internalType: "uint256[]",
405
+ name: "chainIds",
406
+ type: "uint256[]",
407
+ },
408
+ {
409
+ internalType: "address[]",
410
+ name: "addrs",
411
+ type: "address[]",
412
+ },
413
+ ],
414
+ stateMutability: "view",
415
+ type: "function",
416
+ },
412
417
  {
413
418
  inputs: [
414
419
  {
@@ -439,18 +444,19 @@ const _abi = [
439
444
  type: "function",
440
445
  },
441
446
  {
442
- inputs: [],
443
- name: "getAllSidechainContracts",
444
- outputs: [
447
+ inputs: [
445
448
  {
446
- internalType: "uint256[]",
447
- name: "chainIds",
448
- type: "uint256[]",
449
+ internalType: "uint64",
450
+ name: "chainId",
451
+ type: "uint64",
449
452
  },
453
+ ],
454
+ name: "getBroadcastResultFee",
455
+ outputs: [
450
456
  {
451
- internalType: "address[]",
452
- name: "addrs",
453
- type: "address[]",
457
+ internalType: "uint256",
458
+ name: "",
459
+ type: "uint256",
454
460
  },
455
461
  ],
456
462
  stateMutability: "view",
@@ -779,7 +785,7 @@ const _abi = [
779
785
  ];
780
786
 
781
787
  const _bytecode =
782
- "0x6101006040523060e0523480156200001657600080fd5b50604051620038ec380380620038ec833981016040819052620000399162000119565b8181806001600160a01b038116620000865760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640160405180910390fd5b6001600160a01b03908116608052821660a05250620000b0620000c6602090811b6200149d17901c565b6001600160801b031660c05250620001c4915050565b6000620000d342620000d8565b905090565b600062093a80620000ea818462000151565b620000f6919062000186565b92915050565b80516001600160a01b03811681146200011457600080fd5b919050565b600080604083850312156200012d57600080fd5b6200013883620000fc565b91506200014860208401620000fc565b90509250929050565b60006001600160801b03838116806200017a57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006001600160801b0382811684821681151582840482111615620001bb57634e487b7160e01b600052601160045260246000fd5b02949350505050565b60805160a05160c05160e0516136b662000236600039600081816107120152818161075201528181610a9b01528181610adb0152610b530152600081816104230152611fd70152600081816103ef01528181610d5a01526126ae0152600081816105bb01526114ac01526136b66000f3fe6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c62997b146101fa5780631c9bdb491461022e57806323342c38146102435780632c730351146102635780633659cfe61461028557806338b8765c146102a55780633b7d0946146102c55780634e91d0cb146102e55780634f1ef286146102f857806352d1902d1461030b578063592557061461032e5780635cc049681461034e578063646fb67c1461037b578063698766ee146103a857806382ae9ef7146103c857806382dabb21146103dd578063b292bf9514610411578063bfa5b32414610452578063c0202a4414610470578063c2811e2a146104cf578063c291230d146104ef578063c4c30dc214610502578063c891091314610525578063c9430f481461055b578063cc88370e1461057b578063d2e6d1c3146105a9578063d68ffecb146105dd578063f4359ce5146105fd578063f7f03fea14610614578063fa78668f14610634575b600080fd5b34801561017957600080fd5b506101e2610188366004612d6d565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190612da5565b60405180910390f35b34801561020657600080fd5b50610216670de0b6b3a764000081565b6040516001600160401b0390911681526020016101f1565b61024161023c366004612e0a565b61064c565b005b34801561024f57600080fd5b5061024161025e366004612d6d565b61069d565b34801561026f57600080fd5b506102786106f7565b6040516101f19190612e97565b34801561029157600080fd5b506102416102a0366004612d6d565b610708565b3480156102b157600080fd5b506102416102c0366004612d6d565b6107d0565b3480156102d157600080fd5b506102416102e0366004612d6d565b610975565b6102416102f3366004612eaa565b610a49565b610241610306366004612eec565b610a91565b34801561031757600080fd5b50610320610b46565b6040519081526020016101f1565b34801561033a57600080fd5b50610241610349366004612faf565b610bf4565b34801561035a57600080fd5b5060645461036e906001600160a01b031681565b6040516101f19190612fcc565b34801561038757600080fd5b5061039b610396366004612fe0565b610c82565b6040516101f19190613019565b3480156103b457600080fd5b506102416103c3366004613081565b610cfa565b3480156103d457600080fd5b5061024161106b565b3480156103e957600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041d57600080fd5b506104457f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f191906130ec565b34801561045e57600080fd5b5061044569d3c21bcecceda100000081565b34801561047c57600080fd5b506104b061048b366004612faf565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104db57600080fd5b506104456104ea366004613100565b6110ab565b6102416104fd366004613130565b6110ef565b34801561050e57600080fd5b50610517611173565b6040516101f192919061317b565b34801561053157600080fd5b50610216610540366004612d6d565b60d4602052600090815260409020546001600160401b031681565b34801561056757600080fd5b50610278610576366004613130565b611287565b34801561058757600080fd5b5061059b6105963660046131a0565b6112ab565b6040516101f19291906131c2565b3480156105b557600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e957600080fd5b506102416105f83660046131db565b61136b565b34801561060957600080fd5b5061044562093a8081565b34801561062057600080fd5b5060cc54610445906001600160801b031681565b34801561064057600080fd5b506104456303bfc40081565b6106546114a8565b6001600160a01b0316336001600160a01b03161461068d5760405162461bcd60e51b8152600401610684906131f7565b60405180910390fd5b61069883838361152c565b505050565b6106a56114a8565b6001600160a01b0316336001600160a01b0316146106d55760405162461bcd60e51b8152600401610684906131f7565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b606061070360cd6117e8565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107505760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107826117f5565b6001600160a01b0316146107a85760405162461bcd60e51b81526004016106849061325a565b6107b181611811565b604080516000808252602082019092526107cd91839190611849565b50565b6107d9816119b4565b6107f55760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b03169061082761149d565b9050806001600160801b0316826001600160801b03161061084757505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610910576108b162093a80846132d0565b6001600160a01b038516600090815260d2602090815260408083206001600160801b0380861685526002909101909252909120549194506108f591839116856119c1565b905061090b84846109068482611a0f565b611a2d565b61088a565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b61097d6114a8565b6001600160a01b0316336001600160a01b0316146109ad5760405162461bcd60e51b8152600401610684906131f7565b6109b6816119b4565b6109d25760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d260205260409020546001600160401b03166109fd826107d0565b610a0682611ac2565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b610a516114a8565b6001600160a01b0316336001600160a01b031614610a815760405162461bcd60e51b8152600401610684906131f7565b61069860658284611b92565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ad95760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b0b6117f5565b6001600160a01b031614610b315760405162461bcd60e51b81526004016106849061325a565b610b3a82611811565b610a8d82826001611849565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610be15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610684565b5060008051602061363a83398151915290565b610bfc6114a8565b6001600160a01b0316336001600160a01b031614610c2c5760405162461bcd60e51b8152600401610684906131f7565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610c779083906130ec565b60405180910390a150565b610c8a612d19565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610d405760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610684565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610d8f908590600401612fcc565b602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd091906132fb565b6001600160801b031611610e1e5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610684565b6001600160a01b038116600090815260d460205260408120905b85811015610eae57610e6f878783818110610e5557610e55613318565b9050602002016020810190610e6a9190612d6d565b6119b4565b15610e9e57610e9e878783818110610e8957610e89613318565b90506020020160208101906102c09190612d6d565b610ea78161332e565b9050610e38565b5060005b85811015610fa857848482818110610ecc57610ecc613318565b9050602002016020810190610ee19190613130565b6001600160401b0316826001016000898985818110610f0257610f02613318565b9050602002016020810190610f179190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611610f9857610f9683888884818110610f5557610f55613318565b9050602002016020810190610f6a9190612d6d565b878785818110610f7c57610f7c613318565b9050602002016020810190610f919190613130565b611ba8565b505b610fa18161332e565b9050610eb2565b5060005b8581101561106257848482818110610fc657610fc6613318565b9050602002016020810190610fdb9190613130565b6001600160401b0316826001016000898985818110610ffc57610ffc613318565b90506020020160208101906110119190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611156110525761105083888884818110610f5557610f55613318565b505b61105b8161332e565b9050610fac565b50505050505050565b600061107760cd611fb2565b905060005b818110156110a2576110926102c060cd83611fbc565b61109b8161332e565b905061107c565b506107cd611fc8565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206110e5906001600160801b03841661206c565b90505b9392505050565b60006110f961149d565b6001600160801b038116600090815260d3602052604090205490915060ff1661115a5760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610684565b60cc54610a8d90839083906001600160801b031661152c565b606080600061118260656121ac565b9050806001600160401b0381111561119c5761119c612ed6565b6040519080825280602002602001820160405280156111c5578160200160208202803683370190505b509250806001600160401b038111156111e0576111e0612ed6565b604051908082528060200260200182016040528015611209578160200160208202803683370190505b50915060005b81811015611281576112226065826121b7565b85838151811061123457611234613318565b6020026020010185848151811061124d5761124d613318565b60200260200101826001600160a01b03166001600160a01b03168152508281525050508061127a9061332e565b905061120f565b50509091565b6001600160401b038116600090815260d160205260409020606090610cf4906117e8565b600060606112b98484613347565b6112c490600161335e565b6001600160401b038111156112db576112db612ed6565b604051908082528060200260200182016040528015611304578160200160208202803683370190505b509050835b8381116113575761131b60cf82611fbc565b82828151811061132d5761132d613318565b6001600160a01b03909216602092830291909101909101528061134f8161332e565b915050611309565b5061136260cf611fb2565b91509250929050565b6113736114a8565b6001600160a01b0316336001600160a01b0316146113a35760405162461bcd60e51b8152600401610684906131f7565b6113ac816119b4565b156113ee5760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610684565b6113f960cf826121d5565b156114505760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610684565b61145a82826121ea565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b6000610703426122cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190613376565b6001600160801b03808316600090815260d3602052604081205461010090049091169081900361155c5750505050565b6001600160401b038416600090815260d16020526040812061157d90611fb2565b90508060000361158e575050505050565b6001600160401b038516600090815260d1602052604081206115af906117e8565b90506000826001600160401b038111156115cb576115cb612ed6565b6040519080825280602002602001820160405280156115f4578160200160208202803683370190505b50905060005b838110156116cc57600060d36000896001600160801b03166001600160801b03168152602001908152602001600020600101600085848151811061164057611640613318565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03908116925087906116829084908b16613393565b61168c91906133c8565b905061169b62093a8082613393565b8484815181106116ad576116ad613318565b6020026020010181815250505050806116c59061332e565b90506115fa565b5046876001600160401b03160361175e5760006116f360656001600160401b038a166122e7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611726908a90879087906004016133dc565b600060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b5050505050611794565b611794876001600160401b0316878484604051602001611780939291906133dc565b6040516020818303038152906040526122f3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516117d791906130ec565b60405180910390a350505050505050565b606060006110e8836123fd565b60008051602061363a833981519152546001600160a01b031690565b6118196114a8565b6001600160a01b0316336001600160a01b0316146107cd5760405162461bcd60e51b8152600401610684906131f7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561187c5761069883612459565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118d6575060408051601f3d908101601f191682019092526118d39181019061341c565b60015b6119395760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610684565b60008051602061363a83398151915281146119a85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610684565b506106988383836124f3565b6000610cf460cd836121d5565b6119c9612d41565b8284602001516119d99190613435565b6001600160801b031660208201526119f1828461345d565b84516119fd9190613435565b6001600160801b031681529392505050565b6000818360200151611a21919061345d565b83516110e89190613435565b6001600160801b03808316600090815260d36020526040902080548392600191611a5e9185916101009004166132d0565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611afc9083612518565b611b185760405162461bcd60e51b81526004016106849061348c565b611b2360cd83612518565b611b3f5760405162461bcd60e51b81526004016106849061348c565b611b4a60cf8361252d565b611b665760405162461bcd60e51b81526004016106849061348c565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b60006110e584846001600160a01b038516612542565b611bb0612d41565b6001600160a01b03808516600090815260d460209081526040808320938716835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b90920416928201929092529015611d7257611c1c866119b4565b8015611c2c5750611c2c8161255f565b15611cea576040805180820190915260018301546001600160801b038082168352600160801b909104166020820152611c65908261259c565b80516020918201516001600160801b03908116600160801b029116176001840155810151600283016000611c98846125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611cc591859116613435565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038616600090815260018401602052604081205484546001600160401b039182169286929091611d23918591166134a8565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038616600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b03851615611f7957611d8a866119b4565b611dc85760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610684565b611dd28786612642565b6040805180820190915260018401546001600160801b038082168352600160801b909104166020820152909450611e09908561277d565b80516020918201516001600160801b03908116600160801b029116176001840155840151600283016000611e3c876125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611e69918591166132d0565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038d16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b02919095161791909201558554889350869291611f06918591166134c8565b82546101009290920a6001600160401b038181021990931691831602179091558454670de0b6b3a7640000911611159050611f795760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610684565b6001600160a01b03808816600090815260d560209081526040808320938a16835292905220611fa890856127b2565b5050509392505050565b6000610cf4825490565b60006110e883836128be565b6000611fd261149d565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b03161015801561203057506001600160801b038116600090815260d3602052604090205460ff16155b156107cd576001600160801b038116600090815260d360205260409020805460ff1916600117905561206562093a8082613435565b9050611fd5565b60004282106120bd5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610684565b825460005b8181101561213357600060026120d8848461335e565b6120e291906133c8565b9050848660000182815481106120fa576120fa613318565b600091825260209091206002909102015463ffffffff16111561211f5780925061212d565b61212a81600161335e565b91505b506120c2565b81156121a05761219b85612148600185613347565b8154811061215857612158613318565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611a0f565b6121a3565b60005b95945050505050565b6000610cf4826128e8565b60008080806121c686866128f3565b909450925050505b9250929050565b60006110e8836001600160a01b03841661291e565b6001600160401b038216600090815260d16020526040902061220c908261252d565b6122285760405162461bcd60e51b81526004016106849061348c565b61223360cd8261252d565b61224f5760405162461bcd60e51b81526004016106849061348c565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b03841617905561228861149d565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806122dd81846134ea565b610cf4919061345d565b60006110e88383612936565b6122fe6065836129a6565b61230a5761230a613510565b60006123176065846122e7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061234d90869060040161357e565b602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e919061341c565b606454604051634f9e72ad60e11b81529192506001600160a01b031690639f3ce55a9083906123c590869089908990600401613591565b6000604051808303818588803b1580156123de57600080fd5b505af11580156123f2573d6000803e3d6000fd5b505050505050505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244d57602002820191906000526020600020905b815481526020019060010190808311612439575b50505050509050919050565b612462816129b2565b6124c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610684565b60008051602061363a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6124fc836129c1565b6000825111806125095750805b156106985761096f8383612a01565b60006110e8836001600160a01b038416612aea565b60006110e8836001600160a01b038416612be4565b600082815260028401602052604081208290556110e58484612c2e565b600081602001516001600160801b0316600014158015610cf45750612595612586836125e5565b6001600160801b031642101590565b1592915050565b6125a4612d41565b815183516125b29190613435565b6001600160801b03168152602080830151908401516125d19190613435565b6001600160801b0316602082015292915050565b600081602001516001600160801b03166000036126315760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610684565b60208201518251610cf491906134ea565b61264a612d41565b6000806126556114a8565b6001600160a01b0316856001600160a01b0316036126975769d3c21bcecceda1000000915061269061268b6303bfc400426132d0565b6122cd565b9050612729565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c906126e3908890600401612fcc565b6040805180830381865afa1580156126ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272391906135b8565b90925090505b612761670de0b6b3a76400006127516001600160401b0387166001600160801b038616613393565b61275b91906133c8565b82612c3a565b6001600160801b03908116602086015216835250909392505050565b612785612d41565b8151835161279391906132d0565b6001600160801b03168152602080830151908401516125d191906132d0565b815480158015906127f4575042836127cb600184613347565b815481106127db576127db613318565b600091825260209091206002909102015463ffffffff16145b15612853578183612806600184613347565b8154811061281657612816613318565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b60008260000182815481106128d5576128d5613318565b9060005260206000200154905092915050565b6000610cf482611fb2565b600080806129018585611fbc565b600081815260029690960160205260409095205494959350505050565b60009081526001919091016020526040902054151590565b60008181526002830160205260408120548015158061295a575061295a8484612c82565b6110e85760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610684565b60006110e88383612c82565b6001600160a01b03163b151590565b6129ca81612459565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612a0c836129b2565b612a675760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610684565b600080846001600160a01b031684604051612a8291906135e7565b600060405180830381855af49150503d8060008114612abd576040519150601f19603f3d011682016040523d82523d6000602084013e612ac2565b606091505b50915091506121a3828260405180606001604052806027815260200161365a60279139612c8e565b60008181526001830160205260408120548015612bd3576000612b0e600183613347565b8554909150600090612b2290600190613347565b9050818114612b87576000866000018281548110612b4257612b42613318565b9060005260206000200154905080876000018481548110612b6557612b65613318565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612b9857612b98613603565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cf4565b6000915050610cf4565b5092915050565b6000612bf0838361291e565b612c2657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cf4565b506000610cf4565b60006110e88383612be4565b6000806000612c6e6040518060400160405280876001600160801b03168152602001866001600160801b0316815250612cc7565b805160209091015190969095509350505050565b60006110e88383612d0d565b60608315612c9d5750816110e8565b825115612cad5782518084602001fd5b8160405162461bcd60e51b8152600401610684919061357e565b612ccf612d41565b8151612ce0906303bfc400906134ea565b6001600160801b03166020808301829052830151612cfd9161345d565b6001600160801b03168152919050565b60006110e8838361291e565b604051806040016040528060006001600160401b03168152602001612d3c612d41565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146107cd57600080fd5b600060208284031215612d7f57600080fd5b81356110e881612d58565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b038316602082015260808101612dd16040830184612d8a565b949350505050565b80356001600160401b0381168114612df057600080fd5b919050565b6001600160801b03811681146107cd57600080fd5b600080600060608486031215612e1f57600080fd5b612e2884612dd9565b92506020840135612e3881612df5565b91506040840135612e4881612df5565b809150509250925092565b600081518084526020808501945080840160005b83811015612e8c5781516001600160a01b031687529582019590820190600101612e67565b509495945050505050565b6020815260006110e86020830184612e53565b60008060408385031215612ebd57600080fd5b8235612ec881612d58565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612eff57600080fd5b8235612f0a81612d58565b915060208301356001600160401b0380821115612f2657600080fd5b818501915085601f830112612f3a57600080fd5b813581811115612f4c57612f4c612ed6565b604051601f8201601f19908116603f01168101908382118183101715612f7457612f74612ed6565b81604052828152886020848701011115612f8d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215612fc157600080fd5b81356110e881612df5565b6001600160a01b0391909116815260200190565b60008060408385031215612ff357600080fd5b8235612ffe81612d58565b9150602083013561300e81612d58565b809150509250929050565b81516001600160401b031681526020808301516060830191612bdd90840182612d8a565b60008083601f84011261304f57600080fd5b5081356001600160401b0381111561306657600080fd5b6020830191508360208260051b85010111156121ce57600080fd5b6000806000806040858703121561309757600080fd5b84356001600160401b03808211156130ae57600080fd5b6130ba8883890161303d565b909650945060208701359150808211156130d357600080fd5b506130e08782880161303d565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561311557600080fd5b833561312081612d58565b92506020840135612e3881612d58565b60006020828403121561314257600080fd5b6110e882612dd9565b600081518084526020808501945080840160005b83811015612e8c5781518752958201959082019060010161315f565b60408152600061318e604083018561314b565b82810360208401526121a38185612e53565b600080604083850312156131b357600080fd5b50508035926020909101359150565b8281526040602082015260006110e56040830184612e53565b600080604083850312156131ee57600080fd5b612ffe83612dd9565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6020808252602c9082015260008051602061361a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061361a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156132f2576132f26132ba565b01949350505050565b60006020828403121561330d57600080fd5b81516110e881612df5565b634e487b7160e01b600052603260045260246000fd5b600060018201613340576133406132ba565b5060010190565b600082821015613359576133596132ba565b500390565b60008219821115613371576133716132ba565b500190565b60006020828403121561338857600080fd5b81516110e881612d58565b60008160001904831182151516156133ad576133ad6132ba565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826133d7576133d76133b2565b500490565b6001600160801b038416815260606020820181905260009061340090830185612e53565b8281036040840152613412818561314b565b9695505050505050565b60006020828403121561342e57600080fd5b5051919050565b60006001600160801b0383811690831681811015613455576134556132ba565b039392505050565b60006001600160801b0382811684821681151582840482111615613483576134836132ba565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b60006001600160401b0383811690831681811015613455576134556132ba565b60006001600160401b038281168482168083038211156132f2576132f26132ba565b60006001600160801b0383811680613504576135046133b2565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60005b83811015613541578181015183820152602001613529565b8381111561096f5750506000910152565b6000815180845261356a816020860160208601613526565b601f01601f19169290920160200192915050565b6020815260006110e86020830184613552565b60018060a01b03841681528260208201526060604082015260006121a36060830184613552565b600080604083850312156135cb57600080fd5b82516135d681612df5565b602084015190925061300e81612df5565b600082516135f9818460208701613526565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a603d06dd64eb647155abae241dff025fe55b1c46b78dea23b8b1cd9a7d1d3ac64736f6c634300080f0033";
788
+ "0x6101006040523060e0523480156200001657600080fd5b5060405162003bcb38038062003bcb833981016040819052620000399162000119565b8181806001600160a01b038116620000865760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640160405180910390fd5b6001600160a01b03908116608052821660a05250620000b0620000c6602090811b620016a417901c565b6001600160801b031660c05250620001c4915050565b6000620000d342620000d8565b905090565b600062093a80620000ea818462000151565b620000f6919062000186565b92915050565b80516001600160a01b03811681146200011457600080fd5b919050565b600080604083850312156200012d57600080fd5b6200013883620000fc565b91506200014860208401620000fc565b90509250929050565b60006001600160801b03838116806200017a57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006001600160801b0382811684821681151582840482111615620001bb57634e487b7160e01b600052601160045260246000fd5b02949350505050565b60805160a05160c05160e05161399562000236600039600081816108e70152818161092701528181610d3c01528181610d7c0152610df401526000818161043201526123d20152600081816103fe01528181610ffb0152611f770152600081816105bf01526116b301526139956000f3fe6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c9bdb49146101fa578063210490281461020f57806323342c38146102225780632477bfbe146102425780632c730351146102705780633659cfe61461029257806338b8765c146102b25780633b7d0946146102d25780633e39b650146102f25780634f1ef2861461031557806352d1902d14610328578063592557061461033d5780635cc049681461035d578063646fb67c1461038a578063698766ee146103b757806382ae9ef7146103d757806382dabb21146103ec578063b292bf9514610420578063bfa5b32414610461578063c0202a441461047f578063c2811e2a146104de578063c291230d146104fe578063c891091314610511578063c9430f481461055f578063cc88370e1461057f578063d2e6d1c3146105ad578063d68ffecb146105e1578063f4359ce514610601578063f7f03fea14610618578063fa78668f14610638575b600080fd5b34801561017957600080fd5b506101e2610188366004613051565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190613089565b60405180910390f35b61020d6102083660046130e9565b610650565b005b61020d61021d366004613132565b6106b1565b34801561022e57600080fd5b5061020d61023d366004613051565b6106f9565b34801561024e57600080fd5b5061026261025d36600461315e565b610753565b6040519081526020016101f1565b34801561027c57600080fd5b506102856108cc565b6040516101f191906131bd565b34801561029e57600080fd5b5061020d6102ad366004613051565b6108dd565b3480156102be57600080fd5b5061020d6102cd366004613051565b6109a5565b3480156102de57600080fd5b5061020d6102ed366004613051565b610b4a565b3480156102fe57600080fd5b50610307610c1e565b6040516101f1929190613200565b61020d61032336600461323b565b610d32565b34801561033457600080fd5b50610262610de7565b34801561034957600080fd5b5061020d6103583660046132fe565b610e95565b34801561036957600080fd5b5060645461037d906001600160a01b031681565b6040516101f1919061331b565b34801561039657600080fd5b506103aa6103a536600461332f565b610f23565b6040516101f19190613368565b3480156103c357600080fd5b5061020d6103d23660046133d0565b610f9b565b3480156103e357600080fd5b5061020d611375565b3480156103f857600080fd5b5061037d7f000000000000000000000000000000000000000000000000000000000000000081565b34801561042c57600080fd5b506104547f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f1919061343b565b34801561046d57600080fd5b5061045469d3c21bcecceda100000081565b34801561048b57600080fd5b506104bf61049a3660046132fe565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104ea57600080fd5b506104546104f936600461344f565b6113b5565b61020d61050c36600461315e565b6113f9565b34801561051d57600080fd5b5061054761052c366004613051565b60d4602052600090815260409020546001600160401b031681565b6040516001600160401b0390911681526020016101f1565b34801561056b57600080fd5b5061028561057a36600461315e565b61148e565b34801561058b57600080fd5b5061059f61059a36600461347f565b6114b2565b6040516101f19291906134a1565b3480156105b957600080fd5b5061037d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105ed57600080fd5b5061020d6105fc3660046134ba565b611572565b34801561060d57600080fd5b5061045462093a8081565b34801561062457600080fd5b5060cc54610454906001600160801b031681565b34801561064457600080fd5b506104546303bfc40081565b6106586116af565b6001600160a01b0316336001600160a01b0316146106915760405162461bcd60e51b8152600401610688906134d6565b60405180910390fd5b61069c838383611733565b47156106ac576106ac33476119ea565b505050565b6106b96116af565b6001600160a01b0316336001600160a01b0316146106e95760405162461bcd60e51b8152600401610688906134d6565b6106ac60658284611b00565b5050565b6107016116af565b6001600160a01b0316336001600160a01b0316146107315760405162461bcd60e51b8152600401610688906134d6565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b600046826001600160401b03160361076d57506000919050565b6001600160401b038216600090815260d16020526040812061078e90611b16565b9050806000036107a15750600092915050565b6000816001600160401b038111156107bb576107bb613225565b6040519080825280602002602001820160405280156107e4578160200160208202803683370190505b5090506000826001600160401b0381111561080157610801613225565b60405190808252806020026020018201604052801561082a578160200160208202803683370190505b506064546040519192506001600160a01b031690635335dca29061085790600090869086906020016134ff565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016108829190613597565b602060405180830381865afa15801561089f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c391906135aa565b95945050505050565b60606108d860cd611b20565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109255760405162461bcd60e51b8152600401610688906135c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610957611b2d565b6001600160a01b03161461097d5760405162461bcd60e51b8152600401610688906135fd565b61098681611b49565b604080516000808252602082019092526109a291839190611b81565b50565b6109ae81611cec565b6109ca5760405162461bcd60e51b815260040161068890613637565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b0316906109fc6116a4565b9050806001600160801b0316826001600160801b031610610a1c57505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610ae557610a8662093a8084613673565b6001600160a01b038516600090815260d2602090815260408083206001600160801b038086168552600290910190925290912054919450610aca9183911685611cf9565b9050610ae08484610adb8482611d47565b611d65565b610a5f565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b610b526116af565b6001600160a01b0316336001600160a01b031614610b825760405162461bcd60e51b8152600401610688906134d6565b610b8b81611cec565b610ba75760405162461bcd60e51b815260040161068890613637565b6001600160a01b038116600090815260d260205260409020546001600160401b0316610bd2826109a5565b610bdb82611dfa565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b6060806000610c2d6065611eca565b9050806001600160401b03811115610c4757610c47613225565b604051908082528060200260200182016040528015610c70578160200160208202803683370190505b509250806001600160401b03811115610c8b57610c8b613225565b604051908082528060200260200182016040528015610cb4578160200160208202803683370190505b50915060005b81811015610d2c57610ccd606582611ed5565b858381518110610cdf57610cdf61369e565b60200260200101858481518110610cf857610cf861369e565b60200260200101826001600160a01b03166001600160a01b031681525082815250505080610d25906136b4565b9050610cba565b50509091565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d7a5760405162461bcd60e51b8152600401610688906135c3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610dac611b2d565b6001600160a01b031614610dd25760405162461bcd60e51b8152600401610688906135fd565b610ddb82611b49565b6106f582826001611b81565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610688565b5060008051602061391983398151915290565b610e9d6116af565b6001600160a01b0316336001600160a01b031614610ecd5760405162461bcd60e51b8152600401610688906134d6565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610f1890839061343b565b60405180910390a150565b610f2b612ffd565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610fe15760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610688565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319061103090859060040161331b565b602060405180830381865afa15801561104d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107191906136cd565b6001600160801b0316116110bf5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610688565b6001600160a01b038116600090815260d460205260408120906110e183611ef3565b905060005b8681101561115c5761111d8888838181106111035761110361369e565b90506020020160208101906111189190613051565b611cec565b1561114c5761114c8888838181106111375761113761369e565b90506020020160208101906102cd9190613051565b611155816136b4565b90506110e6565b5060005b868110156112585785858281811061117a5761117a61369e565b905060200201602081019061118f919061315e565b6001600160401b03168360010160008a8a858181106111b0576111b061369e565b90506020020160208101906111c59190613051565b6001600160a01b031681526020810191909152604001600020546001600160401b0316111561124857611246848989848181106112045761120461369e565b90506020020160208101906112199190613051565b8489898681811061122c5761122c61369e565b9050602002016020810190611241919061315e565b611ff1565b505b611251816136b4565b9050611160565b5060005b86811015611311578585828181106112765761127661369e565b905060200201602081019061128b919061315e565b6001600160401b03168360010160008a8a858181106112ac576112ac61369e565b90506020020160208101906112c19190613051565b6001600160a01b031681526020810191909152604001600020546001600160401b031611611301576112ff848989848181106112045761120461369e565b505b61130a816136b4565b905061125c565b508154670de0b6b3a76400006001600160401b03909116111561136c5760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610688565b50505050505050565b600061138160cd611b16565b905060005b818110156113ac5761139c6102cd60cd836123b7565b6113a5816136b4565b9050611386565b506109a26123c3565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206113ef906001600160801b038416612466565b90505b9392505050565b60006114036116a4565b6001600160801b038116600090815260d3602052604090205490915060ff166114645760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610688565b60cc5461147d90839083906001600160801b0316611733565b5047156109a2576109a233476119ea565b6001600160401b038116600090815260d160205260409020606090610f9590611b20565b600060606114c084846136ea565b6114cb906001613701565b6001600160401b038111156114e2576114e2613225565b60405190808252806020026020018201604052801561150b578160200160208202803683370190505b509050835b83811161155e5761152260cf826123b7565b8282815181106115345761153461369e565b6001600160a01b039092166020928302919091019091015280611556816136b4565b915050611510565b5061156960cf611b16565b91509250929050565b61157a6116af565b6001600160a01b0316336001600160a01b0316146115aa5760405162461bcd60e51b8152600401610688906134d6565b6115b381611cec565b156115f55760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610688565b61160060cf826125a5565b156116575760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610688565b61166182826125ba565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b60006108d84261269d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa15801561170f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190613719565b6001600160801b03808316600090815260d360205260408120546101009004909116908190036117635750505050565b6001600160401b038416600090815260d16020526040812061178490611b16565b905080600003611795575050505050565b6001600160401b038516600090815260d1602052604081206117b690611b20565b90506000826001600160401b038111156117d2576117d2613225565b6040519080825280602002602001820160405280156117fb578160200160208202803683370190505b50905060005b838110156118ce57600060d36000896001600160801b03166001600160801b0316815260200190815260200160002060010160008584815181106118475761184761369e565b6020908102919091018101516001600160a01b03168252810191909152604001600020546001600160801b039081169150869062093a809061188c9084908b16613736565b6118969190613736565b6118a0919061376b565b8383815181106118b2576118b261369e565b6020908102919091010152506118c7816136b4565b9050611801565b5046876001600160401b0316036119605760006118f560656001600160401b038a166126b7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611928908a90879087906004016134ff565b600060405180830381600087803b15801561194257600080fd5b505af1158015611956573d6000803e3d6000fd5b5050505050611996565b611996876001600160401b0316878484604051602001611982939291906134ff565b6040516020818303038152906040526126c3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516119d9919061343b565b60405180910390a350505050505050565b80471015611a3a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610688565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611a87576040519150601f19603f3d011682016040523d82523d6000602084013e611a8c565b606091505b50509050806106ac5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b6064820152608401610688565b60006113ef84846001600160a01b038516612817565b6000610f95825490565b606060006113f283612834565b600080516020613919833981519152546001600160a01b031690565b611b516116af565b6001600160a01b0316336001600160a01b0316146109a25760405162461bcd60e51b8152600401610688906134d6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611bb4576106ac83612890565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c0e575060408051601f3d908101601f19168201909252611c0b918101906135aa565b60015b611c715760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610688565b6000805160206139198339815191528114611ce05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610688565b506106ac83838361292a565b6000610f9560cd836125a5565b611d01613025565b828460200151611d11919061377f565b6001600160801b03166020820152611d2982846137a7565b8451611d35919061377f565b6001600160801b031681529392505050565b6000818360200151611d5991906137a7565b83516113f2919061377f565b6001600160801b03808316600090815260d36020526040902080548392600191611d96918591610100900416613673565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611e34908361294f565b611e505760405162461bcd60e51b8152600401610688906137d6565b611e5b60cd8361294f565b611e775760405162461bcd60e51b8152600401610688906137d6565b611e8260cf83612964565b611e9e5760405162461bcd60e51b8152600401610688906137d6565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b6000610f9582612979565b6000808080611ee48686612984565b909450925050505b9250929050565b6040805180820190915260008082526020820152611f0f6116af565b6001600160a01b0316826001600160a01b031603611f605769d3c21bcecceda1000000611f48611f436303bfc40042613673565b61269d565b6001600160801b039081166020840152168152919050565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c90611fac90859060040161331b565b6040805180830381865afa158015611fc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4891906137f2565b919050565b611ff9613025565b6001600160a01b03808616600090815260d460209081526040808320938816835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b909204169282019290925290156121bb5761206587611cec565b80156120755750612075816129af565b15612133576040805180820190915260018301546001600160801b038082168352600160801b9091041660208201526120ae90826129ec565b80516020918201516001600160801b03908116600160801b0291161760018401558101516002830160006120e184612a35565b6001600160801b039081168252602082019290925260400160009081208054909261210e9185911661377f565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038716600090815260018401602052604081205484546001600160401b03918216928692909161216c91859116613821565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038716600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b0385161561237d576121d387611cec565b6122115760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610688565b612224866001600160401b038716612a92565b6040805180820190915260018401546001600160801b038082168352600160801b90910416602082015290945061225b9085612b0b565b80516020918201516001600160801b03908116600160801b02911617600184015584015160028301600061228e87612a35565b6001600160801b03908116825260208201929092526040016000908120805490926122bb91859116613673565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038e16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b0291909516179190920155855488935086929161235891859116613841565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b6001600160a01b03808916600090815260d560209081526040808320938b168352929052206123ac9085612b40565b505050949350505050565b60006113f28383612c4c565b60006123cd6116a4565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b031611801561242a57506001600160801b038116600090815260d3602052604090205460ff16155b156109a2576001600160801b038116600090815260d360205260409020805460ff1916600117905561245f62093a808261377f565b90506123d0565b60004282106124b75760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610688565b825460005b8181101561252d57600060026124d28484613701565b6124dc919061376b565b9050848660000182815481106124f4576124f461369e565b600091825260209091206002909102015463ffffffff16111561251957809250612527565b612524816001613701565b91505b506124bc565b811561259a57612595856125426001856136ea565b815481106125525761255261369e565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611d47565b6108c3565b600095945050505050565b60006113f2836001600160a01b038416612c76565b6001600160401b038216600090815260d1602052604090206125dc9082612964565b6125f85760405162461bcd60e51b8152600401610688906137d6565b61260360cd82612964565b61261f5760405162461bcd60e51b8152600401610688906137d6565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b0384161790556126586116a4565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806126ad8184613863565b610f9591906137a7565b60006113f28383612c8e565b6126ce606583612cfe565b6126da576126da613889565b60006126e76065846126b7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061271d908690600401613597565b602060405180830381865afa15801561273a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275e91906135aa565b9050803410156127a95760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e742063656c65722066656560501b6044820152606401610688565b606454604051634f9e72ad60e11b81526001600160a01b0390911690639f3ce55a9083906127df9086908990899060040161389f565b6000604051808303818588803b1580156127f857600080fd5b505af115801561280c573d6000803e3d6000fd5b505050505050505050565b600082815260028401602052604081208290556113ef8484612d0a565b60608160000180548060200260200160405190810160405280929190818152602001828054801561288457602002820191906000526020600020905b815481526020019060010190808311612870575b50505050509050919050565b61289981612d16565b6128fb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610688565b60008051602061391983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61293383612d25565b6000825111806129405750805b156106ac57610b448383612d65565b60006113f2836001600160a01b038416612e4e565b60006113f2836001600160a01b038416612f48565b6000610f9582611b16565b6000808061299285856123b7565b600081815260029690960160205260409095205494959350505050565b600081602001516001600160801b0316600014158015610f9557506129e56129d683612a35565b6001600160801b031642101590565b1592915050565b6129f4613025565b81518351612a02919061377f565b6001600160801b0316815260208083015190840151612a21919061377f565b6001600160801b0316602082015292915050565b600081602001516001600160801b0316600003612a815760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610688565b60208201518251610f959190613863565b612a9a613025565b8251612add90670de0b6b3a7640000906303bfc40090612ac49086906001600160801b0316613736565b612ace919061376b565b612ad8919061376b565b612f92565b6001600160801b03166020808301829052840151612afa916137a7565b6001600160801b0316815292915050565b612b13613025565b81518351612b219190613673565b6001600160801b0316815260208083015190840151612a219190613673565b81548015801590612b8257504283612b596001846136ea565b81548110612b6957612b6961369e565b600091825260209091206002909102015463ffffffff16145b15612be1578183612b946001846136ea565b81548110612ba457612ba461369e565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b6000826000018281548110612c6357612c6361369e565b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b600081815260028301602052604081205480151580612cb25750612cb28484612fac565b6113f25760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610688565b60006113f28383612fac565b60006113f28383612f48565b6001600160a01b03163b151590565b612d2e81612890565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612d7083612d16565b612dcb5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610688565b600080846001600160a01b031684604051612de691906138c6565b600060405180830381855af49150503d8060008114612e21576040519150601f19603f3d011682016040523d82523d6000602084013e612e26565b606091505b50915091506108c3828260405180606001604052806027815260200161393960279139612fb8565b60008181526001830160205260408120548015612f37576000612e726001836136ea565b8554909150600090612e86906001906136ea565b9050818114612eeb576000866000018281548110612ea657612ea661369e565b9060005260206000200154905080876000018481548110612ec957612ec961369e565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612efc57612efc6138e2565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f95565b6000915050610f95565b5092915050565b6000612f548383612c76565b612f8a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f95565b506000610f95565b60006001600160801b03821115612fa857600080fd5b5090565b60006113f28383612ff1565b60608315612fc75750816113f2565b825115612fd75782518084602001fd5b8160405162461bcd60e51b81526004016106889190613597565b60006113f28383612c76565b604051806040016040528060006001600160401b03168152602001613020613025565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146109a257600080fd5b60006020828403121561306357600080fd5b81356113f28161303c565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b0383166020820152608081016130b5604083018461306e565b949350505050565b80356001600160401b0381168114611fec57600080fd5b6001600160801b03811681146109a257600080fd5b6000806000606084860312156130fe57600080fd5b613107846130bd565b92506020840135613117816130d4565b91506040840135613127816130d4565b809150509250925092565b6000806040838503121561314557600080fd5b82356131508161303c565b946020939093013593505050565b60006020828403121561317057600080fd5b6113f2826130bd565b600081518084526020808501945080840160005b838110156131b25781516001600160a01b03168752958201959082019060010161318d565b509495945050505050565b6020815260006113f26020830184613179565b600081518084526020808501945080840160005b838110156131b2578151875295820195908201906001016131e4565b60408152600061321360408301856131d0565b82810360208401526108c38185613179565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561324e57600080fd5b82356132598161303c565b915060208301356001600160401b038082111561327557600080fd5b818501915085601f83011261328957600080fd5b81358181111561329b5761329b613225565b604051601f8201601f19908116603f011681019083821181831017156132c3576132c3613225565b816040528281528860208487010111156132dc57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561331057600080fd5b81356113f2816130d4565b6001600160a01b0391909116815260200190565b6000806040838503121561334257600080fd5b823561334d8161303c565b9150602083013561335d8161303c565b809150509250929050565b81516001600160401b031681526020808301516060830191612f419084018261306e565b60008083601f84011261339e57600080fd5b5081356001600160401b038111156133b557600080fd5b6020830191508360208260051b8501011115611eec57600080fd5b600080600080604085870312156133e657600080fd5b84356001600160401b03808211156133fd57600080fd5b6134098883890161338c565b9096509450602087013591508082111561342257600080fd5b5061342f8782880161338c565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561346457600080fd5b833561346f8161303c565b925060208401356131178161303c565b6000806040838503121561349257600080fd5b50508035926020909101359150565b8281526040602082015260006113ef6040830184613179565b600080604083850312156134cd57600080fd5b61334d836130bd565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6001600160801b038416815260606020820181905260009061352390830185613179565b828103604084015261353581856131d0565b9695505050505050565b60005b8381101561355a578181015183820152602001613542565b83811115610b445750506000910152565b6000815180845261358381602086016020860161353f565b601f01601f19169290920160200192915050565b6020815260006113f2602083018461356b565b6000602082840312156135bc57600080fd5b5051919050565b6020808252602c908201526000805160206138f983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206138f983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156136955761369561365d565b01949350505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016136c6576136c661365d565b5060010190565b6000602082840312156136df57600080fd5b81516113f2816130d4565b6000828210156136fc576136fc61365d565b500390565b600082198211156137145761371461365d565b500190565b60006020828403121561372b57600080fd5b81516113f28161303c565b60008160001904831182151516156137505761375061365d565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261377a5761377a613755565b500490565b60006001600160801b038381169083168181101561379f5761379f61365d565b039392505050565b60006001600160801b03828116848216811515828404821116156137cd576137cd61365d565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b6000806040838503121561380557600080fd5b8251613810816130d4565b602084015190925061335d816130d4565b60006001600160401b038381169083168181101561379f5761379f61365d565b60006001600160401b038281168482168083038211156136955761369561365d565b60006001600160801b038381168061387d5761387d613755565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60018060a01b03841681528260208201526060604082015260006108c3606083018461356b565b600082516138d881846020870161353f565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122046ddb78f43d263eaf04552224663708a3fed96b64f9c4635601f4b4aeff6285164736f6c634300080f0033";
783
789
 
784
790
  type PendleVotingControllerUpgConstructorParams =
785
791
  | [signer?: Signer]
@@ -21,6 +21,11 @@ const _abi = [
21
21
  name: "_symbol",
22
22
  type: "string",
23
23
  },
24
+ {
25
+ internalType: "address",
26
+ name: "_wETH",
27
+ type: "address",
28
+ },
24
29
  {
25
30
  internalType: "address",
26
31
  name: "_wstETH",
@@ -369,7 +374,20 @@ const _abi = [
369
374
  },
370
375
  {
371
376
  inputs: [],
372
- name: "getBaseTokens",
377
+ name: "getRewardTokens",
378
+ outputs: [
379
+ {
380
+ internalType: "address[]",
381
+ name: "rewardTokens",
382
+ type: "address[]",
383
+ },
384
+ ],
385
+ stateMutability: "view",
386
+ type: "function",
387
+ },
388
+ {
389
+ inputs: [],
390
+ name: "getTokensIn",
373
391
  outputs: [
374
392
  {
375
393
  internalType: "address[]",
@@ -382,11 +400,11 @@ const _abi = [
382
400
  },
383
401
  {
384
402
  inputs: [],
385
- name: "getRewardTokens",
403
+ name: "getTokensOut",
386
404
  outputs: [
387
405
  {
388
406
  internalType: "address[]",
389
- name: "rewardTokens",
407
+ name: "res",
390
408
  type: "address[]",
391
409
  },
392
410
  ],
@@ -401,7 +419,26 @@ const _abi = [
401
419
  type: "address",
402
420
  },
403
421
  ],
404
- name: "isValidBaseToken",
422
+ name: "isValidTokenIn",
423
+ outputs: [
424
+ {
425
+ internalType: "bool",
426
+ name: "",
427
+ type: "bool",
428
+ },
429
+ ],
430
+ stateMutability: "view",
431
+ type: "function",
432
+ },
433
+ {
434
+ inputs: [
435
+ {
436
+ internalType: "address",
437
+ name: "token",
438
+ type: "address",
439
+ },
440
+ ],
441
+ name: "isValidTokenOut",
405
442
  outputs: [
406
443
  {
407
444
  internalType: "bool",
@@ -654,6 +691,19 @@ const _abi = [
654
691
  stateMutability: "nonpayable",
655
692
  type: "function",
656
693
  },
694
+ {
695
+ inputs: [],
696
+ name: "wETH",
697
+ outputs: [
698
+ {
699
+ internalType: "address",
700
+ name: "",
701
+ type: "address",
702
+ },
703
+ ],
704
+ stateMutability: "view",
705
+ type: "function",
706
+ },
657
707
  {
658
708
  inputs: [],
659
709
  name: "wstETH",
@@ -687,7 +737,7 @@ const _abi = [
687
737
  ];
688
738
 
689
739
  const _bytecode =
690
- "0x6101006040523480156200001257600080fd5b506040516200258e3803806200258e83398101604081905262000035916200038c565b8282828282826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000079573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009f919062000408565b6003620000ad8482620004c3565b506004620000bc8382620004c3565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390811660a052831660e08190526040805163183fc7c960e31b8152905191935063c1fe3e4892506004808201926020929091908290030181865afa1580156200012f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015591906200058f565b6001600160a01b031660c081905260e0516200017591906000196200017e565b505050620005ef565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691620001dc9190620005ad565b6000604051808303816000865af19150503d80600081146200021b576040519150601f19603f3d011682016040523d82523d6000602084013e62000220565b606091505b50915091508180156200024e5750805115806200024e5750808060200190518101906200024e9190620005cb565b6200028e5760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620002c8578181015183820152602001620002ae565b83811115620002d8576000848401525b50505050565b600082601f830112620002f057600080fd5b81516001600160401b03808211156200030d576200030d62000295565b604051601f8301601f19908116603f0116810190828211818310171562000338576200033862000295565b816040528381528660208588010111156200035257600080fd5b62000365846020830160208901620002ab565b9695505050505050565b80516001600160a01b03811681146200038757600080fd5b919050565b600080600060608486031215620003a257600080fd5b83516001600160401b0380821115620003ba57600080fd5b620003c887838801620002de565b94506020860151915080821115620003df57600080fd5b50620003ee86828701620002de565b925050620003ff604085016200036f565b90509250925092565b6000602082840312156200041b57600080fd5b815160ff811681146200042d57600080fd5b9392505050565b600181811c908216806200044957607f821691505b6020821081036200046a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004be57600081815260208120601f850160051c81016020861015620004995750805b601f850160051c820191505b81811015620004ba57828155600101620004a5565b5050505b505050565b81516001600160401b03811115620004df57620004df62000295565b620004f781620004f0845462000434565b8462000470565b602080601f8311600181146200052f5760008415620005165750858301515b600019600386901b1c1916600185901b178555620004ba565b600085815260208120601f198616915b8281101562000560578886015182559484019460019091019084016200053f565b50858210156200057f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005a257600080fd5b6200042d826200036f565b60008251620005c1818460208701620002ab565b9190910192915050565b600060208284031215620005de57600080fd5b815180151581146200042d57600080fd5b60805160a05160c05160e051611f0a620006846000396000818161029f015281816107dd01528181610ae701528181610b7b01528181610df501528181610e49015281816115020152818161156801528181611646015261169a0152600081816103fa0152818161091b0152818161093c01528181610a930152610b400152600061030b015260006102440152611f0a6000f3fe6080604052600436106101355760003560e01c806306fdde0314610141578063095ea7b31461016c578063128fced11461019c57806318160ddd146101d757806320e8c565146101ff57806323b872dd14610212578063313ce567146102325780633ba0b9a9146102785780634aa07e641461028d57806370a08231146102d957806376d5de85146102f957806395d89b411461032d578063a2bbcf1314610342578063a40bee5014610362578063a9059cbb14610386578063b8f82b26146103a6578063bed64c2f146103c6578063c1fe3e48146103e8578063c4f59f9b1461041c578063c9c0c0821461043d578063cbe52ae31461045d578063da88ecb41461047d578063dd62ed3e1461049e578063ef5cfb8c1461019c578063f3f094a1146104be578063f8b2f9911461047d57600080fd5b3661013c57005b600080fd5b34801561014d57600080fd5b506101566104de565b6040516101639190611a44565b60405180910390f35b34801561017857600080fd5b5061018c610187366004611a93565b610570565b6040519015158152602001610163565b3480156101a857600080fd5b506101ca6101b7366004611abd565b5060408051600081526020810190915290565b6040516101639190611ad8565b3480156101e357600080fd5b506002546001600160f81b03165b604051908152602001610163565b6101f161020d366004611b1c565b61058a565b34801561021e57600080fd5b5061018c61022d366004611b5e565b61075b565b34801561023e57600080fd5b506102667f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610163565b34801561028457600080fd5b506101f16107d9565b34801561029957600080fd5b506102c17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610163565b3480156102e557600080fd5b506101f16102f4366004611abd565b610862565b34801561030557600080fd5b506102c17f000000000000000000000000000000000000000000000000000000000000000081565b34801561033957600080fd5b5061015661087d565b34801561034e57600080fd5b506101f161035d366004611b5e565b61088c565b34801561036e57600080fd5b50610377610913565b60405161016393929190611b9a565b34801561039257600080fd5b5061018c6103a1366004611a93565b6109c7565b3480156103b257600080fd5b506101f16103c1366004611a93565b610a39565b3480156103d257600080fd5b506103db610a71565b6040516101639190611bdc565b3480156103f457600080fd5b506102c17f000000000000000000000000000000000000000000000000000000000000000081565b34801561042857600080fd5b506040805160008152602081019091526103db565b34801561044957600080fd5b5061018c610458366004611abd565b610b3c565b34801561046957600080fd5b506101f1610478366004611a93565b610bb4565b34801561048957600080fd5b506040805160008152602081019091526101ca565b3480156104aa57600080fd5b506101f16104b9366004611c1d565b610c0d565b3480156104ca57600080fd5b506101f16104d9366004611c50565b610c38565b6060600380546104ed90611c94565b80601f016020809104026020016040519081016040528092919081815260200182805461051990611c94565b80156105665780601f1061053b57610100808354040283529160200191610566565b820191906000526020600020905b81548152906001019060200180831161054957829003601f168201915b5050505050905090565b60003361057e818585610c94565b60019150505b92915050565b600254600090600119600160f81b90910460ff16016105c45760405162461bcd60e51b81526004016105bb90611cce565b60405180910390fd5b600280546001600160f81b0316600160f91b1790556105e284610b3c565b6105fe5760405162461bcd60e51b81526004016105bb90611d05565b8260000361065c5760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74546f6b656e546f4465706f7369742063616e6e6f74604482015264020626520360dc1b60648201526084016105bb565b6001600160a01b0384166106b2578234146106ad5760405162461bcd60e51b81526020600482015260116024820152700a686b27440cae8d040dad2e6dac2e8c6d607b1b60448201526064016105bb565b6106bd565b6106bd843385610db9565b6106c78484610df1565b9050818110156106e95760405162461bcd60e51b81526004016105bb90611d33565b6106f38582610ebf565b60408051848152602081018390526001600160a01b03808716929088169133917f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d59910160405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b600254600090600119600160f81b90910460ff160161078c5760405162461bcd60e51b81526004016105bb90611cce565b600280546001600160f81b0316600160f91b179055336107ad858285610fc9565b6107b8858585611043565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663035faf826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085d9190611d62565b905090565b6001600160a01b031660009081526020819052604090205490565b6060600480546104ed90611c94565b600254600090600119600160f81b90910460ff16016108bd5760405162461bcd60e51b81526004016105bb90611cce565b600280546001600160f81b0316600160f91b17905560006108dd30610862565b90506108e9308261125a565b6108f5858286866113c7565b600280546001600160f81b0316600160f81b17905595945050505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bc9190611d7b565b925092509250909192565b600254600090600119600160f81b90910460ff16016109f85760405162461bcd60e51b81526004016105bb90611cce565b600280546001600160f81b0316600160f91b17905533610a19818585611043565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6000610a4483610b3c565b610a605760405162461bcd60e51b81526004016105bb90611d05565b610a6a83836114fe565b9392505050565b60408051600280825260608083018452926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610ac557610ac5611d9e565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610b1957610b19611d9e565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061058457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b6000610bbf83610b3c565b610c035760405162461bcd60e51b815260206004820152601560248201527414d0d64e88125b9d985b1a59081d1bdad95b93dd5d605a1b60448201526064016105bb565b610a6a8383611564565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254600090600119600160f81b90910460ff1601610c695760405162461bcd60e51b81526004016105bb90611cce565b600280546001600160f81b0316600160f91b179055610c88338561125a565b6108f5858585856113c7565b6001600160a01b038316610cf65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105bb565b6001600160a01b038216610d575760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105bb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b801580610dcd57506001600160a01b038316155b15610dd757505050565b610dec6001600160a01b0384168330846115c1565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610e33575080610584565b604051630ea598cb60e41b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea598cb0906024015b6020604051808303816000875af1158015610e9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6a9190611d62565b6001600160a01b038216610f155760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105bb565b610f1e8161162c565b60028054600090610f399084906001600160f81b0316611dca565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b031681526020019081526020016000206000828254610f919190611df5565b90915550506040518181526001600160a01b03831690600090600080516020611eb58339815191529060200160405180910390a35050565b6000610fd58484610c0d565b9050600019811461103d57818110156110305760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105bb565b61103d8484848403610c94565b50505050565b6001600160a01b0383166110a75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105bb565b6001600160a01b0382166111095760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105bb565b816001600160a01b0316836001600160a01b0316036111645760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b60448201526064016105bb565b6001600160a01b038316600090815260208190526040902054818110156111dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105bb565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611213908490611df5565b92505081905550826001600160a01b0316846001600160a01b0316600080516020611eb58339815191528460405161124d91815260200190565b60405180910390a361103d565b6001600160a01b0382166112ba5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105bb565b6001600160a01b0382166000908152602081905260409020548181101561132e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105bb565b6001600160a01b038316600090815260208190526040902082820390556113548261162c565b6002805460009061136f9084906001600160f81b0316611e0d565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b0316600080516020611eb583398151915284604051610dac91815260200190565b60006113d283610b3c565b6114165760405162461bcd60e51b815260206004820152601560248201527414d0d64e881a5b9d985b1a59081d1bdad95b93dd5d605a1b60448201526064016105bb565b836000036114745760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74536861726573546f52656465656d2063616e6e6f74604482015264020626520360dc1b60648201526084016105bb565b61147e8385611642565b9050818110156114a05760405162461bcd60e51b81526004016105bb90611d33565b6114ab8386836116d1565b60408051858152602081018390526001600160a01b03808616929088169133917faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c910160405180910390a4949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611540575080610584565b6115486107d9565b61155a83670de0b6b3a7640000611e35565b610a6a9190611e54565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036115a6575080610584565b670de0b6b3a76400006115b76107d9565b61155a9084611e35565b6040516001600160a01b038085166024830152831660448201526064810182905261103d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611795565b6000600160f81b821061163e57600080fd5b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611684575080610584565b604051636f074d1f60e11b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063de0e9a3e90602401610e7c565b806000036116de57505050565b6001600160a01b038316611781576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611739576040519150601f19603f3d011682016040523d82523d6000602084013e61173e565b606091505b505090508061103d5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b60448201526064016105bb565b610dec6001600160a01b0384168383611867565b60006117ea826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166118979092919063ffffffff16565b805190915015610dec57808060200190518101906118089190611e76565b610dec5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105bb565b6040516001600160a01b038316602482015260448101829052610dec90849063a9059cbb60e01b906064016115f5565b60606118a684846000856118ae565b949350505050565b60608247101561190f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105bb565b6001600160a01b0385163b6119665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105bb565b600080866001600160a01b031685876040516119829190611e98565b60006040518083038185875af1925050503d80600081146119bf576040519150601f19603f3d011682016040523d82523d6000602084013e6119c4565b606091505b50915091506119d48282866119df565b979650505050505050565b606083156119ee575081610a6a565b8251156119fe5782518084602001fd5b8160405162461bcd60e51b81526004016105bb9190611a44565b60005b83811015611a33578181015183820152602001611a1b565b8381111561103d5750506000910152565b6020815260008251806020840152611a63816040850160208701611a18565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611a8e57600080fd5b919050565b60008060408385031215611aa657600080fd5b611aaf83611a77565b946020939093013593505050565b600060208284031215611acf57600080fd5b610a6a82611a77565b6020808252825182820181905260009190848201906040850190845b81811015611b1057835183529284019291840191600101611af4565b50909695505050505050565b60008060008060808587031215611b3257600080fd5b611b3b85611a77565b9350611b4960208601611a77565b93969395505050506040820135916060013590565b600080600060608486031215611b7357600080fd5b611b7c84611a77565b9250611b8a60208501611a77565b9150604084013590509250925092565b6060810160028510611bbc57634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b6020808252825182820181905260009190848201906040850190845b81811015611b105783516001600160a01b031683529284019291840191600101611bf8565b60008060408385031215611c3057600080fd5b611c3983611a77565b9150611c4760208401611a77565b90509250929050565b60008060008060808587031215611c6657600080fd5b611c6f85611a77565b935060208501359250611c8460408601611a77565b9396929550929360600135925050565b600181811c90821680611ca857607f821691505b602082108103611cc857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526014908201527329a1ac9d1024b73b30b634b2103a37b5b2b724b760611b604082015260600190565b60208082526015908201527414d0d64e881a5b9cdd59999a58da595b9d081bdd5d605a1b604082015260600190565b600060208284031215611d7457600080fd5b5051919050565b600060208284031215611d8d57600080fd5b815160ff81168114610a6a57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160f81b03828116848216808303821115611dec57611dec611db4565b01949350505050565b60008219821115611e0857611e08611db4565b500190565b60006001600160f81b0383811690831681811015611e2d57611e2d611db4565b039392505050565b6000816000190483118215151615611e4f57611e4f611db4565b500290565b600082611e7157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611e8857600080fd5b81518015158114610a6a57600080fd5b60008251611eaa818460208701611a18565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a5156eee23cc05b1d8ef3da0c10b01a99cb349a480543542db1349d4d3168e7b64736f6c634300080f0033";
740
+ "0x6101206040523480156200001257600080fd5b5060405162002c2738038062002c27833981016040819052620000359162000395565b8383828282826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000079573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200009f919062000424565b6003620000ad8482620004df565b506004620000bc8382620004df565b5060ff166080525050600280546001600160f81b0316600160f81b1790556001600160a01b0390811660a05284811660c05283166101008190526040805163183fc7c960e31b8152905191935063c1fe3e4892506004808201926020929091908290030181865afa15801562000136573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015c9190620005ab565b6001600160a01b031660e0819052610100516200017d919060001962000187565b505050506200060b565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691620001e59190620005c9565b6000604051808303816000865af19150503d806000811462000224576040519150601f19603f3d011682016040523d82523d6000602084013e62000229565b606091505b50915091508180156200025757508051158062000257575080806020019051810190620002579190620005e7565b620002975760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640160405180910390fd5b5050505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620002d1578181015183820152602001620002b7565b83811115620002e1576000848401525b50505050565b600082601f830112620002f957600080fd5b81516001600160401b03808211156200031657620003166200029e565b604051601f8301601f19908116603f011681019082821181831017156200034157620003416200029e565b816040528381528660208588010111156200035b57600080fd5b6200036e846020830160208901620002b4565b9695505050505050565b80516001600160a01b03811681146200039057600080fd5b919050565b60008060008060808587031215620003ac57600080fd5b84516001600160401b0380821115620003c457600080fd5b620003d288838901620002e7565b95506020870151915080821115620003e957600080fd5b50620003f887828801620002e7565b935050620004096040860162000378565b9150620004196060860162000378565b905092959194509250565b6000602082840312156200043757600080fd5b815160ff811681146200044957600080fd5b9392505050565b600181811c908216806200046557607f821691505b6020821081036200048657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004da57600081815260208120601f850160051c81016020861015620004b55750805b601f850160051c820191505b81811015620004d657828155600101620004c1565b5050505b505050565b81516001600160401b03811115620004fb57620004fb6200029e565b62000513816200050c845462000450565b846200048c565b602080601f8311600181146200054b5760008415620005325750858301515b600019600386901b1c1916600185901b178555620004d6565b600085815260208120601f198616915b828110156200057c578886015182559484019460019091019084016200055b565b50858210156200059b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005be57600080fd5b620004498262000378565b60008251620005dd818460208701620002b4565b9190910192915050565b600060208284031215620005fa57600080fd5b815180151581146200044957600080fd5b60805160a05160c05160e0516101005161251a6200070d600039600081816102f701528181610665015281816109a701528181610a5b01528181610b3a01528181610e86015281816110a1015281816112e3015281816119b001528181611ae401528181611c5a0152611cae015260008181610445015281816106110152818161095301528181610aff01528181610c1101528181610c3201528181610e4b015281816110e301528181611128015281816112190152818161129b015281816119f20152611a460152600081816104fb015281816108ff01528181610ed401528181611150015261119d015260006103580152600061029c015261251a6000f3fe6080604052600436106101565760003560e01c806306fdde0314610162578063071bc3c91461018d578063095ea7b3146101af578063128fced1146101df57806318160ddd1461021a57806320e8c56514610242578063213cae631461025557806323b872dd1461026a578063313ce5671461028a5780633ba0b9a9146102d05780634aa07e64146102e557806370a082311461032657806376d5de8514610346578063784367d61461037a57806395d89b411461039a578063a2bbcf13146103af578063a40bee50146103cf578063a9059cbb146103f3578063b8f82b2614610413578063c1fe3e4814610433578063c4f59f9b14610467578063cbe52ae314610488578063da88ecb4146104a8578063dd62ed3e146104c9578063ef5cfb8c146101df578063f2428621146104e9578063f3f094a11461051d578063f8b2f991146104a8578063fa5a4f061461053d57600080fd5b3661015d57005b600080fd5b34801561016e57600080fd5b5061017761055d565b6040516101849190612029565b60405180910390f35b34801561019957600080fd5b506101a26105ef565b604051610184919061205c565b3480156101bb57600080fd5b506101cf6101ca3660046120c5565b6106ba565b6040519015158152602001610184565b3480156101eb57600080fd5b5061020d6101fa3660046120ef565b5060408051600081526020810190915290565b604051610184919061210a565b34801561022657600080fd5b506002546001600160f81b03165b604051908152602001610184565b610234610250366004612142565b6106d4565b34801561026157600080fd5b506101a26108a5565b34801561027657600080fd5b506101cf610285366004612184565b6109d9565b34801561029657600080fd5b506102be7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610184565b3480156102dc57600080fd5b50610234610a57565b3480156102f157600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b60405161018491906121c0565b34801561033257600080fd5b506102346103413660046120ef565b610ae0565b34801561035257600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b34801561038657600080fd5b506101cf6103953660046120ef565b610afb565b3480156103a657600080fd5b50610177610b73565b3480156103bb57600080fd5b506102346103ca366004612184565b610b82565b3480156103db57600080fd5b506103e4610c09565b604051610184939291906121d4565b3480156103ff57600080fd5b506101cf61040e3660046120c5565b610cbd565b34801561041f57600080fd5b5061023461042e3660046120c5565b610d2f565b34801561043f57600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b34801561047357600080fd5b506040805160008152602081019091526101a2565b34801561049457600080fd5b506102346104a33660046120c5565b610d67565b3480156104b457600080fd5b5060408051600081526020810190915261020d565b3480156104d557600080fd5b506102346104e4366004612216565b610dc0565b3480156104f557600080fd5b506103197f000000000000000000000000000000000000000000000000000000000000000081565b34801561052957600080fd5b50610234610538366004612249565b610deb565b34801561054957600080fd5b506101cf6105583660046120ef565b610e47565b60606003805461056c9061228d565b80601f01602080910402602001604051908101604052809291908181526020018280546105989061228d565b80156105e55780601f106105ba576101008083540402835291602001916105e5565b820191906000526020600020905b8154815290600101906020018083116105c857829003601f168201915b5050505050905090565b60408051600280825260608083018452926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610643576106436122c7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610697576106976122c7565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b6000336106c8818585610f0d565b60019150505b92915050565b600254600090600119600160f81b90910460ff160161070e5760405162461bcd60e51b8152600401610705906122dd565b60405180910390fd5b600280546001600160f81b0316600160f91b17905561072c84610e47565b6107485760405162461bcd60e51b815260040161070590612314565b826000036107a65760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74546f6b656e546f4465706f7369742063616e6e6f74604482015264020626520360dc1b6064820152608401610705565b6001600160a01b0384166107fc578234146107f75760405162461bcd60e51b81526020600482015260116024820152700a686b27440cae8d040dad2e6dac2e8c6d607b1b6044820152606401610705565b610807565b610807843385611031565b610811848461109d565b9050818110156108335760405162461bcd60e51b815260040161070590612342565b61083d8582611360565b60408051848152602081018390526001600160a01b03808716929088169133917f5fe47ed6d4225326d3303476197d782ded5a4e9c14f479dc9ec4992af4e85d59910160405180910390a4600280546001600160f81b0316600160f81b179055949350505050565b60408051600480825260a08201909252606091602082016080803683370190505090506000816000815181106108dd576108dd6122c7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610931576109316122c7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110610985576109856122c7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600381518110610697576106976122c7565b600254600090600119600160f81b90910460ff1601610a0a5760405162461bcd60e51b8152600401610705906122dd565b600280546001600160f81b0316600160f91b17905533610a2b85828561146a565b610a368585856114e4565b6001915050600280546001600160f81b0316600160f81b1790559392505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663035faf826040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ab7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adb9190612371565b905090565b6001600160a01b031660009081526020819052604090205490565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806106ce57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b60606004805461056c9061228d565b600254600090600119600160f81b90910460ff1601610bb35760405162461bcd60e51b8152600401610705906122dd565b600280546001600160f81b0316600160f91b1790556000610bd330610ae0565b9050610bdf30826116fb565b610beb85828686611875565b600280546001600160f81b0316600160f81b17905595945050505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb2919061238a565b925092509250909192565b600254600090600119600160f81b90910460ff1601610cee5760405162461bcd60e51b8152600401610705906122dd565b600280546001600160f81b0316600160f91b17905533610d0f8185856114e4565b6001915050600280546001600160f81b0316600160f81b17905592915050565b6000610d3a83610e47565b610d565760405162461bcd60e51b815260040161070590612314565b610d6083836119ac565b9392505050565b6000610d7283610afb565b610db65760405162461bcd60e51b815260206004820152601560248201527414d0d64e88125b9d985b1a59081d1bdad95b93dd5d605a1b6044820152606401610705565b610d608383611ae0565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600254600090600119600160f81b90910460ff1601610e1c5760405162461bcd60e51b8152600401610705906122dd565b600280546001600160f81b0316600160f91b179055610e3b33856116fb565b610beb85858585611875565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610eba57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b80610ecc57506001600160a01b038216155b806106ce57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b6001600160a01b038316610f6f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610fd05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110825780341461107d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610705565b505050565b801561107d5761107d6001600160a01b038416833084611b47565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036110df5750806106ce565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316036111215750816112cd565b600061114c7f0000000000000000000000000000000000000000000000000000000000000000611bb2565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b03160361120257604051632e1a7d4d60e01b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156111e957600080fd5b505af11580156111fd573d6000803e3d6000fd5b505050505b60405163a1903eab60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a1903eab908690611251906000906004016121c0565b60206040518083038185885af115801561126f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112949190612371565b50806112bf7f0000000000000000000000000000000000000000000000000000000000000000611bb2565b6112c991906123c3565b9150505b604051630ea598cb60e41b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ea598cb0906024016020604051808303816000875af1158015611334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113589190612371565b949350505050565b6001600160a01b0382166113b65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610705565b6113bf81611c3c565b600280546000906113da9084906001600160f81b03166123da565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555080600080846001600160a01b03166001600160a01b0316815260200190815260200160002060008282546114329190612405565b90915550506040518181526001600160a01b038316906000906000805160206124c58339815191529060200160405180910390a35050565b60006114768484610dc0565b905060001981146114de57818110156114d15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610705565b6114de8484848403610f0d565b50505050565b6001600160a01b0383166115485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b0382166115aa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b816001600160a01b0316836001600160a01b0316036116055760405162461bcd60e51b815260206004820152601760248201527622a92199181d103a3930b739b332b9103a379039b2b63360491b6044820152606401610705565b6001600160a01b0383166000908152602081905260409020548181101561167d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610705565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906116b4908490612405565b92505081905550826001600160a01b0316846001600160a01b03166000805160206124c5833981519152846040516116ee91815260200190565b60405180910390a36114de565b6001600160a01b03821661175b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610705565b6001600160a01b038216600090815260208190526040902054818110156117cf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610705565b6001600160a01b038316600090815260208190526040902082820390556117f582611c3c565b600280546000906118109084906001600160f81b031661241d565b92506101000a8154816001600160f81b0302191690836001600160f81b0316021790555060006001600160a01b0316836001600160a01b03166000805160206124c58339815191528460405161186891815260200190565b60405180910390a3505050565b600061188083610afb565b6118c45760405162461bcd60e51b815260206004820152601560248201527414d0d64e881a5b9d985b1a59081d1bdad95b93dd5d605a1b6044820152606401610705565b836000036119225760405162461bcd60e51b815260206004820152602560248201527f5343593a20616d6f756e74536861726573546f52656465656d2063616e6e6f74604482015264020626520360dc1b6064820152608401610705565b61192c8385611c56565b90508181101561194e5760405162461bcd60e51b815260040161070590612342565b611959838683611d23565b60408051858152602081018390526001600160a01b03808616929088169133917faee47cdf925cf525fdae94f9777ee5a06cac37e1c41220d0a8a89ed154f62d1c910160405180910390a4949350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036119ee5750806106ce565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603611a30575081611abc565b604051631920845160e01b8152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631920845190602401602060405180830381865afa158015611a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab99190612371565b90505b611ac4610a57565b611ad684670de0b6b3a7640000612445565b6113589190612464565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611b225750806106ce565b670de0b6b3a7640000611b33610a57565b611b3d9084612445565b610d609190612464565b6040516001600160a01b03808516602483015283166044820152606481018290526114de9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611de7565b60006001600160a01b03821615611c35576040516370a0823160e01b81526001600160a01b038316906370a0823190611bef9030906004016121c0565b602060405180830381865afa158015611c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c309190612371565b6106ce565b4792915050565b60006001600160f81b03821115611c5257600080fd5b5090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603611c985750806106ce565b604051636f074d1f60e11b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063de0e9a3e906024016020604051808303816000875af1158015611cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d609190612371565b80600003611d3057505050565b6001600160a01b038316611dd3576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611d8b576040519150601f19603f3d011682016040523d82523d6000602084013e611d90565b606091505b50509050806114de5760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610705565b61107d6001600160a01b0384168383611eb9565b6000611e3c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611ee99092919063ffffffff16565b80519091501561107d5780806020019051810190611e5a9190612486565b61107d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610705565b6040516001600160a01b03831660248201526044810182905261107d90849063a9059cbb60e01b90606401611b7b565b60606113588484600085856001600160a01b0385163b611f4b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610705565b600080866001600160a01b03168587604051611f6791906124a8565b60006040518083038185875af1925050503d8060008114611fa4576040519150601f19603f3d011682016040523d82523d6000602084013e611fa9565b606091505b5091509150611fb9828286611fc4565b979650505050505050565b60608315611fd3575081610d60565b825115611fe35782518084602001fd5b8160405162461bcd60e51b81526004016107059190612029565b60005b83811015612018578181015183820152602001612000565b838111156114de5750506000910152565b6020815260008251806020840152612048816040850160208701611ffd565b601f01601f19169190910160400192915050565b6020808252825182820181905260009190848201906040850190845b8181101561209d5783516001600160a01b031683529284019291840191600101612078565b50909695505050505050565b80356001600160a01b03811681146120c057600080fd5b919050565b600080604083850312156120d857600080fd5b6120e1836120a9565b946020939093013593505050565b60006020828403121561210157600080fd5b610d60826120a9565b6020808252825182820181905260009190848201906040850190845b8181101561209d57835183529284019291840191600101612126565b6000806000806080858703121561215857600080fd5b612161856120a9565b935061216f602086016120a9565b93969395505050506040820135916060013590565b60008060006060848603121561219957600080fd5b6121a2846120a9565b92506121b0602085016120a9565b9150604084013590509250925092565b6001600160a01b0391909116815260200190565b60608101600285106121f657634e487b7160e01b600052602160045260246000fd5b9381526001600160a01b0392909216602083015260ff1660409091015290565b6000806040838503121561222957600080fd5b612232836120a9565b9150612240602084016120a9565b90509250929050565b6000806000806080858703121561225f57600080fd5b612268856120a9565b93506020850135925061227d604086016120a9565b9396929550929360600135925050565b600181811c908216806122a157607f821691505b6020821081036122c157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526014908201527329a1ac9d1024b73b30b634b2103a37b5b2b724b760611b604082015260600190565b60208082526015908201527414d0d64e881a5b9cdd59999a58da595b9d081bdd5d605a1b604082015260600190565b60006020828403121561238357600080fd5b5051919050565b60006020828403121561239c57600080fd5b815160ff81168114610d6057600080fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156123d5576123d56123ad565b500390565b60006001600160f81b038281168482168083038211156123fc576123fc6123ad565b01949350505050565b60008219821115612418576124186123ad565b500190565b60006001600160f81b038381169083168181101561243d5761243d6123ad565b039392505050565b600081600019048311821515161561245f5761245f6123ad565b500290565b60008261248157634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561249857600080fd5b81518015158114610d6057600080fd5b600082516124ba818460208701611ffd565b919091019291505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220dd6920f716b8ce95018e9f8facec606c8003d28373f722c1562ad45352e10f8e64736f6c634300080f0033";
691
741
 
692
742
  type PendleWstEthSCYConstructorParams =
693
743
  | [signer?: Signer]
@@ -710,12 +760,14 @@ export class PendleWstEthSCY__factory extends ContractFactory {
710
760
  deploy(
711
761
  _name: string,
712
762
  _symbol: string,
763
+ _wETH: string,
713
764
  _wstETH: string,
714
765
  overrides?: Overrides & { from?: string | Promise<string> }
715
766
  ): Promise<PendleWstEthSCY> {
716
767
  return super.deploy(
717
768
  _name,
718
769
  _symbol,
770
+ _wETH,
719
771
  _wstETH,
720
772
  overrides || {}
721
773
  ) as Promise<PendleWstEthSCY>;
@@ -723,10 +775,17 @@ export class PendleWstEthSCY__factory extends ContractFactory {
723
775
  getDeployTransaction(
724
776
  _name: string,
725
777
  _symbol: string,
778
+ _wETH: string,
726
779
  _wstETH: string,
727
780
  overrides?: Overrides & { from?: string | Promise<string> }
728
781
  ): TransactionRequest {
729
- return super.getDeployTransaction(_name, _symbol, _wstETH, overrides || {});
782
+ return super.getDeployTransaction(
783
+ _name,
784
+ _symbol,
785
+ _wETH,
786
+ _wstETH,
787
+ overrides || {}
788
+ );
730
789
  }
731
790
  attach(address: string): PendleWstEthSCY {
732
791
  return super.attach(address) as PendleWstEthSCY;