3 txs
10 calls
constructor
constructor(address _pool, address _swapper, address _receiptToken, address _borrowToken, address _aaveAddressProvider, address _vPool, string _name)
functions
aaveAddressProvider
viewfunction aaveAddressProvider() view returns (address)
borrowToken
viewfunction borrowToken() view returns (address)
collateral
viewfunction collateral() view returns (address)
collateralToken
viewfunction collateralToken() 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[])
maxBorrowLimit
viewfunction maxBorrowLimit() view returns (uint256)
minBorrowLimit
viewfunction minBorrowLimit() 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)
vdToken
viewfunction vdToken() view returns (address)
VERSION
viewfunction VERSION() view returns (string)
vPool
viewfunction vPool() view returns (address)
wrappedCollateral
viewfunction wrappedCollateral() view returns (address)
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)
swapToCollateral
nonpayablefunction swapToCollateral(address _tokenIn, uint256 _minAmountOut) returns (uint256 _amountOut)
sweep
nonpayablefunction sweep(address _fromToken)
updateBorrowLimit
nonpayablefunction updateBorrowLimit(uint256 _minBorrowLimit, uint256 _maxBorrowLimit)
updateFeeCollector
nonpayablefunction updateFeeCollector(address _feeCollector)
updateSwapper
nonpayablefunction updateSwapper(address _swapper)
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
UpdatedBorrowLimit
event UpdatedBorrowLimit(uint256 previousMinBorrowLimit, uint256 newMinBorrowLimit, uint256 previousMaxBorrowLimit, uint256 newMaxBorrowLimit)
UpdatedFeeCollector
event UpdatedFeeCollector(address indexed previousFeeCollector, address indexed newFeeCollector)
UpdatedSwapper
event UpdatedSwapper(address indexed oldSwapper, address indexed newSwapper)
errors
No errors.
creation bytecode
0x610100604052611b586006556121346007553480156200001e57600080fd5b506040516200629c3803806200629c8339810160408190526200004191620006e8565b8686868686858585856001600160a01b038316620000a65760405162461bcd60e51b815260206004820152601460248201527f706f6f6c2d616464726573732d69732d7a65726f00000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620000fe5760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f00000000000000000060448201526064016200009d565b600280546001600160a01b0319166001600160a01b0384811691909117909155831660a081905260408051637e062a3560e11b8152905163fc0c546a91600480820192602092909190829003018186803b1580156200015c57600080fd5b505afa15801562000171573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000197919062000849565b6001600160a01b03908116608052600080546001600160a01b031916918316919091179055620001de620001c83390565b6003620005a160201b62001ef61790919060201c565b620002205760405162461bcd60e51b81526020600482015260116024820152701859190b5ad9595c195c8b59985a5b1959607a1b60448201526064016200009d565b50508151620002389150600590602084019062000613565b506001600160a01b038216620002915760405162461bcd60e51b815260206004820152601760248201527f6164647265737350726f76696465722d69732d7a65726f00000000000000000060448201526064016200009d565b608051600b80546001600160a01b0319166001600160a01b03928316908117909155604080516358b50cef60e11b81529051919287169163b16a19de91600480820192602092909190829003018186803b158015620002ef57600080fd5b505afa15801562000304573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032a919062000849565b6001600160a01b031614620003825760405162461bcd60e51b815260206004820152601560248201527f696e76616c69642d726563656970742d746f6b656e000000000000000000000060448201526064016200009d565b600080836001600160a01b031663e860accb6040518163ffffffff1660e01b815260040160206040518083038186803b158015620003bf57600080fd5b505afa158015620003d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fa919062000849565b6040516334924edb60e21b81526001600160a01b038781166004830152919091169063d2493b6c9060240160606040518083038186803b1580156200043e57600080fd5b505afa15801562000453573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000479919062000870565b600980546001600160a01b03199081166001600160a01b0393841617909155600880548216998316998a179055600a8054909116938216939093179092555093841660c052505060408051637e062a3560e11b81529051939650918816945063fc0c546a935050600480820192602092909190829003018186803b1580156200050157600080fd5b505afa15801562000516573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200053c919062000849565b6001600160a01b031614620005885760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a590b59dc9bddcb5c1bdbdb607a1b60448201526064016200009d565b506001600160a01b031660e05250620009019350505050565b6000620005b8836001600160a01b038416620005c1565b90505b92915050565b60008181526001830160205260408120546200060a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620005bb565b506000620005bb565b8280546200062190620008c4565b90600052602060002090601f01602090048101928262000645576000855562000690565b82601f106200066057805160ff191683800117855562000690565b8280016001018555821562000690579182015b828111156200069057825182559160200191906001019062000673565b506200069e929150620006a2565b5090565b5b808211156200069e5760008155600101620006a3565b6001600160a01b0381168114620006cf57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156200070457600080fd5b87516200071181620006b9565b809750506020808901516200072681620006b9565b60408a01519097506200073981620006b9565b60608a01519096506200074c81620006b9565b60808a01519095506200075f81620006b9565b60a08a01519094506200077281620006b9565b60c08a01519093506001600160401b03808211156200079057600080fd5b818b0191508b601f830112620007a557600080fd5b815181811115620007ba57620007ba620006d2565b604051601f8201601f19908116603f01168101908382118183101715620007e557620007e5620006d2565b816040528281528e86848701011115620007fe57600080fd5b600093505b8284101562000822578484018601518185018701529285019262000803565b82841115620008345760008684830101525b80965050505050505092959891949750929550565b6000602082840312156200085c57600080fd5b81516200086981620006b9565b9392505050565b6000806000606084860312156200088657600080fd5b83516200089381620006b9565b6020850151909350620008a681620006b9565b6040850151909250620008b981620006b9565b809150509250925092565b600181811c90821680620008d957607f821691505b60208210811415620008fb57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161580362000a996000396000818161032d015281816120de015281816122e80152818161231601528181613cc501528181613d4101528181614a4c01528181614d5a01528181614e660152614eb30152600081816103ee0152818161212d0152818161247801528181612c950152818161374d0152818161380b01528181614451015261460c01526000818161028401528181610749015281816109c501528181610b0e01528181610c5501528181610d2a01528181610ddd015281816110aa01528181611177015281816113a2015281816115b001528181611cfe0152818161236b015281816125f8015281816127d10152614d2b0152600081816103b40152818161044b0152818161059f01528181610845015281816108e801528181610b9b01528181610c3301528181610ca101528181610d5d01528181610f2701528181611326015281816117d40152818161192e01528181611a1301528181611be101528181611c1f015281816126ee01528181612844015281816142140152614d0901526158036000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063951dc22c1161010f578063d8dfeb45116100a2578063ee330ee311610071578063ee330ee314610493578063fb7ee102146104a6578063fc0c546a146104b9578063ffa1ad74146104ca57600080fd5b8063d8dfeb4514610449578063e260d7471461046f578063e5328e0614610478578063ec78e8321461048057600080fd5b8063cdaabe41116100de578063cdaabe41146103e9578063ce5494bb14610410578063d2c35ce814610423578063d3033c391461043657600080fd5b8063951dc22c14610385578063a3f4df7e1461039a578063b2016bd4146103af578063c415b95c146103d657600080fd5b80632e1a7d4d11610187578063456dc17a11610156578063456dc17a146103155780636719578c146103285780637d7c2a1c1461034f57806390d675141461037257600080fd5b80632e1a7d4d146102b95780633ac9fc11146102cc5780634032b72b146102df578063440d7248146102f257600080fd5b80631026013a116101c35780631026013a1461025957806314ae9f2e1461026c57806316f0115b1461027f5780632b3297f9146102a657600080fd5b806301681a62146101f55780630181686c1461020a5780630ade00f2146102265780630c340a2414610251575b600080fd5b610208610203366004615092565b6104ee565b005b61021360075481565b6040519081526020015b60405180910390f35b600b54610239906001600160a01b031681565b6040516001600160a01b03909116815260200161021d565b610239610745565b6102136102673660046150af565b6107dd565b61020861027a366004615092565b6109c3565b6102397f000000000000000000000000000000000000000000000000000000000000000081565b600254610239906001600160a01b031681565b6102086102c73660046150af565b610b0b565b6102086102da3660046150af565b610d84565b6102086102ed366004615092565b610ddb565b610305610300366004615092565b610f23565b604051901515815260200161021d565b600854610239906001600160a01b031681565b6102397f000000000000000000000000000000000000000000000000000000000000000081565b610357610fa8565b6040805193845260208401929092529082015260600161021d565b600954610239906001600160a01b031681565b61038d61100d565b60405161021d919061510c565b6103a2611019565b60405161021d919061514b565b6102397f000000000000000000000000000000000000000000000000000000000000000081565b600154610239906001600160a01b031681565b6102397f000000000000000000000000000000000000000000000000000000000000000081565b61020861041e366004615092565b6110a7565b610208610431366004615092565b6113a0565b610208610444366004615092565b6115ae565b7f0000000000000000000000000000000000000000000000000000000000000000610239565b61021360065481565b6102136117bc565b600054610239906001600160a01b031681565b6102136104a136600461517e565b6118dc565b6102086104b43660046151aa565b611cfc565b6000546001600160a01b0316610239565b6103a260405180604001604052806005815260200164352e312e3160d81b81525081565b6104fb335b600390611f12565b6105455760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b60448201526064015b60405180910390fd5b6001546001600160a01b031661059d5760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d6e6f742d7365740000000000000000000000604482015260640161053c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316141561061f5760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161053c565b61062881610f23565b1561066c5760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161053c565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156106aa576001546106a7906001600160a01b031647611f34565b50565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b1580156106ec57600080fd5b505afa158015610700573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072491906151cc565b600154909150610741906001600160a01b03848116911683612052565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156107a057600080fd5b505afa1580156107b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d891906151e5565b905090565b60006107e8336104f3565b61082d5760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161053c565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561088f57600080fd5b505afa1580156108a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c791906151cc565b90506108d16120ca565b6040516370a0823160e01b815230600482015281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561093257600080fd5b505afa158015610946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096a91906151cc565b6109749190615218565b9150828210156109bd5760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161053c565b50919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1c57600080fd5b505afa158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5491906151e5565b6001600160a01b0316336001600160a01b031614610ab45760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161053c565b610abf600382612112565b6106a75760405162461bcd60e51b815260206004820152601460248201527f72656d6f76652d6b65657065722d6661696c6564000000000000000000000000604482015260640161053c565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610b835760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161053c565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610be557600080fd5b505afa158015610bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1d91906151cc565b9050818110610c7a576107416001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084612052565b610c8c610c878284615218565b612127565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015610ceb57600080fd5b505afa158015610cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2391906151cc565b90506107417f0000000000000000000000000000000000000000000000000000000000000000610d5384846122b7565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190612052565b610d8d336104f3565b610dd25760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161053c565b6106a7816122cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015610e3457600080fd5b505afa158015610e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6c91906151e5565b6001600160a01b0316336001600160a01b031614610ecc5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161053c565b610ed7600382611ef6565b6106a75760405162461bcd60e51b815260206004820152601160248201527f6164642d6b65657065722d6661696c6564000000000000000000000000000000604482015260640161053c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161480610f7257506000546001600160a01b038381169116145b80610f8a57506009546001600160a01b038381169116145b80610fa257506008546001600160a01b038381169116145b92915050565b60008080610fb5336104f3565b610ffa5760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161053c565b611002612345565b925092509250909192565b60606107d86003612b1a565b600580546110269061522f565b80601f01602080910402602001604051908101604052809291908181526020018280546110529061522f565b801561109f5780601f106110745761010080835404028352916020019161109f565b820191906000526020600020905b81548152906001019060200180831161108257829003601f168201915b505050505081565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461111f5760405162461bcd60e51b815260206004820152601960248201527f63616c6c65722d69732d6e6f742d7665737065722d706f6f6c00000000000000604482015260640161053c565b6001600160a01b0381166111755760405162461bcd60e51b815260206004820152601c60248201527f6e65772d73747261746567792d616464726573732d69732d7a65726f00000000604482015260640161053c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03166316f0115b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156111d857600080fd5b505afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121091906151e5565b6001600160a01b0316146112665760405162461bcd60e51b815260206004820152601660248201527f6e6f742d76616c69642d6e65772d737472617465677900000000000000000000604482015260640161053c565b61126f81612b27565b6000546040516370a0823160e01b81523060048201526113039183916001600160a01b03909116906370a082319060240160206040518083038186803b1580156112b857600080fd5b505afa1580156112cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f091906151cc565b6000546001600160a01b03169190612052565b6040516370a0823160e01b81523060048201526106a79082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561136857600080fd5b505afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5391906151cc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b1580156113f957600080fd5b505afa15801561140d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143191906151e5565b6001600160a01b0316336001600160a01b0316146114915760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161053c565b6001600160a01b0381166114e75760405162461bcd60e51b815260206004820152601d60248201527f6665652d636f6c6c6563746f722d616464726573732d69732d7a65726f000000604482015260640161053c565b6001546001600160a01b03828116911614156115455760405162461bcd60e51b815260206004820152601560248201527f6665652d636f6c6c6563746f722d69732d73616d650000000000000000000000604482015260640161053c565b6001546040516001600160a01b038084169216907f0f06062680f9bd68e786e9980d9bb03d73d5620fc3b345e417b6eacb310b970690600090a36001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b15801561160757600080fd5b505afa15801561161b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163f91906151e5565b6001600160a01b0316336001600160a01b03161461169f5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161053c565b6001600160a01b0381166116f55760405162461bcd60e51b815260206004820152601760248201527f737761707065722d616464726573732d69732d7a65726f000000000000000000604482015260640161053c565b6002546001600160a01b03828116911614156117535760405162461bcd60e51b815260206004820152600f60248201527f737761707065722d69732d73616d650000000000000000000000000000000000604482015260640161053c565b6002546040516001600160a01b038084169216907f6c953b7ec311055c20b96a42cea31e89528e375b1bf953a503db40854b3188fe90600090a36002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561181e57600080fd5b505afa158015611832573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185691906151cc565b6000546040516370a0823160e01b81523060048201526001600160a01b03909116906370a08231906024015b60206040518083038186803b15801561189a57600080fd5b505afa1580156118ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d291906151cc565b6107d89190615264565b60006118e7336104f3565b61192c5760405162461bcd60e51b815260206004820152601660248201527531b0b63632b916b4b996b737ba16b096b5b2b2b832b960511b604482015260640161053c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614156119ae5760405162461bcd60e51b815260206004820152601f60248201527f6e6f742d616c6c6f7765642d746f2d73776565702d636f6c6c61746572616c00604482015260640161053c565b6119b783610f23565b156119fb5760405162461bcd60e51b815260206004820152601460248201527306e6f742d616c6c6f7765642d746f2d73776565760641b604482015260640161053c565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015611a5d57600080fd5b505afa158015611a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9591906151cc565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038616906370a082319060240160206040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1291906151cc565b90508015611c0857600254604051636eb1769f60e11b81523060048201526001600160a01b0391821660248201529086169063dd62ed3e9060440160206040518083038186803b158015611b6557600080fd5b505afa158015611b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9d91906151cc565b811115611bdb57600254611bbf906001600160a01b0387811691166000612d29565b600254611bdb906001600160a01b038781169116600019612d29565b611c06857f000000000000000000000000000000000000000000000000000000000000000083612e54565b505b6040516370a0823160e01b815230600482015282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015611c6957600080fd5b505afa158015611c7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca191906151cc565b611cab9190615218565b925083831015611cf45760405162461bcd60e51b81526020600482015260146024820152731b9bdd0b595b9bdd59da0b585b5bdd5b9d13dd5d60621b604482015260640161053c565b505092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630c340a246040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5557600080fd5b505afa158015611d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8d91906151e5565b6001600160a01b0316336001600160a01b031614611ded5760405162461bcd60e51b815260206004820152601a60248201527f63616c6c65722d69732d6e6f742d7468652d676f7665726e6f72000000000000604482015260640161053c565b6127108110611e3e5760405162461bcd60e51b815260206004820152601860248201527f696e76616c69642d6d61782d626f72726f772d6c696d69740000000000000000604482015260640161053c565b80158015611e4a575081155b80611e5457508181115b611ea05760405162461bcd60e51b815260206004820152601d60248201527f6d61782d73686f756c642d62652d6869676865722d7468616e2d6d696e000000604482015260640161053c565b6006546007546040805192835260208301859052820152606081018290527fedd77444afdf63401315e81ffe86d08f7865796e8ad2e11acf1d56a1393f07d59060800160405180910390a1600691909155600755565b6000611f0b836001600160a01b038416612ef8565b9392505050565b6001600160a01b03811660009081526001830160205260408120541515611f0b565b80471015611f845760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161053c565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611fd1576040519150601f19603f3d011682016040523d82523d6000602084013e611fd6565b606091505b505090508061204d5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161053c565b505050565b6040516001600160a01b03831660248201526044810182905261204d90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b031990931692909217909152612f47565b6120d2613019565b600254600b54612110917f0000000000000000000000000000000000000000000000000000000000000000916001600160a01b03918216911661310b565b565b6000611f0b836001600160a01b038416613426565b6106a7817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561218457600080fd5b505afa158015612198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bc91906151e5565b6009546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156121ff57600080fd5b505afa158015612213573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223791906151cc565b6000546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561227a57600080fd5b505afa15801561228e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b291906151cc565b613519565b60008183106122c65781611f0b565b5090919050565b6122d681613725565b60085461230d906001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083612d29565b6002546106a7907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683613a94565b604051636a9eee1360e11b81523060048201526000908190819081906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d53ddc269060240160206040518083038186803b1580156123ad57600080fd5b505afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e591906151cc565b6009546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a082319060240160206040518083038186803b15801561242e57600080fd5b505afa158015612442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246691906151cc565b90506000612472613c9b565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124cf57600080fd5b505afa1580156124e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250791906151e5565b9050818311156125295761252461251e8385615218565b82613e14565b61253b565b61253b6125368484615218565b6140b4565b60006125456141fc565b600080546040516370a0823160e01b815230600482015292935090916001600160a01b03909116906370a082319060240160206040518083038186803b15801561258e57600080fd5b505afa1580156125a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c691906151cc565b90508060006125d58483615264565b604051639f2b283360e01b81523060048201529091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639f2b28339060240160206040518083038186803b15801561263a57600080fd5b505afa15801561264e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267291906151cc565b90508082111561268d576126868183615218565b9b5061269a565b6126978282615218565b9a505b60006126a68a8e615264565b9050808610156127755760006126c56126bf8884615218565b866122b7565b90508015612773576126d981898c89613519565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561273857600080fd5b505afa15801561274c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277091906151cc565b96505b505b61277f868b6122b7565b9a508a861161278f5760006127a2565b6127a261279c8c88615218565b8e6122b7565b6040516302df682360e11b815260048101829052602481018e9052604481018d9052909d506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906305bed04690606401600060405180830381600087803b15801561281557600080fd5b505af1158015612829573d6000803e3d6000fd5b50506040516370a0823160e01b8152306004820152600092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691506370a082319060240160206040518083038186803b15801561288f57600080fd5b505afa1580156128a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c791906151cc565b905080156128d9576128d98189614296565b6009546040516370a0823160e01b815230600482015260009182916129df91839182916001600160a01b0316906370a082319060240160206040518083038186803b15801561292757600080fd5b505afa15801561293b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295f91906151cc565b6000546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156129a257600080fd5b505afa1580156129b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129da91906151cc565b61439d565b909250905080156129f9576129f4818b6149b6565b612a7a565b8115612a7a5760085460405163a415bcad60e01b81526001600160a01b039182166004820152602481018490526002604482015260006064820152306084820152908b169063a415bcad9060a401600060405180830381600087803b158015612a6157600080fd5b505af1158015612a75573d6000803e3d6000fd5b505050505b6008546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015612abe57600080fd5b505afa158015612ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af691906151cc565b90508015612b0757612b0781614a36565b5050505050505050505050505050909192565b60606000611f0b83614aac565b60008054906101000a90046001600160a01b03166001600160a01b0316816001600160a01b031663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b7d57600080fd5b505afa158015612b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb591906151e5565b6001600160a01b031614612c0b5760405162461bcd60e51b815260206004820152601360248201527f77726f6e672d726563656970742d746f6b656e00000000000000000000000000604482015260640161053c565b6009546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015612c4f57600080fd5b505afa158015612c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8791906151cc565b9050801561074157610741817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612cec57600080fd5b505afa158015612d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2491906151e5565b6149b6565b801580612db25750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e9060440160206040518083038186803b158015612d7857600080fd5b505afa158015612d8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db091906151cc565b155b612e245760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606482015260840161053c565b6040516001600160a01b03831660248201526044810182905261204d90849063095ea7b360e01b9060640161207e565b600254604051636ccb2b0160e01b81526001600160a01b038581166004830152848116602483015260448201849052600160648301523060848301526000921690636ccb2b019060a401602060405180830381600087803b158015612eb857600080fd5b505af1158015612ecc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef091906151cc565b949350505050565b6000818152600183016020526040812054612f3f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610fa2565b506000610fa2565b6000612f9c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614b089092919063ffffffff16565b80519091501561204d5780806020019051810190612fba9190615291565b61204d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161053c565b600080548190613031906001600160a01b0316614b17565b8151919350915060005b81811015613105576000838281518110613057576130576152ac565b602002602001015111801561309e5750600b5484516001600160a01b039091169085908390811061308a5761308a6152ac565b60200260200101516001600160a01b031614155b156130f5576130f58482815181106130b8576130b86152ac565b6020026020010151600b60009054906101000a90046001600160a01b03168584815181106130e8576130e86152ac565b6020026020010151614c60565b6130fe816152c2565b905061303b565b50505050565b6000836001600160a01b0316638bc6beb26040518163ffffffff1660e01b815260040160206040518083038186803b15801561314657600080fd5b505afa15801561315a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061317e91906151e5565b90506001600160a01b038116156131055760405163d279c19160e01b81523060048201526001600160a01b0382169063d279c19190602401600060405180830381600087803b1580156131d057600080fd5b505af11580156131e4573d6000803e3d6000fd5b505050506000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b15801561322357600080fd5b505afa158015613237573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261325f91908101906153be565b805190915060005b8181101561341d576000838281518110613283576132836152ac565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156132ce57600080fd5b505afa1580156132e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330691906151cc565b90506000811180156133435750856001600160a01b031684838151811061332f5761332f6152ac565b60200260200101516001600160a01b031614155b1561340c57866001600160a01b0316636ccb2b01858481518110613369576133696152ac565b60209081029190910101516040516001600160e01b031960e084901b1681526001600160a01b0391821660048201529089166024820152604481018490526001606482015230608482015260a401602060405180830381600087803b1580156133d157600080fd5b505af1925050508015613401575060408051601f3d908101601f191682019092526133fe918101906151cc565b60015b61340a5761340c565b505b50613416816152c2565b9050613267565b50505050505050565b6000818152600183016020526040812054801561350f57600061344a600183615218565b855490915060009061345e90600190615218565b90508181146134c357600086600001828154811061347e5761347e6152ac565b90600052602060002001549050808760000184815481106134a1576134a16152ac565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806134d4576134d46153f3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610fa2565b6000915050610fa2565b8360006135288183868661439d565b915050801561353b5761353b81866149b6565b600b54600080546040516370a0823160e01b81526001600160a01b03918216600482015291926135cf9286926135ca9289929116906370a08231906024015b60206040518083038186803b15801561359257600080fd5b505afa1580156135a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ca91906151cc565b6122b7565b600b54604051631a4ca37b60e21b81526001600160a01b039182166004820152602481018390523060448201529192508291908816906369328dec90606401602060405180830381600087803b15801561362857600080fd5b505af115801561363c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061366091906151cc565b1460405180604001604052806002815260200161323960f01b8152509061369a5760405162461bcd60e51b815260040161053c919061514b565b50600b546040516370a0823160e01b815230600482015261371b916001600160a01b0316906370a082319060240160206040518083038186803b1580156136e057600080fd5b505afa1580156136f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061371891906151cc565b90565b5050505050505050565b61372e81614cfc565b6000600260009054906101000a90046001600160a01b031690506137ef7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156137a457600080fd5b505afa1580156137b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137dc91906151e5565b600b546001600160a01b03169084612d29565b600b54613806906001600160a01b03168284612d29565b6138ad7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663026b1d5f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561386257600080fd5b505afa158015613876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061389a91906151e5565b6008546001600160a01b03169084612d29565b6008546138c4906001600160a01b03168284612d29565b60008054906101000a90046001600160a01b03166001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b15801561391057600080fd5b505afa925050508015613940575060408051601f3d908101601f1916820190925261393d918101906151e5565b60015b613948575050565b6000816001600160a01b031663b45ac1a96040518163ffffffff1660e01b815260040160006040518083038186803b15801561398357600080fd5b505afa158015613997573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139bf91908101906153be565b905060005b8151811015613a8d57600b5482516001600160a01b03909116908390839081106139f0576139f06152ac565b60200260200101516001600160a01b031614158015613a41575060085482516001600160a01b0390911690839083908110613a2d57613a2d6152ac565b60200260200101516001600160a01b031614155b15613a7d57613a7d8486848481518110613a5d57613a5d6152ac565b60200260200101516001600160a01b0316612d299092919063ffffffff16565b613a86816152c2565b90506139c4565b5050505050565b6000836001600160a01b0316638bc6beb26040518163ffffffff1660e01b815260040160206040518083038186803b158015613acf57600080fd5b505afa158015613ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0791906151e5565b90506001600160a01b03811615613105576000816001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b158015613b5357600080fd5b505afa158015613b67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613b8f91908101906153be565b805190915060005b8181101561341d57828181518110613bb157613bb16152ac565b6020908102919091010151604051636eb1769f60e11b81523060048201526001600160a01b0388811660248301529091169063dd62ed3e9060440160206040518083038186803b158015613c0457600080fd5b505afa158015613c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c3c91906151cc565b613c5c57613c578686858481518110613a5d57613a5d6152ac565b613c8b565b613c74866000858481518110613a5d57613a5d6152ac565b613c8b8686858481518110613a5d57613a5d6152ac565b613c94816152c2565b9050613b97565b6040516370a0823160e01b8152306004820152600090670de0b6b3a7640000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015613d0757600080fd5b505afa158015613d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d3f91906151cc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166399530b066040518163ffffffff1660e01b815260040160206040518083038186803b158015613d9857600080fd5b505afa158015613dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dd091906151cc565b613dda9190615409565b613de49190615428565b6008546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401611882565b600254600b546008546040516353b609b560e01b81526001600160a01b03928316600482015290821660248201526044810185905260009291909116906353b609b590606401602060405180830381600087803b158015613e7457600080fd5b505af1158015613e88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eac91906151cc565b9050801561204d57600b546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015613ef857600080fd5b505afa158015613f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3091906151cc565b905080821115614014576000613f468284615218565b600b54604051631a4ca37b60e21b81526001600160a01b039182166004820152602481018390523060448201529192508291908616906369328dec90606401602060405180830381600087803b158015613f9f57600080fd5b505af1158015613fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fd791906151cc565b1460405180604001604052806002815260200161323960f01b815250906140115760405162461bcd60e51b815260040161053c919061514b565b50505b600254600b546008546040516381cc619b60e01b81526001600160a01b039283166004820152908216602482015260448101879052606481018590523060848201529116906381cc619b9060a401602060405180830381600087803b15801561407c57600080fd5b505af1158015614090573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a8d91906151cc565b80156106a7576008546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b1580156140fe57600080fd5b505afa158015614112573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061413691906151cc565b9050818110156141d05761415261414d8284615218565b614d50565b6008546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561419557600080fd5b505afa1580156141a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141cd91906151cc565b90505b801561074157600854600b54610741916001600160a01b0390811691166141f785856122b7565b614c60565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561425e57600080fd5b505afa158015614272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d891906151cc565b81801561204d57600b5460405163617ba03760e01b81526001600160a01b03918216600482015260248101839052306044820152600060648201529083169063617ba03790608401600060405180830381600087803b1580156142f857600080fd5b505af1925050508015614309575060015b61204d5761431561544a565b806308c379a01415614391575061432a615465565b806143355750614393565b61433e816154ef565b611a9b60f11b146131055760405162461bcd60e51b815260206004820152600e60248201527f6465706f736974206661696c6564000000000000000000000000000000000000604482015260640161053c565b505b3d6000803e3d6000fd5b6000808515806143ab575084155b6143f75760405162461bcd60e51b815260206004820152601160248201527f616c6c2d696e7075742d67742d7a65726f000000000000000000000000000000604482015260640161053c565b600754614409575060009050826149ad565b600080871161442f57858411614420576000614439565b61442a8685615218565b614439565b6144398785615264565b90508061444d5760008592509250506149ad565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156144a857600080fd5b505afa1580156144bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e091906151e5565b60085460405163b3596f0760e01b81526001600160a01b0391821660048201529192506000919083169063b3596f079060240160206040518083038186803b15801561452b57600080fd5b505afa15801561453f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061456391906151cc565b600b5460405163b3596f0760e01b81526001600160a01b0391821660048201529192506000919084169063b3596f079060240160206040518083038186803b1580156145ae57600080fd5b505afa1580156145c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145e691906151cc565b90508115806145f3575080155b156146085760008895509550505050506149ad565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e860accb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561466357600080fd5b505afa158015614677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061469b91906151e5565b600b54604051633e15014160e01b81526001600160a01b039182166004820152911690633e150141906024016101406040518083038186803b1580156146e057600080fd5b505afa1580156146f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147189190615513565b50505050505050509150506000600b60009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561477357600080fd5b505afa158015614787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147ab91906155aa565b6147b690600a6156b1565b6147c290612710615409565b836147cd8489615409565b6147d79190615409565b6147e19190615428565b9050600084600860009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561483457600080fd5b505afa158015614848573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061486c91906155aa565b61487790600a6156b1565b6148819084615409565b61488b9190615428565b9050806148a55760008b98509850505050505050506149ad565b6000612710600754836148b89190615409565b6148c29190615428565b90506000612710600654846148d79190615409565b6148e19190615428565b9050818d11156148fc576148f5818e615218565b99506149a3565b8c8111156149a35761490e8d82615218565b600854600a546040516370a0823160e01b81526001600160a01b039182166004820152929d506000929116906370a082319060240160206040518083038186803b15801561495b57600080fd5b505afa15801561496f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061499391906151cc565b9050808c11156149a157809b505b505b5050505050505050505b94509492505050565b6149bf82614f13565b60085460405163573ade8160e01b81526001600160a01b03918216600482015260248101849052600260448201523060648201529082169063573ade8190608401600060405180830381600087803b158015614a1a57600080fd5b505af1158015614a2e573d6000803e3d6000fd5b505050505050565b60405163b6b55f2560e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6b55f2590602401600060405180830381600087803b158015614a9857600080fd5b505af1158015613a8d573d6000803e3d6000fd5b606081600001805480602002602001604051908101604052809291908181526020018280548015614afc57602002820191906000526020600020905b815481526020019060010190808311614ae8575b50505050509050919050565b6060612ef08484600085614f1c565b606080826001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b158015614b5357600080fd5b505afa925050508015614b83575060408051601f3d908101601f19168201909252614b80918101906151e5565b60015b614b8c57915091565b604080516001808252818301909252600091602080830190803683370190505090508481600081518110614bc257614bc26152ac565b6001600160a01b03928316602091820292909201015260405163bb492bf560e01b81529083169063bb492bf590614bff90849030906004016156c0565b600060405180830381600087803b158015614c1957600080fd5b505af1158015614c2d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614c5591908101906156eb565b935093505050915091565b600254604051636ccb2b0160e01b81526001600160a01b0385811660048301528481166024830152604482018490526001606483015230608483015290911690636ccb2b019060a401602060405180830381600087803b158015614cc357600080fd5b505af1925050508015614cf3575060408051601f3d908101601f19168201909252614cf0918101906151cc565b60015b61310557505050565b6106a76001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083612d29565b80156106a75760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166399530b066040518163ffffffff1660e01b815260040160206040518083038186803b158015614db157600080fd5b505afa158015614dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614de991906151cc565b9050600081614e0084670de0b6b3a7640000615409565b614e0a9190615428565b9050670de0b6b3a7640000614e1f8383615409565b614e299190615428565b8311614e355780614e40565b614e40816001615264565b6040516370a0823160e01b8152306004820152909150614e959082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240161357a565b9050801561204d57604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b158015614eff57600080fd5b505af115801561341d573d6000803e3d6000fd5b6106a781614d50565b606082471015614f7d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161053c565b843b614fcb5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161053c565b600080866001600160a01b03168587604051614fe791906157b1565b60006040518083038185875af1925050503d8060008114615024576040519150601f19603f3d011682016040523d82523d6000602084013e615029565b606091505b5091509150615039828286615044565b979650505050505050565b60608315615053575081611f0b565b8251156150635782518084602001fd5b8160405162461bcd60e51b815260040161053c919061514b565b6001600160a01b03811681146106a757600080fd5b6000602082840312156150a457600080fd5b8135611f0b8161507d565b6000602082840312156150c157600080fd5b5035919050565b600081518084526020808501945080840160005b838110156151015781516001600160a01b0316875295820195908201906001016150dc565b509495945050505050565b602081526000611f0b60208301846150c8565b60005b8381101561513a578181015183820152602001615122565b838111156131055750506000910152565b602081526000825180602084015261516a81604085016020870161511f565b601f01601f19169190910160400192915050565b6000806040838503121561519157600080fd5b823561519c8161507d565b946020939093013593505050565b600080604083850312156151bd57600080fd5b50508035926020909101359150565b6000602082840312156151de57600080fd5b5051919050565b6000602082840312156151f757600080fd5b8151611f0b8161507d565b634e487b7160e01b600052601160045260246000fd5b60008282101561522a5761522a615202565b500390565b600181811c9082168061524357607f821691505b602082108114156109bd57634e487b7160e01b600052602260045260246000fd5b6000821982111561527757615277615202565b500190565b8051801515811461528c57600080fd5b919050565b6000602082840312156152a357600080fd5b611f0b8261527c565b634e487b7160e01b600052603260045260246000fd5b60006000198214156152d6576152d6615202565b5060010190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff81118282101715615319576153196152dd565b6040525050565b600067ffffffffffffffff82111561533a5761533a6152dd565b5060051b60200190565b600082601f83011261535557600080fd5b8151602061536282615320565b60405161536f82826152f3565b83815260059390931b850182019282810191508684111561538f57600080fd5b8286015b848110156153b35780516153a68161507d565b8352918301918301615393565b509695505050505050565b6000602082840312156153d057600080fd5b815167ffffffffffffffff8111156153e757600080fd5b612ef084828501615344565b634e487b7160e01b600052603160045260246000fd5b600081600019048311821515161561542357615423615202565b500290565b60008261544557634e487b7160e01b600052601260045260246000fd5b500490565b600060033d11156137185760046000803e5060005160e01c90565b600060443d10156154735790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156154a357505050505090565b82850191508151818111156154bb5750505050505090565b843d87010160208285010111156154d55750505050505090565b6154e4602082860101876152f3565b509095945050505050565b805160208083015191908110156109bd5760001960209190910360031b1b16919050565b6000806000806000806000806000806101408b8d03121561553357600080fd5b8a51995060208b0151985060408b0151975060608b0151965060808b0151955061555f60a08c0161527c565b945061556d60c08c0161527c565b935061557b60e08c0161527c565b925061558a6101008c0161527c565b91506155996101208c0161527c565b90509295989b9194979a5092959850565b6000602082840312156155bc57600080fd5b815160ff81168114611f0b57600080fd5b600181815b808511156156085781600019048211156155ee576155ee615202565b808516156155fb57918102915b93841c93908002906155d2565b509250929050565b60008261561f57506001610fa2565b8161562c57506000610fa2565b8160018114615642576002811461564c57615668565b6001915050610fa2565b60ff84111561565d5761565d615202565b50506001821b610fa2565b5060208310610133831016604e8410600b841016171561568b575081810a610fa2565b61569583836155cd565b80600019048211156156a9576156a9615202565b029392505050565b6000611f0b60ff841683615610565b6040815260006156d360408301856150c8565b90506001600160a01b03831660208301529392505050565b600080604083850312156156fe57600080fd5b825167ffffffffffffffff8082111561571657600080fd5b61572286838701615344565b935060209150818501518181111561573957600080fd5b85019050601f8101861361574c57600080fd5b805161575781615320565b60405161576482826152f3565b82815260059290921b830184019184810191508883111561578457600080fd5b928401925b828410156157a257835182529284019290840190615789565b80955050505050509250929050565b600082516157c381846020870161511f565b919091019291505056fea2646970667358221220b89e43e65be92db804c01de881f1f9adb6faf0007f7c560957ddef6faff2b67364736f6c63430008090033000000000000000000000000dd63ae655b388cd782681b7821be37fdb6d0e78d000000000000000000000000017cbf62b53313d5ee3ad1288daa95cd39aa11fe000000000000000000000000c45a479877e1e9dfe9fcd4056c699575a1045daa0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000a97684ead0e402dc232d5a977953df7ecbab3cdb000000000000000000000000ccf3d1acf799bae67f6e354d685295557cf6476100000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001b4161766556335f5665737065725f58795f7773744554485f4554480000000000