@pendle/core-v2 1.2.0-mainnet → 1.2.0-testnet

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 (611) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +34 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  32. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  39. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  41. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  48. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.json +141 -0
  53. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.json +141 -0
  55. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +4 -0
  57. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.json +10 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +143 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +4 -0
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +1218 -0
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +4 -0
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +1192 -0
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +4 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.json +10 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +4 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +40 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +4 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +322 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +4 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.json +1171 -0
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +4 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +10 -0
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +4 -0
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.json +133 -0
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +143 -2
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +143 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +143 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.json +141 -0
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +4 -0
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.json +50 -0
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +143 -2
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +143 -2
  97. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  100. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  102. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  104. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
  105. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
  106. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
  107. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
  108. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
  109. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
  110. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
  111. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
  112. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  114. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  116. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +87 -2
  122. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  123. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  125. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +4 -0
  129. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.json +10 -0
  130. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +4 -0
  131. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.json +24 -0
  132. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +4 -0
  133. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.json +133 -0
  134. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +4 -0
  135. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.json +328 -0
  136. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +4 -0
  137. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.json +467 -0
  138. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +4 -0
  139. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.json +61 -0
  140. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +4 -0
  141. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.json +30 -0
  142. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +4 -0
  143. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.json +398 -0
  144. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +4 -0
  145. package/build/artifacts/contracts/{router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json → interfaces/Balancer/IRateProvider.sol/IRateProvider.json} +5 -5
  146. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +4 -0
  147. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.json +278 -0
  148. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.json +18 -0
  153. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
  156. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
  157. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
  158. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +43 -0
  159. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
  160. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json +201 -0
  161. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
  162. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
  163. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +4 -0
  167. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.json +48 -0
  168. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +1 -1
  172. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
  173. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
  174. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
  175. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
  176. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
  185. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  186. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
  187. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  188. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
  189. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  190. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
  191. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  192. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
  193. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  194. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
  195. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  196. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  197. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  198. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  199. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +19 -0
  200. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  201. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  202. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  203. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  204. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  205. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
  206. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
  207. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  208. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  209. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  210. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  211. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.json +1 -1
  212. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  213. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  214. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  215. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  217. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
  221. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
  222. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  223. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  226. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  227. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  229. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  230. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  231. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  239. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +4 -0
  240. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +143 -0
  241. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  242. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  243. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  244. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  245. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -28
  246. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +4 -0
  247. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +322 -0
  248. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +4 -0
  249. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +47 -0
  250. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  251. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +144 -60
  252. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  253. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
  254. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  255. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
  256. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  257. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
  258. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  259. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
  260. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  261. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +342 -44
  262. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  263. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
  264. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
  265. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
  266. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  267. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
  268. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  269. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  270. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  271. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  272. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  273. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  274. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  275. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  276. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  277. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
  278. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
  279. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
  280. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +72 -0
  281. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
  282. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
  283. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  284. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +10 -0
  285. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  286. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
  287. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  288. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +388 -0
  289. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  290. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.json +101 -0
  291. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  292. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
  293. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +0 -1
  294. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +9 -9
  295. package/contracts/core/RewardManager/RewardManager.sol +1 -1
  296. package/contracts/core/StandardizedYield/SYBase.sol +23 -5
  297. package/contracts/core/StandardizedYield/StEthHelper.sol +71 -0
  298. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +134 -0
  299. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +154 -0
  300. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol +68 -0
  301. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +322 -0
  302. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +390 -0
  303. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +329 -0
  304. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +30 -0
  305. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +189 -0
  306. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +142 -0
  307. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +224 -0
  308. package/contracts/core/StandardizedYield/implementations/GLP/README.md +61 -0
  309. package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +138 -0
  310. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +10 -0
  311. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
  312. package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
  313. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
  314. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
  315. package/contracts/core/libraries/ArrayLib.sol +27 -12
  316. package/contracts/core/libraries/Errors.sol +8 -2
  317. package/contracts/core/libraries/TokenHelper.sol +10 -0
  318. package/contracts/interfaces/Balancer/IAsset.sol +4 -0
  319. package/contracts/interfaces/Balancer/IBalancerFees.sol +6 -0
  320. package/contracts/interfaces/Balancer/IBalancerStablePreview.sol +22 -0
  321. package/contracts/interfaces/Balancer/IBasePool.sol +30 -0
  322. package/contracts/interfaces/Balancer/IComposableStable.sol +39 -0
  323. package/contracts/interfaces/Balancer/IGauge.sol +10 -0
  324. package/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol +6 -0
  325. package/contracts/interfaces/Balancer/IMetaStablePool.sol +31 -0
  326. package/contracts/interfaces/Balancer/IRateProvider.sol +6 -0
  327. package/contracts/interfaces/Balancer/IVault.sol +78 -0
  328. package/contracts/interfaces/ConvexCurve/IRewards.sol +5 -0
  329. package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
  330. package/contracts/interfaces/GMX/IGlpManager.sol +12 -0
  331. package/contracts/interfaces/GMX/IRewardRouterV2.sol +43 -0
  332. package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
  333. package/contracts/interfaces/IAddressProvider.sol +7 -0
  334. package/contracts/interfaces/IDiamondCut.sol +36 -0
  335. package/contracts/interfaces/IDiamondLoupe.sol +38 -0
  336. package/contracts/interfaces/IERC4626.sol +2 -0
  337. package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
  338. package/contracts/interfaces/IPActionInfoStatic.sol +43 -0
  339. package/contracts/interfaces/IPActionMarketAuxStatic.sol +30 -0
  340. package/contracts/interfaces/IPActionMarketCoreStatic.sol +317 -0
  341. package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
  342. package/contracts/interfaces/IPActionMintRedeemStatic.sol +60 -0
  343. package/contracts/interfaces/IPActionMisc.sol +18 -4
  344. package/contracts/interfaces/IPActionStorageStatic.sol +25 -0
  345. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  346. package/contracts/interfaces/IPActionSwapYT.sol +28 -4
  347. package/contracts/interfaces/IPActionVePendleStatic.sol +9 -0
  348. package/contracts/interfaces/IPAllAction.sol +5 -3
  349. package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
  350. package/contracts/interfaces/IPMiniDiamond.sol +12 -0
  351. package/contracts/interfaces/IPMsgReceiverApp.sol +1 -1
  352. package/contracts/interfaces/IPRouterStatic.sol +19 -0
  353. package/contracts/interfaces/IPVotingController.sol +6 -0
  354. package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
  355. package/contracts/interfaces/IStandardizedYield.sol +1 -1
  356. package/contracts/offchain-helpers/AddressProvider.sol +16 -0
  357. package/contracts/offchain-helpers/Broadcaster.sol +48 -0
  358. package/contracts/offchain-helpers/PendleMulticall.sol +26 -0
  359. package/contracts/offchain-helpers/{MarketMathStatic.sol → legacy/MarketMathStatic.sol} +2 -2
  360. package/contracts/offchain-helpers/{RouterStatic.sol → legacy/RouterStatic.sol} +7 -7
  361. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +19 -0
  362. package/contracts/offchain-helpers/router-static/StorageLayout.sol +21 -0
  363. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +125 -0
  364. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +166 -0
  365. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +769 -0
  366. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +166 -0
  367. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +75 -0
  368. package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +55 -0
  369. package/contracts/router/ActionAddRemoveLiq.sol +116 -6
  370. package/contracts/router/ActionMintRedeem.sol +12 -202
  371. package/contracts/router/ActionMisc.sol +45 -19
  372. package/contracts/router/ActionSwapPT.sol +0 -5
  373. package/contracts/router/ActionSwapYT.sol +103 -13
  374. package/contracts/router/PendleRouter.sol +211 -72
  375. package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
  376. package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
  377. package/contracts/router/base/CallbackHelper.sol +137 -44
  378. package/contracts/router/base/MarketApproxLib.sol +227 -350
  379. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
  380. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
  381. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +25 -0
  382. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +46 -0
  383. package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +214 -0
  384. package/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol +147 -0
  385. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +17 -0
  386. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol +191 -0
  387. package/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol +30 -0
  388. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +42 -0
  389. package/deployments/43113-core.json +30 -0
  390. package/deployments/43113-markets/APE-30-MARCH.json +10 -0
  391. package/deployments/43113-markets/USDC-FEB-2ND-2024.json +10 -0
  392. package/deployments/43113-markets/USDC-FEB-2ND.json +10 -0
  393. package/deployments/43113-markets/USDC-FEB-4TH.json +10 -0
  394. package/deployments/43113-markets/WETH-FEB-2ND.json +11 -0
  395. package/deployments/43113-markets/WETH-FEB-4TH.json +11 -0
  396. package/deployments/43113-offchain-helper.json +4 -0
  397. package/deployments/43113-testenv.json +22 -0
  398. package/deployments/80001-core.json +29 -0
  399. package/deployments/80001-markets/GLP-DEC-8TH.json +10 -0
  400. package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
  401. package/deployments/80001-markets/USDC-FEB-4TH.json +10 -0
  402. package/deployments/80001-markets/WETH-FEB-4TH.json +11 -0
  403. package/deployments/80001-offchain-helper.json +4 -0
  404. package/deployments/80001-testenv.json +22 -0
  405. package/package.json +9 -10
  406. package/typechain-types/ActionAddRemoveLiq.ts +203 -23
  407. package/typechain-types/ActionBaseCallback.ts +115 -0
  408. package/typechain-types/ActionMintRedeem.ts +29 -230
  409. package/typechain-types/ActionMisc.ts +77 -27
  410. package/typechain-types/ActionSwapPT.ts +26 -31
  411. package/typechain-types/ActionSwapYT.ts +202 -21
  412. package/typechain-types/AddressProvider.ts +280 -0
  413. package/typechain-types/ComposableStablePreview.ts +217 -0
  414. package/typechain-types/GLPPreviewHelper.ts +121 -0
  415. package/typechain-types/GMXPreviewHelper.ts +121 -0
  416. package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
  417. package/typechain-types/IAddressProvider.ts +123 -0
  418. package/typechain-types/IAggregationExecutor.ts +182 -0
  419. package/typechain-types/IBalancerFees.ts +89 -0
  420. package/typechain-types/IBalancerStablePreview.ts +217 -0
  421. package/typechain-types/IBasePool.ts +482 -0
  422. package/typechain-types/IComposableStable.ts +730 -0
  423. package/typechain-types/IDiamondCut.ts +152 -0
  424. package/typechain-types/IDiamondLoupe.ts +190 -0
  425. package/typechain-types/IExecutorHelperEthereum1.ts +643 -0
  426. package/typechain-types/IGMXVault.ts +494 -0
  427. package/typechain-types/IGauge.ts +160 -0
  428. package/typechain-types/IGlpManager.ts +115 -0
  429. package/typechain-types/IHashflow.ts +159 -0
  430. package/typechain-types/IKyberSwapAggregationRouterHelper.ts +109 -0
  431. package/typechain-types/ILiquidityGaugeFactory.ts +99 -0
  432. package/typechain-types/IMetaAggregationRouter.ts +213 -0
  433. package/typechain-types/IMetaAggregationRouterV2.ts +221 -0
  434. package/typechain-types/IMetaStablePool.ts +619 -0
  435. package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
  436. package/typechain-types/IPActionMintRedeem.ts +29 -211
  437. package/typechain-types/IPActionMisc.ts +77 -27
  438. package/typechain-types/IPActionSwapPT.ts +26 -12
  439. package/typechain-types/IPActionSwapYT.ts +168 -12
  440. package/typechain-types/IPAllAction.ts +445 -227
  441. package/typechain-types/IPFeeDistributor.ts +18 -0
  442. package/typechain-types/IPInterestManagerYTV2.ts +117 -0
  443. package/typechain-types/IPMsgReceiverApp.ts +5 -5
  444. package/typechain-types/IPSwapAggregator.ts +126 -0
  445. package/typechain-types/IPYieldTokenV2.ts +901 -0
  446. package/typechain-types/IRateProvider.ts +81 -0
  447. package/typechain-types/IRewardRouterV2.ts +346 -0
  448. package/typechain-types/IRewards.ts +35 -5
  449. package/typechain-types/ISwapAggregator.ts +124 -0
  450. package/typechain-types/IVault.ts +410 -0
  451. package/typechain-types/IVaultPriceFeed.ts +114 -0
  452. package/typechain-types/InterestManagerYTV2.ts +157 -0
  453. package/typechain-types/MetaStableMath.ts +113 -0
  454. package/typechain-types/MetaStablePreview.ts +501 -0
  455. package/typechain-types/Multicall2.ts +437 -0
  456. package/typechain-types/PendleAura3EthSY.ts +1600 -0
  457. package/typechain-types/PendleAuraBalancerStableLPSY.ts +1523 -0
  458. package/typechain-types/PendleAuraCbethWstethSY.ts +1587 -0
  459. package/typechain-types/PendleAuraWethRethSY.ts +1549 -0
  460. package/typechain-types/PendleAuraWethWstethSY.ts +1523 -0
  461. package/typechain-types/PendleConvexLPSY.ts +204 -0
  462. package/typechain-types/PendleCurveFraxUsdcSY.ts +204 -0
  463. package/typechain-types/PendleCurveUsdd3CrvSY.ts +204 -0
  464. package/typechain-types/PendleFeeDistributor.ts +37 -0
  465. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +4 -4
  466. package/typechain-types/PendleGlpSY.ts +1463 -0
  467. package/typechain-types/PendleLooksStakingSY.ts +204 -0
  468. package/typechain-types/PendleMsgReceiverAppUpg.ts +5 -5
  469. package/typechain-types/PendleMulticall.ts +110 -0
  470. package/typechain-types/PendlePrincipalTokenV2.ts +614 -0
  471. package/typechain-types/PendleQiTokenSY.ts +204 -0
  472. package/typechain-types/PendleRouter.ts +109 -131
  473. package/typechain-types/PendleSwapAggregator.ts +126 -0
  474. package/typechain-types/PendleWstEthSY.ts +204 -0
  475. package/typechain-types/PendleYieldContractFactoryV2.ts +801 -0
  476. package/typechain-types/PendleYieldTokenV2.ts +1298 -0
  477. package/typechain-types/RouterStatic.ts +92 -0
  478. package/typechain-types/SAPE.ts +204 -0
  479. package/typechain-types/SYBase.ts +204 -0
  480. package/typechain-types/SYBaseWithRewards.ts +204 -0
  481. package/typechain-types/StEthHelper.ts +107 -0
  482. package/typechain-types/StablePreviewBase.ts +217 -0
  483. package/typechain-types/SwapAggregator.ts +406 -0
  484. package/typechain-types/VotingEscrowPendleSidechain.ts +4 -5
  485. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
  486. package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
  487. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  488. package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
  489. package/typechain-types/factories/ActionMisc__factory.ts +56 -17
  490. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  491. package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
  492. package/typechain-types/factories/ActionSwapYT__factory.ts +356 -48
  493. package/typechain-types/factories/AddressProvider__factory.ts +196 -0
  494. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  495. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  496. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  497. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  498. package/typechain-types/factories/ComposableStablePreview__factory.ts +190 -0
  499. package/typechain-types/factories/Errors__factory.ts +86 -1
  500. package/typechain-types/factories/GLPPreviewHelper__factory.ts +65 -0
  501. package/typechain-types/factories/GMXPreviewHelper__factory.ts +65 -0
  502. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
  503. package/typechain-types/factories/IAddressProvider__factory.ts +63 -0
  504. package/typechain-types/factories/IAggregationExecutor__factory.ts +84 -0
  505. package/typechain-types/factories/IBalancerFees__factory.ts +36 -0
  506. package/typechain-types/factories/IBalancerStablePreview__factory.ts +152 -0
  507. package/typechain-types/factories/IBasePool__factory.ts +340 -0
  508. package/typechain-types/factories/IComposableStable__factory.ts +482 -0
  509. package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
  510. package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
  511. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +407 -0
  512. package/typechain-types/factories/IGMXVault__factory.ts +320 -0
  513. package/typechain-types/factories/IGauge__factory.ts +70 -0
  514. package/typechain-types/factories/IGlpManager__factory.ts +55 -0
  515. package/typechain-types/factories/IHashflow__factory.ts +113 -0
  516. package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +56 -0
  517. package/typechain-types/factories/ILiquidityGaugeFactory__factory.ts +49 -0
  518. package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +234 -0
  519. package/typechain-types/factories/IMetaAggregationRouter__factory.ts +202 -0
  520. package/typechain-types/factories/IMetaStablePool__factory.ts +413 -0
  521. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
  522. package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
  523. package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
  524. package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
  525. package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
  526. package/typechain-types/factories/IPAllAction__factory.ts +675 -241
  527. package/typechain-types/factories/IPFeeDistributor__factory.ts +19 -0
  528. package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
  529. package/typechain-types/factories/IPMsgReceiverApp__factory.ts +1 -1
  530. package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
  531. package/typechain-types/factories/IPYieldTokenV2__factory.ts +694 -0
  532. package/typechain-types/factories/IRateProvider__factory.ts +36 -0
  533. package/typechain-types/factories/IRewardRouterV2__factory.ts +216 -0
  534. package/typechain-types/factories/IRewards__factory.ts +18 -0
  535. package/typechain-types/factories/ISwapAggregator__factory.ts +66 -0
  536. package/typechain-types/factories/IVaultPriceFeed__factory.ts +60 -0
  537. package/typechain-types/factories/IVault__factory.ts +287 -0
  538. package/typechain-types/factories/InterestManagerYTV2__factory.ts +81 -0
  539. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
  540. package/typechain-types/factories/MetaStableMath__factory.ts +93 -0
  541. package/typechain-types/factories/MetaStablePreview__factory.ts +375 -0
  542. package/typechain-types/factories/Multicall2__factory.ts +372 -0
  543. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  544. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1326 -0
  545. package/typechain-types/factories/PendleAuraBalancerStableLPSY__factory.ts +1190 -0
  546. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1317 -0
  547. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1291 -0
  548. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1265 -0
  549. package/typechain-types/factories/PendleConvexLPSY__factory.ts +141 -0
  550. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +142 -1
  551. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +142 -1
  552. package/typechain-types/factories/PendleFeeDistributor__factory.ts +33 -1
  553. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  554. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +2 -2
  555. package/typechain-types/factories/PendleGlpSY__factory.ts +1249 -0
  556. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +142 -1
  557. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  558. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  559. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  560. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +1 -1
  561. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  562. package/typechain-types/factories/PendleMulticall__factory.ts +100 -0
  563. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +564 -0
  564. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  565. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  566. package/typechain-types/factories/PendleQiTokenSY__factory.ts +142 -1
  567. package/typechain-types/factories/PendleRouter__factory.ts +75 -74
  568. package/typechain-types/factories/PendleSwapAggregator__factory.ts +129 -0
  569. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  570. package/typechain-types/factories/PendleWstEthSY__factory.ts +142 -1
  571. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +674 -0
  572. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  573. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1109 -0
  574. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  575. package/typechain-types/factories/RouterStatic__factory.ts +69 -1
  576. package/typechain-types/factories/SAPE__factory.ts +142 -1
  577. package/typechain-types/factories/SYBaseWithRewards__factory.ts +141 -0
  578. package/typechain-types/factories/SYBase__factory.ts +141 -0
  579. package/typechain-types/factories/StEthHelper__factory.ts +62 -0
  580. package/typechain-types/factories/StablePreviewBase__factory.ts +148 -0
  581. package/typechain-types/factories/SwapAggregator__factory.ts +309 -0
  582. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  583. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -2
  584. package/typechain-types/hardhat.d.ts +369 -54
  585. package/typechain-types/index.ts +88 -18
  586. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
  587. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.json +0 -190
  588. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  589. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
  590. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  591. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
  592. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  593. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  594. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  595. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  596. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.dbg.json +0 -4
  597. package/build/artifacts/contracts/router/kyberswap/IMultihopRouterEthereum.sol/IMultihopRouterEthereum.json +0 -136
  598. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  599. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +0 -10
  600. package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
  601. package/contracts/router/ActionSwapPTYT.sol +0 -108
  602. package/contracts/router/kyberswap/AggregationRouterHelper.sol +0 -331
  603. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  604. package/contracts/router/kyberswap/IMultihopRouterEthereum.sol +0 -141
  605. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
  606. package/deployments/1-core.json +0 -30
  607. package/deployments/1-markets/APE-JUNE-29.json +0 -8
  608. package/deployments/1-markets/FRAXUSDC-CURVELP-MARCH30.json +0 -11
  609. package/deployments/1-markets/LOOKS-STAKING-MARCH30.json +0 -10
  610. package/deployments/1-markets/STETH-JUNE29.json +0 -10
  611. package/deployments/1-markets/STETH-MARCH30.json +0 -10
