@pendle/core-v2 2.18.0 → 2.19.0-tradingbot

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 (437) 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/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  19. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  41. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  46. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  102. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
  103. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1215 -0
  104. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +4 -0
  105. package/build/artifacts/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol/LongYieldTradingBot.json +1681 -0
  106. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.dbg.json +4 -0
  107. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol/ShortYieldDecisionHelper.json +1215 -0
  108. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.dbg.json +4 -0
  109. package/build/artifacts/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol/ShortYieldTradingBot.json +1535 -0
  110. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.dbg.json +4 -0
  111. package/build/artifacts/contracts/core/TradingBot/base/BotActionCallback.sol/BotActionCallback.json +932 -0
  112. package/build/artifacts/contracts/core/TradingBot/base/BotActionHelper.sol/BotActionHelper.dbg.json +4 -0
  113. package/build/artifacts/contracts/core/TradingBot/base/BotActionHelper.sol/BotActionHelper.json +932 -0
  114. package/build/artifacts/contracts/core/TradingBot/base/BotDecisionHelperBase.sol/BotDecisionHelperBase.dbg.json +4 -0
  115. package/build/artifacts/contracts/core/TradingBot/base/BotDecisionHelperBase.sol/BotDecisionHelperBase.json +789 -0
  116. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.dbg.json +4 -0
  117. package/build/artifacts/contracts/core/TradingBot/base/TradingBotBase.sol/TradingBotBase.json +882 -0
  118. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.dbg.json +4 -0
  119. package/build/artifacts/contracts/core/TradingBot/libraries/BotSimulationLib.sol/BotSimulationLib.json +10 -0
  120. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.dbg.json +4 -0
  121. package/build/artifacts/contracts/core/TradingBot/libraries/MarketExtLib.sol/MarketExtLib.json +24 -0
  122. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +4 -0
  123. package/build/artifacts/contracts/core/TradingBot/libraries/SpecSegmentLib.sol/SpecSegmentLib.json +10 -0
  124. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  125. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  127. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  128. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  129. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  130. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  131. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  132. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  133. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  134. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  135. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  136. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  137. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  138. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  139. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  140. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +151 -2
  141. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +4 -0
  142. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.json +10 -0
  143. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  170. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +652 -0
  171. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.dbg.json +4 -0
  172. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol/ILongYieldDecisionHelper.json +671 -0
  173. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +4 -0
  174. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +1094 -0
  175. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.dbg.json +4 -0
  176. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol/IShortYieldDecisionHelper.json +652 -0
  177. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.dbg.json +4 -0
  178. package/build/artifacts/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol/IShortYieldTradingBot.json +1075 -0
  179. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +4 -0
  180. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +632 -0
  181. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +4 -0
  182. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.json +10 -0
  183. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  184. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  185. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  186. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  187. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  188. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  189. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  190. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  191. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  192. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  193. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  194. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  195. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  196. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  197. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  198. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  199. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  200. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  201. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  202. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  203. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  204. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  205. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  206. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  207. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  208. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  209. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  210. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  211. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +4 -0
  212. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +166 -0
  213. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  214. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  215. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  216. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  217. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  218. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  219. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  220. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  221. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  222. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  223. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  224. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  225. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  226. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  227. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  228. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  229. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  230. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  231. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  232. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  233. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  234. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  235. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  236. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  237. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  238. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +1 -1
  239. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  240. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
  241. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  242. package/contracts/core/TradingBot/LongYield/LongYieldDecisionHelper.sol +216 -0
  243. package/contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol +97 -0
  244. package/contracts/core/TradingBot/README.md +153 -0
  245. package/contracts/core/TradingBot/ShortYield/ShortYieldDecisionHelper.sol +198 -0
  246. package/contracts/core/TradingBot/ShortYield/ShortYieldTradingBot.sol +101 -0
  247. package/contracts/core/TradingBot/base/BotActionCallback.sol +112 -0
  248. package/contracts/core/TradingBot/base/BotActionHelper.sol +178 -0
  249. package/contracts/core/TradingBot/base/BotDecisionHelperBase.sol +235 -0
  250. package/contracts/core/TradingBot/base/TradingBotBase.sol +184 -0
  251. package/contracts/core/TradingBot/libraries/BotSimulationLib.sol +155 -0
  252. package/contracts/core/TradingBot/libraries/MarketExtLib.sol +310 -0
  253. package/contracts/core/TradingBot/libraries/SpecSegmentLib.sol +62 -0
  254. package/contracts/core/libraries/Errors.sol +12 -0
  255. package/contracts/core/libraries/TokenAmountLib.sol +47 -0
  256. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +57 -0
  257. package/contracts/interfaces/TradingBot/ILongYieldDecisionHelper.sol +8 -0
  258. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +51 -0
  259. package/contracts/interfaces/TradingBot/IShortYieldDecisionHelper.sol +7 -0
  260. package/contracts/interfaces/TradingBot/IShortYieldTradingBot.sol +27 -0
  261. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +67 -0
  262. package/contracts/offchain-helpers/BoringLpSeller.sol +47 -0
  263. package/contracts/oracles/samples/PendleLpGlpOracle.sol +49 -0
  264. package/package.json +1 -1
  265. package/typechain-types/BotActionCallback.ts +950 -0
  266. package/typechain-types/BotActionHelper.ts +950 -0
  267. package/typechain-types/BotDecisionHelper.ts +561 -0
  268. package/typechain-types/BotDecisionHelperBase.ts +484 -0
  269. package/typechain-types/BotDecisionLib.ts +335 -0
  270. package/typechain-types/CamelotV1LpHelper.ts +203 -0
  271. package/typechain-types/CamelotV1Preview.ts +431 -0
  272. package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
  273. package/typechain-types/IAnkrBNB.ts +150 -0
  274. package/typechain-types/IAnkrLiquidStaking.ts +253 -0
  275. package/typechain-types/IBotDecisionHelper.ts +452 -0
  276. package/typechain-types/ICamelotSY.ts +100 -0
  277. package/typechain-types/IExecutorHelper1.ts +643 -0
  278. package/typechain-types/IExecutorHelper2.ts +115 -0
  279. package/typechain-types/IExecutorHelperEthereum1.ts +643 -0
  280. package/typechain-types/ILongYieldDecisionHelper.ts +486 -0
  281. package/typechain-types/ILongYieldTradingBot.ts +928 -0
  282. package/typechain-types/IPExternalRewardDistributor.ts +192 -0
  283. package/typechain-types/IPMarketFactoryV2.ts +253 -0
  284. package/typechain-types/IPendlePreviewHelper.ts +147 -0
  285. package/typechain-types/IShortYieldDecisionHelper.ts +452 -0
  286. package/typechain-types/IShortYieldTradingBot.ts +820 -0
  287. package/typechain-types/ISwETH.ts +123 -0
  288. package/typechain-types/IThenaFactory.ts +245 -0
  289. package/typechain-types/IThenaGaugeV2.ts +206 -0
  290. package/typechain-types/IThenaPair.ts +579 -0
  291. package/typechain-types/IThenaRouter.ts +313 -0
  292. package/typechain-types/IThenaSY.ts +81 -0
  293. package/typechain-types/ITradingBotBase.ts +619 -0
  294. package/typechain-types/IWBETH.ts +128 -0
  295. package/typechain-types/LongYieldDecisionHelper.ts +601 -0
  296. package/typechain-types/LongYieldTradingBot.ts +1414 -0
  297. package/typechain-types/MarketExtLib.ts +81 -0
  298. package/typechain-types/PendleAnkrBNBSY.ts +1235 -0
  299. package/typechain-types/PendleAuraWstethAnkreth.ts +1511 -0
  300. package/typechain-types/PendleBinanceEth.ts +1229 -0
  301. package/typechain-types/PendleCamelotV1SY.ts +1961 -0
  302. package/typechain-types/PendleExternalRewardDistributor.ts +546 -0
  303. package/typechain-types/PendleGaugeV2.ts +225 -0
  304. package/typechain-types/PendleLpGlpOracle.ts +145 -0
  305. package/typechain-types/PendleMarketFactoryV2.ts +930 -0
  306. package/typechain-types/PendleMarketV2.ts +1311 -0
  307. package/typechain-types/PendleSwETH.ts +1216 -0
  308. package/typechain-types/PendleSwapArbitrum.ts +126 -0
  309. package/typechain-types/PendleSwapEthereum.ts +126 -0
  310. package/typechain-types/PendleThenaSY.ts +1598 -0
  311. package/typechain-types/PendleWbEthSY.ts +1229 -0
  312. package/typechain-types/PtAndLpToAsset.ts +136 -0
  313. package/typechain-types/ShortYieldDecisionHelper.ts +601 -0
  314. package/typechain-types/ShortYieldTradingBot.ts +1306 -0
  315. package/typechain-types/ThenaLpHelper.ts +191 -0
  316. package/typechain-types/ThenaMath.ts +87 -0
  317. package/typechain-types/ThenaPreview.ts +450 -0
  318. package/typechain-types/TradingBotBase.ts +906 -0
  319. package/typechain-types/TradingBotOffchain.ts +568 -0
  320. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  321. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  322. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  323. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  324. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  325. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  326. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  327. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  328. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  329. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  330. package/typechain-types/factories/BotActionCallback__factory.ts +947 -0
  331. package/typechain-types/factories/BotActionHelper__factory.ts +947 -0
  332. package/typechain-types/factories/BotDecisionHelperBase__factory.ts +808 -0
  333. package/typechain-types/factories/BotDecisionHelper__factory.ts +1192 -0
  334. package/typechain-types/factories/BotDecisionLib__factory.ts +642 -0
  335. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  336. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  337. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  338. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  339. package/typechain-types/factories/CamelotV1LpHelper__factory.ts +143 -0
  340. package/typechain-types/factories/CamelotV1Preview__factory.ts +309 -0
  341. package/typechain-types/factories/Errors__factory.ts +150 -1
  342. package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
  343. package/typechain-types/factories/IAnkrBNB__factory.ts +74 -0
  344. package/typechain-types/factories/IAnkrLiquidStaking__factory.ts +123 -0
  345. package/typechain-types/factories/IBotDecisionHelper__factory.ts +667 -0
  346. package/typechain-types/factories/ICamelotSY__factory.ts +49 -0
  347. package/typechain-types/factories/IExecutorHelper1__factory.ts +403 -0
  348. package/typechain-types/factories/IExecutorHelper2__factory.ts +55 -0
  349. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +407 -0
  350. package/typechain-types/factories/ILongYieldDecisionHelper__factory.ts +690 -0
  351. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +1113 -0
  352. package/typechain-types/factories/IPExternalRewardDistributor__factory.ts +128 -0
  353. package/typechain-types/factories/IPMarketFactoryV2__factory.ts +181 -0
  354. package/typechain-types/factories/IPendlePreviewHelper__factory.ts +78 -0
  355. package/typechain-types/factories/IShortYieldDecisionHelper__factory.ts +671 -0
  356. package/typechain-types/factories/IShortYieldTradingBot__factory.ts +1094 -0
  357. package/typechain-types/factories/ISwETH__factory.ts +53 -0
  358. package/typechain-types/factories/IThenaFactory__factory.ts +164 -0
  359. package/typechain-types/factories/IThenaGaugeV2__factory.ts +83 -0
  360. package/typechain-types/factories/IThenaPair__factory.ts +421 -0
  361. package/typechain-types/factories/IThenaRouter__factory.ts +200 -0
  362. package/typechain-types/factories/IThenaSY__factory.ts +36 -0
  363. package/typechain-types/factories/ITradingBotBase__factory.ts +647 -0
  364. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  365. package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +1272 -0
  366. package/typechain-types/factories/LongYieldTradingBot__factory.ts +1754 -0
  367. package/typechain-types/factories/MarketExtLib__factory.ts +74 -0
  368. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  369. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1100 -0
  370. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +27 -2
  371. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  372. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  373. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  374. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  375. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  376. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1244 -0
  377. package/typechain-types/factories/PendleBinanceEth__factory.ts +1052 -0
  378. package/typechain-types/factories/PendleCamelotV1SY__factory.ts +1595 -0
  379. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  380. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  381. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  382. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +414 -0
  383. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  384. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  385. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  386. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  387. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  388. package/typechain-types/factories/PendleGaugeV2__factory.ts +140 -0
  389. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  390. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  391. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +246 -0
  392. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +770 -0
  393. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  394. package/typechain-types/factories/PendleMarketV2__factory.ts +1290 -0
  395. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  396. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  397. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  398. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  399. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  400. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  401. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  402. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  403. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  404. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  405. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  406. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  407. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  408. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  409. package/typechain-types/factories/PendleSwETH__factory.ts +1022 -0
  410. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +129 -0
  411. package/typechain-types/factories/PendleSwapEthereum__factory.ts +129 -0
  412. package/typechain-types/factories/PendleThenaSY__factory.ts +1352 -0
  413. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  414. package/typechain-types/factories/PendleWbEthSY__factory.ts +1049 -0
  415. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  416. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  417. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  418. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  419. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  420. package/typechain-types/factories/PtAndLpToAsset__factory.ts +150 -0
  421. package/typechain-types/factories/SAPE__factory.ts +1 -1
  422. package/typechain-types/factories/ShortYieldDecisionHelper__factory.ts +1272 -0
  423. package/typechain-types/factories/ShortYieldTradingBot__factory.ts +1612 -0
  424. package/typechain-types/factories/ThenaLpHelper__factory.ts +140 -0
  425. package/typechain-types/factories/ThenaMath__factory.ts +36 -0
  426. package/typechain-types/factories/ThenaPreview__factory.ts +319 -0
  427. package/typechain-types/factories/TradingBotBase__factory.ts +897 -0
  428. package/typechain-types/factories/TradingBotOffchain__factory.ts +1133 -0
  429. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  430. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  431. package/typechain-types/hardhat.d.ts +144 -9
  432. package/typechain-types/index.ts +32 -2
  433. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.dbg.json +0 -4
  434. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.json +0 -966
  435. package/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol +0 -114
  436. package/deployments/42161-markets/RETH-ARBITRUM-JUNE2024.json +0 -10
  437. package/deployments/42161-markets/WSTETH-ARBITRUM-JUNE2024.json +0 -10
