5 txs
12 calls
constructor
constructor(address pool_, address swapper_, string name_)
functions
collateral
viewfunction collateral() view returns (address)
collateralToken
viewfunction collateralToken() view returns (address)
crvLp
viewfunction crvLp() view returns (address)
CURVE_ADDRESS_PROVIDER
viewfunction CURVE_ADDRESS_PROVIDER() view returns (address)
feeCollector
viewfunction feeCollector() view returns (address)
governor
viewfunction governor() view returns (address)
isReservedToken
viewfunction isReservedToken(address token_) view returns (bool)
keepers
viewfunction keepers() view returns (address[])
lpBalanceHere
viewfunction lpBalanceHere() view returns (uint256)
NAME
viewfunction NAME() view returns (string)
pool
viewfunction pool() view returns (address)
receiptToken
viewfunction receiptToken() view returns (address)
swapper
viewfunction swapper() view returns (address)
token
viewfunction token() view returns (address)
tvl
viewfunction tvl() view returns (uint256)
VERSION
viewfunction VERSION() view returns (string)
addKeeper
nonpayablefunction addKeeper(address _keeperAddress)
approveToken
nonpayablefunction approveToken(uint256 _approvalAmount)
claimAndSwapRewards
nonpayablefunction claimAndSwapRewards(uint256 _minAmountOut) returns (uint256 _amountOut)
migrate
nonpayablefunction migrate(address _newStrategy)
rebalance
nonpayablefunction rebalance() returns (uint256 _profit, uint256 _loss, uint256 _payback)
removeKeeper
nonpayablefunction removeKeeper(address _keeperAddress)
reportEarning
nonpayablefunction reportEarning() returns (uint256 _profit, uint256 _loss, uint256 _payback)
reportLoss
nonpayablefunction reportLoss(uint256 lossAmount_)
swapExactInput
nonpayablefunction swapExactInput(uint256 amountIn_, uint256 minAmountOut_, address[9] route_, uint256[3][4] params_, address[4] pools_) returns (uint256 _amountOut)
swapToCollateral
nonpayablefunction swapToCollateral(address _tokenIn, uint256 _minAmountOut) returns (uint256 _amountOut)
sweep
nonpayablefunction sweep(address _fromToken)
updateFeeCollector
nonpayablefunction updateFeeCollector(address _feeCollector)
updateSwapper
nonpayablefunction updateSwapper(address _swapper)
withdraw
nonpayablefunction withdraw(uint256 _amount)
withdrawAndReportEarning
nonpayablefunction withdrawAndReportEarning(uint256 lpToBurn_, uint256 minEusdOut_, uint256 minFraxBPOut_, uint256 minFraxOut_)
withdrawFromCurve
nonpayablefunction withdrawFromCurve(uint256 lpToBurn_, uint256 minEusdOut_, uint256 minFraxBPOut_, uint256 minFraxOut_) returns (uint256 _eusdOut, uint256 _fraxBpOut, uint256 _fraxOut)
events
UpdatedFeeCollector
event UpdatedFeeCollector(address indexed previousFeeCollector, address indexed newFeeCollector)
UpdatedSwapper
event UpdatedSwapper(address indexed oldSwapper, address indexed newSwapper)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b5060405162003e0638038062003e0683398101604081905262000034916200038a565b828273aeda92e6a3b1028edc139a4ae56ec881f3064d4f6001600160a01b038316620000a75760405162461bcd60e51b815260206004820152601460248201527f706f6f6c2d616464726573732d69732d7a65726f00000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000ff5760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f00000000000000000060448201526064016200009e565b600280546001600160a01b0319166001600160a01b0384811691909117909155831660a081905260408051637e062a3560e11b8152905163fc0c546a91600480820192602092909190829003018186803b1580156200015d57600080fd5b505afa15801562000172573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000198919062000494565b6001600160a01b03908116608052600080546001600160a01b031916918316919091179055620001df620001c93390565b60036200024360201b620023671790919060201c565b620002215760405162461bcd60e51b81526020600482015260116024820152701859190b5ad9595c195c8b59985a5b1959607a1b60448201526064016200009e565b505081516200023991506005906020840190620002b5565b50505050620004f8565b60006200025a836001600160a01b03841662000263565b90505b92915050565b6000818152600183016020526040812054620002ac575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200025d565b5060006200025d565b828054620002c390620004bb565b90600052602060002090601f016020900481019282620002e7576000855562000332565b82601f106200030257805160ff191683800117855562000332565b8280016001018555821562000332579182015b828111156200033257825182559160200191906001019062000315565b506200034092915062000344565b5090565b5b8082111562000340576000815560010162000345565b6001600160a01b03811681146200037157600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215620003a057600080fd5b8351620003ad816200035b565b80935050602080850151620003c2816200035b565b60408601519093506001600160401b0380821115620003e057600080fd5b818701915087601f830112620003f557600080fd5b8151818111156200040a576200040a62000374565b604051601f8201601f19908116603f0116810190838211818310171562000435576200043562000374565b816040528281528a868487010111156200044e57600080fd5b600093505b8284101562000472578484018601518185018701529285019262000453565b82841115620004845760008684830101525b8096505050505050509250925092565b600060208284031215620004a757600080fd5b8151620004b4816200035b565b9392505050565b600181811c90821680620004d057607f821691505b60208210811415620004f257634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516137d76200062f600039600081816102680152818161077f015281816109f301528181610da901528181610ef001528181610fc0015281816110730152818161147801528181611545015281816117700152818161197e01528181611b8c01528181611c9301528181611d7d015281816127c701528181612b630152612cc7015260008181610310015281816103f301528181610463015281816105ae015281816106300152818161087b0152818161091601528181610b8b01528181610e3601528181610ece01528181610f3701528181610ff3015281816116f401528181611e9401528181611f7201528181611ff40152818161207e0152818161224c0152818161228a015281816127a50152818161280e01528181612aa201528181612c000152612d4801526137d76000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637d7c2a1c1161010f578063d3033c39116100a2578063ec78e83211610071578063ec78e832146104a2578063ee330ee3146104b5578063fc0c546a146104c8578063ffa1ad74146104d957600080fd5b8063d3033c391461044e578063d8dfeb4514610461578063ddd6d26014610487578063e5328e061461049a57600080fd5b8063b2016bd4116100de578063b2016bd4146103ee578063c415b95c14610415578063ce5494bb14610428578063d2c35ce81461043b57600080fd5b80637d7c2a1c146103a15780637f44579b146103a9578063951dc22c146103c4578063a3f4df7e146103d957600080fd5b80633ac9fc1111610187578063509bf00e11610156578063509bf00e14610350578063527a71e114610363578063795dae66146103915780637a75cc4c1461039957600080fd5b80633ac9fc11146102c35780633d9bb179146102d65780634032b72b146102ed578063440d72481461030057600080fd5b806316f0115b116101c357806316f0115b146102635780632b3297f91461028a5780632bb4186c1461029d5780632e1a7d4d146102b057600080fd5b806301681a62146101f55780630c340a241461020a5780631026013a1461022f57806314ae9f2e14610250575b600080fd5b6102086102033660046133ba565b6104fd565b005b61021261077b565b6040516001600160a01b0390911681526020015b60405180910390f35b61024261023d3660046133d7565b610813565b604051908152602001610226565b61020861025e3660046133ba565b6109f1565b6102127f000000000000000000000000000000000000000000000000000000000000000081565b600254610212906001600160a01b031681565b6102426102ab3660046133f0565b610b39565b6102086102be3660046133d7565b610da6565b6102086102d13660046133d7565b61101a565b6102126f22d53366457f9d5e68ec105046fc438381565b6102086102fb3660046133ba565b611071565b61034061030e3660046133ba565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b6040519015158152602001610226565b61020861035e366004613461565b6111b9565b610376610371366004613461565b611227565b60408051938452602084019290925290820152606001610226565b610242611296565b61037661131b565b610376611380565b61021273aeda92e6a3b1028edc139a4ae56ec881f3064d4f81565b6103cc6113db565b6040516102269190613493565b6103e16113e7565b604051610226919061350c565b6102127f000000000000000000000000000000000000000000000000000000000000000081565b600154610212906001600160a01b031681565b6102086104363660046133ba565b611475565b6102086104493660046133ba565b61176e565b61020861045c3660046133ba565b61197c565b7f0000000000000000000000000000000000000000000000000000000000000000610212565b6102086104953660046133d7565b611b8a565b610242611de5565b600054610212906001600160a01b031681565b6102426104c336600461353f565b611f20565b6000546001600160a01b0316610212565b6103e1604051806040016040528060058152602001640352e322e360dc1b81525081565b61050a335b600390612385565b6105545760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064015b60405180910390fd5b6001546001600160a01b03166105ac5760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d6e6f742d7365740000000000000000000000604482015260640161054b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316141561062e5760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161054b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811690821614156106a25760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161054b565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156106e0576001546106dd906001600160a01b0316476123a7565b50565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b15801561072257600080fd5b505afa158015610736573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075a919061356b565b600154909150610777906001600160a01b038481169116836124c5565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190613584565b905090565b600061081e33610502565b6108635760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156108c557600080fd5b505afa1580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd919061356b565b90506040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561096057600080fd5b505afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610998919061356b565b6109a291906135b7565b9150828210156109eb5760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161054b565b50919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4a57600080fd5b505afa158015610a5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a829190613584565b6001600160a01b0316336001600160a01b031614610ae25760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161054b565b610aed60038261253d565b6106dd5760405162461bcd60e51b815260206004820152601460248201527f72656d6f76652d6b65657065722d6661696c6564000000000000000000000000604482015260640161054b565b6000610b4433610502565b610b895760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bc060208601866133ba565b6001600160a01b03161415610c175760405162461bcd60e51b815260206004820152601560248201527f746f6b656e496e2d69732d636f6c6c61746572616c0000000000000000000000604482015260640161054b565b600060085b6000868260098110610c3057610c306135ce565b602002016020810190610c4391906133ba565b6001600160a01b031614610c7d57858160098110610c6357610c636135ce565b602002016020810190610c7691906133ba565b9150610c8d565b610c86816135e4565b9050610c1c565b506040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610cd057600080fd5b505afa158015610ce4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d08919061356b565b9050610d178888888888612552565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a082319060240160206040518083038186803b158015610d5857600080fd5b505afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d90919061356b565b610d9a91906135b7565b98975050505050505050565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610e1e5760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161054b565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610e8057600080fd5b505afa158015610e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb8919061356b565b9050818110610f15576107776001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000846124c5565b610f226106dd82846135b7565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb9919061356b565b90506107777f0000000000000000000000000000000000000000000000000000000000000000610fe98484612782565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906124c5565b61102333610502565b6110685760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b6106dd81612798565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156110ca57600080fd5b505afa1580156110de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111029190613584565b6001600160a01b0316336001600160a01b0316146111625760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161054b565b61116d600382612367565b6106dd5760405162461bcd60e51b815260206004820152601160248201527f6164642d6b65657065722d6661696c6564000000000000000000000000000000604482015260640161054b565b6111c233610502565b6112075760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b611213848484846127ec565b50505061121e612b3d565b50505050505050565b6000808061123433610502565b6112795760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b611285878787876127ec565b9250925092505b9450945094915050565b6040516370a0823160e01b815230600482015260009073aeda92e6a3b1028edc139a4ae56ec881f3064d4f906370a082319060240160206040518083038186803b1580156112e357600080fd5b505afa1580156112f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e919061356b565b6000808061132833610502565b61136d5760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b611375612b3d565b925092509250909192565b6000808061138d33610502565b6113d25760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b60008080611375565b606061080e6003612d32565b600580546113f4906135fb565b80601f0160208091040260200160405190810160405280929190818152602001828054611420906135fb565b801561146d5780601f106114425761010080835404028352916020019161146d565b820191906000526020600020905b81548152906001019060200180831161145057829003601f168201915b505050505081565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146114ed5760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161054b565b6001600160a01b0381166115435760405162461bcd60e51b815260206004820152601c60248201527f6e65772d73747261746567792d616464726573732d69732d7a65726f00000000604482015260640161054b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115a657600080fd5b505afa1580156115ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115de9190613584565b6001600160a01b0316146116345760405162461bcd60e51b815260206004820152601660248201527f6e6f742d76616c69642d6e65772d737472617465677900000000000000000000604482015260640161054b565b61163d81612d46565b6000546040516370a0823160e01b81523060048201526116d19183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561168657600080fd5b505afa15801561169a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116be919061356b565b6000546001600160a01b031691906124c5565b6040516370a0823160e01b81523060048201526106dd9082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561173657600080fd5b505afa15801561174a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe9919061356b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156117c757600080fd5b505afa1580156117db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff9190613584565b6001600160a01b0316336001600160a01b03161461185f5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161054b565b6001600160a01b0381166118b55760405162461bcd60e51b815260206004820152601d60248201527f6665652d636f6c6c6563746f722d616464726573732d69732d7a65726f000000604482015260640161054b565b6001546001600160a01b03828116911614156119135760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d69732d73616d650000000000000000000000604482015260640161054b565b6001546040516001600160a01b038084169216907f0f06062680f9bd68e786e9980d9bb03d73d5620fc3b345e417b6eacb310b970690600090a36001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d557600080fd5b505afa1580156119e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0d9190613584565b6001600160a01b0316336001600160a01b031614611a6d5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161054b565b6001600160a01b038116611ac35760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f000000000000000000604482015260640161054b565b6002546001600160a01b0382811691161415611b215760405162461bcd60e51b815260206004820152600f60248201527f737761707065722d69732d73616d650000000000000000000000000000000000604482015260640161054b565b6002546040516001600160a01b038084169216907f6c953b7ec311055c20b96a42cea31e89528e375b1bf953a503db40854b3188fe90600090a36002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611be357600080fd5b505afa158015611bf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1b9190613584565b6001600160a01b0316336001600160a01b031614611c7b5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161054b565b604051636a9eee1360e11b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d53ddc269060240160206040518083038186803b158015611cdd57600080fd5b505afa158015611cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d15919061356b565b905080821115611d675760405162461bcd60e51b815260206004820152601860248201527f6c6f73732d69732d6869676865722d7468616e2d646562740000000000000000604482015260640161054b565b6040516306eeb69360e51b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ddd6d26090602401600060405180830381600087803b158015611dc957600080fd5b505af1158015611ddd573d6000803e3d6000fd5b505050505050565b600073aeda92e6a3b1028edc139a4ae56ec881f3064d4f63cc2b27d7611e09611296565b6040516001600160e01b031960e084901b16815260048101919091526001602482015260440160206040518083038186803b158015611e4757600080fd5b505afa158015611e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7f919061356b565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015611ede57600080fd5b505afa158015611ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f16919061356b565b61080e9190613630565b6000611f2b33610502565b611f705760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161054b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415611ff25760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161054b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811690841614156120665760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161054b565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156120c857600080fd5b505afa1580156120dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612100919061356b565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038616906370a082319060240160206040518083038186803b15801561214557600080fd5b505afa158015612159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217d919061356b565b9050801561227357600254604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529086169063dd62ed3e9060440160206040518083038186803b1580156121d057600080fd5b505afa1580156121e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612208919061356b565b8111156122465760025461222a906001600160a01b0387811691166000612e37565b600254612246906001600160a01b038781169116600019612e37565b612271857f000000000000000000000000000000000000000000000000000000000000000083612f62565b505b6040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156122d457600080fd5b505afa1580156122e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230c919061356b565b61231691906135b7565b92508383101561235f5760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161054b565b505092915050565b600061237c836001600160a01b038416613006565b90505b92915050565b6001600160a01b0381166000908152600183016020526040812054151561237c565b804710156123f75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161054b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612444576040519150601f19603f3d011682016040523d82523d6000602084013e612449565b606091505b50509050806124c05760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161054b565b505050565b6040516001600160a01b0383166024820152604481018290526124c090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152613055565b600061237c836001600160a01b03841661312d565b60405163124fd3dd60e21b8152600260048201526000906f22d53366457f9d5e68ec105046fc43839063493f4f749060240160206040518083038186803b15801561259c57600080fd5b505afa1580156125b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d49190613584565b905060006125e560208601866133ba565b60405163095ea7b360e01b81526001600160a01b038481166004830152600060248301529192509082169063095ea7b390604401602060405180830381600087803b15801561263357600080fd5b505af1158015612647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266b9190613648565b5060405163095ea7b360e01b81526001600160a01b0383811660048301526024820189905282169063095ea7b390604401602060405180830381600087803b1580156126b657600080fd5b505af11580156126ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ee9190613648565b50604051634eda7bd560e11b81526001600160a01b03831690639db4f7aa9060009061272690899089908d908d908b906004016136a0565b6020604051808303818588803b15801561273f57600080fd5b505af1158015612753573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612778919061356b565b5050505050505050565b6000818310612791578161237c565b5090919050565b6106dd6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083612e37565b60008080861561128c576040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561285857600080fd5b505afa15801561286c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612890919061356b565b905061289a613387565b878152602081018790526040516316cd8e2760e21b815273aeda92e6a3b1028edc139a4ae56ec881f3064d4f90635b36389c906128dd908c908590600401613737565b600060405180830381600087803b1580156128f757600080fd5b505af115801561290b573d6000803e3d6000fd5b50506040516370a0823160e01b815230600482015273a0d69e286b938e21cbf7e51d71f6a4c8918f482f92506370a08231915060240160206040518083038186803b15801561295957600080fd5b505afa15801561296d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612991919061356b565b6040516370a0823160e01b8152306004820152909550733175df0976dfa876431c2e9ee6bc45b65d3473cc906370a082319060240160206040518083038186803b1580156129de57600080fd5b505afa1580156129f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a16919061356b565b604051630d2680e960e11b815260048101829052600060248201526044810188905290945073dcef968d416a41cdac0ed8702fac8128a64241a290631a4d01d290606401600060405180830381600087803b158015612a7457600080fd5b505af1158015612a88573d6000803e3d6000fd5b50506040516370a0823160e01b81523060048201528492507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691506370a082319060240160206040518083038186803b158015612aed57600080fd5b505afa158015612b01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b25919061356b565b612b2f91906135b7565b925050509450945094915050565b604051636a9eee1360e11b81523060048201526000908190819081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d53ddc269060240160206040518083038186803b158015612ba557600080fd5b505afa158015612bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdd919061356b565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015612c4257600080fd5b505afa158015612c56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7a919061356b565b9050612c868183612782565b9250828111612c96576000612ca0565b612ca083826135b7565b6040516302df682360e11b81526004810182905260248101869052604481018590529095507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906305bed04690606401600060405180830381600087803b158015612d1357600080fd5b505af1158015612d27573d6000803e3d6000fd5b505050505050909192565b60606000612d3f83613220565b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031663d8dfeb456040518163ffffffff1660e01b815260040160206040518083038186803b158015612da957600080fd5b505afa158015612dbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de19190613584565b6001600160a01b0316146106dd5760405162461bcd60e51b815260206004820152601660248201527f77726f6e672d636f6c6c61746572616c2d746f6b656e00000000000000000000604482015260640161054b565b801580612ec05750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b158015612e8657600080fd5b505afa158015612e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebe919061356b565b155b612f325760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161054b565b6040516001600160a01b0383166024820152604481018290526124c090849063095ea7b360e01b906064016124f1565b600254604051636ccb2b0160e01b81526001600160a01b038581166004830152848116602483015260448201849052600160648301523060848301526000921690636ccb2b019060a401602060405180830381600087803b158015612fc657600080fd5b505af1158015612fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffe919061356b565b949350505050565b600081815260018301602052604081205461304d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561237f565b50600061237f565b60006130aa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661327c9092919063ffffffff16565b8051909150156124c057808060200190518101906130c89190613648565b6124c05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161054b565b50505050565b600081815260018301602052604081205480156132165760006131516001836135b7565b8554909150600090613165906001906135b7565b90508181146131ca576000866000018281548110613185576131856135ce565b90600052602060002001549050808760000184815481106131a8576131a86135ce565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806131db576131db61376f565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061237f565b600091505061237f565b60608160000180548060200260200160405190810160405280929190818152602001828054801561327057602002820191906000526020600020905b81548152602001906001019080831161325c575b50505050509050919050565b6060612ffe848460008585843b6132d55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161054b565b600080866001600160a01b031685876040516132f19190613785565b60006040518083038185875af1925050503d806000811461332e576040519150601f19603f3d011682016040523d82523d6000602084013e613333565b606091505b509150915061334382828661334e565b979650505050505050565b6060831561335d575081612d3f565b82511561336d5782518084602001fd5b8160405162461bcd60e51b815260040161054b919061350c565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b03811681146106dd57600080fd5b6000602082840312156133cc57600080fd5b8135612d3f816133a5565b6000602082840312156133e957600080fd5b5035919050565b600080600080600061036080878903121561340a57600080fd5b863595506020870135945061016087018881111561342757600080fd5b6040880194506102e088018981111561343f57600080fd5b81945089838a01111561345157600080fd5b8093505050509295509295909350565b6000806000806080858703121561347757600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252825182820181905260009190848201906040850190845b818110156134d45783516001600160a01b0316835292840192918401916001016134af565b50909695505050505050565b60005b838110156134fb5781810151838201526020016134e3565b838111156131275750506000910152565b602081526000825180602084015261352b8160408501602087016134e0565b601f01601f19169190910160400192915050565b6000806040838503121561355257600080fd5b823561355d816133a5565b946020939093013593505050565b60006020828403121561357d57600080fd5b5051919050565b60006020828403121561359657600080fd5b8151612d3f816133a5565b634e487b7160e01b600052601160045260246000fd5b6000828210156135c9576135c96135a1565b500390565b634e487b7160e01b600052603260045260246000fd5b6000816135f3576135f36135a1565b506000190190565b600181811c9082168061360f57607f821691505b602082108114156109eb57634e487b7160e01b600052602260045260246000fd5b60008219821115613643576136436135a1565b500190565b60006020828403121561365a57600080fd5b81518015158114612d3f57600080fd5b8060005b6004811015613127578135613682816133a5565b6001600160a01b03168452602093840193919091019060010161366e565b610360810181876000805b60098110156136dd5782356136bf816133a5565b6001600160a01b0316845260209384019392909201916001016136ab565b5061012085019250889150805b600481101561370d576060808486379384018281529392909201916001016136ea565b50505050846102a0830152836102c083015261372d6102e083018461366a565b9695505050505050565b8281526060810160208083018460005b600281101561376457815183529183019190830190600101613747565b505050509392505050565b634e487b7160e01b600052603160045260246000fd5b600082516137978184602087016134e0565b919091019291505056fea2646970667358221220ed531f14e2e98e28d5e9f92b43b972478a9ed481f851f8882c18722a37b20a8964736f6c63430008090033000000000000000000000000c14900dfb1aa54e7674e1ecf9ce02b3b35157ba5000000000000000000000000229f19942612a8dbdec3643cb23f88685ccd56a50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001f436f6e766578466f72467261785f657573646672617862705f465241585f3200