@@ -344,7 +344,7 @@ const _abi = [
344
344
  ];
345
345
 
346
346
  const _bytecode =
347
- "0x608060405234801561001057600080fd5b50612504806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063448b9b951461003b578063c861a89814610065575b600080fd5b61004e610049366004611fcc565b610078565b60405161005c929190612034565b60405180910390f35b61004e610073366004611fcc565b61029a565b6000806000866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156100bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100df9190612042565b925050506000876001600160a01b031663794052f3306040518263ffffffff1660e01b8152600401610111919061208f565b61012060405180830381865afa15801561012f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015391906120e5565b90506101618233848a6104b6565b6000610193610178846001600160a01b03166104d7565b8942610189368b90038b018b612167565b8693929190610543565b9196509094509050868510156101c9578487604051634e6ffe4760e11b81526004016101c0929190612034565b60405180910390fd5b886001600160a01b0316635b709f1730836101e58e8d8d610696565b6040518463ffffffff1660e01b815260040161020393929190612234565b60408051808303816000875af1158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190612264565b50506001600160a01b03808b16908a16336000805160206124af83398151915261026e896106c9565b6102778d6106e3565b604051610285929190612034565b60405180910390a45050509550959350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103029190612042565b92509250506000886001600160a01b031663794052f3306040518263ffffffff1660e01b8152600401610335919061208f565b61012060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037791906120e5565b905061038583338b8b6104b6565b60006103b761039c846001600160a01b03166104d7565b8a426103ad368c90038c018c612167565b86939291906106fa565b9197509095509050878610156103e457858860405163a59b8c3160e01b81526004016101c0929190612034565b896001600160a01b03166329910b1184836104008f8e8e610838565b6040518463ffffffff1660e01b815260040161041e93929190612234565b60408051808303816000875af115801561043c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104609190612264565b50506001600160a01b03808c16908b16336000805160206124af8339815191526104898d6106e3565b6104928b6106c9565b6040516104a0929190612034565b60405180910390a4505050509550959350505050565b80156104d1576104d16001600160a01b038516848484610852565b50505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d9190612288565b92915050565b6000806000806040518060a001604052808a815260200189815260200188815260200187815260200161057f898b6108ac90919063ffffffff16565b905260208101516060820151825192935060009261059e9290916108b8565b905060006105c28784604001516105bd858760000151600001516109b2565b610a5a565b905060005b81606001518110156106715760006105df8383610b62565b90506000806105f8876000015187896020015186610bce565b50915091508660800151821161064c5782855260808088015190860151610620918491610c22565b1561064757604087015161063490846122b7565b995091975090955061068b945050505050565b61065d565b6106576001846122b7565b60208601525b5050508061066a906122ca565b90506105c7565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b606060038484846040516020016106b094939291906122e3565b60405160208183030381529060405290505b9392505050565b60006001600160ff1b038211156106df57600080fd5b5090565b60006106ee826106c9565b61053d9060001961232a565b604080516080810182528681526020810186905290810184905260608101839052600090819081908161072e8a8a896108b8565b9050600061074d8784604001516107488560200151610c56565b610c6d565b905060005b816060015181101561067157600080610775848688600001516000015186610d10565b915091508161078957602084015250610828565b6000806107a08860000151888a6020015186610d7b565b509150915060006107be838a60200151610da190919063ffffffff16565b905060006107cc82866122b7565b9050896040015181116108105784885260408a015160808901516107f1918391610c22565b1561080b57509a5091985090965061068b95505050505050565b610821565b61081b6001866122b7565b60208901525b5050505050505b610831816122ca565b9050610752565b606060048484846040516020016106b094939291906122e3565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526104d1908590610dad565b60006106c28383610e84565b6108e36040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106109075760405163b2094b5960e01b815260040160405180910390fd5b6000828560a0015161091991906122b7565b90506109258582610ea3565b82526020850151610937908590610f04565b60208301528451158061094c57506020820151155b15610973578451602083015160405163b1c4aefb60e01b81526101c0929190600401612034565b61099185600001518661010001518460200151856000015185610f3b565b604083015260c08501516109a59082610fbc565b6060830152509392505050565b6000806109df6109da8560000151866040015187606001516109d4919061235a565b90610ff0565b611013565b905060006109ff6109f8670de0b6b3a764000084612381565b8390611428565b90506000610a1d866020015186610a169190612381565b8390610ff0565b90506000610a2b828761235a565b90506103e8610a398261144e565b610a45906103e76123a9565b610a4f91906123d6565b979650505050505050565b610a8c6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b602084015184511180610aaa5750670de0b6b3a76400008460800151115b15610ad757835160208501516080860151604051632cc06bc160e21b81526101c0939291906004016123ea565b8351610ae3908461145d565b81526020840151610af49083611473565b6020820181905281511115610b3a578351602085015160405163143e763760e31b81526004810192909252602482015260448101849052606481018390526084016101c0565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b600081158015610b755750604083015115155b15610b855750604082015161053d565b6020830151835111610bb55760208301518351600291610ba491612400565b610bae91906123d6565b905061053d565b604051637d388ed960e11b815260040160405180910390fd5b600080600080600080610bee8989610be58a6106c9565b8d929190611482565b925092509250610bfd836115d6565b9550610c088261144e565b9450610c138161144e565b93505050509450945094915050565b6000828411158015610c4e5750610c4a83610c4584670de0b6b3a76400006122b7565b6115ed565b8410155b949350505050565b60006001610c638361144e565b61053d91906122b7565b610ca66040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8351610cb2908461145d565b81526020840151610cc39083611473565b6020820181905281511180610ce35750670de0b6b3a76400008460800151115b15610b3a57835160208501516080860151604051632cc06bc160e21b81526101c0939291906004016123ea565b6000806000610d1f8785610b62565b90508660a001518111610d3757600192509050610d72565b6000610d4c8787610d47856106c9565b61160d565b90506000811215610d635750600092509050610d72565b5060a087018190526001925090505b94509492505050565b600080600080600080610d928989610be58a6106e3565b925092509250610bfd8361144e565b60006106c283836116ff565b6000610e02826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117149092919063ffffffff16565b805190915015610e7f5780806020019051810190610e209190612413565b610e7f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016101c0565b505050565b600082610e99670de0b6b3a7640000846123a9565b6106c291906123d6565b6000610eae826106c9565b610ec5610ec06201518061016d6123a9565b6106c9565b8460800151610ed4919061232a565b610ede9190612435565b90506000811361053d57604051630e520c3b60e11b8152600481018290526024016101c0565b60008060008312610f16576001610f1a565b6000195b9050610f31610ec085610f2c866115d6565b6116ff565b610c4e908261232a565b600080610f488684610fbc565b9050670de0b6b3a7640000811215610f765760405163329e322960e21b8152600481018290526024016101c0565b6000610f8c610f85878a612381565b8990611428565b90506000610f9982611723565b9050610fa58187611428565b610faf908461235a565b9998505050505050505050565b600080610fce6201518061016d6123a9565b610fd884866123a9565b610fe291906123d6565b9050610c4e6109da826106c9565b600080610ffd838561232a565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015611038575068070c1cc73b00c800008213155b6110775760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016101c0565b60008212156110af5761108c82600003611013565b6a0c097ce7bc90715b34b9f160241b816110a8576110a86123c0565b0592915050565b60006806f05b59d3b200000083126110ed57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b611123565b6803782dace9d9000000831261111f57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380611123565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126111735768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126111af576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126111e957682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611223576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261125c57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126112955768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126112ce576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126113075768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061143d670de0b6b3a76400008561232a565b905082818161100a5761100a6123c0565b6000808212156106df57600080fd5b600081831161146c57816106c2565b5090919050565b600081831061146c57816106c2565b6000806000806114a58860000151886020015189600001518a6040015189611776565b905060006114bb6114b68784611428565b611827565b6060890151909150600087131561152a5760006114d88483611428565b9050670de0b6b3a76400008112156115065760405163329e322960e21b8152600481018290526024016101c0565b61152261151b83670de0b6b3a764000061235a565b8490610ff0565b915050611557565b6115548161154081670de0b6b3a764000061235a565b61154a908561232a565b6114b69190612435565b90505b600060646115688c60e001516106c9565b611572908461232a565b61157c9190612435565b9050600061158a838561235a565b9050600081126115a35761159e8a82611835565b6115ad565b6115ad8a82611862565b97506115b98a84611835565b96506115c58a83611835565b955050505050509450945094915050565b60008082136106df576115e882612463565b61053d565b6000806115fa83856123a9565b670de0b6b3a76400009004949350505050565b600080828560200151611620919061235a565b9050600061162e8585612381565b90506000821380156116405750600081135b6116815760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016101c0565b60006116af611690848461232a565b602089015161169f9089612381565b6116a9908861232a565b90611428565b905060006116c56116c08486611428565b61188f565b88519091506000906116e090670de0b6b3a764000090611428565b90506116f0816109d4848661235a565b8960400151610faf919061235a565b6000670de0b6b3a7640000610e9984846123a9565b6060610c4e8484600085611920565b6000670de0b6b3a7640000820361174d5760405163a9c8b14d60e01b815260040160405180910390fd5b600061176b61176484670de0b6b3a764000061235a565b8490611428565b90506106c28161188f565b6000806117838784611a46565b905060006117946109f8888a612381565b9050670d529ae9e86000008113156117cb5780670d529ae9e8600000604051637e34684f60e11b81526004016101c0929190612034565b60006117d682611723565b9050856117e38289611428565b6117ed9190612381565b9350670de0b6b3a764000084121561181b5760405163329e322960e21b8152600481018590526024016101c0565b50505095945050505050565b600061053d8260001961232a565b6000806000831261184757600161184b565b6000195b9050610f31610ec08561185d866115d6565b610e84565b60008060008312611874576001611878565b6000195b9050610f31610ec08561188a866115d6565b611a8d565b60008082136118d05760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016101c0565b670c7d713b49da0000821380156118ee5750670f43fc2c04ee000082125b1561191257670de0b6b3a764000061190583611ab9565b816110a8576110a86123c0565b61053d82611bd8565b919050565b6060824710156119815760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016101c0565b6001600160a01b0385163b6119d85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101c0565b600080866001600160a01b031685876040516119f4919061247f565b60006040518083038185875af1925050503d8060008114611a31576040519150601f19603f3d011682016040523d82523d6000602084013e611a36565b606091505b5091509150610a4f828286611f7b565b600081831215611a835760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016101c0565b6106c2828461235a565b600082600181611aa5670de0b6b3a7640000866123a9565b611aaf9190612400565b610e9991906122b7565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611afa57611afa6123c0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215611c1957611c10826a0c097ce7bc90715b34b9f160241b81611c0a57611c0a6123c0565b05611bd8565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312611c645772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312611c9b576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611ce3576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312611d1e576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312611d5557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312611d8c57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312611dc15768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312611dec57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611e21576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611e56576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312611e8a576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312611ebe576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281611ee757611ee76123c0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60608315611f8a5750816106c2565b825115611f9a5782518084602001fd5b8160405162461bcd60e51b81526004016101c0919061249b565b6001600160a01b0381168114611fc957600080fd5b50565b6000806000806000858703610120811215611fe657600080fd5b8635611ff181611fb4565b9550602087013561200181611fb4565b9450604087013593506060870135925060a0607f198201121561202357600080fd5b506080860190509295509295909350565b918252602082015260400190565b60008060006060848603121561205757600080fd5b835161206281611fb4565b602085015190935061207381611fb4565b604085015190925061208481611fb4565b809150509250925092565b6001600160a01b0391909116815260200190565b60405161012081016001600160401b03811182821017156120d457634e487b7160e01b600052604160045260246000fd5b60405290565b805161191b81611fb4565b600061012082840312156120f857600080fd5b6121006120a3565b825181526020830151602082015260408301516040820152612124606084016120da565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060a0828403121561217957600080fd5b60405160a081016001600160401b03811182821017156121a957634e487b7160e01b600052604160045260246000fd5b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b60005b838110156121ff5781810151838201526020016121e7565b50506000910152565b600081518084526122208160208601602086016121e4565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061225b6060830184612208565b95945050505050565b6000806040838503121561227757600080fd5b505080516020909101519092909150565b60006020828403121561229a57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561053d5761053d6122a1565b6000600182016122dc576122dc6122a1565b5060010190565b608081016005861061230557634e487b7160e01b600052602160045260246000fd5b9481526001600160a01b03939093166020840152604083019190915260609091015290565b80820260008212600160ff1b84141615612346576123466122a1565b818105831482151761053d5761053d6122a1565b818103600083128015838313168383128216171561237a5761237a6122a1565b5092915050565b80820182811260008312801582168215821617156123a1576123a16122a1565b505092915050565b808202811582820484141761053d5761053d6122a1565b634e487b7160e01b600052601260045260246000fd5b6000826123e5576123e56123c0565b500490565b9283526020830191909152604082015260600190565b8082018082111561053d5761053d6122a1565b60006020828403121561242557600080fd5b815180151581146106c257600080fd5b600082612444576124446123c0565b600160ff1b82146000198414161561245e5761245e6122a1565b500590565b6000600160ff1b8201612478576124786122a1565b5060000390565b600082516124918184602087016121e4565b9190910192915050565b6020815260006106c2602083018461220856fea4519acd6c251a3f533922c5aaf3fbae71546aad6c01f8241e23143519a67ac8a2646970667358221220f6c951b02f23288b7c956ca68b96f16517b36069099ddc4e68efa6a8e3871f2b64736f6c63430008110033";
347
+ "0x608060405234801561001057600080fd5b50612504806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063448b9b951461003b578063c861a89814610065575b600080fd5b61004e610049366004611fcc565b610078565b60405161005c929190612034565b60405180910390f35b61004e610073366004611fcc565b61029a565b6000806000866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156100bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100df9190612042565b925050506000876001600160a01b031663794052f3306040518263ffffffff1660e01b8152600401610111919061208f565b61012060405180830381865afa15801561012f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015391906120e5565b90506101618233848a6104b6565b6000610193610178846001600160a01b03166104d7565b8942610189368b90038b018b612167565b8693929190610543565b9196509094509050868510156101c9578487604051634e6ffe4760e11b81526004016101c0929190612034565b60405180910390fd5b886001600160a01b0316635b709f1730836101e58e8d8d610696565b6040518463ffffffff1660e01b815260040161020393929190612234565b60408051808303816000875af1158015610221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102459190612264565b50506001600160a01b03808b16908a16336000805160206124af83398151915261026e896106c9565b6102778d6106e3565b604051610285929190612034565b60405180910390a45050509550959350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103029190612042565b92509250506000886001600160a01b031663794052f3306040518263ffffffff1660e01b8152600401610335919061208f565b61012060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037791906120e5565b905061038583338b8b6104b6565b60006103b761039c846001600160a01b03166104d7565b8a426103ad368c90038c018c612167565b86939291906106fa565b9197509095509050878610156103e457858860405163a59b8c3160e01b81526004016101c0929190612034565b896001600160a01b03166329910b1184836104008f8e8e610838565b6040518463ffffffff1660e01b815260040161041e93929190612234565b60408051808303816000875af115801561043c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104609190612264565b50506001600160a01b03808c16908b16336000805160206124af8339815191526104898d6106e3565b6104928b6106c9565b6040516104a0929190612034565b60405180910390a4505050509550959350505050565b80156104d1576104d16001600160a01b038516848484610852565b50505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d9190612288565b92915050565b6000806000806040518060a001604052808a815260200189815260200188815260200187815260200161057f898b6108ac90919063ffffffff16565b905260208101516060820151825192935060009261059e9290916108b8565b905060006105c28784604001516105bd858760000151600001516109b2565b610a5a565b905060005b81606001518110156106715760006105df8383610b62565b90506000806105f8876000015187896020015186610bce565b50915091508660800151821161064c5782855260808088015190860151610620918491610c22565b1561064757604087015161063490846122b7565b995091975090955061068b945050505050565b61065d565b6106576001846122b7565b60208601525b5050508061066a906122ca565b90506105c7565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b606060038484846040516020016106b094939291906122e3565b60405160208183030381529060405290505b9392505050565b60006001600160ff1b038211156106df57600080fd5b5090565b60006106ee826106c9565b61053d9060001961232a565b604080516080810182528681526020810186905290810184905260608101839052600090819081908161072e8a8a896108b8565b9050600061074d8784604001516107488560200151610c56565b610c6d565b905060005b816060015181101561067157600080610775848688600001516000015186610d10565b915091508161078957602084015250610828565b6000806107a08860000151888a6020015186610d7b565b509150915060006107be838a60200151610da190919063ffffffff16565b905060006107cc82866122b7565b9050896040015181116108105784885260408a015160808901516107f1918391610c22565b1561080b57509a5091985090965061068b95505050505050565b610821565b61081b6001866122b7565b60208901525b5050505050505b610831816122ca565b9050610752565b606060048484846040516020016106b094939291906122e3565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526104d1908590610dad565b60006106c28383610e84565b6108e36040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106109075760405163b2094b5960e01b815260040160405180910390fd5b6000828560a0015161091991906122b7565b90506109258582610ea3565b82526020850151610937908590610f04565b60208301528451158061094c57506020820151155b15610973578451602083015160405163b1c4aefb60e01b81526101c0929190600401612034565b61099185600001518661010001518460200151856000015185610f3b565b604083015260c08501516109a59082610fbc565b6060830152509392505050565b6000806109df6109da8560000151866040015187606001516109d4919061235a565b90610ff0565b611013565b905060006109ff6109f8670de0b6b3a764000084612381565b8390611428565b90506000610a1d866020015186610a169190612381565b8390610ff0565b90506000610a2b828761235a565b90506103e8610a398261144e565b610a45906103e76123a9565b610a4f91906123d6565b979650505050505050565b610a8c6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b602084015184511180610aaa5750670de0b6b3a76400008460800151115b15610ad757835160208501516080860151604051632cc06bc160e21b81526101c0939291906004016123ea565b8351610ae3908461145d565b81526020840151610af49083611473565b6020820181905281511115610b3a578351602085015160405163143e763760e31b81526004810192909252602482015260448101849052606481018390526084016101c0565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b600081158015610b755750604083015115155b15610b855750604082015161053d565b6020830151835111610bb55760208301518351600291610ba491612400565b610bae91906123d6565b905061053d565b604051637d388ed960e11b815260040160405180910390fd5b600080600080600080610bee8989610be58a6106c9565b8d929190611482565b925092509250610bfd836115d6565b9550610c088261144e565b9450610c138161144e565b93505050509450945094915050565b6000828411158015610c4e5750610c4a83610c4584670de0b6b3a76400006122b7565b6115ed565b8410155b949350505050565b60006001610c638361144e565b61053d91906122b7565b610ca66040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8351610cb2908461145d565b81526020840151610cc39083611473565b6020820181905281511180610ce35750670de0b6b3a76400008460800151115b15610b3a57835160208501516080860151604051632cc06bc160e21b81526101c0939291906004016123ea565b6000806000610d1f8785610b62565b90508660a001518111610d3757600192509050610d72565b6000610d4c8787610d47856106c9565b61160d565b90506000811215610d635750600092509050610d72565b5060a087018190526001925090505b94509492505050565b600080600080600080610d928989610be58a6106e3565b925092509250610bfd8361144e565b60006106c283836116ff565b6000610e02826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166117149092919063ffffffff16565b805190915015610e7f5780806020019051810190610e209190612413565b610e7f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016101c0565b505050565b600082610e99670de0b6b3a7640000846123a9565b6106c291906123d6565b6000610eae826106c9565b610ec5610ec06201518061016d6123a9565b6106c9565b8460800151610ed4919061232a565b610ede9190612435565b90506000811361053d57604051630e520c3b60e11b8152600481018290526024016101c0565b60008060008312610f16576001610f1a565b6000195b9050610f31610ec085610f2c866115d6565b6116ff565b610c4e908261232a565b600080610f488684610fbc565b9050670de0b6b3a7640000811215610f765760405163329e322960e21b8152600481018290526024016101c0565b6000610f8c610f85878a612381565b8990611428565b90506000610f9982611723565b9050610fa58187611428565b610faf908461235a565b9998505050505050505050565b600080610fce6201518061016d6123a9565b610fd884866123a9565b610fe291906123d6565b9050610c4e6109da826106c9565b600080610ffd838561232a565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015611038575068070c1cc73b00c800008213155b6110775760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016101c0565b60008212156110af5761108c82600003611013565b6a0c097ce7bc90715b34b9f160241b816110a8576110a86123c0565b0592915050565b60006806f05b59d3b200000083126110ed57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b611123565b6803782dace9d9000000831261111f57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380611123565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126111735768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126111af576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126111e957682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611223576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261125c57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126112955768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126112ce576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126113075768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061143d670de0b6b3a76400008561232a565b905082818161100a5761100a6123c0565b6000808212156106df57600080fd5b600081831161146c57816106c2565b5090919050565b600081831061146c57816106c2565b6000806000806114a58860000151886020015189600001518a6040015189611776565b905060006114bb6114b68784611428565b611827565b6060890151909150600087131561152a5760006114d88483611428565b9050670de0b6b3a76400008112156115065760405163329e322960e21b8152600481018290526024016101c0565b61152261151b83670de0b6b3a764000061235a565b8490610ff0565b915050611557565b6115548161154081670de0b6b3a764000061235a565b61154a908561232a565b6114b69190612435565b90505b600060646115688c60e001516106c9565b611572908461232a565b61157c9190612435565b9050600061158a838561235a565b9050600081126115a35761159e8a82611835565b6115ad565b6115ad8a82611862565b97506115b98a84611835565b96506115c58a83611835565b955050505050509450945094915050565b60008082136106df576115e882612463565b61053d565b6000806115fa83856123a9565b670de0b6b3a76400009004949350505050565b600080828560200151611620919061235a565b9050600061162e8585612381565b90506000821380156116405750600081135b6116815760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016101c0565b60006116af611690848461232a565b602089015161169f9089612381565b6116a9908861232a565b90611428565b905060006116c56116c08486611428565b61188f565b88519091506000906116e090670de0b6b3a764000090611428565b90506116f0816109d4848661235a565b8960400151610faf919061235a565b6000670de0b6b3a7640000610e9984846123a9565b6060610c4e8484600085611920565b6000670de0b6b3a7640000820361174d5760405163a9c8b14d60e01b815260040160405180910390fd5b600061176b61176484670de0b6b3a764000061235a565b8490611428565b90506106c28161188f565b6000806117838784611a46565b905060006117946109f8888a612381565b9050670d529ae9e86000008113156117cb5780670d529ae9e8600000604051637e34684f60e11b81526004016101c0929190612034565b60006117d682611723565b9050856117e38289611428565b6117ed9190612381565b9350670de0b6b3a764000084121561181b5760405163329e322960e21b8152600481018590526024016101c0565b50505095945050505050565b600061053d8260001961232a565b6000806000831261184757600161184b565b6000195b9050610f31610ec08561185d866115d6565b610e84565b60008060008312611874576001611878565b6000195b9050610f31610ec08561188a866115d6565b611a8d565b60008082136118d05760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016101c0565b670c7d713b49da0000821380156118ee5750670f43fc2c04ee000082125b1561191257670de0b6b3a764000061190583611ab9565b816110a8576110a86123c0565b61053d82611bd8565b919050565b6060824710156119815760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016101c0565b6001600160a01b0385163b6119d85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101c0565b600080866001600160a01b031685876040516119f4919061247f565b60006040518083038185875af1925050503d8060008114611a31576040519150601f19603f3d011682016040523d82523d6000602084013e611a36565b606091505b5091509150610a4f828286611f7b565b600081831215611a835760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016101c0565b6106c2828461235a565b600082600181611aa5670de0b6b3a7640000866123a9565b611aaf9190612400565b610e9991906122b7565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611afa57611afa6123c0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215611c1957611c10826a0c097ce7bc90715b34b9f160241b81611c0a57611c0a6123c0565b05611bd8565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312611c645772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312611c9b576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611ce3576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312611d1e576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312611d5557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312611d8c57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312611dc15768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312611dec57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611e21576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611e56576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312611e8a576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312611ebe576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281611ee757611ee76123c0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60608315611f8a5750816106c2565b825115611f9a5782518084602001fd5b8160405162461bcd60e51b81526004016101c0919061249b565b6001600160a01b0381168114611fc957600080fd5b50565b6000806000806000858703610120811215611fe657600080fd5b8635611ff181611fb4565b9550602087013561200181611fb4565b9450604087013593506060870135925060a0607f198201121561202357600080fd5b506080860190509295509295909350565b918252602082015260400190565b60008060006060848603121561205757600080fd5b835161206281611fb4565b602085015190935061207381611fb4565b604085015190925061208481611fb4565b809150509250925092565b6001600160a01b0391909116815260200190565b60405161012081016001600160401b03811182821017156120d457634e487b7160e01b600052604160045260246000fd5b60405290565b805161191b81611fb4565b600061012082840312156120f857600080fd5b6121006120a3565b825181526020830151602082015260408301516040820152612124606084016120da565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060a0828403121561217957600080fd5b60405160a081016001600160401b03811182821017156121a957634e487b7160e01b600052604160045260246000fd5b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b60005b838110156121ff5781810151838201526020016121e7565b50506000910152565b600081518084526122208160208601602086016121e4565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061225b6060830184612208565b95945050505050565b6000806040838503121561227757600080fd5b505080516020909101519092909150565b60006020828403121561229a57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561053d5761053d6122a1565b6000600182016122dc576122dc6122a1565b5060010190565b608081016005861061230557634e487b7160e01b600052602160045260246000fd5b9481526001600160a01b03939093166020840152604083019190915260609091015290565b80820260008212600160ff1b84141615612346576123466122a1565b818105831482151761053d5761053d6122a1565b818103600083128015838313168383128216171561237a5761237a6122a1565b5092915050565b80820182811260008312801582168215821617156123a1576123a16122a1565b505092915050565b808202811582820484141761053d5761053d6122a1565b634e487b7160e01b600052601260045260246000fd5b6000826123e5576123e56123c0565b500490565b9283526020830191909152604082015260600190565b8082018082111561053d5761053d6122a1565b60006020828403121561242557600080fd5b815180151581146106c257600080fd5b600082612444576124446123c0565b600160ff1b82146000198414161561245e5761245e6122a1565b500590565b6000600160ff1b8201612478576124786122a1565b5060000390565b600082516124918184602087016121e4565b9190910192915050565b6020815260006106c2602083018461220856fea4519acd6c251a3f533922c5aaf3fbae71546aad6c01f8241e23143519a67ac8a2646970667358221220dd5239a27568fd94cd69730097da9e8254fc127b89145a6febc12bab14b972d364736f6c63430008110033";
348
348
 
