0 txs
1 call
constructor
constructor((address staking, address convertibles, address treasury, address appToken, address stakingToken, address rebaseController, address appOracle, address spotOracle, address ethOracle, address odos, address staking4626, address referrals, address totalReservesOracle) params)
functions
appOracle
viewfunction appOracle() view returns (address)
appToken
viewfunction appToken() view returns (address)
calculateAPR
viewfunction calculateAPR() view returns (uint256)
calculateAPRRaw
viewfunction calculateAPRRaw(uint256 totalStaked) view returns (uint256)
convertibles
viewfunction convertibles() view returns (address)
ethOracle
viewfunction ethOracle() view returns (address)
getAllStakingPositions
viewfunction getAllStakingPositions(uint256 startingIndex, uint256 endingIndex) view returns (tuple[])
getConvertiblePositions
viewfunction getConvertiblePositions(uint256 tokenId) view returns (tuple convertiblePosition)
getConvertiblePositionsByIndex
viewfunction getConvertiblePositionsByIndex(uint256 startIndex, uint256 endIndex) view returns (tuple[] convertiblePositions)
getConvertibleProtocolInfo
viewfunction getConvertibleProtocolInfo() view returns (tuple convertibleProtocolInfo)
getProtocolInfo
viewfunction getProtocolInfo(address user, address[] tokens, address allowanceTarget) view returns (tuple protocolInfo, bytes8 referralCode, tuple[] tokenInfos, tuple[] stakingPositions, tuple[] convertiblePositions, tuple convertibleProtocolInfo, tuple projectedEpochRate)
getTwapPrice
viewfunction getTwapPrice() view returns (uint256 price)
loanToken
viewfunction loanToken() view returns (address)
loanTokenUnderlying
viewfunction loanTokenUnderlying() view returns (address)
odos
viewfunction odos() view returns (address)
rebaseController
viewfunction rebaseController() view returns (address)
referrals
viewfunction referrals() view returns (address)
spotOracle
viewfunction spotOracle() view returns (address)
staking
viewfunction staking() view returns (address)
staking4626
viewfunction staking4626() view returns (address)
stakingToken
viewfunction stakingToken() view returns (address)
totalReservesOracle
viewfunction totalReservesOracle() view returns (address)
treasury
viewfunction treasury() view returns (address)
events
RewardsClaimed
event RewardsClaimed(uint256 indexed positionId, uint256 amount)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50604051613b00380380613b0083398101604081905261002f916103c9565b8051600280546001600160a01b03199081166001600160a01b039384169081179092556020840151600c8054831691851691909117905560408401516003805483169185169190911790556060840151600480548316918516919091179055608084015160058054831691851691909117905560c084015160018054831691851691909117905560e084015160068054831691851691909117905561010084015160078054831691851691909117905560a0840151600880548316918516919091179055610120840151600080548316918516919091179055610140840151600980548316918516919091179055610160840151600a80548316918516919091179055610180840151600b80549092169316929092179091558190156101cd576004805460025460405163095ea7b360e01b81526001600160a01b03918216938101939093526000196024840152169063095ea7b3906044016020604051808303816000875af11580156101a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101cb91906104ce565b505b600c546001600160a01b03161561036357600c60009054906101000a90046001600160a01b03166001600160a01b03166306d378176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610231573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025591906104f7565b600d80546001600160a01b0319166001600160a01b03929092169182179055604080516338d52e0f60e01b815290516338d52e0f916004808201926020929091908290030181865afa1580156102af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d391906104f7565b600e80546001600160a01b0319166001600160a01b03928316179055600d54600c5460405163095ea7b360e01b81529083166004820152600019602482015291169063095ea7b3906044016020604051808303816000875af115801561033d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036191906104ce565b505b5050610514565b6040516101a081016001600160401b038111828210171561039b57634e487b7160e01b600052604160045260246000fd5b60405290565b6001600160a01b03811681146103b657600080fd5b50565b80516103c4816103a1565b919050565b60006101a08284031280156103dd57600080fd5b506103e661036a565b6103ef836103b9565b81526103fd602084016103b9565b602082015261040e604084016103b9565b604082015261041f606084016103b9565b6060820152610430608084016103b9565b608082015261044160a084016103b9565b60a082015261045260c084016103b9565b60c082015261046360e084016103b9565b60e082015261047561010084016103b9565b61010082015261048861012084016103b9565b61012082015261049b61014084016103b9565b6101408201526104ae61016084016103b9565b6101608201526104c161018084016103b9565b6101808201529392505050565b6000602082840312156104e057600080fd5b815180151581146104f057600080fd5b9392505050565b60006020828403121561050957600080fd5b81516104f0816103a1565b6135dd806105236000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806383da8357116100e3578063d3dc75391161008c578063f2494f3b11610066578063f2494f3b1461036a578063f62163a614610372578063fe8b876e1461038557600080fd5b8063d3dc75391461032e578063dcedca9214610341578063eee2bfa01461036257600080fd5b8063ae086969116100bd578063ae086969146102e2578063b79e424814610308578063d25f29a61461031b57600080fd5b806383da83571461029c5780639c8762e1146102af5780639e78c5c1146102c257600080fd5b80634f583684116101455780636ee07d8c1161011f5780636ee07d8c1461025457806372f702f314610269578063836eb7bb1461027c57600080fd5b80634f5836841461020e5780635ab2da8a1461022e57806361d027b31461024157600080fd5b8063191b87a311610176578063191b87a3146101d55780631eba02ec146101e85780634cf088d9146101fb57600080fd5b806303347ec11461019257806306d37817146101c2575b600080fd5b6009546101a5906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b600d546101a5906001600160a01b031681565b6001546101a5906001600160a01b031681565b6000546101a5906001600160a01b031681565b6002546101a5906001600160a01b031681565b61022161021c366004612a38565b610398565b6040516101b99190612b33565b600e546101a5906001600160a01b031681565b6003546101a5906001600160a01b031681565b61025c6105b6565b6040516101b99190612b46565b6005546101a5906001600160a01b031681565b61028f61028a366004612a38565b61075f565b6040516101b99190612c69565b6008546101a5906001600160a01b031681565b6007546101a5906001600160a01b031681565b6102d56102d0366004612c7c565b610b3f565b6040516101b99190612c95565b6102f56102f0366004612d61565b610de2565b6040516101b99796959493929190612f6f565b6004546101a5906001600160a01b031681565b6006546101a5906001600160a01b031681565b600a546101a5906001600160a01b031681565b61035461034f366004612c7c565b610f81565b6040519081526020016101b9565b610354611066565b610354611185565b600b546101a5906001600160a01b031681565b600c546101a5906001600160a01b031681565b600c546060906001600160a01b0316156105b057600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042391906130c8565b821161042f57816104a6565b600c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a691906130c8565b91506104b283836130f7565b67ffffffffffffffff8111156104ca576104ca612ccc565b60405190808252806020026020018201604052801561056a57816020015b61055760405180610180016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b8152602001906001900390816104e85790505b509050825b828110156105ae5761058081610b3f565b8261058b86846130f7565b8151811061059b5761059b61310a565b602090810291909101015260010161056f565b505b92915050565b6105f66040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600c546001600160a01b03166106095790565b600c54604080517fbe45a26f00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163be45a26f9160048083019260c09291908290030181865afa15801561066c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106909190613120565b90506000600c60009054906101000a90046001600160a01b03166001600160a01b031663817b1cd26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070b91906130c8565b90506040518060e0016040528082815260200183600001518152602001836020015181526020018360400151815260200183606001518152602001836080015181526020018360a001518152509250505090565b6060600061076d84846130f7565b67ffffffffffffffff81111561078557610785612ccc565b60405190808252806020026020018201604052801561082457816020015b61081160405180610160016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b8152602001906001900390816107a35790505b506002549091506001600160a01b031661083f5790506105b0565b835b83811015610b375760025460405163133f757160e31b8152600481018390526000916001600160a01b0316906399fbab889060240161014060405180830381865afa158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b8919061319e565b80519091506000036108ca5750610b2f565b6000808260a001511180156108e257508160a0015142105b905060008260a0015190506000808460c0015111801561090557508360c0015142105b604080516101608101918290526002547f6352211e00000000000000000000000000000000000000000000000000000000909252610164810188905291925081906001600160a01b0316636352211e6101848301602060405180830381865afa158015610976573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099a9190613228565b6001600160a01b0390811682526020808301899052875160408085019190915290880151606084015260025490517f4d6ed8c4000000000000000000000000000000000000000000000000000000008152600481018a9052608090930192911690634d6ed8c490602401602060405180830381865afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4591906130c8565b8152608086810180516020840152604080840187905290511560608401528415159183019190915285151560a083015260095490517f85afc8df0000000000000000000000000000000000000000000000000000000081526004810189905260c0909201916001600160a01b03909116906385afc8df90602401602060405180830381865afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190613245565b1515905286610b0f8b886130f7565b81518110610b1f57610b1f61310a565b6020026020010181905250505050505b600101610841565b509392505050565b610bae60405180610180016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b600c546001600160a01b0316610bc357919050565b6000610bcd611066565b600c5460405163133f757160e31b8152600481018690529192506000916001600160a01b03909116906399fbab889060240161010060405180830381865afa158015610c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c419190613267565b600c546040517f86c316240000000000000000000000000000000000000000000000000000000081526004810187905291925060009182916001600160a01b0316906386c31624906024016040805180830381865afa158015610ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc91906132db565b60408051610180810191829052600c547f6352211e0000000000000000000000000000000000000000000000000000000090925261018481018a905292945090925081906001600160a01b0316636352211e6101a48301602060405180830381865afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190613228565b6001600160a01b03168152602001878152602001846000015181526020018460200151815260200184604001518152602001846080015181526020018460a0015181526020018460c0015181526020018460e001518152602001838152602001828152602001858560c0015110151515815250945050505050919050565b610e316040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006060806060610e786040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610eaa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b610eb38a61122b565b9250610ebd611442565b9050610ec7611536565b600a546040517fd5ab6f500000000000000000000000000000000000000000000000000000000081526001600160a01b038d8116600483015292995091169063d5ab6f5090602401602060405180830381865afa158015610f2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5091906132ff565b9550610f5b8a6117f5565b9350610f688a8a8a611c2b565b9450610f726105b6565b91509397509397509397909450565b6008546000906001600160a01b0316610f9c57506000919050565b600854604080517f9e9a71f700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691639e9a71f79160048083019260a09291908290030181865afa158015610fff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110239190613341565b5050925050508281670de0b6b3a764000061103e9190613381565b61104a9061016d613381565b611055906004613381565b61105f9190613398565b9392505050565b600c546000906001600160a01b031661107f5750600090565b600c54604080517f9043292a00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691639043292a9160048083019260209291908290030181865afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111069190613228565b60405163078a424560e01b8152670de0b6b3a764000060048201529091506000906001600160a01b0383169063078a424590602401606060405180830381865afa158015611158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117c91906133ba565b50949350505050565b6002546000906001600160a01b031661119e5750600090565b600254604080517f817b1cd20000000000000000000000000000000000000000000000000000000081529051611226926001600160a01b03169163817b1cd29160048083019260209291908290030181865afa158015611202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034f91906130c8565b905090565b600c546060906001600160a01b031661124357919050565b600c546040516370a0823160e01b81526001600160a01b03848116600483015260009216906370a0823190602401602060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b291906130c8565b90508067ffffffffffffffff8111156112cd576112cd612ccc565b60405190808252806020026020018201604052801561136d57816020015b61135a60405180610180016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b8152602001906001900390816112eb5790505b50915060005b8181101561143b57600c546040517f2f745c590000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018490526000921690632f745c5990604401602060405180830381865afa1580156113e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140a91906130c8565b905061141581610b3f565b8483815181106114275761142761310a565b602090810291909101015250600101611373565b5050919050565b6114746040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6008546001600160a01b03166114875790565b6000806000806000600860009054906101000a90046001600160a01b03166001600160a01b0316639e9a71f76040518163ffffffff1660e01b815260040160a060405180830381865afa1580156114e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115069190613341565b6040805160a081018252958652602086019490945292840191909152606083015260808201529695505050505050565b6115856040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b546001600160a01b03161561162857600b54604080517f242693d3000000000000000000000000000000000000000000000000000000008152815160009384936001600160a01b039091169263242693d392600480830193928290030181865afa1580156115f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161d91906132db565b908452602084015250505b6002546001600160a01b03161561174257600260009054906101000a90046001600160a01b03166001600160a01b031663817b1cd26040518163ffffffff1660e01b8152600401602060405180830381865afa15801561168c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b091906130c8565b6060820152600254604080517fcd3daf9d00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169163cd3daf9d916004808201926020929091908290030181865afa158015611718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173c91906130c8565b60808201525b60048054604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216926318160ddd9282820192602092908290030181865afa1580156117a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c691906130c8565b60408201526117d3611185565b60a08201526117e0612743565b60c08201526117ed6127d3565b60e082015290565b6002546060906001600160a01b031661180d57919050565b6002546040516370a0823160e01b81526001600160a01b03848116600483015260009216906370a0823190602401602060405180830381865afa158015611858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187c91906130c8565b90508067ffffffffffffffff81111561189757611897612ccc565b60405190808252806020026020018201604052801561193657816020015b61192360405180610160016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b8152602001906001900390816118b55790505b50915060005b8181101561143b576002546040517f2f745c590000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018490526000921690632f745c5990604401602060405180830381865afa1580156119af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d391906130c8565b9050806000036119e35750611c23565b60025460405163133f757160e31b8152600481018390526000916001600160a01b0316906399fbab889060240161014060405180830381865afa158015611a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a52919061319e565b90506000808260c00151118015611a6c57508160c0015142105b90506000808360a00151118015611a8657508260a0015142105b60a084015160408051610160810182526001600160a01b038c8116825260208083018a9052885183850152880151606083015260025492517f4d6ed8c4000000000000000000000000000000000000000000000000000000008152600481018a90529495509293909260808401921690634d6ed8c490602401602060405180830381865afa158015611b1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4091906130c8565b8152608086810180516020840152604080840186905290511560608401528615159183019190915284151560a083015260095490517f85afc8df0000000000000000000000000000000000000000000000000000000081526004810189905260c0909201916001600160a01b03909116906385afc8df90602401602060405180830381865afa158015611bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bfb9190613245565b1515815250888781518110611c1257611c1261310a565b602002602001018190525050505050505b60010161193c565b606082516003611c3b91906133e8565b67ffffffffffffffff811115611c5357611c53612ccc565b604051908082528060200260200182016040528015611cdf57816020015b611ccc60405180610120016040528060006001600160a01b03168152602001606081526020016060815260200160008152602001600081526020016000815260200160008152602001600060ff168152602001600081525090565b815260200190600190039081611c715790505b506040805161012081018252600480546001600160a01b039081168084528451808601865260038082527f525a52000000000000000000000000000000000000000000000000000000000060208084018290528088019390935287518089018952918252918101919091528486015293516370a0823160e01b815290891691810191909152929350916060830191906370a0823190602401602060405180830381865afa158015611d94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611db891906130c8565b815260048054604051636eb1769f60e11b81526001600160a01b0389811693820193909352868316602482015260209093019291169063dd62ed3e90604401602060405180830381865afa158015611e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3891906130c8565b8152600480546003546040516370a0823160e01b81526001600160a01b039182169381019390935260209093019216906370a0823190602401602060405180830381865afa158015611e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb291906130c8565b8152602001600460009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2e91906130c8565b815260126020820152604001611f42612743565b81525081600081518110611f5857611f5861310a565b60209081029190910181019190915260408051610120810182526005546001600160a01b0390811680835283518085018552600a81527f5374616b656420525a520000000000000000000000000000000000000000000081870152838601528351808501855260048082527f73525a5200000000000000000000000000000000000000000000000000000000968201969096528385015292516370a0823160e01b815290881693810193909352916060830191906370a0823190602401602060405180830381865afa158015612032573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205691906130c8565b8152600554604051636eb1769f60e11b81526001600160a01b03888116600483015286811660248301526020909301929091169063dd62ed3e90604401602060405180830381865afa1580156120b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d491906130c8565b815260200160008152602001600560009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612133573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215791906130c8565b81526012602082015260400161216b612743565b815250816001815181106121815761218161310a565b60209081029190910181019190915260408051610120810182526009546001600160a01b0390811680835283518085018552601181527f4c6971756964205374616b656420525a52000000000000000000000000000000818701528386015283518085018552600681527f6c7374525a520000000000000000000000000000000000000000000000000000958101959095528284019490945291516370a0823160e01b815291871660048301529160608301916370a0823190602401602060405180830381865afa15801561225a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227e91906130c8565b815260006020820152600954600354604080516370a0823160e01b81526001600160a01b0392831660048201529301929116906370a0823190602401602060405180830381865afa1580156122d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fb91906130c8565b8152600954604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516020938401936001600160a01b03909316926318160ddd92600480820193918290030181865afa158015612361573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238591906130c8565b815260126020820152604001612399612820565b815250816002815181106123af576123af61310a565b602002602001018190525060005b8351811015610b375760008482815181106123da576123da61310a565b60200260200101519050604051806101200160405280826001600160a01b03168152602001826001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa15801561243d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261246591908101906133fb565b8152602001826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156124a8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124d091908101906133fb565b81526040516370a0823160e01b81526001600160a01b0389811660048301526020909201918416906370a0823190602401602060405180830381865afa15801561251e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254291906130c8565b8152604051636eb1769f60e11b81526001600160a01b038981166004830152878116602483015260209092019184169063dd62ed3e90604401602060405180830381865afa158015612598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bc91906130c8565b81526003546040516370a0823160e01b81526001600160a01b039182166004820152602090920191908416906370a0823190602401602060405180830381865afa15801561260e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263291906130c8565b8152602001826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612675573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269991906130c8565b8152602001826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127009190613491565b60ff168152602001612711836128cc565b90528361271f8460036133e8565b8151811061272f5761272f61310a565b6020908102919091010152506001016123bd565b6006546000906001600160a01b0316156127cd5760065460405163078a424560e01b8152670de0b6b3a764000060048201526000916001600160a01b03169063078a4245906024015b606060405180830381865afa1580156127a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3791906133ba565b50600090565b6007546000906001600160a01b0316156127cd5760075460405163078a424560e01b8152670de0b6b3a764000060048201526000916001600160a01b03169063078a42459060240161278c565b60008061282b612743565b90506000600960009054906101000a90046001600160a01b03166001600160a01b0316632c4e722e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612882573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a691906130c8565b9050670de0b6b3a76400006128bb8284613381565b6128c59190613398565b9250505090565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561290d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129319190613491565b60ff169050600061294382600a61359b565b9050600061294f612743565b6001549091506001600160a01b031615612a2d576001546040517f3e8600170000000000000000000000000000000000000000000000000000000081526001600160a01b038781166004830152602482018590526000928392911690633e86001790604401606060405180830381865afa1580156129d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f591906133ba565b509092509050670de0b6b3a7640000612a0e8385613381565b612a189190613398565b612a2290826133e8565b979650505050505050565b506000949350505050565b60008060408385031215612a4b57600080fd5b50508035926020909101359150565b80516001600160a01b031682526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100810151610100830152610120810151610120830152610140810151610140830152610160810151612ae661016084018215159052565b505050565b600081518084526020840193506020830160005b82811015612b2957612b12868351612a5a565b610180959095019460209190910190600101612aff565b5093949350505050565b60208152600061105f6020830184612aeb565b60e081016105b08284805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c08301525050565b600081518084526020840193506020830160005b82811015612b2957815180516001600160a01b031687526020810151602088015260408101516040880152606081015160608801526080810151608088015260a081015160a088015260c081015160c088015260e0810151612c0d60e089018215159052565b50610100810151612c2361010089018215159052565b50610120810151612c3961012089018215159052565b506101408101519050612c5161014088018215159052565b50610160959095019460209190910190600101612ba7565b60208152600061105f6020830184612b93565b600060208284031215612c8e57600080fd5b5035919050565b61018081016105b08284612a5a565b6001600160a01b0381168114612cb957600080fd5b50565b8035612cc781612ca4565b919050565b634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff81118282101715612d0657612d06612ccc565b60405290565b604051610100810167ffffffffffffffff81118282101715612d0657612d06612ccc565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d5957612d59612ccc565b604052919050565b600080600060608486031215612d7657600080fd5b8335612d8181612ca4565b9250602084013567ffffffffffffffff811115612d9d57600080fd5b8401601f81018613612dae57600080fd5b803567ffffffffffffffff811115612dc857612dc8612ccc565b8060051b612dd860208201612d30565b91825260208184018101929081019089841115612df457600080fd5b6020850194505b83851015612e225784359250612e1083612ca4565b82825260209485019490910190612dfb565b8096505050505050612e3660408501612cbc565b90509250925092565b60005b83811015612e5a578181015183820152602001612e42565b50506000910152565b60008151808452612e7b816020860160208601612e3f565b601f01601f19169290920160200192915050565b600082825180855260208501945060208160051b8301016020850160005b83811015612f6357848303601f19018852815180516001600160a01b0316845260208101516101206020860152612ee8610120860182612e63565b905060408201518582036040870152612f018282612e63565b915050606082015160608601526080820151608086015260a082015160a086015260c082015160c086015260e0820151612f4060e087018260ff169052565b506101009182015194909101939093526020978801979190910190600101612ead565b50909695505050505050565b875181526020880151602082015260408801516040820152606088015160608201526080880151608082015260a088015160a082015260c088015160c082015260e088015160e0820152610100880151610100820152612ff46101208201887fffffffffffffffff000000000000000000000000000000000000000000000000169052565b610320610140820152600061300d610320830188612e8f565b8281036101608401526130208188612b93565b90508281036101808401526130358187612aeb565b85516101a085015260208601516101c085015260408601516101e08501526060860151610200850152608086015161022085015260a086015161024085015260c086015161026085015291506130889050565b825161028083015260208301516102a083015260408301516102c083015260608301516102e0830152608083015161030083015298975050505050505050565b6000602082840312156130da57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156105b0576105b06130e1565b634e487b7160e01b600052603260045260246000fd5b600060c082840312801561313357600080fd5b5060405160009060c0810167ffffffffffffffff8111828210171561315a5761315a612ccc565b604090815284518252602080860151908301528481015190820152606080850151908201526080808501519082015260a09384015193810193909352509092915050565b60006101408284031280156131b257600080fd5b5060006131bd612ce2565b835181526020808501519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e0808501519082015261010080850151908201526101209384015193810193909352509092915050565b60006020828403121561323a57600080fd5b815161105f81612ca4565b60006020828403121561325757600080fd5b8151801515811461105f57600080fd5b600061010082840312801561327b57600080fd5b506000613286612d0c565b835181526020808501519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b600080604083850312156132ee57600080fd5b505080516020909101519092909150565b60006020828403121561331157600080fd5b81517fffffffffffffffff0000000000000000000000000000000000000000000000008116811461105f57600080fd5b600080600080600060a0868803121561335957600080fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b80820281158282048414176105b0576105b06130e1565b6000826133b557634e487b7160e01b600052601260045260246000fd5b500490565b6000806000606084860312156133cf57600080fd5b5050815160208301516040909301519094929350919050565b808201808211156105b0576105b06130e1565b60006020828403121561340d57600080fd5b815167ffffffffffffffff81111561342457600080fd5b8201601f8101841361343557600080fd5b805167ffffffffffffffff81111561344f5761344f612ccc565b6134626020601f19601f84011601612d30565b81815285602083850101111561347757600080fd5b613488826020830160208601612e3f565b95945050505050565b6000602082840312156134a357600080fd5b815160ff8116811461105f57600080fd5b6001815b60018411156134ef578085048111156134d3576134d36130e1565b60018416156134e157908102905b60019390931c9280026134b8565b935093915050565b600082613506575060016105b0565b81613513575060006105b0565b816001811461352957600281146135335761354f565b60019150506105b0565b60ff841115613544576135446130e1565b50506001821b6105b0565b5060208310610133831016604e8410600b8410161715613572575081810a6105b0565b61357f60001984846134b4565b8060001904821115613593576135936130e1565b029392505050565b600061105f83836134f756fea2646970667358221220a7c3b6f9471a93bbc588fe65cfcb20616c1d842c6acea0b76212a6df451dbd6764736f6c634300081c0033000000000000000000000000cd43c9c6ecca33a0c3ef6e509f7559c5c5e46399000000000000000000000000614699757fb3bfacd8a0d10d3b3205f1089993be0000000000000000000000000000030d7a7c4888851f35705b0852cf20ac1ba6000000000000000000000000b4444468e444f89e1c2cac2f1d3ee7e336cbd1f50000000000000000000000005de77ccabc90b4681e83d0588fb91a54f8f70aaf000000000000000000000000fad35a07f9244abb4e2481f7d7c7bffcad10263c000000000000000000000000d80bcabefca1334ec0c2ee110cb9213d72dd3622000000000000000000000000b6cb302710592ffca18f2b09e4fb5fd4dcd0cb2d000000000000000000000000af0af0f9e7e52d0158b6e9b0596515cc90e1546f000000000000000000000000cf5540fffcdc3d510b18bfca6d2b9987b0772559000000000000000000000000b33f4b9c6f0624edeae8881c97381837760d52cb000000000000000000000000b1fd2da8914dc200bc4effd71713594caa88a2f8000000000000000000000000e148d8919309697d714b9f33b4624969a9a55f81