@venusprotocol/isolated-pools 1.0.0-dev.1 → 1.0.0-dev.2

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 (199) hide show
  1. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +4 -0
  2. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +215 -0
  3. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
  4. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  5. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  6. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +63 -0
  7. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
  8. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
  9. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +4 -0
  10. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +24 -0
  11. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +4 -0
  12. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +56 -0
  13. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  14. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +19 -0
  15. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +4 -0
  16. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +80 -0
  17. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  18. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
  19. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +4 -0
  20. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +113 -0
  21. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
  22. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
  23. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
  24. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
  25. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
  26. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
  27. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  28. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +10 -0
  29. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  30. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  31. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  32. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
  33. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  34. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  35. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
  36. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
  37. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
  38. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
  39. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +4 -0
  40. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +10 -0
  41. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +4 -0
  42. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +10 -0
  43. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
  44. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
  45. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  46. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
  47. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  48. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
  49. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +4 -0
  50. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +24 -0
  51. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
  52. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
  53. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
  54. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +86 -0
  55. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +4 -0
  56. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +10 -0
  57. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  58. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  59. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  60. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
  61. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +4 -0
  62. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.json +369 -0
  63. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  64. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  65. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  66. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  67. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +4 -0
  68. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +40 -0
  69. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +4 -0
  70. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +30 -0
  71. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +4 -0
  72. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +43 -0
  73. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +4 -0
  74. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +49 -0
  75. package/artifacts/build-info/16ab40c4151bb2c077b92cd42e217558.json +1 -0
  76. package/artifacts/build-info/f19d689bc99e63a20dd2a17a14e2b84a.json +1 -0
  77. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.dbg.json +4 -0
  78. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.json +276 -0
  79. package/artifacts/contracts/Comptroller.sol/Comptroller.dbg.json +4 -0
  80. package/artifacts/contracts/Comptroller.sol/Comptroller.json +1667 -0
  81. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +4 -0
  82. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.json +285 -0
  83. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.dbg.json +4 -0
  84. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.json +170 -0
  85. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.dbg.json +4 -0
  86. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.json +173 -0
  87. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.dbg.json +4 -0
  88. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.json +156 -0
  89. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.dbg.json +4 -0
  90. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.json +10 -0
  91. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.dbg.json +4 -0
  92. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.json +50 -0
  93. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.dbg.json +4 -0
  94. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.json +191 -0
  95. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.dbg.json +4 -0
  96. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.json +35 -0
  97. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.dbg.json +4 -0
  98. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.json +50 -0
  99. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.dbg.json +4 -0
  100. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.json +97 -0
  101. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.dbg.json +4 -0
  102. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.json +307 -0
  103. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.dbg.json +4 -0
  104. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.json +1087 -0
  105. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +4 -0
  106. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +59 -0
  107. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.dbg.json +4 -0
  108. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.json +923 -0
  109. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +4 -0
  110. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.json +176 -0
  111. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.dbg.json +4 -0
  112. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.json +113 -0
  113. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.dbg.json +4 -0
  114. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.json +928 -0
  115. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +4 -0
  116. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.json +29 -0
  117. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.dbg.json +4 -0
  118. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.json +101 -0
  119. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +4 -0
  120. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.json +296 -0
  121. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.dbg.json +4 -0
  122. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.json +83 -0
  123. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.dbg.json +4 -0
  124. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.json +615 -0
  125. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.dbg.json +4 -0
  126. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.json +24 -0
  127. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.dbg.json +4 -0
  128. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.json +756 -0
  129. package/artifacts/contracts/VToken.sol/VToken.dbg.json +4 -0
  130. package/artifacts/contracts/VToken.sol/VToken.json +1850 -0
  131. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.dbg.json +4 -0
  132. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.json +1398 -0
  133. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.dbg.json +4 -0
  134. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.json +219 -0
  135. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.dbg.json +4 -0
  136. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.json +192 -0
  137. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.dbg.json +4 -0
  138. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.json +1712 -0
  139. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.dbg.json +4 -0
  140. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.json +94 -0
  141. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.dbg.json +4 -0
  142. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.json +1744 -0
  143. package/artifacts/contracts/test/ERC20.sol/ERC20.dbg.json +4 -0
  144. package/artifacts/contracts/test/ERC20.sol/ERC20.json +194 -0
  145. package/artifacts/contracts/test/ERC20.sol/ERC20Base.dbg.json +4 -0
  146. package/artifacts/contracts/test/ERC20.sol/ERC20Base.json +141 -0
  147. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.dbg.json +4 -0
  148. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.json +351 -0
  149. package/artifacts/contracts/test/ERC20.sol/ERC20NS.dbg.json +4 -0
  150. package/artifacts/contracts/test/ERC20.sol/ERC20NS.json +182 -0
  151. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.dbg.json +4 -0
  152. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.json +247 -0
  153. package/artifacts/contracts/test/ERC20.sol/StandardToken.dbg.json +4 -0
  154. package/artifacts/contracts/test/ERC20.sol/StandardToken.json +259 -0
  155. package/artifacts/contracts/test/EvilToken.sol/EvilToken.dbg.json +4 -0
  156. package/artifacts/contracts/test/EvilToken.sol/EvilToken.json +303 -0
  157. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.dbg.json +4 -0
  158. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.json +265 -0
  159. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.dbg.json +4 -0
  160. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.json +277 -0
  161. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.dbg.json +4 -0
  162. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.json +313 -0
  163. package/artifacts/contracts/test/FeeToken.sol/FeeToken.dbg.json +4 -0
  164. package/artifacts/contracts/test/FeeToken.sol/FeeToken.json +313 -0
  165. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.dbg.json +4 -0
  166. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.json +85 -0
  167. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.dbg.json +4 -0
  168. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.json +233 -0
  169. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.dbg.json +4 -0
  170. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.json +187 -0
  171. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.dbg.json +4 -0
  172. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.json +668 -0
  173. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.dbg.json +4 -0
  174. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.json +760 -0
  175. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.dbg.json +4 -0
  176. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.json +962 -0
  177. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.dbg.json +4 -0
  178. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.json +55 -0
  179. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.dbg.json +4 -0
  180. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.json +10 -0
  181. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.dbg.json +4 -0
  182. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.json +982 -0
  183. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.dbg.json +4 -0
  184. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.json +10 -0
  185. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.dbg.json +4 -0
  186. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.json +10 -0
  187. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.dbg.json +4 -0
  188. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.json +85 -0
  189. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.dbg.json +4 -0
  190. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.json +315 -0
  191. package/artifacts/contracts/test/SafeMath.sol/SafeMath.dbg.json +4 -0
  192. package/artifacts/contracts/test/SafeMath.sol/SafeMath.json +10 -0
  193. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.dbg.json +4 -0
  194. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.json +1946 -0
  195. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.dbg.json +4 -0
  196. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.json +2306 -0
  197. package/contracts/Comptroller.sol +10 -1
  198. package/contracts/Pool/PoolRegistry.sol +2 -0
  199. package/package.json +1 -1
