0 txs
1 call
constructor
constructor(bool timeBased_, uint256 blocksPerYear_)
functions
blocksOrSecondsPerYear
viewfunction blocksOrSecondsPerYear() view returns (uint256)
getAllPools
viewfunction getAllPools(address poolRegistryAddress) view returns (tuple[])
getBlockNumberOrTimestamp
viewfunction getBlockNumberOrTimestamp() view returns (uint256)
getPendingRewards
viewfunction getPendingRewards(address account, address comptrollerAddress) view returns (tuple[])
getPoolBadDebt
viewfunction getPoolBadDebt(address comptrollerAddress) view returns (tuple)
getPoolByComptroller
viewfunction getPoolByComptroller(address poolRegistryAddress, address comptroller) view returns (tuple)
getPoolDataFromVenusPool
viewfunction getPoolDataFromVenusPool(address poolRegistryAddress, tuple venusPool) view returns (tuple)
getPoolsSupportedByAsset
viewfunction getPoolsSupportedByAsset(address poolRegistryAddress, address asset) view returns (address[])
getVTokenForAsset
viewfunction getVTokenForAsset(address poolRegistryAddress, address comptroller, address asset) view returns (address)
isTimeBased
viewfunction isTimeBased() view returns (bool)
vTokenMetadata
viewfunction vTokenMetadata(address vToken) view returns (tuple)
vTokenMetadataAll
viewfunction vTokenMetadataAll(address[] vTokens) view returns (tuple[])
vTokenUnderlyingPrice
viewfunction vTokenUnderlyingPrice(address vToken) view returns (tuple)
vTokenUnderlyingPriceAll
viewfunction vTokenUnderlyingPriceAll(address[] vTokens) view returns (tuple[])
vTokenBalances
nonpayablefunction vTokenBalances(address vToken, address account) returns (tuple)
vTokenBalancesAll
nonpayablefunction vTokenBalancesAll(address[] vTokens, address account) returns (tuple[])
events
No events.
errors
InvalidBlocksPerYear
error InvalidBlocksPerYear()
InvalidTimeBasedConfiguration
error InvalidTimeBasedConfiguration()
creation bytecode
0x60e060405234801561001057600080fd5b5060405161406e38038061406e83398101604081905261002f916100dc565b81818115801561003d575080155b1561005b576040516302723dfb60e21b815260040160405180910390fd5b81801561006757508015155b156100855760405163ae0fcab360e01b815260040160405180910390fd5b81151560a05281610096578061009c565b6301e133805b608052816100b3576100d460201b611dfb176100be565b6100d860201b611dff175b6001600160401b031660c0525061010f92505050565b4390565b4290565b600080604083850312156100ef57600080fd5b825180151581146100ff57600080fd5b6020939093015192949293505050565b60805160a05160c051613f296101456000396000611dcf0152600081816102a60152611ed0015260006101d10152613f296000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80637c51b64211610097578063c7ad089511610066578063c7ad0895146102a1578063d77ebf96146102d8578063e0a67f11146102f8578063e1d146fb1461031857600080fd5b80637c51b642146102215780637c84e3b314610241578063aa5dbd2314610261578063b31242391461028157600080fd5b806347d86a81116100d357806347d86a811461018e57806355dd9515146101a15780636857249c146101cc5780637a27db571461020157600080fd5b80630d3ae318146101055780631f884fdf1461012e578063345954dc1461014e5780633e3e399c1461016e575b600080fd5b610118610113366004612f40565b610320565b60405161012591906132ad565b60405180910390f35b61014161013c36600461330b565b610655565b604051610125919061334c565b61016161015c3660046133ac565b61071d565b60405161012591906133c9565b61018161017c3660046133ac565b610850565b604051610125919061342d565b61011861019c3660046134b7565b610bc2565b6101b46101af3660046134f0565b610c49565b6040516001600160a01b039091168152602001610125565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610125565b61021461020f3660046134b7565b610cc9565b604051610125919061353b565b61023461022f366004613617565b610fd6565b60405161012591906136a2565b61025461024f3660046133ac565b61108f565b60405161012591906136f0565b61027461026f3660046133ac565b6111f9565b6040516101259190613710565b61029461028f3660046134b7565b6119b9565b604051610125919061371f565b6102c87f000000000000000000000000000000000000000000000000000000000000000081565b6040519015158152602001610125565b6102eb6102e63660046134b7565b611ca0565b604051610125919061372d565b61030b610306366004613791565b611d13565b604051610125919061382a565b6101f3611dc8565b610328612d07565b6000826040015190506000816001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610371573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610399919081019061386d565b905060006103a682611d13565b60408681015190516328ebbe8b60e21b81526001600160a01b039182166004820152919250879160009183169063a3aefa2c90602401600060405180830381865afa1580156103f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104219190810190613940565b90506000876040015190506000604051806101a001604052808a6000015181526020018a602001516001600160a01b031681526020018a604001516001600160a01b031681526020018a6060015181526020018a608001518152602001846000015181526020018460200151815260200184604001518152602001836001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fe91906139f4565b6001600160a01b03168152602001836001600160a01b031663e87554466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056e9190613a11565b8152602001836001600160a01b0316634ada90af6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d59190613a11565b8152602001836001600160a01b031663db5c65de6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063c9190613a11565b8152602001959095525092955050505050505b92915050565b6060816000816001600160401b0381111561067257610672612e89565b6040519080825280602002602001820160405280156106b757816020015b60408051808201909152600080825260208201528152602001906001900390816106905790505b50905060005b82811015610714576106ef8686838181106106da576106da613a2a565b905060200201602081019061024f91906133ac565b82828151811061070157610701613a2a565b60209081029190910101526001016106bd565b50949350505050565b606060008290506000816001600160a01b031663d88ff1f46040518163ffffffff1660e01b8152600401600060405180830381865afa158015610764573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261078c9190810190613ac3565b80519091506000816001600160401b038111156107ab576107ab612e89565b6040519080825280602002602001820160405280156107e457816020015b6107d1612d07565b8152602001906001900390816107c95790505b50905060005b8281101561084657600084828151811061080657610806613a2a565b60200260200101519050600061081c8983610320565b90508084848151811061083157610831613a2a565b602090810291909101015250506001016107ea565b5095945050505050565b604080516060808201835260008083526020830152918101919091526000808390506000816001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156108b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108da919081019061386d565b90506000826001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561091c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094091906139f4565b9050600082516001600160401b0381111561095d5761095d612e89565b6040519080825280602002602001820160405280156109a257816020015b604080518082019091526000808252602082015281526020019060019003908161097b5790505b5090506109d2604051806060016040528060006001600160a01b0316815260200160008152602001606081525090565b6001600160a01b03881681526040810182905260005b8451811015610bae576040805180820190915260008082526020820152858281518110610a1757610a17613a2a565b602002602001015181600001906001600160a01b031690816001600160a01b031681525050670de0b6b3a7640000856001600160a01b031663fc57d4df888581518110610a6657610a66613a2a565b60200260200101516040518263ffffffff1660e01b8152600401610a9991906001600160a01b0391909116815260200190565b602060405180830381865afa158015610ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ada9190613a11565b878481518110610aec57610aec613a2a565b60200260200101516001600160a01b031663bbcac5576040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190613a11565b610b5f9190613b89565b610b699190613ba0565b60208201526040830151805182919084908110610b8857610b88613a2a565b6020026020010181905250806020015188610ba39190613bc2565b9750506001016109e8565b506020810195909552509295945050505050565b610bca612d07565b604051637aee632d60e01b81526001600160a01b0383811660048301528491610c4191839190821690637aee632d90602401600060405180830381865afa158015610c19573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101139190810190613bd5565b949350505050565b60405163266e0a7f60e01b81526001600160a01b0383811660048301528281166024830152600091859182169063266e0a7f90604401602060405180830381865afa158015610c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc091906139f4565b95945050505050565b60606000826001600160a01b031663b0772d0b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015610d0b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d33919081019061386d565b90506000836001600160a01b03166361252fd16040518163ffffffff1660e01b8152600401600060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d9d9190810190613c09565b9050600081516001600160401b03811115610dba57610dba612e89565b604051908082528060200260200182016040528015610e0b57816020015b6040805160808101825260008082526020808301829052928201526060808201528252600019909201910181610dd85790505b50905060005b8251811015610846576040805160808101825260008082526020820181905291810191909152606080820152838281518110610e4f57610e4f613a2a565b60209081029190910101516001600160a01b031681528351849083908110610e7957610e79613a2a565b60200260200101516001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ebe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee291906139f4565b6001600160a01b031660208201528351849083908110610f0457610f04613a2a565b6020908102919091010151604051631627ee8960e01b81526001600160a01b038a8116600483015290911690631627ee8990602401602060405180830381865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190613a11565b816040018181525050610fa78886868581518110610f9a57610f9a613a2a565b6020026020010151611e03565b816060018190525080838381518110610fc257610fc2613a2a565b602090810291909101015250600101610e11565b6060826000816001600160401b03811115610ff357610ff3612e89565b60405190808252806020026020018201604052801561102c57816020015b611019612d8a565b8152602001906001900390816110115790505b50905060005b828110156108465761106a87878381811061104f5761104f613a2a565b905060200201602081019061106491906133ac565b866119b9565b82828151811061107c5761107c613a2a565b6020908102919091010152600101611032565b60408051808201909152600080825260208201526000826001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110791906139f4565b90506000816001600160a01b0316637dc0d1d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116d91906139f4565b6040805180820182526001600160a01b03808816808352925163fc57d4df60e01b815260048101939093529293509160208301919084169063fc57d4df90602401602060405180830381865afa1580156111cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ef9190613a11565b9052949350505050565b611201612dc9565b6000826001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112659190613a11565b90506000836001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb91906139f4565b604051638e8f294b60e01b81526001600160a01b03868116600483015291925082916000918291841690638e8f294b906024016040805180830381865afa15801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e9190613ca7565b915091506000876001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a691906139f4565b90506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140c9190613cd3565b60ff1690506000805b600860ff8216116114d2576000886001600160a01b031663e85a29608d8460ff16600881111561144757611447613cf6565b6040518363ffffffff1660e01b8152600401611464929190613d0c565b602060405180830381865afa158015611481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a59190613d47565b6114b05760006114b3565b60015b60ff9081169083161b9290921791506114cb81613d62565b9050611415565b506000808b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611514573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115389190613a11565b11156115a3578a6001600160a01b031663ae9d70b06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a09190613a11565b90505b6040518061022001604052808c6001600160a01b031681526020018a81526020018281526020018c6001600160a01b031663f8f9da286040518163ffffffff1660e01b8152600401602060405180830381865afa158015611608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162c9190613a11565b81526020018c6001600160a01b031663173b99046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116939190613a11565b81526040516302c3bcbb60e01b81526001600160a01b038e811660048301526020909201918a16906302c3bcbb90602401602060405180830381865afa1580156116e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117059190613a11565b815260405163252c221960e11b81526001600160a01b038e811660048301526020909201918a1690634a58443290602401602060405180830381865afa158015611753573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117779190613a11565b81526020018c6001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117de9190613a11565b81526020018c6001600160a01b0316638f840ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611821573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118459190613a11565b81526020018c6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190613a11565b81526020018c6001600160a01b0316633b1d21a26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119139190613a11565b81526020018715158152602001868152602001856001600160a01b031681526020018c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119979190613cd3565b60ff168152602001848152602001838152509950505050505050505050919050565b6119c1612d8a565b6040516370a0823160e01b81526001600160a01b038381166004830152600091908516906370a0823190602401602060405180830381865afa158015611a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2f9190613a11565b6040516305eff7ef60e21b81526001600160a01b0385811660048301529192506000918616906317bfdfbc906024016020604051808303816000875af1158015611a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa19190613a11565b604051633af9e66960e01b81526001600160a01b038681166004830152919250600091871690633af9e669906024016020604051808303816000875af1158015611aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b139190613a11565b90506000806000886001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7c91906139f4565b6040516370a0823160e01b81526001600160a01b038a81166004830152919250908216906370a0823190602401602060405180830381865afa158015611bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bea9190613a11565b604051636eb1769f60e11b81526001600160a01b038a811660048301528b811660248301529194509082169063dd62ed3e90604401602060405180830381865afa158015611c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c609190613a11565b6040805160c0810182526001600160a01b038c168152602081019890985287019590955250506060840191909152608083015260a0820152905092915050565b604051631e6db74760e31b81526001600160a01b038281166004830152606091849182169063f36dba3890602401600060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c419190810190613d81565b80516060906000816001600160401b03811115611d3257611d32612e89565b604051908082528060200260200182016040528015611d6b57816020015b611d58612dc9565b815260200190600190039081611d505790505b50905060005b82811015611dc057611d9b858281518110611d8e57611d8e613a2a565b60200260200101516111f9565b828281518110611dad57611dad613a2a565b6020908102919091010152600101611d71565b509392505050565b6000611df67f000000000000000000000000000000000000000000000000000000000000000063ffffffff16565b905090565b4390565b4290565b6060600083516001600160401b03811115611e2057611e20612e89565b604051908082528060200260200182016040528015611e6557816020015b6040805180820190915260008082526020820152815260200190600190039081611e3e5790505b50905060005b845181101561071457611ea1604051806060016040528060006001600160e01b0316815260200160008152602001600081525090565b611ece604051806060016040528060006001600160e01b0316815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000001561205157856001600160a01b0316638f693ec7888581518110611f1557611f15613a2a565b60200260200101516040518263ffffffff1660e01b8152600401611f4891906001600160a01b0391909116815260200190565b606060405180830381865afa158015611f65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f899190613e26565b604085015260208401526001600160e01b0316825286516001600160a01b03871690638181494590899086908110611fc357611fc3613a2a565b60200260200101516040518263ffffffff1660e01b8152600401611ff691906001600160a01b0391909116815260200190565b606060405180830381865afa158015612013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120379190613e26565b604084015260208301526001600160e01b031681526121bc565b856001600160a01b0316632c427b5788858151811061207257612072613a2a565b60200260200101516040518263ffffffff1660e01b81526004016120a591906001600160a01b0391909116815260200190565b606060405180830381865afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e69190613e6f565b63ffffffff90811660408601521660208401526001600160e01b0316825286516001600160a01b038716906392a182359089908690811061212957612129613a2a565b60200260200101516040518263ffffffff1660e01b815260040161215c91906001600160a01b0391909116815260200190565b606060405180830381865afa158015612179573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219d9190613e6f565b63ffffffff90811660408501521660208301526001600160e01b031681525b600060405180602001604052808986815181106121db576121db613a2a565b60200260200101516001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122449190613a11565b815250905061226e88858151811061225e5761225e613a2a565b6020026020010151888584612363565b61229288858151811061228357612283613a2a565b60200260200101518884612564565b60006122ba8986815181106122a9576122a9613a2a565b6020026020010151898c878661275b565b905060006122e38a87815181106122d3576122d3613a2a565b60200260200101518a8d8761298b565b60408051808201909152600080825260208201529091508a878151811061230c5761230c613a2a565b60209081029190910101516001600160a01b0316815261232c8284613bc2565b60208201528751819089908990811061234757612347613a2a565b6020026020010181905250505050505050806001019050611e6b565b604051637c05a7c560e01b81526001600160a01b03858116600483015260009190851690637c05a7c590602401602060405180830381865afa1580156123ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123d19190613a11565b905060006123dd611dc8565b9050600084604001511180156123f65750836040015181115b15612402575060408301515b6000612412828660200151612baf565b90506000811180156124245750600083115b1561254d576000612496886001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124909190613a11565b86612bc2565b905060006124a48386612be0565b905060008083116124c457604051806020016040528060008152506124ce565b6124ce8284612bec565b905060006124f760405180602001604052808b600001516001600160e01b031681525083612c31565b90506125328160000151604051806040016040528060138152602001726e657720696e646578206f766572666c6f777360681b815250612c5d565b6001600160e01b03168952505050506020850182905261255b565b801561255b57602085018290525b50505050505050565b604051631d31307360e21b81526001600160a01b038481166004830152600091908416906374c4c1cc90602401602060405180830381865afa1580156125ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d29190613a11565b905060006125de611dc8565b9050600083604001511180156125f75750826040015181115b15612603575060408201515b6000612613828560200151612baf565b90506000811180156126255750600083115b15612745576000866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561266a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268e9190613a11565b9050600061269c8386612be0565b905060008083116126bc57604051806020016040528060008152506126c6565b6126c68284612bec565b905060006126ef60405180602001604052808a600001516001600160e01b031681525083612c31565b905061272a8160000151604051806040016040528060138152602001726e657720696e646578206f766572666c6f777360681b815250612c5d565b6001600160e01b031688525050505060208401829052612753565b801561275357602084018290525b505050505050565b604080516020808201835284516001600160e01b031682528251908101928390526336fe846560e11b9092526001600160a01b0387811660248401528581166044840152600092839181908916636dfd08ca60648301602060405180830381865afa1580156127ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f29190613a11565b905280519091501580156128745750866001600160a01b031663160c3a036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561283f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128639190613eb2565b6001600160e01b0316826000015110155b156128e757866001600160a01b031663160c3a036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128db9190613eb2565b6001600160e01b031681525b60006128f38383612c99565b6040516395dd919360e01b81526001600160a01b03898116600483015291925060009161296e91908c16906395dd919390602401602060405180830381865afa158015612944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129689190613a11565b87612bc2565b9050600061297c8284612cc5565b9b9a5050505050505050505050565b604080516020808201835283516001600160e01b0316825282519081019283905263552c097160e01b9092526001600160a01b038681166024840152848116604484015260009283918190881663552c097160648301602060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a229190613a11565b90528051909150158015612aa45750856001600160a01b031663160c3a036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a939190613eb2565b6001600160e01b0316826000015110155b15612b1757856001600160a01b031663160c3a036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b0b9190613eb2565b6001600160e01b031681525b6000612b238383612c99565b6040516370a0823160e01b81526001600160a01b0388811660048301529192506000918a16906370a0823190602401602060405180830381865afa158015612b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b939190613a11565b90506000612ba18284612cc5565b9a9950505050505050505050565b6000612bbb8284613ecd565b9392505050565b6000612bbb612bd984670de0b6b3a7640000612be0565b8351612cef565b6000612bbb8284613b89565b6040805160208101909152600081526040518060200160405280612c28612c22866ec097ce7bc90715b34b9f1000000000612be0565b85612cef565b90529392505050565b6040805160208101909152600081526040518060200160405280612c2885600001518560000151612cfb565b6000816001600160e01b03841115612c915760405162461bcd60e51b8152600401612c889190613ee0565b60405180910390fd5b509192915050565b6040805160208101909152600081526040518060200160405280612c2885600001518560000151612baf565b60006ec097ce7bc90715b34b9f1000000000612ce5848460000151612be0565b612bbb9190613ba0565b6000612bbb8284613ba0565b6000612bbb8284613bc2565b604051806101a001604052806060815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160608152602001606081526020016060815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b6040518060c0016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180610220016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b6001600160a01b0381168114612e7657600080fd5b50565b8035612e8481612e61565b919050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715612ec157612ec1612e89565b60405290565b604051606081016001600160401b0381118282101715612ec157612ec1612e89565b604051601f8201601f191681016001600160401b0381118282101715612f1157612f11612e89565b604052919050565b60006001600160401b03821115612f3257612f32612e89565b50601f01601f191660200190565b60008060408385031215612f5357600080fd5b8235612f5e81612e61565b91506020838101356001600160401b0380821115612f7b57600080fd5b9085019060a08288031215612f8f57600080fd5b612f97612e9f565b823582811115612fa657600080fd5b83019150601f82018813612fb957600080fd5b8135612fcc612fc782612f19565b612ee9565b8181528986838601011115612fe057600080fd5b818685018783013760008683830101528083525050613000848401612e79565b8482015261301060408401612e79565b60408201526060830135606082015260808301356080820152809450505050509250929050565b60005b8381101561305257818101518382015260200161303a565b50506000910152565b60008151808452613073816020860160208601613037565b601f01601f19169290920160200192915050565b80516001600160a01b031682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100808201518184015250610120808201518184015250610140808201518184015250610160808201516131128285018215159052565b505061018081810151908301526101a0808201516001600160a01b0316908301526101c080820151908301526101e0808201519083015261020090810151910152565b60008151808452602080850194506020840160005b838110156131915761317d878351613087565b61022096909601959082019060010161316a565b509495945050505050565b60006101a082518185526131b28286018261305b565b91505060208301516131cf60208601826001600160a01b03169052565b5060408301516131ea60408601826001600160a01b03169052565b50606083015160608501526080830151608085015260a083015184820360a0860152613216828261305b565b91505060c083015184820360c0860152613230828261305b565b91505060e083015184820360e086015261324a828261305b565b91505061010080840151613268828701826001600160a01b03169052565b505061012083810151908501526101408084015190850152610160808401519085015261018080840151858303828701526132a38382613155565b9695505050505050565b602081526000612bbb602083018461319c565b60008083601f8401126132d257600080fd5b5081356001600160401b038111156132e957600080fd5b6020830191508360208260051b850101111561330457600080fd5b9250929050565b6000806020838503121561331e57600080fd5b82356001600160401b0381111561333457600080fd5b613340858286016132c0565b90969095509350505050565b602080825282518282018190526000919060409081850190868401855b8281101561339f5761338f84835180516001600160a01b03168252602090810151910152565b9284019290850190600101613369565b5091979650505050505050565b6000602082840312156133be57600080fd5b8135612bbb81612e61565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561342057603f1988860301845261340e85835161319c565b945092850192908501906001016133f2565b5092979650505050505050565b602080825282516001600160a01b03168282015282810151604080840191909152808401516060808501528051608085018190526000939291830191849160a08701905b808410156134ab5761349782865180516001600160a01b03168252602090810151910152565b938501936001939093019290820190613471565b50979650505050505050565b600080604083850312156134ca57600080fd5b82356134d581612e61565b915060208301356134e581612e61565b809150509250929050565b60008060006060848603121561350557600080fd5b833561351081612e61565b9250602084013561352081612e61565b9150604084013561353081612e61565b809150509250925092565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b8481101561360857898403603f19018652825180516001600160a01b03908116865289820151168986015287810151888601526060908101516080918601829052805191860182905289019060a086019084905b808210156135f3576135df83855180516001600160a01b03168252602090810151910152565b928b0192918a0191600191909101906135b9565b50509689019694505091870191600101613565565b50919998505050505050505050565b60008060006040848603121561362c57600080fd5b83356001600160401b0381111561364257600080fd5b61364e868287016132c0565b909450925050602084013561353081612e61565b80516001600160a01b031682526020808201519083015260408082015190830152606080820151908301526080808201519083015260a090810151910152565b6020808252825182820181905260009190848201906040850190845b818110156136e4576136d1838551613662565b9284019260c092909201916001016136be565b50909695505050505050565b81516001600160a01b03168152602080830151908201526040810161064f565b610220810161064f8284613087565b60c0810161064f8284613662565b6020808252825182820181905260009190848201906040850190845b818110156136e45783516001600160a01b031683529284019291840191600101613749565b60006001600160401b0382111561378757613787612e89565b5060051b60200190565b600060208083850312156137a457600080fd5b82356001600160401b038111156137ba57600080fd5b8301601f810185136137cb57600080fd5b80356137d9612fc78261376e565b81815260059190911b820183019083810190878311156137f857600080fd5b928401925b8284101561381f57833561381081612e61565b825292840192908401906137fd565b979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156136e457613859838551613087565b928401926102209290920191600101613846565b6000602080838503121561388057600080fd5b82516001600160401b0381111561389657600080fd5b8301601f810185136138a757600080fd5b80516138b5612fc78261376e565b81815260059190911b820183019083810190878311156138d457600080fd5b928401925b8284101561381f5783516138ec81612e61565b825292840192908401906138d9565b600082601f83011261390c57600080fd5b815161391a612fc782612f19565b81815284602083860101111561392f57600080fd5b610c41826020830160208701613037565b60006020828403121561395257600080fd5b81516001600160401b038082111561396957600080fd5b908301906060828603121561397d57600080fd5b613985612ec7565b82518281111561399457600080fd5b6139a0878286016138fb565b8252506020830151828111156139b557600080fd5b6139c1878286016138fb565b6020830152506040830151828111156139d957600080fd5b6139e5878286016138fb565b60408301525095945050505050565b600060208284031215613a0657600080fd5b8151612bbb81612e61565b600060208284031215613a2357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060a08284031215613a5257600080fd5b613a5a612e9f565b905081516001600160401b03811115613a7257600080fd5b613a7e848285016138fb565b8252506020820151613a8f81612e61565b60208201526040820151613aa281612e61565b80604083015250606082015160608201526080820151608082015292915050565b60006020808385031215613ad657600080fd5b82516001600160401b0380821115613aed57600080fd5b818501915085601f830112613b0157600080fd5b8151613b0f612fc78261376e565b81815260059190911b83018401908481019088831115613b2e57600080fd5b8585015b83811015613b6657805185811115613b4a5760008081fd5b613b588b89838a0101613a40565b845250918601918601613b32565b5098975050505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761064f5761064f613b73565b600082613bbd57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561064f5761064f613b73565b600060208284031215613be757600080fd5b81516001600160401b03811115613bfd57600080fd5b610c4184828501613a40565b60006020808385031215613c1c57600080fd5b82516001600160401b03811115613c3257600080fd5b8301601f81018513613c4357600080fd5b8051613c51612fc78261376e565b81815260059190911b82018301908381019087831115613c7057600080fd5b928401925b8284101561381f578351613c8881612e61565b82529284019290840190613c75565b80518015158114612e8457600080fd5b60008060408385031215613cba57600080fd5b613cc383613c97565b9150602083015190509250929050565b600060208284031215613ce557600080fd5b815160ff81168114612bbb57600080fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03831681526040810160098310613d3a57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b600060208284031215613d5957600080fd5b612bbb82613c97565b600060ff821660ff8103613d7857613d78613b73565b60010192915050565b60006020808385031215613d9457600080fd5b82516001600160401b03811115613daa57600080fd5b8301601f81018513613dbb57600080fd5b8051613dc9612fc78261376e565b81815260059190911b82018301908381019087831115613de857600080fd5b928401925b8284101561381f578351613e0081612e61565b82529284019290840190613ded565b80516001600160e01b0381168114612e8457600080fd5b600080600060608486031215613e3b57600080fd5b613e4484613e0f565b925060208401519150604084015190509250925092565b805163ffffffff81168114612e8457600080fd5b600080600060608486031215613e8457600080fd5b613e8d84613e0f565b9250613e9b60208501613e5b565b9150613ea960408501613e5b565b90509250925092565b600060208284031215613ec457600080fd5b612bbb82613e0f565b8181038181111561064f5761064f613b73565b602081526000612bbb602083018461305b56fea26469706673582212208dc9fbc3de84a5eadf5a8d0d7d030c880d5f4a9665121e956562816524e6c89964736f6c63430008190033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002819a0