@pendle/core-v2 2.17.5-tradingbot → 2.17.7-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 (162) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  18. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.json +25 -0
  49. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.json +25 -0
  51. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.dbg.json +4 -0
  52. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.json +1070 -0
  53. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.json +2 -2
  55. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +60 -180
  57. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.json +2 -2
  59. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +25 -0
  61. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  81. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  83. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  85. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +4 -0
  87. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +917 -0
  88. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +425 -161
  90. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +50 -0
  92. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  93. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  94. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  95. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  96. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  97. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  98. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  99. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  100. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  101. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  102. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  103. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  104. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  105. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  106. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  107. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  108. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  109. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  111. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  113. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  114. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  115. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  116. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  117. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  118. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  119. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  120. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  121. package/contracts/core/TradingBot/BotActionCallback.sol +1 -1
  122. package/contracts/core/TradingBot/BotDecisionHelper.sol +306 -0
  123. package/contracts/core/TradingBot/BotSimulationLib.sol +8 -7
  124. package/contracts/core/TradingBot/LongYieldTradingBot.sol +20 -24
  125. package/contracts/core/TradingBot/MarketExtLib.sol +64 -31
  126. package/contracts/core/TradingBot/README.md +27 -25
  127. package/contracts/core/TradingBot/TradingBotBase.sol +36 -16
  128. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +91 -0
  129. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +7 -32
  130. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +6 -4
  131. package/package.json +1 -1
  132. package/typechain-types/BotActionCallback.ts +36 -0
  133. package/typechain-types/BotActionHelper.ts +36 -0
  134. package/typechain-types/BotDecisionHelper.ts +527 -0
  135. package/typechain-types/IBotDecisionHelper.ts +507 -0
  136. package/typechain-types/ILongYieldTradingBot.ts +481 -129
  137. package/typechain-types/ITradingBotBase.ts +76 -0
  138. package/typechain-types/IWBETH.ts +128 -0
  139. package/typechain-types/LongYieldTradingBot.ts +85 -141
  140. package/typechain-types/PendleBinanceEth.ts +1229 -0
  141. package/typechain-types/PtAndLpToAsset.ts +136 -0
  142. package/typechain-types/TradingBotBase.ts +36 -0
  143. package/typechain-types/factories/BotActionCallback__factory.ts +25 -0
  144. package/typechain-types/factories/BotActionHelper__factory.ts +25 -0
  145. package/typechain-types/factories/BotDecisionHelper__factory.ts +1123 -0
  146. package/typechain-types/factories/IBotDecisionHelper__factory.ts +932 -0
  147. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +425 -161
  148. package/typechain-types/factories/ITradingBotBase__factory.ts +50 -0
  149. package/typechain-types/factories/IWBETH__factory.ts +51 -0
  150. package/typechain-types/factories/LongYieldTradingBot__factory.ts +63 -183
  151. package/typechain-types/factories/MarketExtLib__factory.ts +1 -1
  152. package/typechain-types/factories/PendleBinanceEth__factory.ts +1052 -0
  153. package/typechain-types/factories/PtAndLpToAsset__factory.ts +150 -0
  154. package/typechain-types/factories/TradingBotBase__factory.ts +25 -0
  155. package/typechain-types/hardhat.d.ts +49 -13
  156. package/typechain-types/index.ts +12 -4
  157. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.dbg.json +0 -4
  158. package/build/artifacts/contracts/core/TradingBot/BotDecisionLib.sol/BotDecisionLib.json +0 -589
  159. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.dbg.json +0 -4
  160. package/build/artifacts/contracts/core/TradingBot/TradingBotOffchain.sol/TradingBotOffchain.json +0 -1075
  161. package/contracts/core/TradingBot/BotDecisionLib.sol +0 -274
  162. package/contracts/core/TradingBot/TradingBotOffchain.sol +0 -141
