644 txs
2.1k calls
constructor
constructor(address _accTokeV1, address _systemRegistry, address _permit2)
functions
accTokeV1
viewfunction accTokeV1() view returns (address)
getSystemRegistry
viewfunction getSystemRegistry() view returns (address)
permit2
viewfunction permit2() view returns (address)
weth9
viewfunction weth9() view returns (address)
approve
payablefunction approve(address token, address to, uint256 amount) payable
claimAutopoolRewards
payablefunction claimAutopoolRewards(address vault, address rewarder, address recipient, bool claimExtras) payable
claimAutopoolRewards
payablefunction claimAutopoolRewards(address vault, address rewarder, address recipient) payable
claimRewards
payablefunction claimRewards(address rewarder, tuple recipient, uint8 v, bytes32 r, bytes32 s) payable returns (uint256)
collectAccTokeRewards
payablefunction collectAccTokeRewards(address accToke, address recipient) payable returns (uint256)
deposit
payablefunction deposit(address vault, address to, uint256 amount, uint256 minSharesOut) payable returns (uint256 sharesOut)
depositBalance
payablefunction depositBalance(address vault, address to, uint256 minSharesOut) payable returns (uint256 sharesOut)
depositMax
payablefunction depositMax(address vault, address to, uint256 minSharesOut) payable returns (uint256 sharesOut)
expiration
payablefunction expiration(uint256 timestamp) payable
lockTokeFor
payablefunction lockTokeFor(uint256 amount, uint256 duration) payable
mint
payablefunction mint(address vault, address to, uint256 shares, uint256 maxAmountIn) payable returns (uint256 amountIn)
multicall
payablefunction multicall(bytes[] data) payable returns (bytes[] results)
permitAndTransferToRouter
payablefunction permitAndTransferToRouter(tuple permit, tuple transferDetails, bytes signature) payable
previewRedeemWithRoutes
payablefunction previewRedeemWithRoutes(address vault, uint256 shares, tuple[] customRoutes) payable
pullToken
payablefunction pullToken(address token, uint256 amount, address recipient) payable
redeem
payablefunction redeem(address vault, address to, uint256 shares, uint256 minAmountOut) payable returns (uint256 amountOut)
redeemMax
payablefunction redeemMax(address vault, address to, uint256 minAmountOut) payable returns (uint256 amountOut)
redeemToDeposit
payablefunction redeemToDeposit(address fromVault, address toVault, address to, uint256 shares, uint256 minSharesOut) payable returns (uint256 sharesOut)
redeemWithRoutes
payablefunction redeemWithRoutes(address vault, address to, uint256 shares, uint256 minAmountOut, tuple[] customRoutes) payable returns (uint256 amountOut)
refundETH
payablefunction refundETH() payable
selfPermit
payablefunction selfPermit(address token, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) payable
stakeAcc
payablefunction stakeAcc(address accToke, uint256 amount, uint256 duration, address to) payable
stakeAccBalance
payablefunction stakeAccBalance(address accToke, uint256 duration, address to) payable
stakeVaultToken
payablefunction stakeVaultToken(address vault, uint256 maxAmount) payable returns (uint256)
swapToken
payablefunction swapToken(address swapper, tuple swapParams) payable returns (uint256 amountReceived)
swapTokenBalance
payablefunction swapTokenBalance(address swapper, tuple swapParams) payable returns (uint256 amountReceived)
sweepToken
payablefunction sweepToken(address token, uint256 amountMinimum, address recipient) payable
unstakeAcc
payablefunction unstakeAcc(address accToke, uint256[] lockupIds, address to) payable
unwrapWETH9
payablefunction unwrapWETH9(uint256 amountMinimum, address recipient) payable
withdraw
payablefunction withdraw(address vault, address to, uint256 amount, uint256 maxSharesOut) payable returns (uint256 sharesOut)
withdrawToDeposit
payablefunction withdrawToDeposit(address fromVault, address toVault, address to, uint256 amount, uint256 maxSharesIn, uint256 minSharesOut) payable returns (uint256 sharesOut)
withdrawVaultToken
payablefunction withdrawVaultToken(address vault, address rewarder, uint256 maxAmount, bool claim) payable returns (uint256)
wrapWETH9
payablefunction wrapWETH9() payable
wrapWETH9
payablefunction wrapWETH9(uint256 amount) payable
events
No events.
errors
AccessDenied
error AccessDenied()
InsufficientETH
error InsufficientETH()
InsufficientToken
error InsufficientToken()
InsufficientWETH9
error InsufficientWETH9()
InvalidAddress
error InvalidAddress(address addr)
InvalidSpender
error InvalidSpender(address spender)
ItemNotFound
error ItemNotFound()
MaxAmountError
error MaxAmountError()
MaxSharesError
error MaxSharesError()
MinAmountError
error MinAmountError()
MinSharesError
error MinSharesError()
MulticallFailed
error MulticallFailed()
PermitFailed
error PermitFailed()
PreviewRedeemWithRoutesResult
error PreviewRedeemWithRoutesResult(uint256)
TimestampTooOld
error TimestampTooOld()
ZeroAddress
error ZeroAddress(string paramName)
creation bytecode
0x61010060405234801562000011575f80fd5b5060405162003ea538038062003ea583398101604081905262000034916200014f565b8180816001600160a01b0316633fc8cef36040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000073573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000999190620001a0565b6001600160a01b031660805260408051808201909152600f81526e5f73797374656d526567697374727960881b6020820152620000d8908290620000fe565b6001600160a01b0390811660a05260015f5593841660c0525090911660e0525062000213565b6001600160a01b03821662000133578060405163eac0d38960e01b81526004016200012a9190620001c5565b60405180910390fd5b5050565b6001600160a01b03811681146200014c575f80fd5b50565b5f805f6060848603121562000162575f80fd5b83516200016f8162000137565b6020850151909350620001828162000137565b6040850151909250620001958162000137565b809150509250925092565b5f60208284031215620001b1575f80fd5b8151620001be8162000137565b9392505050565b5f602080835283518060208501525f5b81811015620001f357858101830151858201604001528201620001d5565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a05160c05160e051613bd9620002cc5f395f818161027f01526110ed01525f818161051301526124fd01525f8181610556015281816105e7015281816106840152818161085101528181610e5a01528181611135015281816115150152818161160c0152818161171f015281816117fa01528181611ea701528181611fa901528181612084015261276d01525f818161034401528181610ae701528181610c5e01528181610d0e0152611b580152613bd95ff3fe608060405260043610610220575f3560e01c8063a1e089111161011e578063b67ad9a2116100a8578063e5c52da41161006d578063e5c52da414610502578063ed01c6e514610535578063f12baf5c14610548578063f3995c671461057a578063f6d476c01461058d575f80fd5b8063b67ad9a2146104a3578063df2ab5bb146104b6578063e1f21c67146104c9578063e3e58ef3146104dc578063e465ec26146104ef575f80fd5b8063a5e0a58a116100ee578063a5e0a58a14610437578063ac9650d81461044a578063b3f1c93d1461046a578063b45604331461047d578063b592e40614610490575f80fd5b8063a1e08911146103eb578063a246bd30146103fe578063a314d5a714610411578063a440241114610424575f80fd5b806349404b7c116101aa5780637bfe950c1161016f5780637bfe950c1461038c57806390f328c91461039f57806391d5791e146103b257806392ee66a5146103c55780639822f51f146103d8575f80fd5b806349404b7c1461030d5780634be474181461032057806350879c1c1461033357806361d9e5a61461036657806373d1541414610379575f80fd5b80631268ed9d116101f05780631268ed9d146102b957806320e8c565146102cc5780632d5ff2f7146102df5780633f50fd1f146102f257806348840162146102fa575f80fd5b80630eaf70e51461022b5780630fb965f81461024057806312210e8a1461026657806312261ee71461026e575f80fd5b3661022757005b5f80fd5b61023e610239366004612e7a565b6105a0565b005b61025361024e366004612ee7565b610776565b6040519081526020015b60405180910390f35b61023e610834565b348015610279575f80fd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161025d565b6102536102c7366004613013565b610846565b6102536102da3660046130f2565b610a2f565b61023e6102ed366004613135565b610acd565b61023e610adf565b61025361030836600461318a565b610b50565b61023e61031b3660046131cf565b610c47565b61025361032e3660046130f2565b610d77565b34801561033e575f80fd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b61023e6103743660046131fd565b610e13565b61023e6103873660046132c1565b610f50565b61025361039a3660046130f2565b610f65565b6102536103ad3660046132f5565b611001565b61023e6103c036600461334c565b611092565b6102536103d3366004613013565b61112a565b6102536103e63660046133de565b61129b565b61023e6103f936600461341c565b6113e6565b61025361040c3660046133de565b61140a565b61023e61041f366004613433565b611500565b61023e6104323660046132c1565b611512565b6102536104453660046134c8565b611609565b61045d61045836600461353e565b61198c565b60405161025d91906135c9565b6102536104783660046130f2565b611ab9565b61023e61048b36600461341c565b611b4f565b61025361049e36600461362b565b611be2565b6102536104b136600461368c565b611c66565b61023e6104c43660046132c1565b611dae565b61023e6104d73660046133de565b611e53565b6102536104ea3660046136b6565b611e5e565b61023e6104fd3660046136e2565b611fa6565b34801561050d575f80fd5b506102a17f000000000000000000000000000000000000000000000000000000000000000081565b6102536105433660046133de565b6121e9565b348015610553575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006102a1565b61023e610588366004613739565b6123c5565b61023e61059b36600461378f565b6124da565b6040516301b7172360e61b81527fef9fad926eba81b825236520ba5e200b52b94aa56e396acc56c8fadfafcbabf260048201526001600160a01b03808616602483015285917f000000000000000000000000000000000000000000000000000000000000000090911690636dc5c8c090604401602060405180830381865afa15801561062e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061065291906137af565b61067f57604051634726455360e11b81526001600160a01b03821660048201526024015b60405180910390fd5b6107097f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f543bb0e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070291906137d1565b8686611e53565b604051637628a37d60e01b815260048101859052602481018490526001600160a01b038381166044830152861690637628a37d906064015b5f604051808303815f87803b158015610758575f80fd5b505af115801561076a573d5f803e3d5ffd5b505050505b5050505050565b5f61078760608601604087016137ec565b6001600160a01b0316336001600160a01b0316146107b857604051634ca8886760e01b815260040160405180910390fd5b60405163d126e91760e01b81526001600160a01b0387169063d126e917906107ea908890889088908890600401613807565b6020604051808303815f875af1158015610806573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082a919061385e565b9695505050505050565b4715610844576108443347612546565b565b5f61084f61265b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dbba4c56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108cf91906137d1565b604051631d35e43960e11b81526001600160a01b0385811660048301529190911690633a6bc872906024015f6040518083038186803b158015610910575f80fd5b505afa158015610922573d5f803e3d5ffd5b505083516040516370a0823160e01b81523060048201529092506001600160a01b03831691506370a0823190602401602060405180830381865afa15801561096c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610990919061385e565b60208401526040515f90610a06906109ac908690602401613875565b60408051601f19818403018152918152602080830180516001600160e01b0316631f7f2ed560e11b1790528151808301909252600a82526914ddd85c11985a5b195960b21b908201526001600160a01b03881691906126b2565b905080806020019051810190610a1c919061385e565b92505050610a2960015f55565b92915050565b604051636e553f6560e01b8152600481018390526001600160a01b0384811660248301525f918391871690636e553f65906044016020604051808303815f875af1158015610a7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aa3919061385e565b9150811015610ac5576040516305133e6360e51b815260040160405180910390fd5b949350505050565b610ada838383600161271c565b505050565b4715610844577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004015f604051808303818588803b158015610b3e575f80fd5b505af115801561076f573d5f803e3d5ffd5b5f610b5a8561276b565b610b648585612872565b6040516370a0823160e01b81523360048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa158015610ba8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bcc919061385e565b905080841115610bda578093505b60405163ead5d35960e01b81523360048201526024810185905283151560448201526001600160a01b0386169063ead5d359906064015f604051808303815f87803b158015610c27575f80fd5b505af1158015610c39573d5f803e3d5ffd5b509598975050505050505050565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf919061385e565b905082811015610cf25760405163409a171f60e01b815260040160405180910390fd5b8015610ada57604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015610d57575f80fd5b505af1158015610d69573d5f803e3d5ffd5b50505050610ada8282612546565b604051635d043b2960e11b8152600481018390526001600160a01b0384811660248301523360448301525f91839187169063ba087652906064016020604051808303815f875af1158015610dcd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df1919061385e565b9150811015610ac557604051636e8c873b60e01b815260040160405180910390fd5b6040516301b7172360e61b81527fef9fad926eba81b825236520ba5e200b52b94aa56e396acc56c8fadfafcbabf260048201526001600160a01b03808516602483015284917f000000000000000000000000000000000000000000000000000000000000000090911690636dc5c8c090604401602060405180830381865afa158015610ea1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec591906137af565b610eed57604051634726455360e11b81526001600160a01b0382166004820152602401610676565b604051633d18036760e21b81526001600160a01b0385169063f4600d9c90610f1d908690339087906004016138f9565b5f604051808303815f87803b158015610f34575f80fd5b505af1158015610f46573d5f803e3d5ffd5b5050505050505050565b610ada6001600160a01b03841633838561297a565b604051632d182be560e21b8152600481018390526001600160a01b0384811660248301523360448301525f919086169063b460af94906064016020604051808303815f875af1158015610fba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fde919061385e565b905081811115610ac55760405163ac11961360e01b815260040160405180910390fd5b5f8061100f8730865f610d77565b905061107b866001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611050573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107491906137d1565b8783611e53565b61108786868386610a2f565b979650505050505050565b5f6110a060208501856137ec565b90506001600160a01b03811630146110d65760405163270af7ed60e11b81526001600160a01b0382166004820152602401610676565b60405163187945bd60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906330f28b7a9061074190889088903390899089906004016139a1565b5f61113361265b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dbba4c56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b391906137d1565b604051631d35e43960e11b81526001600160a01b0385811660048301529190911690633a6bc872906024015f6040518083038186803b1580156111f4575f80fd5b505afa158015611206573d5f803e3d5ffd5b505050505f6112798360405160240161121f9190613875565b60408051601f19818403018152918152602080830180516001600160e01b0316631f7f2ed560e11b1790528151808301909252600a82526914ddd85c11985a5b195960b21b908201526001600160a01b03871691906126b2565b90508080602001905181019061128f919061385e565b915050610a2960015f55565b5f80846001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112fd91906137d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015611341573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611365919061385e565b90506113d1856001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ca91906137d1565b8683611e53565b6113dd85858386610a2f565b95945050505050565b428110156114075760405163d40fc74b60e01b815260040160405180910390fd5b50565b6040516370a0823160e01b81523360048201525f9081906001600160a01b038616906370a0823190602401602060405180830381865afa158015611450573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611474919061385e565b604051636c82bbbf60e11b81523360048201529091505f906001600160a01b0387169063d905777e906024016020604051808303815f875af11580156114bc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114e0919061385e565b90505f8282106114f057826114f2565b815b905061108787878388610d77565b61150c8484848461271c565b50505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f543bb0e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561156f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159391906137d1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa1580156115d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115fb919061385e565b905061150c848285856105a0565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663047e51386040518163ffffffff1660e01b8152600401602060405180830381865afa158015611666573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168a91906137d1565b60405163652b9b4160e01b81526001600160a01b038981166004830152919091169063652b9b4190602401602060405180830381865afa1580156116d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f491906137af565b61171c57604051634726455360e11b81526001600160a01b0388166004820152602401610676565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c3d0cbfb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611779573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179d91906137d1565b60405163b472120f60e01b81526001600160a01b038a811660048301529192509082169063b472120f906024015f604051808303815f87803b1580156117e1575f80fd5b505af11580156117f3573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c31c9c076040518163ffffffff1660e01b8152600401602060405180830381865afa158015611854573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061187891906137d1565b604051632657b37d60e21b81529091506001600160a01b0382169063995ecdf4906118a990889088906004016139f3565b5f604051808303815f87803b1580156118c0575f80fd5b505af11580156118d2573d5f803e3d5ffd5b505050506118e289898989610d77565b9250806001600160a01b031663071c57276040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561191c575f80fd5b505af115801561192e573d5f803e3d5ffd5b50505050816001600160a01b031663b58e35186040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561196a575f80fd5b505af115801561197c573d5f803e3d5ffd5b5050505050509695505050505050565b6060816001600160401b038111156119a6576119a6612f3c565b6040519080825280602002602001820160405280156119d957816020015b60608152602001906001900390816119c45790505b5090505f5b82811015611ab2575f80308686858181106119fb576119fb613af2565b9050602002810190611a0d9190613b06565b604051611a1b929190613b48565b5f60405180830381855af49150503d805f8114611a53576040519150601f19603f3d011682016040523d82523d5f602084013e611a58565b606091505b509150915081611a8a57805115611a7157805181602001fd5b6040516309ad446560e31b815260040160405180910390fd5b80848481518110611a9d57611a9d613af2565b602090810291909101015250506001016119de565b5092915050565b6040516394bf804d60e01b8152600481018390526001600160a01b0384811660248301525f91908616906394bf804d906044016020604051808303815f875af1158015611b08573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2c919061385e565b905081811115610ac557604051634e3c485360e01b815260040160405180910390fd5b804710611bc9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015611baf575f80fd5b505af1158015611bc1573d5f803e3d5ffd5b505050505050565b604051631a84bc4160e21b815260040160405180910390fd5b5f611bef87308686610f65565b50611c5a866001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5391906137d1565b8786611e53565b61108786868685610a2f565b5f611c708361276b565b5f836001600160a01b031663dcc3e06e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd191906137d1565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038616906370a0823190602401602060405180830381865afa158015611d18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d3c919061385e565b905083811015611d4a578093505b6040516356e4bb9760e11b8152336004820152602481018590526001600160a01b0383169063adc9772e906044015f604051808303815f87803b158015611d8f575f80fd5b505af1158015611da1573d5f803e3d5ffd5b5095979650505050505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015611df2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e16919061385e565b905082811015611e3957604051630ceb95c760e31b815260040160405180910390fd5b801561150c5761150c6001600160a01b03851683836129e5565b610ada838383612a15565b6040516301b7172360e61b81527fef9fad926eba81b825236520ba5e200b52b94aa56e396acc56c8fadfafcbabf260048201526001600160a01b0380841660248301525f9184917f00000000000000000000000000000000000000000000000000000000000000001690636dc5c8c090604401602060405180830381865afa158015611eec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1091906137af565b611f3857604051634726455360e11b81526001600160a01b0382166004820152602401610676565b60405162caed4b60e51b81523360048201526001600160a01b03848116602483015285169063195da960906044016020604051808303815f875af1158015611f82573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac5919061385e565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c3d0cbfb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612003573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202791906137d1565b60405163b472120f60e01b81526001600160a01b0387811660048301529192509082169063b472120f906024015f604051808303815f87803b15801561206b575f80fd5b505af115801561207d573d5f803e3d5ffd5b505050505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c31c9c076040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120de573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210291906137d1565b604051632657b37d60e21b81529091506001600160a01b0382169063995ecdf49061213390879087906004016139f3565b5f604051808303815f87803b15801561214a575f80fd5b505af115801561215c573d5f803e3d5ffd5b505060405163266d6a8360e11b8152600481018890525f92506001600160a01b0389169150634cdad506906024016020604051808303815f875af11580156121a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121ca919061385e565b9050806040516324b34d3960e11b815260040161067691815260200190565b5f80846001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612227573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224b91906137d1565b6040516370a0823160e01b81523360048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015612292573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122b6919061385e565b60405163402d267d60e01b81526001600160a01b0387811660048301529192505f9188169063402d267d906024016020604051808303815f875af1158015612300573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612324919061385e565b90505f8282106123345782612336565b815b9050612343848230610f50565b6123ad886001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612382573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a691906137d1565b8983611e53565b6123b988888389610a2f565b98975050505050505050565b60405163d505accf60e01b8152336004820152306024820152604481018690526064810185905260ff8416608482015260a4810183905260c481018290526001600160a01b0387169063d505accf9060e4015f604051808303815f87803b15801561242e575f80fd5b505af192505050801561243f575060015b6124bc57604051636eb1769f60e11b815233600482015230602482015285906001600160a01b0388169063dd62ed3e90604401602060405180830381865afa15801561248d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b1919061385e565b1015611bc1576124c1565b611bc1565b60405163b78cb0dd60e01b815260040160405180910390fd5b6040516373359c2160e11b815260048101839052602481018290523360448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e66b3842906064015f604051808303815f87803b158015611baf575f80fd5b804710156125965760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610676565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146125df576040519150601f19603f3d011682016040523d82523d5f602084013e6125e4565b606091505b5050905080610ada5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610676565b60025f54036126ac5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610676565b60025f55565b60605f80856001600160a01b0316856040516126ce9190613b57565b5f60405180830381855af49150503d805f8114612706576040519150601f19603f3d011682016040523d82523d5f602084013e61270b565b606091505b509150915061082a86838387612ab6565b6127258461276b565b61272f8484612872565b60405163314a15e560e21b81523360048201526001600160a01b038381166024830152821515604483015284169063c528579490606401610f1d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663047e51386040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127eb91906137d1565b60405163652b9b4160e01b81526001600160a01b038381166004830152919091169063652b9b4190602401602060405180830381865afa158015612831573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061285591906137af565b6114075760405163d3ed043d60e01b815260040160405180910390fd5b816001600160a01b031663dcc3e06e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128d291906137d1565b6001600160a01b0316816001600160a01b0316141580156129585750604051633a7d16fb60e21b81526001600160a01b03828116600483015283169063e9f45bec90602401602060405180830381865afa158015612932573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061295691906137af565b155b156129765760405163d3ed043d60e01b815260040160405180910390fd5b5050565b6040516001600160a01b038085166024830152831660448201526064810182905261150c9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612b2e565b6040516001600160a01b038316602482015260448101829052610ada90849063a9059cbb60e01b906064016129ae565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015612a62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a86919061385e565b90508015612aa257612aa26001600160a01b0385168483612bff565b61150c6001600160a01b0385168484612d08565b60608315612b245782515f03612b1d576001600160a01b0385163b612b1d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610676565b5081610ac5565b610ac58383612db7565b5f612b82826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612de19092919063ffffffff16565b805190915015610ada5780806020019051810190612ba091906137af565b610ada5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610676565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f919085169063dd62ed3e90604401602060405180830381865afa158015612c4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c70919061385e565b905081811015612cd45760405162461bcd60e51b815260206004820152602960248201527f5361666545524332303a2064656372656173656420616c6c6f77616e63652062604482015268656c6f77207a65726f60b81b6064820152608401610676565b6040516001600160a01b0384166024820152828203604482018190529061076f90869063095ea7b360e01b906064016129ae565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301525f91839186169063dd62ed3e90604401602060405180830381865afa158015612d56573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d7a919061385e565b612d849190613b72565b6040516001600160a01b03851660248201526044810182905290915061150c90859063095ea7b360e01b906064016129ae565b815115612dc75781518083602001fd5b8060405162461bcd60e51b81526004016106769190613b91565b6060610ac584845f85855f80866001600160a01b03168587604051612e069190613b57565b5f6040518083038185875af1925050503d805f8114612e40576040519150601f19603f3d011682016040523d82523d5f602084013e612e45565b606091505b509150915061108787838387612ab6565b6001600160a01b0381168114611407575f80fd5b8035612e7581612e56565b919050565b5f805f8060808587031215612e8d575f80fd5b8435612e9881612e56565b935060208501359250604085013591506060850135612eb681612e56565b939692955090935050565b5f60808284031215612ed1575f80fd5b50919050565b803560ff81168114612e75575f80fd5b5f805f805f6101008688031215612efc575f80fd5b8535612f0781612e56565b9450612f168760208801612ec1565b9350612f2460a08701612ed7565b9497939650939460c0810135945060e0013592915050565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b0381118282101715612f7257612f72612f3c565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612fa057612fa0612f3c565b604052919050565b5f82601f830112612fb7575f80fd5b81356001600160401b03811115612fd057612fd0612f3c565b612fe3601f8201601f1916602001612f78565b818152846020838601011115612ff7575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613024575f80fd5b823561302f81612e56565b915060208301356001600160401b038082111561304a575f80fd5b9084019060e0828703121561305d575f80fd5b613065612f50565b61306e83612e6a565b81526020830135602082015261308660408401612e6a565b6040820152606083013560608201526080830135828111156130a6575f80fd5b6130b288828601612fa8565b60808301525060a0830135828111156130c9575f80fd5b6130d588828601612fa8565b60a08301525060c083013560c08201528093505050509250929050565b5f805f8060808587031215613105575f80fd5b843561311081612e56565b9350602085013561312081612e56565b93969395505050506040820135916060013590565b5f805f60608486031215613147575f80fd5b833561315281612e56565b9250602084013561316281612e56565b9150604084013561317281612e56565b809150509250925092565b8015158114611407575f80fd5b5f805f806080858703121561319d575f80fd5b84356131a881612e56565b935060208501356131b881612e56565b9250604085013591506060850135612eb68161317d565b5f80604083850312156131e0575f80fd5b8235915060208301356131f281612e56565b809150509250929050565b5f805f6060848603121561320f575f80fd5b833561321a81612e56565b92506020848101356001600160401b0380821115613236575f80fd5b818701915087601f830112613249575f80fd5b81358181111561325b5761325b612f3c565b8060051b915061326c848301612f78565b818152918301840191848101908a841115613285575f80fd5b938501935b838510156132a35784358252938501939085019061328a565b8097505050505050506132b860408501612e6a565b90509250925092565b5f805f606084860312156132d3575f80fd5b83356132de81612e56565b925060208401359150604084013561317281612e56565b5f805f805f60a08688031215613309575f80fd5b853561331481612e56565b9450602086013561332481612e56565b9350604086013561333481612e56565b94979396509394606081013594506080013592915050565b5f805f8084860360e0811215613360575f80fd5b61336a8787612ec1565b94506040607f198201121561337d575f80fd5b5060808501925060c08501356001600160401b038082111561339d575f80fd5b818701915087601f8301126133b0575f80fd5b8135818111156133be575f80fd5b8860208285010111156133cf575f80fd5b95989497505060200194505050565b5f805f606084860312156133f0575f80fd5b83356133fb81612e56565b9250602084013561340b81612e56565b929592945050506040919091013590565b5f6020828403121561342c575f80fd5b5035919050565b5f805f8060808587031215613446575f80fd5b843561345181612e56565b9350602085013561346181612e56565b9250604085013561347181612e56565b91506060850135612eb68161317d565b5f8083601f840112613491575f80fd5b5081356001600160401b038111156134a7575f80fd5b6020830191508360208260051b85010111156134c1575f80fd5b9250929050565b5f805f805f8060a087890312156134dd575f80fd5b86356134e881612e56565b955060208701356134f881612e56565b9450604087013593506060870135925060808701356001600160401b03811115613520575f80fd5b61352c89828a01613481565b979a9699509497509295939492505050565b5f806020838503121561354f575f80fd5b82356001600160401b03811115613564575f80fd5b61357085828601613481565b90969095509350505050565b5f5b8381101561359657818101518382015260200161357e565b50505f910152565b5f81518084526135b581602086016020860161357c565b601f01601f19169290920160200192915050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561361e57603f1988860301845261360c85835161359e565b945092850192908501906001016135f0565b5092979650505050505050565b5f805f805f8060c08789031215613640575f80fd5b863561364b81612e56565b9550602087013561365b81612e56565b9450604087013561366b81612e56565b959894975094956060810135955060808101359460a0909101359350915050565b5f806040838503121561369d575f80fd5b82356136a881612e56565b946020939093013593505050565b5f80604083850312156136c7575f80fd5b82356136d281612e56565b915060208301356131f281612e56565b5f805f80606085870312156136f5575f80fd5b843561370081612e56565b93506020850135925060408501356001600160401b03811115613721575f80fd5b61372d87828801613481565b95989497509550505050565b5f805f805f8060c0878903121561374e575f80fd5b863561375981612e56565b9550602087013594506040870135935061377560608801612ed7565b92506080870135915060a087013590509295509295509295565b5f80604083850312156137a0575f80fd5b50508035926020909101359150565b5f602082840312156137bf575f80fd5b81516137ca8161317d565b9392505050565b5f602082840312156137e1575f80fd5b81516137ca81612e56565b5f602082840312156137fc575f80fd5b81356137ca81612e56565b843581526020808601359082015260e08101604086013561382781612e56565b6001600160a01b031660408301526060958601359582019590955260ff93909316608084015260a083019190915260c09091015290565b5f6020828403121561386e575f80fd5b5051919050565b602081525f60018060a01b03808451166020840152602084015160408401528060408501511660608401525060608301516080830152608083015160e060a08401526138c561010084018261359e565b905060a0840151601f198483030160c08501526138e2828261359e565b91505060c084015160e08401528091505092915050565b606080825284519082018190525f906020906080840190828801845b8281101561393157815184529284019290840190600101613915565b5050506001600160a01b039586166020850152939094166040909201919091525092915050565b803561396381612e56565b6001600160a01b03168252602090810135910152565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f6101006139af8389613958565b60408801356040840152606088013560608401526139d06080840188613958565b6001600160a01b03861660c084015260e083018190526123b98184018587613979565b60208082528181018390525f906040808401600586901b8501820187855b88811015613ae457878303603f190184528135368b9003607e19018112613a36575f80fd5b8a0160808135613a4581612e56565b6001600160a01b0390811686528289013590613a6082612e56565b908116868a01528288013590613a7582612e56565b168588015260608281013536849003601e19018112613a92575f80fd5b9092018881019290356001600160401b03811115613aae575f80fd5b803603841315613abc575f80fd5b8282880152613ace8388018286613979565b978a019796505050928701925050600101613a11565b509098975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112613b1b575f80fd5b8301803591506001600160401b03821115613b34575f80fd5b6020019150368190038213156134c1575f80fd5b818382375f9101908152919050565b5f8251613b6881846020870161357c565b9190910192915050565b80820180821115610a2957634e487b7160e01b5f52601160045260245ffd5b602081525f6137ca602083018461359e56fea2646970667358221220b7a7b9265d11d148355b7cf30a1a93ec4cbd568c26b7e30261dcf6f93d77b66764736f6c63430008180033000000000000000000000000a374a62ddbd21e3d5716cb04821cb710897c09720000000000000000000000002218f90a98b0c070676f249ef44834686daa4285000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3