349
349
  type ActionSwapPTYTConstructorParams =
350
350
  | [signer?: Signer]
@@ -6,43 +6,6 @@ import { Provider, TransactionRequest } from "@ethersproject/providers";
6
6
  import type { ActionSwapPT, ActionSwapPTInterface } from "../ActionSwapPT";
7
7
 
8
8
  const _abi = [
9
- {
10
- inputs: [
11
- {
12
- internalType: "address",
13
- name: "_kyberScalingLib",
14
- type: "address",
15
- },
16
- ],
17
- stateMutability: "nonpayable",
18
- type: "constructor",
19
- },
20
- {
21
- inputs: [
22
- {
23
- internalType: "uint256",
24
- name: "approxGuessMin",
25
- type: "uint256",
26
- },
27
- {
28
- internalType: "uint256",
29
- name: "approxGuessMax",
30
- type: "uint256",
31
- },
32
- {
33
- internalType: "uint256",
34
- name: "minGuessMin",
35
- type: "uint256",
36
- },
37
- {
38
- internalType: "uint256",
39
- name: "maxGuessMax",
40
- type: "uint256",
41
- },
42
- ],
43
- name: "ApproxBinarySearchInputInvalid",
44
- type: "error",
45
- },
46
9
  {
47
10
  inputs: [],
48
11
  name: "ApproxFail",
@@ -234,11 +197,6 @@ const _abi = [
234
197
  name: "RouterInsufficientTokenOut",
235
198
  type: "error",
236
199
  },
237
- {
238
- inputs: [],
239
- name: "RouterKyberSwapDataZero",
240
- type: "error",
241
- },
242
200
  {
243
201
  anonymous: false,
244
202
  inputs: [
@@ -319,19 +277,6 @@ const _abi = [
319
277
  name: "SwapPtAndToken",
320
278
  type: "event",
321
279
  },
322
- {
323
- inputs: [],
324
- name: "kyberScalingLib",
325
- outputs: [
326
- {
327
- internalType: "address",
328
- name: "",
329
- type: "address",
330
- },
331
- ],
332
- stateMutability: "view",
333
- type: "function",
334
- },
335
280
  {
336
281
  inputs: [
337
282
  {
@@ -412,13 +357,35 @@ const _abi = [
412
357
  },
413
358
  {
414
359
  internalType: "address",
415
- name: "kyberRouter",
360
+ name: "pendleSwap",
416
361
  type: "address",
417
362
  },
418
363
  {
419
- internalType: "bytes",
420
- name: "kybercall",
421
- type: "bytes",
364
+ components: [
365
+ {
366
+ internalType: "enum SwapType",
367
+ name: "swapType",
368
+ type: "uint8",
369
+ },
370
+ {
371
+ internalType: "address",
372
+ name: "extRouter",
373
+ type: "address",
374
+ },
375
+ {
376
+ internalType: "bytes",
377
+ name: "extCalldata",
378
+ type: "bytes",
379
+ },
380
+ {
381
+ internalType: "bool",
382
+ name: "needScale",
383
+ type: "bool",
384
+ },
385
+ ],
386
+ internalType: "struct SwapData",
387
+ name: "swapData",
388
+ type: "tuple",
422
389
  },
423
390
  ],
424
391
  internalType: "struct TokenOutput",
@@ -586,13 +553,35 @@ const _abi = [
586
553
  },
587
554
  {
588
555
  internalType: "address",
589
- name: "kyberRouter",
556
+ name: "pendleSwap",
590
557
  type: "address",
591
558
  },
592
559
  {
593
- internalType: "bytes",
594
- name: "kybercall",
595
- type: "bytes",
560
+ components: [
561
+ {
562
+ internalType: "enum SwapType",
563
+ name: "swapType",
564
+ type: "uint8",
565
+ },
566
+ {
567
+ internalType: "address",
568
+ name: "extRouter",
569
+ type: "address",
570
+ },
571
+ {
572
+ internalType: "bytes",
573
+ name: "extCalldata",
574
+ type: "bytes",
575
+ },
576
+ {
577
+ internalType: "bool",
578
+ name: "needScale",
579
+ type: "bool",
580
+ },
581
+ ],
582
+ internalType: "struct SwapData",
583
+ name: "swapData",
584
+ type: "tuple",
596
585
  },
597
586
  ],
598
587
  internalType: "struct TokenInput",
@@ -729,7 +718,7 @@ const _abi = [
729
718
  ];
730
719
 
731
720
  const _bytecode =
732
- "0x60a06040523480156200001157600080fd5b5060405162003bbc38038062003bbc833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051613b216200009b6000396000818161014101526113be0152613b216000f3fe6080604052600436106100605760003560e01c80631b7077d5146100655780632032aecd1461008f5780636b8bdf32146100af57806383c71b69146100cf578063b3ad2faa146100ef578063dd371acd1461010f578063f95308001461012f575b600080fd5b6100786100733660046131ef565b610170565b60405161008692919061326e565b60405180910390f35b34801561009b57600080fd5b506100786100aa36600461327c565b610275565b3480156100bb57600080fd5b506100786100ca36600461327c565b6103ee565b3480156100db57600080fd5b506100786100ea3660046132c2565b6105f5565b3480156100fb57600080fd5b5061007861010a36600461331f565b6106d3565b34801561011b57600080fd5b5061007861012a3660046132c2565b61085a565b34801561013b57600080fd5b506101637f000000000000000000000000000000000000000000000000000000000000000081565b604051610086919061338a565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061339e565b925050915060006101ec8984600189610a87565b90506101fc8a8a84848c8c610d38565b909550935061020e60208701876133eb565b6001600160a01b0316896001600160a01b0316336001600160a01b0316600080516020613aac8339815191528d6102448a610e95565b6102518c60200135610eaf565b60405161026093929190613408565b60405180910390a45050509550959350505050565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156102b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dc919061339e565b509150506102ec81338888610ecc565b604080516000815260208101918290526329910b1160e01b9091526001600160a01b038716906329910b1190610329908a90899060248101613479565b60408051808303816000875af1158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b91906134a9565b90935091508383101561039e5782846040516305221cf360e11b815260040161039592919061326e565b60405180910390fd5b6001600160a01b0380881690871633600080516020613acc8339815191526103c589610eaf565b6103ce88610e95565b6040516103dc92919061326e565b60405180910390a45094509492505050565b6000806000856001600160a01b031663794052f3306040518263ffffffff1660e01b815260040161041f919061338a565b61012060405180830381865afa15801561043d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104619190613547565b9050600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c8919061339e565b92505091506104eb6104e2826001600160a01b0316610eed565b84908942610f53565b50909550508585111561051557848660405163039d13e760e61b815260040161039592919061326e565b61052182338a88610ecc565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f179061055e908c908b9060248101613479565b60408051808303816000875af115801561057c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a091906134a9565b9450506001600160a01b03808a1690891633600080516020613acc8339815191526105ca8b610e95565b6105d38a610eaf565b6040516105e192919061326e565b60405180910390a450505094509492505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065d919061339e565b925050915061066e82338a8a610ecc565b61067c8989838a8a8a610d38565b90945092506001600160a01b03808a1690891633600080516020613acc8339815191526106a888610e95565b6106b18c610eaf565b6040516106bf92919061326e565b60405180910390a450509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610717573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073b919061339e565b509150915061074c81338989610ecc565b60006001600160a01b0388166329910b1161076f8561076a8a613646565b610fac565b604080516000815260208101918290526001600160e01b031960e085901b169091526107a191908b9060248101613479565b60408051808303816000875af11580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e391906134a9565b945090506107fd8984836107f68a613646565b6000610fd4565b945061080c60208701876133eb565b6001600160a01b0316886001600160a01b0316336001600160a01b0316600080516020613aac8339815191528c6108428c610eaf565b61084b8b610e95565b6040516105e193929190613408565b6000806000866001600160a01b031663794052f3306040518263ffffffff1660e01b815260040161088b919061338a565b61012060405180830381865afa1580156108a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108cd9190613547565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610910573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610934919061339e565b925092505061096961094e826001600160a01b0316610eed565b894261095f368b90038b018b613703565b87939291906111ca565b509095505086851115610993578487604051633c0e098d60e11b815260040161039592919061326e565b61099f82338b88610ecc565b60408051600080825260208201928390526329910b1160e01b9092526001600160a01b038b16906329910b11906109dd908e908a9060248101613479565b60408051808303816000875af11580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f91906134a9565b9550905088811015610a3357610a33613772565b6001600160a01b03808c16908b1633600080516020613acc833981519152610a5a8a610eaf565b610a638e610e95565b604051610a7192919061326e565b60405180910390a4505050509550959350505050565b6000610aa4610a9960208401846133eb565b3384602001356112fb565b6000610ab660608401604085016133eb565b6001600160a01b0316610acc60208501856133eb565b6001600160a01b03161415905060008115610b6c57610b4d610af160208601866133eb565b6020860135610b0660a08801608089016133eb565b610b1360a0890189613788565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061136792505050565b610b65610b6060608601604087016133eb565b611471565b9050610b73565b5060208301355b600080610b8660608701604088016133eb565b6001600160a01b031614610b9b576000610b9d565b815b90506000610bb160808701606088016133eb565b6001600160a01b031614610c7157610be7610bd260608701604088016133eb565b610be260808801606089016133eb565b6114fb565b610bf760808601606087016133eb565b6001600160a01b031663b2767070828a858a6040518563ffffffff1660e01b8152600401610c2793929190613408565b60206040518083038185885af1158015610c45573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c6a91906137d5565b9350610d2d565b610c8a610c8460608701604088016133eb565b886114fb565b6001600160a01b0387166320e8c565828a610cab60608a0160408b016133eb565b6040516001600160e01b031960e086901b1681526001600160a01b0392831660048201529116602482015260448101869052606481018a905260840160206040518083038185885af1158015610d05573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d2a91906137d5565b93505b505050949350505050565b6000806000876001600160a01b031663794052f3306040518263ffffffff1660e01b8152600401610d69919061338a565b61012060405180830381865afa158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190613547565b9050610ddd610dc2886001600160a01b0316610eed565b8742610dd336899003890189613703565b85939291906115bf565b50925084831015610e05578285604051634e6ffe4760e11b815260040161039592919061326e565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f1790610e42908c90879060248101613479565b60408051808303816000875af1158015610e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8491906134a9565b939a93995092975050505050505050565b60006001600160ff1b03821115610eab57600080fd5b5090565b6000610eba82610e95565b610ec690600019613804565b92915050565b8015610ee757610ee76001600160a01b0385168484846116c3565b50505050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec691906137d5565b600080600080600080610f708a8a610f6a8b610e95565b8a61172e565b925092509250610f87610f82846117c1565b6117cf565b9550610f92826117cf565b9450610f9d816117cf565b93505050509450945094915050565b60608101516000906001600160a01b0316610fc75782610fcd565b81606001515b9392505050565b60008115610ff157610ff18533610feb8887610fac565b87610ecc565b825160408401516001600160a01b03908116911614156000816110145787611016565b305b60608601519091506000906001600160a01b0316156110bd5760608601516040516341fadbb360e11b81526001600160a01b038481166004830152602482018a90526000604483015260016064830152909116906383f5b766906084016020604051808303816000875af1158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b691906137d5565b905061114f565b604086810151905163769f8e5d60e01b81526001600160a01b038481166004830152602482018a9052918216604482015260006064820152600160848201529089169063769f8e5d9060a4016020604051808303816000875af1158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c91906137d5565b90505b821561118e5761116d86604001518288608001518960a00151611367565b855161117890611471565b935061118986600001518a866117de565b611192565b8093505b85602001518410156111be57602086015160405163c5b5576d60e01b815261039591869160040161326e565b50505095945050505050565b60408051608081018252868152602081018690529081018490526060810183905260009081908190816111fe8a8a896118a2565b9050600061121a876000611215856020015161199c565b6119b3565b905060005b81606001518110156112d657600080611242848688600001516000015186611a7e565b9150915081611256576020840152506112c6565b60008061126d8860000151888a6020015186611ae9565b5091509150876040015182106112bd5782866020018181525050600061129c838a604001518960800151611b18565b905080156112b75750919950975095506112f0945050505050565b506112c1565b8286525b505050505b6112cf81613834565b905061121f565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6001600160a01b03831661134c578034146113475760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610395565b505050565b8015611347576113476001600160a01b0384168330846116c3565b6001600160a01b038216158061137c57508051155b1561139a57604051631e59c84360e01b815260040160405180910390fd5b6113a484836114fb565b60405163726d379760e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e4da6f2e906113f5908590889060040161384d565b600060405180830381865afa158015611412573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261143a919081019061386f565b9050611469816001600160a01b03871615611456576000611458565b855b6001600160a01b0386169190611b4c565b505050505050565b60006001600160a01b038216156114f4576040516370a0823160e01b81526001600160a01b038316906370a08231906114ae90309060040161338a565b602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906137d5565b610ec6565b4792915050565b6001600160a01b03821661150d575050565b61151f60026001600160601b036138f2565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015611578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159c91906137d5565b10156115bb576115ae82826000611b72565b6115bb8282600019611b72565b5050565b6040805160808101825286815260208101869052908101849052606081018390526000908190816115f18989886118a2565b9050600061161286600061160d85876000015160000151611c86565b611d2e565b905060005b81606001518110156112d657600061162f8383611e0e565b9050600080611648876000015187896020015186611e7a565b509150915086604001518211611694578285526040870151608086015160009161167491859190611ea0565b9050801561168e57509197509095506116b9945050505050565b506116a5565b61169f600184613918565b60208601525b505050806116b290613834565b9050611617565b9550959350505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610ee79085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611ece565b60008060006117418760a0015185101590565b1561175f5760405163b2094b5960e01b815260040160405180910390fd5b86518512611785578651604051632185509b60e21b81526103959190879060040161326e565b60006117928888876118a2565b90506117a088828989611fa0565b919550935091506117b68882898988878b6120f4565b509450945094915050565b6000610ec682600019613804565b600080821215610eab57600080fd5b806000036117eb57505050565b6001600160a01b03831661188e576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611846576040519150601f19603f3d011682016040523d82523d6000602084013e61184b565b606091505b5050905080610ee75760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610395565b6113476001600160a01b0384168383612186565b6118cd6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106118f15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516119039190613918565b905061190f85826121a5565b82526020850151611921908590612206565b60208301528451158061193657506020820151155b1561195d578451602083015160405163b1c4aefb60e01b815261039592919060040161326e565b61197b8560000151866101000151846020015185600001518561223d565b604083015260c085015161198f90826122be565b6060830152509392505050565b600060016119a9836117cf565b610ec69190613918565b6119ec6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b83516119f890846122f2565b81526020840151611a099083612308565b6020820181905281511180611a295750670de0b6b3a76400008460800151115b15611a5657835160208501516080860151604051632cc06bc160e21b81526103959392919060040161392b565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b6000806000611a8d8785611e0e565b90508660a001518111611aa557600192509050611ae0565b6000611aba8787611ab585610e95565b612317565b90506000811215611ad15750600092509050611ae0565b5060a087018190526001925090505b94509492505050565b600080600080600080611b098989611b008a610eaf565b8d929190611fa0565b925092509250610f87836117cf565b6000828410158015611b445750611b4083611b3b84670de0b6b3a7640000613941565b612409565b8411155b949350505050565b6060611b44848484604051806060016040528060298152602001613a8360299139612429565b600080846001600160a01b031663095ea7b360e01b8585604051602401611b9a929190613954565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611bd8919061396d565b6000604051808303816000865af19150503d8060008114611c15576040519150601f19603f3d011682016040523d82523d6000602084013e611c1a565b606091505b5091509150818015611c44575080511580611c44575080806020019051810190611c449190613989565b611c7f5760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610395565b5050505050565b600080611cb3611cae856000015186604001518760600151611ca891906139ab565b9061254f565b612572565b90506000611cd3611ccc670de0b6b3a7640000846139d2565b8390612987565b90506000611cf1866020015186611cea91906139d2565b839061254f565b90506000611cff82876139ab565b90506103e8611d0d826117cf565b611d19906103e76139fa565b611d239190613a11565b979650505050505050565b611d606040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b602084015184511180611d7e5750670de0b6b3a76400008460800151115b15611dab57835160208501516080860151604051632cc06bc160e21b81526103959392919060040161392b565b8351611db790846122f2565b81526020840151611dc89083612308565b6020820181905281511115611a56578351602085015160405163143e763760e31b8152600481019290925260248201526044810184905260648101839052608401610395565b600081158015611e215750604083015115155b15611e3157506040820151610ec6565b6020830151835111611e615760208301518351600291611e5091613941565b611e5a9190613a11565b9050610ec6565b604051637d388ed960e11b815260040160405180910390fd5b600080600080600080611e918989611b008a610e95565b925092509250610f87836129ad565b6000828411158015611b445750611ec383611b3b84670de0b6b3a7640000613918565b909310159392505050565b6000611f23826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166129bf9092919063ffffffff16565b8051909150156113475780806020019051810190611f419190613989565b6113475760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610395565b600080600080611fc38860000151886020015189600001518a60400151896129ce565b90506000611fd9611fd48784612987565b6117c1565b60608901519091506000871315612048576000611ff68483612987565b9050670de0b6b3a76400008112156120245760405163329e322960e21b815260048101829052602401610395565b61204061203983670de0b6b3a76400006139ab565b849061254f565b915050612075565b6120728161205e81670de0b6b3a76400006139ab565b6120689085613804565b611fd49190613a25565b90505b600060646120868c60e00151610e95565b6120909084613804565b61209a9190613a25565b905060006120a883856139ab565b9050600081126120c1576120bc8a82612a73565b6120cb565b6120cb8a82612aa0565b97506120d78a84612a73565b96506120e38a83612a73565b955050505050509450945094915050565b6000818860a001516121069190613918565b88519091506121159086612acd565b885261212f61212484866139d2565b60208a015190612acd565b60208901819052885161215491612147908990612206565b895160408b015185612b14565b610100890181905260000361217c57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6113478363a9059cbb60e01b84846040516024016116f7929190613954565b60006121b082610e95565b6121c76121c26201518061016d6139fa565b610e95565b84608001516121d69190613804565b6121e09190613a25565b905060008113610ec657604051630e520c3b60e11b815260048101829052602401610395565b6000806000831261221857600161221c565b6000195b90506122336121c28561222e866129ad565b612b67565b611b449082613804565b60008061224a86846122be565b9050670de0b6b3a76400008112156122785760405163329e322960e21b815260048101829052602401610395565b600061228e612287878a6139d2565b8990612987565b9050600061229b82612b86565b90506122a78187612987565b6122b190846139ab565b9998505050505050505050565b6000806122d06201518061016d6139fa565b6122da84866139fa565b6122e49190613a11565b9050611b44611cae82610e95565b60008183116123015781610fcd565b5090919050565b60008183106123015781610fcd565b60008082856020015161232a91906139ab565b9050600061233885856139d2565b905060008213801561234a5750600081135b61238b5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610395565b60006123b961239a8484613804565b60208901516123a990896139d2565b6123b39088613804565b90612987565b905060006123cf6123ca8486612987565b612bd5565b88519091506000906123ea90670de0b6b3a764000090612987565b90506123fa81611ca884866139ab565b89604001516122b191906139ab565b60008061241683856139fa565b670de0b6b3a76400009004949350505050565b60608247101561248a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610395565b6001600160a01b0385163b6124e15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610395565b600080866001600160a01b031685876040516124fd919061396d565b60006040518083038185875af1925050503d806000811461253a576040519150601f19603f3d011682016040523d82523d6000602084013e61253f565b606091505b5091509150611d23828286612c66565b60008061255c8385613804565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff198212158015612597575068070c1cc73b00c800008213155b6125d65760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610395565b600082121561260e576125eb82600003612572565b6a0c097ce7bc90715b34b9f160241b81612607576126076138dc565b0592915050565b60006806f05b59d3b2000000831261264c57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b612682565b6803782dace9d9000000831261267e57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380612682565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126126d25768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261270e576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261274857682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412612782576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126127bb57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126127f45768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b1880000841261282d576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126128665768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008061299c670de0b6b3a764000085613804565b9050828181612569576125696138dc565b6000808213610eab576114ef82613a53565b6060611b448484600085612429565b6000806129db8784612acd565b905060006129ec611ccc888a6139d2565b9050670d529ae9e8600000811315612a235780670d529ae9e8600000604051637e34684f60e11b815260040161039592919061326e565b6000612a2e82612b86565b905085612a3b8289612987565b612a4591906139d2565b9350670de0b6b3a76400008412156111be5760405163329e322960e21b815260048101859052602401610395565b60008060008312612a85576001612a89565b6000195b90506122336121c285612a9b866129ad565b612c9f565b60008060008312612ab2576001612ab6565b6000195b90506122336121c285612ac8866129ad565b612cb4565b600081831215612b0a5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610395565b610fcd82846139ab565b600080612b258787878760006129ce565b90506000612b35610f8283612bd5565b905083612b476201518061016d6139fa565b612b5190836139fa565b612b5b9190613a11565b98975050505050505050565b6000670de0b6b3a7640000612b7c84846139fa565b610fcd9190613a11565b6000670de0b6b3a76400008203612bb05760405163a9c8b14d60e01b815260040160405180910390fd5b6000612bce612bc784670de0b6b3a76400006139ab565b8490612987565b9050610fcd815b6000808213612c165760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610395565b670c7d713b49da000082138015612c345750670f43fc2c04ee000082125b15612c5857670de0b6b3a7640000612c4b83612ce0565b81612607576126076138dc565b610ec682612dff565b919050565b60608315612c75575081610fcd565b825115612c855782518084602001fd5b8160405162461bcd60e51b81526004016103959190613a6f565b600082612b7c670de0b6b3a7640000846139fa565b600082600181612ccc670de0b6b3a7640000866139fa565b612cd69190613941565b612b7c9190613918565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612d2157612d216138dc565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612e4057612e37826a0c097ce7bc90715b34b9f160241b81612e3157612e316138dc565b05612dff565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612e8b5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612ec2576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612f0a576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612f45576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612f7c57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612fb357690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612fe85768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261301357680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312613048576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831261307d576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126130b1576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126130e5576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161310e5761310e6138dc565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6001600160a01b03811681146131b757600080fd5b50565b8035612c61816131a2565b600060a082840312156131d757600080fd5b50919050565b600060c082840312156131d757600080fd5b6000806000806000610120868803121561320857600080fd5b8535613213816131a2565b94506020860135613223816131a2565b93506040860135925061323987606088016131c5565b91506101008601356001600160401b0381111561325557600080fd5b613261888289016131dd565b9150509295509295909350565b918252602082015260400190565b6000806000806080858703121561329257600080fd5b843561329d816131a2565b935060208501356132ad816131a2565b93969395505050506040820135916060013590565b600080600080600061012086880312156132db57600080fd5b85356132e6816131a2565b945060208601356132f6816131a2565b9350604086013592506060860135915061331387608088016131c5565b90509295509295909350565b6000806000806080858703121561333557600080fd5b8435613340816131a2565b93506020850135613350816131a2565b92506040850135915060608501356001600160401b0381111561337257600080fd5b61337e878288016131dd565b91505092959194509250565b6001600160a01b0391909116815260200190565b6000806000606084860312156133b357600080fd5b83516133be816131a2565b60208501519093506133cf816131a2565b60408501519092506133e0816131a2565b809150509250925092565b6000602082840312156133fd57600080fd5b8135610fcd816131a2565b6001600160a01b039390931683526020830191909152604082015260600190565b60005b8381101561344457818101518382015260200161342c565b50506000910152565b60008151808452613465816020860160208601613429565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006134a0606083018461344d565b95945050505050565b600080604083850312156134bc57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715613506576135066134cd565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613534576135346134cd565b604052919050565b8051612c61816131a2565b6000610120828403121561355a57600080fd5b6135626134e3565b8251815260208301516020820152604083015160408201526135866060840161353c565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006001600160401b038211156135e2576135e26134cd565b50601f01601f191660200190565b600082601f83011261360157600080fd5b813561361461360f826135c9565b61350c565b81815284602083860101111561362957600080fd5b816020850160208301376000918101602001919091529392505050565b600060c0823603121561365857600080fd5b60405160c081016001600160401b03808211838310171561367b5761367b6134cd565b816040528435915061368c826131a2565b81835260208501356020840152604085013591506136a9826131a2565b816040840152606085013591506136bf826131a2565b8160608401526136d1608086016131ba565b608084015260a08501359150808211156136ea57600080fd5b506136f7368286016135f0565b60a08301525092915050565b600060a0828403121561371557600080fd5b60405160a081016001600160401b0381118282101715613737576137376134cd565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b6000808335601e1984360301811261379f57600080fd5b8301803591506001600160401b038211156137b957600080fd5b6020019150368190038213156137ce57600080fd5b9250929050565b6000602082840312156137e757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820260008212600160ff1b84141615613820576138206137ee565b8181058314821517610ec657610ec66137ee565b600060018201613846576138466137ee565b5060010190565b604081526000613860604083018561344d565b90508260208301529392505050565b60006020828403121561388157600080fd5b81516001600160401b0381111561389757600080fd5b8201601f810184136138a857600080fd5b80516138b661360f826135c9565b8181528560208385010111156138cb57600080fd5b6134a0826020830160208601613429565b634e487b7160e01b600052601260045260246000fd5b60006001600160601b038381168061390c5761390c6138dc565b92169190910492915050565b81810381811115610ec657610ec66137ee565b9283526020830191909152604082015260600190565b80820180821115610ec657610ec66137ee565b6001600160a01b03929092168252602082015260400190565b6000825161397f818460208701613429565b9190910192915050565b60006020828403121561399b57600080fd5b81518015158114610fcd57600080fd5b81810360008312801583831316838312821617156139cb576139cb6137ee565b5092915050565b80820182811260008312801582168215821617156139f2576139f26137ee565b505092915050565b8082028115828204841417610ec657610ec66137ee565b600082613a2057613a206138dc565b500490565b600082613a3457613a346138dc565b600160ff1b821460001984141615613a4e57613a4e6137ee565b500590565b6000600160ff1b8201613a6857613a686137ee565b5060000390565b602081526000610fcd602083018461344d56fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c656478e08a1e3c7a72f78d2c8ad8254052914bad73f8c681dbdc4267d0bb8ac9423c3f5e2944826baeaed8eb77f0f74e6088a154a0fc1317f062fd984585607b4739a26469706673582212206f7e1a4b74986a58d0b5f2507eec22891521bbc3746933db31fadb00b4decd6364736f6c63430008110033";
721
+ "0x608060405234801561001057600080fd5b50613783806100206000396000f3fe6080604052600436106100555760003560e01c80632032aecd1461005a5780636b8bdf321461009157806383c71b69146100b1578063a5f9931b146100d1578063b85f50ba146100e4578063dd371acd14610104575b600080fd5b34801561006657600080fd5b5061007a610075366004612f89565b610124565b604051610088929190612fcf565b60405180910390f35b34801561009d57600080fd5b5061007a6100ac366004612f89565b61029d565b3480156100bd57600080fd5b5061007a6100cc366004612ff5565b6104a4565b61007a6100df366004613064565b610582565b3480156100f057600080fd5b5061007a6100ff3660046130e3565b610687565b34801561011057600080fd5b5061007a61011f366004612ff5565b6107fe565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018b919061314e565b5091505061019b81338888610a2b565b604080516000815260208101918290526329910b1160e01b9091526001600160a01b038716906329910b11906101d8908a908990602481016131eb565b60408051808303816000875af11580156101f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061021a9190613212565b90935091508383101561024d5782846040516305221cf360e11b8152600401610244929190612fcf565b60405180910390fd5b6001600160a01b038088169087163360008051602061372e83398151915261027489610a4c565b61027d88610a69565b60405161028b929190612fcf565b60405180910390a45094509492505050565b6000806000856001600160a01b031663794052f3306040518263ffffffff1660e01b81526004016102ce9190613236565b61012060405180830381865afa1580156102ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610310919061328c565b9050600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610377919061314e565b925050915061039a610391826001600160a01b0316610a83565b84908942610ae9565b5090955050858511156103c457848660405163039d13e760e61b8152600401610244929190612fcf565b6103d082338a88610a2b565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f179061040d908c908b90602481016131eb565b60408051808303816000875af115801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044f9190613212565b9450506001600160a01b03808a169089163360008051602061372e8339815191526104798b610a69565b6104828a610a4c565b604051610490929190612fcf565b60405180910390a450505094509492505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050c919061314e565b925050915061051d82338a8a610a2b565b61052b8989838a8a8a610b42565b90945092506001600160a01b03808a169089163360008051602061372e83398151915261055788610a69565b6105608c610a4c565b60405161056e929190612fcf565b60405180910390a450509550959350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea919061314e565b925050915060006105fe8984600189610c9f565b905061060e8a8a84848c8c610b42565b9095509350610620602087018761330e565b6001600160a01b0316896001600160a01b0316336001600160a01b031660008051602061370e8339815191528d6106568a610a69565b6106638c60200135610a4c565b6040516106729392919061332b565b60405180910390a45050509550959350505050565b600080600080866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156106cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef919061314e565b509150915061070081338989610a2b565b6000876001600160a01b03166329910b1161071b8589610e9c565b604080516000815260208101918290526001600160e01b031960e085901b1690915261074d91908b90602481016131eb565b60408051808303816000875af115801561076b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078f9190613212565b945090506107a1898483896000610eda565b94506107b0602087018761330e565b6001600160a01b0316886001600160a01b0316336001600160a01b031660008051602061370e8339815191528c6107e68c610a4c565b6107ef8b610a69565b6040516104909392919061332b565b6000806000866001600160a01b031663794052f3306040518263ffffffff1660e01b815260040161082f9190613236565b61012060405180830381865afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610871919061328c565b9050600080886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d8919061314e565b925092505061090d6108f2826001600160a01b0316610a83565b8942610903368b90038b018b61334c565b87939291906110a1565b509095505086851115610937578487604051633c0e098d60e11b8152600401610244929190612fcf565b61094382338b88610a2b565b60408051600080825260208201928390526329910b1160e01b9092526001600160a01b038b16906329910b1190610981908e908a90602481016131eb565b60408051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190613212565b95509050888110156109d7576109d76133c9565b6001600160a01b03808c16908b163360008051602061372e8339815191526109fe8a610a4c565b610a078e610a69565b604051610a15929190612fcf565b60405180910390a4505050509550959350505050565b8015610a4657610a466001600160a01b038516848484611188565b50505050565b6000610a5782610a69565b610a63906000196133f5565b92915050565b60006001600160ff1b03821115610a7f57600080fd5b5090565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610ac5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a639190613425565b600080600080600080610b068a8a610b008b610a69565b8a6111f3565b925092509250610b1d610b1884611286565b611294565b9550610b2882611294565b9450610b3381611294565b93505050509450945094915050565b6000806000876001600160a01b031663794052f3306040518263ffffffff1660e01b8152600401610b739190613236565b61012060405180830381865afa158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb5919061328c565b9050610be7610bcc886001600160a01b0316610a83565b8742610bdd3689900389018961334c565b85939291906112a3565b50925084831015610c0f578285604051634e6ffe4760e11b8152600401610244929190612fcf565b60408051600081526020810191829052635b709f1760e01b9091526001600160a01b03891690635b709f1790610c4c908c908790602481016131eb565b60408051808303816000875af1158015610c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8e9190613212565b939a93995092975050505050505050565b600080610caf60a084018461343e565b610cbd90602081019061346d565b9050600080826003811115610cd457610cd4613488565b03610cff57610cf4610ce9602086018661330e565b338660200135611376565b506020830135610e84565b6003826003811115610d1357610d13613488565b03610d5257610d28610ce9602086018661330e565b610cf4610d38602086018661330e565b610d48606087016040880161330e565b86602001356113e2565b6000610d61602086018661330e565b6001600160a01b031603610d8457610d7f6000338660200135611376565b610daf565b610daf610d94602086018661330e565b33610da560a088016080890161330e565b8760200135610a2b565b610dbf60a085016080860161330e565b6001600160a01b0316632bdb823c6000610ddc602088018861330e565b6001600160a01b031614610df1576000610df7565b85602001355b610e04602088018861330e565b6020880135610e1660a08a018a61343e565b6040518563ffffffff1660e01b8152600401610e34939291906134e0565b6000604051808303818588803b158015610e4d57600080fd5b505af1158015610e61573d6000803e3d6000fd5b5050505050610e81846040016020810190610e7c919061330e565b6114a8565b90505b610e918787838888611532565b979650505050505050565b600080610eaf608084016060850161330e565b6001600160a01b031603610ec35782610ed3565b610ed3608083016060840161330e565b9392505050565b600080610eea60a085018561343e565b610ef890602081019061346d565b90506000816003811115610f0e57610f0e613488565b03610f2757610f2087878787876116a9565b915061106a565b6003816003811115610f3b57610f3b613488565b03610f9157610f4d30878787876116a9565b9150610f75610f62606086016040870161330e565b610f6f602087018761330e565b846113e2565b610f8c610f85602086018661330e565b8884611835565b61106a565b6000610faf610fa660a087016080880161330e565b888888886116a9565b9050610fc160a086016080870161330e565b6001600160a01b0316632bdb823c610fdf606088016040890161330e565b83610fed60a08a018a61343e565b6040518463ffffffff1660e01b815260040161100b939291906134e0565b600060405180830381600087803b15801561102557600080fd5b505af1158015611039573d6000803e3d6000fd5b5061104f9250610e7c915050602087018761330e565b9250611068611061602087018761330e565b8985611835565b505b83602001358210156110975781846020013560405163c5b5576d60e01b8152600401610244929190612fcf565b5095945050505050565b60008080806110b18989886118f9565b905084604001516000036110e4576110d685602001516110d18b846119f3565b611a77565b60208601526110e485611a8d565b60005b85606001518110156111635760006110ff8783611ae9565b90506000806111108d868e86611b55565b50915091508a821061114b5761112b828c8b60800151611b86565b1561113f579196509450925061117d915050565b6020890183905261114f565b8289525b5050508061115c906135b2565b90506110e7565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610a469085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611bba565b60008060006112068760a0015185101590565b156112245760405163b2094b5960e01b815260040160405180910390fd5b8651851261124a578651604051632185509b60e21b815261024491908790600401612fcf565b60006112578888876118f9565b905061126588828989611c8c565b9195509350915061127b8882898988878b611de0565b509450945094915050565b6000610a63826000196133f5565b600080821215610a7f57600080fd5b600080806112b28888876118f9565b905083604001516000036112e4576112d684602001516110d1838b60000151611e68565b60208501526112e484611a8d565b60005b84606001518110156111635760006112ff8683611ae9565b90506000806113108c868d86611efc565b50915091508982116113475761132b828b8a60800151611f2e565b1561133f5791955090935061136c92505050565b828852611358565b6113526001846135cb565b60208901525b50505080611365906135b2565b90506112e7565b9550959350505050565b6001600160a01b0383166113c7578034146113c25760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610244565b505050565b80156113c2576113c26001600160a01b038416833084611188565b6001600160a01b03831661144957816001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561142b57600080fd5b505af115801561143f573d6000803e3d6000fd5b5050505050505050565b604051632e1a7d4d60e01b8152600481018290526001600160a01b03841690632e1a7d4d90602401600060405180830381600087803b15801561148b57600080fd5b505af115801561149f573d6000803e3d6000fd5b50505050505050565b60006001600160a01b0382161561152b576040516370a0823160e01b81526001600160a01b038316906370a08231906114e5903090600401613236565b602060405180830381865afa158015611502573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115269190613425565b610a63565b4792915050565b60008080611546606085016040860161330e565b6001600160a01b03161461155b57600061155d565b845b90506000611571608085016060860161330e565b6001600160a01b0316146116095761158f608084016060850161330e565b6001600160a01b031663b2767070828988886040518563ffffffff1660e01b81526004016115bf9392919061332b565b60206040518083038185885af11580156115dd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116029190613425565b9150611097565b6001600160a01b0386166320e8c565828961162a606088016040890161330e565b6040516001600160e01b031960e086901b1681526001600160a01b03928316600482015291166024820152604481018990526064810188905260840160206040518083038185885af1158015611684573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e919190613425565b600081156116c6576116c685336116c08887610e9c565b87610a2b565b60006116d8608085016060860161330e565b6001600160a01b031614611780576116f6608084016060850161330e565b6040516341fadbb360e11b81526001600160a01b03888116600483015260248201879052600060448301526001606483015291909116906383f5b766906084016020604051808303816000875af1158015611755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117799190613425565b905061182c565b6001600160a01b03851663769f8e5d87866117a1606088016040890161330e565b60405160e085901b6001600160e01b03191681526001600160a01b03938416600482015260248101929092529091166044820152600060648201526001608482015260a4016020604051808303816000875af1158015611805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118299190613425565b90505b95945050505050565b8060000361184257505050565b6001600160a01b0383166118e5576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461189d576040519150601f19603f3d011682016040523d82523d6000602084013e6118a2565b606091505b5050905080610a465760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610244565b6113c26001600160a01b0384168383611f5c565b6119246040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106119485760405163b2094b5960e01b815260040160405180910390fd5b6000828560a0015161195a91906135cb565b90506119668582611f8c565b82526020850151611978908590611fed565b60208301528451158061198d57506020820151155b156119b4578451602083015160405163b1c4aefb60e01b8152610244929190600401612fcf565b6119d285600001518661010001518460200151856000015185612024565b604083015260c08501516119e690826120a5565b6060830152509392505050565b60008060009050600060018460200151611a0d91906135cb565b90505b808214611a6f5760006002611a2583856135de565b611a309060016135de565b611a3a9190613607565b90506000611a4d868860000151846120d9565b1215611a6557611a5e6001826135cb565b9150611a69565b8092505b50611a10565b509392505050565b6000818310611a865781610ed3565b5090919050565b602081015181511180611aab5750670de0b6b3a76400008160800151115b15611ae657805160208201516080830151604051632cc06bc160e21b8152600481019390935260248301919091526044820152606401610244565b50565b600081158015611afc5750604083015115155b15611b0c57506040820151610a63565b6020830151835111611b3c5760208301518351600291611b2b916135de565b611b359190613607565b9050610a63565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080611b738989611b6a8a61361b565b8d929190611c8c565b919c909b50909950975050505050505050565b6000828410158015611bb25750611bae83611ba984670de0b6b3a76400006135de565b6121cb565b8411155b949350505050565b6000611c0f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166121eb9092919063ffffffff16565b8051909150156113c25780806020019051810190611c2d9190613637565b6113c25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610244565b600080600080611caf8860000151886020015189600001518a60400151896121fa565b90506000611cc5611cc087846122ab565b611286565b60608901519091506000871315611d34576000611ce284836122ab565b9050670de0b6b3a7640000811215611d105760405163329e322960e21b815260048101829052602401610244565b611d2c611d2583670de0b6b3a7640000613654565b84906122da565b915050611d61565b611d5e81611d4a81670de0b6b3a7640000613654565b611d5490856133f5565b611cc0919061367b565b90505b60006064611d728c60e00151610a69565b611d7c90846133f5565b611d86919061367b565b90506000611d948385613654565b905060008112611dad57611da88a826122f8565b611db7565b611db78a82612325565b9750611dc38a846122f8565b9650611dcf8a836122f8565b955050505050509450945094915050565b6000818860a00151611df291906135cb565b8851909150611e019086612352565b8852611e1b611e1084866136a9565b60208a015190612352565b602089018190528851611e4091611e33908990611fed565b895160408b015185612399565b610100890181905260000361143f57604051635534d70f60e11b815260040160405180910390fd5b600080611e95611e90856000015186604001518760600151611e8a9190613654565b906122da565b6123ec565b90506000611eb5611eae670de0b6b3a7640000846136a9565b83906122ab565b90506000611ed3866020015186611ecc91906136a9565b83906122da565b90506000611ee18287613654565b90506103e8611ef2826103e76136d1565b610e919190613607565b60008080808080611f0f8a8a8a8a611c8c565b92509250925082611f1f9061361b565b9a919950975095505050505050565b6000828411158015611bb25750611f5183611ba984670de0b6b3a76400006135cb565b909310159392505050565b6040516001600160a01b0383166024820152604481018290526113c290849063a9059cbb60e01b906064016111bc565b6000611f9782610a69565b611fae611fa96201518061016d6136d1565b610a69565b8460800151611fbd91906133f5565b611fc7919061367b565b905060008113610a6357604051630e520c3b60e11b815260048101829052602401610244565b60008060008312611fff576001612003565b6000195b905061201a611fa98561201586612801565b612813565b611bb290826133f5565b60008061203186846120a5565b9050670de0b6b3a764000081121561205f5760405163329e322960e21b815260048101829052602401610244565b600061207561206e878a6136a9565b89906122ab565b9050600061208282612832565b905061208e81876122ab565b6120989084613654565b9998505050505050505050565b6000806120b76201518061016d6136d1565b6120c184866136d1565b6120cb9190613607565b9050611bb2611e9082610a69565b6000808285602001516120ec9190613654565b905060006120fa85856136a9565b905060008213801561210c5750600081135b61214d5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610244565b600061217b61215c84846133f5565b602089015161216b90896136a9565b61217590886133f5565b906122ab565b9050600061219161218c84866122ab565b612881565b88519091506000906121ac90670de0b6b3a7640000906122ab565b90506121bc81611e8a8486613654565b89604001516120989190613654565b6000806121d883856136d1565b670de0b6b3a76400009004949350505050565b6060611bb28484600085612912565b6000806122078784612352565b90506000612218611eae888a6136a9565b9050670d529ae9e860000081131561224f5780670d529ae9e8600000604051637e34684f60e11b8152600401610244929190612fcf565b600061225a82612832565b90508561226782896122ab565b61227191906136a9565b9350670de0b6b3a764000084121561229f5760405163329e322960e21b815260048101859052602401610244565b50505095945050505050565b6000806122c0670de0b6b3a7640000856133f5565b90508281816122d1576122d16135f1565b05949350505050565b6000806122e783856133f5565b9050670de0b6b3a7640000816122d1565b6000806000831261230a57600161230e565b6000195b905061201a611fa98561232086612801565b612a38565b6000806000831261233757600161233b565b6000195b905061201a611fa98561234d86612801565b612a4d565b60008183121561238f5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610244565b610ed38284613654565b6000806123aa8787878760006121fa565b905060006123ba610b1883612881565b9050836123cc6201518061016d6136d1565b6123d690836136d1565b6123e09190613607565b98975050505050505050565b6000680238fd42c5cf03ffff198212158015612411575068070c1cc73b00c800008213155b6124505760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610244565b600082121561248857612465826000036123ec565b6a0c097ce7bc90715b34b9f160241b81612481576124816135f1565b0592915050565b60006806f05b59d3b200000083126124c657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6124fc565b6803782dace9d900000083126124f857506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806124fc565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261254c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412612588576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126125c257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126125fc576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261263557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d63100000841261266e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126126a7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126e05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000808213610a7f576115268261361b565b6000670de0b6b3a764000061282884846136d1565b610ed39190613607565b6000670de0b6b3a7640000820361285c5760405163a9c8b14d60e01b815260040160405180910390fd5b600061287a61287384670de0b6b3a7640000613654565b84906122ab565b9050610ed3815b60008082136128c25760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610244565b670c7d713b49da0000821380156128e05750670f43fc2c04ee000082125b1561290457670de0b6b3a76400006128f783612a79565b81612481576124816135f1565b610a6382612b98565b919050565b6060824710156129735760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610244565b6001600160a01b0385163b6129ca5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610244565b600080866001600160a01b031685876040516129e691906136e8565b60006040518083038185875af1925050503d8060008114612a23576040519150601f19603f3d011682016040523d82523d6000602084013e612a28565b606091505b5091509150610e91828286612f3b565b600082612828670de0b6b3a7640000846136d1565b600082600181612a65670de0b6b3a7640000866136d1565b612a6f91906135de565b61282891906135cb565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281612aba57612aba6135f1565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215612bd957612bd0826a0c097ce7bc90715b34b9f160241b81612bca57612bca6135f1565b05612b98565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312612c245772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312612c5b576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612ca3576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612cde576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312612d1557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312612d4c57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312612d815768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312612dac57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612de1576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612e16576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312612e4a576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312612e7e576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281612ea757612ea76135f1565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60608315612f4a575081610ed3565b825115612f5a5782518084602001fd5b8160405162461bcd60e51b815260040161024491906136fa565b6001600160a01b0381168114611ae657600080fd5b60008060008060808587031215612f9f57600080fd5b8435612faa81612f74565b93506020850135612fba81612f74565b93969395505050506040820135916060013590565b918252602082015260400190565b600060a08284031215612fef57600080fd5b50919050565b6000806000806000610120868803121561300e57600080fd5b853561301981612f74565b9450602086013561302981612f74565b935060408601359250606086013591506130468760808801612fdd565b90509295509295909350565b600060c08284031215612fef57600080fd5b6000806000806000610120868803121561307d57600080fd5b853561308881612f74565b9450602086013561309881612f74565b9350604086013592506130ae8760608801612fdd565b91506101008601356001600160401b038111156130ca57600080fd5b6130d688828901613052565b9150509295509295909350565b600080600080608085870312156130f957600080fd5b843561310481612f74565b9350602085013561311481612f74565b92506040850135915060608501356001600160401b0381111561313657600080fd5b61314287828801613052565b91505092959194509250565b60008060006060848603121561316357600080fd5b835161316e81612f74565b602085015190935061317f81612f74565b604085015190925061319081612f74565b809150509250925092565b60005b838110156131b657818101518382015260200161319e565b50506000910152565b600081518084526131d781602086016020860161319b565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061182c60608301846131bf565b6000806040838503121561322557600080fd5b505080516020909101519092909150565b6001600160a01b0391909116815260200190565b60405161012081016001600160401b038111828210171561327b57634e487b7160e01b600052604160045260246000fd5b60405290565b805161290d81612f74565b6000610120828403121561329f57600080fd5b6132a761324a565b8251815260208301516020820152604083015160408201526132cb60608401613281565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006020828403121561332057600080fd5b8135610ed381612f74565b6001600160a01b039390931683526020830191909152604082015260600190565b600060a0828403121561335e57600080fd5b60405160a081016001600160401b038111828210171561338e57634e487b7160e01b600052604160045260246000fd5b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820260008212600160ff1b84141615613411576134116133df565b8181058314821517610a6357610a636133df565b60006020828403121561343757600080fd5b5051919050565b60008235607e1983360301811261345457600080fd5b9190910192915050565b80356004811061290d57600080fd5b60006020828403121561347f57600080fd5b610ed38261345e565b634e487b7160e01b600052602160045260246000fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8015158114611ae657600080fd5b803561290d816134c7565b6001600160a01b03848116825260208201849052606060408301526000906135078461345e565b6004811061352557634e487b7160e01b600052602160045260246000fd5b6060840152602084013561353881612f74565b166080830152604083013536849003601e1901811261355657600080fd5b83016020810190356001600160401b0381111561357257600080fd5b80360382131561358157600080fd5b608060a085015261359660e08501828461349e565b9150506135a5606085016134d5565b80151560c0850152611097565b6000600182016135c4576135c46133df565b5060010190565b81810381811115610a6357610a636133df565b80820180821115610a6357610a636133df565b634e487b7160e01b600052601260045260246000fd5b600082613616576136166135f1565b500490565b6000600160ff1b8201613630576136306133df565b5060000390565b60006020828403121561364957600080fd5b8151610ed3816134c7565b8181036000831280158383131683831282161715613674576136746133df565b5092915050565b60008261368a5761368a6135f1565b600160ff1b8214600019841416156136a4576136a46133df565b500590565b80820182811260008312801582168215821617156136c9576136c96133df565b505092915050565b8082028115828204841417610a6357610a636133df565b6000825161345481846020870161319b565b602081526000610ed360208301846131bf56fe78e08a1e3c7a72f78d2c8ad8254052914bad73f8c681dbdc4267d0bb8ac9423c3f5e2944826baeaed8eb77f0f74e6088a154a0fc1317f062fd984585607b4739a264697066735822122063bec7351e4749383a14b08e522f1f5966d8896f97a06b2928446778f2cadef764736f6c63430008110033";
733
722
 
734
723
  type ActionSwapPTConstructorParams =
735
724
  | [signer?: Signer]
@@ -750,19 +739,14 @@ export class ActionSwapPT__factory extends ContractFactory {
750
739
  }
751
740
 
752
741
  deploy(
753
- _kyberScalingLib: string,
754
742
  overrides?: Overrides & { from?: string | Promise<string> }
755
743
  ): Promise<ActionSwapPT> {
756
- return super.deploy(
757
- _kyberScalingLib,
758
- overrides || {}
759
- ) as Promise<ActionSwapPT>;
744
+ return super.deploy(overrides || {}) as Promise<ActionSwapPT>;
760
745
  }
761
746
  getDeployTransaction(
762
- _kyberScalingLib: string,
763
747
  overrides?: Overrides & { from?: string | Promise<string> }
764
748
  ): TransactionRequest {
765
- return super.getDeployTransaction(_kyberScalingLib, overrides || {});
749
+ return super.getDeployTransaction(overrides || {});
766
750
  }
767
751
  attach(address: string): ActionSwapPT {
768
752
  return super.attach(address) as ActionSwapPT;