@@ -0,0 +1,615 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "RiskFund",
4
+ "sourceName": "contracts/RiskFund/RiskFund.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "loopsLimit",
16
+ "type": "uint256"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "requiredLoops",
21
+ "type": "uint256"
22
+ }
23
+ ],
24
+ "name": "MaxLoopsLimitExceeded",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "sender",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "internalType": "address",
36
+ "name": "calledContract",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "string",
41
+ "name": "methodSignature",
42
+ "type": "string"
43
+ }
44
+ ],
45
+ "name": "Unauthorized",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [],
50
+ "name": "ZeroAddressNotAllowed",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "anonymous": false,
55
+ "inputs": [
56
+ {
57
+ "indexed": false,
58
+ "internalType": "uint256",
59
+ "name": "oldAmountOutMin",
60
+ "type": "uint256"
61
+ },
62
+ {
63
+ "indexed": false,
64
+ "internalType": "uint256",
65
+ "name": "newAmountOutMin",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "AmountOutMinUpdated",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "anonymous": false,
74
+ "inputs": [
75
+ {
76
+ "indexed": true,
77
+ "internalType": "address",
78
+ "name": "comptroller",
79
+ "type": "address"
80
+ },
81
+ {
82
+ "indexed": true,
83
+ "internalType": "address",
84
+ "name": "asset",
85
+ "type": "address"
86
+ },
87
+ {
88
+ "indexed": false,
89
+ "internalType": "uint256",
90
+ "name": "amount",
91
+ "type": "uint256"
92
+ }
93
+ ],
94
+ "name": "AssetsReservesUpdated",
95
+ "type": "event"
96
+ },
97
+ {
98
+ "anonymous": false,
99
+ "inputs": [
100
+ {
101
+ "indexed": false,
102
+ "internalType": "uint8",
103
+ "name": "version",
104
+ "type": "uint8"
105
+ }
106
+ ],
107
+ "name": "Initialized",
108
+ "type": "event"
109
+ },
110
+ {
111
+ "anonymous": false,
112
+ "inputs": [
113
+ {
114
+ "indexed": false,
115
+ "internalType": "uint256",
116
+ "name": "oldMaxLoopsLimit",
117
+ "type": "uint256"
118
+ },
119
+ {
120
+ "indexed": false,
121
+ "internalType": "uint256",
122
+ "name": "newmaxLoopsLimit",
123
+ "type": "uint256"
124
+ }
125
+ ],
126
+ "name": "MaxLoopsLimitUpdated",
127
+ "type": "event"
128
+ },
129
+ {
130
+ "anonymous": false,
131
+ "inputs": [
132
+ {
133
+ "indexed": false,
134
+ "internalType": "uint256",
135
+ "name": "oldMinAmountToConvert",
136
+ "type": "uint256"
137
+ },
138
+ {
139
+ "indexed": false,
140
+ "internalType": "uint256",
141
+ "name": "newMinAmountToConvert",
142
+ "type": "uint256"
143
+ }
144
+ ],
145
+ "name": "MinAmountToConvertUpdated",
146
+ "type": "event"
147
+ },
148
+ {
149
+ "anonymous": false,
150
+ "inputs": [
151
+ {
152
+ "indexed": false,
153
+ "internalType": "address",
154
+ "name": "oldAccessControlManager",
155
+ "type": "address"
156
+ },
157
+ {
158
+ "indexed": false,
159
+ "internalType": "address",
160
+ "name": "newAccessControlManager",
161
+ "type": "address"
162
+ }
163
+ ],
164
+ "name": "NewAccessControlManager",
165
+ "type": "event"
166
+ },
167
+ {
168
+ "anonymous": false,
169
+ "inputs": [
170
+ {
171
+ "indexed": true,
172
+ "internalType": "address",
173
+ "name": "previousOwner",
174
+ "type": "address"
175
+ },
176
+ {
177
+ "indexed": true,
178
+ "internalType": "address",
179
+ "name": "newOwner",
180
+ "type": "address"
181
+ }
182
+ ],
183
+ "name": "OwnershipTransferStarted",
184
+ "type": "event"
185
+ },
186
+ {
187
+ "anonymous": false,
188
+ "inputs": [
189
+ {
190
+ "indexed": true,
191
+ "internalType": "address",
192
+ "name": "previousOwner",
193
+ "type": "address"
194
+ },
195
+ {
196
+ "indexed": true,
197
+ "internalType": "address",
198
+ "name": "newOwner",
199
+ "type": "address"
200
+ }
201
+ ],
202
+ "name": "OwnershipTransferred",
203
+ "type": "event"
204
+ },
205
+ {
206
+ "anonymous": false,
207
+ "inputs": [
208
+ {
209
+ "indexed": true,
210
+ "internalType": "address",
211
+ "name": "oldPancakeSwapRouter",
212
+ "type": "address"
213
+ },
214
+ {
215
+ "indexed": true,
216
+ "internalType": "address",
217
+ "name": "newPancakeSwapRouter",
218
+ "type": "address"
219
+ }
220
+ ],
221
+ "name": "PancakeSwapRouterUpdated",
222
+ "type": "event"
223
+ },
224
+ {
225
+ "anonymous": false,
226
+ "inputs": [
227
+ {
228
+ "indexed": true,
229
+ "internalType": "address",
230
+ "name": "oldPoolRegistry",
231
+ "type": "address"
232
+ },
233
+ {
234
+ "indexed": true,
235
+ "internalType": "address",
236
+ "name": "newPoolRegistry",
237
+ "type": "address"
238
+ }
239
+ ],
240
+ "name": "PoolRegistryUpdated",
241
+ "type": "event"
242
+ },
243
+ {
244
+ "anonymous": false,
245
+ "inputs": [
246
+ {
247
+ "indexed": true,
248
+ "internalType": "address",
249
+ "name": "oldShortfallContract",
250
+ "type": "address"
251
+ },
252
+ {
253
+ "indexed": true,
254
+ "internalType": "address",
255
+ "name": "newShortfallContract",
256
+ "type": "address"
257
+ }
258
+ ],
259
+ "name": "ShortfallContractUpdated",
260
+ "type": "event"
261
+ },
262
+ {
263
+ "anonymous": false,
264
+ "inputs": [
265
+ {
266
+ "indexed": false,
267
+ "internalType": "address[]",
268
+ "name": "markets",
269
+ "type": "address[]"
270
+ },
271
+ {
272
+ "indexed": false,
273
+ "internalType": "uint256[]",
274
+ "name": "amountsOutMin",
275
+ "type": "uint256[]"
276
+ },
277
+ {
278
+ "indexed": false,
279
+ "internalType": "uint256",
280
+ "name": "totalAmount",
281
+ "type": "uint256"
282
+ }
283
+ ],
284
+ "name": "SwappedPoolsAssets",
285
+ "type": "event"
286
+ },
287
+ {
288
+ "anonymous": false,
289
+ "inputs": [
290
+ {
291
+ "indexed": true,
292
+ "internalType": "address",
293
+ "name": "comptroller",
294
+ "type": "address"
295
+ },
296
+ {
297
+ "indexed": false,
298
+ "internalType": "uint256",
299
+ "name": "amount",
300
+ "type": "uint256"
301
+ }
302
+ ],
303
+ "name": "TransferredReserveForAuction",
304
+ "type": "event"
305
+ },
306
+ {
307
+ "inputs": [],
308
+ "name": "acceptOwnership",
309
+ "outputs": [],
310
+ "stateMutability": "nonpayable",
311
+ "type": "function"
312
+ },
313
+ {
314
+ "inputs": [],
315
+ "name": "accessControlManager",
316
+ "outputs": [
317
+ {
318
+ "internalType": "contract IAccessControlManagerV8",
319
+ "name": "",
320
+ "type": "address"
321
+ }
322
+ ],
323
+ "stateMutability": "view",
324
+ "type": "function"
325
+ },
326
+ {
327
+ "inputs": [
328
+ {
329
+ "internalType": "address",
330
+ "name": "comptroller",
331
+ "type": "address"
332
+ },
333
+ {
334
+ "internalType": "address",
335
+ "name": "asset",
336
+ "type": "address"
337
+ }
338
+ ],
339
+ "name": "getPoolAssetReserve",
340
+ "outputs": [
341
+ {
342
+ "internalType": "uint256",
343
+ "name": "",
344
+ "type": "uint256"
345
+ }
346
+ ],
347
+ "stateMutability": "view",
348
+ "type": "function"
349
+ },
350
+ {
351
+ "inputs": [
352
+ {
353
+ "internalType": "address",
354
+ "name": "pancakeSwapRouter_",
355
+ "type": "address"
356
+ },
357
+ {
358
+ "internalType": "uint256",
359
+ "name": "minAmountToConvert_",
360
+ "type": "uint256"
361
+ },
362
+ {
363
+ "internalType": "address",
364
+ "name": "convertibleBaseAsset_",
365
+ "type": "address"
366
+ },
367
+ {
368
+ "internalType": "address",
369
+ "name": "accessControlManager_",
370
+ "type": "address"
371
+ },
372
+ {
373
+ "internalType": "uint256",
374
+ "name": "loopsLimit_",
375
+ "type": "uint256"
376
+ }
377
+ ],
378
+ "name": "initialize",
379
+ "outputs": [],
380
+ "stateMutability": "nonpayable",
381
+ "type": "function"
382
+ },
383
+ {
384
+ "inputs": [],
385
+ "name": "maxLoopsLimit",
386
+ "outputs": [
387
+ {
388
+ "internalType": "uint256",
389
+ "name": "",
390
+ "type": "uint256"
391
+ }
392
+ ],
393
+ "stateMutability": "view",
394
+ "type": "function"
395
+ },
396
+ {
397
+ "inputs": [],
398
+ "name": "owner",
399
+ "outputs": [
400
+ {
401
+ "internalType": "address",
402
+ "name": "",
403
+ "type": "address"
404
+ }
405
+ ],
406
+ "stateMutability": "view",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [],
411
+ "name": "pendingOwner",
412
+ "outputs": [
413
+ {
414
+ "internalType": "address",
415
+ "name": "",
416
+ "type": "address"
417
+ }
418
+ ],
419
+ "stateMutability": "view",
420
+ "type": "function"
421
+ },
422
+ {
423
+ "inputs": [
424
+ {
425
+ "internalType": "address",
426
+ "name": "",
427
+ "type": "address"
428
+ }
429
+ ],
430
+ "name": "poolReserves",
431
+ "outputs": [
432
+ {
433
+ "internalType": "uint256",
434
+ "name": "",
435
+ "type": "uint256"
436
+ }
437
+ ],
438
+ "stateMutability": "view",
439
+ "type": "function"
440
+ },
441
+ {
442
+ "inputs": [],
443
+ "name": "renounceOwnership",
444
+ "outputs": [],
445
+ "stateMutability": "nonpayable",
446
+ "type": "function"
447
+ },
448
+ {
449
+ "inputs": [
450
+ {
451
+ "internalType": "address",
452
+ "name": "accessControlManager_",
453
+ "type": "address"
454
+ }
455
+ ],
456
+ "name": "setAccessControlManager",
457
+ "outputs": [],
458
+ "stateMutability": "nonpayable",
459
+ "type": "function"
460
+ },
461
+ {
462
+ "inputs": [
463
+ {
464
+ "internalType": "uint256",
465
+ "name": "limit",
466
+ "type": "uint256"
467
+ }
468
+ ],
469
+ "name": "setMaxLoopsLimit",
470
+ "outputs": [],
471
+ "stateMutability": "nonpayable",
472
+ "type": "function"
473
+ },
474
+ {
475
+ "inputs": [
476
+ {
477
+ "internalType": "uint256",
478
+ "name": "minAmountToConvert_",
479
+ "type": "uint256"
480
+ }
481
+ ],
482
+ "name": "setMinAmountToConvert",
483
+ "outputs": [],
484
+ "stateMutability": "nonpayable",
485
+ "type": "function"
486
+ },
487
+ {
488
+ "inputs": [
489
+ {
490
+ "internalType": "address",
491
+ "name": "pancakeSwapRouter_",
492
+ "type": "address"
493
+ }
494
+ ],
495
+ "name": "setPancakeSwapRouter",
496
+ "outputs": [],
497
+ "stateMutability": "nonpayable",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [
502
+ {
503
+ "internalType": "address",
504
+ "name": "poolRegistry_",
505
+ "type": "address"
506
+ }
507
+ ],
508
+ "name": "setPoolRegistry",
509
+ "outputs": [],
510
+ "stateMutability": "nonpayable",
511
+ "type": "function"
512
+ },
513
+ {
514
+ "inputs": [
515
+ {
516
+ "internalType": "address",
517
+ "name": "shortfallContractAddress_",
518
+ "type": "address"
519
+ }
520
+ ],
521
+ "name": "setShortfallContractAddress",
522
+ "outputs": [],
523
+ "stateMutability": "nonpayable",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [
528
+ {
529
+ "internalType": "address[]",
530
+ "name": "markets",
531
+ "type": "address[]"
532
+ },
533
+ {
534
+ "internalType": "uint256[]",
535
+ "name": "amountsOutMin",
536
+ "type": "uint256[]"
537
+ },
538
+ {
539
+ "internalType": "address[][]",
540
+ "name": "paths",
541
+ "type": "address[][]"
542
+ }
543
+ ],
544
+ "name": "swapPoolsAssets",
545
+ "outputs": [
546
+ {
547
+ "internalType": "uint256",
548
+ "name": "",
549
+ "type": "uint256"
550
+ }
551
+ ],
552
+ "stateMutability": "nonpayable",
553
+ "type": "function"
554
+ },
555
+ {
556
+ "inputs": [
557
+ {
558
+ "internalType": "address",
559
+ "name": "newOwner",
560
+ "type": "address"
561
+ }
562
+ ],
563
+ "name": "transferOwnership",
564
+ "outputs": [],
565
+ "stateMutability": "nonpayable",
566
+ "type": "function"
567
+ },
568
+ {
569
+ "inputs": [
570
+ {
571
+ "internalType": "address",
572
+ "name": "comptroller",
573
+ "type": "address"
574
+ },
575
+ {
576
+ "internalType": "uint256",
577
+ "name": "amount",
578
+ "type": "uint256"
579
+ }
580
+ ],
581
+ "name": "transferReserveForAuction",
582
+ "outputs": [
583
+ {
584
+ "internalType": "uint256",
585
+ "name": "",
586
+ "type": "uint256"
587
+ }
588
+ ],
589
+ "stateMutability": "nonpayable",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [
594
+ {
595
+ "internalType": "address",
596
+ "name": "comptroller",
597
+ "type": "address"
598
+ },
599
+ {
600
+ "internalType": "address",
601
+ "name": "asset",
602
+ "type": "address"
603
+ }
604
+ ],
605
+ "name": "updateAssetsState",
606
+ "outputs": [],
607
+ "stateMutability": "nonpayable",
608
+ "type": "function"
609
+ }
610
+ ],
611
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b62000111565b600054610100900460ff1615620000565760405162461bcd60e51b81526004016200004d90620000af565b60405180910390fd5b60005460ff90811614620000ad576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891620000a49162000101565b60405180910390a15b565b60208082528101620000fb81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff8216815260208101620000fb565b612cf680620001216000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80637b77cd6a116100ad578063be26317e11610071578063be26317e1461023f578063d2d8703414610248578063e30c39781461025b578063f2fde38b1461026c578063f481395b1461027f57600080fd5b80637b77cd6a146101d357806380d45a2d146101e65780638da5cb5b146101f9578063aac59a7514610213578063b4a0bdf31461022657600080fd5b80636fb05275116100f45780636fb052751461018a578063715018a61461019d578063746460a9146101a557806377d4937f146101b857806379ba5097146101cb57600080fd5b80630a9837c5146101265780630e32cb861461014f5780632a1d0547146101645780634dd9584a14610177575b600080fd5b610139610134366004611a0e565b6102a0565b6040516101469190611a53565b60405180910390f35b61016261015d366004611a61565b61038e565b005b610162610172366004611a82565b6103a2565b610162610185366004611a61565b610512565b610139610198366004611afa565b610576565b61016261062a565b6101626101b3366004611b2d565b61063e565b6101626101c6366004611a61565b6106e3565b6101626107e0565b6101626101e1366004611a61565b610815565b6101626101f4366004611b2d565b610878565b6033546001600160a01b03165b6040516101469190611b57565b610162610221366004611afa565b610889565b6097546001600160a01b03166040516101469190611ba7565b61013960fc5481565b610139610256366004611c07565b610897565b6065546001600160a01b0316610206565b61016261027a366004611a61565b610be3565b61013961028d366004611a61565b6101326020526000908152604090205481565b610131546000906001600160a01b03163381146102d85760405162461bcd60e51b81526004016102cf90611d02565b60405180910390fd5b6001600160a01b038416600090815261013260205260409020548311156103115760405162461bcd60e51b81526004016102cf90611d54565b6001600160a01b03808516600090815261013260205260409020805485900390556101305461034291168285610c54565b836001600160a01b03167fc8d0a37ed16dfaa43514df00e18f478b60d5cc7b4bfc687103948b9020f737fd8460405161037b9190611a53565b60405180910390a2829150505b92915050565b610396610caf565b61039f81610cd9565b50565b600054610100900460ff16158080156103c25750600054600160ff909116105b806103dc5750303b1580156103dc575060005460ff166001145b6103f85760405162461bcd60e51b81526004016102cf90611daf565b6000805460ff19166001179055801561041b576000805461ff0019166101001790555b61042486610d52565b61042d84610d52565b6000851161044d5760405162461bcd60e51b81526004016102cf90611e04565b6000821161046d5760405162461bcd60e51b81526004016102cf90611e57565b610475610d79565b61047e83610da8565b61012e80546001600160a01b038089166001600160a01b03199283161790925561012f8790556101308054928716929091169190911790556104bf82610dcf565b801561050a576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061050190600190611e7b565b60405180910390a15b505050505050565b61051a610caf565b61052381610d52565b61012e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fd37b9d138f53ea58d7e50292588239a46efa8f523966febf4066da96defc77fd90600090a35050565b600061058182610d52565b826001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190611e9c565b6105fe5760405162461bcd60e51b81526004016102cf90611f05565b506001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b610632610caf565b61063c6000610e2a565b565b61067c6040518060400160405280601e81526020017f7365744d696e416d6f756e74546f436f6e766572742875696e74323536290000815250610e43565b6000811161069c5760405162461bcd60e51b81526004016102cf90611e04565b61012f8054908290556040517fada67d0d38fa20c8ae6a5c17cb9d60b0fe7f2d4e4f27ac9ee55e54ac88de9d8d906106d79083908590611f15565b60405180910390a15050565b6106eb610caf565b6106f481610d52565b610130546040805163c8ecc0d360e01b815290516001600160a01b039283169284169163c8ecc0d391600480830192602092919082900301816000875af1158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611f3b565b6001600160a01b03161461078d5760405162461bcd60e51b81526004016102cf90611f9c565b61013180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fb6e5fcf02f7fbb8acfbaa3bac4fd5abf9ff51e3f2e8884b5498927179b211b2890600090a35050565b60655433906001600160a01b0316811461080c5760405162461bcd60e51b81526004016102cf90611ff2565b61039f81610e2a565b61081d610caf565b61082681610d52565b60cb80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fa87b964d321035d2165e484ff4b722dd6eae30606c0b98887d2ed1a34e594bfe90600090a35050565b610880610caf565b61039f81610dcf565b6108938282610edd565b5050565b60006108ba604051806060016040528060308152602001612c9160309139610e43565b60cb546001600160a01b03166108cf81610d52565b8685146108ee5760405162461bcd60e51b81526004016102cf9061205c565b86831461090d5760405162461bcd60e51b81526004016102cf906120b9565b6000876109198161117b565b60005b81811015610b945760008b8b83818110610938576109386120c9565b905060200201602081019061094d9190611a61565b90506000816001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561098f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b391906120fe565b90506000866001600160a01b0316637aee632d836040518263ffffffff1660e01b81526004016109e39190611b57565b600060405180830381865afa158015610a00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a2891908101906122ea565b9050816001600160a01b031681604001516001600160a01b031614610a5f5760405162461bcd60e51b81526004016102cf90612369565b604051633d98a1e560e01b81526001600160a01b03831690633d98a1e590610a8b908690600401611ba7565b602060405180830381865afa158015610aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acc9190611e9c565b610ae85760405162461bcd60e51b81526004016102cf906123a7565b6000610b3184848f8f89818110610b0157610b016120c9565b905060200201358e8e8a818110610b1a57610b1a6120c9565b9050602002810190610b2c91906123b7565b6111a4565b6001600160a01b03841660009081526101326020526040902054909150610b5990829061242a565b6001600160a01b03841660009081526101326020526040902055610b7d818861242a565b96505050505080610b8d90612442565b905061091c565b507fb17530966b045b50d4975e7f05048ca00d7335780c24f1c465165a4b94b2d37d8a8a8a8a86604051610bcc95949392919061250c565b60405180910390a1509150505b9695505050505050565b610beb610caf565b606580546001600160a01b0383166001600160a01b03199091168117909155610c1c6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610caa8363a9059cbb60e01b8484604051602401610c73929190612542565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611721565b505050565b6033546001600160a01b0316331461063c5760405162461bcd60e51b81526004016102cf90612582565b6001600160a01b038116610cff5760405162461bcd60e51b81526004016102cf906125d4565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906106d790839085906125e4565b6001600160a01b03811661039f576040516342bcdf7f60e11b815260040160405180910390fd5b600054610100900460ff16610da05760405162461bcd60e51b81526004016102cf90612647565b61063c6117b3565b600054610100900460ff166103965760405162461bcd60e51b81526004016102cf90612647565b60fc548111610df05760405162461bcd60e51b81526004016102cf90612696565b60fc8054908290556040517fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa906106d79083908590611f15565b606580546001600160a01b031916905561039f816117e3565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab90610e7690339086906004016126d8565b602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb79190611e9c565b90508061089357333083604051634a3fa29360e01b81526004016102cf939291906126f8565b610ee681610d52565b816001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611e9c565b610f635760405162461bcd60e51b81526004016102cf90611f05565b60cb546001600160a01b031680610f8c5760405162461bcd60e51b81526004016102cf9061277b565b60405163266e0a7f60e01b81526000906001600160a01b0383169063266e0a7f90610fbd90879087906004016125e4565b602060405180830381865afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe9190611f3b565b6001600160a01b0316036110245760405162461bcd60e51b81526004016102cf906127da565b6040516370a0823160e01b81526000906001600160a01b038416906370a0823190611053903090600401611b57565b602060405180830381865afa158015611070573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109491906127ea565b6001600160a01b038416600090815260c9602052604090205490915080821115611174576001600160a01b038416600090815260c9602052604081208054838503928392916110e490849061242a565b90915550506001600160a01b03808716600090815260ca602090815260408083209389168352929052908120805483929061112090849061242a565b92505081905550846001600160a01b0316866001600160a01b03167fc39e3e80c0219fde334a8cb5d8468b628482e23388b6e809c90cb00c63c8ce388360405161116a9190611a53565b60405180910390a3505b5050505050565b60fc5481111561039f5760fc548160405163792bfb1b60e11b81526004016102cf929190611f15565b6000836000036111c65760405162461bcd60e51b81526004016102cf90612865565b61012f548410156111e95760405162461bcd60e51b81526004016102cf906128cf565b600080876001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e9190611f3b565b610130546001600160a01b03898116600081815260ca6020908152604080832085881684528252918290205482516307dc0d1d60e41b81529251969750939094169492939192637dc0d1d0926004808401939192918290030181865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e091906120fe565b6001600160a01b03166396e85ced8b6040518263ffffffff1660e01b815260040161130b9190611b57565b600060405180830381600087803b15801561132557600080fd5b505af1158015611339573d6000803e3d6000fd5b505050506000896001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561137d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a191906120fe565b6001600160a01b031663fc57d4df8c6040518263ffffffff1660e01b81526004016113cc9190611b57565b602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d91906127ea565b90508115611712576040805160208101909152818152600061142f8285611835565b905061012f54811061170f576001600160a01b038616600090815260c96020526040812080548692906114639084906128df565b90915550506001600160a01b03808d16600090815260ca60209081526040808320938a168352929052908120805486929061149f9084906128df565b90915550506001600160a01b038681169086161461170b57856001600160a01b03168a8a60008181106114d4576114d46120c9565b90506020020160208101906114e99190611a61565b6001600160a01b03161461150f5760405162461bcd60e51b81526004016102cf90612950565b6001600160a01b0385168a8a6115266001826128df565b818110611535576115356120c9565b905060200201602081019061154a9190611a61565b6001600160a01b0316146115705760405162461bcd60e51b81526004016102cf906129b2565b61012e5460405163095ea7b360e01b81526001600160a01b039182169188169063095ea7b3906115a79084906000906004016129d7565b6020604051808303816000875af11580156115c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ea9190611e9c565b5060405163095ea7b360e01b81526001600160a01b0388169063095ea7b3906116199084908990600401612542565b6020604051808303816000875af1158015611638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165c9190611e9c565b506000816001600160a01b03166338ed1739878f8f8f30426040518763ffffffff1660e01b8152600401611695969594939291906129f2565b6000604051808303816000875af11580156116b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116dc9190810190612adf565b9050806116ea60018d6128df565b815181106116fa576116fa6120c9565b60200260200101519850505061170f565b8396505b50505b50929998505050505050505050565b6000611776826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166118559092919063ffffffff16565b90508051600014806117975750808060200190518101906117979190611e9c565b610caa5760405162461bcd60e51b81526004016102cf90612b61565b600054610100900460ff166117da5760405162461bcd60e51b81526004016102cf90612647565b61063c33610e2a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080611842848461186e565b905061184d8161189f565b949350505050565b606061186484846000856118b7565b90505b9392505050565b6040805160208101909152600081526040518060200160405280611896856000015185611953565b90529392505050565b805160009061038890670de0b6b3a764000090612b87565b6060824710156118d95760405162461bcd60e51b81526004016102cf90612bde565b600080866001600160a01b031685876040516118f59190612c10565b60006040518083038185875af1925050503d8060008114611932576040519150601f19603f3d011682016040523d82523d6000602084013e611937565b606091505b50915091506119488783838761195f565b979650505050505050565b60006118678284612c1c565b6060831561199e578251600003611997576001600160a01b0385163b6119975760405162461bcd60e51b81526004016102cf90612c6f565b508161184d565b61184d83838151156119b35781518083602001fd5b8060405162461bcd60e51b81526004016102cf9190612c7f565b60006001600160a01b038216610388565b6119e7816119cd565b811461039f57600080fd5b8035610388816119de565b806119e7565b8035610388816119fd565b60008060408385031215611a2457611a24600080fd5b6000611a3085856119f2565b9250506020611a4185828601611a03565b9150509250929050565b805b82525050565b602081016103888284611a4b565b600060208284031215611a7657611a76600080fd5b600061184d84846119f2565b600080600080600060a08688031215611a9d57611a9d600080fd5b6000611aa988886119f2565b9550506020611aba88828901611a03565b9450506040611acb888289016119f2565b9350506060611adc888289016119f2565b9250506080611aed88828901611a03565b9150509295509295909350565b60008060408385031215611b1057611b10600080fd5b6000611b1c85856119f2565b9250506020611a41858286016119f2565b600060208284031215611b4257611b42600080fd5b600061184d8484611a03565b611a4d816119cd565b602081016103888284611b4e565b60006103886001600160a01b038316611b7c565b90565b6001600160a01b031690565b600061038882611b65565b600061038882611b88565b611a4d81611b93565b602081016103888284611b9e565b60008083601f840112611bca57611bca600080fd5b50813567ffffffffffffffff811115611be557611be5600080fd5b602083019150836020820283011115611c0057611c00600080fd5b9250929050565b60008060008060008060608789031215611c2357611c23600080fd5b863567ffffffffffffffff811115611c3d57611c3d600080fd5b611c4989828a01611bb5565b9650965050602087013567ffffffffffffffff811115611c6b57611c6b600080fd5b611c7789828a01611bb5565b9450945050604087013567ffffffffffffffff811115611c9957611c99600080fd5b611ca589828a01611bb5565b92509250509295509295509295565b602e81526000602082017f5269736b2066756e643a204f6e6c792063616c6c61626c652062792053686f7281526d1d19985b1b0818dbdb9d1c9858dd60921b602082015291505b5060400190565b6020808252810161038881611cb4565b602581526000602082017f5269736b2046756e643a20496e73756666696369656e7420706f6f6c2072657381526432b93b329760d91b60208201529150611cfb565b6020808252810161038881611d12565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150611cfb565b6020808252810161038881611d64565b602881526000602082017f5269736b2046756e643a20496e76616c6964206d696e20616d6f756e7420746f8152670818dbdb9d995c9d60c21b60208201529150611cfb565b6020808252810161038881611dbf565b602681526000602082017f5269736b2046756e643a204c6f6f7073206c696d69742063616e206e6f74206281526565207a65726f60d01b60208201529150611cfb565b6020808252810161038881611e14565b600060ff8216610388565b611a4d81611e67565b602081016103888284611e72565b8015156119e7565b805161038881611e89565b600060208284031215611eb157611eb1600080fd5b600061184d8484611e91565b602b81526000602082017f5265736572766548656c706572733a20436f6d7074726f6c6c6572206164647281526a195cdcc81a5b9d985b1a5960aa1b60208201529150611cfb565b6020808252810161038881611ebd565b60408101611f238285611a4b565b6118676020830184611a4b565b8051610388816119de565b600060208284031215611f5057611f50600080fd5b600061184d8484611f30565b602381526000602082017f5269736b2046756e643a204261736520617373657420646f65736e2774206d618152620e8c6d60eb1b60208201529150611cfb565b6020808252810161038881611f5c565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150611cfb565b6020808252810161038881611fac565b603881526000602082017f5269736b2066756e643a206d61726b65747320616e6420616d6f756e74734f7581527f744d696e2061726520756e657175616c206c656e67746873000000000000000060208201529150611cfb565b6020808252810161038881612002565b603081526000602082017f5269736b2066756e643a206d61726b65747320616e642070617468732061726581526f20756e657175616c206c656e6774687360801b60208201529150611cfb565b602080825281016103888161206c565b634e487b7160e01b600052603260045260246000fd5b6000610388826119cd565b6119e7816120df565b8051610388816120ea565b60006020828403121561211357612113600080fd5b600061184d84846120f3565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561215b5761215b61211f565b6040525050565b600061216d60405190565b90506121798282612135565b919050565b600067ffffffffffffffff8211156121985761219861211f565b601f19601f83011660200192915050565b60005b838110156121c45781810151838201526020016121ac565b838111156121d3576000848401525b50505050565b60006121ec6121e78461217e565b612162565b90508281526020810184848401111561220757612207600080fd5b6122128482856121a9565b509392505050565b600082601f83011261222e5761222e600080fd5b815161184d8482602086016121d9565b8051610388816119fd565b600060a0828403121561225e5761225e600080fd5b61226860a0612162565b825190915067ffffffffffffffff81111561228557612285600080fd5b6122918482850161221a565b82525060206122a284848301611f30565b60208301525060406122b684828501611f30565b60408301525060606122ca8482850161223e565b60608301525060806122de8482850161223e565b60808301525092915050565b6000602082840312156122ff576122ff600080fd5b815167ffffffffffffffff81111561231957612319600080fd5b61184d84828501612249565b602781526000602082017f636f6d7074726f6c6c657220646f65736e277420657869737420706f6f6c20728152666567697374727960c81b60208201529150611cfb565b6020808252810161038881612325565b60148152600060208201731b585c9ad95d081a5cc81b9bdd081b1a5cdd195960621b815291505b5060200190565b6020808252810161038881612379565b6000808335601e19368590030181126123d2576123d2600080fd5b80840192508235915067ffffffffffffffff8211156123f3576123f3600080fd5b6020928301928202360383131561240c5761240c600080fd5b509250929050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561243d5761243d612414565b500190565b6000600019820361245557612455612414565b5060010190565b60006124688383611b4e565b505060200190565b600061186760208401846119f2565b8183526000602084019350818060005b858110156124bc576124a18284612470565b6124ab888261245c565b97506020830192505060010161248f565b509495945050505050565b82818337506000910152565b81835260006020840193506001600160fb1b038311156124f5576124f5600080fd5b6020830292506125068385846124c7565b50500190565b6060808252810161251e81878961247f565b905081810360208301526125338185876124d3565b9050610bd96040830184611a4b565b60408101611f238285611b4e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260006123a0565b6020808252810161038881612550565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150611cfb565b6020808252810161038881612592565b604081016125f28285611b4e565b6118676020830184611b4e565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150611cfb565b60208082528101610388816125ff565b602281526000602082017f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d8152611a5d60f21b60208201529150611cfb565b6020808252810161038881612657565b60006126b0825190565b8084526020840193506126c78185602086016121a9565b601f01601f19169290920192915050565b604081016126e68285611b4e565b818103602083015261186481846126a6565b606081016127068286611b4e565b6127136020830185611b4e565b818103604083015261272581846126a6565b95945050505050565b603081526000602082017f5265736572766548656c706572733a20506f6f6c20526567697374727920616481526f191c995cdcc81a5cc81b9bdd081cd95d60821b60208201529150611cfb565b602080825281016103888161272e565b603281526000602082017f5265736572766548656c706572733a2054686520706f6f6c20646f65736e2774815271081cdd5c1c1bdc9d081d1a1948185cdcd95d60721b60208201529150611cfb565b602080825281016103888161278b565b6000602082840312156127ff576127ff600080fd5b600061184d848461223e565b603c81526000602082017f5269736b46756e643a20616d6f756e744f75744d696e206d757374206265206781527f726561746572207468616e203020746f20737761702076546f6b656e0000000060208201529150611cfb565b602080825281016103888161280b565b604081526000602082017f5269736b46756e643a20616d6f756e744f75744d696e2073686f756c6420626581527f2067726561746572207468616e206d696e416d6f756e74546f436f6e7665727460208201529150611cfb565b6020808252810161038881612875565b6000828210156128f1576128f1612414565b500390565b603881526000602082017f5269736b46756e643a20737761702070617468206d757374207374617274207781527f6974682074686520756e6465726c79696e67206173736574000000000000000060208201529150611cfb565b60208082528101610388816128f6565b603581526000602082017f5269736b46756e643a2066696e616c6c792070617468206d75737420626520638152741bdb9d995c9d1a589b194818985cd948185cdcd95d605a1b60208201529150611cfb565b6020808252810161038881612960565b6000610388611b798381565b611a4d816129c2565b604081016129e58285611b4e565b61186760208301846129ce565b60a08101612a008289611a4b565b612a0d6020830188611a4b565b8181036040830152612a2081868861247f565b9050612a2f6060830185611b4e565b6119486080830184611a4b565b600067ffffffffffffffff821115612a5657612a5661211f565b5060209081020190565b6000612a6e6121e784612a3c565b83815290506020808201908402830185811115612a8d57612a8d600080fd5b835b81811015612ab15780612aa2888261223e565b84525060209283019201612a8f565b5050509392505050565b600082601f830112612acf57612acf600080fd5b815161184d848260208601612a60565b600060208284031215612af457612af4600080fd5b815167ffffffffffffffff811115612b0e57612b0e600080fd5b61184d84828501612abb565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529150611cfb565b6020808252810161038881612b1a565b634e487b7160e01b600052601260045260246000fd5b600082612b9657612b96612b71565b500490565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b60208201529150611cfb565b6020808252810161038881612b9b565b6000612bf8825190565b612c068185602086016121a9565b9290920192915050565b60006118678284612bee565b6000816000190483118215151615612c3657612c36612414565b500290565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000815291506123a0565b6020808252810161038881612c3b565b6020808252810161186781846126a656fe73776170506f6f6c7341737365747328616464726573735b5d2c75696e743235365b5d2c616464726573735b5d5b5d29a26469706673582212201a148203c199d8f2bfed55ed880e306986cb4527c12cd80a645389c8cbb02ef364736f6c634300080d0033",
612
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c80637b77cd6a116100ad578063be26317e11610071578063be26317e1461023f578063d2d8703414610248578063e30c39781461025b578063f2fde38b1461026c578063f481395b1461027f57600080fd5b80637b77cd6a146101d357806380d45a2d146101e65780638da5cb5b146101f9578063aac59a7514610213578063b4a0bdf31461022657600080fd5b80636fb05275116100f45780636fb052751461018a578063715018a61461019d578063746460a9146101a557806377d4937f146101b857806379ba5097146101cb57600080fd5b80630a9837c5146101265780630e32cb861461014f5780632a1d0547146101645780634dd9584a14610177575b600080fd5b610139610134366004611a0e565b6102a0565b6040516101469190611a53565b60405180910390f35b61016261015d366004611a61565b61038e565b005b610162610172366004611a82565b6103a2565b610162610185366004611a61565b610512565b610139610198366004611afa565b610576565b61016261062a565b6101626101b3366004611b2d565b61063e565b6101626101c6366004611a61565b6106e3565b6101626107e0565b6101626101e1366004611a61565b610815565b6101626101f4366004611b2d565b610878565b6033546001600160a01b03165b6040516101469190611b57565b610162610221366004611afa565b610889565b6097546001600160a01b03166040516101469190611ba7565b61013960fc5481565b610139610256366004611c07565b610897565b6065546001600160a01b0316610206565b61016261027a366004611a61565b610be3565b61013961028d366004611a61565b6101326020526000908152604090205481565b610131546000906001600160a01b03163381146102d85760405162461bcd60e51b81526004016102cf90611d02565b60405180910390fd5b6001600160a01b038416600090815261013260205260409020548311156103115760405162461bcd60e51b81526004016102cf90611d54565b6001600160a01b03808516600090815261013260205260409020805485900390556101305461034291168285610c54565b836001600160a01b03167fc8d0a37ed16dfaa43514df00e18f478b60d5cc7b4bfc687103948b9020f737fd8460405161037b9190611a53565b60405180910390a2829150505b92915050565b610396610caf565b61039f81610cd9565b50565b600054610100900460ff16158080156103c25750600054600160ff909116105b806103dc5750303b1580156103dc575060005460ff166001145b6103f85760405162461bcd60e51b81526004016102cf90611daf565b6000805460ff19166001179055801561041b576000805461ff0019166101001790555b61042486610d52565b61042d84610d52565b6000851161044d5760405162461bcd60e51b81526004016102cf90611e04565b6000821161046d5760405162461bcd60e51b81526004016102cf90611e57565b610475610d79565b61047e83610da8565b61012e80546001600160a01b038089166001600160a01b03199283161790925561012f8790556101308054928716929091169190911790556104bf82610dcf565b801561050a576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061050190600190611e7b565b60405180910390a15b505050505050565b61051a610caf565b61052381610d52565b61012e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fd37b9d138f53ea58d7e50292588239a46efa8f523966febf4066da96defc77fd90600090a35050565b600061058182610d52565b826001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190611e9c565b6105fe5760405162461bcd60e51b81526004016102cf90611f05565b506001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b610632610caf565b61063c6000610e2a565b565b61067c6040518060400160405280601e81526020017f7365744d696e416d6f756e74546f436f6e766572742875696e74323536290000815250610e43565b6000811161069c5760405162461bcd60e51b81526004016102cf90611e04565b61012f8054908290556040517fada67d0d38fa20c8ae6a5c17cb9d60b0fe7f2d4e4f27ac9ee55e54ac88de9d8d906106d79083908590611f15565b60405180910390a15050565b6106eb610caf565b6106f481610d52565b610130546040805163c8ecc0d360e01b815290516001600160a01b039283169284169163c8ecc0d391600480830192602092919082900301816000875af1158015610743573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107679190611f3b565b6001600160a01b03161461078d5760405162461bcd60e51b81526004016102cf90611f9c565b61013180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fb6e5fcf02f7fbb8acfbaa3bac4fd5abf9ff51e3f2e8884b5498927179b211b2890600090a35050565b60655433906001600160a01b0316811461080c5760405162461bcd60e51b81526004016102cf90611ff2565b61039f81610e2a565b61081d610caf565b61082681610d52565b60cb80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907fa87b964d321035d2165e484ff4b722dd6eae30606c0b98887d2ed1a34e594bfe90600090a35050565b610880610caf565b61039f81610dcf565b6108938282610edd565b5050565b60006108ba604051806060016040528060308152602001612c9160309139610e43565b60cb546001600160a01b03166108cf81610d52565b8685146108ee5760405162461bcd60e51b81526004016102cf9061205c565b86831461090d5760405162461bcd60e51b81526004016102cf906120b9565b6000876109198161117b565b60005b81811015610b945760008b8b83818110610938576109386120c9565b905060200201602081019061094d9190611a61565b90506000816001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561098f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b391906120fe565b90506000866001600160a01b0316637aee632d836040518263ffffffff1660e01b81526004016109e39190611b57565b600060405180830381865afa158015610a00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a2891908101906122ea565b9050816001600160a01b031681604001516001600160a01b031614610a5f5760405162461bcd60e51b81526004016102cf90612369565b604051633d98a1e560e01b81526001600160a01b03831690633d98a1e590610a8b908690600401611ba7565b602060405180830381865afa158015610aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acc9190611e9c565b610ae85760405162461bcd60e51b81526004016102cf906123a7565b6000610b3184848f8f89818110610b0157610b016120c9565b905060200201358e8e8a818110610b1a57610b1a6120c9565b9050602002810190610b2c91906123b7565b6111a4565b6001600160a01b03841660009081526101326020526040902054909150610b5990829061242a565b6001600160a01b03841660009081526101326020526040902055610b7d818861242a565b96505050505080610b8d90612442565b905061091c565b507fb17530966b045b50d4975e7f05048ca00d7335780c24f1c465165a4b94b2d37d8a8a8a8a86604051610bcc95949392919061250c565b60405180910390a1509150505b9695505050505050565b610beb610caf565b606580546001600160a01b0383166001600160a01b03199091168117909155610c1c6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610caa8363a9059cbb60e01b8484604051602401610c73929190612542565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611721565b505050565b6033546001600160a01b0316331461063c5760405162461bcd60e51b81526004016102cf90612582565b6001600160a01b038116610cff5760405162461bcd60e51b81526004016102cf906125d4565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906106d790839085906125e4565b6001600160a01b03811661039f576040516342bcdf7f60e11b815260040160405180910390fd5b600054610100900460ff16610da05760405162461bcd60e51b81526004016102cf90612647565b61063c6117b3565b600054610100900460ff166103965760405162461bcd60e51b81526004016102cf90612647565b60fc548111610df05760405162461bcd60e51b81526004016102cf90612696565b60fc8054908290556040517fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa906106d79083908590611f15565b606580546001600160a01b031916905561039f816117e3565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab90610e7690339086906004016126d8565b602060405180830381865afa158015610e93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb79190611e9c565b90508061089357333083604051634a3fa29360e01b81526004016102cf939291906126f8565b610ee681610d52565b816001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611e9c565b610f635760405162461bcd60e51b81526004016102cf90611f05565b60cb546001600160a01b031680610f8c5760405162461bcd60e51b81526004016102cf9061277b565b60405163266e0a7f60e01b81526000906001600160a01b0383169063266e0a7f90610fbd90879087906004016125e4565b602060405180830381865afa158015610fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffe9190611f3b565b6001600160a01b0316036110245760405162461bcd60e51b81526004016102cf906127da565b6040516370a0823160e01b81526000906001600160a01b038416906370a0823190611053903090600401611b57565b602060405180830381865afa158015611070573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109491906127ea565b6001600160a01b038416600090815260c9602052604090205490915080821115611174576001600160a01b038416600090815260c9602052604081208054838503928392916110e490849061242a565b90915550506001600160a01b03808716600090815260ca602090815260408083209389168352929052908120805483929061112090849061242a565b92505081905550846001600160a01b0316866001600160a01b03167fc39e3e80c0219fde334a8cb5d8468b628482e23388b6e809c90cb00c63c8ce388360405161116a9190611a53565b60405180910390a3505b5050505050565b60fc5481111561039f5760fc548160405163792bfb1b60e11b81526004016102cf929190611f15565b6000836000036111c65760405162461bcd60e51b81526004016102cf90612865565b61012f548410156111e95760405162461bcd60e51b81526004016102cf906128cf565b600080876001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124e9190611f3b565b610130546001600160a01b03898116600081815260ca6020908152604080832085881684528252918290205482516307dc0d1d60e41b81529251969750939094169492939192637dc0d1d0926004808401939192918290030181865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e091906120fe565b6001600160a01b03166396e85ced8b6040518263ffffffff1660e01b815260040161130b9190611b57565b600060405180830381600087803b15801561132557600080fd5b505af1158015611339573d6000803e3d6000fd5b505050506000896001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561137d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a191906120fe565b6001600160a01b031663fc57d4df8c6040518263ffffffff1660e01b81526004016113cc9190611b57565b602060405180830381865afa1580156113e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140d91906127ea565b90508115611712576040805160208101909152818152600061142f8285611835565b905061012f54811061170f576001600160a01b038616600090815260c96020526040812080548692906114639084906128df565b90915550506001600160a01b03808d16600090815260ca60209081526040808320938a168352929052908120805486929061149f9084906128df565b90915550506001600160a01b038681169086161461170b57856001600160a01b03168a8a60008181106114d4576114d46120c9565b90506020020160208101906114e99190611a61565b6001600160a01b03161461150f5760405162461bcd60e51b81526004016102cf90612950565b6001600160a01b0385168a8a6115266001826128df565b818110611535576115356120c9565b905060200201602081019061154a9190611a61565b6001600160a01b0316146115705760405162461bcd60e51b81526004016102cf906129b2565b61012e5460405163095ea7b360e01b81526001600160a01b039182169188169063095ea7b3906115a79084906000906004016129d7565b6020604051808303816000875af11580156115c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ea9190611e9c565b5060405163095ea7b360e01b81526001600160a01b0388169063095ea7b3906116199084908990600401612542565b6020604051808303816000875af1158015611638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165c9190611e9c565b506000816001600160a01b03166338ed1739878f8f8f30426040518763ffffffff1660e01b8152600401611695969594939291906129f2565b6000604051808303816000875af11580156116b4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116dc9190810190612adf565b9050806116ea60018d6128df565b815181106116fa576116fa6120c9565b60200260200101519850505061170f565b8396505b50505b50929998505050505050505050565b6000611776826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166118559092919063ffffffff16565b90508051600014806117975750808060200190518101906117979190611e9c565b610caa5760405162461bcd60e51b81526004016102cf90612b61565b600054610100900460ff166117da5760405162461bcd60e51b81526004016102cf90612647565b61063c33610e2a565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080611842848461186e565b905061184d8161189f565b949350505050565b606061186484846000856118b7565b90505b9392505050565b6040805160208101909152600081526040518060200160405280611896856000015185611953565b90529392505050565b805160009061038890670de0b6b3a764000090612b87565b6060824710156118d95760405162461bcd60e51b81526004016102cf90612bde565b600080866001600160a01b031685876040516118f59190612c10565b60006040518083038185875af1925050503d8060008114611932576040519150601f19603f3d011682016040523d82523d6000602084013e611937565b606091505b50915091506119488783838761195f565b979650505050505050565b60006118678284612c1c565b6060831561199e578251600003611997576001600160a01b0385163b6119975760405162461bcd60e51b81526004016102cf90612c6f565b508161184d565b61184d83838151156119b35781518083602001fd5b8060405162461bcd60e51b81526004016102cf9190612c7f565b60006001600160a01b038216610388565b6119e7816119cd565b811461039f57600080fd5b8035610388816119de565b806119e7565b8035610388816119fd565b60008060408385031215611a2457611a24600080fd5b6000611a3085856119f2565b9250506020611a4185828601611a03565b9150509250929050565b805b82525050565b602081016103888284611a4b565b600060208284031215611a7657611a76600080fd5b600061184d84846119f2565b600080600080600060a08688031215611a9d57611a9d600080fd5b6000611aa988886119f2565b9550506020611aba88828901611a03565b9450506040611acb888289016119f2565b9350506060611adc888289016119f2565b9250506080611aed88828901611a03565b9150509295509295909350565b60008060408385031215611b1057611b10600080fd5b6000611b1c85856119f2565b9250506020611a41858286016119f2565b600060208284031215611b4257611b42600080fd5b600061184d8484611a03565b611a4d816119cd565b602081016103888284611b4e565b60006103886001600160a01b038316611b7c565b90565b6001600160a01b031690565b600061038882611b65565b600061038882611b88565b611a4d81611b93565b602081016103888284611b9e565b60008083601f840112611bca57611bca600080fd5b50813567ffffffffffffffff811115611be557611be5600080fd5b602083019150836020820283011115611c0057611c00600080fd5b9250929050565b60008060008060008060608789031215611c2357611c23600080fd5b863567ffffffffffffffff811115611c3d57611c3d600080fd5b611c4989828a01611bb5565b9650965050602087013567ffffffffffffffff811115611c6b57611c6b600080fd5b611c7789828a01611bb5565b9450945050604087013567ffffffffffffffff811115611c9957611c99600080fd5b611ca589828a01611bb5565b92509250509295509295509295565b602e81526000602082017f5269736b2066756e643a204f6e6c792063616c6c61626c652062792053686f7281526d1d19985b1b0818dbdb9d1c9858dd60921b602082015291505b5060400190565b6020808252810161038881611cb4565b602581526000602082017f5269736b2046756e643a20496e73756666696369656e7420706f6f6c2072657381526432b93b329760d91b60208201529150611cfb565b6020808252810161038881611d12565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150611cfb565b6020808252810161038881611d64565b602881526000602082017f5269736b2046756e643a20496e76616c6964206d696e20616d6f756e7420746f8152670818dbdb9d995c9d60c21b60208201529150611cfb565b6020808252810161038881611dbf565b602681526000602082017f5269736b2046756e643a204c6f6f7073206c696d69742063616e206e6f74206281526565207a65726f60d01b60208201529150611cfb565b6020808252810161038881611e14565b600060ff8216610388565b611a4d81611e67565b602081016103888284611e72565b8015156119e7565b805161038881611e89565b600060208284031215611eb157611eb1600080fd5b600061184d8484611e91565b602b81526000602082017f5265736572766548656c706572733a20436f6d7074726f6c6c6572206164647281526a195cdcc81a5b9d985b1a5960aa1b60208201529150611cfb565b6020808252810161038881611ebd565b60408101611f238285611a4b565b6118676020830184611a4b565b8051610388816119de565b600060208284031215611f5057611f50600080fd5b600061184d8484611f30565b602381526000602082017f5269736b2046756e643a204261736520617373657420646f65736e2774206d618152620e8c6d60eb1b60208201529150611cfb565b6020808252810161038881611f5c565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150611cfb565b6020808252810161038881611fac565b603881526000602082017f5269736b2066756e643a206d61726b65747320616e6420616d6f756e74734f7581527f744d696e2061726520756e657175616c206c656e67746873000000000000000060208201529150611cfb565b6020808252810161038881612002565b603081526000602082017f5269736b2066756e643a206d61726b65747320616e642070617468732061726581526f20756e657175616c206c656e6774687360801b60208201529150611cfb565b602080825281016103888161206c565b634e487b7160e01b600052603260045260246000fd5b6000610388826119cd565b6119e7816120df565b8051610388816120ea565b60006020828403121561211357612113600080fd5b600061184d84846120f3565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561215b5761215b61211f565b6040525050565b600061216d60405190565b90506121798282612135565b919050565b600067ffffffffffffffff8211156121985761219861211f565b601f19601f83011660200192915050565b60005b838110156121c45781810151838201526020016121ac565b838111156121d3576000848401525b50505050565b60006121ec6121e78461217e565b612162565b90508281526020810184848401111561220757612207600080fd5b6122128482856121a9565b509392505050565b600082601f83011261222e5761222e600080fd5b815161184d8482602086016121d9565b8051610388816119fd565b600060a0828403121561225e5761225e600080fd5b61226860a0612162565b825190915067ffffffffffffffff81111561228557612285600080fd5b6122918482850161221a565b82525060206122a284848301611f30565b60208301525060406122b684828501611f30565b60408301525060606122ca8482850161223e565b60608301525060806122de8482850161223e565b60808301525092915050565b6000602082840312156122ff576122ff600080fd5b815167ffffffffffffffff81111561231957612319600080fd5b61184d84828501612249565b602781526000602082017f636f6d7074726f6c6c657220646f65736e277420657869737420706f6f6c20728152666567697374727960c81b60208201529150611cfb565b6020808252810161038881612325565b60148152600060208201731b585c9ad95d081a5cc81b9bdd081b1a5cdd195960621b815291505b5060200190565b6020808252810161038881612379565b6000808335601e19368590030181126123d2576123d2600080fd5b80840192508235915067ffffffffffffffff8211156123f3576123f3600080fd5b6020928301928202360383131561240c5761240c600080fd5b509250929050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561243d5761243d612414565b500190565b6000600019820361245557612455612414565b5060010190565b60006124688383611b4e565b505060200190565b600061186760208401846119f2565b8183526000602084019350818060005b858110156124bc576124a18284612470565b6124ab888261245c565b97506020830192505060010161248f565b509495945050505050565b82818337506000910152565b81835260006020840193506001600160fb1b038311156124f5576124f5600080fd5b6020830292506125068385846124c7565b50500190565b6060808252810161251e81878961247f565b905081810360208301526125338185876124d3565b9050610bd96040830184611a4b565b60408101611f238285611b4e565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572910190815260006123a0565b6020808252810161038881612550565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150611cfb565b6020808252810161038881612592565b604081016125f28285611b4e565b6118676020830184611b4e565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150611cfb565b60208082528101610388816125ff565b602281526000602082017f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d8152611a5d60f21b60208201529150611cfb565b6020808252810161038881612657565b60006126b0825190565b8084526020840193506126c78185602086016121a9565b601f01601f19169290920192915050565b604081016126e68285611b4e565b818103602083015261186481846126a6565b606081016127068286611b4e565b6127136020830185611b4e565b818103604083015261272581846126a6565b95945050505050565b603081526000602082017f5265736572766548656c706572733a20506f6f6c20526567697374727920616481526f191c995cdcc81a5cc81b9bdd081cd95d60821b60208201529150611cfb565b602080825281016103888161272e565b603281526000602082017f5265736572766548656c706572733a2054686520706f6f6c20646f65736e2774815271081cdd5c1c1bdc9d081d1a1948185cdcd95d60721b60208201529150611cfb565b602080825281016103888161278b565b6000602082840312156127ff576127ff600080fd5b600061184d848461223e565b603c81526000602082017f5269736b46756e643a20616d6f756e744f75744d696e206d757374206265206781527f726561746572207468616e203020746f20737761702076546f6b656e0000000060208201529150611cfb565b602080825281016103888161280b565b604081526000602082017f5269736b46756e643a20616d6f756e744f75744d696e2073686f756c6420626581527f2067726561746572207468616e206d696e416d6f756e74546f436f6e7665727460208201529150611cfb565b6020808252810161038881612875565b6000828210156128f1576128f1612414565b500390565b603881526000602082017f5269736b46756e643a20737761702070617468206d757374207374617274207781527f6974682074686520756e6465726c79696e67206173736574000000000000000060208201529150611cfb565b60208082528101610388816128f6565b603581526000602082017f5269736b46756e643a2066696e616c6c792070617468206d75737420626520638152741bdb9d995c9d1a589b194818985cd948185cdcd95d605a1b60208201529150611cfb565b6020808252810161038881612960565b6000610388611b798381565b611a4d816129c2565b604081016129e58285611b4e565b61186760208301846129ce565b60a08101612a008289611a4b565b612a0d6020830188611a4b565b8181036040830152612a2081868861247f565b9050612a2f6060830185611b4e565b6119486080830184611a4b565b600067ffffffffffffffff821115612a5657612a5661211f565b5060209081020190565b6000612a6e6121e784612a3c565b83815290506020808201908402830185811115612a8d57612a8d600080fd5b835b81811015612ab15780612aa2888261223e565b84525060209283019201612a8f565b5050509392505050565b600082601f830112612acf57612acf600080fd5b815161184d848260208601612a60565b600060208284031215612af457612af4600080fd5b815167ffffffffffffffff811115612b0e57612b0e600080fd5b61184d84828501612abb565b602a81526000602082017f5361666545524332303a204552433230206f7065726174696f6e20646964206e8152691bdd081cdd58d8d9595960b21b60208201529150611cfb565b6020808252810161038881612b1a565b634e487b7160e01b600052601260045260246000fd5b600082612b9657612b96612b71565b500490565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b60208201529150611cfb565b6020808252810161038881612b9b565b6000612bf8825190565b612c068185602086016121a9565b9290920192915050565b60006118678284612bee565b6000816000190483118215151615612c3657612c36612414565b500290565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000815291506123a0565b6020808252810161038881612c3b565b6020808252810161186781846126a656fe73776170506f6f6c7341737365747328616464726573735b5d2c75696e743235365b5d2c616464726573735b5d5b5d29a26469706673582212201a148203c199d8f2bfed55ed880e306986cb4527c12cd80a645389c8cbb02ef364736f6c634300080d0033",
613
+ "linkReferences": {},
614
+ "deployedLinkReferences": {}
615
+ }