@venusprotocol/venus-protocol 10.1.0-slim-dev.6 → 10.1.0-slim-dev.7
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.
- package/artifacts/contracts/Admin/VBNBAdmin.sol/VBNBAdmin.json +2 -2
- package/artifacts/contracts/Admin/VBNBAdminStorage.sol/VBNBAdminStorage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerInterface.sol/ComptrollerInterface.json +65 -0
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV10Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV11Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV12Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV13Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV14Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV15Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV16Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV17Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV18Storage.json +736 -0
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV1Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV2Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV3Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV4Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV5Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV6Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV7Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV8Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/ComptrollerV9Storage.json +2 -2
- package/artifacts/contracts/Comptroller/ComptrollerStorage.sol/UnitrollerAdminStorage.json +2 -2
- package/artifacts/contracts/Comptroller/Diamond/Diamond.sol/Diamond.json +34 -2
- package/artifacts/contracts/Comptroller/Diamond/DiamondConsolidated.sol/DiamondConsolidated.json +310 -2
- package/artifacts/contracts/Comptroller/Diamond/facets/FacetBase.sol/FacetBase.json +128 -2
- package/artifacts/contracts/Comptroller/Diamond/facets/FlashLoanFacet.sol/FlashLoanFacet.json +1208 -0
- package/artifacts/contracts/Comptroller/Diamond/facets/MarketFacet.sol/MarketFacet.json +128 -2
- package/artifacts/contracts/Comptroller/Diamond/facets/PolicyFacet.sol/PolicyFacet.json +128 -2
- package/artifacts/contracts/Comptroller/Diamond/facets/RewardFacet.sol/RewardFacet.json +128 -2
- package/artifacts/contracts/Comptroller/Diamond/facets/SetterFacet.sol/SetterFacet.json +197 -2
- package/artifacts/contracts/Comptroller/Diamond/facets/XVSRewardsHelper.sol/XVSRewardsHelper.json +128 -2
- package/artifacts/contracts/Comptroller/Diamond/interfaces/IFlashLoanFacet.sol/IFlashLoanFacet.json +44 -0
- package/artifacts/contracts/Comptroller/Diamond/interfaces/ISetterFacet.sol/ISetterFacet.json +31 -0
- package/artifacts/contracts/Comptroller/Unitroller.sol/Unitroller.json +96 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV10StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV11StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV12StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV13StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV14StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV15StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV16StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV1StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV2StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV3StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV4StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV5StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV6StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV7StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV8StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/ComptrollerV9StorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/ComptrollerStorageR1.sol/UnitrollerAdminStorageR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/DiamondConsolidatedR1.sol/DiamondConsolidatedR1.json +96 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/DiamondR1.sol/DiamondR1.json +2 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/facets/FacetBaseR1.sol/FacetBaseR1.json +96 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/facets/MarketFacetR1.sol/MarketFacetR1.json +96 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/facets/PolicyFacetR1.sol/PolicyFacetR1.json +96 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/facets/RewardFacetR1.sol/RewardFacetR1.json +96 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/facets/SetterFacetR1.sol/SetterFacetR1.json +96 -2
- package/artifacts/contracts/Comptroller/legacy/Diamond/facets/XVSRewardsHelperR1.sol/XVSRewardsHelperR1.json +96 -2
- package/artifacts/contracts/FlashLoan/interfaces/IFlashLoanReceiver.sol/IFlashLoanReceiver.json +60 -0
- package/artifacts/contracts/Lens/ComptrollerLens.sol/ComptrollerLens.json +96 -2
- package/artifacts/contracts/Lens/SnapshotLens.sol/SnapshotLens.json +2 -2
- package/artifacts/contracts/Lens/VenusLens.sol/VenusLens.json +2 -2
- package/artifacts/contracts/Liquidator/Liquidator.sol/Liquidator.json +2 -2
- package/artifacts/contracts/Tokens/VAI/VAIController.sol/VAIController.json +2 -2
- package/artifacts/contracts/Tokens/VAI/VAIControllerStorage.sol/VAIControllerStorageG1.json +2 -2
- package/artifacts/contracts/Tokens/VAI/VAIControllerStorage.sol/VAIControllerStorageG2.json +2 -2
- package/artifacts/contracts/Tokens/VAI/VAIControllerStorage.sol/VAIControllerStorageG3.json +2 -2
- package/artifacts/contracts/Tokens/VAI/VAIControllerStorage.sol/VAIControllerStorageG4.json +2 -2
- package/artifacts/contracts/Tokens/VAI/VAIControllerStorage.sol/VAIUnitrollerAdminStorage.json +2 -2
- package/artifacts/contracts/Tokens/VAI/VAIUnitroller.sol/VAIUnitroller.json +2 -2
- package/artifacts/contracts/Tokens/VTokens/VBNB.sol/VBNB.json +372 -2
- package/artifacts/contracts/Tokens/VTokens/VBep20.sol/VBep20.json +372 -2
- package/artifacts/contracts/Tokens/VTokens/VBep20Delegate.sol/VBep20Delegate.json +372 -2
- package/artifacts/contracts/Tokens/VTokens/VBep20Delegator.sol/VBep20Delegator.json +229 -2
- package/artifacts/contracts/Tokens/VTokens/VBep20Immutable.sol/VBep20Immutable.json +372 -2
- package/artifacts/contracts/Tokens/VTokens/VToken.sol/VToken.json +370 -0
- package/artifacts/contracts/Tokens/VTokens/VTokenInterfaces.sol/VTokenInterface.json +227 -0
- package/artifacts/contracts/Tokens/VTokens/VTokenInterfaces.sol/VTokenStorage.json +54 -2
- package/artifacts/contracts/Tokens/VTokens/VTokenInterfaces.sol/VTokenStorageBase.json +2 -2
- package/artifacts/contracts/Tokens/test/IERC20NonStandard.sol/IERC20NonStandard.json +182 -0
- package/artifacts/contracts/Utils/ErrorReporter.sol/ComptrollerErrorReporter.json +96 -2
- package/artifacts/contracts/Utils/ErrorReporter.sol/TokenErrorReporter.json +2 -2
- package/artifacts/contracts/Utils/ErrorReporter.sol/VAIControllerErrorReporter.json +2 -2
- package/artifacts/contracts/Utils/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +16 -0
- package/artifacts/contracts/Utils/TransientSlot.sol/TransientSlot.json +10 -0
- package/artifacts/contracts/test/BadFlashLoanReceiver.sol/BadFlashLoanReceiver.json +112 -0
- package/artifacts/contracts/test/BorrowDebtFlashLoanReceiver.sol/BorrowDebtFlashLoanReceiver.json +112 -0
- package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.json +310 -2
- package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.json +2 -2
- package/artifacts/contracts/test/ComptrollerMock.sol/ComptrollerMock.json +310 -2
- package/artifacts/contracts/test/ComptrollerMockR1.sol/ComptrollerMockR1.json +96 -2
- package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.json +310 -2
- package/artifacts/contracts/test/DiamondHarness.sol/DiamondHarness.json +34 -2
- package/artifacts/contracts/test/EvilXDelegator.sol/EvilXDelegator.json +253 -2
- package/artifacts/contracts/test/EvilXToken.sol/EvilXToken.json +372 -2
- package/artifacts/contracts/test/EvilXToken.sol/VBep20Scenario.json +372 -2
- package/artifacts/contracts/test/FlashLoanReceiverBase.sol/FlashLoanReceiverBase.json +73 -0
- package/artifacts/contracts/test/InsufficientRepaymentFlashLoanReceiver.sol/InsufficientRepaymentFlashLoanReceiver.json +112 -0
- package/artifacts/contracts/test/LiquidatorHarness.sol/LiquidatorHarness.json +2 -2
- package/artifacts/contracts/test/MockFlashLoanReceiver.sol/MockFlashLoanReceiver.json +112 -0
- package/artifacts/contracts/test/MockProtocolShareReserve.sol/MockProtocolShareReserve.json +2 -2
- package/artifacts/contracts/test/MockVBNB.sol/MockVBNB.json +372 -2
- package/artifacts/contracts/test/SimplePriceOracle.sol/SimplePriceOracle.json +2 -2
- package/artifacts/contracts/test/VAIControllerHarness.sol/VAIControllerHarness.json +2 -2
- package/artifacts/contracts/test/VBep20Harness.sol/VBep20DelegateHarness.json +372 -2
- package/artifacts/contracts/test/VBep20Harness.sol/VBep20DelegateScenario.json +372 -2
- package/artifacts/contracts/test/VBep20Harness.sol/VBep20DelegateScenarioExtra.json +372 -2
- package/artifacts/contracts/test/VBep20Harness.sol/VBep20DelegatorScenario.json +213 -42
- package/artifacts/contracts/test/VBep20Harness.sol/VBep20Harness.json +372 -2
- package/artifacts/contracts/test/VBep20Harness.sol/VBep20Scenario.json +372 -2
- package/artifacts/contracts/test/VBep20Harness.sol/VEvil.json +372 -2
- package/artifacts/contracts/test/VBep20MockDelegate.sol/VBep20MockDelegate.json +372 -2
- package/deployments/bscmainnet_addresses.json +8 -7
- package/deployments/bsctestnet_addresses.json +8 -7
- package/package.json +3 -2
package/artifacts/contracts/Comptroller/legacy/Diamond/facets/SetterFacetR1.sol/SetterFacetR1.json
CHANGED
|
@@ -23,6 +23,26 @@
|
|
|
23
23
|
"name": "EmptyPoolLabel",
|
|
24
24
|
"type": "error"
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
"inputs": [],
|
|
28
|
+
"name": "ExecuteFlashLoanFailed",
|
|
29
|
+
"type": "error"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"inputs": [],
|
|
33
|
+
"name": "FailedToCreateDebtPosition",
|
|
34
|
+
"type": "error"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"inputs": [],
|
|
38
|
+
"name": "FlashLoanNotEnabled",
|
|
39
|
+
"type": "error"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"inputs": [],
|
|
43
|
+
"name": "FlashLoanPausedSystemWide",
|
|
44
|
+
"type": "error"
|
|
45
|
+
},
|
|
26
46
|
{
|
|
27
47
|
"inputs": [
|
|
28
48
|
{
|
|
@@ -39,6 +59,16 @@
|
|
|
39
59
|
"name": "IncompatibleBorrowedAssets",
|
|
40
60
|
"type": "error"
|
|
41
61
|
},
|
|
62
|
+
{
|
|
63
|
+
"inputs": [],
|
|
64
|
+
"name": "InvalidAmount",
|
|
65
|
+
"type": "error"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"inputs": [],
|
|
69
|
+
"name": "InvalidFlashLoanParams",
|
|
70
|
+
"type": "error"
|
|
71
|
+
},
|
|
42
72
|
{
|
|
43
73
|
"inputs": [],
|
|
44
74
|
"name": "InvalidOperationForCorePool",
|
|
@@ -92,11 +122,48 @@
|
|
|
92
122
|
"name": "MarketConfigNotFound",
|
|
93
123
|
"type": "error"
|
|
94
124
|
},
|
|
125
|
+
{
|
|
126
|
+
"inputs": [
|
|
127
|
+
{
|
|
128
|
+
"internalType": "address",
|
|
129
|
+
"name": "vToken",
|
|
130
|
+
"type": "address"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"name": "MarketNotListed",
|
|
134
|
+
"type": "error"
|
|
135
|
+
},
|
|
95
136
|
{
|
|
96
137
|
"inputs": [],
|
|
97
138
|
"name": "MarketNotListedInCorePool",
|
|
98
139
|
"type": "error"
|
|
99
140
|
},
|
|
141
|
+
{
|
|
142
|
+
"inputs": [],
|
|
143
|
+
"name": "NoAssetsRequested",
|
|
144
|
+
"type": "error"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"inputs": [],
|
|
148
|
+
"name": "NotAnApprovedDelegate",
|
|
149
|
+
"type": "error"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"inputs": [
|
|
153
|
+
{
|
|
154
|
+
"internalType": "uint256",
|
|
155
|
+
"name": "repaid",
|
|
156
|
+
"type": "uint256"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"internalType": "uint256",
|
|
160
|
+
"name": "required",
|
|
161
|
+
"type": "uint256"
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
"name": "NotEnoughRepayment",
|
|
165
|
+
"type": "error"
|
|
166
|
+
},
|
|
100
167
|
{
|
|
101
168
|
"inputs": [
|
|
102
169
|
{
|
|
@@ -124,6 +191,33 @@
|
|
|
124
191
|
"name": "PoolMarketNotFound",
|
|
125
192
|
"type": "error"
|
|
126
193
|
},
|
|
194
|
+
{
|
|
195
|
+
"inputs": [
|
|
196
|
+
{
|
|
197
|
+
"internalType": "address",
|
|
198
|
+
"name": "sender",
|
|
199
|
+
"type": "address"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
"name": "SenderNotAuthorizedForFlashLoan",
|
|
203
|
+
"type": "error"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"inputs": [
|
|
207
|
+
{
|
|
208
|
+
"internalType": "uint256",
|
|
209
|
+
"name": "requested",
|
|
210
|
+
"type": "uint256"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"internalType": "uint256",
|
|
214
|
+
"name": "maximum",
|
|
215
|
+
"type": "uint256"
|
|
216
|
+
}
|
|
217
|
+
],
|
|
218
|
+
"name": "TooManyAssetsRequested",
|
|
219
|
+
"type": "error"
|
|
220
|
+
},
|
|
127
221
|
{
|
|
128
222
|
"anonymous": false,
|
|
129
223
|
"inputs": [
|
|
@@ -2004,8 +2098,8 @@
|
|
|
2004
2098
|
"type": "function"
|
|
2005
2099
|
}
|
|
2006
2100
|
],
|
|
2007
|
-
"bytecode": "0x6080604052348015600e575f80fd5b50612dfc8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610443575f3560e01c80637dc0d1d011610237578063bf32442d11610135578063dcfbc0c7116100bf578063f445d70311610084578063f445d70314610a47578063f519fc3014610a74578063f851a44014610a87578063fa6331d814610a99578063fd51a3ad14610aa2575f80fd5b8063dcfbc0c7146109ce578063e37d4b79146109e1578063e4028eee14610a18578063e85a296014610a2b578063e875544614610a3e575f80fd5b8063c7ee005e11610105578063c7ee005e14610982578063d136af4414610681578063d24febad14610995578063d3270f99146109a8578063dce15449146109bb575f80fd5b8063bf32442d14610930578063c32094c71461081f578063c5b4db5514610941578063c5f956af1461096f575f80fd5b80639bb27d62116101c1578063b8324c7c11610186578063b8324c7c14610887578063bb82aa5e146108e2578063bb857450146108f5578063bbb8864a14610908578063bec04f7214610927575f80fd5b80639bb27d621461083b5780639bf34cbb1461084e5780639cfdd9e614610861578063a84310811461066e578063b2eafc3914610874575f80fd5b80638e8f294b116102075780638e8f294b146107a7578063919a3736146107f95780639254f5e51461080c5780639460c8b51461081f57806394b2294b14610832575f80fd5b80637dc0d1d0146107535780638a7dc165146107665780638b3113f6146106945780638c1ac18a14610785575f80fd5b8063425fad5811610344578063530e784f116102ce578063607ef6c111610293578063607ef6c11461051a5780636662c7c914610712578063719f701b14610725578063765513831461072e5780637d172bd514610740575f80fd5b8063530e784f146106ba57806355ee1fe1146106ba5780635cc4fdeb146106cd5780635dd3fc9d146106e05780635f5af1aa146106ff575f80fd5b80634ef233fc116103145780634ef233fc1461065b5780634fd42e171461066e57806351a485e414610681578063522c656b1461069457806352d84d1e146106a7575f80fd5b8063425fad581461060d5780634a584432146106205780634ada90af1461063f5780634e0853db14610648575f80fd5b806324a3d622116103d05780632bc7e29e116103955780632bc7e29e146105a45780632ec04124146105c3578063317b0b77146104f25780634088c73e146105d657806341a18d2c146105e3575f80fd5b806324a3d6221461055857806324aaa2201461056b578063267822471461057e5780632a6a6065146105915780632b5d790c1461056b575f80fd5b806310b983381161041657806310b98338146104b557806312348e96146104f257806317db216314610505578063186db48f1461051a57806321af45691461052d575f80fd5b806302c3bcbb1461044757806304ef9d581461047957806308e0225c146104825780630db4b4e5146104ac575b5f80fd5b6104666104553660046127d7565b60276020525f908152604090205481565b6040519081526020015b60405180910390f35b61046660225481565b6104666104903660046127f2565b601360209081525f928352604080842090915290825290205481565b610466601d5481565b6104e26104c33660046127f2565b602c60209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610470565b610466610500366004612829565b610ab5565b61051861051336600461284d565b610ac5565b005b6105186105283660046128dd565b610b88565b601e54610540906001600160a01b031681565b6040516001600160a01b039091168152602001610470565b600a54610540906001600160a01b031681565b610518610579366004612944565b610bf9565b600154610540906001600160a01b031681565b6104e261059f3660046129c2565b610c6d565b6104666105b23660046127d7565b60166020525f908152604090205481565b6104666105d1366004612829565b610d03565b6018546104e29060ff1681565b6104666105f13660046127f2565b601260209081525f928352604080842090915290825290205481565b6018546104e29062010000900460ff1681565b61046661062e3660046127d7565b601f6020525f908152604090205481565b61046660065481565b6105186106563660046129dd565b610d86565b6105186106693660046127d7565b610e49565b61046661067c366004612829565b610f77565b61051861068f3660046128dd565b610f81565b6105186106a2366004612a0f565b610fec565b6105406106b5366004612829565b610ffa565b6104666106c83660046127d7565b611022565b6104666106db3660046129dd565b61102c565b6104666106ee3660046127d7565b602b6020525f908152604090205481565b61046661070d3660046127d7565b6110b6565b610518610720366004612829565b61114d565b610466601c5481565b6018546104e290610100900460ff1681565b601b54610540906001600160a01b031681565b600454610540906001600160a01b031681565b6104666107743660046127d7565b60146020525f908152604090205481565b6104e26107933660046127d7565b602d6020525f908152604090205460ff1681565b6107da6107b53660046127d7565b60096020525f908152604090208054600182015460039092015460ff91821692911683565b6040805193151584526020840192909252151590820152606001610470565b6105186108073660046127d7565b6111d9565b601554610540906001600160a01b031681565b61046661082d3660046127d7565b611245565b61046660075481565b602554610540906001600160a01b031681565b61046661085c3660046127d7565b61124f565b61046661086f3660046127d7565b6112e5565b602054610540906001600160a01b031681565b6108be6108953660046127d7565b60106020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610470565b600254610540906001600160a01b031681565b6105186109033660046127d7565b61137c565b6104666109163660046127d7565b602a6020525f908152604090205481565b61046660175481565b6033546001600160a01b0316610540565b6109576ec097ce7bc90715b34b9f100000000081565b6040516001600160e01b039091168152602001610470565b602154610540906001600160a01b031681565b603154610540906001600160a01b031681565b6104666109a3366004612a3b565b611411565b602654610540906001600160a01b031681565b6105406109c9366004612a79565b611577565b600354610540906001600160a01b031681565b6108be6109ef3660046127d7565b60116020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b610466610a26366004612a79565b6115ab565b6104e2610a39366004612aa3565b6115b6565b61046660055481565b6104e2610a553660046127f2565b603260209081525f928352604080842090915290825290205460ff1681565b610466610a823660046127d7565b6115fa565b5f54610540906001600160a01b031681565b610466601a5481565b610466610ab0366004612a79565b611691565b5f610abf82611735565b92915050565b610ae6604051806060016040528060328152602001612cb16032913961180f565b6015546001600160a01b03838116911614610b1b576001600160a01b0382165f908152600960205260409020610b1b906118bf565b6001600160a01b038381165f81815260326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527fc080966e9e93529edc1b244180c245bc60f3d86f1e690a17651a5e428746a8cd91015b60405180910390a3505050565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f9201919091525061190492505050565b50505050565b610c668585808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284375f92019190915250869250611a54915050565b5050505050565b5f610cac6040518060400160405280601881526020017f5f73657450726f746f636f6c50617573656428626f6f6c29000000000000000081525061180f565b60188054831515620100000262ff0000199091161790556040517fd7500633dd3ddd74daa7af62f8c8404c7fe4a81da179998db851696bed004b3890610cf790841515815260200190565b60405180910390a15090565b5f60175482808203610d305760405162461bcd60e51b8152600401610d2790612ad2565b60405180910390fd5b610d38611ae3565b601780549085905560408051828152602081018790527f73747d68b346dce1e932bcd238282e7ac84c01569e1f8d0469c222fdc6e9d5a491015b60405180910390a15f9350505b5050919050565b601b546001600160a01b0390811690849081168203610db75760405162461bcd60e51b8152600401610d2790612b1d565b610dbf611ae3565b610dc885611b2f565b601b546001600160a01b031615610de157610de1611b7d565b601b80546001600160a01b0319166001600160a01b038716908117909155601c859055601d84905560408051868152602081018690527f7059037d74ee16b0fb06a4a30f3348dd2635f301f92e373c92899a25a522ef6e910160405180910390a25050505050565b610e51611ae3565b610e5a81611b2f565b5f816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612b5f565b6033549091506001600160a01b03808316911614610f1b5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964207876732076746f6b656e20616464726573730000000000006044820152606401610d27565b6034546040516001600160a01b038085169216907f2565e1579c0926afb7113edbfd85373e85cadaa3e0346f04de19686a2bb86ed1905f90a350603480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf82611d0c565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f92019190915250611dda92505050565b610ff68282611f2a565b5050565b600d8181548110611009575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f610abf82611fde565b5f8183146110a25760405162461bcd60e51b815260206004820152603c60248201527f636f6c6c61746572616c20666163746f7220616e64206c69717569646174696f60448201527f6e207468726573686f6c64206d757374206265207468652073616d65000000006064820152608401610d27565b6110ac8484612075565b90505b9392505050565b600a545f906001600160a01b03908116908390811682036110e95760405162461bcd60e51b8152600401610d2790612b1d565b6110f1611ae3565b6110fa84611b2f565b600a80546001600160a01b038681166001600160a01b03198316179092556040519116907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90610d729083908890612b7a565b601a54818082036111705760405162461bcd60e51b8152600401610d2790612ad2565b611178611ae3565b601b546001600160a01b03161561119157611191611b7d565b601a80549084905560408051828152602081018690527fe81d4ac15e5afa1e708e66664eddc697177423d950d133bda8262d8885e6da3b91015b60405180910390a150505050565b6111e1611ae3565b6111ea81611b2f565b6033546040516001600160a01b038084169216907ffe7fd0d872def0f65050e9f38fc6691d0c192c694a56f09b04bec5fb2ea61f2b905f90a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf8261222c565b6026545f906001600160a01b03908116908390811682036112825760405162461bcd60e51b8152600401610d2790612b1d565b61128a611ae3565b61129384611b2f565b602680546001600160a01b038681166001600160a01b0319831681179093556040519116917f0f7eb572d1b3053a0a3a33c04151364cf88d163182a5e4e1088cb8e52321e08a91610d72918491612b7a565b6015545f906001600160a01b03908116908390811682036113185760405162461bcd60e51b8152600401610d2790612b1d565b611320611ae3565b61132984611b2f565b601580546001600160a01b038681166001600160a01b03198316179092556040519116907fe1ddcb2dab8e5b03cfc8c67a0d5861d91d16f7bd2612fd381faf4541d212c9b290610d729083908890612b7a565b6025546001600160a01b03908116908290811682036113ad5760405162461bcd60e51b8152600401610d2790612b1d565b6113b5611ae3565b6113be83611b2f565b602580546001600160a01b038581166001600160a01b03198316179092556040519116907fa5ea5616d5f6dbbaa62fdfcf3856723216eed485c394d9e51ec8e6d40e1d1ac1906111cb9083908790612b7a565b6020545f90611428906001600160a01b03166122a1565b670de0b6b3a764000082106114715760405162461bcd60e51b815260206004820152600f60248201526e70657263656e74203e3d203130302560881b6044820152606401610d27565b61147a84611b2f565b61148383611b2f565b6020805460218054602280546001600160a01b03198086166001600160a01b038c8116919091179097558316898716179093558690556040519284169316917f29f06ea15931797ebaed313d81d100963dc22cb213cb4ce2737b5a62b1a8b1e8906114f19085908a90612b7a565b60405180910390a17f8de763046d7b8f08b6c3d03543de1d615309417842bb5d2d62f110f65809ddac828760405161152a929190612b7a565b60405180910390a160408051828152602081018790527f0893f8f4101baaabbeb513f96761e7a36eb837403c82cc651c292a4abdc94ed7910160405180910390a15f979650505050505050565b6008602052815f5260405f208181548110611590575f80fd5b5f918252602090912001546001600160a01b03169150829050565b5f6110af8383612075565b6001600160a01b0382165f908152602960205260408120818360088111156115e0576115e0612b09565b815260208101919091526040015f205460ff169392505050565b6028545f906001600160a01b039081169083908116820361162d5760405162461bcd60e51b8152600401610d2790612b1d565b611635611ae3565b61163e84611b2f565b602880546001600160a01b038681166001600160a01b03198316179092556040519116907f0f1eca7612e020f6e4582bcead0573eba4b5f7b56668754c6aed82ef12057dd490610d729083908890612b7a565b5f61169a6122fc565b60185460ff161580156116b55750601854610100900460ff16155b6116f15760405162461bcd60e51b815260206004820152600d60248201526c159052481a5cc81c185d5cd959609a1b6044820152606401610d27565b6015546001600160a01b031633146117165761170f600e601661234a565b9050610abf565b6001600160a01b0383165f9081526016602052604081208390556110af565b5f600554828082036117595760405162461bcd60e51b8152600401610d2790612ad2565b611761611ae3565b604080516020808201835286825282518082018452670c7d713b49da00008152835191820190935266b1a2bc2ec5000081528151835192939210806117a7575082518151115b156117c1576117b760058061234a565b9550505050610d7f565b600580549088905560408051828152602081018a90527f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9910160405180910390a15f98975050505050505050565b6028546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab906118419033908590600401612bc2565b602060405180830381865afa15801561185c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118809190612be5565b6118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b50565b805460ff166118bc5760405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606401610d27565b611925604051806060016040528060298152602001612d796029913961180f565b81518151811580159061193757508082145b6119735760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c665783818151811061198f5761198f612c00565b6020026020010151601f5f8784815181106119ac576119ac612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055508481815181106119e9576119e9612c00565b60200260200101516001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6858381518110611a2d57611a2d612c00565b6020026020010151604051611a4491815260200190565b60405180910390a2600101611975565b611a75604051806060016040528060298152602001612ce36029913961180f565b825182515f5b82811015611adb575f5b82811015611ad257611aca878381518110611aa257611aa2612c00565b6020026020010151878381518110611abc57611abc612c00565b6020026020010151876123c1565b600101611a85565b50600101611a7b565b505050505050565b5f546001600160a01b03163314611b2d5760405162461bcd60e51b815260206004820152600e60248201526d37b7363c9030b236b4b71031b0b760911b6044820152606401610d27565b565b6001600160a01b0381166118bc5760405162461bcd60e51b815260206004820152601560248201527463616e2774206265207a65726f206164647265737360581b6044820152606401610d27565b601c541580611b8d5750601c5443105b15611b9457565b6033546040516370a0823160e01b81523060048201526001600160a01b03909116905f9082906370a0823190602401602060405180830381865afa158015611bde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c029190612c14565b9050805f03611c0f575050565b5f80611c1d43601c54612479565b90505f611c2c601a54836124b2565b9050808410611c3d57809250611c41565b8392505b601d54831015611c52575050505050565b43601c55601b54611c70906001600160a01b038781169116856124f3565b6040518381527ff6d4b8f74d85a6e2d7a50225957b8a6cfec69ad92f5905627260541aa0a5565d9060200160405180910390a1601b5f9054906101000a90046001600160a01b03166001600160a01b031663faa1809e6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611cef575f80fd5b505af1158015611d01573d5f803e3d5ffd5b505050505050505050565b5f60065482808203611d305760405162461bcd60e51b8152600401610d2790612ad2565b611d51604051806060016040528060218152602001612d0c6021913961180f565b670de0b6b3a7640000841015611d9c5760405162461bcd60e51b815260206004820152601060248201526f0d2dcc6cadce8d2ecca40784062ca62760831b6044820152606401610d27565b600680549085905560408051828152602081018790527faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec13169101610d72565b611dfb604051806060016040528060298152602001612d2d6029913961180f565b815181518115801590611e0d57508082145b611e495760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c6657838181518110611e6557611e65612c00565b602002602001015160275f878481518110611e8257611e82612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550848181518110611ebf57611ebf612c00565b60200260200101516001600160a01b03167f9e0ad9cee10bdf36b7fbd38910c0bdff0f275ace679b45b922381c2723d676f8858381518110611f0357611f03612c00565b6020026020010151604051611f1a91815260200190565b60405180910390a2600101611e4b565b611f4b604051806060016040528060238152602001612d566023913961180f565b6015546001600160a01b03838116911614611f80576001600160a01b0382165f908152600960205260409020611f80906118bf565b6001600160a01b0382165f818152602d6020908152604091829020805460ff191685151590811790915591519182527f03561d5280ebb02280893b1d60978e4a27e7654a149c5d0e7c2cf65389ce1694910160405180910390a25050565b6004545f906001600160a01b03908116908390811682036120115760405162461bcd60e51b8152600401610d2790612b1d565b612019611ae3565b61202284611b2f565b600480546001600160a01b038681166001600160a01b03198316179092556040519116907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e2290610d729083908890612b7a565b6001600160a01b0382165f90815260096020526040812060010154828082036120b05760405162461bcd60e51b8152600401610d2790612ad2565b6120d1604051806060016040528060258152602001612da26025913961180f565b6120da85611b2f565b6001600160a01b0385165f9081526009602052604090206120fa816118bf565b60408051602080820183528782528251908101909252670c7d713b49da000082529061212881835190511090565b15612143576121396006600861234a565b9550505050612224565b86158015906121bd57506004805460405163fc57d4df60e01b81526001600160a01b038b81169382019390935291169063fc57d4df90602401602060405180830381865afa158015612197573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121bb9190612c14565b155b156121ce57612139600d600961234a565b6001830180549088905560408051828152602081018a90526001600160a01b038b16917f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc5910160405180910390a25f9650505050505b505092915050565b5f612235611ae3565b61223e82611b2f565b603180546001600160a01b038481166001600160a01b03198316179092556040519116907fcb20dab7409e4fb972d9adccb39530520b226ce6940d85c9523a499b950b6ea3906122919083908690612b7a565b60405180910390a15f9392505050565b5f546001600160a01b03163314806118805750336001600160a01b038216146118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b60185462010000900460ff1615611b2d5760405162461bcd60e51b81526020600482015260126024820152711c1c9bdd1bd8dbdb081a5cc81c185d5cd95960721b6044820152606401610d27565b5f7f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601481111561237e5761237e612b09565b83601a81111561239057612390612b09565b6040805192835260208301919091525f9082015260600160405180910390a18260148111156110af576110af612b09565b6001600160a01b0383165f9081526009602052604090206123e1906118bf565b6001600160a01b0383165f908152602960205260408120829184600881111561240c5761240c612b09565b815260208101919091526040015f20805460ff191691151591909117905581600881111561243c5761243c612b09565b836001600160a01b03167f35007a986bcd36d2f73fc7f1b73762e12eadb4406dd163194950fd3b5a6a827d83604051610b7b911515815260200190565b5f6110af8383604051806040016040528060158152602001747375627472616374696f6e20756e646572666c6f7760581b81525061254a565b5f6110af83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250612578565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526125459084906125d1565b505050565b5f818484111561256d5760405162461bcd60e51b8152600401610d279190612c2b565b506110ac8385612c51565b5f831580612584575082155b1561259057505f6110af565b5f61259b8486612c64565b9050836125a88683612c7b565b1483906125c85760405162461bcd60e51b8152600401610d279190612c2b565b50949350505050565b5f612625826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126a49092919063ffffffff16565b905080515f14806126455750808060200190518101906126459190612be5565b6125455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610d27565b60606110ac84845f85855f80866001600160a01b031685876040516126c99190612c9a565b5f6040518083038185875af1925050503d805f8114612703576040519150601f19603f3d011682016040523d82523d5f602084013e612708565b606091505b509150915061271987838387612726565b925050505b949350505050565b606083156127945782515f0361278d576001600160a01b0385163b61278d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d27565b508161271e565b61271e83838151156127a95781518083602001fd5b8060405162461bcd60e51b8152600401610d279190612c2b565b6001600160a01b03811681146118bc575f80fd5b5f602082840312156127e7575f80fd5b81356110af816127c3565b5f8060408385031215612803575f80fd5b823561280e816127c3565b9150602083013561281e816127c3565b809150509250929050565b5f60208284031215612839575f80fd5b5035919050565b80151581146118bc575f80fd5b5f805f6060848603121561285f575f80fd5b833561286a816127c3565b9250602084013561287a816127c3565b9150604084013561288a81612840565b809150509250925092565b5f8083601f8401126128a5575f80fd5b50813567ffffffffffffffff8111156128bc575f80fd5b6020830191508360208260051b85010111156128d6575f80fd5b9250929050565b5f805f80604085870312156128f0575f80fd5b843567ffffffffffffffff80821115612907575f80fd5b61291388838901612895565b9096509450602087013591508082111561292b575f80fd5b5061293887828801612895565b95989497509550505050565b5f805f805f60608688031215612958575f80fd5b853567ffffffffffffffff8082111561296f575f80fd5b61297b89838a01612895565b90975095506020880135915080821115612993575f80fd5b506129a088828901612895565b90945092505060408601356129b481612840565b809150509295509295909350565b5f602082840312156129d2575f80fd5b81356110af81612840565b5f805f606084860312156129ef575f80fd5b83356129fa816127c3565b95602085013595506040909401359392505050565b5f8060408385031215612a20575f80fd5b8235612a2b816127c3565b9150602083013561281e81612840565b5f805f60608486031215612a4d575f80fd5b8335612a58816127c3565b92506020840135612a68816127c3565b929592945050506040919091013590565b5f8060408385031215612a8a575f80fd5b8235612a95816127c3565b946020939093013593505050565b5f8060408385031215612ab4575f80fd5b8235612abf816127c3565b915060208301356009811061281e575f80fd5b6020808252601e908201527f6f6c642076616c75652069732073616d65206173206e65772076616c75650000604082015260600190565b634e487b7160e01b5f52602160045260245ffd5b60208082526022908201527f6f6c6420616464726573732069732073616d65206173206e6577206164647265604082015261737360f01b606082015260800190565b5f60208284031215612b6f575f80fd5b81516110af816127c3565b6001600160a01b0392831681529116602082015260400190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906110ac90830184612b94565b5f60208284031215612bf5575f80fd5b81516110af81612840565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612c24575f80fd5b5051919050565b602081525f6110af6020830184612b94565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf612c3d565b8082028115828204841417610abf57610abf612c3d565b5f82612c9557634e487b7160e01b5f52601260045260245ffd5b500490565b5f82518060208501845e5f92019182525091905056fe5f736574466f726365644c69717569646174696f6e466f725573657228616464726573732c616464726573732c626f6f6c295f736574416374696f6e7350617573656428616464726573735b5d2c75696e74385b5d2c626f6f6c295f7365744c69717569646174696f6e496e63656e746976652875696e74323536295f7365744d61726b6574537570706c794361707328616464726573735b5d2c75696e743235365b5d295f736574466f726365644c69717569646174696f6e28616464726573732c626f6f6c295f7365744d61726b6574426f72726f774361707328616464726573735b5d2c75696e743235365b5d295f736574436f6c6c61746572616c466163746f7228616464726573732c75696e7432353629a264697066735822122041a0d749cda556c6f68991efdddeafab2d7a9e80f2c4ab16fb03f8612f76ca9c64736f6c63430008190033",
|
|
2008
|
-
"deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610443575f3560e01c80637dc0d1d011610237578063bf32442d11610135578063dcfbc0c7116100bf578063f445d70311610084578063f445d70314610a47578063f519fc3014610a74578063f851a44014610a87578063fa6331d814610a99578063fd51a3ad14610aa2575f80fd5b8063dcfbc0c7146109ce578063e37d4b79146109e1578063e4028eee14610a18578063e85a296014610a2b578063e875544614610a3e575f80fd5b8063c7ee005e11610105578063c7ee005e14610982578063d136af4414610681578063d24febad14610995578063d3270f99146109a8578063dce15449146109bb575f80fd5b8063bf32442d14610930578063c32094c71461081f578063c5b4db5514610941578063c5f956af1461096f575f80fd5b80639bb27d62116101c1578063b8324c7c11610186578063b8324c7c14610887578063bb82aa5e146108e2578063bb857450146108f5578063bbb8864a14610908578063bec04f7214610927575f80fd5b80639bb27d621461083b5780639bf34cbb1461084e5780639cfdd9e614610861578063a84310811461066e578063b2eafc3914610874575f80fd5b80638e8f294b116102075780638e8f294b146107a7578063919a3736146107f95780639254f5e51461080c5780639460c8b51461081f57806394b2294b14610832575f80fd5b80637dc0d1d0146107535780638a7dc165146107665780638b3113f6146106945780638c1ac18a14610785575f80fd5b8063425fad5811610344578063530e784f116102ce578063607ef6c111610293578063607ef6c11461051a5780636662c7c914610712578063719f701b14610725578063765513831461072e5780637d172bd514610740575f80fd5b8063530e784f146106ba57806355ee1fe1146106ba5780635cc4fdeb146106cd5780635dd3fc9d146106e05780635f5af1aa146106ff575f80fd5b80634ef233fc116103145780634ef233fc1461065b5780634fd42e171461066e57806351a485e414610681578063522c656b1461069457806352d84d1e146106a7575f80fd5b8063425fad581461060d5780634a584432146106205780634ada90af1461063f5780634e0853db14610648575f80fd5b806324a3d622116103d05780632bc7e29e116103955780632bc7e29e146105a45780632ec04124146105c3578063317b0b77146104f25780634088c73e146105d657806341a18d2c146105e3575f80fd5b806324a3d6221461055857806324aaa2201461056b578063267822471461057e5780632a6a6065146105915780632b5d790c1461056b575f80fd5b806310b983381161041657806310b98338146104b557806312348e96146104f257806317db216314610505578063186db48f1461051a57806321af45691461052d575f80fd5b806302c3bcbb1461044757806304ef9d581461047957806308e0225c146104825780630db4b4e5146104ac575b5f80fd5b6104666104553660046127d7565b60276020525f908152604090205481565b6040519081526020015b60405180910390f35b61046660225481565b6104666104903660046127f2565b601360209081525f928352604080842090915290825290205481565b610466601d5481565b6104e26104c33660046127f2565b602c60209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610470565b610466610500366004612829565b610ab5565b61051861051336600461284d565b610ac5565b005b6105186105283660046128dd565b610b88565b601e54610540906001600160a01b031681565b6040516001600160a01b039091168152602001610470565b600a54610540906001600160a01b031681565b610518610579366004612944565b610bf9565b600154610540906001600160a01b031681565b6104e261059f3660046129c2565b610c6d565b6104666105b23660046127d7565b60166020525f908152604090205481565b6104666105d1366004612829565b610d03565b6018546104e29060ff1681565b6104666105f13660046127f2565b601260209081525f928352604080842090915290825290205481565b6018546104e29062010000900460ff1681565b61046661062e3660046127d7565b601f6020525f908152604090205481565b61046660065481565b6105186106563660046129dd565b610d86565b6105186106693660046127d7565b610e49565b61046661067c366004612829565b610f77565b61051861068f3660046128dd565b610f81565b6105186106a2366004612a0f565b610fec565b6105406106b5366004612829565b610ffa565b6104666106c83660046127d7565b611022565b6104666106db3660046129dd565b61102c565b6104666106ee3660046127d7565b602b6020525f908152604090205481565b61046661070d3660046127d7565b6110b6565b610518610720366004612829565b61114d565b610466601c5481565b6018546104e290610100900460ff1681565b601b54610540906001600160a01b031681565b600454610540906001600160a01b031681565b6104666107743660046127d7565b60146020525f908152604090205481565b6104e26107933660046127d7565b602d6020525f908152604090205460ff1681565b6107da6107b53660046127d7565b60096020525f908152604090208054600182015460039092015460ff91821692911683565b6040805193151584526020840192909252151590820152606001610470565b6105186108073660046127d7565b6111d9565b601554610540906001600160a01b031681565b61046661082d3660046127d7565b611245565b61046660075481565b602554610540906001600160a01b031681565b61046661085c3660046127d7565b61124f565b61046661086f3660046127d7565b6112e5565b602054610540906001600160a01b031681565b6108be6108953660046127d7565b60106020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610470565b600254610540906001600160a01b031681565b6105186109033660046127d7565b61137c565b6104666109163660046127d7565b602a6020525f908152604090205481565b61046660175481565b6033546001600160a01b0316610540565b6109576ec097ce7bc90715b34b9f100000000081565b6040516001600160e01b039091168152602001610470565b602154610540906001600160a01b031681565b603154610540906001600160a01b031681565b6104666109a3366004612a3b565b611411565b602654610540906001600160a01b031681565b6105406109c9366004612a79565b611577565b600354610540906001600160a01b031681565b6108be6109ef3660046127d7565b60116020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b610466610a26366004612a79565b6115ab565b6104e2610a39366004612aa3565b6115b6565b61046660055481565b6104e2610a553660046127f2565b603260209081525f928352604080842090915290825290205460ff1681565b610466610a823660046127d7565b6115fa565b5f54610540906001600160a01b031681565b610466601a5481565b610466610ab0366004612a79565b611691565b5f610abf82611735565b92915050565b610ae6604051806060016040528060328152602001612cb16032913961180f565b6015546001600160a01b03838116911614610b1b576001600160a01b0382165f908152600960205260409020610b1b906118bf565b6001600160a01b038381165f81815260326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527fc080966e9e93529edc1b244180c245bc60f3d86f1e690a17651a5e428746a8cd91015b60405180910390a3505050565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f9201919091525061190492505050565b50505050565b610c668585808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284375f92019190915250869250611a54915050565b5050505050565b5f610cac6040518060400160405280601881526020017f5f73657450726f746f636f6c50617573656428626f6f6c29000000000000000081525061180f565b60188054831515620100000262ff0000199091161790556040517fd7500633dd3ddd74daa7af62f8c8404c7fe4a81da179998db851696bed004b3890610cf790841515815260200190565b60405180910390a15090565b5f60175482808203610d305760405162461bcd60e51b8152600401610d2790612ad2565b60405180910390fd5b610d38611ae3565b601780549085905560408051828152602081018790527f73747d68b346dce1e932bcd238282e7ac84c01569e1f8d0469c222fdc6e9d5a491015b60405180910390a15f9350505b5050919050565b601b546001600160a01b0390811690849081168203610db75760405162461bcd60e51b8152600401610d2790612b1d565b610dbf611ae3565b610dc885611b2f565b601b546001600160a01b031615610de157610de1611b7d565b601b80546001600160a01b0319166001600160a01b038716908117909155601c859055601d84905560408051868152602081018690527f7059037d74ee16b0fb06a4a30f3348dd2635f301f92e373c92899a25a522ef6e910160405180910390a25050505050565b610e51611ae3565b610e5a81611b2f565b5f816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612b5f565b6033549091506001600160a01b03808316911614610f1b5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964207876732076746f6b656e20616464726573730000000000006044820152606401610d27565b6034546040516001600160a01b038085169216907f2565e1579c0926afb7113edbfd85373e85cadaa3e0346f04de19686a2bb86ed1905f90a350603480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf82611d0c565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f92019190915250611dda92505050565b610ff68282611f2a565b5050565b600d8181548110611009575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f610abf82611fde565b5f8183146110a25760405162461bcd60e51b815260206004820152603c60248201527f636f6c6c61746572616c20666163746f7220616e64206c69717569646174696f60448201527f6e207468726573686f6c64206d757374206265207468652073616d65000000006064820152608401610d27565b6110ac8484612075565b90505b9392505050565b600a545f906001600160a01b03908116908390811682036110e95760405162461bcd60e51b8152600401610d2790612b1d565b6110f1611ae3565b6110fa84611b2f565b600a80546001600160a01b038681166001600160a01b03198316179092556040519116907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90610d729083908890612b7a565b601a54818082036111705760405162461bcd60e51b8152600401610d2790612ad2565b611178611ae3565b601b546001600160a01b03161561119157611191611b7d565b601a80549084905560408051828152602081018690527fe81d4ac15e5afa1e708e66664eddc697177423d950d133bda8262d8885e6da3b91015b60405180910390a150505050565b6111e1611ae3565b6111ea81611b2f565b6033546040516001600160a01b038084169216907ffe7fd0d872def0f65050e9f38fc6691d0c192c694a56f09b04bec5fb2ea61f2b905f90a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf8261222c565b6026545f906001600160a01b03908116908390811682036112825760405162461bcd60e51b8152600401610d2790612b1d565b61128a611ae3565b61129384611b2f565b602680546001600160a01b038681166001600160a01b0319831681179093556040519116917f0f7eb572d1b3053a0a3a33c04151364cf88d163182a5e4e1088cb8e52321e08a91610d72918491612b7a565b6015545f906001600160a01b03908116908390811682036113185760405162461bcd60e51b8152600401610d2790612b1d565b611320611ae3565b61132984611b2f565b601580546001600160a01b038681166001600160a01b03198316179092556040519116907fe1ddcb2dab8e5b03cfc8c67a0d5861d91d16f7bd2612fd381faf4541d212c9b290610d729083908890612b7a565b6025546001600160a01b03908116908290811682036113ad5760405162461bcd60e51b8152600401610d2790612b1d565b6113b5611ae3565b6113be83611b2f565b602580546001600160a01b038581166001600160a01b03198316179092556040519116907fa5ea5616d5f6dbbaa62fdfcf3856723216eed485c394d9e51ec8e6d40e1d1ac1906111cb9083908790612b7a565b6020545f90611428906001600160a01b03166122a1565b670de0b6b3a764000082106114715760405162461bcd60e51b815260206004820152600f60248201526e70657263656e74203e3d203130302560881b6044820152606401610d27565b61147a84611b2f565b61148383611b2f565b6020805460218054602280546001600160a01b03198086166001600160a01b038c8116919091179097558316898716179093558690556040519284169316917f29f06ea15931797ebaed313d81d100963dc22cb213cb4ce2737b5a62b1a8b1e8906114f19085908a90612b7a565b60405180910390a17f8de763046d7b8f08b6c3d03543de1d615309417842bb5d2d62f110f65809ddac828760405161152a929190612b7a565b60405180910390a160408051828152602081018790527f0893f8f4101baaabbeb513f96761e7a36eb837403c82cc651c292a4abdc94ed7910160405180910390a15f979650505050505050565b6008602052815f5260405f208181548110611590575f80fd5b5f918252602090912001546001600160a01b03169150829050565b5f6110af8383612075565b6001600160a01b0382165f908152602960205260408120818360088111156115e0576115e0612b09565b815260208101919091526040015f205460ff169392505050565b6028545f906001600160a01b039081169083908116820361162d5760405162461bcd60e51b8152600401610d2790612b1d565b611635611ae3565b61163e84611b2f565b602880546001600160a01b038681166001600160a01b03198316179092556040519116907f0f1eca7612e020f6e4582bcead0573eba4b5f7b56668754c6aed82ef12057dd490610d729083908890612b7a565b5f61169a6122fc565b60185460ff161580156116b55750601854610100900460ff16155b6116f15760405162461bcd60e51b815260206004820152600d60248201526c159052481a5cc81c185d5cd959609a1b6044820152606401610d27565b6015546001600160a01b031633146117165761170f600e601661234a565b9050610abf565b6001600160a01b0383165f9081526016602052604081208390556110af565b5f600554828082036117595760405162461bcd60e51b8152600401610d2790612ad2565b611761611ae3565b604080516020808201835286825282518082018452670c7d713b49da00008152835191820190935266b1a2bc2ec5000081528151835192939210806117a7575082518151115b156117c1576117b760058061234a565b9550505050610d7f565b600580549088905560408051828152602081018a90527f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9910160405180910390a15f98975050505050505050565b6028546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab906118419033908590600401612bc2565b602060405180830381865afa15801561185c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118809190612be5565b6118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b50565b805460ff166118bc5760405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606401610d27565b611925604051806060016040528060298152602001612d796029913961180f565b81518151811580159061193757508082145b6119735760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c665783818151811061198f5761198f612c00565b6020026020010151601f5f8784815181106119ac576119ac612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055508481815181106119e9576119e9612c00565b60200260200101516001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6858381518110611a2d57611a2d612c00565b6020026020010151604051611a4491815260200190565b60405180910390a2600101611975565b611a75604051806060016040528060298152602001612ce36029913961180f565b825182515f5b82811015611adb575f5b82811015611ad257611aca878381518110611aa257611aa2612c00565b6020026020010151878381518110611abc57611abc612c00565b6020026020010151876123c1565b600101611a85565b50600101611a7b565b505050505050565b5f546001600160a01b03163314611b2d5760405162461bcd60e51b815260206004820152600e60248201526d37b7363c9030b236b4b71031b0b760911b6044820152606401610d27565b565b6001600160a01b0381166118bc5760405162461bcd60e51b815260206004820152601560248201527463616e2774206265207a65726f206164647265737360581b6044820152606401610d27565b601c541580611b8d5750601c5443105b15611b9457565b6033546040516370a0823160e01b81523060048201526001600160a01b03909116905f9082906370a0823190602401602060405180830381865afa158015611bde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c029190612c14565b9050805f03611c0f575050565b5f80611c1d43601c54612479565b90505f611c2c601a54836124b2565b9050808410611c3d57809250611c41565b8392505b601d54831015611c52575050505050565b43601c55601b54611c70906001600160a01b038781169116856124f3565b6040518381527ff6d4b8f74d85a6e2d7a50225957b8a6cfec69ad92f5905627260541aa0a5565d9060200160405180910390a1601b5f9054906101000a90046001600160a01b03166001600160a01b031663faa1809e6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611cef575f80fd5b505af1158015611d01573d5f803e3d5ffd5b505050505050505050565b5f60065482808203611d305760405162461bcd60e51b8152600401610d2790612ad2565b611d51604051806060016040528060218152602001612d0c6021913961180f565b670de0b6b3a7640000841015611d9c5760405162461bcd60e51b815260206004820152601060248201526f0d2dcc6cadce8d2ecca40784062ca62760831b6044820152606401610d27565b600680549085905560408051828152602081018790527faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec13169101610d72565b611dfb604051806060016040528060298152602001612d2d6029913961180f565b815181518115801590611e0d57508082145b611e495760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c6657838181518110611e6557611e65612c00565b602002602001015160275f878481518110611e8257611e82612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550848181518110611ebf57611ebf612c00565b60200260200101516001600160a01b03167f9e0ad9cee10bdf36b7fbd38910c0bdff0f275ace679b45b922381c2723d676f8858381518110611f0357611f03612c00565b6020026020010151604051611f1a91815260200190565b60405180910390a2600101611e4b565b611f4b604051806060016040528060238152602001612d566023913961180f565b6015546001600160a01b03838116911614611f80576001600160a01b0382165f908152600960205260409020611f80906118bf565b6001600160a01b0382165f818152602d6020908152604091829020805460ff191685151590811790915591519182527f03561d5280ebb02280893b1d60978e4a27e7654a149c5d0e7c2cf65389ce1694910160405180910390a25050565b6004545f906001600160a01b03908116908390811682036120115760405162461bcd60e51b8152600401610d2790612b1d565b612019611ae3565b61202284611b2f565b600480546001600160a01b038681166001600160a01b03198316179092556040519116907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e2290610d729083908890612b7a565b6001600160a01b0382165f90815260096020526040812060010154828082036120b05760405162461bcd60e51b8152600401610d2790612ad2565b6120d1604051806060016040528060258152602001612da26025913961180f565b6120da85611b2f565b6001600160a01b0385165f9081526009602052604090206120fa816118bf565b60408051602080820183528782528251908101909252670c7d713b49da000082529061212881835190511090565b15612143576121396006600861234a565b9550505050612224565b86158015906121bd57506004805460405163fc57d4df60e01b81526001600160a01b038b81169382019390935291169063fc57d4df90602401602060405180830381865afa158015612197573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121bb9190612c14565b155b156121ce57612139600d600961234a565b6001830180549088905560408051828152602081018a90526001600160a01b038b16917f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc5910160405180910390a25f9650505050505b505092915050565b5f612235611ae3565b61223e82611b2f565b603180546001600160a01b038481166001600160a01b03198316179092556040519116907fcb20dab7409e4fb972d9adccb39530520b226ce6940d85c9523a499b950b6ea3906122919083908690612b7a565b60405180910390a15f9392505050565b5f546001600160a01b03163314806118805750336001600160a01b038216146118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b60185462010000900460ff1615611b2d5760405162461bcd60e51b81526020600482015260126024820152711c1c9bdd1bd8dbdb081a5cc81c185d5cd95960721b6044820152606401610d27565b5f7f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601481111561237e5761237e612b09565b83601a81111561239057612390612b09565b6040805192835260208301919091525f9082015260600160405180910390a18260148111156110af576110af612b09565b6001600160a01b0383165f9081526009602052604090206123e1906118bf565b6001600160a01b0383165f908152602960205260408120829184600881111561240c5761240c612b09565b815260208101919091526040015f20805460ff191691151591909117905581600881111561243c5761243c612b09565b836001600160a01b03167f35007a986bcd36d2f73fc7f1b73762e12eadb4406dd163194950fd3b5a6a827d83604051610b7b911515815260200190565b5f6110af8383604051806040016040528060158152602001747375627472616374696f6e20756e646572666c6f7760581b81525061254a565b5f6110af83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250612578565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526125459084906125d1565b505050565b5f818484111561256d5760405162461bcd60e51b8152600401610d279190612c2b565b506110ac8385612c51565b5f831580612584575082155b1561259057505f6110af565b5f61259b8486612c64565b9050836125a88683612c7b565b1483906125c85760405162461bcd60e51b8152600401610d279190612c2b565b50949350505050565b5f612625826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126a49092919063ffffffff16565b905080515f14806126455750808060200190518101906126459190612be5565b6125455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610d27565b60606110ac84845f85855f80866001600160a01b031685876040516126c99190612c9a565b5f6040518083038185875af1925050503d805f8114612703576040519150601f19603f3d011682016040523d82523d5f602084013e612708565b606091505b509150915061271987838387612726565b925050505b949350505050565b606083156127945782515f0361278d576001600160a01b0385163b61278d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d27565b508161271e565b61271e83838151156127a95781518083602001fd5b8060405162461bcd60e51b8152600401610d279190612c2b565b6001600160a01b03811681146118bc575f80fd5b5f602082840312156127e7575f80fd5b81356110af816127c3565b5f8060408385031215612803575f80fd5b823561280e816127c3565b9150602083013561281e816127c3565b809150509250929050565b5f60208284031215612839575f80fd5b5035919050565b80151581146118bc575f80fd5b5f805f6060848603121561285f575f80fd5b833561286a816127c3565b9250602084013561287a816127c3565b9150604084013561288a81612840565b809150509250925092565b5f8083601f8401126128a5575f80fd5b50813567ffffffffffffffff8111156128bc575f80fd5b6020830191508360208260051b85010111156128d6575f80fd5b9250929050565b5f805f80604085870312156128f0575f80fd5b843567ffffffffffffffff80821115612907575f80fd5b61291388838901612895565b9096509450602087013591508082111561292b575f80fd5b5061293887828801612895565b95989497509550505050565b5f805f805f60608688031215612958575f80fd5b853567ffffffffffffffff8082111561296f575f80fd5b61297b89838a01612895565b90975095506020880135915080821115612993575f80fd5b506129a088828901612895565b90945092505060408601356129b481612840565b809150509295509295909350565b5f602082840312156129d2575f80fd5b81356110af81612840565b5f805f606084860312156129ef575f80fd5b83356129fa816127c3565b95602085013595506040909401359392505050565b5f8060408385031215612a20575f80fd5b8235612a2b816127c3565b9150602083013561281e81612840565b5f805f60608486031215612a4d575f80fd5b8335612a58816127c3565b92506020840135612a68816127c3565b929592945050506040919091013590565b5f8060408385031215612a8a575f80fd5b8235612a95816127c3565b946020939093013593505050565b5f8060408385031215612ab4575f80fd5b8235612abf816127c3565b915060208301356009811061281e575f80fd5b6020808252601e908201527f6f6c642076616c75652069732073616d65206173206e65772076616c75650000604082015260600190565b634e487b7160e01b5f52602160045260245ffd5b60208082526022908201527f6f6c6420616464726573732069732073616d65206173206e6577206164647265604082015261737360f01b606082015260800190565b5f60208284031215612b6f575f80fd5b81516110af816127c3565b6001600160a01b0392831681529116602082015260400190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906110ac90830184612b94565b5f60208284031215612bf5575f80fd5b81516110af81612840565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612c24575f80fd5b5051919050565b602081525f6110af6020830184612b94565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf612c3d565b8082028115828204841417610abf57610abf612c3d565b5f82612c9557634e487b7160e01b5f52601260045260245ffd5b500490565b5f82518060208501845e5f92019182525091905056fe5f736574466f726365644c69717569646174696f6e466f725573657228616464726573732c616464726573732c626f6f6c295f736574416374696f6e7350617573656428616464726573735b5d2c75696e74385b5d2c626f6f6c295f7365744c69717569646174696f6e496e63656e746976652875696e74323536295f7365744d61726b6574537570706c794361707328616464726573735b5d2c75696e743235365b5d295f736574466f726365644c69717569646174696f6e28616464726573732c626f6f6c295f7365744d61726b6574426f72726f774361707328616464726573735b5d2c75696e743235365b5d295f736574436f6c6c61746572616c466163746f7228616464726573732c75696e7432353629a264697066735822122041a0d749cda556c6f68991efdddeafab2d7a9e80f2c4ab16fb03f8612f76ca9c64736f6c63430008190033",
|
|
2101
|
+
"bytecode": "0x6080604052348015600e575f80fd5b50612dfc8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610443575f3560e01c80637dc0d1d011610237578063bf32442d11610135578063dcfbc0c7116100bf578063f445d70311610084578063f445d70314610a47578063f519fc3014610a74578063f851a44014610a87578063fa6331d814610a99578063fd51a3ad14610aa2575f80fd5b8063dcfbc0c7146109ce578063e37d4b79146109e1578063e4028eee14610a18578063e85a296014610a2b578063e875544614610a3e575f80fd5b8063c7ee005e11610105578063c7ee005e14610982578063d136af4414610681578063d24febad14610995578063d3270f99146109a8578063dce15449146109bb575f80fd5b8063bf32442d14610930578063c32094c71461081f578063c5b4db5514610941578063c5f956af1461096f575f80fd5b80639bb27d62116101c1578063b8324c7c11610186578063b8324c7c14610887578063bb82aa5e146108e2578063bb857450146108f5578063bbb8864a14610908578063bec04f7214610927575f80fd5b80639bb27d621461083b5780639bf34cbb1461084e5780639cfdd9e614610861578063a84310811461066e578063b2eafc3914610874575f80fd5b80638e8f294b116102075780638e8f294b146107a7578063919a3736146107f95780639254f5e51461080c5780639460c8b51461081f57806394b2294b14610832575f80fd5b80637dc0d1d0146107535780638a7dc165146107665780638b3113f6146106945780638c1ac18a14610785575f80fd5b8063425fad5811610344578063530e784f116102ce578063607ef6c111610293578063607ef6c11461051a5780636662c7c914610712578063719f701b14610725578063765513831461072e5780637d172bd514610740575f80fd5b8063530e784f146106ba57806355ee1fe1146106ba5780635cc4fdeb146106cd5780635dd3fc9d146106e05780635f5af1aa146106ff575f80fd5b80634ef233fc116103145780634ef233fc1461065b5780634fd42e171461066e57806351a485e414610681578063522c656b1461069457806352d84d1e146106a7575f80fd5b8063425fad581461060d5780634a584432146106205780634ada90af1461063f5780634e0853db14610648575f80fd5b806324a3d622116103d05780632bc7e29e116103955780632bc7e29e146105a45780632ec04124146105c3578063317b0b77146104f25780634088c73e146105d657806341a18d2c146105e3575f80fd5b806324a3d6221461055857806324aaa2201461056b578063267822471461057e5780632a6a6065146105915780632b5d790c1461056b575f80fd5b806310b983381161041657806310b98338146104b557806312348e96146104f257806317db216314610505578063186db48f1461051a57806321af45691461052d575f80fd5b806302c3bcbb1461044757806304ef9d581461047957806308e0225c146104825780630db4b4e5146104ac575b5f80fd5b6104666104553660046127d7565b60276020525f908152604090205481565b6040519081526020015b60405180910390f35b61046660225481565b6104666104903660046127f2565b601360209081525f928352604080842090915290825290205481565b610466601d5481565b6104e26104c33660046127f2565b602c60209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610470565b610466610500366004612829565b610ab5565b61051861051336600461284d565b610ac5565b005b6105186105283660046128dd565b610b88565b601e54610540906001600160a01b031681565b6040516001600160a01b039091168152602001610470565b600a54610540906001600160a01b031681565b610518610579366004612944565b610bf9565b600154610540906001600160a01b031681565b6104e261059f3660046129c2565b610c6d565b6104666105b23660046127d7565b60166020525f908152604090205481565b6104666105d1366004612829565b610d03565b6018546104e29060ff1681565b6104666105f13660046127f2565b601260209081525f928352604080842090915290825290205481565b6018546104e29062010000900460ff1681565b61046661062e3660046127d7565b601f6020525f908152604090205481565b61046660065481565b6105186106563660046129dd565b610d86565b6105186106693660046127d7565b610e49565b61046661067c366004612829565b610f77565b61051861068f3660046128dd565b610f81565b6105186106a2366004612a0f565b610fec565b6105406106b5366004612829565b610ffa565b6104666106c83660046127d7565b611022565b6104666106db3660046129dd565b61102c565b6104666106ee3660046127d7565b602b6020525f908152604090205481565b61046661070d3660046127d7565b6110b6565b610518610720366004612829565b61114d565b610466601c5481565b6018546104e290610100900460ff1681565b601b54610540906001600160a01b031681565b600454610540906001600160a01b031681565b6104666107743660046127d7565b60146020525f908152604090205481565b6104e26107933660046127d7565b602d6020525f908152604090205460ff1681565b6107da6107b53660046127d7565b60096020525f908152604090208054600182015460039092015460ff91821692911683565b6040805193151584526020840192909252151590820152606001610470565b6105186108073660046127d7565b6111d9565b601554610540906001600160a01b031681565b61046661082d3660046127d7565b611245565b61046660075481565b602554610540906001600160a01b031681565b61046661085c3660046127d7565b61124f565b61046661086f3660046127d7565b6112e5565b602054610540906001600160a01b031681565b6108be6108953660046127d7565b60106020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610470565b600254610540906001600160a01b031681565b6105186109033660046127d7565b61137c565b6104666109163660046127d7565b602a6020525f908152604090205481565b61046660175481565b6033546001600160a01b0316610540565b6109576ec097ce7bc90715b34b9f100000000081565b6040516001600160e01b039091168152602001610470565b602154610540906001600160a01b031681565b603154610540906001600160a01b031681565b6104666109a3366004612a3b565b611411565b602654610540906001600160a01b031681565b6105406109c9366004612a79565b611577565b600354610540906001600160a01b031681565b6108be6109ef3660046127d7565b60116020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b610466610a26366004612a79565b6115ab565b6104e2610a39366004612aa3565b6115b6565b61046660055481565b6104e2610a553660046127f2565b603260209081525f928352604080842090915290825290205460ff1681565b610466610a823660046127d7565b6115fa565b5f54610540906001600160a01b031681565b610466601a5481565b610466610ab0366004612a79565b611691565b5f610abf82611735565b92915050565b610ae6604051806060016040528060328152602001612cb16032913961180f565b6015546001600160a01b03838116911614610b1b576001600160a01b0382165f908152600960205260409020610b1b906118bf565b6001600160a01b038381165f81815260326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527fc080966e9e93529edc1b244180c245bc60f3d86f1e690a17651a5e428746a8cd91015b60405180910390a3505050565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f9201919091525061190492505050565b50505050565b610c668585808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284375f92019190915250869250611a54915050565b5050505050565b5f610cac6040518060400160405280601881526020017f5f73657450726f746f636f6c50617573656428626f6f6c29000000000000000081525061180f565b60188054831515620100000262ff0000199091161790556040517fd7500633dd3ddd74daa7af62f8c8404c7fe4a81da179998db851696bed004b3890610cf790841515815260200190565b60405180910390a15090565b5f60175482808203610d305760405162461bcd60e51b8152600401610d2790612ad2565b60405180910390fd5b610d38611ae3565b601780549085905560408051828152602081018790527f73747d68b346dce1e932bcd238282e7ac84c01569e1f8d0469c222fdc6e9d5a491015b60405180910390a15f9350505b5050919050565b601b546001600160a01b0390811690849081168203610db75760405162461bcd60e51b8152600401610d2790612b1d565b610dbf611ae3565b610dc885611b2f565b601b546001600160a01b031615610de157610de1611b7d565b601b80546001600160a01b0319166001600160a01b038716908117909155601c859055601d84905560408051868152602081018690527f7059037d74ee16b0fb06a4a30f3348dd2635f301f92e373c92899a25a522ef6e910160405180910390a25050505050565b610e51611ae3565b610e5a81611b2f565b5f816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612b5f565b6033549091506001600160a01b03808316911614610f1b5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964207876732076746f6b656e20616464726573730000000000006044820152606401610d27565b6034546040516001600160a01b038085169216907f2565e1579c0926afb7113edbfd85373e85cadaa3e0346f04de19686a2bb86ed1905f90a350603480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf82611d0c565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f92019190915250611dda92505050565b610ff68282611f2a565b5050565b600d8181548110611009575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f610abf82611fde565b5f8183146110a25760405162461bcd60e51b815260206004820152603c60248201527f636f6c6c61746572616c20666163746f7220616e64206c69717569646174696f60448201527f6e207468726573686f6c64206d757374206265207468652073616d65000000006064820152608401610d27565b6110ac8484612075565b90505b9392505050565b600a545f906001600160a01b03908116908390811682036110e95760405162461bcd60e51b8152600401610d2790612b1d565b6110f1611ae3565b6110fa84611b2f565b600a80546001600160a01b038681166001600160a01b03198316179092556040519116907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90610d729083908890612b7a565b601a54818082036111705760405162461bcd60e51b8152600401610d2790612ad2565b611178611ae3565b601b546001600160a01b03161561119157611191611b7d565b601a80549084905560408051828152602081018690527fe81d4ac15e5afa1e708e66664eddc697177423d950d133bda8262d8885e6da3b91015b60405180910390a150505050565b6111e1611ae3565b6111ea81611b2f565b6033546040516001600160a01b038084169216907ffe7fd0d872def0f65050e9f38fc6691d0c192c694a56f09b04bec5fb2ea61f2b905f90a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf8261222c565b6026545f906001600160a01b03908116908390811682036112825760405162461bcd60e51b8152600401610d2790612b1d565b61128a611ae3565b61129384611b2f565b602680546001600160a01b038681166001600160a01b0319831681179093556040519116917f0f7eb572d1b3053a0a3a33c04151364cf88d163182a5e4e1088cb8e52321e08a91610d72918491612b7a565b6015545f906001600160a01b03908116908390811682036113185760405162461bcd60e51b8152600401610d2790612b1d565b611320611ae3565b61132984611b2f565b601580546001600160a01b038681166001600160a01b03198316179092556040519116907fe1ddcb2dab8e5b03cfc8c67a0d5861d91d16f7bd2612fd381faf4541d212c9b290610d729083908890612b7a565b6025546001600160a01b03908116908290811682036113ad5760405162461bcd60e51b8152600401610d2790612b1d565b6113b5611ae3565b6113be83611b2f565b602580546001600160a01b038581166001600160a01b03198316179092556040519116907fa5ea5616d5f6dbbaa62fdfcf3856723216eed485c394d9e51ec8e6d40e1d1ac1906111cb9083908790612b7a565b6020545f90611428906001600160a01b03166122a1565b670de0b6b3a764000082106114715760405162461bcd60e51b815260206004820152600f60248201526e70657263656e74203e3d203130302560881b6044820152606401610d27565b61147a84611b2f565b61148383611b2f565b6020805460218054602280546001600160a01b03198086166001600160a01b038c8116919091179097558316898716179093558690556040519284169316917f29f06ea15931797ebaed313d81d100963dc22cb213cb4ce2737b5a62b1a8b1e8906114f19085908a90612b7a565b60405180910390a17f8de763046d7b8f08b6c3d03543de1d615309417842bb5d2d62f110f65809ddac828760405161152a929190612b7a565b60405180910390a160408051828152602081018790527f0893f8f4101baaabbeb513f96761e7a36eb837403c82cc651c292a4abdc94ed7910160405180910390a15f979650505050505050565b6008602052815f5260405f208181548110611590575f80fd5b5f918252602090912001546001600160a01b03169150829050565b5f6110af8383612075565b6001600160a01b0382165f908152602960205260408120818360088111156115e0576115e0612b09565b815260208101919091526040015f205460ff169392505050565b6028545f906001600160a01b039081169083908116820361162d5760405162461bcd60e51b8152600401610d2790612b1d565b611635611ae3565b61163e84611b2f565b602880546001600160a01b038681166001600160a01b03198316179092556040519116907f0f1eca7612e020f6e4582bcead0573eba4b5f7b56668754c6aed82ef12057dd490610d729083908890612b7a565b5f61169a6122fc565b60185460ff161580156116b55750601854610100900460ff16155b6116f15760405162461bcd60e51b815260206004820152600d60248201526c159052481a5cc81c185d5cd959609a1b6044820152606401610d27565b6015546001600160a01b031633146117165761170f600e601661234a565b9050610abf565b6001600160a01b0383165f9081526016602052604081208390556110af565b5f600554828082036117595760405162461bcd60e51b8152600401610d2790612ad2565b611761611ae3565b604080516020808201835286825282518082018452670c7d713b49da00008152835191820190935266b1a2bc2ec5000081528151835192939210806117a7575082518151115b156117c1576117b760058061234a565b9550505050610d7f565b600580549088905560408051828152602081018a90527f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9910160405180910390a15f98975050505050505050565b6028546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab906118419033908590600401612bc2565b602060405180830381865afa15801561185c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118809190612be5565b6118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b50565b805460ff166118bc5760405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606401610d27565b611925604051806060016040528060298152602001612d796029913961180f565b81518151811580159061193757508082145b6119735760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c665783818151811061198f5761198f612c00565b6020026020010151601f5f8784815181106119ac576119ac612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055508481815181106119e9576119e9612c00565b60200260200101516001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6858381518110611a2d57611a2d612c00565b6020026020010151604051611a4491815260200190565b60405180910390a2600101611975565b611a75604051806060016040528060298152602001612ce36029913961180f565b825182515f5b82811015611adb575f5b82811015611ad257611aca878381518110611aa257611aa2612c00565b6020026020010151878381518110611abc57611abc612c00565b6020026020010151876123c1565b600101611a85565b50600101611a7b565b505050505050565b5f546001600160a01b03163314611b2d5760405162461bcd60e51b815260206004820152600e60248201526d37b7363c9030b236b4b71031b0b760911b6044820152606401610d27565b565b6001600160a01b0381166118bc5760405162461bcd60e51b815260206004820152601560248201527463616e2774206265207a65726f206164647265737360581b6044820152606401610d27565b601c541580611b8d5750601c5443105b15611b9457565b6033546040516370a0823160e01b81523060048201526001600160a01b03909116905f9082906370a0823190602401602060405180830381865afa158015611bde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c029190612c14565b9050805f03611c0f575050565b5f80611c1d43601c54612479565b90505f611c2c601a54836124b2565b9050808410611c3d57809250611c41565b8392505b601d54831015611c52575050505050565b43601c55601b54611c70906001600160a01b038781169116856124f3565b6040518381527ff6d4b8f74d85a6e2d7a50225957b8a6cfec69ad92f5905627260541aa0a5565d9060200160405180910390a1601b5f9054906101000a90046001600160a01b03166001600160a01b031663faa1809e6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611cef575f80fd5b505af1158015611d01573d5f803e3d5ffd5b505050505050505050565b5f60065482808203611d305760405162461bcd60e51b8152600401610d2790612ad2565b611d51604051806060016040528060218152602001612d0c6021913961180f565b670de0b6b3a7640000841015611d9c5760405162461bcd60e51b815260206004820152601060248201526f0d2dcc6cadce8d2ecca40784062ca62760831b6044820152606401610d27565b600680549085905560408051828152602081018790527faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec13169101610d72565b611dfb604051806060016040528060298152602001612d2d6029913961180f565b815181518115801590611e0d57508082145b611e495760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c6657838181518110611e6557611e65612c00565b602002602001015160275f878481518110611e8257611e82612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550848181518110611ebf57611ebf612c00565b60200260200101516001600160a01b03167f9e0ad9cee10bdf36b7fbd38910c0bdff0f275ace679b45b922381c2723d676f8858381518110611f0357611f03612c00565b6020026020010151604051611f1a91815260200190565b60405180910390a2600101611e4b565b611f4b604051806060016040528060238152602001612d566023913961180f565b6015546001600160a01b03838116911614611f80576001600160a01b0382165f908152600960205260409020611f80906118bf565b6001600160a01b0382165f818152602d6020908152604091829020805460ff191685151590811790915591519182527f03561d5280ebb02280893b1d60978e4a27e7654a149c5d0e7c2cf65389ce1694910160405180910390a25050565b6004545f906001600160a01b03908116908390811682036120115760405162461bcd60e51b8152600401610d2790612b1d565b612019611ae3565b61202284611b2f565b600480546001600160a01b038681166001600160a01b03198316179092556040519116907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e2290610d729083908890612b7a565b6001600160a01b0382165f90815260096020526040812060010154828082036120b05760405162461bcd60e51b8152600401610d2790612ad2565b6120d1604051806060016040528060258152602001612da26025913961180f565b6120da85611b2f565b6001600160a01b0385165f9081526009602052604090206120fa816118bf565b60408051602080820183528782528251908101909252670c7d713b49da000082529061212881835190511090565b15612143576121396006600861234a565b9550505050612224565b86158015906121bd57506004805460405163fc57d4df60e01b81526001600160a01b038b81169382019390935291169063fc57d4df90602401602060405180830381865afa158015612197573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121bb9190612c14565b155b156121ce57612139600d600961234a565b6001830180549088905560408051828152602081018a90526001600160a01b038b16917f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc5910160405180910390a25f9650505050505b505092915050565b5f612235611ae3565b61223e82611b2f565b603180546001600160a01b038481166001600160a01b03198316179092556040519116907fcb20dab7409e4fb972d9adccb39530520b226ce6940d85c9523a499b950b6ea3906122919083908690612b7a565b60405180910390a15f9392505050565b5f546001600160a01b03163314806118805750336001600160a01b038216146118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b60185462010000900460ff1615611b2d5760405162461bcd60e51b81526020600482015260126024820152711c1c9bdd1bd8dbdb081a5cc81c185d5cd95960721b6044820152606401610d27565b5f7f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601481111561237e5761237e612b09565b83601a81111561239057612390612b09565b6040805192835260208301919091525f9082015260600160405180910390a18260148111156110af576110af612b09565b6001600160a01b0383165f9081526009602052604090206123e1906118bf565b6001600160a01b0383165f908152602960205260408120829184600881111561240c5761240c612b09565b815260208101919091526040015f20805460ff191691151591909117905581600881111561243c5761243c612b09565b836001600160a01b03167f35007a986bcd36d2f73fc7f1b73762e12eadb4406dd163194950fd3b5a6a827d83604051610b7b911515815260200190565b5f6110af8383604051806040016040528060158152602001747375627472616374696f6e20756e646572666c6f7760581b81525061254a565b5f6110af83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250612578565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526125459084906125d1565b505050565b5f818484111561256d5760405162461bcd60e51b8152600401610d279190612c2b565b506110ac8385612c51565b5f831580612584575082155b1561259057505f6110af565b5f61259b8486612c64565b9050836125a88683612c7b565b1483906125c85760405162461bcd60e51b8152600401610d279190612c2b565b50949350505050565b5f612625826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126a49092919063ffffffff16565b905080515f14806126455750808060200190518101906126459190612be5565b6125455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610d27565b60606110ac84845f85855f80866001600160a01b031685876040516126c99190612c9a565b5f6040518083038185875af1925050503d805f8114612703576040519150601f19603f3d011682016040523d82523d5f602084013e612708565b606091505b509150915061271987838387612726565b925050505b949350505050565b606083156127945782515f0361278d576001600160a01b0385163b61278d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d27565b508161271e565b61271e83838151156127a95781518083602001fd5b8060405162461bcd60e51b8152600401610d279190612c2b565b6001600160a01b03811681146118bc575f80fd5b5f602082840312156127e7575f80fd5b81356110af816127c3565b5f8060408385031215612803575f80fd5b823561280e816127c3565b9150602083013561281e816127c3565b809150509250929050565b5f60208284031215612839575f80fd5b5035919050565b80151581146118bc575f80fd5b5f805f6060848603121561285f575f80fd5b833561286a816127c3565b9250602084013561287a816127c3565b9150604084013561288a81612840565b809150509250925092565b5f8083601f8401126128a5575f80fd5b50813567ffffffffffffffff8111156128bc575f80fd5b6020830191508360208260051b85010111156128d6575f80fd5b9250929050565b5f805f80604085870312156128f0575f80fd5b843567ffffffffffffffff80821115612907575f80fd5b61291388838901612895565b9096509450602087013591508082111561292b575f80fd5b5061293887828801612895565b95989497509550505050565b5f805f805f60608688031215612958575f80fd5b853567ffffffffffffffff8082111561296f575f80fd5b61297b89838a01612895565b90975095506020880135915080821115612993575f80fd5b506129a088828901612895565b90945092505060408601356129b481612840565b809150509295509295909350565b5f602082840312156129d2575f80fd5b81356110af81612840565b5f805f606084860312156129ef575f80fd5b83356129fa816127c3565b95602085013595506040909401359392505050565b5f8060408385031215612a20575f80fd5b8235612a2b816127c3565b9150602083013561281e81612840565b5f805f60608486031215612a4d575f80fd5b8335612a58816127c3565b92506020840135612a68816127c3565b929592945050506040919091013590565b5f8060408385031215612a8a575f80fd5b8235612a95816127c3565b946020939093013593505050565b5f8060408385031215612ab4575f80fd5b8235612abf816127c3565b915060208301356009811061281e575f80fd5b6020808252601e908201527f6f6c642076616c75652069732073616d65206173206e65772076616c75650000604082015260600190565b634e487b7160e01b5f52602160045260245ffd5b60208082526022908201527f6f6c6420616464726573732069732073616d65206173206e6577206164647265604082015261737360f01b606082015260800190565b5f60208284031215612b6f575f80fd5b81516110af816127c3565b6001600160a01b0392831681529116602082015260400190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906110ac90830184612b94565b5f60208284031215612bf5575f80fd5b81516110af81612840565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612c24575f80fd5b5051919050565b602081525f6110af6020830184612b94565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf612c3d565b8082028115828204841417610abf57610abf612c3d565b5f82612c9557634e487b7160e01b5f52601260045260245ffd5b500490565b5f82518060208501845e5f92019182525091905056fe5f736574466f726365644c69717569646174696f6e466f725573657228616464726573732c616464726573732c626f6f6c295f736574416374696f6e7350617573656428616464726573735b5d2c75696e74385b5d2c626f6f6c295f7365744c69717569646174696f6e496e63656e746976652875696e74323536295f7365744d61726b6574537570706c794361707328616464726573735b5d2c75696e743235365b5d295f736574466f726365644c69717569646174696f6e28616464726573732c626f6f6c295f7365744d61726b6574426f72726f774361707328616464726573735b5d2c75696e743235365b5d295f736574436f6c6c61746572616c466163746f7228616464726573732c75696e7432353629a2646970667358221220ba9d883cac4f125f53371680b4796c1ef4904f8a31dfce0ea0037f1b8947a9f464736f6c63430008190033",
|
|
2102
|
+
"deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610443575f3560e01c80637dc0d1d011610237578063bf32442d11610135578063dcfbc0c7116100bf578063f445d70311610084578063f445d70314610a47578063f519fc3014610a74578063f851a44014610a87578063fa6331d814610a99578063fd51a3ad14610aa2575f80fd5b8063dcfbc0c7146109ce578063e37d4b79146109e1578063e4028eee14610a18578063e85a296014610a2b578063e875544614610a3e575f80fd5b8063c7ee005e11610105578063c7ee005e14610982578063d136af4414610681578063d24febad14610995578063d3270f99146109a8578063dce15449146109bb575f80fd5b8063bf32442d14610930578063c32094c71461081f578063c5b4db5514610941578063c5f956af1461096f575f80fd5b80639bb27d62116101c1578063b8324c7c11610186578063b8324c7c14610887578063bb82aa5e146108e2578063bb857450146108f5578063bbb8864a14610908578063bec04f7214610927575f80fd5b80639bb27d621461083b5780639bf34cbb1461084e5780639cfdd9e614610861578063a84310811461066e578063b2eafc3914610874575f80fd5b80638e8f294b116102075780638e8f294b146107a7578063919a3736146107f95780639254f5e51461080c5780639460c8b51461081f57806394b2294b14610832575f80fd5b80637dc0d1d0146107535780638a7dc165146107665780638b3113f6146106945780638c1ac18a14610785575f80fd5b8063425fad5811610344578063530e784f116102ce578063607ef6c111610293578063607ef6c11461051a5780636662c7c914610712578063719f701b14610725578063765513831461072e5780637d172bd514610740575f80fd5b8063530e784f146106ba57806355ee1fe1146106ba5780635cc4fdeb146106cd5780635dd3fc9d146106e05780635f5af1aa146106ff575f80fd5b80634ef233fc116103145780634ef233fc1461065b5780634fd42e171461066e57806351a485e414610681578063522c656b1461069457806352d84d1e146106a7575f80fd5b8063425fad581461060d5780634a584432146106205780634ada90af1461063f5780634e0853db14610648575f80fd5b806324a3d622116103d05780632bc7e29e116103955780632bc7e29e146105a45780632ec04124146105c3578063317b0b77146104f25780634088c73e146105d657806341a18d2c146105e3575f80fd5b806324a3d6221461055857806324aaa2201461056b578063267822471461057e5780632a6a6065146105915780632b5d790c1461056b575f80fd5b806310b983381161041657806310b98338146104b557806312348e96146104f257806317db216314610505578063186db48f1461051a57806321af45691461052d575f80fd5b806302c3bcbb1461044757806304ef9d581461047957806308e0225c146104825780630db4b4e5146104ac575b5f80fd5b6104666104553660046127d7565b60276020525f908152604090205481565b6040519081526020015b60405180910390f35b61046660225481565b6104666104903660046127f2565b601360209081525f928352604080842090915290825290205481565b610466601d5481565b6104e26104c33660046127f2565b602c60209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610470565b610466610500366004612829565b610ab5565b61051861051336600461284d565b610ac5565b005b6105186105283660046128dd565b610b88565b601e54610540906001600160a01b031681565b6040516001600160a01b039091168152602001610470565b600a54610540906001600160a01b031681565b610518610579366004612944565b610bf9565b600154610540906001600160a01b031681565b6104e261059f3660046129c2565b610c6d565b6104666105b23660046127d7565b60166020525f908152604090205481565b6104666105d1366004612829565b610d03565b6018546104e29060ff1681565b6104666105f13660046127f2565b601260209081525f928352604080842090915290825290205481565b6018546104e29062010000900460ff1681565b61046661062e3660046127d7565b601f6020525f908152604090205481565b61046660065481565b6105186106563660046129dd565b610d86565b6105186106693660046127d7565b610e49565b61046661067c366004612829565b610f77565b61051861068f3660046128dd565b610f81565b6105186106a2366004612a0f565b610fec565b6105406106b5366004612829565b610ffa565b6104666106c83660046127d7565b611022565b6104666106db3660046129dd565b61102c565b6104666106ee3660046127d7565b602b6020525f908152604090205481565b61046661070d3660046127d7565b6110b6565b610518610720366004612829565b61114d565b610466601c5481565b6018546104e290610100900460ff1681565b601b54610540906001600160a01b031681565b600454610540906001600160a01b031681565b6104666107743660046127d7565b60146020525f908152604090205481565b6104e26107933660046127d7565b602d6020525f908152604090205460ff1681565b6107da6107b53660046127d7565b60096020525f908152604090208054600182015460039092015460ff91821692911683565b6040805193151584526020840192909252151590820152606001610470565b6105186108073660046127d7565b6111d9565b601554610540906001600160a01b031681565b61046661082d3660046127d7565b611245565b61046660075481565b602554610540906001600160a01b031681565b61046661085c3660046127d7565b61124f565b61046661086f3660046127d7565b6112e5565b602054610540906001600160a01b031681565b6108be6108953660046127d7565b60106020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610470565b600254610540906001600160a01b031681565b6105186109033660046127d7565b61137c565b6104666109163660046127d7565b602a6020525f908152604090205481565b61046660175481565b6033546001600160a01b0316610540565b6109576ec097ce7bc90715b34b9f100000000081565b6040516001600160e01b039091168152602001610470565b602154610540906001600160a01b031681565b603154610540906001600160a01b031681565b6104666109a3366004612a3b565b611411565b602654610540906001600160a01b031681565b6105406109c9366004612a79565b611577565b600354610540906001600160a01b031681565b6108be6109ef3660046127d7565b60116020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b610466610a26366004612a79565b6115ab565b6104e2610a39366004612aa3565b6115b6565b61046660055481565b6104e2610a553660046127f2565b603260209081525f928352604080842090915290825290205460ff1681565b610466610a823660046127d7565b6115fa565b5f54610540906001600160a01b031681565b610466601a5481565b610466610ab0366004612a79565b611691565b5f610abf82611735565b92915050565b610ae6604051806060016040528060328152602001612cb16032913961180f565b6015546001600160a01b03838116911614610b1b576001600160a01b0382165f908152600960205260409020610b1b906118bf565b6001600160a01b038381165f81815260326020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527fc080966e9e93529edc1b244180c245bc60f3d86f1e690a17651a5e428746a8cd91015b60405180910390a3505050565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f9201919091525061190492505050565b50505050565b610c668585808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284375f92019190915250869250611a54915050565b5050505050565b5f610cac6040518060400160405280601881526020017f5f73657450726f746f636f6c50617573656428626f6f6c29000000000000000081525061180f565b60188054831515620100000262ff0000199091161790556040517fd7500633dd3ddd74daa7af62f8c8404c7fe4a81da179998db851696bed004b3890610cf790841515815260200190565b60405180910390a15090565b5f60175482808203610d305760405162461bcd60e51b8152600401610d2790612ad2565b60405180910390fd5b610d38611ae3565b601780549085905560408051828152602081018790527f73747d68b346dce1e932bcd238282e7ac84c01569e1f8d0469c222fdc6e9d5a491015b60405180910390a15f9350505b5050919050565b601b546001600160a01b0390811690849081168203610db75760405162461bcd60e51b8152600401610d2790612b1d565b610dbf611ae3565b610dc885611b2f565b601b546001600160a01b031615610de157610de1611b7d565b601b80546001600160a01b0319166001600160a01b038716908117909155601c859055601d84905560408051868152602081018690527f7059037d74ee16b0fb06a4a30f3348dd2635f301f92e373c92899a25a522ef6e910160405180910390a25050505050565b610e51611ae3565b610e5a81611b2f565b5f816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ebb9190612b5f565b6033549091506001600160a01b03808316911614610f1b5760405162461bcd60e51b815260206004820152601a60248201527f696e76616c6964207876732076746f6b656e20616464726573730000000000006044820152606401610d27565b6034546040516001600160a01b038085169216907f2565e1579c0926afb7113edbfd85373e85cadaa3e0346f04de19686a2bb86ed1905f90a350603480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf82611d0c565b610bf38484808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284375f92019190915250611dda92505050565b610ff68282611f2a565b5050565b600d8181548110611009575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f610abf82611fde565b5f8183146110a25760405162461bcd60e51b815260206004820152603c60248201527f636f6c6c61746572616c20666163746f7220616e64206c69717569646174696f60448201527f6e207468726573686f6c64206d757374206265207468652073616d65000000006064820152608401610d27565b6110ac8484612075565b90505b9392505050565b600a545f906001600160a01b03908116908390811682036110e95760405162461bcd60e51b8152600401610d2790612b1d565b6110f1611ae3565b6110fa84611b2f565b600a80546001600160a01b038681166001600160a01b03198316179092556040519116907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90610d729083908890612b7a565b601a54818082036111705760405162461bcd60e51b8152600401610d2790612ad2565b611178611ae3565b601b546001600160a01b03161561119157611191611b7d565b601a80549084905560408051828152602081018690527fe81d4ac15e5afa1e708e66664eddc697177423d950d133bda8262d8885e6da3b91015b60405180910390a150505050565b6111e1611ae3565b6111ea81611b2f565b6033546040516001600160a01b038084169216907ffe7fd0d872def0f65050e9f38fc6691d0c192c694a56f09b04bec5fb2ea61f2b905f90a3603380546001600160a01b0319166001600160a01b0392909216919091179055565b5f610abf8261222c565b6026545f906001600160a01b03908116908390811682036112825760405162461bcd60e51b8152600401610d2790612b1d565b61128a611ae3565b61129384611b2f565b602680546001600160a01b038681166001600160a01b0319831681179093556040519116917f0f7eb572d1b3053a0a3a33c04151364cf88d163182a5e4e1088cb8e52321e08a91610d72918491612b7a565b6015545f906001600160a01b03908116908390811682036113185760405162461bcd60e51b8152600401610d2790612b1d565b611320611ae3565b61132984611b2f565b601580546001600160a01b038681166001600160a01b03198316179092556040519116907fe1ddcb2dab8e5b03cfc8c67a0d5861d91d16f7bd2612fd381faf4541d212c9b290610d729083908890612b7a565b6025546001600160a01b03908116908290811682036113ad5760405162461bcd60e51b8152600401610d2790612b1d565b6113b5611ae3565b6113be83611b2f565b602580546001600160a01b038581166001600160a01b03198316179092556040519116907fa5ea5616d5f6dbbaa62fdfcf3856723216eed485c394d9e51ec8e6d40e1d1ac1906111cb9083908790612b7a565b6020545f90611428906001600160a01b03166122a1565b670de0b6b3a764000082106114715760405162461bcd60e51b815260206004820152600f60248201526e70657263656e74203e3d203130302560881b6044820152606401610d27565b61147a84611b2f565b61148383611b2f565b6020805460218054602280546001600160a01b03198086166001600160a01b038c8116919091179097558316898716179093558690556040519284169316917f29f06ea15931797ebaed313d81d100963dc22cb213cb4ce2737b5a62b1a8b1e8906114f19085908a90612b7a565b60405180910390a17f8de763046d7b8f08b6c3d03543de1d615309417842bb5d2d62f110f65809ddac828760405161152a929190612b7a565b60405180910390a160408051828152602081018790527f0893f8f4101baaabbeb513f96761e7a36eb837403c82cc651c292a4abdc94ed7910160405180910390a15f979650505050505050565b6008602052815f5260405f208181548110611590575f80fd5b5f918252602090912001546001600160a01b03169150829050565b5f6110af8383612075565b6001600160a01b0382165f908152602960205260408120818360088111156115e0576115e0612b09565b815260208101919091526040015f205460ff169392505050565b6028545f906001600160a01b039081169083908116820361162d5760405162461bcd60e51b8152600401610d2790612b1d565b611635611ae3565b61163e84611b2f565b602880546001600160a01b038681166001600160a01b03198316179092556040519116907f0f1eca7612e020f6e4582bcead0573eba4b5f7b56668754c6aed82ef12057dd490610d729083908890612b7a565b5f61169a6122fc565b60185460ff161580156116b55750601854610100900460ff16155b6116f15760405162461bcd60e51b815260206004820152600d60248201526c159052481a5cc81c185d5cd959609a1b6044820152606401610d27565b6015546001600160a01b031633146117165761170f600e601661234a565b9050610abf565b6001600160a01b0383165f9081526016602052604081208390556110af565b5f600554828082036117595760405162461bcd60e51b8152600401610d2790612ad2565b611761611ae3565b604080516020808201835286825282518082018452670c7d713b49da00008152835191820190935266b1a2bc2ec5000081528151835192939210806117a7575082518151115b156117c1576117b760058061234a565b9550505050610d7f565b600580549088905560408051828152602081018a90527f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9910160405180910390a15f98975050505050505050565b6028546040516318c5e8ab60e01b81526001600160a01b03909116906318c5e8ab906118419033908590600401612bc2565b602060405180830381865afa15801561185c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118809190612be5565b6118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b50565b805460ff166118bc5760405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606401610d27565b611925604051806060016040528060298152602001612d796029913961180f565b81518151811580159061193757508082145b6119735760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c665783818151811061198f5761198f612c00565b6020026020010151601f5f8784815181106119ac576119ac612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f20819055508481815181106119e9576119e9612c00565b60200260200101516001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6858381518110611a2d57611a2d612c00565b6020026020010151604051611a4491815260200190565b60405180910390a2600101611975565b611a75604051806060016040528060298152602001612ce36029913961180f565b825182515f5b82811015611adb575f5b82811015611ad257611aca878381518110611aa257611aa2612c00565b6020026020010151878381518110611abc57611abc612c00565b6020026020010151876123c1565b600101611a85565b50600101611a7b565b505050505050565b5f546001600160a01b03163314611b2d5760405162461bcd60e51b815260206004820152600e60248201526d37b7363c9030b236b4b71031b0b760911b6044820152606401610d27565b565b6001600160a01b0381166118bc5760405162461bcd60e51b815260206004820152601560248201527463616e2774206265207a65726f206164647265737360581b6044820152606401610d27565b601c541580611b8d5750601c5443105b15611b9457565b6033546040516370a0823160e01b81523060048201526001600160a01b03909116905f9082906370a0823190602401602060405180830381865afa158015611bde573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c029190612c14565b9050805f03611c0f575050565b5f80611c1d43601c54612479565b90505f611c2c601a54836124b2565b9050808410611c3d57809250611c41565b8392505b601d54831015611c52575050505050565b43601c55601b54611c70906001600160a01b038781169116856124f3565b6040518381527ff6d4b8f74d85a6e2d7a50225957b8a6cfec69ad92f5905627260541aa0a5565d9060200160405180910390a1601b5f9054906101000a90046001600160a01b03166001600160a01b031663faa1809e6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611cef575f80fd5b505af1158015611d01573d5f803e3d5ffd5b505050505050505050565b5f60065482808203611d305760405162461bcd60e51b8152600401610d2790612ad2565b611d51604051806060016040528060218152602001612d0c6021913961180f565b670de0b6b3a7640000841015611d9c5760405162461bcd60e51b815260206004820152601060248201526f0d2dcc6cadce8d2ecca40784062ca62760831b6044820152606401610d27565b600680549085905560408051828152602081018790527faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec13169101610d72565b611dfb604051806060016040528060298152602001612d2d6029913961180f565b815181518115801590611e0d57508082145b611e495760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081a5b9c1d5d609a1b6044820152606401610d27565b5f5b82811015610c6657838181518110611e6557611e65612c00565b602002602001015160275f878481518110611e8257611e82612c00565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f2081905550848181518110611ebf57611ebf612c00565b60200260200101516001600160a01b03167f9e0ad9cee10bdf36b7fbd38910c0bdff0f275ace679b45b922381c2723d676f8858381518110611f0357611f03612c00565b6020026020010151604051611f1a91815260200190565b60405180910390a2600101611e4b565b611f4b604051806060016040528060238152602001612d566023913961180f565b6015546001600160a01b03838116911614611f80576001600160a01b0382165f908152600960205260409020611f80906118bf565b6001600160a01b0382165f818152602d6020908152604091829020805460ff191685151590811790915591519182527f03561d5280ebb02280893b1d60978e4a27e7654a149c5d0e7c2cf65389ce1694910160405180910390a25050565b6004545f906001600160a01b03908116908390811682036120115760405162461bcd60e51b8152600401610d2790612b1d565b612019611ae3565b61202284611b2f565b600480546001600160a01b038681166001600160a01b03198316179092556040519116907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e2290610d729083908890612b7a565b6001600160a01b0382165f90815260096020526040812060010154828082036120b05760405162461bcd60e51b8152600401610d2790612ad2565b6120d1604051806060016040528060258152602001612da26025913961180f565b6120da85611b2f565b6001600160a01b0385165f9081526009602052604090206120fa816118bf565b60408051602080820183528782528251908101909252670c7d713b49da000082529061212881835190511090565b15612143576121396006600861234a565b9550505050612224565b86158015906121bd57506004805460405163fc57d4df60e01b81526001600160a01b038b81169382019390935291169063fc57d4df90602401602060405180830381865afa158015612197573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121bb9190612c14565b155b156121ce57612139600d600961234a565b6001830180549088905560408051828152602081018a90526001600160a01b038b16917f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc5910160405180910390a25f9650505050505b505092915050565b5f612235611ae3565b61223e82611b2f565b603180546001600160a01b038481166001600160a01b03198316179092556040519116907fcb20dab7409e4fb972d9adccb39530520b226ce6940d85c9523a499b950b6ea3906122919083908690612b7a565b60405180910390a15f9392505050565b5f546001600160a01b03163314806118805750336001600160a01b038216146118bc5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610d27565b60185462010000900460ff1615611b2d5760405162461bcd60e51b81526020600482015260126024820152711c1c9bdd1bd8dbdb081a5cc81c185d5cd95960721b6044820152606401610d27565b5f7f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa083601481111561237e5761237e612b09565b83601a81111561239057612390612b09565b6040805192835260208301919091525f9082015260600160405180910390a18260148111156110af576110af612b09565b6001600160a01b0383165f9081526009602052604090206123e1906118bf565b6001600160a01b0383165f908152602960205260408120829184600881111561240c5761240c612b09565b815260208101919091526040015f20805460ff191691151591909117905581600881111561243c5761243c612b09565b836001600160a01b03167f35007a986bcd36d2f73fc7f1b73762e12eadb4406dd163194950fd3b5a6a827d83604051610b7b911515815260200190565b5f6110af8383604051806040016040528060158152602001747375627472616374696f6e20756e646572666c6f7760581b81525061254a565b5f6110af83836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250612578565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526125459084906125d1565b505050565b5f818484111561256d5760405162461bcd60e51b8152600401610d279190612c2b565b506110ac8385612c51565b5f831580612584575082155b1561259057505f6110af565b5f61259b8486612c64565b9050836125a88683612c7b565b1483906125c85760405162461bcd60e51b8152600401610d279190612c2b565b50949350505050565b5f612625826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126a49092919063ffffffff16565b905080515f14806126455750808060200190518101906126459190612be5565b6125455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610d27565b60606110ac84845f85855f80866001600160a01b031685876040516126c99190612c9a565b5f6040518083038185875af1925050503d805f8114612703576040519150601f19603f3d011682016040523d82523d5f602084013e612708565b606091505b509150915061271987838387612726565b925050505b949350505050565b606083156127945782515f0361278d576001600160a01b0385163b61278d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d27565b508161271e565b61271e83838151156127a95781518083602001fd5b8060405162461bcd60e51b8152600401610d279190612c2b565b6001600160a01b03811681146118bc575f80fd5b5f602082840312156127e7575f80fd5b81356110af816127c3565b5f8060408385031215612803575f80fd5b823561280e816127c3565b9150602083013561281e816127c3565b809150509250929050565b5f60208284031215612839575f80fd5b5035919050565b80151581146118bc575f80fd5b5f805f6060848603121561285f575f80fd5b833561286a816127c3565b9250602084013561287a816127c3565b9150604084013561288a81612840565b809150509250925092565b5f8083601f8401126128a5575f80fd5b50813567ffffffffffffffff8111156128bc575f80fd5b6020830191508360208260051b85010111156128d6575f80fd5b9250929050565b5f805f80604085870312156128f0575f80fd5b843567ffffffffffffffff80821115612907575f80fd5b61291388838901612895565b9096509450602087013591508082111561292b575f80fd5b5061293887828801612895565b95989497509550505050565b5f805f805f60608688031215612958575f80fd5b853567ffffffffffffffff8082111561296f575f80fd5b61297b89838a01612895565b90975095506020880135915080821115612993575f80fd5b506129a088828901612895565b90945092505060408601356129b481612840565b809150509295509295909350565b5f602082840312156129d2575f80fd5b81356110af81612840565b5f805f606084860312156129ef575f80fd5b83356129fa816127c3565b95602085013595506040909401359392505050565b5f8060408385031215612a20575f80fd5b8235612a2b816127c3565b9150602083013561281e81612840565b5f805f60608486031215612a4d575f80fd5b8335612a58816127c3565b92506020840135612a68816127c3565b929592945050506040919091013590565b5f8060408385031215612a8a575f80fd5b8235612a95816127c3565b946020939093013593505050565b5f8060408385031215612ab4575f80fd5b8235612abf816127c3565b915060208301356009811061281e575f80fd5b6020808252601e908201527f6f6c642076616c75652069732073616d65206173206e65772076616c75650000604082015260600190565b634e487b7160e01b5f52602160045260245ffd5b60208082526022908201527f6f6c6420616464726573732069732073616d65206173206e6577206164647265604082015261737360f01b606082015260800190565b5f60208284031215612b6f575f80fd5b81516110af816127c3565b6001600160a01b0392831681529116602082015260400190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906110ac90830184612b94565b5f60208284031215612bf5575f80fd5b81516110af81612840565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612c24575f80fd5b5051919050565b602081525f6110af6020830184612b94565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610abf57610abf612c3d565b8082028115828204841417610abf57610abf612c3d565b5f82612c9557634e487b7160e01b5f52601260045260245ffd5b500490565b5f82518060208501845e5f92019182525091905056fe5f736574466f726365644c69717569646174696f6e466f725573657228616464726573732c616464726573732c626f6f6c295f736574416374696f6e7350617573656428616464726573735b5d2c75696e74385b5d2c626f6f6c295f7365744c69717569646174696f6e496e63656e746976652875696e74323536295f7365744d61726b6574537570706c794361707328616464726573735b5d2c75696e743235365b5d295f736574466f726365644c69717569646174696f6e28616464726573732c626f6f6c295f7365744d61726b6574426f72726f774361707328616464726573735b5d2c75696e743235365b5d295f736574436f6c6c61746572616c466163746f7228616464726573732c75696e7432353629a2646970667358221220ba9d883cac4f125f53371680b4796c1ef4904f8a31dfce0ea0037f1b8947a9f464736f6c63430008190033",
|
|
2009
2103
|
"linkReferences": {},
|
|
2010
2104
|
"deployedLinkReferences": {}
|
|
2011
2105
|
}
|
|
@@ -23,6 +23,26 @@
|
|
|
23
23
|
"name": "EmptyPoolLabel",
|
|
24
24
|
"type": "error"
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
"inputs": [],
|
|
28
|
+
"name": "ExecuteFlashLoanFailed",
|
|
29
|
+
"type": "error"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"inputs": [],
|
|
33
|
+
"name": "FailedToCreateDebtPosition",
|
|
34
|
+
"type": "error"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"inputs": [],
|
|
38
|
+
"name": "FlashLoanNotEnabled",
|
|
39
|
+
"type": "error"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"inputs": [],
|
|
43
|
+
"name": "FlashLoanPausedSystemWide",
|
|
44
|
+
"type": "error"
|
|
45
|
+
},
|
|
26
46
|
{
|
|
27
47
|
"inputs": [
|
|
28
48
|
{
|
|
@@ -39,6 +59,16 @@
|
|
|
39
59
|
"name": "IncompatibleBorrowedAssets",
|
|
40
60
|
"type": "error"
|
|
41
61
|
},
|
|
62
|
+
{
|
|
63
|
+
"inputs": [],
|
|
64
|
+
"name": "InvalidAmount",
|
|
65
|
+
"type": "error"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"inputs": [],
|
|
69
|
+
"name": "InvalidFlashLoanParams",
|
|
70
|
+
"type": "error"
|
|
71
|
+
},
|
|
42
72
|
{
|
|
43
73
|
"inputs": [],
|
|
44
74
|
"name": "InvalidOperationForCorePool",
|
|
@@ -92,11 +122,48 @@
|
|
|
92
122
|
"name": "MarketConfigNotFound",
|
|
93
123
|
"type": "error"
|
|
94
124
|
},
|
|
125
|
+
{
|
|
126
|
+
"inputs": [
|
|
127
|
+
{
|
|
128
|
+
"internalType": "address",
|
|
129
|
+
"name": "vToken",
|
|
130
|
+
"type": "address"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"name": "MarketNotListed",
|
|
134
|
+
"type": "error"
|
|
135
|
+
},
|
|
95
136
|
{
|
|
96
137
|
"inputs": [],
|
|
97
138
|
"name": "MarketNotListedInCorePool",
|
|
98
139
|
"type": "error"
|
|
99
140
|
},
|
|
141
|
+
{
|
|
142
|
+
"inputs": [],
|
|
143
|
+
"name": "NoAssetsRequested",
|
|
144
|
+
"type": "error"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"inputs": [],
|
|
148
|
+
"name": "NotAnApprovedDelegate",
|
|
149
|
+
"type": "error"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"inputs": [
|
|
153
|
+
{
|
|
154
|
+
"internalType": "uint256",
|
|
155
|
+
"name": "repaid",
|
|
156
|
+
"type": "uint256"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"internalType": "uint256",
|
|
160
|
+
"name": "required",
|
|
161
|
+
"type": "uint256"
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
"name": "NotEnoughRepayment",
|
|
165
|
+
"type": "error"
|
|
166
|
+
},
|
|
100
167
|
{
|
|
101
168
|
"inputs": [
|
|
102
169
|
{
|
|
@@ -124,6 +191,33 @@
|
|
|
124
191
|
"name": "PoolMarketNotFound",
|
|
125
192
|
"type": "error"
|
|
126
193
|
},
|
|
194
|
+
{
|
|
195
|
+
"inputs": [
|
|
196
|
+
{
|
|
197
|
+
"internalType": "address",
|
|
198
|
+
"name": "sender",
|
|
199
|
+
"type": "address"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
"name": "SenderNotAuthorizedForFlashLoan",
|
|
203
|
+
"type": "error"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"inputs": [
|
|
207
|
+
{
|
|
208
|
+
"internalType": "uint256",
|
|
209
|
+
"name": "requested",
|
|
210
|
+
"type": "uint256"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"internalType": "uint256",
|
|
214
|
+
"name": "maximum",
|
|
215
|
+
"type": "uint256"
|
|
216
|
+
}
|
|
217
|
+
],
|
|
218
|
+
"name": "TooManyAssetsRequested",
|
|
219
|
+
"type": "error"
|
|
220
|
+
},
|
|
127
221
|
{
|
|
128
222
|
"anonymous": false,
|
|
129
223
|
"inputs": [
|
|
@@ -968,8 +1062,8 @@
|
|
|
968
1062
|
"type": "function"
|
|
969
1063
|
}
|
|
970
1064
|
],
|
|
971
|
-
"bytecode": "
|
|
972
|
-
"deployedBytecode": "
|
|
1065
|
+
"bytecode": "0x6080604052348015600e575f80fd5b506108e08061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061026b575f3560e01c80638e8f294b1161014b578063c5f956af116100bf578063e37d4b7911610084578063e37d4b7914610678578063e85a2960146106af578063e8755446146106c2578063f445d703146106cb578063f851a440146106f8578063fa6331d81461070a575f80fd5b8063c5f956af14610619578063c7ee005e1461062c578063d3270f991461063f578063dce1544914610652578063dcfbc0c714610665575f80fd5b8063b8324c7c11610110578063b8324c7c14610544578063bb82aa5e1461059f578063bbb8864a146105b2578063bec04f72146105d1578063bf32442d146105da578063c5b4db55146105eb575f80fd5b80638e8f294b146104b05780639254f5e51461050257806394b2294b146105155780639bb27d621461051e578063b2eafc3914610531575f80fd5b8063425fad58116101e2578063719f701b116101a7578063719f701b1461042e57806376551383146104375780637d172bd5146104495780637dc0d1d01461045c5780638a7dc1651461046f5780638c1ac18a1461048e575f80fd5b8063425fad58146103c15780634a584432146103d45780634ada90af146103f357806352d84d1e146103fc5780635dd3fc9d1461040f575f80fd5b806321af45691161023357806321af45691461031a57806324a3d6221461034557806326782247146103585780632bc7e29e1461036b5780634088c73e1461038a57806341a18d2c14610397575f80fd5b806302c3bcbb1461026f57806304ef9d58146102a157806308e0225c146102aa5780630db4b4e5146102d457806310b98338146102dd575b5f80fd5b61028e61027d3660046107ce565b60276020525f908152604090205481565b6040519081526020015b60405180910390f35b61028e60225481565b61028e6102b83660046107ee565b601360209081525f928352604080842090915290825290205481565b61028e601d5481565b61030a6102eb3660046107ee565b602c60209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610298565b601e5461032d906001600160a01b031681565b6040516001600160a01b039091168152602001610298565b600a5461032d906001600160a01b031681565b60015461032d906001600160a01b031681565b61028e6103793660046107ce565b60166020525f908152604090205481565b60185461030a9060ff1681565b61028e6103a53660046107ee565b601260209081525f928352604080842090915290825290205481565b60185461030a9062010000900460ff1681565b61028e6103e23660046107ce565b601f6020525f908152604090205481565b61028e60065481565b61032d61040a36600461081f565b610713565b61028e61041d3660046107ce565b602b6020525f908152604090205481565b61028e601c5481565b60185461030a90610100900460ff1681565b601b5461032d906001600160a01b031681565b60045461032d906001600160a01b031681565b61028e61047d3660046107ce565b60146020525f908152604090205481565b61030a61049c3660046107ce565b602d6020525f908152604090205460ff1681565b6104e36104be3660046107ce565b60096020525f908152604090208054600182015460039092015460ff91821692911683565b6040805193151584526020840192909252151590820152606001610298565b60155461032d906001600160a01b031681565b61028e60075481565b60255461032d906001600160a01b031681565b60205461032d906001600160a01b031681565b61057b6105523660046107ce565b60106020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610298565b60025461032d906001600160a01b031681565b61028e6105c03660046107ce565b602a6020525f908152604090205481565b61028e60175481565b6033546001600160a01b031661032d565b6106016ec097ce7bc90715b34b9f100000000081565b6040516001600160e01b039091168152602001610298565b60215461032d906001600160a01b031681565b60315461032d906001600160a01b031681565b60265461032d906001600160a01b031681565b61032d610660366004610836565b61073b565b60035461032d906001600160a01b031681565b61057b6106863660046107ce565b60116020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b61030a6106bd36600461085e565b61076f565b61028e60055481565b61030a6106d93660046107ee565b603260209081525f928352604080842090915290825290205460ff1681565b5f5461032d906001600160a01b031681565b61028e601a5481565b600d8181548110610722575f80fd5b5f918252602090912001546001600160a01b0316905081565b6008602052815f5260405f208181548110610754575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0382165f9081526029602052604081208183600881111561079957610799610896565b815260208101919091526040015f205460ff169392505050565b80356001600160a01b03811681146107c9575f80fd5b919050565b5f602082840312156107de575f80fd5b6107e7826107b3565b9392505050565b5f80604083850312156107ff575f80fd5b610808836107b3565b9150610816602084016107b3565b90509250929050565b5f6020828403121561082f575f80fd5b5035919050565b5f8060408385031215610847575f80fd5b610850836107b3565b946020939093013593505050565b5f806040838503121561086f575f80fd5b610878836107b3565b915060208301356009811061088b575f80fd5b809150509250929050565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220da3bf2caf68518695fcb224d7ced95b27eb778810bd541eed770b65e0a4eb1fb64736f6c63430008190033",
|
|
1066
|
+
"deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061026b575f3560e01c80638e8f294b1161014b578063c5f956af116100bf578063e37d4b7911610084578063e37d4b7914610678578063e85a2960146106af578063e8755446146106c2578063f445d703146106cb578063f851a440146106f8578063fa6331d81461070a575f80fd5b8063c5f956af14610619578063c7ee005e1461062c578063d3270f991461063f578063dce1544914610652578063dcfbc0c714610665575f80fd5b8063b8324c7c11610110578063b8324c7c14610544578063bb82aa5e1461059f578063bbb8864a146105b2578063bec04f72146105d1578063bf32442d146105da578063c5b4db55146105eb575f80fd5b80638e8f294b146104b05780639254f5e51461050257806394b2294b146105155780639bb27d621461051e578063b2eafc3914610531575f80fd5b8063425fad58116101e2578063719f701b116101a7578063719f701b1461042e57806376551383146104375780637d172bd5146104495780637dc0d1d01461045c5780638a7dc1651461046f5780638c1ac18a1461048e575f80fd5b8063425fad58146103c15780634a584432146103d45780634ada90af146103f357806352d84d1e146103fc5780635dd3fc9d1461040f575f80fd5b806321af45691161023357806321af45691461031a57806324a3d6221461034557806326782247146103585780632bc7e29e1461036b5780634088c73e1461038a57806341a18d2c14610397575f80fd5b806302c3bcbb1461026f57806304ef9d58146102a157806308e0225c146102aa5780630db4b4e5146102d457806310b98338146102dd575b5f80fd5b61028e61027d3660046107ce565b60276020525f908152604090205481565b6040519081526020015b60405180910390f35b61028e60225481565b61028e6102b83660046107ee565b601360209081525f928352604080842090915290825290205481565b61028e601d5481565b61030a6102eb3660046107ee565b602c60209081525f928352604080842090915290825290205460ff1681565b6040519015158152602001610298565b601e5461032d906001600160a01b031681565b6040516001600160a01b039091168152602001610298565b600a5461032d906001600160a01b031681565b60015461032d906001600160a01b031681565b61028e6103793660046107ce565b60166020525f908152604090205481565b60185461030a9060ff1681565b61028e6103a53660046107ee565b601260209081525f928352604080842090915290825290205481565b60185461030a9062010000900460ff1681565b61028e6103e23660046107ce565b601f6020525f908152604090205481565b61028e60065481565b61032d61040a36600461081f565b610713565b61028e61041d3660046107ce565b602b6020525f908152604090205481565b61028e601c5481565b60185461030a90610100900460ff1681565b601b5461032d906001600160a01b031681565b60045461032d906001600160a01b031681565b61028e61047d3660046107ce565b60146020525f908152604090205481565b61030a61049c3660046107ce565b602d6020525f908152604090205460ff1681565b6104e36104be3660046107ce565b60096020525f908152604090208054600182015460039092015460ff91821692911683565b6040805193151584526020840192909252151590820152606001610298565b60155461032d906001600160a01b031681565b61028e60075481565b60255461032d906001600160a01b031681565b60205461032d906001600160a01b031681565b61057b6105523660046107ce565b60106020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b604080516001600160e01b03909316835263ffffffff909116602083015201610298565b60025461032d906001600160a01b031681565b61028e6105c03660046107ce565b602a6020525f908152604090205481565b61028e60175481565b6033546001600160a01b031661032d565b6106016ec097ce7bc90715b34b9f100000000081565b6040516001600160e01b039091168152602001610298565b60215461032d906001600160a01b031681565b60315461032d906001600160a01b031681565b60265461032d906001600160a01b031681565b61032d610660366004610836565b61073b565b60035461032d906001600160a01b031681565b61057b6106863660046107ce565b60116020525f90815260409020546001600160e01b03811690600160e01b900463ffffffff1682565b61030a6106bd36600461085e565b61076f565b61028e60055481565b61030a6106d93660046107ee565b603260209081525f928352604080842090915290825290205460ff1681565b5f5461032d906001600160a01b031681565b61028e601a5481565b600d8181548110610722575f80fd5b5f918252602090912001546001600160a01b0316905081565b6008602052815f5260405f208181548110610754575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6001600160a01b0382165f9081526029602052604081208183600881111561079957610799610896565b815260208101919091526040015f205460ff169392505050565b80356001600160a01b03811681146107c9575f80fd5b919050565b5f602082840312156107de575f80fd5b6107e7826107b3565b9392505050565b5f80604083850312156107ff575f80fd5b610808836107b3565b9150610816602084016107b3565b90509250929050565b5f6020828403121561082f575f80fd5b5035919050565b5f8060408385031215610847575f80fd5b610850836107b3565b946020939093013593505050565b5f806040838503121561086f575f80fd5b610878836107b3565b915060208301356009811061088b575f80fd5b809150509250929050565b634e487b7160e01b5f52602160045260245ffdfea2646970667358221220da3bf2caf68518695fcb224d7ced95b27eb778810bd541eed770b65e0a4eb1fb64736f6c63430008190033",
|
|
973
1067
|
"linkReferences": {},
|
|
974
1068
|
"deployedLinkReferences": {}
|
|
975
1069
|
}
|
package/artifacts/contracts/FlashLoan/interfaces/IFlashLoanReceiver.sol/IFlashLoanReceiver.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "IFlashLoanReceiver",
|
|
4
|
+
"sourceName": "contracts/FlashLoan/interfaces/IFlashLoanReceiver.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"internalType": "contract VToken[]",
|
|
10
|
+
"name": "vTokens",
|
|
11
|
+
"type": "address[]"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"internalType": "uint256[]",
|
|
15
|
+
"name": "amounts",
|
|
16
|
+
"type": "uint256[]"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"internalType": "uint256[]",
|
|
20
|
+
"name": "premiums",
|
|
21
|
+
"type": "uint256[]"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"internalType": "address",
|
|
25
|
+
"name": "initiator",
|
|
26
|
+
"type": "address"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"internalType": "address",
|
|
30
|
+
"name": "onBehalf",
|
|
31
|
+
"type": "address"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"internalType": "bytes",
|
|
35
|
+
"name": "param",
|
|
36
|
+
"type": "bytes"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"name": "executeOperation",
|
|
40
|
+
"outputs": [
|
|
41
|
+
{
|
|
42
|
+
"internalType": "bool",
|
|
43
|
+
"name": "success",
|
|
44
|
+
"type": "bool"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"internalType": "uint256[]",
|
|
48
|
+
"name": "repayAmounts",
|
|
49
|
+
"type": "uint256[]"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"stateMutability": "nonpayable",
|
|
53
|
+
"type": "function"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"bytecode": "0x",
|
|
57
|
+
"deployedBytecode": "0x",
|
|
58
|
+
"linkReferences": {},
|
|
59
|
+
"deployedLinkReferences": {}
|
|
60
|
+
}
|