0 txs
3 calls
constructor
constructor()
functions
balance
viewfunction balance(address _distributor, address _user) view returns (uint256)
getCoinsAmount
viewfunction getCoinsAmount(uint256 _receitTokenAmount) view returns (uint256 _minLisUSDAmount, uint256 _minUsdtAmount)
getLpToMintForUSDT
viewfunction getLpToMintForUSDT(uint256 _amount) view returns (uint256)
getPoolLength
viewfunction getPoolLength() view returns (uint256)
getRewardTokens
viewfunction getRewardTokens(address _distributor) view returns (address[])
getUsdtPoolOutputTokens
viewfunction getUsdtPoolOutputTokens(address _distributor) view returns (address[])
harvestTimeGap
viewfunction harvestTimeGap() view returns (uint256)
listaStaking
viewfunction listaStaking() view returns (address)
listaToken
viewfunction listaToken() view returns (address)
lpProxy
viewfunction lpProxy() view returns (address)
masterListapie
viewfunction masterListapie() view returns (address)
maxHarvestTimeGap
viewfunction maxHarvestTimeGap() view returns (uint256)
owner
viewfunction owner() view returns (address)
pancakeUSDTPool
viewfunction pancakeUSDTPool(address) view returns (address distributor, address depositToken, address rewarder, address receiptToken, uint256 lastHarvestTime, bool isActive)
pancakeUsdtPoolAddress
viewfunction pancakeUsdtPoolAddress() view returns (address)
paused
viewfunction paused() view returns (bool)
poolList
viewfunction poolList(uint256) view returns (address)
pools
viewfunction pools(address) view returns (address distributor, address depositToken, address rewarder, address receiptToken, uint256 lastHarvestTime, uint256 poolType, bool isActive)
rewardDistributor
viewfunction rewardDistributor() view returns (address)
usdtPoolOutputTokens
viewfunction usdtPoolOutputTokens(address, uint256) view returns (address)
V2Type
viewfunction V2Type() view returns (uint256)
__LiquidityPoolHelper_init
nonpayablefunction __LiquidityPoolHelper_init(address _listaStaking, address _listaToken, address _lpProxy, address _masterListapie, address _rewardDistributor)
batchHarvestDistributors
nonpayablefunction batchHarvestDistributors(address[] distributors)
deposit
nonpayablefunction deposit(address _distributor, uint256 _amount)
depositToPancakeUSDTPool
nonpayablefunction depositToPancakeUSDTPool(uint256 _amount, uint256 _minLpAmount)
pause
nonpayablefunction pause()
registerPancakeUSDTPool
nonpayablefunction registerPancakeUSDTPool(address _distributor, uint256 _allocPoints, address _usdt, string _name, string _symbol)
registerPool
nonpayablefunction registerPool(address _distributor, uint256 _allocPoints, address _depositToken, uint256 _poolType, string _name, string _symbol)
renounceOwnership
nonpayablefunction renounceOwnership()
setHarvestTimeGap
nonpayablefunction setHarvestTimeGap(uint256 _period)
setMaxHarvestTimeGap
nonpayablefunction setMaxHarvestTimeGap(uint256 _maxPeriod)
setpancakeUsdtPool
nonpayablefunction setpancakeUsdtPool(address _distributor, uint256 _allocPoints, address _depositToken, address _rewarder, bool _isActive)
setPool
nonpayablefunction setPool(address _distributor, uint256 _allocPoints, address _depositToken, address _rewarder, bool _isActive)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
updateUsdtPoolOutputTokens
nonpayablefunction updateUsdtPoolOutputTokens(address _distributor, address[] _outputTokens)
withdrawAndClaim
nonpayablefunction withdrawAndClaim(address _distributor, uint256 _amount, bool _isClaim)
withdrawAndClaimFromUsdtPool
nonpayablefunction withdrawAndClaimFromUsdtPool(uint256 _amount, uint256 _minLisUSDAmount, uint256 _minUsdtAmount, bool _isClaim)
events
HarvestTimeGapUpdated
event HarvestTimeGapUpdated(uint256 newPeriod)
Initialized
event Initialized(uint8 version)
MaxHarvestTimeGapUpdated
event MaxHarvestTimeGapUpdated(uint256 maxPeriod)
NewDeposit
event NewDeposit(address indexed _user, address indexed _distributor, uint256 _amount)
NewPancakeUsdtDeposit
event NewPancakeUsdtDeposit(address indexed _user, address indexed _distributor, uint256 _amount, uint256 _lpTokensMinted)
NewWithdraw
event NewWithdraw(address indexed _user, address indexed _distributor, uint256 _amount)
NewWithdrawFromUsdtPool
event NewWithdrawFromUsdtPool(address indexed _user, address indexed _distributor, uint256 _amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PoolAdded
event PoolAdded(address _distributor, address _rewarder, address _receiptToken)
PoolUpdated
event PoolUpdated(address indexed _distributor, uint256 allocPoints, address depositToken, address rewarder)
Unpaused
event Unpaused(address account)
UsdtPoolOutputTokensUpdated
event UsdtPoolOutputTokensUpdated(address indexed distributor, address[] outputTokens)
errors
AddressZero
error AddressZero()
DeactivatePool
error DeactivatePool()
InvalidContractAddress
error InvalidContractAddress()
InvalidMaxTimeGap
error InvalidMaxTimeGap()
InvalidOutputTokens
error InvalidOutputTokens()
InvalidPoolType
error InvalidPoolType()
LengthMismatch
error LengthMismatch()
PoolOccupied
error PoolOccupied()
TimeGapTooMuch
error TimeGapTooMuch()
creation bytecode
0x608060405262093a8060d15534801562000017575f80fd5b506200002262000028565b620000e6565b5f54610100900460ff1615620000945760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff90811614620000e4575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613fd680620000f45f395ff3fe608060405234801561000f575f80fd5b5060043610610282575f3560e01c80638da5cb5b11610157578063b956bc63116100d2578063e1a7aa4b11610088578063f2fde38b1161006e578063f2fde38b14610640578063f8ef39e814610653578063faafcc3e14610666575f80fd5b8063e1a7aa4b14610624578063efbd906014610637575f80fd5b8063c6fa5be0116100b8578063c6fa5be0146105eb578063ce124ee9146105fe578063dde21f6f14610611575f80fd5b8063b956bc63146105c5578063bc2bda1e146105d8575f80fd5b8063a80d423411610127578063b203bb991161010d578063b203bb9914610597578063b3944d52146105aa578063b7995812146105b2575f80fd5b8063a80d423414610571578063acc2166a14610584575f80fd5b80638da5cb5b14610494578063a392337b146104a5578063a4063dbc146104b8578063a488c1581461055e575f80fd5b806347e7ef24116102015780636b87eac0116101b7578063715018a61161019d578063715018a61461047c57806375da8421146104845780638456cb591461048c575f80fd5b80636b87eac0146104415780636bf8b13c14610454575f80fd5b80634bfa0c60116101e75780634bfa0c6014610405578063558d9212146104185780635c975abb1461042b575f80fd5b806347e7ef241461035a578063487292081461036d575f80fd5b806335810885116102565780633f4ba83a1161023c5780633f4ba83a1461032c5780634211e3d91461033457806345046b0614610347575f80fd5b806335810885146103025780633648e7e814610315575f80fd5b806201b0b61461028657806302c3444a146102af5780632a48235b146102c45780633043fed0146102ef575b5f80fd5b610299610294366004613725565b610679565b6040516102a69190613789565b60405180910390f35b6102c26102bd36600461379b565b6107e6565b005b6102d76102d23660046137bb565b610bde565b6040516001600160a01b0390911681526020016102a6565b6102c26102fd3660046137bb565b610c06565b60ca546102d7906001600160a01b031681565b61031e60d15481565b6040519081526020016102a6565b6102c2610c86565b6102c26103423660046137d2565b610c98565b60cd546102d7906001600160a01b031681565b6102c261036836600461383f565b610e7b565b6103c361037b366004613725565b60d26020525f90815260409020805460018201546002830154600384015460048501546005909501546001600160a01b03948516959385169492831693919092169160ff1686565b604080516001600160a01b03978816815295871660208701529386169385019390935293166060830152608082019290925290151560a082015260c0016102a6565b6102c261041336600461387d565b6111fa565b6102c26104263660046139e3565b6114c1565b60975460ff1660405190151581526020016102a6565b6102c261044f366004613afe565b6119d4565b6104676104623660046137bb565b611cb4565b604080519283526020830191909152016102a6565b6102c2611d44565b61031e600281565b6102c2611d55565b6033546001600160a01b03166102d7565b6102c26104b33660046137bb565b611d65565b6105156104c6366004613725565b60ce6020525f908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169694861695938416949390921692909160ff1687565b604080516001600160a01b039889168152968816602088015294871694860194909452949091166060840152608083015260a082019290925290151560c082015260e0016102a6565b6102c261056c366004613b4b565b611ddb565b6102c261057f366004613b87565b6120d1565b60cb546102d7906001600160a01b031681565b61031e6105a5366004613c14565b6124ca565b60cf5461031e565b6102c26105c036600461387d565b6125c2565b6102996105d3366004613725565b6127f8565b60cc546102d7906001600160a01b031681565b6102c26105f9366004613c4b565b61286b565b60d3546102d7906001600160a01b031681565b6102c261061f366004613c7d565b612b01565b60c9546102d7906001600160a01b031681565b61031e60d05481565b6102c261064e366004613725565b612e9a565b61031e6106613660046137bb565b612f27565b6102d761067436600461383f565b612fab565b60408051600280825260608083018452925f929190602083019080368337505060cd5482519293506001600160a01b0316918391505f906106bc576106bc613cb8565b6001600160a01b03928316602091820292909201015260cc546040517f1cbbb99c00000000000000000000000000000000000000000000000000000000815285831660048201525f929190911690631cbbb99c90602401602060405180830381865afa15801561072e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107529190613ce5565b9050806001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107b49190613ce5565b826001815181106107c7576107c7613cb8565b6001600160a01b03909216602092830291909101909101525092915050565b6107ee612fdf565b6107f6613038565b60d3546001600160a01b03166001600160a01b038082165f90815260d26020908152604091829020825160c0810184528154851681526001820154851692810192909252600281015484169282019290925260038201549092166060830152600481015460808301526005015460ff16151560a082018190526108a5576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060d3546001600160a01b039081165f90815260d260209081526040808320815160c081018352815486168152600182015486169381019390935260028101548516918301919091526003810154909316606082015260048301546080820181905260059093015460ff16151560a082015260d0549092429161092791613d2d565b1015610951575060d3546001600160a01b03165f90815260d2602052604090204260049091015560015b60d35460c9546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f9291909116906370a0823190602401602060405180830381865afa1580156109b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109dc9190613d40565b60c95460d3546040517f6e7d18ca0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039182166024820152604481018a90528515156064820152608481018990529293501690636e7d18ca9060a4015f604051808303815f87803b158015610a59575f80fd5b505af1158015610a6b573d5f803e3d5ffd5b505060d35460c9546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f9450911691506370a0823190602401602060405180830381865afa158015610ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af89190613d40565b90505f610b058383613d57565b60608601516040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018390529192506001600160a01b0316906340c10f19906044015f604051808303815f87803b158015610b6a575f80fd5b505af1158015610b7c573d5f803e3d5ffd5b505060d354604080518c8152602081018690526001600160a01b0390921693503392507fd75e6a23d60acd3a0be68958e89ba8de3b06874b545574b8d35512f2ab4797fe910160405180910390a3505050505050610bda6001606555565b5050565b60cf8181548110610bed575f80fd5b5f918252602090912001546001600160a01b0316905081565b610c0e613092565b60d154811115610c4a576040517f6f1d586b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d08190556040518181527fdd218df3712b068e2b6c52d90ec1ee297863d075fbc36bc346cb11f7c0ae226d906020015b60405180910390a150565b610c8e613092565b610c966130ec565b565b5f54610100900460ff1615808015610cb657505f54600160ff909116105b80610ccf5750303b158015610ccf57505f5460ff166001145b610d465760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b5f805460ff191660011790558015610d84575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610d8c61313e565b610d946131c2565b610d9c613246565b60c980547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b038981169190911790925560cd8054821688841617905560cc8054821687841617905560ca8054821686841617905560cb805490911691841691909117905562093a8060d1558015610e73575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b610e83612fdf565b610e8b613038565b60d35482906001600160a01b0390811690821603610f4c576001600160a01b038082165f90815260d26020908152604091829020825160c0810184528154851681526001820154851692810192909252600281015484169282019290925260038201549092166060830152600481015460808301526005015460ff16151560a08201819052610f46576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50610ffb565b6001600160a01b038082165f90815260ce6020908152604091829020825160e081018452815485168152600182015485169281019290925260028101548416928201929092526003820154909216606083015260048101546080830152600581015460a08301526006015460ff16151560c08201819052610ff9576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6001600160a01b038084165f90815260ce60209081526040808320815160e0810183528154861681526001820154861693810193909352600281015485169183019190915260038101549093166060820152600483015460808201819052600584015460a083015260069093015460ff16151560c082015260d0549092429161108391613d2d565b10156110ab57506001600160a01b0384165f90815260ce602052604090204260049091015560015b60c9546040517f4f9935280000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03878116602483015260448201879052831515606483015290911690634f993528906084015f604051808303815f87803b15801561111d575f80fd5b505af115801561112f573d5f803e3d5ffd5b50505060608301516040517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018790526001600160a01b0390911691506340c10f19906044015f604051808303815f87803b158015611197575f80fd5b505af11580156111a9573d5f803e3d5ffd5b50506040518681526001600160a01b03881692503391507f83df459d706116d1b3f1c7b7f77cfea4c635275f5d1e1a53827f536ef48db77d9060200160405180910390a3505050610bda6001606555565b611202613092565b60d35485906001600160a01b03908116908216036112c3576001600160a01b038082165f90815260d26020908152604091829020825160c0810184528154851681526001820154851692810192909252600281015484169282019290925260038201549092166060830152600481015460808301526005015460ff16151560a082018190526112bd576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50611372565b6001600160a01b038082165f90815260ce6020908152604091829020825160e081018452815485168152600182015485169281019290925260028101548416928201929092526003820154909216606083015260048101546080830152600581015460a08301526006015460ff16151560c08201819052611370576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6001600160a01b038681165f90815260d26020526040908190206001810180548885167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216811790925560028301805489871692168217905560058301805488151560ff1990911617905560ca5493517fc9365cd50000000000000000000000000000000000000000000000000000000081526004810192909252602482018a905260448201529092919091169063c9365cd5906064015b5f604051808303815f87803b158015611443575f80fd5b505af1158015611455573d5f803e3d5ffd5b50505050866001600160a01b03167fd26cb604be7d16c44eb483b910a5c6192daaed25238adcd8028e933dbb67fec08787876040516114b0939291909283526001600160a01b03918216602084015216604082015260600190565b60405180910390a250505050505050565b6114c9613092565b6001600160a01b038681165f90815260d26020526040902054161561151a576040517f6763320a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0386163b158061153957506001600160a01b0384163b155b15611570576040517fa710429d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038681165f90815260ce602052604090205416156115c1576040517f6763320a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600283146115fb576040517f2946cbf100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ca546040517f89bd7cab0000000000000000000000000000000000000000000000000000000081525f9182917336d2ec4ea01504403e0f3a223dc213822cfdba54916389bd7cab91611664918c916001600160a01b039091169030908a908a90600401613dcb565b602060405180830381865af415801561167f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116a39190613ce5565b60ca5460cb546040517f0becea8a0000000000000000000000000000000000000000000000000000000081526001600160a01b038085166004830152918216602482015262093a8060448201529294501690630becea8a906064016020604051808303815f875af115801561171a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173e9190613ce5565b60ca546040517f266f24b7000000000000000000000000000000000000000000000000000000008152600481018a90526001600160a01b0389811660248301528581166044830152808416606483015292935091169063266f24b7906084015f604051808303815f87803b1580156117b4575f80fd5b505af11580156117c6573d5f803e3d5ffd5b505050506040518060e00160405280896001600160a01b03168152602001876001600160a01b03168152602001826001600160a01b03168152602001836001600160a01b031681526020014281526020018681526020016001151581525060ce5f8a6001600160a01b03166001600160a01b031681526020019081526020015f205f820151815f015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506040820151816002015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506060820151816003015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a0820151816005015560c0820151816006015f6101000a81548160ff02191690831515021790555090505060cf88908060018154018082558091505060019003905f5260205f20015f9091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055507f4c61bab17e59e06eb29c0659ba5f68dc5bc003d57587a7280d98d532d2bf312a8882846040516119c2939291906001600160a01b0393841681529183166020830152909116604082015260600190565b60405180910390a15050505050505050565b6119dc613092565b8051600214611a17576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d354604080517f4362c0d100000000000000000000000000000000000000000000000000000000815290515f926001600160a01b031691634362c0d19160048083019260209291908290030181865afa158015611a77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9b9190613ce5565b6040517fc66106570000000000000000000000000000000000000000000000000000000081525f600482018190529192506001600160a01b0383169063c661065790602401602060405180830381865afa158015611afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b1f9190613ce5565b6040517fc6610657000000000000000000000000000000000000000000000000000000008152600160048201529091505f906001600160a01b0384169063c661065790602401602060405180830381865afa158015611b80573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba49190613ce5565b9050835f81518110611bb857611bb8613cb8565b60200260200101516001600160a01b0316816001600160a01b0316141580611c0c575083600181518110611bee57611bee613cb8565b60200260200101516001600160a01b0316826001600160a01b031614155b15611c43576040517ff01bf8a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0385165f90815260d4602090815260409091208551611c6b92870190613682565b50846001600160a01b03167f28f7a50be10126d2da3ca1789a04506d8366b381d3c2b113f4ced7f5b5e20adc85604051611ca59190613789565b60405180910390a25050505050565b60d3546040517f6bf8b13c000000000000000000000000000000000000000000000000000000008152600481018390525f9182916001600160a01b0390911690636bf8b13c906024016040805180830381865afa158015611d17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3b9190613e1c565b91509150915091565b611d4c613092565b610c965f6132ca565b611d5d613092565b610c96613333565b611d6d613092565b805f03611da6576040517fecb371df00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60d18190556040518181527ff45e432c37c23d6f135515877265696afd165eea7e9a53522ed3cc795a2e91f690602001610c7b565b611de3612fdf565b611deb613038565b60d3546001600160a01b03166001600160a01b038082165f90815260d26020908152604091829020825160c0810184528154851681526001820154851692810192909252600281015484169282019290925260038201549092166060830152600481015460808301526005015460ff16151560a08201819052611e9a576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060d3546001600160a01b039081165f90815260d260209081526040808320815160c081018352815486168152600182015486169381019390935260028101548516918301919091526003810154909316606082015260048301546080820181905260059093015460ff16151560a082015260d05490924291611f1c91613d2d565b1015611f46575060d3546001600160a01b03165f90815260d2602052604090204260049091015560015b60c95460d3546040517fb268432b0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039182166024820152604481018a9052606481018990526084810188905283151560a482015291169063b268432b9060c4015f604051808303815f87803b158015611fc8575f80fd5b505af1158015611fda573d5f803e3d5ffd5b50505060608301516040517f9dc29fac000000000000000000000000000000000000000000000000000000008152336004820152602481018a90526001600160a01b039091169150639dc29fac906044015f604051808303815f87803b158015612042575f80fd5b505af1158015612054573d5f803e3d5ffd5b50505050831561207a57602082015160d35461207a9133916001600160a01b0316613370565b60d3546040518881526001600160a01b039091169033907fc736e1250cd234c6fe6ec73268baba08e7d724088f2aa020730d61e523e2870d9060200160405180910390a35050506120cb6001606555565b50505050565b6120d9613092565b6001600160a01b038581165f90815260ce6020526040902054161561212a576040517f6763320a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0385163b158061214957506001600160a01b0383163b155b15612180576040517fa710429d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038581165f90815260d2602052604090205416156121d1576040517f6763320a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ca546040517f89bd7cab0000000000000000000000000000000000000000000000000000000081525f9182917336d2ec4ea01504403e0f3a223dc213822cfdba54916389bd7cab9161223a918b916001600160a01b039091169030908a908a90600401613dcb565b602060405180830381865af4158015612255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122799190613ce5565b60ca5460cb546040517f0becea8a0000000000000000000000000000000000000000000000000000000081526001600160a01b038085166004830152918216602482015262093a8060448201529294501690630becea8a906064016020604051808303815f875af11580156122f0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123149190613ce5565b60ca546040517f266f24b7000000000000000000000000000000000000000000000000000000008152600481018990526001600160a01b0388811660248301528581166044830152808416606483015292935091169063266f24b7906084015f604051808303815f87803b15801561238a575f80fd5b505af115801561239c573d5f803e3d5ffd5b50506040805160c0810182526001600160a01b038b81168083528a821660208085019182528884168587018181528b861660608089018281524260808b01908152600160a08c018181525f8b815260d28a528e90209c518d547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116918e16919091178e559951918d0180548b16928d1692909217909155945160028c0180548a16918c16919091179055905160038b018054891691909a16179098559651600489015590516005909701805460ff19169715159790971790965560d3805490931684179092558551928352820152928301919091527f4c61bab17e59e06eb29c0659ba5f68dc5bc003d57587a7280d98d532d2bf312a935001905060405180910390a150505050505050565b6001600160a01b038281165f90815260ce60209081526040808320815160e0810183528154861681526001820154861693810193909352600281015485168383015260038101548516606084018190526004808301546080860152600583015460a086015260069092015460ff16151560c085015291517f70a082310000000000000000000000000000000000000000000000000000000081529486169085015291929091906370a0823190602401602060405180830381865afa158015612594573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125b89190613d40565b9150505b92915050565b6125ca613092565b60d35485906001600160a01b039081169082160361268b576001600160a01b038082165f90815260d26020908152604091829020825160c0810184528154851681526001820154851692810192909252600281015484169282019290925260038201549092166060830152600481015460808301526005015460ff16151560a08201819052612685576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5061273a565b6001600160a01b038082165f90815260ce6020908152604091829020825160e081018452815485168152600182015485169281019290925260028101548416928201929092526003820154909216606083015260048101546080830152600581015460a08301526006015460ff16151560c08201819052612738576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6001600160a01b038681165f90815260ce6020526040908190206001810180548885167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216811790925560028301805489871692168217905560068301805488151560ff1990911617905560ca5493517fc9365cd50000000000000000000000000000000000000000000000000000000081526004810192909252602482018a905260448201529092919091169063c9365cd59060640161142c565b6001600160a01b0381165f90815260d4602090815260409182902080548351818402810184019094528084526060939283018282801561285f57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612841575b50505050509050919050565b612873612fdf565b61287b613038565b5f815167ffffffffffffffff811115612896576128966138dd565b6040519080825280602002602001820160405280156128bf578160200160208202803683370190505b5090505f5b8251811015612a7a575f8382815181106128e0576128e0613cb8565b602002602001015190505f8060d35f9054906101000a90046001600160a01b03166001600160a01b0316836001600160a01b0316036129485750506001600160a01b0381165f90815260d260205260409020600581015460049091015460ff90911690612973565b50506001600160a01b0381165f90815260ce60205260409020600681015460049091015460ff909116905b816129aa576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b4260d054826129b99190613d2d565b11156129e7575f8585815181106129d2576129d2613cb8565b91151560209283029190910190910152612a64565b60d3546001600160a01b0390811690841603612a20576001600160a01b0383165f90815260d26020526040902042600490910155612a3f565b6001600160a01b0383165f90815260ce60205260409020426004909101555b6001858581518110612a5357612a53613cb8565b911515602092830291909101909101525b5050508080612a7290613e3e565b9150506128c4565b5060c9546040517f3709a8050000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690633709a80590612ac69085908590600401613e75565b5f604051808303815f87803b158015612add575f80fd5b505af1158015612aef573d5f803e3d5ffd5b5050505050612afe6001606555565b50565b612b09612fdf565b612b11613038565b60d35483906001600160a01b0390811690821603612bd2576001600160a01b038082165f90815260d26020908152604091829020825160c0810184528154851681526001820154851692810192909252600281015484169282019290925260038201549092166060830152600481015460808301526005015460ff16151560a08201819052612bcc576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50612c81565b6001600160a01b038082165f90815260ce6020908152604091829020825160e081018452815485168152600182015485169281019290925260028101548416928201929092526003820154909216606083015260048101546080830152600581015460a08301526006015460ff16151560c08201819052612c7f576040517ff84318bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b6001600160a01b038085165f90815260ce60209081526040808320815160e0810183528154861681526001820154861693810193909352600281015485169183019190915260038101549093166060820152600483015460808201819052600584015460a083015260069093015460ff16151560c082015260d05490924291612d0991613d2d565b1015612d3157506001600160a01b0385165f90815260ce602052604090204260049091015560015b60c9546040517f3fdc24cd0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03888116602483015260448201889052831515606483015290911690633fdc24cd906084015f604051808303815f87803b158015612da3575f80fd5b505af1158015612db5573d5f803e3d5ffd5b50505060608301516040517f9dc29fac000000000000000000000000000000000000000000000000000000008152336004820152602481018890526001600160a01b039091169150639dc29fac906044015f604051808303815f87803b158015612e1d575f80fd5b505af1158015612e2f573d5f803e3d5ffd5b505050508315612e4857612e4833836020015188613370565b6040518581526001600160a01b0387169033907f7715f7aec5164b178862f96610f97644e00e0abfca2a6d3f425cc7d93284856f9060200160405180910390a3505050612e956001606555565b505050565b612ea2613092565b6001600160a01b038116612f1e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d3d565b612afe816132ca565b60d3546040517f7ea1c42e000000000000000000000000000000000000000000000000000000008152600481018390525f916001600160a01b031690637ea1c42e90602401602060405180830381865afa158015612f87573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125bc9190613d40565b60d4602052815f5260405f208181548110612fc4575f80fd5b5f918252602090912001546001600160a01b03169150829050565b6002606554036130315760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610d3d565b6002606555565b60975460ff1615610c965760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610d3d565b6001606555565b6033546001600160a01b03163314610c965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d3d565b6130f46134a7565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b5f54610100900460ff166131ba5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d3d565b610c966134f9565b5f54610100900460ff1661323e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d3d565b610c9661357e565b5f54610100900460ff166132c25760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d3d565b610c966135fa565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b61333b613038565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586131213390565b6040805160018082528183019092525f916020808301908036833701905050905082815f815181106133a4576133a4613cb8565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092525f91816020015b60608152602001906001900390816133d35790505090505f6133f484610679565b905080825f8151811061340957613409613cb8565b602090810291909101015260ca546001600160a01b031615610e735760ca546040517f70a1198e0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906370a1198e9061347290869086908b90600401613ecc565b5f604051808303815f87803b158015613489575f80fd5b505af115801561349b573d5f803e3d5ffd5b50505050505050505050565b60975460ff16610c965760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610d3d565b5f54610100900460ff166135755760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d3d565b610c96336132ca565b5f54610100900460ff1661308b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d3d565b5f54610100900460ff166136765760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610d3d565b6097805460ff19169055565b828054828255905f5260205f209081019282156136ed579160200282015b828111156136ed57825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039091161782556020909201916001909101906136a0565b506136f99291506136fd565b5090565b5b808211156136f9575f81556001016136fe565b6001600160a01b0381168114612afe575f80fd5b5f60208284031215613735575f80fd5b813561374081613711565b9392505050565b5f8151808452602080850194508084015f5b8381101561377e5781516001600160a01b031687529582019590820190600101613759565b509495945050505050565b602081525f6137406020830184613747565b5f80604083850312156137ac575f80fd5b50508035926020909101359150565b5f602082840312156137cb575f80fd5b5035919050565b5f805f805f60a086880312156137e6575f80fd5b85356137f181613711565b9450602086013561380181613711565b9350604086013561381181613711565b9250606086013561382181613711565b9150608086013561383181613711565b809150509295509295909350565b5f8060408385031215613850575f80fd5b823561385b81613711565b946020939093013593505050565b80358015158114613878575f80fd5b919050565b5f805f805f60a08688031215613891575f80fd5b853561389c81613711565b94506020860135935060408601356138b381613711565b925060608601356138c381613711565b91506138d160808701613869565b90509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613951576139516138dd565b604052919050565b5f82601f830112613968575f80fd5b813567ffffffffffffffff811115613982576139826138dd565b6139b360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161390a565b8181528460208386010111156139c7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c087890312156139f8575f80fd5b8635613a0381613711565b9550602087013594506040870135613a1a81613711565b935060608701359250608087013567ffffffffffffffff80821115613a3d575f80fd5b613a498a838b01613959565b935060a0890135915080821115613a5e575f80fd5b50613a6b89828a01613959565b9150509295509295509295565b5f82601f830112613a87575f80fd5b8135602067ffffffffffffffff821115613aa357613aa36138dd565b8160051b613ab282820161390a565b9283528481018201928281019087851115613acb575f80fd5b83870192505b84831015613af3578235613ae481613711565b82529183019190830190613ad1565b979650505050505050565b5f8060408385031215613b0f575f80fd5b8235613b1a81613711565b9150602083013567ffffffffffffffff811115613b35575f80fd5b613b4185828601613a78565b9150509250929050565b5f805f8060808587031215613b5e575f80fd5b843593506020850135925060408501359150613b7c60608601613869565b905092959194509250565b5f805f805f60a08688031215613b9b575f80fd5b8535613ba681613711565b9450602086013593506040860135613bbd81613711565b9250606086013567ffffffffffffffff80821115613bd9575f80fd5b613be589838a01613959565b93506080880135915080821115613bfa575f80fd5b50613c0788828901613959565b9150509295509295909350565b5f8060408385031215613c25575f80fd5b8235613c3081613711565b91506020830135613c4081613711565b809150509250929050565b5f60208284031215613c5b575f80fd5b813567ffffffffffffffff811115613c71575f80fd5b6125b884828501613a78565b5f805f60608486031215613c8f575f80fd5b8335613c9a81613711565b925060208401359150613caf60408501613869565b90509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215613cf5575f80fd5b815161374081613711565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156125bc576125bc613d00565b5f60208284031215613d50575f80fd5b5051919050565b818103818111156125bc576125bc613d00565b5f81518084525f5b81811015613d8e57602081850181015186830182015201613d72565b505f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f6001600160a01b038088168352808716602084015280861660408401525060a06060830152613dfe60a0830185613d6a565b8281036080840152613e108185613d6a565b98975050505050505050565b5f8060408385031215613e2d575f80fd5b505080516020909101519092909150565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613e6e57613e6e613d00565b5060010190565b604081525f613e876040830185613747565b8281036020848101919091528451808352858201928201905f5b81811015613ebf578451151583529383019391830191600101613ea1565b5090979650505050505050565b606081525f613ede6060830186613747565b6020838203818501528186518084528284019150828160051b8501018389015f805b84811015613f7a578784037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018652825180518086529088019088860190845b81811015613f655783516001600160a01b03168352928a0192918a0191600101613f40565b50509688019694505091860191600101613f00565b5050506001600160a01b03881660408801529450613f989350505050565b94935050505056fea2646970667358221220e8a6e696e88f5bf087a13c59cef2435f6d92dd901c462bb5972e5e4596e38ebd64736f6c63430008150033