@@ -1,589 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "BotDecisionLib",
4
- "sourceName": "contracts/core/TradingBot/BotDecisionLib.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "name": "ApproxFail",
9
- "type": "error"
10
- },
11
- {
12
- "inputs": [
13
- {
14
- "internalType": "uint256",
15
- "name": "guessMin",
16
- "type": "uint256"
17
- },
18
- {
19
- "internalType": "uint256",
20
- "name": "guessMax",
21
- "type": "uint256"
22
- },
23
- {
24
- "internalType": "uint256",
25
- "name": "eps",
26
- "type": "uint256"
27
- }
28
- ],
29
- "name": "ApproxParamsInvalid",
30
- "type": "error"
31
- },
32
- {
33
- "inputs": [],
34
- "name": "BotBinarySearchFail",
35
- "type": "error"
36
- },
37
- {
38
- "inputs": [
39
- {
40
- "internalType": "uint256",
41
- "name": "action",
42
- "type": "uint256"
43
- },
44
- {
45
- "internalType": "uint256",
46
- "name": "guessMin",
47
- "type": "uint256"
48
- }
49
- ],
50
- "name": "BotBinarySearchGuessMinInvalid",
51
- "type": "error"
52
- },
53
- {
54
- "inputs": [
55
- {
56
- "internalType": "uint256",
57
- "name": "action",
58
- "type": "uint256"
59
- },
60
- {
61
- "internalType": "uint256",
62
- "name": "guessMin",
63
- "type": "uint256"
64
- },
65
- {
66
- "internalType": "uint256",
67
- "name": "guessMax",
68
- "type": "uint256"
69
- }
70
- ],
71
- "name": "BotBinarySearchInvalidRange",
72
- "type": "error"
73
- },
74
- {
75
- "inputs": [
76
- {
77
- "internalType": "int256",
78
- "name": "exchangeRate",
79
- "type": "int256"
80
- }
81
- ],
82
- "name": "MarketExchangeRateBelowOne",
83
- "type": "error"
84
- },
85
- {
86
- "inputs": [],
87
- "name": "MarketExpired",
88
- "type": "error"
89
- },
90
- {
91
- "inputs": [
92
- {
93
- "internalType": "int256",
94
- "name": "currentAmount",
95
- "type": "int256"
96
- },
97
- {
98
- "internalType": "int256",
99
- "name": "requiredAmount",
100
- "type": "int256"
101
- }
102
- ],
103
- "name": "MarketInsufficientPtForTrade",
104
- "type": "error"
105
- },
106
- {
107
- "inputs": [],
108
- "name": "MarketProportionMustNotEqualOne",
109
- "type": "error"
110
- },
111
- {
112
- "inputs": [
113
- {
114
- "internalType": "int256",
115
- "name": "proportion",
116
- "type": "int256"
117
- },
118
- {
119
- "internalType": "int256",
120
- "name": "maxProportion",
121
- "type": "int256"
122
- }
123
- ],
124
- "name": "MarketProportionTooHigh",
125
- "type": "error"
126
- },
127
- {
128
- "inputs": [
129
- {
130
- "internalType": "int256",
131
- "name": "rateScalar",
132
- "type": "int256"
133
- }
134
- ],
135
- "name": "MarketRateScalarBelowZero",
136
- "type": "error"
137
- },
138
- {
139
- "inputs": [],
140
- "name": "MarketZeroAmountsInput",
141
- "type": "error"
142
- },
143
- {
144
- "inputs": [],
145
- "name": "MarketZeroAmountsOutput",
146
- "type": "error"
147
- },
148
- {
149
- "inputs": [],
150
- "name": "MarketZeroLnImpliedRate",
151
- "type": "error"
152
- },
153
- {
154
- "inputs": [
155
- {
156
- "internalType": "int256",
157
- "name": "totalPt",
158
- "type": "int256"
159
- },
160
- {
161
- "internalType": "int256",
162
- "name": "totalAsset",
163
- "type": "int256"
164
- }
165
- ],
166
- "name": "MarketZeroTotalPtOrTotalAsset",
167
- "type": "error"
168
- },
169
- {
170
- "inputs": [
171
- {
172
- "components": [
173
- {
174
- "internalType": "uint256",
175
- "name": "lpBalance",
176
- "type": "uint256"
177
- },
178
- {
179
- "internalType": "uint256",
180
- "name": "ytBalance",
181
- "type": "uint256"
182
- },
183
- {
184
- "internalType": "uint256",
185
- "name": "syBalance",
186
- "type": "uint256"
187
- }
188
- ],
189
- "internalType": "struct BotState",
190
- "name": "botState",
191
- "type": "tuple"
192
- },
193
- {
194
- "components": [
195
- {
196
- "internalType": "enum StrategyFlag",
197
- "name": "iyFlag",
198
- "type": "uint8"
199
- },
200
- {
201
- "internalType": "enum StrategyFlag",
202
- "name": "syRatioFlag",
203
- "type": "uint8"
204
- }
205
- ],
206
- "internalType": "struct StrategyState",
207
- "name": "currentState",
208
- "type": "tuple"
209
- }
210
- ],
211
- "name": "actionToTake",
212
- "outputs": [
213
- {
214
- "internalType": "enum ActionType",
215
- "name": "",
216
- "type": "uint8"
217
- }
218
- ],
219
- "stateMutability": "pure",
220
- "type": "function"
221
- },
222
- {
223
- "inputs": [
224
- {
225
- "components": [
226
- {
227
- "internalType": "uint256",
228
- "name": "lpBalance",
229
- "type": "uint256"
230
- },
231
- {
232
- "internalType": "uint256",
233
- "name": "ytBalance",
234
- "type": "uint256"
235
- },
236
- {
237
- "internalType": "uint256",
238
- "name": "syBalance",
239
- "type": "uint256"
240
- }
241
- ],
242
- "internalType": "struct BotState",
243
- "name": "bot",
244
- "type": "tuple"
245
- },
246
- {
247
- "components": [
248
- {
249
- "components": [
250
- {
251
- "internalType": "int256",
252
- "name": "totalPt",
253
- "type": "int256"
254
- },
255
- {
256
- "internalType": "int256",
257
- "name": "totalSy",
258
- "type": "int256"
259
- },
260
- {
261
- "internalType": "int256",
262
- "name": "totalLp",
263
- "type": "int256"
264
- },
265
- {
266
- "internalType": "address",
267
- "name": "treasury",
268
- "type": "address"
269
- },
270
- {
271
- "internalType": "int256",
272
- "name": "scalarRoot",
273
- "type": "int256"
274
- },
275
- {
276
- "internalType": "uint256",
277
- "name": "expiry",
278
- "type": "uint256"
279
- },
280
- {
281
- "internalType": "uint256",
282
- "name": "lnFeeRateRoot",
283
- "type": "uint256"
284
- },
285
- {
286
- "internalType": "uint256",
287
- "name": "reserveFeePercent",
288
- "type": "uint256"
289
- },
290
- {
291
- "internalType": "uint256",
292
- "name": "lastLnImpliedRate",
293
- "type": "uint256"
294
- }
295
- ],
296
- "internalType": "struct MarketState",
297
- "name": "state",
298
- "type": "tuple"
299
- },
300
- {
301
- "internalType": "PYIndex",
302
- "name": "index",
303
- "type": "uint256"
304
- },
305
- {
306
- "internalType": "uint256",
307
- "name": "blockTime",
308
- "type": "uint256"
309
- }
310
- ],
311
- "internalType": "struct MarketExtState",
312
- "name": "marketExt",
313
- "type": "tuple"
314
- },
315
- {
316
- "components": [
317
- {
318
- "internalType": "uint256",
319
- "name": "lowerIyLimit",
320
- "type": "uint256"
321
- },
322
- {
323
- "internalType": "uint256",
324
- "name": "upperIyLimit",
325
- "type": "uint256"
326
- },
327
- {
328
- "internalType": "uint256",
329
- "name": "floatingSyRatioLimit",
330
- "type": "uint256"
331
- },
332
- {
333
- "internalType": "uint256",
334
- "name": "ytPtRatioLimit",
335
- "type": "uint256"
336
- }
337
- ],
338
- "internalType": "struct LongTradingSpecs",
339
- "name": "specs",
340
- "type": "tuple"
341
- },
342
- {
343
- "internalType": "enum ActionType",
344
- "name": "action",
345
- "type": "uint8"
346
- },
347
- {
348
- "components": [
349
- {
350
- "internalType": "enum StrategyFlag",
351
- "name": "iyFlag",
352
- "type": "uint8"
353
- },
354
- {
355
- "internalType": "enum StrategyFlag",
356
- "name": "syRatioFlag",
357
- "type": "uint8"
358
- }
359
- ],
360
- "internalType": "struct StrategyState",
361
- "name": "oldState",
362
- "type": "tuple"
363
- },
364
- {
365
- "components": [
366
- {
367
- "internalType": "uint256",
368
- "name": "guessMin",
369
- "type": "uint256"
370
- },
371
- {
372
- "internalType": "uint256",
373
- "name": "guessMax",
374
- "type": "uint256"
375
- },
376
- {
377
- "internalType": "uint256",
378
- "name": "guessOffchain",
379
- "type": "uint256"
380
- },
381
- {
382
- "internalType": "uint256",
383
- "name": "maxIteration",
384
- "type": "uint256"
385
- },
386
- {
387
- "internalType": "uint256",
388
- "name": "eps",
389
- "type": "uint256"
390
- }
391
- ],
392
- "internalType": "struct ApproxParams",
393
- "name": "botParams",
394
- "type": "tuple"
395
- },
396
- {
397
- "components": [
398
- {
399
- "internalType": "uint256",
400
- "name": "guessMin",
401
- "type": "uint256"
402
- },
403
- {
404
- "internalType": "uint256",
405
- "name": "guessMax",
406
- "type": "uint256"
407
- },
408
- {
409
- "internalType": "uint256",
410
- "name": "guessOffchain",
411
- "type": "uint256"
412
- },
413
- {
414
- "internalType": "uint256",
415
- "name": "maxIteration",
416
- "type": "uint256"
417
- },
418
- {
419
- "internalType": "uint256",
420
- "name": "eps",
421
- "type": "uint256"
422
- }
423
- ],
424
- "internalType": "struct ApproxParams",
425
- "name": "intParams",
426
- "type": "tuple"
427
- }
428
- ],
429
- "name": "binarySearchUntilSwitchState",
430
- "outputs": [
431
- {
432
- "internalType": "uint256",
433
- "name": "",
434
- "type": "uint256"
435
- }
436
- ],
437
- "stateMutability": "pure",
438
- "type": "function"
439
- },
440
- {
441
- "inputs": [
442
- {
443
- "components": [
444
- {
445
- "internalType": "uint256",
446
- "name": "lpBalance",
447
- "type": "uint256"
448
- },
449
- {
450
- "internalType": "uint256",
451
- "name": "ytBalance",
452
- "type": "uint256"
453
- },
454
- {
455
- "internalType": "uint256",
456
- "name": "syBalance",
457
- "type": "uint256"
458
- }
459
- ],
460
- "internalType": "struct BotState",
461
- "name": "bot",
462
- "type": "tuple"
463
- },
464
- {
465
- "components": [
466
- {
467
- "components": [
468
- {
469
- "internalType": "int256",
470
- "name": "totalPt",
471
- "type": "int256"
472
- },
473
- {
474
- "internalType": "int256",
475
- "name": "totalSy",
476
- "type": "int256"
477
- },
478
- {
479
- "internalType": "int256",
480
- "name": "totalLp",
481
- "type": "int256"
482
- },
483
- {
484
- "internalType": "address",
485
- "name": "treasury",
486
- "type": "address"
487
- },
488
- {
489
- "internalType": "int256",
490
- "name": "scalarRoot",
491
- "type": "int256"
492
- },
493
- {
494
- "internalType": "uint256",
495
- "name": "expiry",
496
- "type": "uint256"
497
- },
498
- {
499
- "internalType": "uint256",
500
- "name": "lnFeeRateRoot",
501
- "type": "uint256"
502
- },
503
- {
504
- "internalType": "uint256",
505
- "name": "reserveFeePercent",
506
- "type": "uint256"
507
- },
508
- {
509
- "internalType": "uint256",
510
- "name": "lastLnImpliedRate",
511
- "type": "uint256"
512
- }
513
- ],
514
- "internalType": "struct MarketState",
515
- "name": "state",
516
- "type": "tuple"
517
- },
518
- {
519
- "internalType": "PYIndex",
520
- "name": "index",
521
- "type": "uint256"
522
- },
523
- {
524
- "internalType": "uint256",
525
- "name": "blockTime",
526
- "type": "uint256"
527
- }
528
- ],
529
- "internalType": "struct MarketExtState",
530
- "name": "marketExt",
531
- "type": "tuple"
532
- },
533
- {
534
- "components": [
535
- {
536
- "internalType": "uint256",
537
- "name": "lowerIyLimit",
538
- "type": "uint256"
539
- },
540
- {
541
- "internalType": "uint256",
542
- "name": "upperIyLimit",
543
- "type": "uint256"
544
- },
545
- {
546
- "internalType": "uint256",
547
- "name": "floatingSyRatioLimit",
548
- "type": "uint256"
549
- },
550
- {
551
- "internalType": "uint256",
552
- "name": "ytPtRatioLimit",
553
- "type": "uint256"
554
- }
555
- ],
556
- "internalType": "struct LongTradingSpecs",
557
- "name": "specs",
558
- "type": "tuple"
559
- }
560
- ],
561
- "name": "strategyState",
562
- "outputs": [
563
- {
564
- "components": [
565
- {
566
- "internalType": "enum StrategyFlag",
567
- "name": "iyFlag",
568
- "type": "uint8"
569
- },
570
- {
571
- "internalType": "enum StrategyFlag",
572
- "name": "syRatioFlag",
573
- "type": "uint8"
574
- }
575
- ],
576
- "internalType": "struct StrategyState",
577
- "name": "currentState",
578
- "type": "tuple"
579
- }
580
- ],
581
- "stateMutability": "pure",
582
- "type": "function"
583
- }
584
- ],
585
- "bytecode": "0x608060405234801561001057600080fd5b506133ad806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806333cace2a14610046578063a546c1d11461006f578063f829d9e414610090575b600080fd5b610059610054366004612ec4565b6100b0565b6040516100669190612f06565b60405180910390f35b61008261007d3660046130db565b610194565b604051908152602001610066565b6100a361009e366004613173565b61048d565b60405161006691906131cf565b60006001825160028111156100c7576100c7612ef0565b0361010a576002826020015160028111156100e4576100e4612ef0565b036100f15750600061018e565b82516000036101025750600561018e565b50600461018e565b60008251600281111561011f5761011f612ef0565b036101515760028260200151600281111561013c5761013c612ef0565b036101495750600161018e565b50600561018e565b60028260200151600281111561016957610169612ef0565b036101765750600261018e565b826020015160000361018a5750600561018e565b5060035b92915050565b6000806040518060a001604052808a81526020018981526020018881526020018760058111156101c6576101c6612ef0565b81526020018690526040850151909150156102635760006102038560800151670de0b6b3a76400006101f89190613211565b604087015190610572565b9050600261021683876040015187610595565b600281111561022757610227612ef0565b14801561024f5750600161023c838387610595565b600281111561024d5761024d612ef0565b145b15610261575050506040820151610482565b505b60006102708a8a896105e5565b9050808560200151111561028657602085018190525b6020850151855111156102d1578660058111156102a5576102a5612ef0565b8551602087015160405163f25ccea360e01b81526102c893929190600401613224565b60405180910390fd5b60016102e283876020015187610595565b60028111156102f3576102f3612ef0565b03610305575050506020820151610482565b50600061031782866000015186610595565b9050600081600281111561032d5761032d612ef0565b036103615786600581111561034457610344612ef0565b8551604051630cf4fb5360e31b81526102c892919060040161323a565b600281600281111561037557610375612ef0565b0361038557505082519050610482565b5060005b84606001518110156104685760006002866000015187602001516103ad9190613211565b6103b7919061325e565b86516103c39190613272565b905060016103d2848388610595565b60028111156103e3576103e3612ef0565b036103f0578086526103f8565b602086018190525b61040f8660000151876020015188608001516106a0565b1561045757600061042584886020015188610595565b600281111561043657610436612ef0565b03610448575050835191506104829050565b85602001519350505050610482565b5061046181613285565b9050610389565b5060405163fef33c9d60e01b815260040160405180910390fd5b979650505050505050565b610495612d16565b60006104a0846106d4565b85519091506000906104b3908690610721565b9150506000816000146104d45760208701516104cf9083610794565b6104d8565b6000195b8551909150831015610503578360015b908160028111156104fb576104fb612ef0565b90525061052b565b8285602001511080156105195750846060015181115b15610526578360026104e8565b600084525b600061054561053a89896107ba565b60408a015190610794565b9050856040015181111561055f5760026020860152610567565b600060208601525b505050509392505050565b60008061057f838561329e565b9050670de0b6b3a7640000815b04949350505050565b60008060006105a5868686610896565b91509150816105b9576000925050506105de565b6105c78660800151826109c4565b156105d7576001925050506105de565b6002925050505b9392505050565b6000808260058111156105fa576105fa612ef0565b0361060f5761060883610a29565b90506105de565b600182600581111561062357610623612ef0565b03610633575060408301516105de565b600282600581111561064757610647612ef0565b036106555761060883610a64565b600382600581111561066957610669612ef0565b036106775761060883610a64565b600482600581111561068b5761068b612ef0565b03610698575082516105de565b5060006105de565b60008284111580156106cc57506106c8836106c384670de0b6b3a7640000613211565b610572565b8410155b949350505050565b6000670de0b6b3a76400006107176107088460400151856000015160a001516106fd9190613211565b6301e1338090610794565b61071185610a8a565b90610ad7565b61018e9190613211565b600080610735846000015160400151610c8a565b84516020015161074490610c8a565b61074e908561329e565b610758919061325e565b915061076b846000015160400151610c8a565b84515161077790610c8a565b610781908561329e565b61078b919061325e565b90509250929050565b6000806107a9670de0b6b3a76400008561329e565b905082818161058c5761058c613248565b60008060006107d685600001518561072190919063ffffffff16565b9150915060008286604001516107ec9190613272565b905085602001518211610842576108038583610c9d565b61080d9082613272565b90506108318287602001516108229190613211565b61082b87610caf565b90610ced565b61083b9082613272565b905061088d565b6020860151610852908690610c9d565b61085c9082613272565b90506108808660200151836108719190613211565b61087a87610caf565b90610d48565b61088a9082613272565b90505b95945050505050565b60006108a0612d16565b60006108af8660000151610d6c565b905060006108c08760200151610caf565b90506000876060015160058111156108da576108da612ef0565b036108f1576108ea828288610db4565b93506109a2565b60018760600151600581111561090957610909612ef0565b03610919576108ea828288610e10565b60028760600151600581111561093157610931612ef0565b03610941576108ea828288610e83565b60038760600151600581111561095957610959612ef0565b03610969576108ea828288610ed2565b60048760600151600581111561098157610981612ef0565b0361099d576108ea818761099488610f0d565b85929190610f81565b600093505b83156109ba576109b78282896040015161048d565b92505b5050935093915050565b805160009060028111156109da576109da612ef0565b835160028111156109ed576109ed612ef0565b1480156105de575081602001516002811115610a0b57610a0b612ef0565b83602001516002811115610a2157610a21612ef0565b149392505050565b805160208201516040830151600092600a92610a4f92610a4a918391610fb6565b6110b0565b610a5a90600961329e565b61018e919061325e565b60208101516040820151825160009261018e92610a82929190610fb6565b835151611134565b6020810151604082015182516000928392610aa6929190610fb6565b90506000610acc84600001516000015183602001518460000151856040015160006111c8565b90506106cc81610c8a565b600081600003610af05750670de0b6b3a764000061018e565b82600003610b005750600061018e565b600160ff1b8310610b455760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b60448201526064016102c8565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f765328310610b9f5760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b60448201526064016102c8565b826000670c7d713b49da000083138015610bc05750670f43fc2c04ee000083125b15610bf7576000610bd084611279565b9050670de0b6b3a764000080820784020583670de0b6b3a764000083050201915050610c05565b81610c0184611398565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590610c33575068070c1cc73b00c800008113155b610c775760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b60448201526064016102c8565b610c808161173b565b9695505050505050565b600080821215610c9957600080fd5b5090565b60208201516000906105de9083611b50565b610cb7612d2d565b6040518060600160405280610ccf8460000151611b5c565b81526020018360200151815260200183604001518152509050919050565b6020820151604083015183516000928392610d0b9291908690611bd9565b505090506000610d28828660200151611c3290919063ffffffff16565b90506000610d368286613211565b6020870151909150610c809082611b50565b602082015160408301518351600092610d62928590611c3f565b5090949350505050565b610d9060405180606001604052806000815260200160008152602001600081525090565b50604080516060810182528251815260208084015190820152918101519082015290565b600080610dc18484611c65565b90508460400151811115610dd95760009150506105de565b8085604001818151610deb9190613211565b905250602085018051849190610e02908390613272565b905250600195945050505050565b60008360400151821115610e26575060006105de565b600080610e338585611cac565b915091508386604001818151610e499190613211565b905250855182908790610e5d908390613272565b905250602086018051829190610e74908390613272565b90525060019695505050505050565b60008080610e918585611d46565b915091508560400151811115610eac576000925050506105de565b8086604001818151610ebe9190613211565b905250855182908790610e74908390613272565b60008080610ee08585611dda565b915091508560200151811115610efb576000925050506105de565b8086602001818151610ebe9190613211565b610f3f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b8351600090831115610f95575060006106cc565b6000610fa2858585611eee565b90508386600001818151610e5d9190613211565b610fe16040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106110055760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516110179190613211565b90506110238582611f8f565b82526020850151611035908590611ff0565b60208301528451158061104a57506020820151155b15611071578451602083015160405163b1c4aefb60e01b81526102c892919060040161323a565b61108f85600001518661010001518460200151856000015185612027565b604083015260c08501516110a390826120a8565b6060830152509392505050565b600080600090506000600184602001516110ca9190613211565b90505b80821461112c57600060026110e28385613272565b6110ed906001613272565b6110f7919061325e565b9050600061110a868860000151846120dc565b12156111225761111b600182613211565b9150611126565b8092505b506110cd565b509392505050565b60008061116161115c85600001518660400151876060015161115691906132b5565b906121ce565b61173b565b9050600061118161117a670de0b6b3a7640000846132d5565b83906121f1565b9050600061119f86602001518661119891906132d5565b83906121ce565b905060006111ad82876132b5565b90506103e86111be826103e761329e565b610482919061325e565b6000806111d58784612217565b905060006111e661117a888a6132d5565b9050670d529ae9e860000081131561121d5780670d529ae9e8600000604051637e34684f60e11b81526004016102c892919061323a565b60006112288261225e565b90508561123582896121f1565b61123f91906132d5565b9350670de0b6b3a764000084121561126d5760405163329e322960e21b8152600481018590526024016102c8565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff19850102816112ba576112ba613248565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156113d9576113d0826a0c097ce7bc90715b34b9f160241b816113ca576113ca613248565b05611398565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126114245772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b831261145b576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff008400083126114a3576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a70083126114de576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261151557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e2831261154c57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126115815768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb4174612111083126115ac57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d83126115e1576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611616576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b286603831261164a576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac831261167e576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816116a7576116a7613248565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff198212158015611760575068070c1cc73b00c800008213155b61179f5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016102c8565b60008212156117d7576117b48260000361173b565b6a0c097ce7bc90715b34b9f160241b816117d0576117d0613248565b0592915050565b60006806f05b59d3b2000000831261181557506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61184b565b6803782dace9d9000000831261184757506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061184b565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261189b5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126118d7576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261191157682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c400000841261194b576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261198457680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126119bd5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126119f6576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611a2f5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60006105de83836122b1565b611b64612d54565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b600080600080600080611bf68a8a611bf08b6122d0565b8a6122e6565b925092509250611c0d611c0884612379565b610c8a565b9550611c1882610c8a565b9450611c2381610c8a565b93505050509450945094915050565b6000826106cc8184612387565b600080600080600080611c568a8a611bf08b6123b3565b925092509250611c0d83610c8a565b6020820151604083015183516000928392611c839291908690611c3f565b505090506000611ca08486602001516123ca90919063ffffffff16565b905061088d81836123d6565b6000806000611cd0611cc5866000015160200151610c8a565b6020870151906123ed565b855151611cdc90610c8a565b611ce69190613272565b855151611cf290610c8a565b611cfc908661329e565b611d06919061325e565b6020860151909150611d1890826123ed565b9150611d37611d278286613211565b60408701518751919085906123f9565b50909793965092945050505050565b6000806000611d6e85602001518587604001518860000151611bd9909392919063ffffffff16565b5050855151909150600090611d8290610c8a565b865160200151611d9190610c8a565b611d9b908761329e565b611da5919061325e565b60408701518751919250611dbd9190839088906123f9565b50909550611dcf915082905083613272565b925050509250929050565b6000806000611e0285602001518587604001518860000151611bd9909392919063ffffffff16565b505060208601519091506000611e18828461329e565b611e2a670de0b6b3a76400008861329e565b611e349190613211565b875151909150600090611e4690610c8a565b83611e588a6000015160200151610c8a565b611e62919061329e565b611e6c919061325e565b611e7e90670de0b6b3a7640000613272565b90506000611e8c828461325e565b9050611e988189613211565b95506000611eb3878b60200151611b5090919063ffffffff16565b90506000611ec18783613211565b60408c01518c51919250611ed99190839086906123f9565b50909d999c50989a5050505050505050505050565b825160009081908190611f019086612464565b915091506000611f1e8388602001516123ed90919063ffffffff16565b90506000611f2c8284613272565b9050600080611f538a60200151848c60400151611f488c610f0d565b8e5193929190612494565b5060208c015160408d01518d51939550919350611f7292918490611c3f565b5050508184611f819190613272565b9a9950505050505050505050565b6000611f9a826122d0565b611fb1611fac6201518061016d61329e565b6122d0565b8460800151611fc091906132fd565b611fca919061332d565b90506000811361018e57604051630e520c3b60e11b8152600481018290526024016102c8565b60008060008312612002576001612006565b6000195b905061201d611fac85612018866125b5565b6125cc565b6106cc90826132fd565b60008061203486846120a8565b9050670de0b6b3a76400008112156120625760405163329e322960e21b8152600481018290526024016102c8565b6000612078612071878a6132d5565b89906121f1565b905060006120858261225e565b905061209181876121f1565b61209b90846132b5565b9998505050505050505050565b6000806120ba6201518061016d61329e565b6120c4848661329e565b6120ce919061325e565b90506106cc61115c826122d0565b6000808285602001516120ef91906132b5565b905060006120fd85856132d5565b905060008213801561210f5750600081135b6121505760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016102c8565b600061217e61215f84846132fd565b602089015161216e90896132d5565b61217890886132fd565b906121f1565b9050600061219461218f84866121f1565b6125e1565b88519091506000906121af90670de0b6b3a7640000906121f1565b90506121bf8161115684866132b5565b896040015161209b91906132b5565b6000806121db83856132fd565b9050670de0b6b3a7640000815b05949350505050565b600080612206670de0b6b3a7640000856132fd565b90508281816121e8576121e8613248565b6000818312156122545760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016102c8565b6105de82846132b5565b6000670de0b6b3a764000082036122885760405163a9c8b14d60e01b815260040160405180910390fd5b60006122a661229f84670de0b6b3a76400006132b5565b84906121f1565b90506105de816125e1565b6000826122c6670de0b6b3a76400008461329e565b6105de919061325e565b60006001600160ff1b03821115610c9957600080fd5b60008060006122f98760a0015185101590565b156123175760405163b2094b5960e01b815260040160405180910390fd5b8651851261233d578651604051632185509b60e21b81526102c89190879060040161323a565b600061234a888887610fb6565b905061235888828989612672565b9195509350915061236e8882898988878b6127c6565b509450945094915050565b600061018e826000196132fd565b6000670de0b6b3a764000060018161239f868661329e565b6123a99190613272565b6122c69190613211565b60006123be826122d0565b61018e906000196132fd565b60006105de8383612858565b6000818310156123e75760006105de565b50900390565b60006105de83836125cc565b6000806000806000806000806124218c6124128d6122d0565b61241b8d6122d0565b8c612870565b935093509350935061243284610c8a565b975061243d83610c8a565b965061244882610c8a565b955061245381610c8a565b945050505050945094509450949050565b60008060008061247c86612477876122d0565b612a1e565b9150915061248982610c8a565b9350611dcf81610c8a565b60008080806124a4898988610fb6565b905084604001516000036124e65784516124be9088612aea565b855260208501516124d8906124d38b846110b0565b612b00565b60208601526124e685612b0f565b60005b85606001518110156125905760006125018783612b5d565b90506000806125128d868e86612bc9565b50909250905060006125248d846123ed565b905060006125328286613211565b90508c81116125695761254a818e8d608001516106a0565b15612561575097509195509093506125aa92505050565b848b5261257a565b612574600186613211565b60208c01525b50505050508061258990613285565b90506124e9565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000808213610c99576125c78261335b565b61018e565b6000670de0b6b3a76400006122c6848461329e565b60008082136126225760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016102c8565b670c7d713b49da0000821380156126405750670f43fc2c04ee000082125b1561266457670de0b6b3a764000061265783611279565b816117d0576117d0613248565b61018e82611398565b919050565b6000806000806126958860000151886020015189600001518a60400151896111c8565b905060006126ab6126a687846121f1565b612379565b6060890151909150600087131561271a5760006126c884836121f1565b9050670de0b6b3a76400008112156126f65760405163329e322960e21b8152600481018290526024016102c8565b61271261270b83670de0b6b3a76400006132b5565b84906121ce565b915050612747565b6127448161273081670de0b6b3a76400006132b5565b61273a90856132fd565b6126a6919061332d565b90505b600060646127588c60e001516122d0565b61276290846132fd565b61276c919061332d565b9050600061277a83856132b5565b9050600081126127935761278e8a82612bfa565b61279d565b61279d8a82612c27565b97506127a98a84612bfa565b96506127b58a83612bfa565b955050505050509450945094915050565b6000818860a001516127d89190613211565b88519091506127e79086612217565b88526128016127f684866132d5565b60208a015190612217565b60208901819052885161282691612819908990611ff0565b895160408b015185612c54565b610100890181905260000361284e57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b60008260018161239f670de0b6b3a76400008661329e565b6000808080861580612880575085155b1561289e576040516325daaec360e01b815260040160405180910390fd5b60a088015185106128c25760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003612905576103e86128e9611fac6128e4611c088a8c6132fd565b612ca7565b6128f391906132b5565b92506103e893508691508590506129a8565b875160408901516000919061291a90896132fd565b612924919061332d565b9050600089602001518a604001518a61293d91906132fd565b612947919061332d565b90508082121561297d578194508792508960400151858b6020015161296c91906132fd565b612976919061332d565b93506129a5565b8094508893508960400151858b6000015161299891906132fd565b6129a2919061332d565b92505b50505b600083136129c957604051631997ea8d60e31b815260040160405180910390fd5b81886020018181516129db91906132d5565b9052508751819089906129ef9083906132d5565b9052506129fc84846132d5565b88604001818151612a0d91906132d5565b905250929791965094509092509050565b60008082600003612a42576040516325daaec360e01b815260040160405180910390fd5b60408401516020850151612a5690856132fd565b612a60919061332d565b6040850151855191935090612a7590856132fd565b612a7f919061332d565b905081158015612a8d575080155b15612aab57604051631997ea8d60e31b815260040160405180910390fd5b6040840151612aba9084612217565b60408501528351612acb9082612217565b84526020840151612adc9083612217565b602090940193909352929050565b6000818311612af957816105de565b5090919050565b6000818310612af957816105de565b602081015181511180612b2d5750670de0b6b3a76400008160800151115b15612b5a57805160208201516080830151604051632cc06bc160e21b81526102c893929190600401613224565b50565b600081158015612b705750604083015115155b15612b805750604082015161018e565b6020830151835111612bb05760208301518351600291612b9f91613272565b612ba9919061325e565b905061018e565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080612be78989612bde8a61335b565b8d929190612672565b919c909b50909950975050505050505050565b60008060008312612c0c576001612c10565b6000195b905061201d611fac85612c22866125b5565b6122b1565b60008060008312612c39576001612c3d565b6000195b905061201d611fac85612c4f866125b5565b612858565b600080612c658787878760006111c8565b90506000612c75611c08836125e1565b905083612c876201518061016d61329e565b612c91908361329e565b612c9b919061325e565b98975050505050505050565b60006003821115612d085750806000612cc160028361325e565b612ccc906001613272565b90505b81811015612d0257905080600281612ce7818661325e565b612cf19190613272565b612cfb919061325e565b9050612ccf565b50919050565b811561266d57506001919050565b604080518082019091526000808252602082015290565b6040518060600160405280612d40612d54565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051606081016001600160401b0381118282101715612dd957634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612dd957634e487b7160e01b600052604160045260246000fd5b600060608284031215612e2257600080fd5b612e2a612da9565b905081358152602082013560208201526040820135604082015292915050565b80356003811061266d57600080fd5b600060408284031215612e6b57600080fd5b604080519081016001600160401b0381118282101715612e9b57634e487b7160e01b600052604160045260246000fd5b604052905080612eaa83612e4a565b8152612eb860208401612e4a565b60208201525092915050565b60008060a08385031215612ed757600080fd5b612ee18484612e10565b915061078b8460608501612e59565b634e487b7160e01b600052602160045260246000fd5b6020810160068310612f1a57612f1a612ef0565b91905290565b80356001600160a01b038116811461266d57600080fd5b6000818303610160811215612f4b57600080fd5b612f53612da9565b915061012080821215612f6557600080fd5b612f6d612ddf565b9150833582526020840135602083015260408401356040830152612f9360608501612f20565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b600060808284031215612ffd57600080fd5b604051608081016001600160401b038111828210171561302d57634e487b7160e01b600052604160045260246000fd5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600060a0828403121561307057600080fd5b60405160a081016001600160401b03811182821017156130a057634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060008060006103e0888a0312156130f757600080fd5b6131018989612e10565b96506131108960608a01612f37565b9550613120896101c08a01612feb565b94506102408801356006811061313557600080fd5b9350613145896102608a01612e59565b9250613155896102a08a0161305e565b9150613165896103408a0161305e565b905092959891949750929550565b6000806000610240848603121561318957600080fd5b6131938585612e10565b92506131a28560608601612f37565b91506131b2856101c08601612feb565b90509250925092565b600381106131cb576131cb612ef0565b9052565b60006040820190506131e28284516131bb565b60208301516131f460208401826131bb565b5092915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561018e5761018e6131fb565b9283526020830191909152604082015260600190565b918252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b60008261326d5761326d613248565b500490565b8082018082111561018e5761018e6131fb565b600060018201613297576132976131fb565b5060010190565b808202811582820484141761018e5761018e6131fb565b81810360008312801583831316838312821617156131f4576131f46131fb565b80820182811260008312801582168215821617156132f5576132f56131fb565b505092915050565b80820260008212600160ff1b84141615613319576133196131fb565b818105831482151761018e5761018e6131fb565b60008261333c5761333c613248565b600160ff1b821460001984141615613356576133566131fb565b500590565b6000600160ff1b8201613370576133706131fb565b506000039056fea26469706673582212204250f3d5294f25b634d1be5212fd48c8de4f6a2e2109db65d251c7a64c84b17064736f6c63430008110033",
586
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806333cace2a14610046578063a546c1d11461006f578063f829d9e414610090575b600080fd5b610059610054366004612ec4565b6100b0565b6040516100669190612f06565b60405180910390f35b61008261007d3660046130db565b610194565b604051908152602001610066565b6100a361009e366004613173565b61048d565b60405161006691906131cf565b60006001825160028111156100c7576100c7612ef0565b0361010a576002826020015160028111156100e4576100e4612ef0565b036100f15750600061018e565b82516000036101025750600561018e565b50600461018e565b60008251600281111561011f5761011f612ef0565b036101515760028260200151600281111561013c5761013c612ef0565b036101495750600161018e565b50600561018e565b60028260200151600281111561016957610169612ef0565b036101765750600261018e565b826020015160000361018a5750600561018e565b5060035b92915050565b6000806040518060a001604052808a81526020018981526020018881526020018760058111156101c6576101c6612ef0565b81526020018690526040850151909150156102635760006102038560800151670de0b6b3a76400006101f89190613211565b604087015190610572565b9050600261021683876040015187610595565b600281111561022757610227612ef0565b14801561024f5750600161023c838387610595565b600281111561024d5761024d612ef0565b145b15610261575050506040820151610482565b505b60006102708a8a896105e5565b9050808560200151111561028657602085018190525b6020850151855111156102d1578660058111156102a5576102a5612ef0565b8551602087015160405163f25ccea360e01b81526102c893929190600401613224565b60405180910390fd5b60016102e283876020015187610595565b60028111156102f3576102f3612ef0565b03610305575050506020820151610482565b50600061031782866000015186610595565b9050600081600281111561032d5761032d612ef0565b036103615786600581111561034457610344612ef0565b8551604051630cf4fb5360e31b81526102c892919060040161323a565b600281600281111561037557610375612ef0565b0361038557505082519050610482565b5060005b84606001518110156104685760006002866000015187602001516103ad9190613211565b6103b7919061325e565b86516103c39190613272565b905060016103d2848388610595565b60028111156103e3576103e3612ef0565b036103f0578086526103f8565b602086018190525b61040f8660000151876020015188608001516106a0565b1561045757600061042584886020015188610595565b600281111561043657610436612ef0565b03610448575050835191506104829050565b85602001519350505050610482565b5061046181613285565b9050610389565b5060405163fef33c9d60e01b815260040160405180910390fd5b979650505050505050565b610495612d16565b60006104a0846106d4565b85519091506000906104b3908690610721565b9150506000816000146104d45760208701516104cf9083610794565b6104d8565b6000195b8551909150831015610503578360015b908160028111156104fb576104fb612ef0565b90525061052b565b8285602001511080156105195750846060015181115b15610526578360026104e8565b600084525b600061054561053a89896107ba565b60408a015190610794565b9050856040015181111561055f5760026020860152610567565b600060208601525b505050509392505050565b60008061057f838561329e565b9050670de0b6b3a7640000815b04949350505050565b60008060006105a5868686610896565b91509150816105b9576000925050506105de565b6105c78660800151826109c4565b156105d7576001925050506105de565b6002925050505b9392505050565b6000808260058111156105fa576105fa612ef0565b0361060f5761060883610a29565b90506105de565b600182600581111561062357610623612ef0565b03610633575060408301516105de565b600282600581111561064757610647612ef0565b036106555761060883610a64565b600382600581111561066957610669612ef0565b036106775761060883610a64565b600482600581111561068b5761068b612ef0565b03610698575082516105de565b5060006105de565b60008284111580156106cc57506106c8836106c384670de0b6b3a7640000613211565b610572565b8410155b949350505050565b6000670de0b6b3a76400006107176107088460400151856000015160a001516106fd9190613211565b6301e1338090610794565b61071185610a8a565b90610ad7565b61018e9190613211565b600080610735846000015160400151610c8a565b84516020015161074490610c8a565b61074e908561329e565b610758919061325e565b915061076b846000015160400151610c8a565b84515161077790610c8a565b610781908561329e565b61078b919061325e565b90509250929050565b6000806107a9670de0b6b3a76400008561329e565b905082818161058c5761058c613248565b60008060006107d685600001518561072190919063ffffffff16565b9150915060008286604001516107ec9190613272565b905085602001518211610842576108038583610c9d565b61080d9082613272565b90506108318287602001516108229190613211565b61082b87610caf565b90610ced565b61083b9082613272565b905061088d565b6020860151610852908690610c9d565b61085c9082613272565b90506108808660200151836108719190613211565b61087a87610caf565b90610d48565b61088a9082613272565b90505b95945050505050565b60006108a0612d16565b60006108af8660000151610d6c565b905060006108c08760200151610caf565b90506000876060015160058111156108da576108da612ef0565b036108f1576108ea828288610db4565b93506109a2565b60018760600151600581111561090957610909612ef0565b03610919576108ea828288610e10565b60028760600151600581111561093157610931612ef0565b03610941576108ea828288610e83565b60038760600151600581111561095957610959612ef0565b03610969576108ea828288610ed2565b60048760600151600581111561098157610981612ef0565b0361099d576108ea818761099488610f0d565b85929190610f81565b600093505b83156109ba576109b78282896040015161048d565b92505b5050935093915050565b805160009060028111156109da576109da612ef0565b835160028111156109ed576109ed612ef0565b1480156105de575081602001516002811115610a0b57610a0b612ef0565b83602001516002811115610a2157610a21612ef0565b149392505050565b805160208201516040830151600092600a92610a4f92610a4a918391610fb6565b6110b0565b610a5a90600961329e565b61018e919061325e565b60208101516040820151825160009261018e92610a82929190610fb6565b835151611134565b6020810151604082015182516000928392610aa6929190610fb6565b90506000610acc84600001516000015183602001518460000151856040015160006111c8565b90506106cc81610c8a565b600081600003610af05750670de0b6b3a764000061018e565b82600003610b005750600061018e565b600160ff1b8310610b455760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b60448201526064016102c8565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f765328310610b9f5760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b60448201526064016102c8565b826000670c7d713b49da000083138015610bc05750670f43fc2c04ee000083125b15610bf7576000610bd084611279565b9050670de0b6b3a764000080820784020583670de0b6b3a764000083050201915050610c05565b81610c0184611398565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590610c33575068070c1cc73b00c800008113155b610c775760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b60448201526064016102c8565b610c808161173b565b9695505050505050565b600080821215610c9957600080fd5b5090565b60208201516000906105de9083611b50565b610cb7612d2d565b6040518060600160405280610ccf8460000151611b5c565b81526020018360200151815260200183604001518152509050919050565b6020820151604083015183516000928392610d0b9291908690611bd9565b505090506000610d28828660200151611c3290919063ffffffff16565b90506000610d368286613211565b6020870151909150610c809082611b50565b602082015160408301518351600092610d62928590611c3f565b5090949350505050565b610d9060405180606001604052806000815260200160008152602001600081525090565b50604080516060810182528251815260208084015190820152918101519082015290565b600080610dc18484611c65565b90508460400151811115610dd95760009150506105de565b8085604001818151610deb9190613211565b905250602085018051849190610e02908390613272565b905250600195945050505050565b60008360400151821115610e26575060006105de565b600080610e338585611cac565b915091508386604001818151610e499190613211565b905250855182908790610e5d908390613272565b905250602086018051829190610e74908390613272565b90525060019695505050505050565b60008080610e918585611d46565b915091508560400151811115610eac576000925050506105de565b8086604001818151610ebe9190613211565b905250855182908790610e74908390613272565b60008080610ee08585611dda565b915091508560200151811115610efb576000925050506105de565b8086602001818151610ebe9190613211565b610f3f6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b8351600090831115610f95575060006106cc565b6000610fa2858585611eee565b90508386600001818151610e5d9190613211565b610fe16040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106110055760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516110179190613211565b90506110238582611f8f565b82526020850151611035908590611ff0565b60208301528451158061104a57506020820151155b15611071578451602083015160405163b1c4aefb60e01b81526102c892919060040161323a565b61108f85600001518661010001518460200151856000015185612027565b604083015260c08501516110a390826120a8565b6060830152509392505050565b600080600090506000600184602001516110ca9190613211565b90505b80821461112c57600060026110e28385613272565b6110ed906001613272565b6110f7919061325e565b9050600061110a868860000151846120dc565b12156111225761111b600182613211565b9150611126565b8092505b506110cd565b509392505050565b60008061116161115c85600001518660400151876060015161115691906132b5565b906121ce565b61173b565b9050600061118161117a670de0b6b3a7640000846132d5565b83906121f1565b9050600061119f86602001518661119891906132d5565b83906121ce565b905060006111ad82876132b5565b90506103e86111be826103e761329e565b610482919061325e565b6000806111d58784612217565b905060006111e661117a888a6132d5565b9050670d529ae9e860000081131561121d5780670d529ae9e8600000604051637e34684f60e11b81526004016102c892919061323a565b60006112288261225e565b90508561123582896121f1565b61123f91906132d5565b9350670de0b6b3a764000084121561126d5760405163329e322960e21b8152600481018590526024016102c8565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff19850102816112ba576112ba613248565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156113d9576113d0826a0c097ce7bc90715b34b9f160241b816113ca576113ca613248565b05611398565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126114245772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b831261145b576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff008400083126114a3576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a70083126114de576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261151557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e2831261154c57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126115815768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb4174612111083126115ac57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d83126115e1576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611616576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b286603831261164a576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac831261167e576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816116a7576116a7613248565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff198212158015611760575068070c1cc73b00c800008213155b61179f5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016102c8565b60008212156117d7576117b48260000361173b565b6a0c097ce7bc90715b34b9f160241b816117d0576117d0613248565b0592915050565b60006806f05b59d3b2000000831261181557506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61184b565b6803782dace9d9000000831261184757506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061184b565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261189b5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126118d7576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261191157682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c400000841261194b576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261198457680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126119bd5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126119f6576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611a2f5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60006105de83836122b1565b611b64612d54565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b600080600080600080611bf68a8a611bf08b6122d0565b8a6122e6565b925092509250611c0d611c0884612379565b610c8a565b9550611c1882610c8a565b9450611c2381610c8a565b93505050509450945094915050565b6000826106cc8184612387565b600080600080600080611c568a8a611bf08b6123b3565b925092509250611c0d83610c8a565b6020820151604083015183516000928392611c839291908690611c3f565b505090506000611ca08486602001516123ca90919063ffffffff16565b905061088d81836123d6565b6000806000611cd0611cc5866000015160200151610c8a565b6020870151906123ed565b855151611cdc90610c8a565b611ce69190613272565b855151611cf290610c8a565b611cfc908661329e565b611d06919061325e565b6020860151909150611d1890826123ed565b9150611d37611d278286613211565b60408701518751919085906123f9565b50909793965092945050505050565b6000806000611d6e85602001518587604001518860000151611bd9909392919063ffffffff16565b5050855151909150600090611d8290610c8a565b865160200151611d9190610c8a565b611d9b908761329e565b611da5919061325e565b60408701518751919250611dbd9190839088906123f9565b50909550611dcf915082905083613272565b925050509250929050565b6000806000611e0285602001518587604001518860000151611bd9909392919063ffffffff16565b505060208601519091506000611e18828461329e565b611e2a670de0b6b3a76400008861329e565b611e349190613211565b875151909150600090611e4690610c8a565b83611e588a6000015160200151610c8a565b611e62919061329e565b611e6c919061325e565b611e7e90670de0b6b3a7640000613272565b90506000611e8c828461325e565b9050611e988189613211565b95506000611eb3878b60200151611b5090919063ffffffff16565b90506000611ec18783613211565b60408c01518c51919250611ed99190839086906123f9565b50909d999c50989a5050505050505050505050565b825160009081908190611f019086612464565b915091506000611f1e8388602001516123ed90919063ffffffff16565b90506000611f2c8284613272565b9050600080611f538a60200151848c60400151611f488c610f0d565b8e5193929190612494565b5060208c015160408d01518d51939550919350611f7292918490611c3f565b5050508184611f819190613272565b9a9950505050505050505050565b6000611f9a826122d0565b611fb1611fac6201518061016d61329e565b6122d0565b8460800151611fc091906132fd565b611fca919061332d565b90506000811361018e57604051630e520c3b60e11b8152600481018290526024016102c8565b60008060008312612002576001612006565b6000195b905061201d611fac85612018866125b5565b6125cc565b6106cc90826132fd565b60008061203486846120a8565b9050670de0b6b3a76400008112156120625760405163329e322960e21b8152600481018290526024016102c8565b6000612078612071878a6132d5565b89906121f1565b905060006120858261225e565b905061209181876121f1565b61209b90846132b5565b9998505050505050505050565b6000806120ba6201518061016d61329e565b6120c4848661329e565b6120ce919061325e565b90506106cc61115c826122d0565b6000808285602001516120ef91906132b5565b905060006120fd85856132d5565b905060008213801561210f5750600081135b6121505760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b60448201526064016102c8565b600061217e61215f84846132fd565b602089015161216e90896132d5565b61217890886132fd565b906121f1565b9050600061219461218f84866121f1565b6125e1565b88519091506000906121af90670de0b6b3a7640000906121f1565b90506121bf8161115684866132b5565b896040015161209b91906132b5565b6000806121db83856132fd565b9050670de0b6b3a7640000815b05949350505050565b600080612206670de0b6b3a7640000856132fd565b90508281816121e8576121e8613248565b6000818312156122545760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016102c8565b6105de82846132b5565b6000670de0b6b3a764000082036122885760405163a9c8b14d60e01b815260040160405180910390fd5b60006122a661229f84670de0b6b3a76400006132b5565b84906121f1565b90506105de816125e1565b6000826122c6670de0b6b3a76400008461329e565b6105de919061325e565b60006001600160ff1b03821115610c9957600080fd5b60008060006122f98760a0015185101590565b156123175760405163b2094b5960e01b815260040160405180910390fd5b8651851261233d578651604051632185509b60e21b81526102c89190879060040161323a565b600061234a888887610fb6565b905061235888828989612672565b9195509350915061236e8882898988878b6127c6565b509450945094915050565b600061018e826000196132fd565b6000670de0b6b3a764000060018161239f868661329e565b6123a99190613272565b6122c69190613211565b60006123be826122d0565b61018e906000196132fd565b60006105de8383612858565b6000818310156123e75760006105de565b50900390565b60006105de83836125cc565b6000806000806000806000806124218c6124128d6122d0565b61241b8d6122d0565b8c612870565b935093509350935061243284610c8a565b975061243d83610c8a565b965061244882610c8a565b955061245381610c8a565b945050505050945094509450949050565b60008060008061247c86612477876122d0565b612a1e565b9150915061248982610c8a565b9350611dcf81610c8a565b60008080806124a4898988610fb6565b905084604001516000036124e65784516124be9088612aea565b855260208501516124d8906124d38b846110b0565b612b00565b60208601526124e685612b0f565b60005b85606001518110156125905760006125018783612b5d565b90506000806125128d868e86612bc9565b50909250905060006125248d846123ed565b905060006125328286613211565b90508c81116125695761254a818e8d608001516106a0565b15612561575097509195509093506125aa92505050565b848b5261257a565b612574600186613211565b60208c01525b50505050508061258990613285565b90506124e9565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000808213610c99576125c78261335b565b61018e565b6000670de0b6b3a76400006122c6848461329e565b60008082136126225760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016102c8565b670c7d713b49da0000821380156126405750670f43fc2c04ee000082125b1561266457670de0b6b3a764000061265783611279565b816117d0576117d0613248565b61018e82611398565b919050565b6000806000806126958860000151886020015189600001518a60400151896111c8565b905060006126ab6126a687846121f1565b612379565b6060890151909150600087131561271a5760006126c884836121f1565b9050670de0b6b3a76400008112156126f65760405163329e322960e21b8152600481018290526024016102c8565b61271261270b83670de0b6b3a76400006132b5565b84906121ce565b915050612747565b6127448161273081670de0b6b3a76400006132b5565b61273a90856132fd565b6126a6919061332d565b90505b600060646127588c60e001516122d0565b61276290846132fd565b61276c919061332d565b9050600061277a83856132b5565b9050600081126127935761278e8a82612bfa565b61279d565b61279d8a82612c27565b97506127a98a84612bfa565b96506127b58a83612bfa565b955050505050509450945094915050565b6000818860a001516127d89190613211565b88519091506127e79086612217565b88526128016127f684866132d5565b60208a015190612217565b60208901819052885161282691612819908990611ff0565b895160408b015185612c54565b610100890181905260000361284e57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b60008260018161239f670de0b6b3a76400008661329e565b6000808080861580612880575085155b1561289e576040516325daaec360e01b815260040160405180910390fd5b60a088015185106128c25760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003612905576103e86128e9611fac6128e4611c088a8c6132fd565b612ca7565b6128f391906132b5565b92506103e893508691508590506129a8565b875160408901516000919061291a90896132fd565b612924919061332d565b9050600089602001518a604001518a61293d91906132fd565b612947919061332d565b90508082121561297d578194508792508960400151858b6020015161296c91906132fd565b612976919061332d565b93506129a5565b8094508893508960400151858b6000015161299891906132fd565b6129a2919061332d565b92505b50505b600083136129c957604051631997ea8d60e31b815260040160405180910390fd5b81886020018181516129db91906132d5565b9052508751819089906129ef9083906132d5565b9052506129fc84846132d5565b88604001818151612a0d91906132d5565b905250929791965094509092509050565b60008082600003612a42576040516325daaec360e01b815260040160405180910390fd5b60408401516020850151612a5690856132fd565b612a60919061332d565b6040850151855191935090612a7590856132fd565b612a7f919061332d565b905081158015612a8d575080155b15612aab57604051631997ea8d60e31b815260040160405180910390fd5b6040840151612aba9084612217565b60408501528351612acb9082612217565b84526020840151612adc9083612217565b602090940193909352929050565b6000818311612af957816105de565b5090919050565b6000818310612af957816105de565b602081015181511180612b2d5750670de0b6b3a76400008160800151115b15612b5a57805160208201516080830151604051632cc06bc160e21b81526102c893929190600401613224565b50565b600081158015612b705750604083015115155b15612b805750604082015161018e565b6020830151835111612bb05760208301518351600291612b9f91613272565b612ba9919061325e565b905061018e565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080612be78989612bde8a61335b565b8d929190612672565b919c909b50909950975050505050505050565b60008060008312612c0c576001612c10565b6000195b905061201d611fac85612c22866125b5565b6122b1565b60008060008312612c39576001612c3d565b6000195b905061201d611fac85612c4f866125b5565b612858565b600080612c658787878760006111c8565b90506000612c75611c08836125e1565b905083612c876201518061016d61329e565b612c91908361329e565b612c9b919061325e565b98975050505050505050565b60006003821115612d085750806000612cc160028361325e565b612ccc906001613272565b90505b81811015612d0257905080600281612ce7818661325e565b612cf19190613272565b612cfb919061325e565b9050612ccf565b50919050565b811561266d57506001919050565b604080518082019091526000808252602082015290565b6040518060600160405280612d40612d54565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051606081016001600160401b0381118282101715612dd957634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612dd957634e487b7160e01b600052604160045260246000fd5b600060608284031215612e2257600080fd5b612e2a612da9565b905081358152602082013560208201526040820135604082015292915050565b80356003811061266d57600080fd5b600060408284031215612e6b57600080fd5b604080519081016001600160401b0381118282101715612e9b57634e487b7160e01b600052604160045260246000fd5b604052905080612eaa83612e4a565b8152612eb860208401612e4a565b60208201525092915050565b60008060a08385031215612ed757600080fd5b612ee18484612e10565b915061078b8460608501612e59565b634e487b7160e01b600052602160045260246000fd5b6020810160068310612f1a57612f1a612ef0565b91905290565b80356001600160a01b038116811461266d57600080fd5b6000818303610160811215612f4b57600080fd5b612f53612da9565b915061012080821215612f6557600080fd5b612f6d612ddf565b9150833582526020840135602083015260408401356040830152612f9360608501612f20565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b600060808284031215612ffd57600080fd5b604051608081016001600160401b038111828210171561302d57634e487b7160e01b600052604160045260246000fd5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201525092915050565b600060a0828403121561307057600080fd5b60405160a081016001600160401b03811182821017156130a057634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060008060006103e0888a0312156130f757600080fd5b6131018989612e10565b96506131108960608a01612f37565b9550613120896101c08a01612feb565b94506102408801356006811061313557600080fd5b9350613145896102608a01612e59565b9250613155896102a08a0161305e565b9150613165896103408a0161305e565b905092959891949750929550565b6000806000610240848603121561318957600080fd5b6131938585612e10565b92506131a28560608601612f37565b91506131b2856101c08601612feb565b90509250925092565b600381106131cb576131cb612ef0565b9052565b60006040820190506131e28284516131bb565b60208301516131f460208401826131bb565b5092915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561018e5761018e6131fb565b9283526020830191909152604082015260600190565b918252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b60008261326d5761326d613248565b500490565b8082018082111561018e5761018e6131fb565b600060018201613297576132976131fb565b5060010190565b808202811582820484141761018e5761018e6131fb565b81810360008312801583831316838312821617156131f4576131f46131fb565b80820182811260008312801582168215821617156132f5576132f56131fb565b505092915050565b80820260008212600160ff1b84141615613319576133196131fb565b818105831482151761018e5761018e6131fb565b60008261333c5761333c613248565b600160ff1b821460001984141615613356576133566131fb565b500590565b6000600160ff1b8201613370576133706131fb565b506000039056fea26469706673582212204250f3d5294f25b634d1be5212fd48c8de4f6a2e2109db65d251c7a64c84b17064736f6c63430008110033",
587
- "linkReferences": {},
588
- "deployedLinkReferences": {}
589
- }