@@ -0,0 +1,1681 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LongYieldTradingBot",
4
+ "sourceName": "contracts/core/TradingBot/LongYield/LongYieldTradingBot.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_market",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_router",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_PENDLE",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_decisionHelper",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "ApproxFail",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "guessMin",
42
+ "type": "uint256"
43
+ },
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "guessMax",
47
+ "type": "uint256"
48
+ },
49
+ {
50
+ "internalType": "uint256",
51
+ "name": "eps",
52
+ "type": "uint256"
53
+ }
54
+ ],
55
+ "name": "ApproxParamsInvalid",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [
60
+ {
61
+ "internalType": "address",
62
+ "name": "caller",
63
+ "type": "address"
64
+ }
65
+ ],
66
+ "name": "BotCallbackNotMarket",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "uint256",
73
+ "name": "actualLpOut",
74
+ "type": "uint256"
75
+ },
76
+ {
77
+ "internalType": "uint256",
78
+ "name": "requiredLpOut",
79
+ "type": "uint256"
80
+ }
81
+ ],
82
+ "name": "BotInsufficientLpOut",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [
87
+ {
88
+ "internalType": "uint256",
89
+ "name": "actualSyOut",
90
+ "type": "uint256"
91
+ },
92
+ {
93
+ "internalType": "uint256",
94
+ "name": "requiredSyOut",
95
+ "type": "uint256"
96
+ }
97
+ ],
98
+ "name": "BotInsufficientSyOut",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [
103
+ {
104
+ "internalType": "uint256",
105
+ "name": "actualYtOut",
106
+ "type": "uint256"
107
+ },
108
+ {
109
+ "internalType": "uint256",
110
+ "name": "requiredYtOut",
111
+ "type": "uint256"
112
+ }
113
+ ],
114
+ "name": "BotInsufficientYtOut",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [
119
+ {
120
+ "internalType": "int256",
121
+ "name": "exchangeRate",
122
+ "type": "int256"
123
+ }
124
+ ],
125
+ "name": "MarketExchangeRateBelowOne",
126
+ "type": "error"
127
+ },
128
+ {
129
+ "inputs": [],
130
+ "name": "MarketExpired",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "inputs": [
135
+ {
136
+ "internalType": "int256",
137
+ "name": "currentAmount",
138
+ "type": "int256"
139
+ },
140
+ {
141
+ "internalType": "int256",
142
+ "name": "requiredAmount",
143
+ "type": "int256"
144
+ }
145
+ ],
146
+ "name": "MarketInsufficientPtForTrade",
147
+ "type": "error"
148
+ },
149
+ {
150
+ "inputs": [],
151
+ "name": "MarketProportionMustNotEqualOne",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [
156
+ {
157
+ "internalType": "int256",
158
+ "name": "proportion",
159
+ "type": "int256"
160
+ },
161
+ {
162
+ "internalType": "int256",
163
+ "name": "maxProportion",
164
+ "type": "int256"
165
+ }
166
+ ],
167
+ "name": "MarketProportionTooHigh",
168
+ "type": "error"
169
+ },
170
+ {
171
+ "inputs": [
172
+ {
173
+ "internalType": "int256",
174
+ "name": "rateScalar",
175
+ "type": "int256"
176
+ }
177
+ ],
178
+ "name": "MarketRateScalarBelowZero",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "MarketZeroLnImpliedRate",
184
+ "type": "error"
185
+ },
186
+ {
187
+ "inputs": [
188
+ {
189
+ "internalType": "int256",
190
+ "name": "totalPt",
191
+ "type": "int256"
192
+ },
193
+ {
194
+ "internalType": "int256",
195
+ "name": "totalAsset",
196
+ "type": "int256"
197
+ }
198
+ ],
199
+ "name": "MarketZeroTotalPtOrTotalAsset",
200
+ "type": "error"
201
+ },
202
+ {
203
+ "anonymous": false,
204
+ "inputs": [
205
+ {
206
+ "components": [
207
+ {
208
+ "internalType": "uint256",
209
+ "name": "guessMin",
210
+ "type": "uint256"
211
+ },
212
+ {
213
+ "internalType": "uint256",
214
+ "name": "guessMax",
215
+ "type": "uint256"
216
+ },
217
+ {
218
+ "internalType": "uint256",
219
+ "name": "guessOffchain",
220
+ "type": "uint256"
221
+ },
222
+ {
223
+ "internalType": "uint256",
224
+ "name": "maxIteration",
225
+ "type": "uint256"
226
+ },
227
+ {
228
+ "internalType": "uint256",
229
+ "name": "eps",
230
+ "type": "uint256"
231
+ }
232
+ ],
233
+ "indexed": false,
234
+ "internalType": "struct ApproxParams",
235
+ "name": "botParams",
236
+ "type": "tuple"
237
+ },
238
+ {
239
+ "indexed": false,
240
+ "internalType": "uint256",
241
+ "name": "maxSyIn",
242
+ "type": "uint256"
243
+ },
244
+ {
245
+ "indexed": false,
246
+ "internalType": "uint256",
247
+ "name": "netSyIn",
248
+ "type": "uint256"
249
+ },
250
+ {
251
+ "indexed": false,
252
+ "internalType": "uint256",
253
+ "name": "netLpOut",
254
+ "type": "uint256"
255
+ }
256
+ ],
257
+ "name": "AddLiqFromSy",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "components": [
265
+ {
266
+ "internalType": "uint256",
267
+ "name": "guessMin",
268
+ "type": "uint256"
269
+ },
270
+ {
271
+ "internalType": "uint256",
272
+ "name": "guessMax",
273
+ "type": "uint256"
274
+ },
275
+ {
276
+ "internalType": "uint256",
277
+ "name": "guessOffchain",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "internalType": "uint256",
282
+ "name": "maxIteration",
283
+ "type": "uint256"
284
+ },
285
+ {
286
+ "internalType": "uint256",
287
+ "name": "eps",
288
+ "type": "uint256"
289
+ }
290
+ ],
291
+ "indexed": false,
292
+ "internalType": "struct ApproxParams",
293
+ "name": "botParams",
294
+ "type": "tuple"
295
+ },
296
+ {
297
+ "indexed": false,
298
+ "internalType": "uint256",
299
+ "name": "netYtIn",
300
+ "type": "uint256"
301
+ },
302
+ {
303
+ "indexed": false,
304
+ "internalType": "uint256",
305
+ "name": "netLpOut",
306
+ "type": "uint256"
307
+ }
308
+ ],
309
+ "name": "AddLiqFromYt",
310
+ "type": "event"
311
+ },
312
+ {
313
+ "anonymous": false,
314
+ "inputs": [
315
+ {
316
+ "indexed": false,
317
+ "internalType": "uint256",
318
+ "name": "netSyIn",
319
+ "type": "uint256"
320
+ },
321
+ {
322
+ "indexed": false,
323
+ "internalType": "uint256",
324
+ "name": "netLpOut",
325
+ "type": "uint256"
326
+ },
327
+ {
328
+ "indexed": false,
329
+ "internalType": "uint256",
330
+ "name": "netYtOut",
331
+ "type": "uint256"
332
+ }
333
+ ],
334
+ "name": "AddLiqKeepYt",
335
+ "type": "event"
336
+ },
337
+ {
338
+ "anonymous": false,
339
+ "inputs": [
340
+ {
341
+ "indexed": false,
342
+ "internalType": "address",
343
+ "name": "previousAdmin",
344
+ "type": "address"
345
+ },
346
+ {
347
+ "indexed": false,
348
+ "internalType": "address",
349
+ "name": "newAdmin",
350
+ "type": "address"
351
+ }
352
+ ],
353
+ "name": "AdminChanged",
354
+ "type": "event"
355
+ },
356
+ {
357
+ "anonymous": false,
358
+ "inputs": [
359
+ {
360
+ "indexed": true,
361
+ "internalType": "address",
362
+ "name": "beacon",
363
+ "type": "address"
364
+ }
365
+ ],
366
+ "name": "BeaconUpgraded",
367
+ "type": "event"
368
+ },
369
+ {
370
+ "anonymous": false,
371
+ "inputs": [
372
+ {
373
+ "indexed": false,
374
+ "internalType": "uint256",
375
+ "name": "netSyOut",
376
+ "type": "uint256"
377
+ },
378
+ {
379
+ "indexed": false,
380
+ "internalType": "uint256",
381
+ "name": "netPendleOut",
382
+ "type": "uint256"
383
+ }
384
+ ],
385
+ "name": "ClaimAndCompound",
386
+ "type": "event"
387
+ },
388
+ {
389
+ "anonymous": false,
390
+ "inputs": [
391
+ {
392
+ "indexed": false,
393
+ "internalType": "uint256",
394
+ "name": "netSyIn",
395
+ "type": "uint256"
396
+ }
397
+ ],
398
+ "name": "DepositSy",
399
+ "type": "event"
400
+ },
401
+ {
402
+ "anonymous": false,
403
+ "inputs": [
404
+ {
405
+ "indexed": true,
406
+ "internalType": "address",
407
+ "name": "token",
408
+ "type": "address"
409
+ },
410
+ {
411
+ "indexed": false,
412
+ "internalType": "uint256",
413
+ "name": "netTokenIn",
414
+ "type": "uint256"
415
+ }
416
+ ],
417
+ "name": "DepositToken",
418
+ "type": "event"
419
+ },
420
+ {
421
+ "anonymous": false,
422
+ "inputs": [
423
+ {
424
+ "indexed": false,
425
+ "internalType": "uint8",
426
+ "name": "version",
427
+ "type": "uint8"
428
+ }
429
+ ],
430
+ "name": "Initialized",
431
+ "type": "event"
432
+ },
433
+ {
434
+ "anonymous": false,
435
+ "inputs": [
436
+ {
437
+ "indexed": true,
438
+ "internalType": "address",
439
+ "name": "previousOwner",
440
+ "type": "address"
441
+ },
442
+ {
443
+ "indexed": true,
444
+ "internalType": "address",
445
+ "name": "newOwner",
446
+ "type": "address"
447
+ }
448
+ ],
449
+ "name": "OwnershipTransferred",
450
+ "type": "event"
451
+ },
452
+ {
453
+ "anonymous": false,
454
+ "inputs": [
455
+ {
456
+ "components": [
457
+ {
458
+ "internalType": "uint256",
459
+ "name": "guessMin",
460
+ "type": "uint256"
461
+ },
462
+ {
463
+ "internalType": "uint256",
464
+ "name": "guessMax",
465
+ "type": "uint256"
466
+ },
467
+ {
468
+ "internalType": "uint256",
469
+ "name": "guessOffchain",
470
+ "type": "uint256"
471
+ },
472
+ {
473
+ "internalType": "uint256",
474
+ "name": "maxIteration",
475
+ "type": "uint256"
476
+ },
477
+ {
478
+ "internalType": "uint256",
479
+ "name": "eps",
480
+ "type": "uint256"
481
+ }
482
+ ],
483
+ "indexed": false,
484
+ "internalType": "struct ApproxParams",
485
+ "name": "botParams",
486
+ "type": "tuple"
487
+ },
488
+ {
489
+ "indexed": false,
490
+ "internalType": "uint256",
491
+ "name": "netLpIn",
492
+ "type": "uint256"
493
+ },
494
+ {
495
+ "indexed": false,
496
+ "internalType": "uint256",
497
+ "name": "netYtOut",
498
+ "type": "uint256"
499
+ }
500
+ ],
501
+ "name": "RemoveLiqToYt",
502
+ "type": "event"
503
+ },
504
+ {
505
+ "anonymous": false,
506
+ "inputs": [
507
+ {
508
+ "components": [
509
+ {
510
+ "internalType": "uint256",
511
+ "name": "guessMin",
512
+ "type": "uint256"
513
+ },
514
+ {
515
+ "internalType": "uint256",
516
+ "name": "guessMax",
517
+ "type": "uint256"
518
+ },
519
+ {
520
+ "internalType": "uint256",
521
+ "name": "guessOffchain",
522
+ "type": "uint256"
523
+ },
524
+ {
525
+ "internalType": "uint256",
526
+ "name": "maxIteration",
527
+ "type": "uint256"
528
+ },
529
+ {
530
+ "internalType": "uint256",
531
+ "name": "eps",
532
+ "type": "uint256"
533
+ }
534
+ ],
535
+ "indexed": false,
536
+ "internalType": "struct ApproxParams",
537
+ "name": "botParams",
538
+ "type": "tuple"
539
+ },
540
+ {
541
+ "indexed": false,
542
+ "internalType": "uint256",
543
+ "name": "maxSyIn",
544
+ "type": "uint256"
545
+ },
546
+ {
547
+ "indexed": false,
548
+ "internalType": "uint256",
549
+ "name": "exactYtOut",
550
+ "type": "uint256"
551
+ },
552
+ {
553
+ "indexed": false,
554
+ "internalType": "uint256",
555
+ "name": "netSyIn",
556
+ "type": "uint256"
557
+ }
558
+ ],
559
+ "name": "SwapSyToYt",
560
+ "type": "event"
561
+ },
562
+ {
563
+ "anonymous": false,
564
+ "inputs": [
565
+ {
566
+ "indexed": true,
567
+ "internalType": "address",
568
+ "name": "implementation",
569
+ "type": "address"
570
+ }
571
+ ],
572
+ "name": "Upgraded",
573
+ "type": "event"
574
+ },
575
+ {
576
+ "anonymous": false,
577
+ "inputs": [
578
+ {
579
+ "indexed": true,
580
+ "internalType": "address",
581
+ "name": "token",
582
+ "type": "address"
583
+ },
584
+ {
585
+ "indexed": false,
586
+ "internalType": "uint256",
587
+ "name": "amount",
588
+ "type": "uint256"
589
+ }
590
+ ],
591
+ "name": "WithdrawFunds",
592
+ "type": "event"
593
+ },
594
+ {
595
+ "inputs": [],
596
+ "name": "PENDLE",
597
+ "outputs": [
598
+ {
599
+ "internalType": "address",
600
+ "name": "",
601
+ "type": "address"
602
+ }
603
+ ],
604
+ "stateMutability": "view",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [],
609
+ "name": "PT",
610
+ "outputs": [
611
+ {
612
+ "internalType": "address",
613
+ "name": "",
614
+ "type": "address"
615
+ }
616
+ ],
617
+ "stateMutability": "view",
618
+ "type": "function"
619
+ },
620
+ {
621
+ "inputs": [],
622
+ "name": "SY",
623
+ "outputs": [
624
+ {
625
+ "internalType": "address",
626
+ "name": "",
627
+ "type": "address"
628
+ }
629
+ ],
630
+ "stateMutability": "view",
631
+ "type": "function"
632
+ },
633
+ {
634
+ "inputs": [],
635
+ "name": "YT",
636
+ "outputs": [
637
+ {
638
+ "internalType": "address",
639
+ "name": "",
640
+ "type": "address"
641
+ }
642
+ ],
643
+ "stateMutability": "view",
644
+ "type": "function"
645
+ },
646
+ {
647
+ "inputs": [
648
+ {
649
+ "components": [
650
+ {
651
+ "components": [
652
+ {
653
+ "internalType": "uint256",
654
+ "name": "guessMin",
655
+ "type": "uint256"
656
+ },
657
+ {
658
+ "internalType": "uint256",
659
+ "name": "guessMax",
660
+ "type": "uint256"
661
+ },
662
+ {
663
+ "internalType": "uint256",
664
+ "name": "guessOffchain",
665
+ "type": "uint256"
666
+ },
667
+ {
668
+ "internalType": "uint256",
669
+ "name": "maxIteration",
670
+ "type": "uint256"
671
+ },
672
+ {
673
+ "internalType": "uint256",
674
+ "name": "eps",
675
+ "type": "uint256"
676
+ }
677
+ ],
678
+ "internalType": "struct ApproxParams",
679
+ "name": "botParams",
680
+ "type": "tuple"
681
+ },
682
+ {
683
+ "internalType": "uint256",
684
+ "name": "minLpOut",
685
+ "type": "uint256"
686
+ },
687
+ {
688
+ "internalType": "uint256",
689
+ "name": "targetIy",
690
+ "type": "uint256"
691
+ },
692
+ {
693
+ "internalType": "int256",
694
+ "name": "currentBin",
695
+ "type": "int256"
696
+ }
697
+ ],
698
+ "internalType": "struct ILongYieldTradingBot.AddLiqFromYtInput",
699
+ "name": "inputParams",
700
+ "type": "tuple"
701
+ }
702
+ ],
703
+ "name": "addLiqFromYt",
704
+ "outputs": [
705
+ {
706
+ "internalType": "uint256",
707
+ "name": "netPtFromSwap",
708
+ "type": "uint256"
709
+ },
710
+ {
711
+ "internalType": "uint256",
712
+ "name": "netLpOut",
713
+ "type": "uint256"
714
+ },
715
+ {
716
+ "internalType": "uint256",
717
+ "name": "netYtIn",
718
+ "type": "uint256"
719
+ }
720
+ ],
721
+ "stateMutability": "nonpayable",
722
+ "type": "function"
723
+ },
724
+ {
725
+ "inputs": [
726
+ {
727
+ "internalType": "uint256",
728
+ "name": "netSyIn",
729
+ "type": "uint256"
730
+ },
731
+ {
732
+ "internalType": "uint256",
733
+ "name": "minLpOut",
734
+ "type": "uint256"
735
+ },
736
+ {
737
+ "internalType": "uint256",
738
+ "name": "minYtOut",
739
+ "type": "uint256"
740
+ }
741
+ ],
742
+ "name": "addLiqKeepYt",
743
+ "outputs": [
744
+ {
745
+ "internalType": "uint256",
746
+ "name": "netLpOut",
747
+ "type": "uint256"
748
+ },
749
+ {
750
+ "internalType": "uint256",
751
+ "name": "netYtOut",
752
+ "type": "uint256"
753
+ }
754
+ ],
755
+ "stateMutability": "nonpayable",
756
+ "type": "function"
757
+ },
758
+ {
759
+ "inputs": [
760
+ {
761
+ "components": [
762
+ {
763
+ "internalType": "address[]",
764
+ "name": "tokens",
765
+ "type": "address[]"
766
+ },
767
+ {
768
+ "internalType": "address",
769
+ "name": "spender",
770
+ "type": "address"
771
+ }
772
+ ],
773
+ "internalType": "struct ITradingBotBase.MultiApproval[]",
774
+ "name": "arr",
775
+ "type": "tuple[]"
776
+ }
777
+ ],
778
+ "name": "approveInf",
779
+ "outputs": [],
780
+ "stateMutability": "nonpayable",
781
+ "type": "function"
782
+ },
783
+ {
784
+ "inputs": [],
785
+ "name": "buyBins",
786
+ "outputs": [
787
+ {
788
+ "internalType": "uint256",
789
+ "name": "",
790
+ "type": "uint256"
791
+ }
792
+ ],
793
+ "stateMutability": "view",
794
+ "type": "function"
795
+ },
796
+ {
797
+ "inputs": [
798
+ {
799
+ "components": [
800
+ {
801
+ "internalType": "address",
802
+ "name": "tokenIn",
803
+ "type": "address"
804
+ },
805
+ {
806
+ "internalType": "uint256",
807
+ "name": "netTokenIn",
808
+ "type": "uint256"
809
+ },
810
+ {
811
+ "internalType": "address",
812
+ "name": "tokenMintSy",
813
+ "type": "address"
814
+ },
815
+ {
816
+ "internalType": "address",
817
+ "name": "bulk",
818
+ "type": "address"
819
+ },
820
+ {
821
+ "internalType": "address",
822
+ "name": "pendleSwap",
823
+ "type": "address"
824
+ },
825
+ {
826
+ "components": [
827
+ {
828
+ "internalType": "enum SwapType",
829
+ "name": "swapType",
830
+ "type": "uint8"
831
+ },
832
+ {
833
+ "internalType": "address",
834
+ "name": "extRouter",
835
+ "type": "address"
836
+ },
837
+ {
838
+ "internalType": "bytes",
839
+ "name": "extCalldata",
840
+ "type": "bytes"
841
+ },
842
+ {
843
+ "internalType": "bool",
844
+ "name": "needScale",
845
+ "type": "bool"
846
+ }
847
+ ],
848
+ "internalType": "struct SwapData",
849
+ "name": "swapData",
850
+ "type": "tuple"
851
+ }
852
+ ],
853
+ "internalType": "struct TokenInput[]",
854
+ "name": "inps",
855
+ "type": "tuple[]"
856
+ },
857
+ {
858
+ "internalType": "uint256",
859
+ "name": "minSyOut",
860
+ "type": "uint256"
861
+ }
862
+ ],
863
+ "name": "claimAndCompound",
864
+ "outputs": [
865
+ {
866
+ "internalType": "uint256",
867
+ "name": "netSyOut",
868
+ "type": "uint256"
869
+ },
870
+ {
871
+ "internalType": "uint256",
872
+ "name": "netPendleOut",
873
+ "type": "uint256"
874
+ }
875
+ ],
876
+ "stateMutability": "nonpayable",
877
+ "type": "function"
878
+ },
879
+ {
880
+ "inputs": [],
881
+ "name": "claimOwnership",
882
+ "outputs": [],
883
+ "stateMutability": "nonpayable",
884
+ "type": "function"
885
+ },
886
+ {
887
+ "inputs": [],
888
+ "name": "claimWithoutCompound",
889
+ "outputs": [
890
+ {
891
+ "components": [
892
+ {
893
+ "internalType": "address",
894
+ "name": "token",
895
+ "type": "address"
896
+ },
897
+ {
898
+ "internalType": "uint256",
899
+ "name": "amount",
900
+ "type": "uint256"
901
+ }
902
+ ],
903
+ "internalType": "struct TokenAmount[]",
904
+ "name": "rewards",
905
+ "type": "tuple[]"
906
+ }
907
+ ],
908
+ "stateMutability": "nonpayable",
909
+ "type": "function"
910
+ },
911
+ {
912
+ "inputs": [],
913
+ "name": "decisionHelper",
914
+ "outputs": [
915
+ {
916
+ "internalType": "contract IBotDecisionHelper",
917
+ "name": "",
918
+ "type": "address"
919
+ }
920
+ ],
921
+ "stateMutability": "view",
922
+ "type": "function"
923
+ },
924
+ {
925
+ "inputs": [
926
+ {
927
+ "internalType": "uint256",
928
+ "name": "netSyIn",
929
+ "type": "uint256"
930
+ }
931
+ ],
932
+ "name": "depositSy",
933
+ "outputs": [],
934
+ "stateMutability": "nonpayable",
935
+ "type": "function"
936
+ },
937
+ {
938
+ "inputs": [
939
+ {
940
+ "components": [
941
+ {
942
+ "internalType": "address",
943
+ "name": "tokenIn",
944
+ "type": "address"
945
+ },
946
+ {
947
+ "internalType": "uint256",
948
+ "name": "netTokenIn",
949
+ "type": "uint256"
950
+ },
951
+ {
952
+ "internalType": "address",
953
+ "name": "tokenMintSy",
954
+ "type": "address"
955
+ },
956
+ {
957
+ "internalType": "address",
958
+ "name": "bulk",
959
+ "type": "address"
960
+ },
961
+ {
962
+ "internalType": "address",
963
+ "name": "pendleSwap",
964
+ "type": "address"
965
+ },
966
+ {
967
+ "components": [
968
+ {
969
+ "internalType": "enum SwapType",
970
+ "name": "swapType",
971
+ "type": "uint8"
972
+ },
973
+ {
974
+ "internalType": "address",
975
+ "name": "extRouter",
976
+ "type": "address"
977
+ },
978
+ {
979
+ "internalType": "bytes",
980
+ "name": "extCalldata",
981
+ "type": "bytes"
982
+ },
983
+ {
984
+ "internalType": "bool",
985
+ "name": "needScale",
986
+ "type": "bool"
987
+ }
988
+ ],
989
+ "internalType": "struct SwapData",
990
+ "name": "swapData",
991
+ "type": "tuple"
992
+ }
993
+ ],
994
+ "internalType": "struct TokenInput",
995
+ "name": "inp",
996
+ "type": "tuple"
997
+ },
998
+ {
999
+ "internalType": "uint256",
1000
+ "name": "minSyOut",
1001
+ "type": "uint256"
1002
+ }
1003
+ ],
1004
+ "name": "depositToken",
1005
+ "outputs": [],
1006
+ "stateMutability": "payable",
1007
+ "type": "function"
1008
+ },
1009
+ {
1010
+ "inputs": [
1011
+ {
1012
+ "components": [
1013
+ {
1014
+ "internalType": "uint256",
1015
+ "name": "buyYtIy",
1016
+ "type": "uint256"
1017
+ },
1018
+ {
1019
+ "internalType": "uint256",
1020
+ "name": "sellYtIy",
1021
+ "type": "uint256"
1022
+ },
1023
+ {
1024
+ "internalType": "uint256",
1025
+ "name": "targetSyRatio",
1026
+ "type": "uint256"
1027
+ },
1028
+ {
1029
+ "internalType": "uint256",
1030
+ "name": "maxSyRatio",
1031
+ "type": "uint256"
1032
+ },
1033
+ {
1034
+ "internalType": "uint256",
1035
+ "name": "targetYtPtRatio",
1036
+ "type": "uint256"
1037
+ },
1038
+ {
1039
+ "internalType": "uint256",
1040
+ "name": "numOfBins",
1041
+ "type": "uint256"
1042
+ }
1043
+ ],
1044
+ "internalType": "struct TradingSpecs",
1045
+ "name": "_specs",
1046
+ "type": "tuple"
1047
+ }
1048
+ ],
1049
+ "name": "initialize",
1050
+ "outputs": [],
1051
+ "stateMutability": "nonpayable",
1052
+ "type": "function"
1053
+ },
1054
+ {
1055
+ "inputs": [],
1056
+ "name": "market",
1057
+ "outputs": [
1058
+ {
1059
+ "internalType": "address",
1060
+ "name": "",
1061
+ "type": "address"
1062
+ }
1063
+ ],
1064
+ "stateMutability": "view",
1065
+ "type": "function"
1066
+ },
1067
+ {
1068
+ "inputs": [],
1069
+ "name": "owner",
1070
+ "outputs": [
1071
+ {
1072
+ "internalType": "address",
1073
+ "name": "",
1074
+ "type": "address"
1075
+ }
1076
+ ],
1077
+ "stateMutability": "view",
1078
+ "type": "function"
1079
+ },
1080
+ {
1081
+ "inputs": [],
1082
+ "name": "pendingOwner",
1083
+ "outputs": [
1084
+ {
1085
+ "internalType": "address",
1086
+ "name": "",
1087
+ "type": "address"
1088
+ }
1089
+ ],
1090
+ "stateMutability": "view",
1091
+ "type": "function"
1092
+ },
1093
+ {
1094
+ "inputs": [],
1095
+ "name": "proxiableUUID",
1096
+ "outputs": [
1097
+ {
1098
+ "internalType": "bytes32",
1099
+ "name": "",
1100
+ "type": "bytes32"
1101
+ }
1102
+ ],
1103
+ "stateMutability": "view",
1104
+ "type": "function"
1105
+ },
1106
+ {
1107
+ "inputs": [],
1108
+ "name": "readBotState",
1109
+ "outputs": [
1110
+ {
1111
+ "components": [
1112
+ {
1113
+ "internalType": "uint256",
1114
+ "name": "lpBalance",
1115
+ "type": "uint256"
1116
+ },
1117
+ {
1118
+ "internalType": "uint256",
1119
+ "name": "ytBalance",
1120
+ "type": "uint256"
1121
+ },
1122
+ {
1123
+ "internalType": "uint256",
1124
+ "name": "ptBalance",
1125
+ "type": "uint256"
1126
+ },
1127
+ {
1128
+ "internalType": "uint256",
1129
+ "name": "syBalance",
1130
+ "type": "uint256"
1131
+ },
1132
+ {
1133
+ "internalType": "uint256",
1134
+ "name": "buyBins",
1135
+ "type": "uint256"
1136
+ }
1137
+ ],
1138
+ "internalType": "struct BotState",
1139
+ "name": "botState",
1140
+ "type": "tuple"
1141
+ }
1142
+ ],
1143
+ "stateMutability": "view",
1144
+ "type": "function"
1145
+ },
1146
+ {
1147
+ "inputs": [],
1148
+ "name": "readMarketExtState",
1149
+ "outputs": [
1150
+ {
1151
+ "components": [
1152
+ {
1153
+ "components": [
1154
+ {
1155
+ "internalType": "int256",
1156
+ "name": "totalPt",
1157
+ "type": "int256"
1158
+ },
1159
+ {
1160
+ "internalType": "int256",
1161
+ "name": "totalSy",
1162
+ "type": "int256"
1163
+ },
1164
+ {
1165
+ "internalType": "int256",
1166
+ "name": "totalLp",
1167
+ "type": "int256"
1168
+ },
1169
+ {
1170
+ "internalType": "address",
1171
+ "name": "treasury",
1172
+ "type": "address"
1173
+ },
1174
+ {
1175
+ "internalType": "int256",
1176
+ "name": "scalarRoot",
1177
+ "type": "int256"
1178
+ },
1179
+ {
1180
+ "internalType": "uint256",
1181
+ "name": "expiry",
1182
+ "type": "uint256"
1183
+ },
1184
+ {
1185
+ "internalType": "uint256",
1186
+ "name": "lnFeeRateRoot",
1187
+ "type": "uint256"
1188
+ },
1189
+ {
1190
+ "internalType": "uint256",
1191
+ "name": "reserveFeePercent",
1192
+ "type": "uint256"
1193
+ },
1194
+ {
1195
+ "internalType": "uint256",
1196
+ "name": "lastLnImpliedRate",
1197
+ "type": "uint256"
1198
+ }
1199
+ ],
1200
+ "internalType": "struct MarketState",
1201
+ "name": "state",
1202
+ "type": "tuple"
1203
+ },
1204
+ {
1205
+ "internalType": "PYIndex",
1206
+ "name": "index",
1207
+ "type": "uint256"
1208
+ },
1209
+ {
1210
+ "internalType": "uint256",
1211
+ "name": "blockTime",
1212
+ "type": "uint256"
1213
+ }
1214
+ ],
1215
+ "internalType": "struct MarketExtState",
1216
+ "name": "marketExt",
1217
+ "type": "tuple"
1218
+ }
1219
+ ],
1220
+ "stateMutability": "nonpayable",
1221
+ "type": "function"
1222
+ },
1223
+ {
1224
+ "inputs": [],
1225
+ "name": "readStrategyData",
1226
+ "outputs": [
1227
+ {
1228
+ "components": [
1229
+ {
1230
+ "components": [
1231
+ {
1232
+ "internalType": "uint256",
1233
+ "name": "lpBalance",
1234
+ "type": "uint256"
1235
+ },
1236
+ {
1237
+ "internalType": "uint256",
1238
+ "name": "ytBalance",
1239
+ "type": "uint256"
1240
+ },
1241
+ {
1242
+ "internalType": "uint256",
1243
+ "name": "ptBalance",
1244
+ "type": "uint256"
1245
+ },
1246
+ {
1247
+ "internalType": "uint256",
1248
+ "name": "syBalance",
1249
+ "type": "uint256"
1250
+ },
1251
+ {
1252
+ "internalType": "uint256",
1253
+ "name": "buyBins",
1254
+ "type": "uint256"
1255
+ }
1256
+ ],
1257
+ "internalType": "struct BotState",
1258
+ "name": "botState",
1259
+ "type": "tuple"
1260
+ },
1261
+ {
1262
+ "components": [
1263
+ {
1264
+ "components": [
1265
+ {
1266
+ "internalType": "int256",
1267
+ "name": "totalPt",
1268
+ "type": "int256"
1269
+ },
1270
+ {
1271
+ "internalType": "int256",
1272
+ "name": "totalSy",
1273
+ "type": "int256"
1274
+ },
1275
+ {
1276
+ "internalType": "int256",
1277
+ "name": "totalLp",
1278
+ "type": "int256"
1279
+ },
1280
+ {
1281
+ "internalType": "address",
1282
+ "name": "treasury",
1283
+ "type": "address"
1284
+ },
1285
+ {
1286
+ "internalType": "int256",
1287
+ "name": "scalarRoot",
1288
+ "type": "int256"
1289
+ },
1290
+ {
1291
+ "internalType": "uint256",
1292
+ "name": "expiry",
1293
+ "type": "uint256"
1294
+ },
1295
+ {
1296
+ "internalType": "uint256",
1297
+ "name": "lnFeeRateRoot",
1298
+ "type": "uint256"
1299
+ },
1300
+ {
1301
+ "internalType": "uint256",
1302
+ "name": "reserveFeePercent",
1303
+ "type": "uint256"
1304
+ },
1305
+ {
1306
+ "internalType": "uint256",
1307
+ "name": "lastLnImpliedRate",
1308
+ "type": "uint256"
1309
+ }
1310
+ ],
1311
+ "internalType": "struct MarketState",
1312
+ "name": "state",
1313
+ "type": "tuple"
1314
+ },
1315
+ {
1316
+ "internalType": "PYIndex",
1317
+ "name": "index",
1318
+ "type": "uint256"
1319
+ },
1320
+ {
1321
+ "internalType": "uint256",
1322
+ "name": "blockTime",
1323
+ "type": "uint256"
1324
+ }
1325
+ ],
1326
+ "internalType": "struct MarketExtState",
1327
+ "name": "marketExt",
1328
+ "type": "tuple"
1329
+ },
1330
+ {
1331
+ "components": [
1332
+ {
1333
+ "internalType": "uint256",
1334
+ "name": "buyYtIy",
1335
+ "type": "uint256"
1336
+ },
1337
+ {
1338
+ "internalType": "uint256",
1339
+ "name": "sellYtIy",
1340
+ "type": "uint256"
1341
+ },
1342
+ {
1343
+ "internalType": "uint256",
1344
+ "name": "targetSyRatio",
1345
+ "type": "uint256"
1346
+ },
1347
+ {
1348
+ "internalType": "uint256",
1349
+ "name": "maxSyRatio",
1350
+ "type": "uint256"
1351
+ },
1352
+ {
1353
+ "internalType": "uint256",
1354
+ "name": "targetYtPtRatio",
1355
+ "type": "uint256"
1356
+ },
1357
+ {
1358
+ "internalType": "uint256",
1359
+ "name": "numOfBins",
1360
+ "type": "uint256"
1361
+ }
1362
+ ],
1363
+ "internalType": "struct TradingSpecs",
1364
+ "name": "specs",
1365
+ "type": "tuple"
1366
+ }
1367
+ ],
1368
+ "internalType": "struct StrategyData",
1369
+ "name": "strategyData",
1370
+ "type": "tuple"
1371
+ }
1372
+ ],
1373
+ "stateMutability": "nonpayable",
1374
+ "type": "function"
1375
+ },
1376
+ {
1377
+ "inputs": [
1378
+ {
1379
+ "components": [
1380
+ {
1381
+ "components": [
1382
+ {
1383
+ "internalType": "uint256",
1384
+ "name": "guessMin",
1385
+ "type": "uint256"
1386
+ },
1387
+ {
1388
+ "internalType": "uint256",
1389
+ "name": "guessMax",
1390
+ "type": "uint256"
1391
+ },
1392
+ {
1393
+ "internalType": "uint256",
1394
+ "name": "guessOffchain",
1395
+ "type": "uint256"
1396
+ },
1397
+ {
1398
+ "internalType": "uint256",
1399
+ "name": "maxIteration",
1400
+ "type": "uint256"
1401
+ },
1402
+ {
1403
+ "internalType": "uint256",
1404
+ "name": "eps",
1405
+ "type": "uint256"
1406
+ }
1407
+ ],
1408
+ "internalType": "struct ApproxParams",
1409
+ "name": "botParams",
1410
+ "type": "tuple"
1411
+ },
1412
+ {
1413
+ "components": [
1414
+ {
1415
+ "internalType": "uint256",
1416
+ "name": "guessMin",
1417
+ "type": "uint256"
1418
+ },
1419
+ {
1420
+ "internalType": "uint256",
1421
+ "name": "guessMax",
1422
+ "type": "uint256"
1423
+ },
1424
+ {
1425
+ "internalType": "uint256",
1426
+ "name": "guessOffchain",
1427
+ "type": "uint256"
1428
+ },
1429
+ {
1430
+ "internalType": "uint256",
1431
+ "name": "maxIteration",
1432
+ "type": "uint256"
1433
+ },
1434
+ {
1435
+ "internalType": "uint256",
1436
+ "name": "eps",
1437
+ "type": "uint256"
1438
+ }
1439
+ ],
1440
+ "internalType": "struct ApproxParams",
1441
+ "name": "guessTotalPtToSwap",
1442
+ "type": "tuple"
1443
+ },
1444
+ {
1445
+ "internalType": "uint256",
1446
+ "name": "minYtOut",
1447
+ "type": "uint256"
1448
+ },
1449
+ {
1450
+ "internalType": "uint256",
1451
+ "name": "targetIy",
1452
+ "type": "uint256"
1453
+ },
1454
+ {
1455
+ "internalType": "int256",
1456
+ "name": "currentBin",
1457
+ "type": "int256"
1458
+ }
1459
+ ],
1460
+ "internalType": "struct ILongYieldTradingBot.RemoveLiqToYtInput",
1461
+ "name": "inputParams",
1462
+ "type": "tuple"
1463
+ }
1464
+ ],
1465
+ "name": "removeLiqToYt",
1466
+ "outputs": [
1467
+ {
1468
+ "internalType": "uint256",
1469
+ "name": "netLpRemoved",
1470
+ "type": "uint256"
1471
+ },
1472
+ {
1473
+ "internalType": "uint256",
1474
+ "name": "netYtOut",
1475
+ "type": "uint256"
1476
+ }
1477
+ ],
1478
+ "stateMutability": "nonpayable",
1479
+ "type": "function"
1480
+ },
1481
+ {
1482
+ "inputs": [],
1483
+ "name": "router",
1484
+ "outputs": [
1485
+ {
1486
+ "internalType": "address",
1487
+ "name": "",
1488
+ "type": "address"
1489
+ }
1490
+ ],
1491
+ "stateMutability": "view",
1492
+ "type": "function"
1493
+ },
1494
+ {
1495
+ "inputs": [
1496
+ {
1497
+ "components": [
1498
+ {
1499
+ "internalType": "uint256",
1500
+ "name": "buyYtIy",
1501
+ "type": "uint256"
1502
+ },
1503
+ {
1504
+ "internalType": "uint256",
1505
+ "name": "sellYtIy",
1506
+ "type": "uint256"
1507
+ },
1508
+ {
1509
+ "internalType": "uint256",
1510
+ "name": "targetSyRatio",
1511
+ "type": "uint256"
1512
+ },
1513
+ {
1514
+ "internalType": "uint256",
1515
+ "name": "maxSyRatio",
1516
+ "type": "uint256"
1517
+ },
1518
+ {
1519
+ "internalType": "uint256",
1520
+ "name": "targetYtPtRatio",
1521
+ "type": "uint256"
1522
+ },
1523
+ {
1524
+ "internalType": "uint256",
1525
+ "name": "numOfBins",
1526
+ "type": "uint256"
1527
+ }
1528
+ ],
1529
+ "internalType": "struct TradingSpecs",
1530
+ "name": "_specs",
1531
+ "type": "tuple"
1532
+ }
1533
+ ],
1534
+ "name": "setSpecs",
1535
+ "outputs": [],
1536
+ "stateMutability": "nonpayable",
1537
+ "type": "function"
1538
+ },
1539
+ {
1540
+ "inputs": [],
1541
+ "name": "specs",
1542
+ "outputs": [
1543
+ {
1544
+ "internalType": "uint256",
1545
+ "name": "buyYtIy",
1546
+ "type": "uint256"
1547
+ },
1548
+ {
1549
+ "internalType": "uint256",
1550
+ "name": "sellYtIy",
1551
+ "type": "uint256"
1552
+ },
1553
+ {
1554
+ "internalType": "uint256",
1555
+ "name": "targetSyRatio",
1556
+ "type": "uint256"
1557
+ },
1558
+ {
1559
+ "internalType": "uint256",
1560
+ "name": "maxSyRatio",
1561
+ "type": "uint256"
1562
+ },
1563
+ {
1564
+ "internalType": "uint256",
1565
+ "name": "targetYtPtRatio",
1566
+ "type": "uint256"
1567
+ },
1568
+ {
1569
+ "internalType": "uint256",
1570
+ "name": "numOfBins",
1571
+ "type": "uint256"
1572
+ }
1573
+ ],
1574
+ "stateMutability": "view",
1575
+ "type": "function"
1576
+ },
1577
+ {
1578
+ "inputs": [
1579
+ {
1580
+ "internalType": "int256",
1581
+ "name": "ptToAccount",
1582
+ "type": "int256"
1583
+ },
1584
+ {
1585
+ "internalType": "int256",
1586
+ "name": "syToAccount",
1587
+ "type": "int256"
1588
+ },
1589
+ {
1590
+ "internalType": "bytes",
1591
+ "name": "data",
1592
+ "type": "bytes"
1593
+ }
1594
+ ],
1595
+ "name": "swapCallback",
1596
+ "outputs": [],
1597
+ "stateMutability": "nonpayable",
1598
+ "type": "function"
1599
+ },
1600
+ {
1601
+ "inputs": [
1602
+ {
1603
+ "internalType": "address",
1604
+ "name": "newOwner",
1605
+ "type": "address"
1606
+ },
1607
+ {
1608
+ "internalType": "bool",
1609
+ "name": "direct",
1610
+ "type": "bool"
1611
+ },
1612
+ {
1613
+ "internalType": "bool",
1614
+ "name": "renounce",
1615
+ "type": "bool"
1616
+ }
1617
+ ],
1618
+ "name": "transferOwnership",
1619
+ "outputs": [],
1620
+ "stateMutability": "nonpayable",
1621
+ "type": "function"
1622
+ },
1623
+ {
1624
+ "inputs": [
1625
+ {
1626
+ "internalType": "address",
1627
+ "name": "newImplementation",
1628
+ "type": "address"
1629
+ }
1630
+ ],
1631
+ "name": "upgradeTo",
1632
+ "outputs": [],
1633
+ "stateMutability": "nonpayable",
1634
+ "type": "function"
1635
+ },
1636
+ {
1637
+ "inputs": [
1638
+ {
1639
+ "internalType": "address",
1640
+ "name": "newImplementation",
1641
+ "type": "address"
1642
+ },
1643
+ {
1644
+ "internalType": "bytes",
1645
+ "name": "data",
1646
+ "type": "bytes"
1647
+ }
1648
+ ],
1649
+ "name": "upgradeToAndCall",
1650
+ "outputs": [],
1651
+ "stateMutability": "payable",
1652
+ "type": "function"
1653
+ },
1654
+ {
1655
+ "inputs": [
1656
+ {
1657
+ "internalType": "address",
1658
+ "name": "token",
1659
+ "type": "address"
1660
+ },
1661
+ {
1662
+ "internalType": "uint256",
1663
+ "name": "amount",
1664
+ "type": "uint256"
1665
+ }
1666
+ ],
1667
+ "name": "withdrawFunds",
1668
+ "outputs": [],
1669
+ "stateMutability": "nonpayable",
1670
+ "type": "function"
1671
+ },
1672
+ {
1673
+ "stateMutability": "payable",
1674
+ "type": "receive"
1675
+ }
1676
+ ],
1677
+ "bytecode": "0x61018060405230610160523480156200001757600080fd5b506040516200636f3803806200636f8339810160408190526200003a91620002ea565b6001548490849084908490600160a81b900460ff161580801562000069575060018054600160a01b900460ff16105b806200009f575062000086306200023f60201b62001a691760201c565b1580156200009f575060018054600160a01b900460ff16145b620001085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6001805460ff60a01b1916600160a01b179055801562000136576001805460ff60a81b1916600160a81b1790555b6000806000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156200017a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a0919062000352565b6001600160a01b03808c1660a0528a811660c05280841660e052808316610100528082166101205289811661014052881660805291945092509050620001e56200024e565b505050801562000230576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050620003a6565b6001600160a01b03163b151590565b600154600160a81b900460ff16620002bd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000ff565b600080546001600160a01b03191633179055565b6001600160a01b0381168114620002e757600080fd5b50565b600080600080608085870312156200030157600080fd5b84516200030e81620002d1565b60208601519094506200032181620002d1565b60408601519093506200033481620002d1565b60608601519092506200034781620002d1565b939692955090935050565b6000806000606084860312156200036857600080fd5b83516200037581620002d1565b60208501519093506200038881620002d1565b60408501519092506200039b81620002d1565b809150509250925092565b60805160a05160c05160e05161010051610120516101405161016051615dd46200059b6000396000818161073c0152818161077c01528181610b5a01528181610b9a0152610c120152600081816103130152818161097a01526109aa0152600081816102d201528181610d1901528181610e400152818161139b0152818161142501528181611cf4015281816122a001528181612899015281816129d701528181612a9501528181612b5901528181612b8201528181612c1001528181612c3101528181612c6d0152612d840152600081816104e901528181610d4701528181612b380152612d0b01526000818161048201528181610af401528181610ceb015281816114d00152818161155a01528181611d8e01526126dc0152600081816105eb01528181610dc701528181610ea5015261269e01526000818161034701528181610cc001528181610d9a015281816115fe01528181611688015281816119c701528181611e22015281816121690152818161220b0152818161236f0152818161244a0152818161281f015281816128400152818161286a015281816128ba0152818161294201528181612a6601528181612c9a01528181612d2c0152612db101526000818161057501528181610f4701528181611021015281816117d3015281816118c101526124fd0152615dd46000f3fe60806040526004361061016c5760003560e01c8063078dfbe7146101785780633659cfe61461019a57806337deed8d146101ba57806343833bd6146101da5780634e71e0c8146102115780634f0364b1146102265780634f1ef2861461024657806352d1902d1461025957806365b800e61461027c5780636f8d61971461029e578063781c18db146102c05780637cf738d21461030157806380f55605146103355780638195f674146103695780638da5cb5b1461038957806396aba492146103a9578063a7584e5e146103d8578063acdb32df146103f8578063adb7c3f714610418578063afd27bf514610470578063c09aa0d2146104a4578063c1075329146104b7578063d94073d4146104d7578063dbeadc071461050b578063e138b2ee1461052d578063e30c397814610543578063e82cee7914610563578063eb983ce514610597578063ebff5439146105b9578063f887ea40146105d9578063fa483e721461060d57600080fd5b3661017357005b600080fd5b34801561018457600080fd5b50610198610193366004614cf0565b61062d565b005b3480156101a657600080fd5b506101986101b5366004614d3b565b610732565b3480156101c657600080fd5b506101986101d5366004614dc7565b6107fa565b3480156101e657600080fd5b506101fa6101f5366004614e8b565b610933565b604051610208929190614ed6565b60405180910390f35b34801561021d57600080fd5b50610198610a1a565b34801561023257600080fd5b50610198610241366004614ee4565b610ac5565b610198610254366004614f6c565b610b50565b34801561026557600080fd5b5061026e610c05565b604051908152602001610208565b34801561028857600080fd5b50610291610cb3565b6040516102089190614feb565b3480156102aa57600080fd5b506102b3610d7b565b6040516102089190615074565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516102089190615083565b34801561030d57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561034157600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561037557600080fd5b506101fa610384366004615097565b610e73565b34801561039557600080fd5b506000546102f4906001600160a01b031681565b3480156103b557600080fd5b506103c96103c43660046150c3565b610f05565b604051610208939291906150dc565b3480156103e457600080fd5b506101986103f3366004615104565b61112a565b34801561040457600080fd5b50610198610413366004615120565b61116b565b34801561042457600080fd5b5060325460335460345460355460365460375461044395949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610208565b34801561047c57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6101986104b2366004615161565b611236565b3480156104c357600080fd5b506101986104d23660046151a5565b6112e5565b3480156104e357600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561051757600080fd5b5061052061136a565b60405161020891906151d1565b34801561053957600080fd5b5061026e60385481565b34801561054f57600080fd5b506001546102f4906001600160a01b031681565b34801561056f57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a357600080fd5b506105ac611731565b604051610208919061528d565b3480156105c557600080fd5b506101fa6105d436600461529c565b611792565b3480156105e557600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561061957600080fd5b506101986106283660046152af565b6119bc565b6000546001600160a01b031633146106605760405162461bcd60e51b81526004016106579061532e565b60405180910390fd5b8115610711576001600160a01b03831615158061067a5750805b6106be5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610657565b600080546040516001600160a01b0380871693921691600080516020615d5883398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361077a5760405162461bcd60e51b815260040161065790615363565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107ac611a78565b6001600160a01b0316146107d25760405162461bcd60e51b81526004016106579061539d565b6107db81611a94565b604080516000808252602082019092526107f791839190611abe565b50565b600154600160a81b900460ff1615808015610820575060018054600160a01b900460ff16105b80610847575061082f30611a69565b158015610847575060018054600160a01b900460ff16145b6108aa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610657565b6001805460ff60a01b1916600160a01b17905580156108d7576001805460ff60a81b1916600160a81b1790555b6108e082611c29565b6108e8611c5c565b801561092f576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000805481906001600160a01b031633146109605760405162461bcd60e51b81526004016106579061532e565b610968611cdd565b610973858585611e9e565b915061099e7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6000549091506109d9907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683611fb5565b7f9fdfc39e9c36ec108e0a3b25ecb0818f9dba6993f27c8ab183d6f707c0a0e3198282604051610a0a929190614ed6565b60405180910390a1935093915050565b6001546001600160a01b0316338114610a755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610657565b600080546040516001600160a01b0380851693921691600080516020615d5883398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b03163314610aef5760405162461bcd60e51b81526004016106579061532e565b610b1a7f0000000000000000000000000000000000000000000000000000000000000000338361207f565b6040518181527ffbf5b64cc7bd746fa51ff05d539d45d159c0bd41ae16d90375281f2925062bb19060200160405180910390a150565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b985760405162461bcd60e51b815260040161065790615363565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bca611a78565b6001600160a01b031614610bf05760405162461bcd60e51b81526004016106579061539d565b610bf982611a94565b61092f82826001611abe565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ca05760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610657565b50600080516020615d3883398151915290565b610cbb614bb9565b610ce47f0000000000000000000000000000000000000000000000000000000000000000611f2a565b8152610d0f7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6060820152610d3d7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6020820152610d6b7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6040820152603854608082015290565b610d83614be8565b60405163794052f360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063794052f390610def907f000000000000000000000000000000000000000000000000000000000000000090600401615083565b61012060405180830381865afa158015610e0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3191906153e2565b8152610e656001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166120e6565b602082015242604082015290565b6000805481906001600160a01b03163314610ea05760405162461bcd60e51b81526004016106579061532e565b610ecc7f000000000000000000000000000000000000000000000000000000000000000086868661214c565b60405191935091507f48f22f4bc9aee5b703ec4521f5f611eb37d722e592a0545e957f00ce8e9bd3ec90610a0a908790859085906150dc565b60008054819081906001600160a01b03163314610f345760405162461bcd60e51b81526004016106579061532e565b6000610f3e611731565b90508460e001357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a76541e5836040518263ffffffff1660e01b8152600401610f91919061528d565b602060405180830381865afa158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd29190615464565b1461101f5760405162461bcd60e51b815260206004820152601f60248201527f6164644c697146726f6d59743a2062696e2073746174652065787069726564006044820152606401610657565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166303270af4611056611731565b6040516001600160e01b031960e084901b168152611088919060019060c08b013590600019908c9081906004016154c3565b602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190615464565b93506110d9848660a00135612204565b90935091506110e66124f9565b6040517fba4064507fa740cdd61480d0c0ce70e6b4e0f349dda4cd52184466a3c19936439061111a90879085908790615513565b60405180910390a1509193909250565b6000546001600160a01b031633146111545760405162461bcd60e51b81526004016106579061532e565b6107f761116636839003830183614dc7565b611c29565b6000546001600160a01b031633146111955760405162461bcd60e51b81526004016106579061532e565b60005b8181101561072d57368383838181106111b3576111b3615532565b90506020028101906111c59190615548565b905060005b6111d48280615568565b905081101561122c576112246111ea8380615568565b838181106111fa576111fa615532565b905060200201602081019061120f9190614d3b565b61121f6040850160208601614d3b565b6125b7565b6001016111ca565b5050600101611198565b6000546001600160a01b031633146112605760405162461bcd60e51b81526004016106579061532e565b61127b6112706020840184614d3b565b33846020013561207f565b61128d61128783615658565b82612672565b5061129b6020830183614d3b565b6001600160a01b03167f2d0c0a8842b9944ece1495eb61121621b5e36bd6af3bba0318c695f525aef79f83602001356040516112d991815260200190565b60405180910390a25050565b6000546001600160a01b0316331461130f5760405162461bcd60e51b81526004016106579061532e565b60001981036113245761132182611f2a565b90505b61132f823383611fb5565b816001600160a01b03167f21901fa892c430ea8bd38b9390225ac8e67eac75ee10ffba16feefc539a288f9826040516112d991815260200190565b6000546060906001600160a01b031633146113975760405162461bcd60e51b81526004016106579061532e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190615738565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637d24da4d306001806040518463ffffffff1660e01b8152600401611474939291906157cb565b6000604051808303816000875af1158015611493573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114bb9190810190615854565b91506114ca905083838361275f565b925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561152c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115549190810190615738565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef5cfb8c306040518263ffffffff1660e01b81526004016115a49190615083565b6000604051808303816000875af11580156115c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115eb9190810190615891565b90506115f885838361275f565b945060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561165a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116829190810190615738565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639262187b306040518263ffffffff1660e01b81526004016116d29190615083565b6000604051808303816000875af11580156116f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117199190810190615891565b905061172687838361275f565b965050505050505090565b611739614c5f565b611741610cb3565b815261174b610d7b565b6020808301919091526040805160c081018252603254815260335492810192909252603454828201526035546060830152603654608083015260375460a083015282015290565b6000805481906001600160a01b031633146117bf5760405162461bcd60e51b81526004016106579061532e565b60006117c9611731565b90508361018001357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a76541e5836040518263ffffffff1660e01b815260040161181d919061528d565b602060405180830381865afa15801561183a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185e9190615464565b146118ab5760405162461bcd60e51b815260206004820181905260248201527f72656d6f76654c6971546f59743a2062696e20737461746520657870697265646044820152606401610657565b60405162c9c2bd60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303270af49061190b9084906002906101608a013590600019908b9060a08201906004016154c3565b602060405180830381865afa158015611928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194c9190615464565b925061196f8361196436879003870160a088016158c5565b866101400135612817565b50915061197a6124f9565b6040517f43950417e0eb7225b8f42332a069bc35fbdf65f3d90c124210b3d3aefc3d6a40906119ae90869086908690615513565b60405180910390a150915091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114611a08578060405163719d6b0360e01b81526004016106579190615083565b82356001816004811115611a1e57611a1e61547d565b03611a3457611a2f86868686612b2e565b611a61565b6002816004811115611a4857611a4861547d565b03611a5957611a2f86868686612d64565b611a61615934565b505050505050565b6001600160a01b03163b151590565b600080516020615d38833981519152546001600160a01b031690565b6000546001600160a01b031633146107f75760405162461bcd60e51b81526004016106579061532e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611af15761072d83612e45565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611b4b575060408051601f3d908101601f19168201909252611b4891810190615464565b60015b611bae5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610657565b600080516020615d388339815191528114611c1d5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610657565b5061072d838383612edf565b8051603255602081015160335560408101516034556060810151603555608081015160365560a001516037819055603855565b600154600160a81b900460ff16611cc95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610657565b600080546001600160a01b03191633179055565b604051637d24da4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637d24da4d90611d2e90309060019081906004016157cb565b6000604051808303816000875af1158015611d4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d759190810190615854565b5050604051633bd73ee360e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ef5cfb8c90611dc3903090600401615083565b6000604051808303816000875af1158015611de2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e0a9190810190615891565b50604051639262187b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639262187b90611e57903090600401615083565b6000604051808303816000875af1158015611e76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107f79190810190615891565b6000805b83811015611efd57611ee1858583818110611ebf57611ebf615532565b9050602002810190611ed1919061594a565b611eda90615658565b6000612672565b611eeb9083615976565b9150611ef681615989565b9050611ea2565b5081811015611f2357808260405163d294eca360e01b8152600401610657929190614ed6565b9392505050565b60006001600160a01b03821615611fad576040516370a0823160e01b81526001600160a01b038316906370a0823190611f67903090600401615083565b602060405180830381865afa158015611f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa89190615464565b611faf565b475b92915050565b80600003611fc257505050565b6001600160a01b03831661206b576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461201d576040519150601f19603f3d011682016040523d82523d6000602084013e612022565b606091505b50509050806120655760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610657565b50505050565b61072d6001600160a01b0384168383612f04565b6001600160a01b0383166120cb5780341461072d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610657565b801561072d5761072d6001600160a01b038416833084612f5a565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612128573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faf9190615464565b604051634221c25560e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018590526064820184905260848201839052600091829187169063844384aa9060a40160408051808303816000875af11580156121d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f791906159a2565b9150915094509492505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663794052f3306040518263ffffffff1660e01b81526004016122559190615083565b61012060405180830381865afa158015612273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229791906153e2565b905060006122cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e6565b905060006122dd83838942612f7b565b5090915082905060006122f082846159c6565b612302670de0b6b3a76400008b6159c6565b61230c91906159dd565b9050600061231d8660000151612fcf565b8361232b8860200151612fcf565b61233591906159c6565b61233f9190615a06565b61235190670de0b6b3a7640000615976565b9050600061235f8284615a06565b905061236b818c6159dd565b97507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635b709f17308d6123a78c612fe2565b6040518463ffffffff1660e01b81526004016123c593929190615a6a565b60408051808303816000875af11580156123e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240791906159a2565b5060009050612416878a613016565b9050600061242487836159dd565b604051630ab714fb60e11b815230600482015260248101829052604481018590529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063156e29f6906064016060604051808303816000875af115801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf9190615a9a565b50909b50508b8b10156124e9578a8c60405163066d180b60e01b8152600401610657929190614ed6565b5050505050505050509250929050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a76541e5612532611731565b6040518263ffffffff1660e01b815260040161254e919061528d565b602060405180830381865afa15801561256b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258f9190615464565b90506107f76125b2826125a3603854613022565b6125ad9190615ac8565b612fcf565b603855565b6001600160a01b0382166125c9575050565b6125db60026001600160601b03615af0565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401612612929190615b16565b602060405180830381865afa15801561262f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126539190615464565b101561092f5761266582826000613038565b61092f8282600019613038565b600060001983602001510361269257825161268c90611f2a565b60208401525b82516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163443e65129116156126d35760006126d9565b84602001515b307f000000000000000000000000000000000000000000000000000000000000000086886040518663ffffffff1660e01b815260040161271c9493929190615b30565b60206040518083038185885af115801561273a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f239190615464565b805182518491146127b25760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e416d6f756e744c69623a206c656e677468206d69736d61746368006044820152606401610657565b60005b835181101561280f576127fb828583815181106127d4576127d4615532565b60200260200101518584815181106127ee576127ee615532565b602002602001015161314c565b91508061280781615989565b9150506127b5565b509392505050565b6000806128657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000087611fb5565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f6b911bc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008a6040518463ffffffff1660e01b81526004016128f893929190615bf7565b60408051808303816000875af1158015612916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293a91906159a2565b9150915060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663794052f3306040518263ffffffff1660e01b815260040161298c9190615083565b61012060405180830381865afa1580156129aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ce91906153e2565b90506000612a047f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e6565b90506000612a12828661330e565b90506000612a2e83612a248488615976565b869190428e61331a565b5097509050612a3d8282615976565b975088881015612a6457878960405163716d9a5760e11b8152600401610657929190614ed6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166329910b117f000000000000000000000000000000000000000000000000000000000000000089612abe8d61343b565b6040518463ffffffff1660e01b8152600401612adc93929190615a6a565b60408051808303816000875af1158015612afa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1e91906159a2565b5050505050505050935093915050565b6020820135612b7e7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000083611fb5565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c029190615c1b565b1590508015612c5657612c567f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084611fb5565b60405163bcb7ea5d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063bcb7ea5d90612cc2907f000000000000000000000000000000000000000000000000000000000000000090600401615083565b6020604051808303816000875af1158015612ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d059190615464565b50611a617f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084612d558a612fcf565b612d5f91906159dd565b611fb5565b60405163db74aa1560e01b81526020830135906000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063db74aa1590612ddb907f0000000000000000000000000000000000000000000000000000000000000000903090600401615b16565b6020604051808303816000875af1158015612dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1e9190615464565b905081811015611a6157808260405163716d9a5760e11b8152600401610657929190614ed6565b612e4e81611a69565b612eb05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610657565b600080516020615d3883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612ee883613462565b600082511180612ef55750805b1561072d5761206583836134a2565b61072d8363a9059cbb60e01b8484604051602401612f23929190615c38565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526134c7565b612065846323b872dd60e01b858585604051602401612f2393929190615bf7565b600080600080600080612f988a8a612f928b613022565b8a613599565b925092509250612faa6125ad8461362c565b9550612fb582612fcf565b9450612fc081612fcf565b93505050509450945094915050565b600080821215612fde57600080fd5b5090565b604080518181526060818101835291602082018180368337019050509050600060015b602083015250604081019190915290565b6000611f23838361363a565b60006001600160ff1b03821115612fde57600080fd5b600080846001600160a01b031663095ea7b360e01b8585604051602401613060929190615c38565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161309e9190615c51565b6000604051808303816000865af19150503d80600081146130db576040519150601f19603f3d011682016040523d82523d6000602084013e6130e0565b606091505b509150915081801561310a57508051158061310a57508080602001905181019061310a9190615c1b565b6131455760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610657565b5050505050565b60608160000361315d575082611f23565b835160005b85518110156131bb57846001600160a01b031686828151811061318757613187615532565b6020026020010151600001516001600160a01b0316036131a9578091506131bb565b806131b381615989565b915050613162565b50845181146131cb5760006131ce565b60015b60ff1685516131dd9190615976565b6001600160401b038111156131f4576131f4614d58565b60405190808252806020026020018201604052801561323957816020015b60408051808201909152600080825260208201528152602001906001900390816132125790505b50915060005b85518110156132925785818151811061325a5761325a615532565b602002602001015183828151811061327457613274615532565b6020026020010181905250808061328a90615989565b91505061323f565b506040518060400160405280856001600160a01b0316815260200184875184146132d9578784815181106132c8576132c8615532565b6020026020010151602001516132dc565b60005b6132e69190615976565b8152508282815181106132fb576132fb615532565b6020026020010181905250509392505050565b6000611f238383613659565b600080808061332a89898861366e565b9050846040015160000361336c5784516133449088613768565b8552602085015161335e906133598b8461377e565b6137fa565b602086015261336c85613809565b60005b85606001518110156134165760006133878783613854565b90506000806133988d868e866138c0565b50909250905060006133aa8d8461330e565b905060006133b882866159dd565b90508c81116133ef576133d0818e8d608001516138f1565b156133e75750975091955090935061343092505050565b848b52613400565b6133fa6001866159dd565b60208c01525b50505050508061340f90615989565b905061336f565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b60408051818152606081810183529160208201818036833701905050905060006002613005565b61346b81612e45565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611f238383604051806060016040528060278152602001615d7860279139613925565b600061351c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613a009092919063ffffffff16565b80519091501561072d578080602001905181019061353a9190615c1b565b61072d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610657565b60008060006135ac8760a0015185101590565b156135ca5760405163b2094b5960e01b815260040160405180910390fd5b865185126135f0578651604051632185509b60e21b815261065791908790600401614ed6565b60006135fd88888761366e565b905061360b88828989613a0f565b919550935091506136218882898988878b613b63565b509450945094915050565b6000611faf82600019615c63565b60008261364f670de0b6b3a7640000846159c6565b611f239190615a06565b6000670de0b6b3a764000061364f84846159c6565b6136996040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106136bd5760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516136cf91906159dd565b90506136db8582613bf5565b825260208501516136ed908590613c56565b60208301528451158061370257506020820151155b15613729578451602083015160405163b1c4aefb60e01b8152610657929190600401614ed6565b61374785600001518661010001518460200151856000015185613c8d565b604083015260c085015161375b9082613d0e565b6060830152509392505050565b60008183116137775781611f23565b5090919050565b6000806000905060006001846020015161379891906159dd565b90505b80821461280f57600060026137b08385615976565b6137bb906001615976565b6137c59190615a06565b905060006137d886886000015184613d47565b12156137f0576137e96001826159dd565b91506137f4565b8092505b5061379b565b60008183106137775781611f23565b6020810151815111806138275750670de0b6b3a76400008160800151115b156107f757805160208201516080830151604051632cc06bc160e21b8152610657939291906004016150dc565b6000811580156138675750604083015115155b1561387757506040820151611faf565b60208301518351116138a7576020830151835160029161389691615976565b6138a09190615a06565b9050611faf565b604051637d388ed960e11b815260040160405180910390fd5b600080808080806138de89896138d58a615c93565b8d929190613a0f565b919c909b50909950975050505050505050565b600082841115801561391d57506139198361391484670de0b6b3a76400006159dd565b613e3f565b8410155b949350505050565b606061393084611a69565b61398b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610657565b600080856001600160a01b0316856040516139a69190615c51565b600060405180830381855af49150503d80600081146139e1576040519150601f19603f3d011682016040523d82523d6000602084013e6139e6565b606091505b50915091506139f6828286613e5f565b9695505050505050565b606061391d8484600085613e98565b600080600080613a328860000151886020015189600001518a6040015189613fc7565b90506000613a48613a43878461407f565b61362c565b60608901519091506000871315613ab7576000613a65848361407f565b9050670de0b6b3a7640000811215613a935760405163329e322960e21b815260048101829052602401610657565b613aaf613aa883670de0b6b3a7640000615caf565b84906140ae565b915050613ae4565b613ae181613acd81670de0b6b3a7640000615caf565b613ad79085615c63565b613a439190615cd6565b90505b60006064613af58c60e00151613022565b613aff9084615c63565b613b099190615cd6565b90506000613b178385615caf565b905060008112613b3057613b2b8a826140cc565b613b3a565b613b3a8a826140f9565b9750613b468a846140cc565b9650613b528a836140cc565b955050505050509450945094915050565b6000818860a00151613b7591906159dd565b8851909150613b849086614126565b8852613b9e613b938486615ac8565b60208a015190614126565b602089018190528851613bc391613bb6908990613c56565b895160408b01518561416d565b6101008901819052600003613beb57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000613c0082613022565b613c17613c126201518061016d6159c6565b613022565b8460800151613c269190615c63565b613c309190615cd6565b905060008113611faf57604051630e520c3b60e11b815260048101829052602401610657565b60008060008312613c68576001613c6c565b6000195b9050613c83613c1285613c7e866141c0565b613659565b61391d9082615c63565b600080613c9a8684613d0e565b9050670de0b6b3a7640000811215613cc85760405163329e322960e21b815260048101829052602401610657565b6000613cde613cd7878a615ac8565b899061407f565b90506000613ceb826141d2565b9050613cf7818761407f565b613d019084615caf565b9998505050505050505050565b600080613d206201518061016d6159c6565b613d2a84866159c6565b613d349190615a06565b905061391d613d4282613022565b614225565b600080828560200151613d5a9190615caf565b90506000613d688585615ac8565b9050600082138015613d7a5750600081135b613dbb5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610657565b6000613de9613dca8484615c63565b6020890151613dd99089615ac8565b613de39088615c63565b9061407f565b90506000613dff613dfa848661407f565b61463a565b8851909150600090613e1a90670de0b6b3a76400009061407f565b9050613e3081613e2a8486615caf565b906140ae565b8960400151613d019190615caf565b600080613e4c83856159c6565b670de0b6b3a76400009004949350505050565b60608315613e6e575081611f23565b825115613e7e5782518084602001fd5b8160405162461bcd60e51b81526004016106579190615d04565b606082471015613ef95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610657565b613f0285611a69565b613f4e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610657565b600080866001600160a01b03168587604051613f6a9190615c51565b60006040518083038185875af1925050503d8060008114613fa7576040519150601f19603f3d011682016040523d82523d6000602084013e613fac565b606091505b5091509150613fbc828286613e5f565b979650505050505050565b600080613fd48784614126565b90506000613fec613fe5888a615ac8565b839061407f565b9050670d529ae9e86000008113156140235780670d529ae9e8600000604051637e34684f60e11b8152600401610657929190614ed6565b600061402e826141d2565b90508561403b828961407f565b6140459190615ac8565b9350670de0b6b3a76400008412156140735760405163329e322960e21b815260048101859052602401610657565b50505095945050505050565b600080614094670de0b6b3a764000085615c63565b90508281816140a5576140a56159f0565b05949350505050565b6000806140bb8385615c63565b9050670de0b6b3a7640000816140a5565b600080600083126140de5760016140e2565b6000195b9050613c83613c12856140f4866141c0565b61363a565b6000806000831261410b57600161410f565b6000195b9050613c83613c1285614121866141c0565b6146cb565b6000818312156141635760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610657565b611f238284615caf565b60008061417e878787876000613fc7565b9050600061418e6125ad8361463a565b9050836141a06201518061016d6159c6565b6141aa90836159c6565b6141b49190615a06565b98975050505050505050565b6000808213612fde57611fa882615c93565b6000670de0b6b3a764000082036141fc5760405163a9c8b14d60e01b815260040160405180910390fd5b600061421a61421384670de0b6b3a7640000615caf565b849061407f565b9050611f238161463a565b6000680238fd42c5cf03ffff19821215801561424a575068070c1cc73b00c800008213155b6142895760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610657565b60008212156142c15761429e82600003614225565b6a0c097ce7bc90715b34b9f160241b816142ba576142ba6159f0565b0592915050565b60006806f05b59d3b200000083126142ff57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b614335565b6803782dace9d9000000831261433157506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380614335565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126143855768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126143c1576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126143fb57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412614435576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261446e57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126144a75768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126144e0576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126145195768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080821361467b5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610657565b670c7d713b49da0000821380156146995750670f43fc2c04ee000082125b156146bd57670de0b6b3a76400006146b0836146f7565b816142ba576142ba6159f0565b611faf82614816565b919050565b6000826001816146e3670de0b6b3a7640000866159c6565b6146ed9190615976565b61364f91906159dd565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281614738576147386159f0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156148575761484e826a0c097ce7bc90715b34b9f160241b81614848576148486159f0565b05614816565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126148a25772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126148d9576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312614921576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261495c576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261499357693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126149ca57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126149ff5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312614a2a57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614a5f576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312614a94576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312614ac8576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312614afc576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281614b2557614b256159f0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060600160405280614c4b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081525090565b6040518060600160405280614c72614bb9565b8152602001614c7f614be8565b8152602001614cbd6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b905290565b6001600160a01b03811681146107f757600080fd5b80356146c681614cc2565b80151581146107f757600080fd5b600080600060608486031215614d0557600080fd5b8335614d1081614cc2565b92506020840135614d2081614ce2565b91506040840135614d3081614ce2565b809150509250925092565b600060208284031215614d4d57600080fd5b8135611f2381614cc2565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614d9157614d91614d58565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614dbf57614dbf614d58565b604052919050565b600060c08284031215614dd957600080fd5b60405160c081016001600160401b0381118282101715614dfb57614dfb614d58565b8060405250823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201528091505092915050565b60008083601f840112614e5257600080fd5b5081356001600160401b03811115614e6957600080fd5b6020830191508360208260051b8501011115614e8457600080fd5b9250929050565b600080600060408486031215614ea057600080fd5b83356001600160401b03811115614eb657600080fd5b614ec286828701614e40565b909790965060209590950135949350505050565b918252602082015260400190565b600060208284031215614ef657600080fd5b5035919050565b600082601f830112614f0e57600080fd5b81356001600160401b03811115614f2757614f27614d58565b614f3a601f8201601f1916602001614d97565b818152846020838601011115614f4f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614f7f57600080fd5b8235614f8a81614cc2565b915060208301356001600160401b03811115614fa557600080fd5b614fb185828601614efd565b9150509250929050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60a08101611faf8284614fbb565b805180518352602081015160208401526040810151604084015260018060a01b0360608201511660608401526080810151608084015260a081015160a084015260c081015160c084015260e081015160e084015261010080820151818501525050602081015161012083015260408101516101408301525050565b6101608101611faf8284614ff9565b6001600160a01b0391909116815260200190565b6000806000606084860312156150ac57600080fd5b505081359360208301359350604090920135919050565b600061010082840312156150d657600080fd5b50919050565b9283526020830191909152604082015260600190565b600060c082840312156150d657600080fd5b600060c0828403121561511657600080fd5b611f2383836150f2565b6000806020838503121561513357600080fd5b82356001600160401b0381111561514957600080fd5b61515585828601614e40565b90969095509350505050565b6000806040838503121561517457600080fd5b82356001600160401b0381111561518a57600080fd5b615196858286016150f2565b95602094909401359450505050565b600080604083850312156151b857600080fd5b82356151c381614cc2565b946020939093013593505050565b602080825282518282018190526000919060409081850190868401855b8281101561521c57815180516001600160a01b031685528601518685015292840192908501906001016151ee565b5091979650505050505050565b615234828251614fbb565b602081015161524660a0840182614ff9565b5060409081015180516102008401526020810151610220840152908101516102408301526060810151610260830152608081015161028083015260a001516102a090910152565b6102c08101611faf8284615229565b60006101a082840312156150d657600080fd5b600080600080606085870312156152c557600080fd5b843593506020850135925060408501356001600160401b03808211156152ea57600080fd5b818701915087601f8301126152fe57600080fd5b81358181111561530d57600080fd5b88602082850101111561531f57600080fd5b95989497505060200194505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602c90820152600080516020615d1883398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615d1883398151915260408201526b6163746976652070726f787960a01b606082015260800190565b80516146c681614cc2565b600061012082840312156153f557600080fd5b6153fd614d6e565b825181526020830151602082015260408301516040820152615421606084016153d7565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006020828403121561547657600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b80358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050565b61046081016154d28289615229565b600587106154e2576154e261547d565b866102c0830152856102e083015284610300830152615505610320830185615493565b613fbc6103c0830184615493565b60e081016155218286615493565b60a082019390935260c00152919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811261555e57600080fd5b9190910192915050565b6000808335601e1984360301811261557f57600080fd5b8301803591506001600160401b0382111561559957600080fd5b6020019150600581901b3603821315614e8457600080fd5b6000608082840312156155c357600080fd5b604051608081016001600160401b0380821183831017156155e6576155e6614d58565b8160405282935084359150600482106155fe57600080fd5b90825260208401359061561082614cc2565b816020840152604085013591508082111561562a57600080fd5b5061563785828601614efd565b604083015250606083013561564b81614ce2565b6060919091015292915050565b600060c0823603121561566a57600080fd5b60405160c081016001600160401b03808211838310171561568d5761568d614d58565b816040528435915061569e82614cc2565b81835260208501356020840152604085013591506156bb82614cc2565b816040840152606085013591506156d182614cc2565b8160608401526156e360808601614cd7565b608084015260a08501359150808211156156fc57600080fd5b50615709368286016155b1565b60a08301525092915050565b60006001600160401b0382111561572e5761572e614d58565b5060051b60200190565b6000602080838503121561574b57600080fd5b82516001600160401b0381111561576157600080fd5b8301601f8101851361577257600080fd5b805161578561578082615715565b614d97565b81815260059190911b820183019083810190878311156157a457600080fd5b928401925b82841015613fbc5783516157bc81614cc2565b825292840192908401906157a9565b6001600160a01b0393909316835290151560208301521515604082015260600190565b600082601f8301126157ff57600080fd5b8151602061580f61578083615715565b82815260059290921b8401810191818101908684111561582e57600080fd5b8286015b848110156158495780518352918301918301615832565b509695505050505050565b6000806040838503121561586757600080fd5b825160208401519092506001600160401b0381111561588557600080fd5b614fb1858286016157ee565b6000602082840312156158a357600080fd5b81516001600160401b038111156158b957600080fd5b61391d848285016157ee565b600060a082840312156158d757600080fd5b60405160a081016001600160401b03811182821017156158f9576158f9614d58565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b6000823560be1983360301811261555e57600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611faf57611faf615960565b60006001820161599b5761599b615960565b5060010190565b600080604083850312156159b557600080fd5b505080516020909101519092909150565b8082028115828204841417611faf57611faf615960565b81810381811115611faf57611faf615960565b634e487b7160e01b600052601260045260246000fd5b600082615a1557615a156159f0565b500490565b60005b83811015615a35578181015183820152602001615a1d565b50506000910152565b60008151808452615a56816020860160208601615a1a565b601f01601f19169290920160200192915050565b60018060a01b0384168152826020820152606060408201526000615a916060830184615a3e565b95945050505050565b600080600060608486031215615aaf57600080fd5b8351925060208401519150604084015190509250925092565b8082018281126000831280158216821582161715615ae857615ae8615960565b505092915050565b60006001600160601b0383811680615b0a57615b0a6159f0565b92169190910492915050565b6001600160a01b0392831681529116602082015260400190565b600060018060a01b038087168352808616602084015284604084015260806060840152808451166080840152602084015160a08401528060408501511660c08401528060608501511660e08401528060808501511661010084015260a084015160c0610120850152805160048110615baa57615baa61547d565b61014085015260208101519091166101608401526040810151608061018085015290615bda6101c0850183615a3e565b9150606081015115156101a0850152508091505095945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215615c2d57600080fd5b8151611f2381614ce2565b6001600160a01b03929092168252602082015260400190565b6000825161555e818460208701615a1a565b80820260008212600160ff1b84141615615c7f57615c7f615960565b8181058314821517611faf57611faf615960565b6000600160ff1b8201615ca857615ca8615960565b5060000390565b8181036000831280158383131683831282161715615ccf57615ccf615960565b5092915050565b600082615ce557615ce56159f0565b600160ff1b821460001984141615615cff57615cff615960565b500590565b602081526000611f236020830184615a3e56fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220976a6985d1655e8b317e8f3f9a98247da4ac4ad1f532c5421fb7dd6acf91112f64736f6c63430008110033",
1678
+ "deployedBytecode": "0x60806040526004361061016c5760003560e01c8063078dfbe7146101785780633659cfe61461019a57806337deed8d146101ba57806343833bd6146101da5780634e71e0c8146102115780634f0364b1146102265780634f1ef2861461024657806352d1902d1461025957806365b800e61461027c5780636f8d61971461029e578063781c18db146102c05780637cf738d21461030157806380f55605146103355780638195f674146103695780638da5cb5b1461038957806396aba492146103a9578063a7584e5e146103d8578063acdb32df146103f8578063adb7c3f714610418578063afd27bf514610470578063c09aa0d2146104a4578063c1075329146104b7578063d94073d4146104d7578063dbeadc071461050b578063e138b2ee1461052d578063e30c397814610543578063e82cee7914610563578063eb983ce514610597578063ebff5439146105b9578063f887ea40146105d9578063fa483e721461060d57600080fd5b3661017357005b600080fd5b34801561018457600080fd5b50610198610193366004614cf0565b61062d565b005b3480156101a657600080fd5b506101986101b5366004614d3b565b610732565b3480156101c657600080fd5b506101986101d5366004614dc7565b6107fa565b3480156101e657600080fd5b506101fa6101f5366004614e8b565b610933565b604051610208929190614ed6565b60405180910390f35b34801561021d57600080fd5b50610198610a1a565b34801561023257600080fd5b50610198610241366004614ee4565b610ac5565b610198610254366004614f6c565b610b50565b34801561026557600080fd5b5061026e610c05565b604051908152602001610208565b34801561028857600080fd5b50610291610cb3565b6040516102089190614feb565b3480156102aa57600080fd5b506102b3610d7b565b6040516102089190615074565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516102089190615083565b34801561030d57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561034157600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561037557600080fd5b506101fa610384366004615097565b610e73565b34801561039557600080fd5b506000546102f4906001600160a01b031681565b3480156103b557600080fd5b506103c96103c43660046150c3565b610f05565b604051610208939291906150dc565b3480156103e457600080fd5b506101986103f3366004615104565b61112a565b34801561040457600080fd5b50610198610413366004615120565b61116b565b34801561042457600080fd5b5060325460335460345460355460365460375461044395949392919086565b604080519687526020870195909552938501929092526060840152608083015260a082015260c001610208565b34801561047c57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6101986104b2366004615161565b611236565b3480156104c357600080fd5b506101986104d23660046151a5565b6112e5565b3480156104e357600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561051757600080fd5b5061052061136a565b60405161020891906151d1565b34801561053957600080fd5b5061026e60385481565b34801561054f57600080fd5b506001546102f4906001600160a01b031681565b34801561056f57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a357600080fd5b506105ac611731565b604051610208919061528d565b3480156105c557600080fd5b506101fa6105d436600461529c565b611792565b3480156105e557600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561061957600080fd5b506101986106283660046152af565b6119bc565b6000546001600160a01b031633146106605760405162461bcd60e51b81526004016106579061532e565b60405180910390fd5b8115610711576001600160a01b03831615158061067a5750805b6106be5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610657565b600080546040516001600160a01b0380871693921691600080516020615d5883398151915291a3600080546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361077a5760405162461bcd60e51b815260040161065790615363565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107ac611a78565b6001600160a01b0316146107d25760405162461bcd60e51b81526004016106579061539d565b6107db81611a94565b604080516000808252602082019092526107f791839190611abe565b50565b600154600160a81b900460ff1615808015610820575060018054600160a01b900460ff16105b80610847575061082f30611a69565b158015610847575060018054600160a01b900460ff16145b6108aa5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610657565b6001805460ff60a01b1916600160a01b17905580156108d7576001805460ff60a81b1916600160a81b1790555b6108e082611c29565b6108e8611c5c565b801561092f576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6000805481906001600160a01b031633146109605760405162461bcd60e51b81526004016106579061532e565b610968611cdd565b610973858585611e9e565b915061099e7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6000549091506109d9907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683611fb5565b7f9fdfc39e9c36ec108e0a3b25ecb0818f9dba6993f27c8ab183d6f707c0a0e3198282604051610a0a929190614ed6565b60405180910390a1935093915050565b6001546001600160a01b0316338114610a755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610657565b600080546040516001600160a01b0380851693921691600080516020615d5883398151915291a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000546001600160a01b03163314610aef5760405162461bcd60e51b81526004016106579061532e565b610b1a7f0000000000000000000000000000000000000000000000000000000000000000338361207f565b6040518181527ffbf5b64cc7bd746fa51ff05d539d45d159c0bd41ae16d90375281f2925062bb19060200160405180910390a150565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b985760405162461bcd60e51b815260040161065790615363565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bca611a78565b6001600160a01b031614610bf05760405162461bcd60e51b81526004016106579061539d565b610bf982611a94565b61092f82826001611abe565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ca05760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610657565b50600080516020615d3883398151915290565b610cbb614bb9565b610ce47f0000000000000000000000000000000000000000000000000000000000000000611f2a565b8152610d0f7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6060820152610d3d7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6020820152610d6b7f0000000000000000000000000000000000000000000000000000000000000000611f2a565b6040820152603854608082015290565b610d83614be8565b60405163794052f360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063794052f390610def907f000000000000000000000000000000000000000000000000000000000000000090600401615083565b61012060405180830381865afa158015610e0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3191906153e2565b8152610e656001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166120e6565b602082015242604082015290565b6000805481906001600160a01b03163314610ea05760405162461bcd60e51b81526004016106579061532e565b610ecc7f000000000000000000000000000000000000000000000000000000000000000086868661214c565b60405191935091507f48f22f4bc9aee5b703ec4521f5f611eb37d722e592a0545e957f00ce8e9bd3ec90610a0a908790859085906150dc565b60008054819081906001600160a01b03163314610f345760405162461bcd60e51b81526004016106579061532e565b6000610f3e611731565b90508460e001357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a76541e5836040518263ffffffff1660e01b8152600401610f91919061528d565b602060405180830381865afa158015610fae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd29190615464565b1461101f5760405162461bcd60e51b815260206004820152601f60248201527f6164644c697146726f6d59743a2062696e2073746174652065787069726564006044820152606401610657565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166303270af4611056611731565b6040516001600160e01b031960e084901b168152611088919060019060c08b013590600019908c9081906004016154c3565b602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190615464565b93506110d9848660a00135612204565b90935091506110e66124f9565b6040517fba4064507fa740cdd61480d0c0ce70e6b4e0f349dda4cd52184466a3c19936439061111a90879085908790615513565b60405180910390a1509193909250565b6000546001600160a01b031633146111545760405162461bcd60e51b81526004016106579061532e565b6107f761116636839003830183614dc7565b611c29565b6000546001600160a01b031633146111955760405162461bcd60e51b81526004016106579061532e565b60005b8181101561072d57368383838181106111b3576111b3615532565b90506020028101906111c59190615548565b905060005b6111d48280615568565b905081101561122c576112246111ea8380615568565b838181106111fa576111fa615532565b905060200201602081019061120f9190614d3b565b61121f6040850160208601614d3b565b6125b7565b6001016111ca565b5050600101611198565b6000546001600160a01b031633146112605760405162461bcd60e51b81526004016106579061532e565b61127b6112706020840184614d3b565b33846020013561207f565b61128d61128783615658565b82612672565b5061129b6020830183614d3b565b6001600160a01b03167f2d0c0a8842b9944ece1495eb61121621b5e36bd6af3bba0318c695f525aef79f83602001356040516112d991815260200190565b60405180910390a25050565b6000546001600160a01b0316331461130f5760405162461bcd60e51b81526004016106579061532e565b60001981036113245761132182611f2a565b90505b61132f823383611fb5565b816001600160a01b03167f21901fa892c430ea8bd38b9390225ac8e67eac75ee10ffba16feefc539a288f9826040516112d991815260200190565b6000546060906001600160a01b031633146113975760405162461bcd60e51b81526004016106579061532e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190615738565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637d24da4d306001806040518463ffffffff1660e01b8152600401611474939291906157cb565b6000604051808303816000875af1158015611493573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114bb9190810190615854565b91506114ca905083838361275f565b925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561152c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115549190810190615738565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ef5cfb8c306040518263ffffffff1660e01b81526004016115a49190615083565b6000604051808303816000875af11580156115c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115eb9190810190615891565b90506115f885838361275f565b945060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561165a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116829190810190615738565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639262187b306040518263ffffffff1660e01b81526004016116d29190615083565b6000604051808303816000875af11580156116f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117199190810190615891565b905061172687838361275f565b965050505050505090565b611739614c5f565b611741610cb3565b815261174b610d7b565b6020808301919091526040805160c081018252603254815260335492810192909252603454828201526035546060830152603654608083015260375460a083015282015290565b6000805481906001600160a01b031633146117bf5760405162461bcd60e51b81526004016106579061532e565b60006117c9611731565b90508361018001357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a76541e5836040518263ffffffff1660e01b815260040161181d919061528d565b602060405180830381865afa15801561183a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185e9190615464565b146118ab5760405162461bcd60e51b815260206004820181905260248201527f72656d6f76654c6971546f59743a2062696e20737461746520657870697265646044820152606401610657565b60405162c9c2bd60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303270af49061190b9084906002906101608a013590600019908b9060a08201906004016154c3565b602060405180830381865afa158015611928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194c9190615464565b925061196f8361196436879003870160a088016158c5565b866101400135612817565b50915061197a6124f9565b6040517f43950417e0eb7225b8f42332a069bc35fbdf65f3d90c124210b3d3aefc3d6a40906119ae90869086908690615513565b60405180910390a150915091565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114611a08578060405163719d6b0360e01b81526004016106579190615083565b82356001816004811115611a1e57611a1e61547d565b03611a3457611a2f86868686612b2e565b611a61565b6002816004811115611a4857611a4861547d565b03611a5957611a2f86868686612d64565b611a61615934565b505050505050565b6001600160a01b03163b151590565b600080516020615d38833981519152546001600160a01b031690565b6000546001600160a01b031633146107f75760405162461bcd60e51b81526004016106579061532e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611af15761072d83612e45565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611b4b575060408051601f3d908101601f19168201909252611b4891810190615464565b60015b611bae5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610657565b600080516020615d388339815191528114611c1d5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610657565b5061072d838383612edf565b8051603255602081015160335560408101516034556060810151603555608081015160365560a001516037819055603855565b600154600160a81b900460ff16611cc95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610657565b600080546001600160a01b03191633179055565b604051637d24da4d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637d24da4d90611d2e90309060019081906004016157cb565b6000604051808303816000875af1158015611d4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d759190810190615854565b5050604051633bd73ee360e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ef5cfb8c90611dc3903090600401615083565b6000604051808303816000875af1158015611de2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e0a9190810190615891565b50604051639262187b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639262187b90611e57903090600401615083565b6000604051808303816000875af1158015611e76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107f79190810190615891565b6000805b83811015611efd57611ee1858583818110611ebf57611ebf615532565b9050602002810190611ed1919061594a565b611eda90615658565b6000612672565b611eeb9083615976565b9150611ef681615989565b9050611ea2565b5081811015611f2357808260405163d294eca360e01b8152600401610657929190614ed6565b9392505050565b60006001600160a01b03821615611fad576040516370a0823160e01b81526001600160a01b038316906370a0823190611f67903090600401615083565b602060405180830381865afa158015611f84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa89190615464565b611faf565b475b92915050565b80600003611fc257505050565b6001600160a01b03831661206b576000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461201d576040519150601f19603f3d011682016040523d82523d6000602084013e612022565b606091505b50509050806120655760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610657565b50505050565b61072d6001600160a01b0384168383612f04565b6001600160a01b0383166120cb5780341461072d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610657565b801561072d5761072d6001600160a01b038416833084612f5a565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612128573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faf9190615464565b604051634221c25560e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018590526064820184905260848201839052600091829187169063844384aa9060a40160408051808303816000875af11580156121d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f791906159a2565b9150915094509492505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663794052f3306040518263ffffffff1660e01b81526004016122559190615083565b61012060405180830381865afa158015612273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229791906153e2565b905060006122cd7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e6565b905060006122dd83838942612f7b565b5090915082905060006122f082846159c6565b612302670de0b6b3a76400008b6159c6565b61230c91906159dd565b9050600061231d8660000151612fcf565b8361232b8860200151612fcf565b61233591906159c6565b61233f9190615a06565b61235190670de0b6b3a7640000615976565b9050600061235f8284615a06565b905061236b818c6159dd565b97507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635b709f17308d6123a78c612fe2565b6040518463ffffffff1660e01b81526004016123c593929190615a6a565b60408051808303816000875af11580156123e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240791906159a2565b5060009050612416878a613016565b9050600061242487836159dd565b604051630ab714fb60e11b815230600482015260248101829052604481018590529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063156e29f6906064016060604051808303816000875af115801561249b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bf9190615a9a565b50909b50508b8b10156124e9578a8c60405163066d180b60e01b8152600401610657929190614ed6565b5050505050505050509250929050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a76541e5612532611731565b6040518263ffffffff1660e01b815260040161254e919061528d565b602060405180830381865afa15801561256b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258f9190615464565b90506107f76125b2826125a3603854613022565b6125ad9190615ac8565b612fcf565b603855565b6001600160a01b0382166125c9575050565b6125db60026001600160601b03615af0565b6001600160601b0316826001600160a01b031663dd62ed3e30846040518363ffffffff1660e01b8152600401612612929190615b16565b602060405180830381865afa15801561262f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126539190615464565b101561092f5761266582826000613038565b61092f8282600019613038565b600060001983602001510361269257825161268c90611f2a565b60208401525b82516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163443e65129116156126d35760006126d9565b84602001515b307f000000000000000000000000000000000000000000000000000000000000000086886040518663ffffffff1660e01b815260040161271c9493929190615b30565b60206040518083038185885af115801561273a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f239190615464565b805182518491146127b25760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e416d6f756e744c69623a206c656e677468206d69736d61746368006044820152606401610657565b60005b835181101561280f576127fb828583815181106127d4576127d4615532565b60200260200101518584815181106127ee576127ee615532565b602002602001015161314c565b91508061280781615989565b9150506127b5565b509392505050565b6000806128657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000087611fb5565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f6b911bc7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008a6040518463ffffffff1660e01b81526004016128f893929190615bf7565b60408051808303816000875af1158015612916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293a91906159a2565b9150915060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663794052f3306040518263ffffffff1660e01b815260040161298c9190615083565b61012060405180830381865afa1580156129aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ce91906153e2565b90506000612a047f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120e6565b90506000612a12828661330e565b90506000612a2e83612a248488615976565b869190428e61331a565b5097509050612a3d8282615976565b975088881015612a6457878960405163716d9a5760e11b8152600401610657929190614ed6565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166329910b117f000000000000000000000000000000000000000000000000000000000000000089612abe8d61343b565b6040518463ffffffff1660e01b8152600401612adc93929190615a6a565b60408051808303816000875af1158015612afa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b1e91906159a2565b5050505050505050935093915050565b6020820135612b7e7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000083611fb5565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c029190615c1b565b1590508015612c5657612c567f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084611fb5565b60405163bcb7ea5d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063bcb7ea5d90612cc2907f000000000000000000000000000000000000000000000000000000000000000090600401615083565b6020604051808303816000875af1158015612ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d059190615464565b50611a617f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084612d558a612fcf565b612d5f91906159dd565b611fb5565b60405163db74aa1560e01b81526020830135906000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063db74aa1590612ddb907f0000000000000000000000000000000000000000000000000000000000000000903090600401615b16565b6020604051808303816000875af1158015612dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1e9190615464565b905081811015611a6157808260405163716d9a5760e11b8152600401610657929190614ed6565b612e4e81611a69565b612eb05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610657565b600080516020615d3883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612ee883613462565b600082511180612ef55750805b1561072d5761206583836134a2565b61072d8363a9059cbb60e01b8484604051602401612f23929190615c38565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526134c7565b612065846323b872dd60e01b858585604051602401612f2393929190615bf7565b600080600080600080612f988a8a612f928b613022565b8a613599565b925092509250612faa6125ad8461362c565b9550612fb582612fcf565b9450612fc081612fcf565b93505050509450945094915050565b600080821215612fde57600080fd5b5090565b604080518181526060818101835291602082018180368337019050509050600060015b602083015250604081019190915290565b6000611f23838361363a565b60006001600160ff1b03821115612fde57600080fd5b600080846001600160a01b031663095ea7b360e01b8585604051602401613060929190615c38565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161309e9190615c51565b6000604051808303816000865af19150503d80600081146130db576040519150601f19603f3d011682016040523d82523d6000602084013e6130e0565b606091505b509150915081801561310a57508051158061310a57508080602001905181019061310a9190615c1b565b6131455760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b6044820152606401610657565b5050505050565b60608160000361315d575082611f23565b835160005b85518110156131bb57846001600160a01b031686828151811061318757613187615532565b6020026020010151600001516001600160a01b0316036131a9578091506131bb565b806131b381615989565b915050613162565b50845181146131cb5760006131ce565b60015b60ff1685516131dd9190615976565b6001600160401b038111156131f4576131f4614d58565b60405190808252806020026020018201604052801561323957816020015b60408051808201909152600080825260208201528152602001906001900390816132125790505b50915060005b85518110156132925785818151811061325a5761325a615532565b602002602001015183828151811061327457613274615532565b6020026020010181905250808061328a90615989565b91505061323f565b506040518060400160405280856001600160a01b0316815260200184875184146132d9578784815181106132c8576132c8615532565b6020026020010151602001516132dc565b60005b6132e69190615976565b8152508282815181106132fb576132fb615532565b6020026020010181905250509392505050565b6000611f238383613659565b600080808061332a89898861366e565b9050846040015160000361336c5784516133449088613768565b8552602085015161335e906133598b8461377e565b6137fa565b602086015261336c85613809565b60005b85606001518110156134165760006133878783613854565b90506000806133988d868e866138c0565b50909250905060006133aa8d8461330e565b905060006133b882866159dd565b90508c81116133ef576133d0818e8d608001516138f1565b156133e75750975091955090935061343092505050565b848b52613400565b6133fa6001866159dd565b60208c01525b50505050508061340f90615989565b905061336f565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b60408051818152606081810183529160208201818036833701905050905060006002613005565b61346b81612e45565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611f238383604051806060016040528060278152602001615d7860279139613925565b600061351c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613a009092919063ffffffff16565b80519091501561072d578080602001905181019061353a9190615c1b565b61072d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610657565b60008060006135ac8760a0015185101590565b156135ca5760405163b2094b5960e01b815260040160405180910390fd5b865185126135f0578651604051632185509b60e21b815261065791908790600401614ed6565b60006135fd88888761366e565b905061360b88828989613a0f565b919550935091506136218882898988878b613b63565b509450945094915050565b6000611faf82600019615c63565b60008261364f670de0b6b3a7640000846159c6565b611f239190615a06565b6000670de0b6b3a764000061364f84846159c6565b6136996040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106136bd5760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516136cf91906159dd565b90506136db8582613bf5565b825260208501516136ed908590613c56565b60208301528451158061370257506020820151155b15613729578451602083015160405163b1c4aefb60e01b8152610657929190600401614ed6565b61374785600001518661010001518460200151856000015185613c8d565b604083015260c085015161375b9082613d0e565b6060830152509392505050565b60008183116137775781611f23565b5090919050565b6000806000905060006001846020015161379891906159dd565b90505b80821461280f57600060026137b08385615976565b6137bb906001615976565b6137c59190615a06565b905060006137d886886000015184613d47565b12156137f0576137e96001826159dd565b91506137f4565b8092505b5061379b565b60008183106137775781611f23565b6020810151815111806138275750670de0b6b3a76400008160800151115b156107f757805160208201516080830151604051632cc06bc160e21b8152610657939291906004016150dc565b6000811580156138675750604083015115155b1561387757506040820151611faf565b60208301518351116138a7576020830151835160029161389691615976565b6138a09190615a06565b9050611faf565b604051637d388ed960e11b815260040160405180910390fd5b600080808080806138de89896138d58a615c93565b8d929190613a0f565b919c909b50909950975050505050505050565b600082841115801561391d57506139198361391484670de0b6b3a76400006159dd565b613e3f565b8410155b949350505050565b606061393084611a69565b61398b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610657565b600080856001600160a01b0316856040516139a69190615c51565b600060405180830381855af49150503d80600081146139e1576040519150601f19603f3d011682016040523d82523d6000602084013e6139e6565b606091505b50915091506139f6828286613e5f565b9695505050505050565b606061391d8484600085613e98565b600080600080613a328860000151886020015189600001518a6040015189613fc7565b90506000613a48613a43878461407f565b61362c565b60608901519091506000871315613ab7576000613a65848361407f565b9050670de0b6b3a7640000811215613a935760405163329e322960e21b815260048101829052602401610657565b613aaf613aa883670de0b6b3a7640000615caf565b84906140ae565b915050613ae4565b613ae181613acd81670de0b6b3a7640000615caf565b613ad79085615c63565b613a439190615cd6565b90505b60006064613af58c60e00151613022565b613aff9084615c63565b613b099190615cd6565b90506000613b178385615caf565b905060008112613b3057613b2b8a826140cc565b613b3a565b613b3a8a826140f9565b9750613b468a846140cc565b9650613b528a836140cc565b955050505050509450945094915050565b6000818860a00151613b7591906159dd565b8851909150613b849086614126565b8852613b9e613b938486615ac8565b60208a015190614126565b602089018190528851613bc391613bb6908990613c56565b895160408b01518561416d565b6101008901819052600003613beb57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b6000613c0082613022565b613c17613c126201518061016d6159c6565b613022565b8460800151613c269190615c63565b613c309190615cd6565b905060008113611faf57604051630e520c3b60e11b815260048101829052602401610657565b60008060008312613c68576001613c6c565b6000195b9050613c83613c1285613c7e866141c0565b613659565b61391d9082615c63565b600080613c9a8684613d0e565b9050670de0b6b3a7640000811215613cc85760405163329e322960e21b815260048101829052602401610657565b6000613cde613cd7878a615ac8565b899061407f565b90506000613ceb826141d2565b9050613cf7818761407f565b613d019084615caf565b9998505050505050505050565b600080613d206201518061016d6159c6565b613d2a84866159c6565b613d349190615a06565b905061391d613d4282613022565b614225565b600080828560200151613d5a9190615caf565b90506000613d688585615ac8565b9050600082138015613d7a5750600081135b613dbb5760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610657565b6000613de9613dca8484615c63565b6020890151613dd99089615ac8565b613de39088615c63565b9061407f565b90506000613dff613dfa848661407f565b61463a565b8851909150600090613e1a90670de0b6b3a76400009061407f565b9050613e3081613e2a8486615caf565b906140ae565b8960400151613d019190615caf565b600080613e4c83856159c6565b670de0b6b3a76400009004949350505050565b60608315613e6e575081611f23565b825115613e7e5782518084602001fd5b8160405162461bcd60e51b81526004016106579190615d04565b606082471015613ef95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610657565b613f0285611a69565b613f4e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610657565b600080866001600160a01b03168587604051613f6a9190615c51565b60006040518083038185875af1925050503d8060008114613fa7576040519150601f19603f3d011682016040523d82523d6000602084013e613fac565b606091505b5091509150613fbc828286613e5f565b979650505050505050565b600080613fd48784614126565b90506000613fec613fe5888a615ac8565b839061407f565b9050670d529ae9e86000008113156140235780670d529ae9e8600000604051637e34684f60e11b8152600401610657929190614ed6565b600061402e826141d2565b90508561403b828961407f565b6140459190615ac8565b9350670de0b6b3a76400008412156140735760405163329e322960e21b815260048101859052602401610657565b50505095945050505050565b600080614094670de0b6b3a764000085615c63565b90508281816140a5576140a56159f0565b05949350505050565b6000806140bb8385615c63565b9050670de0b6b3a7640000816140a5565b600080600083126140de5760016140e2565b6000195b9050613c83613c12856140f4866141c0565b61363a565b6000806000831261410b57600161410f565b6000195b9050613c83613c1285614121866141c0565b6146cb565b6000818312156141635760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610657565b611f238284615caf565b60008061417e878787876000613fc7565b9050600061418e6125ad8361463a565b9050836141a06201518061016d6159c6565b6141aa90836159c6565b6141b49190615a06565b98975050505050505050565b6000808213612fde57611fa882615c93565b6000670de0b6b3a764000082036141fc5760405163a9c8b14d60e01b815260040160405180910390fd5b600061421a61421384670de0b6b3a7640000615caf565b849061407f565b9050611f238161463a565b6000680238fd42c5cf03ffff19821215801561424a575068070c1cc73b00c800008213155b6142895760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610657565b60008212156142c15761429e82600003614225565b6a0c097ce7bc90715b34b9f160241b816142ba576142ba6159f0565b0592915050565b60006806f05b59d3b200000083126142ff57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b614335565b6803782dace9d9000000831261433157506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380614335565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126143855768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126143c1576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126143fb57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412614435576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261446e57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126144a75768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126144e0576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126145195768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080821361467b5760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610657565b670c7d713b49da0000821380156146995750670f43fc2c04ee000082125b156146bd57670de0b6b3a76400006146b0836146f7565b816142ba576142ba6159f0565b611faf82614816565b919050565b6000826001816146e3670de0b6b3a7640000866159c6565b6146ed9190615976565b61364f91906159dd565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281614738576147386159f0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156148575761484e826a0c097ce7bc90715b34b9f160241b81614848576148486159f0565b05614816565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126148a25772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126148d9576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312614921576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261495c576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261499357693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126149ca57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126149ff5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312614a2a57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614a5f576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312614a94576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312614ac8576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac8312614afc576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281614b2557614b256159f0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060600160405280614c4b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200160008152602001600081525090565b6040518060600160405280614c72614bb9565b8152602001614c7f614be8565b8152602001614cbd6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b905290565b6001600160a01b03811681146107f757600080fd5b80356146c681614cc2565b80151581146107f757600080fd5b600080600060608486031215614d0557600080fd5b8335614d1081614cc2565b92506020840135614d2081614ce2565b91506040840135614d3081614ce2565b809150509250925092565b600060208284031215614d4d57600080fd5b8135611f2381614cc2565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614d9157614d91614d58565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614dbf57614dbf614d58565b604052919050565b600060c08284031215614dd957600080fd5b60405160c081016001600160401b0381118282101715614dfb57614dfb614d58565b8060405250823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201528091505092915050565b60008083601f840112614e5257600080fd5b5081356001600160401b03811115614e6957600080fd5b6020830191508360208260051b8501011115614e8457600080fd5b9250929050565b600080600060408486031215614ea057600080fd5b83356001600160401b03811115614eb657600080fd5b614ec286828701614e40565b909790965060209590950135949350505050565b918252602082015260400190565b600060208284031215614ef657600080fd5b5035919050565b600082601f830112614f0e57600080fd5b81356001600160401b03811115614f2757614f27614d58565b614f3a601f8201601f1916602001614d97565b818152846020838601011115614f4f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614f7f57600080fd5b8235614f8a81614cc2565b915060208301356001600160401b03811115614fa557600080fd5b614fb185828601614efd565b9150509250929050565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60a08101611faf8284614fbb565b805180518352602081015160208401526040810151604084015260018060a01b0360608201511660608401526080810151608084015260a081015160a084015260c081015160c084015260e081015160e084015261010080820151818501525050602081015161012083015260408101516101408301525050565b6101608101611faf8284614ff9565b6001600160a01b0391909116815260200190565b6000806000606084860312156150ac57600080fd5b505081359360208301359350604090920135919050565b600061010082840312156150d657600080fd5b50919050565b9283526020830191909152604082015260600190565b600060c082840312156150d657600080fd5b600060c0828403121561511657600080fd5b611f2383836150f2565b6000806020838503121561513357600080fd5b82356001600160401b0381111561514957600080fd5b61515585828601614e40565b90969095509350505050565b6000806040838503121561517457600080fd5b82356001600160401b0381111561518a57600080fd5b615196858286016150f2565b95602094909401359450505050565b600080604083850312156151b857600080fd5b82356151c381614cc2565b946020939093013593505050565b602080825282518282018190526000919060409081850190868401855b8281101561521c57815180516001600160a01b031685528601518685015292840192908501906001016151ee565b5091979650505050505050565b615234828251614fbb565b602081015161524660a0840182614ff9565b5060409081015180516102008401526020810151610220840152908101516102408301526060810151610260830152608081015161028083015260a001516102a090910152565b6102c08101611faf8284615229565b60006101a082840312156150d657600080fd5b600080600080606085870312156152c557600080fd5b843593506020850135925060408501356001600160401b03808211156152ea57600080fd5b818701915087601f8301126152fe57600080fd5b81358181111561530d57600080fd5b88602082850101111561531f57600080fd5b95989497505060200194505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602c90820152600080516020615d1883398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020615d1883398151915260408201526b6163746976652070726f787960a01b606082015260800190565b80516146c681614cc2565b600061012082840312156153f557600080fd5b6153fd614d6e565b825181526020830151602082015260408301516040820152615421606084016153d7565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006020828403121561547657600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b80358252602081013560208301526040810135604083015260608101356060830152608081013560808301525050565b61046081016154d28289615229565b600587106154e2576154e261547d565b866102c0830152856102e083015284610300830152615505610320830185615493565b613fbc6103c0830184615493565b60e081016155218286615493565b60a082019390935260c00152919050565b634e487b7160e01b600052603260045260246000fd5b60008235603e1983360301811261555e57600080fd5b9190910192915050565b6000808335601e1984360301811261557f57600080fd5b8301803591506001600160401b0382111561559957600080fd5b6020019150600581901b3603821315614e8457600080fd5b6000608082840312156155c357600080fd5b604051608081016001600160401b0380821183831017156155e6576155e6614d58565b8160405282935084359150600482106155fe57600080fd5b90825260208401359061561082614cc2565b816020840152604085013591508082111561562a57600080fd5b5061563785828601614efd565b604083015250606083013561564b81614ce2565b6060919091015292915050565b600060c0823603121561566a57600080fd5b60405160c081016001600160401b03808211838310171561568d5761568d614d58565b816040528435915061569e82614cc2565b81835260208501356020840152604085013591506156bb82614cc2565b816040840152606085013591506156d182614cc2565b8160608401526156e360808601614cd7565b608084015260a08501359150808211156156fc57600080fd5b50615709368286016155b1565b60a08301525092915050565b60006001600160401b0382111561572e5761572e614d58565b5060051b60200190565b6000602080838503121561574b57600080fd5b82516001600160401b0381111561576157600080fd5b8301601f8101851361577257600080fd5b805161578561578082615715565b614d97565b81815260059190911b820183019083810190878311156157a457600080fd5b928401925b82841015613fbc5783516157bc81614cc2565b825292840192908401906157a9565b6001600160a01b0393909316835290151560208301521515604082015260600190565b600082601f8301126157ff57600080fd5b8151602061580f61578083615715565b82815260059290921b8401810191818101908684111561582e57600080fd5b8286015b848110156158495780518352918301918301615832565b509695505050505050565b6000806040838503121561586757600080fd5b825160208401519092506001600160401b0381111561588557600080fd5b614fb1858286016157ee565b6000602082840312156158a357600080fd5b81516001600160401b038111156158b957600080fd5b61391d848285016157ee565b600060a082840312156158d757600080fd5b60405160a081016001600160401b03811182821017156158f9576158f9614d58565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b634e487b7160e01b600052600160045260246000fd5b6000823560be1983360301811261555e57600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115611faf57611faf615960565b60006001820161599b5761599b615960565b5060010190565b600080604083850312156159b557600080fd5b505080516020909101519092909150565b8082028115828204841417611faf57611faf615960565b81810381811115611faf57611faf615960565b634e487b7160e01b600052601260045260246000fd5b600082615a1557615a156159f0565b500490565b60005b83811015615a35578181015183820152602001615a1d565b50506000910152565b60008151808452615a56816020860160208601615a1a565b601f01601f19169290920160200192915050565b60018060a01b0384168152826020820152606060408201526000615a916060830184615a3e565b95945050505050565b600080600060608486031215615aaf57600080fd5b8351925060208401519150604084015190509250925092565b8082018281126000831280158216821582161715615ae857615ae8615960565b505092915050565b60006001600160601b0383811680615b0a57615b0a6159f0565b92169190910492915050565b6001600160a01b0392831681529116602082015260400190565b600060018060a01b038087168352808616602084015284604084015260806060840152808451166080840152602084015160a08401528060408501511660c08401528060608501511660e08401528060808501511661010084015260a084015160c0610120850152805160048110615baa57615baa61547d565b61014085015260208101519091166101608401526040810151608061018085015290615bda6101c0850183615a3e565b9150606081015115156101a0850152508091505095945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208284031215615c2d57600080fd5b8151611f2381614ce2565b6001600160a01b03929092168252602082015260400190565b6000825161555e818460208701615a1a565b80820260008212600160ff1b84141615615c7f57615c7f615960565b8181058314821517611faf57611faf615960565b6000600160ff1b8201615ca857615ca8615960565b5060000390565b8181036000831280158383131683831282161715615ccf57615ccf615960565b5092915050565b600082615ce557615ce56159f0565b600160ff1b821460001984141615615cff57615cff615960565b500590565b602081526000611f236020830184615a3e56fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220976a6985d1655e8b317e8f3f9a98247da4ac4ad1f532c5421fb7dd6acf91112f64736f6c63430008110033",
1679
+ "linkReferences": {},
1680
+ "deployedLinkReferences": {}
1681
+ }